From 1fb7fa5a2f818804b9fa21a0b17ecf231df070df Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 30 Nov 2022 11:42:17 -0500 Subject: [PATCH 001/216] staking/reward pool smnart contract --- packages/core/contracts/Escrow.sol | 36 +- packages/core/contracts/EscrowFactory.sol | 38 +- packages/core/contracts/HMToken.sol | 72 +- packages/core/contracts/RewardPool.sol | 102 ++ packages/core/contracts/Staking.sol | 607 ++++++++++++ .../{ => interfaces}/HMTokenInterface.sol | 22 +- .../core/contracts/interfaces/IEscrow.sol | 43 + .../core/contracts/interfaces/IRewardPool.sol | 26 + .../core/contracts/interfaces/IStaking.sol | 97 ++ packages/core/contracts/libs/Stakes.sol | 195 ++++ .../core/contracts/{ => utils}/Context.sol | 0 packages/core/contracts/utils/Math.sol | 183 ++++ .../core/contracts/{ => utils}/Ownable.sol | 0 .../core/contracts/{ => utils}/SafeMath.sol | 0 packages/core/contracts/utils/Strings.sol | 73 ++ packages/core/scripts/deploy.ts | 52 +- packages/core/test/Escrow.ts | 399 +++++--- packages/core/test/EscrowFactory.ts | 200 +++- packages/core/test/RewardPool.ts | 312 ++++++ packages/core/test/Staking.ts | 904 ++++++++++++++++++ 20 files changed, 3109 insertions(+), 252 deletions(-) create mode 100644 packages/core/contracts/RewardPool.sol create mode 100644 packages/core/contracts/Staking.sol rename packages/core/contracts/{ => interfaces}/HMTokenInterface.sol (84%) create mode 100644 packages/core/contracts/interfaces/IEscrow.sol create mode 100644 packages/core/contracts/interfaces/IRewardPool.sol create mode 100644 packages/core/contracts/interfaces/IStaking.sol create mode 100644 packages/core/contracts/libs/Stakes.sol rename packages/core/contracts/{ => utils}/Context.sol (100%) create mode 100644 packages/core/contracts/utils/Math.sol rename packages/core/contracts/{ => utils}/Ownable.sol (100%) rename packages/core/contracts/{ => utils}/SafeMath.sol (100%) create mode 100644 packages/core/contracts/utils/Strings.sol create mode 100644 packages/core/test/RewardPool.ts create mode 100644 packages/core/test/Staking.ts diff --git a/packages/core/contracts/Escrow.sol b/packages/core/contracts/Escrow.sol index a71b5eecac..f361475516 100644 --- a/packages/core/contracts/Escrow.sol +++ b/packages/core/contracts/Escrow.sol @@ -2,8 +2,10 @@ pragma solidity >=0.6.2; -import './HMTokenInterface.sol'; -import './SafeMath.sol'; +import './interfaces/HMTokenInterface.sol'; +import './interfaces/IStaking.sol'; +import './interfaces/IRewardPool.sol'; +import './utils/SafeMath.sol'; contract Escrow { using SafeMath for uint256; @@ -25,10 +27,11 @@ contract Escrow { address public recordingOracle; address public launcher; address payable public canceler; + address public staking; uint256 public reputationOracleStake; uint256 public recordingOracleStake; - uint256 private constant BULK_MAX_VALUE = 1000000000 * (10**18); + uint256 private constant BULK_MAX_VALUE = 1000000000 * (10 ** 18); uint32 private constant BULK_MAX_COUNT = 100; address public eip20; @@ -48,6 +51,7 @@ contract Escrow { constructor( address _eip20, + address _staking, address payable _canceler, uint256 _duration, address[] memory _handlers @@ -56,6 +60,7 @@ contract Escrow { status = EscrowStatuses.Launched; duration = _duration.add(block.timestamp); // solhint-disable-line not-rely-on-time launcher = msg.sender; + staking = _staking; canceler = _canceler; areTrustedHandlers[_canceler] = true; areTrustedHandlers[msg.sender] = true; @@ -143,13 +148,17 @@ contract Escrow { ); require(status == EscrowStatuses.Paid, 'Escrow not in Paid state'); status = EscrowStatuses.Complete; + + // Distribute Reward + IRewardPool(IStaking(staking).rewardPool()).distributeReward( + address(this) + ); } - function storeResults(string memory _url, string memory _hash) - public - trusted - notExpired - { + function storeResults( + string memory _url, + string memory _hash + ) public trusted notExpired { require( status == EscrowStatuses.Pending || status == EscrowStatuses.Partial, @@ -218,10 +227,9 @@ contract Escrow { return bulkPaid; } - function finalizePayouts(uint256[] memory _amounts) - internal - returns (uint256, uint256) - { + function finalizePayouts( + uint256[] memory _amounts + ) internal returns (uint256, uint256) { uint256 reputationOracleFee = 0; uint256 recordingOracleFee = 0; for (uint256 j; j < _amounts.length; j++) { @@ -245,6 +253,10 @@ contract Escrow { return (reputationOracleFee, recordingOracleFee); } + function getStatus() public view returns (EscrowStatuses) { + return status; + } + modifier trusted() { require(areTrustedHandlers[msg.sender], 'Address calling not trusted'); _; diff --git a/packages/core/contracts/EscrowFactory.sol b/packages/core/contracts/EscrowFactory.sol index ae4983c903..a347c4e348 100644 --- a/packages/core/contracts/EscrowFactory.sol +++ b/packages/core/contracts/EscrowFactory.sol @@ -1,28 +1,49 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.6.2; + import './Escrow.sol'; +import './interfaces/IStaking.sol'; contract EscrowFactory { // all Escrows will have this duration. uint256 constant STANDARD_DURATION = 8640000; + // Owner address + address public owner; + uint256 public counter; mapping(address => uint256) public escrowCounters; address public lastEscrow; address public eip20; - event Launched(address eip20, address escrow); + address public staking; + event Launched(address eip20, address escrow, uint256 counter); constructor(address _eip20) { eip20 = _eip20; + owner = msg.sender; } - function createEscrow(address[] memory trustedHandlers) - public - returns (address) - { + function setStaking(address _staking) external onlyOwner { + require(staking == address(0), 'Staking already set'); + staking = _staking; + } + + function createEscrow( + address[] memory trustedHandlers + ) public returns (address) { + require(staking != address(0), 'Staking is not configured'); + bool hasAvailableStake = IStaking(staking).hasAvailableStake( + msg.sender + ); + require( + hasAvailableStake == true, + 'Needs to stake HMT tokens to create an escrow.' + ); + Escrow escrow = new Escrow( eip20, + staking, payable(msg.sender), STANDARD_DURATION, trustedHandlers @@ -30,7 +51,7 @@ contract EscrowFactory { counter++; escrowCounters[address(escrow)] = counter; lastEscrow = address(escrow); - emit Launched(eip20, lastEscrow); + emit Launched(eip20, lastEscrow, counter); return lastEscrow; } @@ -41,4 +62,9 @@ contract EscrowFactory { function hasEscrow(address _address) public view returns (bool) { return escrowCounters[_address] != 0; } + + modifier onlyOwner() { + require(owner == msg.sender, 'Caller is not owner'); + _; + } } diff --git a/packages/core/contracts/HMToken.sol b/packages/core/contracts/HMToken.sol index 90864dacf0..ef22b4f724 100644 --- a/packages/core/contracts/HMToken.sol +++ b/packages/core/contracts/HMToken.sol @@ -1,9 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.6.2; -import './HMTokenInterface.sol'; -import './SafeMath.sol'; -import './Ownable.sol'; + +import './interfaces/HMTokenInterface.sol'; +import './utils/Ownable.sol'; +import './utils/SafeMath.sol'; contract HMToken is HMTokenInterface, Ownable { using SafeMath for uint256; @@ -21,7 +22,7 @@ contract HMToken is HMTokenInterface, Ownable { uint256 public totalSupply; uint256 private constant MAX_UINT256 = ~uint256(0); - uint256 private constant BULK_MAX_VALUE = 1000000000 * (10**18); + uint256 private constant BULK_MAX_VALUE = 1000000000 * (10 ** 18); uint32 private constant BULK_MAX_COUNT = 100; event BulkTransfer(uint256 indexed _txId, uint256 _bulkCount); @@ -40,18 +41,17 @@ contract HMToken is HMTokenInterface, Ownable { uint8 _decimals, string memory _symbol ) { - totalSupply = _totalSupply * (10**uint256(_decimals)); + totalSupply = _totalSupply * (10 ** uint256(_decimals)); name = _name; decimals = _decimals; symbol = _symbol; balances[msg.sender] = totalSupply; } - function transfer(address _to, uint256 _value) - public - override - returns (bool success) - { + function transfer( + address _to, + uint256 _value + ) public override returns (bool success) { success = transferQuiet(_to, _value); require(success, "Transfer didn't succeed"); return success; @@ -86,20 +86,16 @@ contract HMToken is HMTokenInterface, Ownable { return true; } - function balanceOf(address _owner) - public - view - override - returns (uint256 balance) - { + function balanceOf( + address _owner + ) public view override returns (uint256 balance) { return balances[_owner]; } - function approve(address _spender, uint256 _value) - public - override - returns (bool success) - { + function approve( + address _spender, + uint256 _value + ) public override returns (bool success) { require( _spender != address(0), 'Token spender is an uninitialized address' @@ -110,10 +106,10 @@ contract HMToken is HMTokenInterface, Ownable { return true; } - function increaseApproval(address _spender, uint256 _delta) - public - returns (bool success) - { + function increaseApproval( + address _spender, + uint256 _delta + ) public returns (bool success) { require( _spender != address(0), 'Token spender is an uninitialized address' @@ -135,10 +131,10 @@ contract HMToken is HMTokenInterface, Ownable { return true; } - function decreaseApproval(address _spender, uint256 _delta) - public - returns (bool success) - { + function decreaseApproval( + address _spender, + uint256 _delta + ) public returns (bool success) { require( _spender != address(0), 'Token spender is an uninitialized address' @@ -157,12 +153,10 @@ contract HMToken is HMTokenInterface, Ownable { return true; } - function allowance(address _owner, address _spender) - public - view - override - returns (uint256 remaining) - { + function allowance( + address _owner, + address _spender + ) public view override returns (uint256 remaining) { return allowed[_owner][_spender]; } @@ -223,10 +217,10 @@ contract HMToken is HMTokenInterface, Ownable { } // Like transfer, but fails quietly. - function transferQuiet(address _to, uint256 _value) - internal - returns (bool success) - { + function transferQuiet( + address _to, + uint256 _value + ) internal returns (bool success) { if (_to == address(0)) return false; // Preclude burning tokens to uninitialized address. if (_to == address(this)) return false; // Preclude sending tokens to the contract. if (balances[msg.sender] < _value) return false; diff --git a/packages/core/contracts/RewardPool.sol b/packages/core/contracts/RewardPool.sol new file mode 100644 index 0000000000..130917e85c --- /dev/null +++ b/packages/core/contracts/RewardPool.sol @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +import './interfaces/HMTokenInterface.sol'; +import './interfaces/IRewardPool.sol'; +import './utils/Math.sol'; + +/** + * @title Reward Pool contract + * @dev Reward Pool keeps slashed tokens, track of who slashed how much tokens, and distributes the reward after protocol fee. + */ +contract RewardPool is IRewardPool { + using SafeMath for uint256; + + // ERC20 Token address + address public immutable eip20; + + // Staking contract address + address public immutable staking; + + // Protocol Fee + uint256 public immutable fees; + + // Rewards per allocation + mapping(address => Reward[]) public rewards; + + /** + * @dev Emitted when a new reward record is created. + */ + event RewardAdded( + address indexed escrowAddress, + address indexed slasher, + uint256 tokens + ); + + constructor(address _eip20, address _staking, uint256 _fees) { + eip20 = _eip20; + staking = _staking; + fees = _fees; + } + + /** + * @dev Add reward record + * Protocol fee is duducted for each reward + */ + function addReward( + address _escrowAddress, + address _slasher, + uint256 _tokens + ) external override onlyStaking { + // If the reward is smaller than protocol fee, just keep as fee + if (_tokens < fees) { + return; + } + + // Deduct protocol fee for each reward + uint256 rewardAfterFee = _tokens - fees; + + // Add reward record + Reward memory reward = Reward(_escrowAddress, _slasher, rewardAfterFee); + rewards[_escrowAddress].push(reward); + + emit RewardAdded(_escrowAddress, _slasher, rewardAfterFee); + } + + /** + * @dev Return rewards for allocation + */ + function getRewards( + address _escrowAddress + ) external view override returns (Reward[] memory) { + return rewards[_escrowAddress]; + } + + /** + * @dev Distribute rewards for allocation + * The function will be called from Staking contract, + * when the escrow gets Completed state + */ + function distributeReward(address _escrowAddress) external override { + require(_escrowAddress == msg.sender, 'Caller is not escrow'); + + Reward[] memory rewardsForEscrow = rewards[_escrowAddress]; + HMTokenInterface token = HMTokenInterface(eip20); + + // Delete rewards for allocation + delete rewards[_escrowAddress]; + + // Transfer Tokens + for (uint256 index = 0; index < rewardsForEscrow.length; index += 1) { + Reward memory reward = rewardsForEscrow[index]; + bool success = token.transfer(reward.slasher, reward.tokens); + require(success, 'Transfer failed'); + } + } + + modifier onlyStaking() { + require(staking == msg.sender, 'Caller is not staking contract'); + _; + } +} diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol new file mode 100644 index 0000000000..cf3846b02e --- /dev/null +++ b/packages/core/contracts/Staking.sol @@ -0,0 +1,607 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +import './interfaces/HMTokenInterface.sol'; +import './interfaces/IEscrow.sol'; +import './interfaces/IRewardPool.sol'; +import './interfaces/IStaking.sol'; +import './libs/Stakes.sol'; +import './utils/Math.sol'; + +/** + * @title Staking contract + * @dev The Staking contract allows Operator, Exchange Oracle, Recording Oracle and Reputation Oracle to stake to Escrow. + */ +contract Staking is IStaking { + using SafeMath for uint256; + using Stakes for Stakes.Staker; + + // Owner address + address public owner; + + // ERC20 Token address + address public eip20; + + // Escrow factory address + address public escrowFactory; + + // Reward pool address + address public override rewardPool; + + // Minimum amount of tokens an staker needs to stake + uint256 public minimumStake; + + // Time in blocks to unstake + uint32 public lockPeriod; + + // Staker stakes: staker => Stake + mapping(address => Stakes.Staker) public stakes; + + // List of stakers per role + mapping(Stakes.Role => address[]) public stakers; + + // Allocations : escrowAddress => Allocation + mapping(address => IStaking.Allocation) public allocations; + + // List of addresses allowed to slash stakes + mapping(address => bool) public slashers; + + /** + * @dev Emitted when `staker` stake `tokens` amount. + */ + event StakeDeposited(address indexed staker, uint256 tokens); + + /** + * @dev Emitted when `staker` unstaked and locked `tokens` amount `until` block. + */ + event StakeLocked(address indexed staker, uint256 tokens, uint256 until); + + /** + * @dev Emitted when `staker` withdrew `tokens` staked. + */ + event StakeWithdrawn(address indexed staker, uint256 tokens); + + /** + * @dev Emitted when `staker` was slashed for a total of `tokens` amount. + */ + event StakeSlashed(address indexed staker, uint256 tokens); + + /** + * @dev Emitted when `staker` allocated `tokens` amount to `escrowAddress`. + */ + event StakeAllocated( + address indexed staker, + uint256 tokens, + address indexed escrowAddress, + uint256 createdAt + ); + + /** + * @dev Emitted when `staker` close an allocation `escrowAddress`. + */ + event AllocationClosed( + address indexed staker, + uint256 tokens, + address indexed escrowAddress, + uint256 closedAt + ); + + /** + * @dev Emitted when `owner` set new value for `minimumStake`. + */ + event SetMinumumStake(uint256 indexed minimumStake); + + /** + * @dev Emitted when `owner` set new value for `lockPeriod`. + */ + event SetLockPeriod(uint32 indexed lockPeriod); + + /** + * @dev Emitted when `owner` set new value for `rewardPool`. + */ + event SetRewardPool(address indexed rewardPool); + + /** + * @dev Emitted when `owner` set address as `staker` with `role`. + */ + event SetStaker(address indexed staker, Stakes.Role indexed role); + + constructor( + address _eip20, + address _escrowFactory, + uint256 _minimumStake, + uint32 _lockPeriod + ) { + eip20 = _eip20; + escrowFactory = _escrowFactory; + owner = msg.sender; + _setMinimumStake(_minimumStake); + _setLockPeriod(_lockPeriod); + } + + /** + * @dev Set the minimum stake amount. + * @param _minimumStake Minimum stake + */ + function setMinimumStake( + uint256 _minimumStake + ) external override onlyOwner { + _setMinimumStake(_minimumStake); + } + + /** + * @dev Set the minimum stake amount. + * @param _minimumStake Minimum stake + */ + function _setMinimumStake(uint256 _minimumStake) private { + require(_minimumStake > 0, 'Must be a positive number'); + minimumStake = _minimumStake; + emit SetMinumumStake(minimumStake); + } + + /** + * @dev Set the lock period for unstaking. + * @param _lockPeriod Period in blocks to wait for token withdrawals after unstaking + */ + function setLockPeriod(uint32 _lockPeriod) external override onlyOwner { + _setLockPeriod(_lockPeriod); + } + + /** + * @dev Set the lock period for unstaking. + * @param _lockPeriod Period in blocks to wait for token withdrawals after unstaking + */ + function _setLockPeriod(uint32 _lockPeriod) private { + require(_lockPeriod > 0, 'Must be a positive number'); + lockPeriod = _lockPeriod; + emit SetLockPeriod(lockPeriod); + } + + /** + * @dev Set the destionations of the rewards. + * @param _rewardPool Reward pool address + */ + function setRewardPool(address _rewardPool) external override onlyOwner { + _setRewardPool(_rewardPool); + } + + /** + * @dev Set the destionations of the rewards. + * @param _rewardPool Reward pool address + */ + function _setRewardPool(address _rewardPool) private { + require(_rewardPool != address(0), 'Must be a valid address'); + rewardPool = _rewardPool; + emit SetRewardPool(_rewardPool); + } + + /** + * @dev Add address to the list of stakers. + * @param _staker Staker's address + * @param _role Role of the staker + */ + function setStaker(address _staker, Stakes.Role _role) external onlyOwner { + require(_staker != address(0), 'Must be a valid address'); + require(_staker != msg.sender, 'Staker cannot set himself'); + + Stakes.Staker memory staker = Stakes.Staker(_role, 0, 0, 0, 0); + + stakes[_staker] = staker; + stakers[_role].push(_staker); + emit SetStaker(_staker, _role); + } + + /** + * @dev Return the result of checking if the staker has a specific role. + * @param _staker Staker's address + * @param _role Role of the staker + * @return True if _staker has role + */ + function isRole( + address _staker, + Stakes.Role _role + ) external view returns (bool) { + Stakes.Staker memory staker = stakes[_staker]; + return staker.role == _role; + } + + /** + * @dev Return if escrowAddress is use for allocation. + * @param _escrowAddress Address used as signer by the staker for an allocation + * @return True if _escrowAddress already used + */ + function isAllocation( + address _escrowAddress + ) external view override returns (bool) { + return _getAllocationState(_escrowAddress) != AllocationState.Null; + } + + /** + * @dev Getter that returns if an staker has any stake. + * @param _staker Address of the staker + * @return True if staker has staked tokens + */ + function hasStake(address _staker) external view override returns (bool) { + return stakes[_staker].tokensStaked > 0; + } + + /** + * @dev Getter that returns if an staker has any available stake. + * @param _staker Address of the staker + * @return True if staker has available tokens staked + */ + function hasAvailableStake( + address _staker + ) external view override returns (bool) { + return stakes[_staker].tokensAvailable() > 0; + } + + /** + * @dev Return the allocation by escrow address. + * @param _escrowAddress Address used as allocation identifier + * @return Allocation data + */ + function getAllocation( + address _escrowAddress + ) external view override returns (Allocation memory) { + return _getAllocation(_escrowAddress); + } + + /** + * @dev Return the allocation by job ID. + * @param _escrowAddress Address used as allocation identifier + * @return Allocation data + */ + function _getAllocation( + address _escrowAddress + ) private view returns (Allocation memory) { + return allocations[_escrowAddress]; + } + + /** + * @dev Return the current state of an allocation. + * @param _escrowAddress Address used as the allocation identifier + * @return AllocationState + */ + function getAllocationState( + address _escrowAddress + ) external view override returns (AllocationState) { + return _getAllocationState(_escrowAddress); + } + + /** + * @dev Return the current state of an allocation, partially depends on job status + * @param _escrowAddress Job identifier (Escrow address) + * @return AllocationState + */ + function _getAllocationState( + address _escrowAddress + ) private view returns (AllocationState) { + Allocation storage allocation = allocations[_escrowAddress]; + + if (allocation.staker == address(0)) { + return AllocationState.Null; + } + + IEscrow escrow = IEscrow(_escrowAddress); + IEscrow.EscrowStatuses escrowStatus = escrow.getStatus(); + + if ( + allocation.createdAt != 0 && + allocation.tokens > 0 && + escrowStatus == IEscrow.EscrowStatuses.Pending + ) { + return AllocationState.Pending; + } + + if ( + allocation.closedAt == 0 && + escrowStatus == IEscrow.EscrowStatuses.Launched + ) { + return AllocationState.Active; + } + + if ( + allocation.closedAt > 0 && + escrowStatus == IEscrow.EscrowStatuses.Complete + ) { + return AllocationState.Completed; + } + + return AllocationState.Closed; + } + + /** + * @dev Get the total amount of tokens staked by the staker. + * @param _staker Address of the staker + * @return Amount of tokens staked by the staker + */ + function getStakedTokens( + address _staker + ) external view override returns (uint256) { + return stakes[_staker].tokensStaked; + } + + /** + * @dev Get staker data by the staker address. + * @param _staker Address of the staker + * @return Staker's data + */ + function getStaker( + address _staker + ) external view returns (Stakes.Staker memory) { + return stakes[_staker]; + } + + /** + * @dev Get list of stakers per role + * @param _role Staker role + * @return List of staker's addresses, and stake data + */ + function getListOfStakers( + Stakes.Role _role + ) + external + view + override + returns (address[] memory, Stakes.Staker[] memory) + { + address[] memory _stakerAddresses = stakers[_role]; + uint256 _stakersCount = _stakerAddresses.length; + + if (_stakersCount == 0) { + return (new address[](0), new Stakes.Staker[](0)); + } + + Stakes.Staker[] memory _stakers = new Stakes.Staker[](_stakersCount); + + for (uint256 _i = 0; _i < _stakersCount; _i++) { + _stakers[_i] = stakes[_stakerAddresses[_i]]; + } + + return (_stakerAddresses, _stakers); + } + + /** + * @dev Deposit tokens on the staker stake. + * @param _tokens Amount of tokens to stake + */ + function stake(uint256 _tokens) external override onlyStaker(msg.sender) { + require(_tokens > 0, 'Must be a positive number'); + require( + stakes[msg.sender].tokensSecureStake().add(_tokens) >= minimumStake, + 'Total stake is below the minimum threshold' + ); + + HMTokenInterface token = HMTokenInterface(eip20); + token.transferFrom(msg.sender, address(this), _tokens); + + stakes[msg.sender].deposit(_tokens); + + emit StakeDeposited(msg.sender, _tokens); + } + + /** + * @dev Unstake tokens from the staker stake, lock them until lock period expires. + * @param _tokens Amount of tokens to unstake + */ + function unstake(uint256 _tokens) external override onlyStaker(msg.sender) { + Stakes.Staker storage staker = stakes[msg.sender]; + + require(staker.tokensStaked > 0, 'Must be a positive number'); + + uint256 tokensToLock = Math.min(staker.tokensAvailable(), _tokens); + require(tokensToLock > 0, 'Must be a positive number'); + + uint256 newStake = staker.tokensSecureStake().sub(tokensToLock); + require( + newStake == 0 || newStake >= minimumStake, + 'Total stake is below the minimum threshold' + ); + + uint256 tokensToWithdraw = staker.tokensWithdrawable(); + if (tokensToWithdraw > 0) { + _withdraw(msg.sender); + } + + staker.lockTokens(tokensToLock, lockPeriod); + + emit StakeLocked( + msg.sender, + staker.tokensLocked, + staker.tokensLockedUntil + ); + } + + /** + * @dev Withdraw staker tokens based on the locking period. + */ + function withdraw() external override onlyStaker(msg.sender) { + _withdraw(msg.sender); + } + + /** + * @dev Withdraw staker tokens once the lock period has passed. + * @param _staker Address of staker to withdraw funds from + */ + function _withdraw(address _staker) private { + uint256 tokensToWithdraw = stakes[_staker].withdrawTokens(); + require( + tokensToWithdraw > 0, + 'Stake has no available tokens for withdrawal' + ); + + HMTokenInterface token = HMTokenInterface(eip20); + token.transfer(_staker, tokensToWithdraw); + + emit StakeWithdrawn(_staker, tokensToWithdraw); + } + + /** + * @dev Slash the staker stake allocated to the escrow. + * @param _staker Address of staker to slash + * @param _escrowAddress Escrow address + * @param _tokens Amount of tokens to slash from the indexer stake + */ + function slash( + address _staker, + address _escrowAddress, + uint256 _tokens + ) external override onlyValidator(msg.sender) { + require(_escrowAddress != address(0), 'Must be a valid address'); + + Stakes.Staker storage staker = stakes[_staker]; + + Allocation storage allocation = allocations[_escrowAddress]; + + require(allocation.tokens > 0, 'Must be a positive number'); + + require( + _tokens <= allocation.tokens, + 'Slash tokens exceed allocated ones' + ); + + staker.unallocate(_tokens); + allocation.tokens = allocation.tokens.sub(_tokens); + + staker.release(_tokens); + + HMTokenInterface token = HMTokenInterface(eip20); + token.transfer(rewardPool, _tokens); + + // Keep record on Reward Pool + IRewardPool(rewardPool).addReward(_escrowAddress, msg.sender, _tokens); + + emit StakeSlashed(msg.sender, _tokens); + } + + /** + * @dev Allocate available tokens to an escrow. + * @param _escrowAddress The allocationID will work to identify collected funds related to this allocation + * @param _tokens Amount of tokens to allocate + */ + function allocate( + address _escrowAddress, + uint256 _tokens + ) external override onlyStaker(msg.sender) { + _allocate(msg.sender, _escrowAddress, _tokens); + } + + /** + * @dev Allocate available tokens to an escrow. + * @param _staker Staker address to allocate funds from. + * @param _escrowAddress The escrow address which collected funds related to this allocation + * @param _tokens Amount of tokens to allocate + */ + function _allocate( + address _staker, + address _escrowAddress, + uint256 _tokens + ) private { + require(_escrowAddress != address(0), 'Must be a valid address'); + require( + stakes[msg.sender].tokensAvailable() >= _tokens, + 'Insufficient amount of tokens in the stake' + ); + require(_tokens > 0, 'Must be a positive number'); + require( + _getAllocationState(_escrowAddress) == AllocationState.Null, + 'Allocation already exists' + ); + + Allocation memory allocation = Allocation( + _escrowAddress, // Escrow address + _staker, // Staker address + _tokens, // Tokens allocated + block.number, // createdAt + 0 // closedAt + ); + + allocations[_escrowAddress] = allocation; + stakes[_staker].allocate(allocation.tokens); + + emit StakeAllocated( + _staker, + allocation.tokens, + _escrowAddress, + allocation.createdAt + ); + } + + /** + * @dev Close an allocation and free the staked tokens. + * @param _escrowAddress The allocation identifier + */ + function closeAllocation( + address _escrowAddress + ) external override onlyStaker(msg.sender) { + _closeAllocation(_escrowAddress); + } + + /** + * @dev Close an allocation and free the staked tokens. + * @param _escrowAddress The allocation identifier + */ + function _closeAllocation(address _escrowAddress) private { + AllocationState allocationState = _getAllocationState(_escrowAddress); + require( + allocationState == AllocationState.Completed, + 'Allocation has no completed state' + ); + + Allocation memory allocation = allocations[_escrowAddress]; + + allocation.closedAt = block.number; + uint256 diffInBlocks = Math.diffOrZero( + allocation.closedAt, + allocation.createdAt + ); + require(diffInBlocks > 0, 'Allocation cannot be closed so early'); + + stakes[allocation.staker].unallocate(allocation.tokens); + + emit AllocationClosed( + allocation.staker, + allocation.tokens, + _escrowAddress, + allocation.closedAt + ); + } + + modifier onlyOwner() { + require(owner == msg.sender, 'Caller is not a owner'); + _; + } + + modifier onlyStaker(address _staker) { + Stakes.Staker memory staker = stakes[_staker]; + require( + staker.role == Stakes.Role.Operator || + staker.role == Stakes.Role.Validator || + staker.role == Stakes.Role.ExchangeOracle || + staker.role == Stakes.Role.ReputationOracle || + staker.role == Stakes.Role.RecordingOracle, + 'Caller is not a staker' + ); + _; + } + + modifier onlyOperator(address _staker) { + Stakes.Staker memory staker = stakes[_staker]; + require( + staker.role == Stakes.Role.Operator, + 'Caller is not a operator' + ); + _; + } + + modifier onlyValidator(address _staker) { + Stakes.Staker memory staker = stakes[_staker]; + require( + staker.role == Stakes.Role.Validator, + 'Caller is not a validator' + ); + _; + } +} diff --git a/packages/core/contracts/HMTokenInterface.sol b/packages/core/contracts/interfaces/HMTokenInterface.sol similarity index 84% rename from packages/core/contracts/HMTokenInterface.sol rename to packages/core/contracts/interfaces/HMTokenInterface.sol index ca14ea1d86..17a076af54 100644 --- a/packages/core/contracts/HMTokenInterface.sol +++ b/packages/core/contracts/interfaces/HMTokenInterface.sol @@ -18,9 +18,10 @@ interface HMTokenInterface { /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return success Whether the transfer was successful or not - function transfer(address _to, uint256 _value) - external - returns (bool success); + function transfer( + address _to, + uint256 _value + ) external returns (bool success); /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` /// @param _from The address of the sender @@ -43,15 +44,16 @@ interface HMTokenInterface { /// @param _spender The address of the account able to transfer the tokens /// @param _value The amount of tokens to be approved for transfer /// @return success Whether the approval was successful or not - function approve(address _spender, uint256 _value) - external - returns (bool success); + function approve( + address _spender, + uint256 _value + ) external returns (bool success); /// @param _owner The address of the account owning tokens /// @param _spender The address of the account able to transfer the tokens /// @return remaining Amount of remaining tokens allowed to spent - function allowance(address _owner, address _spender) - external - view - returns (uint256 remaining); + function allowance( + address _owner, + address _spender + ) external view returns (uint256 remaining); } diff --git a/packages/core/contracts/interfaces/IEscrow.sol b/packages/core/contracts/interfaces/IEscrow.sol new file mode 100644 index 0000000000..402cfe45be --- /dev/null +++ b/packages/core/contracts/interfaces/IEscrow.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +interface IEscrow { + enum EscrowStatuses { + Launched, + Pending, + Partial, + Paid, + Complete, + Cancelled + } + + function addTrustedHandlers(address[] memory _handlers) external; + + function setup( + address _reputationOracle, + address _recordingOracle, + uint256 _reputationOracleStake, + uint256 _recordingOracleStake, + string memory _url, + string memory _hash + ) external; + + function abort() external; + + function cancel() external returns (bool); + + function complete() external; + + function storeResults(string memory _url, string memory _hash) external; + + function bulkPayOut( + address[] memory _recipients, + uint256[] memory _amounts, + string memory _url, + string memory _hash, + uint256 _txId + ) external returns (bool); + + function getStatus() external view returns (EscrowStatuses); +} diff --git a/packages/core/contracts/interfaces/IRewardPool.sol b/packages/core/contracts/interfaces/IRewardPool.sol new file mode 100644 index 0000000000..7525ddd8c8 --- /dev/null +++ b/packages/core/contracts/interfaces/IRewardPool.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +interface IRewardPool { + /** + * @dev Keep track of slashers how much they slashed per allocations + */ + struct Reward { + address escrowAddress; + address slasher; + uint256 tokens; // Tokens allocated to a escrowAddress + } + + function addReward( + address _escrowAddress, + address slasher, + uint256 tokens + ) external; + + function getRewards( + address _escrowAddress + ) external view returns (Reward[] memory); + + function distributeReward(address _escrowAddress) external; +} diff --git a/packages/core/contracts/interfaces/IStaking.sol b/packages/core/contracts/interfaces/IStaking.sol new file mode 100644 index 0000000000..9ca76b1d71 --- /dev/null +++ b/packages/core/contracts/interfaces/IStaking.sol @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +import '../libs/Stakes.sol'; + +interface IStaking { + /** + * @dev Possible states an allocation can be + * States: + * - Null = Staker == address(0) + * - Pending = not Null && tokens > 0 && escrowAddress status == Pending + * - Active = Pending && escrowAddress status == Launched + * - Closed = Active && closedAt != 0 + * - Completed = Closed && closedAt && escrowAddress status == Complete + */ + enum AllocationState { + Null, + Pending, + Active, + Closed, + Completed + } + + /** + * @dev Possible sort fields + * Fields: + * - None = Do not sort + * - Stake = Sort by stake amount + */ + enum SortField { + None, + Stake + } + + /** + * @dev Allocate HMT tokens for the purpose of serving queries of a subgraph deployment + * An allocation is created in the allocate() function and consumed in claim() + */ + struct Allocation { + address escrowAddress; + address staker; + uint256 tokens; // Tokens allocated to a escrowAddress + uint256 createdAt; // Time when allocation was created + uint256 closedAt; // Time when allocation was closed + } + + function rewardPool() external view returns (address); + + function setMinimumStake(uint256 _minimumStake) external; + + function setLockPeriod(uint32 _lockPeriod) external; + + function setRewardPool(address _rewardPool) external; + + // function setStaker(address _staker, Role _role) external; + + // function isRole(address _account, Role role) external view returns (bool); + + function isAllocation(address _escrowAddress) external view returns (bool); + + function hasStake(address _indexer) external view returns (bool); + + function hasAvailableStake(address _indexer) external view returns (bool); + + function getAllocation( + address _escrowAddress + ) external view returns (Allocation memory); + + function getAllocationState( + address _escrowAddress + ) external view returns (AllocationState); + + function getStakedTokens(address _staker) external view returns (uint256); + + // function getStaker(address _staker) external view returns (Stakes.Staker memory); + + function stake(uint256 _tokens) external; + + function unstake(uint256 _tokens) external; + + function withdraw() external; + + function slash( + address _staker, + address _escrowAddress, + uint256 _tokens + ) external; + + function allocate(address escrowAddress, uint256 _tokens) external; + + function closeAllocation(address _escrowAddress) external; + + function getListOfStakers( + Stakes.Role _role + ) external view returns (address[] memory, Stakes.Staker[] memory); +} diff --git a/packages/core/contracts/libs/Stakes.sol b/packages/core/contracts/libs/Stakes.sol new file mode 100644 index 0000000000..042eb1cd0f --- /dev/null +++ b/packages/core/contracts/libs/Stakes.sol @@ -0,0 +1,195 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +import '../utils/SafeMath.sol'; +import '../utils/Math.sol'; + +/** + * @title Structures, methods and data are available to manage the staker state. + */ +library Stakes { + using SafeMath for uint256; + using Stakes for Stakes.Staker; + + /** + * @dev Possible roles for participants + * Roles: + * - Null = Staker == address(0) + * - Operator = Job Launcher + * - Validator = Validator + * - ExchangeOracle = Exchange Oracle + * - ReputationOracle = Reputation Oracle + * - RecordingOracle = Recording Oracle + */ + enum Role { + Null, + Operator, + Validator, + ExchangeOracle, + ReputationOracle, + RecordingOracle + } + + struct Staker { + Role role; + uint256 tokensStaked; // Tokens staked by the Staker + uint256 tokensAllocated; // Tokens allocated for jobs + uint256 tokensLocked; // Tokens locked for withdrawal + uint256 tokensLockedUntil; // Tokens locked until time + } + + /** + * @dev Deposit tokens to the staker stake. + * @param stake Staker struct + * @param _tokens Amount of tokens to deposit + */ + function deposit(Stakes.Staker storage stake, uint256 _tokens) internal { + stake.tokensStaked = stake.tokensStaked.add(_tokens); + } + + /** + * @dev Withdraw tokens from the staker stake. + * @param stake Staker struct + * @param _tokens Amount of tokens to withdraw + */ + function withdraw(Stakes.Staker storage stake, uint256 _tokens) internal { + stake.tokensStaked = stake.tokensStaked.sub(_tokens); + } + + /** + * @dev Release tokens from the staker stake. + * @param stake Staker struct + * @param _tokens Amount of tokens to release + */ + function release(Stakes.Staker storage stake, uint256 _tokens) internal { + stake.tokensStaked = stake.tokensStaked.sub(_tokens); + } + + /** + * @dev Add tokens from the main stack to tokensAllocated. + * @param stake Staker struct + * @param _tokens Amount of tokens to allocate + */ + function allocate(Stakes.Staker storage stake, uint256 _tokens) internal { + stake.tokensAllocated = stake.tokensAllocated.add(_tokens); + } + + /** + * @dev Unallocate tokens from a escrowAddress back to the main stack. + * @param stake Staker struct + * @param _tokens Amount of tokens to unallocate + */ + function unallocate(Stakes.Staker storage stake, uint256 _tokens) internal { + stake.tokensAllocated = stake.tokensAllocated.sub(_tokens); + } + + /** + * @dev Lock tokens until a lock period pass. + * @param stake Staker struct + * @param _tokens Amount of tokens to unstake + * @param _period Period in blocks that need to pass before withdrawal + */ + function lockTokens( + Stakes.Staker storage stake, + uint256 _tokens, + uint256 _period + ) internal { + uint256 lockingPeriod = _period; + + if (stake.tokensLocked > 0) { + lockingPeriod = Math.weightedAverage( + Math.diffOrZero(stake.tokensLockedUntil, block.number), // Remaining lock period + stake.tokensLocked, + _period, + _tokens + ); + } + + stake.tokensLocked = stake.tokensLocked.add(_tokens); + stake.tokensLockedUntil = block.number.add(lockingPeriod); + } + + /** + * @dev Unlock tokens. + * @param stake Staker struct + * @param _tokens Amount of tokens to unkock + */ + function unlockTokens( + Stakes.Staker storage stake, + uint256 _tokens + ) internal { + stake.tokensLocked = stake.tokensLocked.sub(_tokens); + if (stake.tokensLocked == 0) { + stake.tokensLockedUntil = 0; + } + } + + /** + * @dev Return all tokens available for withdrawal. + * @param stake Staker struct + * @return Amount of tokens available for withdrawal + */ + function withdrawTokens( + Stakes.Staker storage stake + ) internal returns (uint256) { + uint256 tokensToWithdraw = stake.tokensWithdrawable(); + + if (tokensToWithdraw > 0) { + stake.unlockTokens(tokensToWithdraw); + stake.withdraw(tokensToWithdraw); + } + + return tokensToWithdraw; + } + + /** + * @dev Return all tokens available in stake. + * @param stake Staker struct + * @return Token amount + */ + function tokensAvailable( + Stakes.Staker memory stake + ) internal pure returns (uint256) { + return stake.tokensStaked.sub(stake.tokensUsed()); + } + + /** + * @dev Return all tokens used in allocations and locked for withdrawal. + * @param stake Staker struct + * @return Token amount + */ + function tokensUsed( + Stakes.Staker memory stake + ) internal pure returns (uint256) { + return stake.tokensAllocated.add(stake.tokensLocked); + } + + /** + * @dev Return the amount of tokens staked which are not locked. + * @param stake Staker struct + * @return Token amount + */ + function tokensSecureStake( + Stakes.Staker memory stake + ) internal pure returns (uint256) { + return stake.tokensStaked.sub(stake.tokensLocked); + } + + /** + * @dev Tokens available for withdrawal after lock period. + * @param stake Staker struct + * @return Token amount + */ + function tokensWithdrawable( + Stakes.Staker memory stake + ) internal view returns (uint256) { + if ( + stake.tokensLockedUntil == 0 || + block.number < stake.tokensLockedUntil + ) { + return 0; + } + return stake.tokensLocked; + } +} diff --git a/packages/core/contracts/Context.sol b/packages/core/contracts/utils/Context.sol similarity index 100% rename from packages/core/contracts/Context.sol rename to packages/core/contracts/utils/Context.sol diff --git a/packages/core/contracts/utils/Math.sol b/packages/core/contracts/utils/Math.sol new file mode 100644 index 0000000000..1cc658a483 --- /dev/null +++ b/packages/core/contracts/utils/Math.sol @@ -0,0 +1,183 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +import './SafeMath.sol'; + +/** + * @title Math Library + * @notice A collection of functions to perform math operations + */ +library Math { + using SafeMath for uint256; + + enum Rounding { + Down, // Toward negative infinity + Up, // Toward infinity + Zero // Toward zero + } + + /** + * @dev Returns the largest of two numbers. + */ + function max(uint256 a, uint256 b) internal pure returns (uint256) { + return a > b ? a : b; + } + + /** + * @dev Returns the smallest of two numbers. + */ + function min(uint256 a, uint256 b) internal pure returns (uint256) { + return a < b ? a : b; + } + + /** + * @dev Returns the average of two numbers. The result is rounded towards + * zero. + */ + function average(uint256 a, uint256 b) internal pure returns (uint256) { + // (a + b) / 2 can overflow. + return (a & b) + (a ^ b) / 2; + } + + /** + * @dev Calculates the weighted average of two values pondering each of these + * values based on configured weights. The contribution of each value N is + * weightN/(weightA + weightB). + * @param valueA The amount for value A + * @param weightA The weight to use for value A + * @param valueB The amount for value B + * @param weightB The weight to use for value B + */ + function weightedAverage( + uint256 valueA, + uint256 weightA, + uint256 valueB, + uint256 weightB + ) internal pure returns (uint256) { + return + valueA.mul(weightA).add(valueB.mul(weightB)).div( + weightA.add(weightB) + ); + } + + /** + * @dev Returns the difference between two numbers or zero if negative. + */ + function diffOrZero(uint256 x, uint256 y) internal pure returns (uint256) { + return (x > y) ? x.sub(y) : 0; + } + + /** + * @dev Returns the ceiling of the division of two numbers. + * + * This differs from standard division with `/` in that it rounds up instead + * of rounding down. + */ + function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { + // (a + b - 1) / b can overflow on addition, so we distribute. + return a == 0 ? 0 : (a - 1) / b + 1; + } + + /** + * @dev Return the log in base 10, rounded down, of a positive value. + * Returns 0 if given 0. + */ + function log10(uint256 value) internal pure returns (uint256) { + uint256 result = 0; + unchecked { + if (value >= 10 ** 64) { + value /= 10 ** 64; + result += 64; + } + if (value >= 10 ** 32) { + value /= 10 ** 32; + result += 32; + } + if (value >= 10 ** 16) { + value /= 10 ** 16; + result += 16; + } + if (value >= 10 ** 8) { + value /= 10 ** 8; + result += 8; + } + if (value >= 10 ** 4) { + value /= 10 ** 4; + result += 4; + } + if (value >= 10 ** 2) { + value /= 10 ** 2; + result += 2; + } + if (value >= 10 ** 1) { + result += 1; + } + } + return result; + } + + /** + * @dev Return the log in base 10, following the selected rounding direction, of a positive value. + * Returns 0 if given 0. + */ + function log10( + uint256 value, + Rounding rounding + ) internal pure returns (uint256) { + unchecked { + uint256 result = log10(value); + return + result + + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0); + } + } + + /** + * @dev Return the log in base 256, rounded down, of a positive value. + * Returns 0 if given 0. + * + * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string. + */ + function log256(uint256 value) internal pure returns (uint256) { + uint256 result = 0; + unchecked { + if (value >> 128 > 0) { + value >>= 128; + result += 16; + } + if (value >> 64 > 0) { + value >>= 64; + result += 8; + } + if (value >> 32 > 0) { + value >>= 32; + result += 4; + } + if (value >> 16 > 0) { + value >>= 16; + result += 2; + } + if (value >> 8 > 0) { + result += 1; + } + } + return result; + } + + /** + * @dev Return the log in base 10, following the selected rounding direction, of a positive value. + * Returns 0 if given 0. + */ + function log256( + uint256 value, + Rounding rounding + ) internal pure returns (uint256) { + unchecked { + uint256 result = log256(value); + return + result + + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0); + } + } +} diff --git a/packages/core/contracts/Ownable.sol b/packages/core/contracts/utils/Ownable.sol similarity index 100% rename from packages/core/contracts/Ownable.sol rename to packages/core/contracts/utils/Ownable.sol diff --git a/packages/core/contracts/SafeMath.sol b/packages/core/contracts/utils/SafeMath.sol similarity index 100% rename from packages/core/contracts/SafeMath.sol rename to packages/core/contracts/utils/SafeMath.sol diff --git a/packages/core/contracts/utils/Strings.sol b/packages/core/contracts/utils/Strings.sol new file mode 100644 index 0000000000..ab0028ceb1 --- /dev/null +++ b/packages/core/contracts/utils/Strings.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol) + +pragma solidity >=0.6.2; + +import './Math.sol'; + +/** + * @dev String operations. + */ +library Strings { + bytes16 private constant _SYMBOLS = '0123456789abcdef'; + uint8 private constant _ADDRESS_LENGTH = 20; + + /** + * @dev Converts a `uint256` to its ASCII `string` decimal representation. + */ + function toString(uint256 value) internal pure returns (string memory) { + unchecked { + uint256 length = Math.log10(value) + 1; + string memory buffer = new string(length); + uint256 ptr; + /// @solidity memory-safe-assembly + assembly { + ptr := add(buffer, add(32, length)) + } + while (true) { + ptr--; + /// @solidity memory-safe-assembly + assembly { + mstore8(ptr, byte(mod(value, 10), _SYMBOLS)) + } + value /= 10; + if (value == 0) break; + } + return buffer; + } + } + + /** + * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. + */ + function toHexString(uint256 value) internal pure returns (string memory) { + unchecked { + return toHexString(value, Math.log256(value) + 1); + } + } + + /** + * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. + */ + function toHexString( + uint256 value, + uint256 length + ) internal pure returns (string memory) { + bytes memory buffer = new bytes(2 * length + 2); + buffer[0] = '0'; + buffer[1] = 'x'; + for (uint256 i = 2 * length + 1; i > 1; --i) { + buffer[i] = _SYMBOLS[value & 0xf]; + value >>= 4; + } + require(value == 0, 'Strings: hex length insufficient'); + return string(buffer); + } + + /** + * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation. + */ + function toHexString(address addr) internal pure returns (string memory) { + return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH); + } +} diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index f24373fc73..94ce3b2341 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -20,38 +20,36 @@ async function main() { console.log('Escrow Factory Address: ', escrowFactoryContract.address); - // TODO: Enable Staking/RewardPool deployment - - // const Staking = await ethers.getContractFactory('Staking'); - // const stakingContract = await Staking.deploy( - // HMTokenContract.address, - // escrowFactoryContract.address, - // 1, - // 1 - // ); - // await stakingContract.deployed(); - // console.log('Staking Contract Address:', stakingContract.address); - - // const RewardPool = await ethers.getContractFactory('RewardPool'); - // const rewardPoolContract = await RewardPool.deploy( - // HMTokenContract.address, - // stakingContract.address, - // 1 - // ); - // await rewardPoolContract.deployed(); - // console.log('Reward Pool Contract Address:', rewardPoolContract.address); - - // Configure Staking in EscrowFactory - // await escrowFactoryContract.setStaking(stakingContract.address); - - // Configure RewardPool in Staking - // await stakingContract.setRewardPool(rewardPoolContract.address); - const KVStore = await ethers.getContractFactory('KVStore'); const kvStoreContract = await KVStore.deploy(); await kvStoreContract.deployed(); console.log('KVStore Address: ', kvStoreContract.address); + + const Staking = await ethers.getContractFactory('Staking'); + const stakingContract = await Staking.deploy( + HMTokenContract.address, + escrowFactoryContract.address, + 1, + 1 + ); + await stakingContract.deployed(); + console.log('Staking Contract Address:', stakingContract.address); + + const RewardPool = await ethers.getContractFactory('RewardPool'); + const rewardPoolContract = await RewardPool.deploy( + HMTokenContract.address, + stakingContract.address, + 1 + ); + await rewardPoolContract.deployed(); + console.log('Reward Pool Contract Address:', rewardPoolContract.address); + + // Configure Staking in EscrowFactory + await escrowFactoryContract.setStaking(stakingContract.address); + + // Configure RewardPool in Staking + await stakingContract.setRewardPool(rewardPoolContract.address); } main().catch((error) => { diff --git a/packages/core/test/Escrow.ts b/packages/core/test/Escrow.ts index 4df6d28709..ddeeb3eba7 100644 --- a/packages/core/test/Escrow.ts +++ b/packages/core/test/Escrow.ts @@ -2,74 +2,46 @@ import { anyValue } from '@nomicfoundation/hardhat-chai-matchers/withArgs'; import { expect } from 'chai'; import { ethers } from 'hardhat'; import { Signer } from 'ethers'; -import { Escrow, HMToken } from '../typechain-types'; - -const MOCK_URL = 'http://google.com/fake'; -const MOCK_HASH = 'kGKmnj9BRf'; -const BULK_MAX_COUNT = 100; - -enum Status { - Launched = 0, - Pending = 1, - Partial = 2, - Paid = 3, - Complete = 4, - Cancelled = 5, -} - -let owner: Signer, - launcher: Signer, - reputationOracle: Signer, - recordingOracle: Signer, - externalAddress: Signer, - restAccounts: Signer[], - trustedHandlers: string[]; - -let token: HMToken, escrow: Escrow; - -async function deployEscrow() { - // Deploy Escrow Contract - const Escrow = await ethers.getContractFactory('Escrow'); - escrow = await Escrow.deploy( - token.address, - await owner.getAddress(), - 100, - trustedHandlers - ); -} - -async function setupEscrow() { - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); -} - -async function addTrustedHandlers() { - await escrow - .connect(owner) - .addTrustedHandlers([await reputationOracle.getAddress()]); -} - -async function fundEscrow() { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); -} +import { Escrow, HMToken, RewardPool, Staking } from '../typechain-types'; describe('Escrow', function () { - this.beforeAll(async () => { + const MOCK_URL = 'http://google.com/fake'; + const MOCK_HASH = 'kGKmnj9BRf'; + const BULK_MAX_COUNT = 100; + + enum Status { + Launched = 0, + Pending = 1, + Partial = 2, + Paid = 3, + Complete = 4, + Cancelled = 5, + } + + let owner: Signer, + launcher: Signer, + reputationOracle: Signer, + recordingOracle: Signer, + externalAddress: Signer, + restAccounts: Signer[], + trustedHandlers: string[]; + + let token: HMToken, escrow: Escrow, staking: Staking, rewardPool: RewardPool; + + let escrowFactory: Signer; + + const minimumStake = 2; + const lockPeriod = 2; + const rewardFee = 2; + + beforeEach(async () => { [ owner, launcher, reputationOracle, recordingOracle, externalAddress, + escrowFactory, ...restAccounts ] = await ethers.getSigners(); trustedHandlers = [ @@ -80,13 +52,39 @@ describe('Escrow', function () { // Deploy HMTToken Contract const HMToken = await ethers.getContractFactory('HMToken'); token = await HMToken.deploy(1000000000, 'Human Token', 18, 'HMT'); + + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = await Staking.deploy( + token.address, + await escrowFactory.getAddress(), + minimumStake, + lockPeriod + ); + + // Deploy Reward Pool Conract + const RewardPool = await ethers.getContractFactory('RewardPool'); + rewardPool = await RewardPool.deploy( + token.address, + staking.address, + rewardFee + ); + + // Configure RewardPool in Staking + await staking.setRewardPool(rewardPool.address); + + // Deploy Escrow Contract + const Escrow = await ethers.getContractFactory('Escrow'); + escrow = await Escrow.deploy( + token.address, + staking.address, + await owner.getAddress(), + 5, + trustedHandlers + ); }); describe('deployment', () => { - before(async () => { - await deployEscrow(); - }); - it('Should set the right token address', async () => { const result = await escrow.eip20(); expect(result).to.equal(token.address); @@ -117,16 +115,26 @@ describe('Escrow', function () { }); describe('abort', () => { - before(async () => { - await deployEscrow(); - await setupEscrow(); - await addTrustedHandlers(); - }); - describe('Validations', function () { - it('Should revert when aborting with not trusted address', async function () { - // const tx = await escrow.connect(externalAddress).abort() - // console.log(`Abort costs: ${tx.receipt.gasUsed} wei.`); + beforeEach(async () => { + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); + await escrow + .connect(owner) + .addTrustedHandlers([await reputationOracle.getAddress()]); + }); + + it('Should succeeds when aborting with not trusted address', async function () { + //const tx = await escrow.connect(externalAddress).abort() + //console.log(`Abort costs: ${tx.receipt.gasUsed} wei.`); await expect( escrow.connect(externalAddress).abort() ).to.be.revertedWith('Address calling not trusted'); @@ -134,6 +142,22 @@ describe('Escrow', function () { }); describe('Calling abort', function () { + beforeEach(async () => { + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); + await escrow + .connect(owner) + .addTrustedHandlers([await reputationOracle.getAddress()]); + }); + it('Should transfer tokens to owner if contract funded when abort is called', async function () { const amount = 100; await token.connect(owner).transfer(escrow.address, amount); @@ -150,9 +174,17 @@ describe('Escrow', function () { }); describe('addTrustedHandlers', async () => { - before(async () => { - await deployEscrow(); - await setupEscrow(); + beforeEach(async () => { + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); }); describe('Validations', function () { @@ -166,10 +198,12 @@ describe('Escrow', function () { }); describe('Add trusted handlers', async function () { - it('Should succeed when the contract launcher address trusted handlers and a trusted handler stores results', async () => { - await escrow - .connect(owner) - .addTrustedHandlers([await reputationOracle.getAddress()]); + it('Should succeeds when the contract launcher address trusted handlers and a trusted handler stores results', async () => { + await ( + await escrow + .connect(owner) + .addTrustedHandlers([await reputationOracle.getAddress()]) + ).wait(); const result = await ( await escrow @@ -181,17 +215,12 @@ describe('Escrow', function () { 'IntermediateStorage', 'IntermediateStorage event was not emitted' ); - // expect(event._url).to.equal(MOCK_URL, "Manifest url is not correct") - // expect(event._hash).to.equal(MOCK_HASH, "Manifest hash is not correct") }); }); }); describe('storeResults', async () => { describe('Validations', function () { - before(async () => { - await deployEscrow(); - }); it('Should revert with the right error if address calling not trusted', async function () { await expect( escrow.connect(externalAddress).storeResults(MOCK_URL, MOCK_HASH) @@ -209,10 +238,20 @@ describe('Escrow', function () { }); describe('Events', function () { - before(async () => { - await deployEscrow(); - await setupEscrow(); - await addTrustedHandlers(); + beforeEach(async () => { + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); + await escrow + .connect(owner) + .addTrustedHandlers([await reputationOracle.getAddress()]); }); it('Should emit an event on intermediate storage', async function () { @@ -225,13 +264,23 @@ describe('Escrow', function () { }); describe('Store results', async function () { - before(async () => { - await deployEscrow(); - await setupEscrow(); - await addTrustedHandlers(); + beforeEach(async () => { + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); + await escrow + .connect(owner) + .addTrustedHandlers([await reputationOracle.getAddress()]); }); - it('Should succeed when the contract launcher address trusted handlers and a trusted handler stores results', async () => { + it('Should succeeds when the contract launcher address trusted handlers and a trusted handler stores results', async () => { const result = await ( await escrow .connect(reputationOracle) @@ -248,10 +297,6 @@ describe('Escrow', function () { describe('setup', () => { describe('Validations', function () { - before(async () => { - await deployEscrow(); - }); - it('Should revert with the right error if address calling not trusted', async function () { await expect( escrow @@ -314,10 +359,6 @@ describe('Escrow', function () { }); describe('Events', function () { - before(async () => { - await deployEscrow(); - }); - it('Should emit an event on pending', async function () { await expect( escrow @@ -337,12 +378,12 @@ describe('Escrow', function () { }); describe('Setup escrow', async function () { - before(async () => { - await deployEscrow(); - await fundEscrow(); + beforeEach(async () => { + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); }); - it('Should set correct escrow with params', async () => { + it('Should sets correct escrow with params', async () => { await escrow .connect(owner) .setup( @@ -369,10 +410,20 @@ describe('Escrow', function () { describe('cancel', () => { describe('Validations', function () { - before(async () => { - await deployEscrow(); - await fundEscrow(); - await setupEscrow(); + beforeEach(async () => { + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); + + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); await escrow .connect(owner) @@ -393,13 +444,23 @@ describe('Escrow', function () { }); describe('Cancel escrow', async function () { - before(async () => { - await deployEscrow(); - await fundEscrow(); - await setupEscrow(); + beforeEach(async () => { + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); + + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); }); - it('Should succeed when the contract was canceled', async () => { + it('Should succeeds when the contract was canceled', async () => { await escrow.connect(owner).cancel(); const ststus = await escrow.status(); expect(ststus).to.equal(Status.Cancelled); @@ -412,10 +473,20 @@ describe('Escrow', function () { describe('bulkPayOut', () => { describe('Validations', function () { - before(async () => { - await deployEscrow(); - await fundEscrow(); - await setupEscrow(); + beforeEach(async () => { + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); + + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); }); it('Should revert with the right error if address calling is not trusted', async function () { @@ -474,10 +545,20 @@ describe('Escrow', function () { }); describe('Events', function () { - before(async () => { - await deployEscrow(); - await fundEscrow(); - await setupEscrow(); + beforeEach(async () => { + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); + + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); }); it('Should emit an event on bulk transfer', async function () { @@ -496,9 +577,8 @@ describe('Escrow', function () { describe('Bulk payout for recipients', async function () { beforeEach(async () => { - await deployEscrow(); - await fundEscrow(); - await setupEscrow(); + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); }); it('Should pays each recipient their corresponding amount', async () => { @@ -525,6 +605,17 @@ describe('Escrow', function () { const recepients = [account1, account2, account3]; const amounts = [10, 20, 30]; + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); + await escrow .connect(reputationOracle) .bulkPayOut(recepients, amounts, MOCK_URL, MOCK_HASH, '000'); @@ -585,6 +676,16 @@ describe('Escrow', function () { const recepients = [await restAccounts[0].getAddress()]; const amounts = [100]; + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); expect(await escrow.status()).to.equal(Status.Pending); await escrow @@ -604,6 +705,16 @@ describe('Escrow', function () { ]; const amounts = [10, 20, 70]; + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); expect(await escrow.status()).to.equal(Status.Pending); await escrow @@ -619,10 +730,20 @@ describe('Escrow', function () { describe('complete', () => { describe('Validations', function () { - before(async () => { - await deployEscrow(); - await fundEscrow(); - await setupEscrow(); + beforeEach(async () => { + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); + + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); }); it('Should revert with the right error if address calling is not trusted', async function () { @@ -640,9 +761,19 @@ describe('Escrow', function () { describe('Complete escrow', async function () { beforeEach(async () => { - await deployEscrow(); - await fundEscrow(); - await setupEscrow(); + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); + + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); await escrow .connect(owner) @@ -655,7 +786,7 @@ describe('Escrow', function () { ); }); - it('Should succeed when the contract launcher address trusted handlers and a trusted handler stores results', async () => { + it('Should succeeds when the contract launcher address trusted handlers and a trusted handler stores results', async () => { await escrow.connect(owner).complete(); expect(await escrow.status()).to.equal(Status.Complete); }); diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 0b74679524..4f51839507 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -2,18 +2,45 @@ import { anyValue } from '@nomicfoundation/hardhat-chai-matchers/withArgs'; import { expect } from 'chai'; import { ethers } from 'hardhat'; import { Signer } from 'ethers'; -import { EscrowFactory, HMToken } from '../typechain-types'; +import { EscrowFactory, HMToken, Staking } from '../typechain-types'; describe('EscrowFactory', function () { + enum Role { + Operator = 1, + } + let owner: Signer, + operator: Signer, + fakeStaking: Signer, reputationOracle: Signer, recordingOracle: Signer, trustedHandlers: string[]; let token: HMToken, escrowFactory: EscrowFactory; - before(async () => { - [owner, reputationOracle, recordingOracle] = await ethers.getSigners(); + const stakeAmount = 10; + + async function createEscrow() { + const result = await ( + await escrowFactory.connect(operator).createEscrow(trustedHandlers) + ).wait(); + const event = result.events?.[0].args; + + return event; + } + + async function stakeAndCreateEscrow(staking: Staking) { + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(stakeAmount); + + return await createEscrow(); + } + + beforeEach(async () => { + [owner, operator, fakeStaking, reputationOracle, recordingOracle] = + await ethers.getSigners(); trustedHandlers = [ await reputationOracle.getAddress(), @@ -24,6 +51,9 @@ describe('EscrowFactory', function () { const HMToken = await ethers.getContractFactory('HMToken'); token = await HMToken.deploy(1000000000, 'Human Token', 18, 'HMT'); + // Send HMT tokens to the operator + await token.connect(owner).transfer(await operator.getAddress(), 1000); + // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); @@ -31,6 +61,10 @@ describe('EscrowFactory', function () { }); describe('deployment', () => { + it('Should set owner', async () => { + expect(await escrowFactory.owner()).to.equal(await owner.getAddress()); + }); + it('Should set the right token address', async () => { const result = await escrowFactory.eip20(); expect(result).to.equal(token.address); @@ -42,42 +76,160 @@ describe('EscrowFactory', function () { }); }); - describe('createEscrow', () => { - describe('Events', function () { - it('Should emit an event on launched', async function () { - await expect(escrowFactory.connect(owner).createEscrow(trustedHandlers)) - .to.emit(escrowFactory, 'Launched') - .withArgs(token.address, anyValue); + describe('Without staking contract', () => { + it('Operator should not be able to create an escrow', async () => { + await expect( + escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Staking is not configured'); + }); + }); + + describe('With staking contract', () => { + const minimumStake = 2; + const lockPeriod = 2; + + let staking: Staking; + + beforeEach(async () => { + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = await Staking.deploy( + token.address, + escrowFactory.address, + minimumStake, + lockPeriod + ); + + // Approve spend HMT tokens staking contract + await token.connect(operator).approve(staking.address, 1000); + }); + + describe('Configure staking', async () => { + it('Only owner can set staking', async () => { + await expect( + escrowFactory + .connect(operator) + .setStaking(await fakeStaking.getAddress()) + ).to.be.revertedWith('Caller is not owner'); + }); + + it('Owner can set staking', async () => { + await escrowFactory.setStaking(staking.address); + + expect(await escrowFactory.staking()).to.equal(staking.address); + }); + + it("Staking can't be modified", async () => { + await escrowFactory.setStaking(staking.address); + + expect(await escrowFactory.staking()).to.equal(staking.address); + + await expect( + escrowFactory.setStaking(await fakeStaking.getAddress()) + ).to.be.revertedWith('Staking already set'); }); }); - describe('Create escrow', async function () { - it('Should increases counter after new escrow is created', async () => { - const initialCounter = await escrowFactory.counter(); - await escrowFactory.connect(owner).createEscrow(trustedHandlers); + describe('After staking is configured', async () => { + beforeEach(async () => { + // Configure Staking in EscrowFactory + await escrowFactory.setStaking(staking.address); + }); - const newCounter1 = await escrowFactory.counter(); - expect(newCounter1.toString()).to.equal( - (initialCounter.toNumber() + 1).toString() - ); + it('Operator should not be able to create an escrow without staking', async () => { + await expect( + escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); + }); - await escrowFactory.connect(owner).createEscrow(trustedHandlers); + it('Operator should be able to create an escrow after staking', async () => { + const event = await stakeAndCreateEscrow(staking); - const newCounter2 = await escrowFactory.counter(); - expect(newCounter2.toString()).to.equal( - (initialCounter.toNumber() + 2).toString() + expect(event?.eip20).to.equal( + token.address, + 'token address is correct' ); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); }); - it('Should finds the newly created escrow from deployed escrow', async () => { - await escrowFactory.connect(owner).createEscrow(trustedHandlers); + it('Should emit an event on launched', async function () { + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(stakeAmount); + + await expect( + escrowFactory.connect(operator).createEscrow(trustedHandlers) + ) + .to.emit(escrowFactory, 'Launched') + .withArgs(token.address, anyValue, 1); + }); + + it('Should find the newly created escrow from deployed escrow', async () => { + await stakeAndCreateEscrow(staking); const escrowAddress = await escrowFactory.lastEscrow(); const result = await escrowFactory - .connect(owner) + .connect(operator) .hasEscrow(escrowAddress); expect(result).to.equal(true); }); + + it('Operator should be able to create another escrow after allocating some of the stakes', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; + + staking + .connect(operator) + .allocate(escrowAddress.toString(), stakeAmount / 2); + + const event = await createEscrow(); + + expect(event?.eip20).to.equal( + token.address, + 'token address is correct' + ); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('2', 'counter is correct'); + }); + + it('Operator should not be able to create an escrow after allocating all of the stakes', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; + + staking + .connect(operator) + .allocate(escrowAddress.toString(), stakeAmount); + + await expect( + escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); + }); + + it('Operator should be able to create an escrow after staking more tokens', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; + + staking + .connect(operator) + .allocate(escrowAddress.toString(), stakeAmount); + + const event = await stakeAndCreateEscrow(staking); + + expect(event?.eip20).to.equal( + token.address, + 'token address is correct' + ); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('2', 'counter is correct'); + }); }); }); }); diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts new file mode 100644 index 0000000000..637a20dc51 --- /dev/null +++ b/packages/core/test/RewardPool.ts @@ -0,0 +1,312 @@ +import { ethers } from 'hardhat'; +import { Signer } from 'ethers'; +import { + Escrow, + EscrowFactory, + HMToken, + RewardPool, + Staking, +} from '../typechain-types'; +import { expect } from 'chai'; + +describe('RewardPool', function () { + enum Role { + Null = 0, + Operator = 1, + Validator = 2, + ExchangeOracle = 3, + ReputationOracle = 4, + RecordingOracle = 5, + } + + let token: HMToken, + escrowFactory: EscrowFactory, + escrow: Escrow, + staking: Staking, + rewardPool: RewardPool; + let owner: Signer, + validator: Signer, + validator2: Signer, + operator: Signer, + exchangeOracle: Signer, + reputationOracle: Signer, + recordingOracle: Signer, + externalAccount: Signer; + + const minimumStake = 2; + const lockPeriod = 2; + const rewardFee = 2; + const url = 'http://google.com/fake'; + const hash = 'fakehash'; + + beforeEach(async () => { + [ + owner, + validator, + validator2, + operator, + exchangeOracle, + reputationOracle, + recordingOracle, + externalAccount, + ] = await ethers.getSigners(); + + // Deploy HMTToken Contract + const HMToken = await ethers.getContractFactory('HMToken'); + token = await HMToken.deploy(1000000000, 'Human Token', 18, 'HMT'); + + // Send HMT tokens to contract participants + [ + validator, + validator2, + operator, + exchangeOracle, + reputationOracle, + recordingOracle, + externalAccount, + ].forEach(async (account) => { + await token.connect(owner).approve(await account.getAddress(), 1000); + await token + .connect(account) + .transferFrom( + await owner.getAddress(), + await account.getAddress(), + 1000 + ); + }); + + // Deploy Escrow Factory Contract + const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); + + escrowFactory = await EscrowFactory.deploy(token.address); + + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = await Staking.deploy( + token.address, + escrowFactory.address, + minimumStake, + lockPeriod + ); + + // Deploy Reward Pool Conract + const RewardPool = await ethers.getContractFactory('RewardPool'); + rewardPool = await RewardPool.deploy( + token.address, + staking.address, + rewardFee + ); + + // Configure Staking in EscrowFactory + await escrowFactory.setStaking(staking.address); + + // Configure RewardPool in Staking + await staking.setRewardPool(rewardPool.address); + + // Approve spend HMT tokens staking contract + [ + validator, + validator2, + operator, + exchangeOracle, + reputationOracle, + recordingOracle, + externalAccount, + ].map(async (account) => { + await token.connect(account).approve(staking.address, 1000); + }); + }); + + it('Should set eip20 address given to constructor', async () => { + expect(await rewardPool.eip20()).to.equal(token.address); + }); + + it('Should set fee given to constructor', async () => { + expect(await rewardPool.fees()).to.equal(rewardFee); + }); + + describe('Add Reward', () => { + let escrowAddress: string; + const stakedTokens = 10; + const allocatedTokens = 5; + + beforeEach(async () => { + await staking + .connect(owner) + .setStaker(await validator.getAddress(), Role.Validator); + await staking.connect(validator).stake(stakedTokens); + + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(stakedTokens); + + const result = await ( + await escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).wait(); + const event = result.events?.[0].args; + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); + + escrowAddress = event?.escrow; + + await staking.connect(operator).allocate(escrowAddress, allocatedTokens); + }); + + it('Only staking can add reward', async () => { + await expect( + rewardPool + .connect(operator) + .addReward( + ethers.constants.AddressZero, + ethers.constants.AddressZero, + 1 + ) + ).to.be.revertedWith('Caller is not staking contract'); + }); + + it('When slashed is lower than fee, reward record is not created', async () => { + const slashedTokens = 1; + + await staking + .connect(validator) + .slash(await operator.getAddress(), escrowAddress, slashedTokens); + + expect(await token.balanceOf(rewardPool.address)).to.equal(slashedTokens); + + const rewards = await rewardPool.getRewards(escrowAddress); + expect(rewards.length).to.equal(0); + }); + + it('When slashed is higher than fee, reward record is created', async () => { + const slashedTokens = 3; + await expect( + await staking + .connect(validator) + .slash(await operator.getAddress(), escrowAddress, slashedTokens) + ) + .to.emit(rewardPool, 'RewardAdded') + .withArgs( + escrowAddress, + await validator.getAddress(), + slashedTokens - rewardFee + ); + + expect(await token.balanceOf(rewardPool.address)).to.equal(slashedTokens); + + const rewards = await rewardPool.getRewards(escrowAddress); + expect(rewards.length).to.equal(1); + expect(rewards[0].escrowAddress).to.equal(escrowAddress); + expect(rewards[0].slasher).to.equal(await validator.getAddress()); + expect(rewards[0].tokens).to.equal(slashedTokens - rewardFee); + }); + }); + + describe('Distribute Reward', () => { + let escrowAddress: string; + const stakedTokens = 10; + const allocatedTokens = 8; + + beforeEach(async () => { + await staking + .connect(owner) + .setStaker(await validator.getAddress(), Role.Validator); + await staking.connect(validator).stake(stakedTokens); + + await staking + .connect(owner) + .setStaker(await validator2.getAddress(), Role.Validator); + await staking.connect(validator2).stake(stakedTokens); + + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(stakedTokens); + + const result = await ( + await escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).wait(); + const event = result.events?.[0].args; + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); + + escrowAddress = event?.escrow; + + await staking.connect(operator).allocate(escrowAddress, allocatedTokens); + }); + + it('Only escrow itself can distribute the reward', async () => { + await expect( + rewardPool.connect(operator).distributeReward(escrowAddress) + ).to.be.revertedWith('Caller is not escrow'); + }); + + it('Once the escrow is completed, reward should be distributed', async () => { + const vSlashAmount = 2; + const v2SlashAmount = 3; + await staking + .connect(validator) + .slash(await operator.getAddress(), escrowAddress, vSlashAmount); + await staking + .connect(validator2) + .slash(await operator.getAddress(), escrowAddress, v2SlashAmount); + + const vBalanceBefore = await token.balanceOf( + await validator.getAddress() + ); + const v2BalanceBefore = await token.balanceOf( + await validator2.getAddress() + ); + + const Escrow = await ethers.getContractFactory('Escrow'); + escrow = await Escrow.attach(escrowAddress); + + // Deposit escrow + await token.connect(operator).transfer(escrowAddress, 100); + + // Setup escrow + await escrow + .connect(operator) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + url, + hash + ); + + // Payout workers + await escrow + .connect(reputationOracle) + .bulkPayOut( + [await externalAccount.getAddress()], + [100], + url, + hash, + '000' + ); + + // Complete escrow + await escrow.connect(reputationOracle).complete(); + + expect(await token.balanceOf(await validator.getAddress())).to.equal( + vBalanceBefore.add(vSlashAmount - rewardFee) + ); + + expect(await token.balanceOf(await validator2.getAddress())).to.equal( + v2BalanceBefore.add(v2SlashAmount - rewardFee) + ); + + expect(await token.balanceOf(rewardPool.address)).to.equal(rewardFee * 2); + }); + }); +}); diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts new file mode 100644 index 0000000000..185bd6d014 --- /dev/null +++ b/packages/core/test/Staking.ts @@ -0,0 +1,904 @@ +import { anyValue } from '@nomicfoundation/hardhat-chai-matchers/withArgs'; +import { expect } from 'chai'; +import { ethers } from 'hardhat'; +import { Signer } from 'ethers'; +import { + EscrowFactory, + HMToken, + Staking, + RewardPool, +} from '../typechain-types'; + +const mineNBlocks = async (n: number) => { + await Promise.all( + Array(n) + .fill(0) + .map(async () => { + await ethers.provider.send('evm_mine', []); + }) + ); +}; + +describe('Staking', function () { + enum Role { + Null = 0, + Operator = 1, + Validator = 2, + ExchangeOracle = 3, + ReputationOracle = 4, + RecordingOracle = 5, + } + + const minimumStake = 2; + const lockPeriod = 2; + const rewardFee = 1; + + let owner: Signer, + validator: Signer, + operator: Signer, + operator2: Signer, + operator3: Signer, + exchangeOracle: Signer, + reputationOracle: Signer, + recordingOracle: Signer; + + let token: HMToken, + escrowFactory: EscrowFactory, + staking: Staking, + rewardPool: RewardPool; + + this.beforeEach(async () => { + [ + owner, + validator, + operator, + operator2, + operator3, + exchangeOracle, + reputationOracle, + recordingOracle, + ] = await ethers.getSigners(); + + // Deploy HMTToken Contract + const HMToken = await ethers.getContractFactory('HMToken'); + token = await HMToken.deploy(1000000000, 'Human Token', 18, 'HMT'); + + // Send HMT tokens to contract participants + await Promise.all( + [ + validator, + operator, + operator2, + operator3, + exchangeOracle, + reputationOracle, + recordingOracle, + ].map(async (account) => { + await token.connect(owner).approve(await account.getAddress(), 1000); + await token + .connect(account) + .transferFrom( + await owner.getAddress(), + await account.getAddress(), + 1000 + ); + }) + ); + + // Deploy Escrow Factory Contract + const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); + + escrowFactory = await EscrowFactory.deploy(token.address); + + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = await Staking.deploy( + token.address, + escrowFactory.address, + minimumStake, + lockPeriod + ); + + // Deploy Reward Pool Conract + const RewardPool = await ethers.getContractFactory('RewardPool'); + rewardPool = await RewardPool.deploy( + token.address, + staking.address, + rewardFee + ); + + // Configure Staking in EscrowFactory + await escrowFactory.setStaking(staking.address); + + // Topup staking address + await token.connect(owner).transfer(staking.address, 1000); + + // Approve spend HMT tokens staking contract + [ + validator, + operator, + operator2, + operator3, + exchangeOracle, + reputationOracle, + recordingOracle, + ].map(async (account) => { + await token.connect(account).approve(staking.address, 1000); + }); + }); + + describe('deployment', () => { + it('Should set the right token address', async () => { + const result = await staking.eip20(); + expect(result).to.equal(token.address); + }); + + it('Should set the right escrow factory address', async () => { + const result = await staking.escrowFactory(); + expect(result).to.equal(escrowFactory.address); + }); + + it('Should set the minimum stake', async () => { + const result = await staking.minimumStake(); + expect(result.toString()).to.equal(minimumStake.toString()); + }); + + it('Should set the right lock period', async () => { + const result = await staking.lockPeriod(); + expect(result.toString()).to.equal(lockPeriod.toString()); + }); + }); + + describe('setStaker', function () { + describe('Validations', function () { + it('Should revert with the right error if caller is not an owner', async function () { + await expect( + staking + .connect(operator) + .setStaker(ethers.constants.AddressZero, Role.Operator) + ).to.be.revertedWith('Caller is not a owner'); + }); + + it('Should revert with the right error if invalid address', async function () { + await expect( + staking + .connect(owner) + .setStaker(ethers.constants.AddressZero, Role.Operator) + ).to.be.revertedWith('Must be a valid address'); + }); + + it('Should revert with the right error if called want setup himself', async function () { + await expect( + staking + .connect(owner) + .setStaker(await owner.getAddress(), Role.Operator) + ).to.be.revertedWith('Staker cannot set himself'); + }); + }); + + describe('Events', function () { + it('Should emit an event on set staker', async function () { + await expect( + staking + .connect(owner) + .setStaker(await operator2.getAddress(), Role.Operator) + ) + .to.emit(staking, 'SetStaker') + .withArgs(await operator2.getAddress(), anyValue); + }); + }); + + describe('Set address as staker', function () { + it('Should set address as a staker with role', async function () { + await staking + .connect(owner) + .setStaker(await operator3.getAddress(), Role.Operator); + await expect( + await staking + .connect(owner) + .isRole(await operator3.getAddress(), Role.Operator) + ).to.equal(true); + }); + }); + }); + + describe('stake', function () { + this.beforeEach(async () => { + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + }); + + describe('Validations', function () { + it('Should revert with the right error if not a positive number', async function () { + await expect(staking.connect(operator).stake(0)).to.be.revertedWith( + 'Must be a positive number' + ); + }); + + it('Should revert with the right error if total stake is below the minimum threshold', async function () { + await expect(staking.connect(operator).stake(1)).to.be.revertedWith( + 'Total stake is below the minimum threshold' + ); + }); + }); + + describe('Events', function () { + it('Should emit an event on stake deposited', async function () { + await token.connect(operator).approve(staking.address, 100); //! + + await expect(await staking.connect(operator).stake(2)) + .to.emit(staking, 'StakeDeposited') + .withArgs(await operator.getAddress(), anyValue); + }); + }); + + describe('Stake tokens', function () { + it('Should stake token and increase staker stake', async function () { + await staking.connect(operator).stake(2); + await expect( + await staking.connect(operator).hasStake(await operator.getAddress()) + ).to.equal(true); + }); + }); + }); + + describe('unstake', function () { + this.beforeEach(async () => { + const amount = 10; + + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(amount); + }); + + describe('Validations', function () { + it('Should revert with the right error if not a positive number', async function () { + const amount = 0; + + await expect( + staking.connect(operator).unstake(amount) + ).to.be.revertedWith('Must be a positive number'); + }); + + it('Should revert with the right error if total stake is below the minimum threshold', async function () { + const amount = 9; + + await expect( + staking.connect(operator).unstake(amount) + ).to.be.revertedWith('Total stake is below the minimum threshold'); + }); + }); + + describe('Events', function () { + it('Should emit an event on stake locked', async function () { + const amount = 5; + + await expect(await staking.connect(operator).unstake(amount)) + .to.emit(staking, 'StakeLocked') + .withArgs(await operator.getAddress(), anyValue, anyValue); + }); + }); + + describe('Unstake tokens', function () { + it('Should lock tokens for withdrawal', async function () { + const amount = 5; + + await staking.connect(operator).unstake(amount); + const staker = await staking + .connect(operator) + .getStaker(await operator.getAddress()); + await expect(staker.tokensLocked).to.equal(amount.toString()); + await expect(staker.tokensLockedUntil).to.not.equal('0'); + }); + }); + }); + + describe('allocate', function () { + let escrowAddress: string; + + this.beforeEach(async () => { + const amount = 10; + + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(amount); + + const result = await ( + await escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).wait(); + const event = result.events?.[0].args; + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); + + escrowAddress = event?.escrow; + }); + + describe('Validations', function () { + it('Should revert with the right error if not a valid address', async function () { + const amount = 5; + + await expect( + staking + .connect(operator) + .allocate(ethers.constants.AddressZero, amount) + ).to.be.revertedWith('Must be a valid address'); + }); + + it('Should revert with the right error if not an insufficient amount of tokens in the stake', async function () { + const amount = 20; + await expect( + staking.connect(operator).allocate(escrowAddress.toString(), amount) + ).to.be.revertedWith('Insufficient amount of tokens in the stake'); + }); + + it('Should revert with the right error if not a positive number', async function () { + const amount = 0; + + await expect( + staking.connect(operator).allocate(escrowAddress.toString(), amount) + ).to.be.revertedWith('Must be a positive number'); + }); + + it('Should revert with the right error if allocation already exists', async function () { + const amount = 3; + + await staking + .connect(operator) + .allocate(escrowAddress.toString(), amount); + + await expect( + staking.connect(operator).allocate(escrowAddress.toString(), amount) + ).to.be.revertedWith('Allocation already exists'); + }); + }); + + describe('Events', function () { + it('Should emit an event on stake allocated', async function () { + const amount = 5; + + await expect( + await staking + .connect(operator) + .allocate(escrowAddress.toString(), amount) + ) + .to.emit(staking, 'StakeAllocated') + .withArgs( + await operator.getAddress(), + amount, + escrowAddress.toString(), + anyValue + ); + }); + }); + + describe('Allocate tokens', function () { + it('Should allocate tokens to allocation', async function () { + const amount = 5; + + await staking + .connect(operator) + .allocate(escrowAddress.toString(), amount); + const allocation = await staking + .connect(operator) + .getAllocation(escrowAddress.toString()); + + await expect(allocation.escrowAddress).to.equal( + escrowAddress.toString() + ); + await expect(allocation.tokens).to.equal(amount.toString()); + }); + }); + }); + + describe('withdraw', function () { + this.beforeEach(async () => { + const stakeTokens = 10; + + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(stakeTokens); + + const result = await ( + await escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).wait(); + const event = result.events?.[0].args; + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); + }); + + describe('Withdrawal without allocation', function () { + describe('Validations', function () { + it('Should revert with the right error if has no available tokens for withdrawal', async function () { + await expect(staking.connect(operator).withdraw()).to.be.revertedWith( + 'Stake has no available tokens for withdrawal' + ); + }); + }); + + describe('Events', function () { + it('Should emit an event on stake withdrawn', async function () { + const lockedTokens = 5; + await staking.connect(operator).unstake(lockedTokens); + + const stakeTokens = 10; + await staking.connect(operator).stake(stakeTokens); + + await expect(await staking.connect(operator).withdraw()) + .to.emit(staking, 'StakeWithdrawn') + .withArgs(await operator.getAddress(), anyValue); + }); + }); + + describe('Withdraw tokens', function () { + it('Should decrease amount of tokens from tokens staked', async function () { + const restTokensStaked = 5; + const lockedTokens = 5; + + await staking.connect(operator).unstake(lockedTokens); + + const staker = await staking + .connect(operator) + .getStaker(await operator.getAddress()); + + let latestBlockNumber = await ethers.provider.getBlockNumber(); + expect(latestBlockNumber).to.be.lessThan(staker.tokensLockedUntil); + + // Mine N blocks to get through the locking period + await mineNBlocks(lockPeriod); + + latestBlockNumber = await ethers.provider.getBlockNumber(); + expect(staker.tokensLockedUntil).to.lessThanOrEqual( + latestBlockNumber + ); + + await staking.connect(operator).withdraw(); + const stakerAfterWithdrawn = await staking + .connect(operator) + .getStaker(await operator.getAddress()); + + await expect(stakerAfterWithdrawn.tokensStaked).to.equal( + restTokensStaked.toString() + ); + await expect(stakerAfterWithdrawn.tokensLocked).to.equal('0'); + await expect(stakerAfterWithdrawn.tokensLockedUntil).to.equal('0'); + }); + }); + }); + }); + + describe('setMinimumStake', function () { + describe('Validations', function () { + it('Should revert with the right error if caller is not an owner', async function () { + const minumumStake = 0; + + await expect( + staking.connect(operator).setMinimumStake(minumumStake) + ).to.be.revertedWith('Caller is not a owner'); + }); + + it('Should revert with the right error if not a positive number', async function () { + const minumumStake = 0; + + await expect( + staking.connect(owner).setMinimumStake(minumumStake) + ).to.be.revertedWith('Must be a positive number'); + }); + }); + + describe('Events', function () { + it('Should emit an event on stake locked', async function () { + const minumumStake = 5; + + await expect(await staking.connect(owner).setMinimumStake(minumumStake)) + .to.emit(staking, 'SetMinumumStake') + .withArgs(minumumStake); + }); + }); + + describe('Set minimum stake', function () { + it('Should assign a value to minimum stake variable', async function () { + const minumumStake = 5; + + await staking.connect(owner).setMinimumStake(minumumStake); + await expect(await staking.minimumStake()).to.equal(minumumStake); + }); + }); + }); + + describe('setLockPeriod', function () { + describe('Validations', function () { + it('Should revert with the right error if caller is not an owner', async function () { + const lockPeriod = 0; + + await expect( + staking.connect(operator).setLockPeriod(lockPeriod) + ).to.be.revertedWith('Caller is not a owner'); + }); + + it('Should revert with the right error if not a positive number', async function () { + const lockPeriod = 0; + + await expect( + staking.connect(owner).setLockPeriod(lockPeriod) + ).to.be.revertedWith('Must be a positive number'); + }); + }); + + describe('Events', function () { + it('Should emit an event on stake locked', async function () { + const lockPeriod = 5; + + await expect(await staking.connect(owner).setLockPeriod(lockPeriod)) + .to.emit(staking, 'SetLockPeriod') + .withArgs(lockPeriod); + }); + }); + + describe('Set minimum stake', function () { + it('Should assign a value to minimum stake variable', async function () { + const lockPeriod = 5; + + await staking.connect(owner).setLockPeriod(lockPeriod); + await expect(await staking.lockPeriod()).to.equal(lockPeriod); + }); + }); + }); + + describe('setRewardPool', function () { + describe('Validations', function () { + it('Should revert with the right error if caller is not an owner', async function () { + await expect( + staking.connect(operator).setRewardPool(rewardPool.address) + ).to.be.revertedWith('Caller is not a owner'); + }); + + it('Should revert with the right error if not a positive number', async function () { + await expect( + staking.connect(owner).setRewardPool(ethers.constants.AddressZero) + ).to.be.revertedWith('Must be a valid address'); + }); + }); + + describe('Events', function () { + it('Should emit an event on set reward pool', async function () { + await expect( + await staking.connect(owner).setRewardPool(rewardPool.address) + ) + .to.emit(staking, 'SetRewardPool') + .withArgs(rewardPool.address); + }); + }); + + describe('Set minimum stake', function () { + it('Should assign a value to minimum stake variable', async function () { + await staking.connect(owner).setRewardPool(rewardPool.address); + await expect(await staking.rewardPool()).to.equal(rewardPool.address); + }); + }); + }); + + describe('isRole', function () { + describe('Is user has role', function () { + this.beforeEach(async () => { + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + }); + + it('Should return an user has not Operator role', async function () { + expect( + await staking + .connect(owner) + .isRole(await operator.getAddress(), Role.ExchangeOracle) + ).to.equal(false); + }); + + it('Should return an user has Operator role', async function () { + expect( + await staking + .connect(owner) + .isRole(await operator.getAddress(), Role.Operator) + ).to.equal(true); + }); + }); + }); + + describe('isAllocation', function () { + describe('Is escrow address has allocation', function () { + let escrowAddress: string; + + this.beforeEach(async () => { + const stakedTokens = 10; + + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(stakedTokens); + + const result = await ( + await escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).wait(); + const event = result.events?.[0].args; + + expect(event?.eip20).to.equal( + token.address, + 'token address is correct' + ); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); + + escrowAddress = event?.escrow; + }); + + it('Should return an escrow address has not allocation', async function () { + expect( + await staking.connect(owner).isAllocation(escrowAddress) + ).to.equal(false); + }); + + it('Should return an escrow address has allocation', async function () { + const allocatedTokens = 5; + await staking + .connect(operator) + .allocate(escrowAddress, allocatedTokens); + + expect( + await staking.connect(owner).isAllocation(escrowAddress) + ).to.equal(true); + }); + }); + }); + + describe('hasStake', function () { + describe('Is stakes has stake', function () { + this.beforeEach(async () => { + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + }); + + it('Should return an escrow address has not allocation', async function () { + expect( + await staking.connect(owner).hasStake(await operator.getAddress()) + ).to.equal(false); + }); + + it('Should return an escrow address has allocation', async function () { + const stakedTokens = 10; + await staking.connect(operator).stake(stakedTokens); + + expect( + await staking.connect(owner).hasStake(await operator.getAddress()) + ).to.equal(true); + }); + }); + }); + + describe('getAllocation', function () { + describe('Return allocation by escrow address', function () { + let escrowAddress: string; + const allocatedTokens = 5; + + this.beforeEach(async () => { + const stakedTokens = 10; + + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(stakedTokens); + + const result = await ( + await escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).wait(); + const event = result.events?.[0].args; + + expect(event?.eip20).to.equal( + token.address, + 'token address is correct' + ); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); + + escrowAddress = event?.escrow; + + await staking + .connect(operator) + .allocate(escrowAddress, allocatedTokens); + }); + + it('Should return a null allocation by escrow address', async function () { + const allocation = await staking + .connect(operator) + .getAllocation(ethers.constants.AddressZero); + + expect(allocation.escrowAddress).to.equal(ethers.constants.AddressZero); + expect(allocation.staker).to.equal(ethers.constants.AddressZero); + expect(allocation.tokens).to.equal(0); // Tokens allocated to a escrowAddress + expect(allocation.createdAt).to.equal(0); // Time when allocation was created + expect(allocation.closedAt).to.equal(0); // Time when allocation was closed + }); + + it('Should return an allocation by escrow address', async function () { + const allocation = await staking + .connect(operator) + .getAllocation(escrowAddress); + + expect(allocation.escrowAddress).to.equal(escrowAddress); + expect(allocation.staker).to.equal(await operator.getAddress()); + expect(allocation.tokens).to.equal(allocatedTokens); // Tokens allocated to a escrowAddress + }); + }); + }); + + describe('slash', function () { + let escrowAddress: string; + const stakedTokens = 10; + const allocatedTokens = 5; + const slashedTokens = 2; + + this.beforeEach(async () => { + await staking.connect(owner).setRewardPool(rewardPool.address); + + await staking + .connect(owner) + .setStaker(await validator.getAddress(), Role.Validator); + await staking.connect(validator).stake(stakedTokens); + + await staking + .connect(owner) + .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(stakedTokens); + + const result = await ( + await escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).wait(); + const event = result.events?.[0].args; + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); + + escrowAddress = event?.escrow; + + await staking.connect(operator).allocate(escrowAddress, allocatedTokens); + }); + + describe('Validations', function () { + it('Should revert with the right error if caller is not a validator', async function () { + await expect( + staking + .connect(operator) + .slash(await operator.getAddress(), escrowAddress, slashedTokens) + ).to.be.revertedWith('Caller is not a validator'); + }); + + it('Should revert with the right error if invalid address', async function () { + await expect( + staking + .connect(validator) + .slash( + await operator.getAddress(), + ethers.constants.AddressZero, + slashedTokens + ) + ).to.be.revertedWith('Must be a valid address'); + }); + + // TODO: Add additional tests + }); + + describe('Events', function () { + it('Should emit an event on stake slashed', async function () { + await expect( + await staking + .connect(validator) + .slash(await operator.getAddress(), escrowAddress, slashedTokens) + ) + .to.emit(staking, 'StakeSlashed') + .withArgs(await validator.getAddress(), anyValue); + }); + }); + + describe('Return allocation by escrow address', function () { + it('Should slash tokens from stake and transfer to the reward pool', async function () { + const slashedTokens = 2; + + await staking + .connect(validator) + .slash(await operator.getAddress(), escrowAddress, slashedTokens); + + // await staking.connect(operator).withdraw(); + + const allocation = await staking + .connect(operator) + .getAllocation(escrowAddress); + await expect(allocation.tokens).to.equal( + allocatedTokens - slashedTokens + ); + + const stakerAfterSlash = await staking + .connect(operator) + .getStaker(await operator.getAddress()); + await expect(stakerAfterSlash.tokensStaked).to.equal( + stakedTokens - slashedTokens + ); + + await expect(await token.balanceOf(rewardPool.address)).to.equal( + slashedTokens + ); + }); + }); + }); + + describe('getListOfStakers', function () { + const stakedTokens = 2; + + this.beforeEach(async () => { + await Promise.all( + [ + operator, + operator2, + operator3, + exchangeOracle, + reputationOracle, + recordingOracle, + ].map(async (account, index) => { + await staking + .connect(owner) + .setStaker(await account.getAddress(), Role.Operator); + await staking.connect(account).stake(stakedTokens * (index + 1)); + }) + ); + }); + + it('Should return list of stakers', async () => { + const [stakers, stakes] = await staking.getListOfStakers(Role.Operator); + + expect(stakers.length).to.equal(6); + expect(stakes.length).to.equal(6); + + await Promise.all( + [ + operator, + operator2, + operator3, + exchangeOracle, + reputationOracle, + recordingOracle, + ].map(async (account, index) => { + expect(stakers[index]).to.equal(await account.getAddress()); + expect(stakes[index].tokensStaked.toString()).to.equal( + (stakedTokens * (index + 1)).toString() + ); + }) + ); + }); + + it('Should return empty array', async () => { + const [stakers, stakes] = await staking.getListOfStakers( + Role.RecordingOracle + ); + + expect(stakers.length).to.equal(0); + expect(stakes.length).to.equal(0); + }); + }); +}); From 6b66fd1b8a44470aa9a4b4c196129b44bc49111a Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 30 Nov 2022 12:00:33 -0500 Subject: [PATCH 002/216] update core version and fix python sdk check script --- packages/core/package.json | 2 +- packages/sdk/python/scripts/build-contracts.sh | 1 + packages/sdk/typescript/human-protocol-sdk/package.json | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 51e44b66df..ba3c07b6fd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.9", + "version": "1.0.10", "files": [ "contracts/**/*.sol", "abis/**/*.json", diff --git a/packages/sdk/python/scripts/build-contracts.sh b/packages/sdk/python/scripts/build-contracts.sh index 8fc311440d..856de36ddf 100755 --- a/packages/sdk/python/scripts/build-contracts.sh +++ b/packages/sdk/python/scripts/build-contracts.sh @@ -1,5 +1,6 @@ #!/bin/bash set -eux +rm -rf contracts yarn workspace @human-protocol/core compile cp -r ../../core/artifacts/contracts . diff --git a/packages/sdk/typescript/human-protocol-sdk/package.json b/packages/sdk/typescript/human-protocol-sdk/package.json index 1332012c3e..baff67301b 100644 --- a/packages/sdk/typescript/human-protocol-sdk/package.json +++ b/packages/sdk/typescript/human-protocol-sdk/package.json @@ -38,7 +38,7 @@ ] }, "dependencies": { - "@human-protocol/core": "^1.0.9", + "@human-protocol/core": "^1.0.10", "aws-sdk": "^2.1255.0", "crypto": "^1.0.1", "dotenv": "^16.0.3", @@ -47,6 +47,6 @@ "winston": "^3.8.2" }, "peerDependencies": { - "@human-protocol/core": "^1.0.9" + "@human-protocol/core": "^1.0.10" } } From e4a64f5e8bf39e6e5e6499594dd0ab19b4048901 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 30 Nov 2022 12:17:57 -0500 Subject: [PATCH 003/216] fix test script for sdk --- packages/sdk/python/scripts/run-test.sh | 5 +++++ .../sdk/typescript/human-protocol-sdk/scripts/run-test.sh | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/packages/sdk/python/scripts/run-test.sh b/packages/sdk/python/scripts/run-test.sh index cb28d96655..8476cc2af3 100755 --- a/packages/sdk/python/scripts/run-test.sh +++ b/packages/sdk/python/scripts/run-test.sh @@ -1,9 +1,14 @@ #!/bin/bash +set -eux +# Run hardhat node, and deploy contract locally yarn workspace @human-protocol/core local & +# Wait for the contracts to be deployed properly sleep 5 +# Run test pipenv run pytest +# Kill running hardhat node trap 'kill $(jobs -p)' EXIT diff --git a/packages/sdk/typescript/human-protocol-sdk/scripts/run-test.sh b/packages/sdk/typescript/human-protocol-sdk/scripts/run-test.sh index e041f92198..4b5958db3d 100755 --- a/packages/sdk/typescript/human-protocol-sdk/scripts/run-test.sh +++ b/packages/sdk/typescript/human-protocol-sdk/scripts/run-test.sh @@ -1,9 +1,14 @@ #!/bin/bash +set -eux +# Run hardhat node, and deploy contract locally yarn workspace @human-protocol/core local & +# Wait for the contracts to be deployed properly sleep 5 +# Run test npx jest +# Kill running hardhat node trap 'kill $(jobs -p)' EXIT From dc7a729acda302edce66ab2247d025ba743f734c Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 1 Dec 2022 16:42:25 +0100 Subject: [PATCH 004/216] integrate fortune with staking and slashing --- packages/core/contracts/Staking.sol | 2 +- packages/core/scripts/deploy.ts | 6 + .../examples/fortune/launcher/src/App.tsx | 5 + .../src/components/staking/approve.tsx | 29 + .../launcher/src/components/staking/index.css | 0 .../launcher/src/components/staking/index.tsx | 14 + .../launcher/src/components/staking/stake.tsx | 34 + packages/examples/fortune/package.json | 2 +- .../tests/e2e-backend/cancelEscrow.test.js | 19 +- .../fortune/tests/e2e-backend/fixtures.js | 48 +- .../tests/e2e-backend/invalidEscrow.test.js | 40 +- .../tests/e2e-backend/positiveFlow.test.js | 12 +- .../e2e-backend/uniqueFortunePaid.test.js | 11 +- packages/examples/fortune/yarn.lock | 5893 ----------------- yarn.lock | 906 +-- 15 files changed, 632 insertions(+), 6389 deletions(-) create mode 100644 packages/examples/fortune/launcher/src/components/staking/approve.tsx create mode 100644 packages/examples/fortune/launcher/src/components/staking/index.css create mode 100644 packages/examples/fortune/launcher/src/components/staking/index.tsx create mode 100644 packages/examples/fortune/launcher/src/components/staking/stake.tsx delete mode 100644 packages/examples/fortune/yarn.lock diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index cf3846b02e..15b88624d3 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -58,7 +58,7 @@ contract Staking is IStaking { event StakeLocked(address indexed staker, uint256 tokens, uint256 until); /** - * @dev Emitted when `staker` withdrew `tokens` staked. + * @dev Emitted when `staker` withdraws `tokens` staked. */ event StakeWithdrawn(address indexed staker, uint256 tokens); diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index 94ce3b2341..9f81d0c6c5 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -2,6 +2,7 @@ import { ethers } from 'hardhat'; async function main() { + const [owner, recOracle, repOrcale, launcher] = await ethers.getSigners(); const HMToken = await ethers.getContractFactory('HMToken'); const HMTokenContract = await HMToken.deploy( 1000000000, @@ -50,6 +51,11 @@ async function main() { // Configure RewardPool in Staking await stakingContract.setRewardPool(rewardPoolContract.address); + + await HMTokenContract.transfer( + launcher.address, + ethers.utils.parseEther('1000') + ); } main().catch((error) => { diff --git a/packages/examples/fortune/launcher/src/App.tsx b/packages/examples/fortune/launcher/src/App.tsx index 387078bd46..a0ca422c40 100644 --- a/packages/examples/fortune/launcher/src/App.tsx +++ b/packages/examples/fortune/launcher/src/App.tsx @@ -1,6 +1,7 @@ import React, { useState, useEffect } from 'react'; import getWeb3 from './utils/web3'; import Escrow from './components/escrow'; +import Staking from './components/staking'; import './App.css'; @@ -36,6 +37,10 @@ function App() { {!isMetamaskConnected && () } + { + isMetamaskConnected && + () + } { isMetamaskConnected && () diff --git a/packages/examples/fortune/launcher/src/components/staking/approve.tsx b/packages/examples/fortune/launcher/src/components/staking/approve.tsx new file mode 100644 index 0000000000..2f55280f07 --- /dev/null +++ b/packages/examples/fortune/launcher/src/components/staking/approve.tsx @@ -0,0 +1,29 @@ +import React, { useState } from 'react'; +import getWeb3 from '../../utils/web3'; +import factoryAbi from "@human-protocol/core/abis/EscrowFactory.json"; +import hmTokenAbi from '@human-protocol/core/abis/HMToken.json'; +import { ESCROW_FACTORY_ADDRESS, HMT_ADDRESS } from "../../constants/constants"; + +export default function Approve() { + const web3 = getWeb3(); + const [approveAmount, setApprove] = useState(0); + const hmToken = new web3.eth.Contract(hmTokenAbi as [], HMT_ADDRESS); + const factory = new web3.eth.Contract(factoryAbi as [], ESCROW_FACTORY_ADDRESS); + async function approve(){ + const stakingAddress = await factory.methods.staking().call(); + if (approveAmount <= 0) { + return; + } + const accounts = await web3.eth.getAccounts(); + + const value = web3.utils.toWei(approveAmount.toString(), 'ether'); + await hmToken.methods.approve(stakingAddress, value).send({from: accounts[0]}); + } + return ( +
+

Approve HMT for staking contract:

+ setApprove(Number(e.target.value))} /> + +
+ ); +} \ No newline at end of file diff --git a/packages/examples/fortune/launcher/src/components/staking/index.css b/packages/examples/fortune/launcher/src/components/staking/index.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/examples/fortune/launcher/src/components/staking/index.tsx b/packages/examples/fortune/launcher/src/components/staking/index.tsx new file mode 100644 index 0000000000..f1ec7b3108 --- /dev/null +++ b/packages/examples/fortune/launcher/src/components/staking/index.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import Stake from './stake'; +import Approve from './approve'; + +import './index.css'; + +export default function Staking() { + return ( +
+
+
+
+ ) +} diff --git a/packages/examples/fortune/launcher/src/components/staking/stake.tsx b/packages/examples/fortune/launcher/src/components/staking/stake.tsx new file mode 100644 index 0000000000..e24b11dc97 --- /dev/null +++ b/packages/examples/fortune/launcher/src/components/staking/stake.tsx @@ -0,0 +1,34 @@ +import React, { useState } from 'react'; +import getWeb3 from '../../utils/web3'; +import { Contract } from 'web3-eth-contract'; +import stakingAbi from '@human-protocol/core/abis/Staking.json'; +import factoryAbi from "@human-protocol/core/abis/EscrowFactory.json"; +import { ESCROW_FACTORY_ADDRESS } from "../../constants/constants"; + +export default function Stake() { + const web3 = getWeb3(); + const [stakeAmount, setStake] = useState(0); + const factory = new web3.eth.Contract(factoryAbi as [], ESCROW_FACTORY_ADDRESS); + let staking: Contract; + + async function stake(){ + const stakingAddress = await factory.methods.staking().call(); + if(!staking){ + staking = new web3.eth.Contract(stakingAbi as [], stakingAddress); + } + if (stakeAmount <= 0) { + return; + } + const accounts = await web3.eth.getAccounts(); + + const value = web3.utils.toWei(stakeAmount.toString(), 'ether'); + await staking.methods.stake(value).send({from: accounts[0]}); + } + return ( +
+

HMT staking amount(You need to be approved as a staker before):

+ setStake(Number(e.target.value))} /> + +
+ ); +} \ No newline at end of file diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index be20d8f1e4..c6dab13d16 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -12,7 +12,7 @@ "reputation-oracle": "cd reputation-oracle && yarn start", "minio": "docker compose --env-file=.env.development up -d minio-mc", "deploy:contracts": "yarn workspace @human-protocol/core install && yarn workspace @human-protocol/core deploy:local", - "local": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn exchange\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn deploy:contracts\" \"yarn minio\")", + "local": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn deploy:contracts\" \"yarn minio\")", "local:test": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn exchange\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn minio\")", "test:exchange": "cd exchange && yarn test", "test:recording": "cd recording-oracle && yarn test", diff --git a/packages/examples/fortune/tests/e2e-backend/cancelEscrow.test.js b/packages/examples/fortune/tests/e2e-backend/cancelEscrow.test.js index c64687701b..a3c2ea7387 100644 --- a/packages/examples/fortune/tests/e2e-backend/cancelEscrow.test.js +++ b/packages/examples/fortune/tests/e2e-backend/cancelEscrow.test.js @@ -4,10 +4,12 @@ const hmtokenAbi = require('@human-protocol/core/abis/HMToken.json'); const { createEscrowFactory, createEscrow, - fundEscrow, + fundAccountHMT, setupEscrow, setupAgents, sendFortune, + stake, + setupAccounts, } = require('./fixtures'); const { urls, @@ -16,10 +18,16 @@ const { escrowFundAmount, } = require('./constants'); const web3 = new Web3(urls.ethHTTPServer); +let owner; +let launcher; describe('Cancel escrow', () => { + beforeAll(async () => { + [owner, launcher] = await setupAccounts(); + }); test('Flow', async () => { const escrowFactory = createEscrowFactory(); + await stake(escrowFactory); await createEscrow(escrowFactory); const lastEscrowAddr = await escrowFactory.methods.lastEscrow().call(); @@ -31,7 +39,7 @@ describe('Cancel escrow', () => { '0x0000000000000000000000000000000000000000' ); - await fundEscrow(lastEscrowAddr); + await fundAccountHMT(lastEscrowAddr); await setupEscrow(lastEscrowAddr); escrowSt = await Escrow.methods.status().call(); @@ -51,11 +59,10 @@ describe('Cancel escrow', () => { const agent_1_res = await sendFortune(agentAddresses[0], lastEscrowAddr); expect(agent_1_res.status).toBe(201); - const account = (await web3.eth.getAccounts())[0]; const cancellerBalance = BigInt( - await Token.methods.balanceOf(account).call() + await Token.methods.balanceOf(launcher).call() ); - const res = await Escrow.methods.cancel().send({ from: account }); + const res = await Escrow.methods.cancel().send({ from: launcher }); expect(res.status).toBe(true); escrowSt = await Escrow.methods.status().call(); @@ -65,7 +72,7 @@ describe('Cancel escrow', () => { expect(escrowBalance).toBe('0'); const newCancellerBalance = BigInt( - await Token.methods.balanceOf(account).call() + await Token.methods.balanceOf(launcher).call() ); expect(newCancellerBalance - cancellerBalance).toBe(BigInt(value)); const reputationOracleOldBalance = await Token.methods diff --git a/packages/examples/fortune/tests/e2e-backend/fixtures.js b/packages/examples/fortune/tests/e2e-backend/fixtures.js index a5051b2b0f..715b68afe1 100644 --- a/packages/examples/fortune/tests/e2e-backend/fixtures.js +++ b/packages/examples/fortune/tests/e2e-backend/fixtures.js @@ -8,11 +8,21 @@ const { const escrowAbi = require('@human-protocol/core/abis/Escrow.json'); const hmtokenAbi = require('@human-protocol/core/abis/HMToken.json'); const factoryAbi = require('@human-protocol/core/abis/EscrowFactory.json'); +const stakingAbi = require('@human-protocol/core/abis/Staking.json'); const axios = require('axios'); const Web3 = require('web3'); const web3 = new Web3(urls.ethHTTPServer); const Token = new web3.eth.Contract(hmtokenAbi, addresses.hmt); +let owner; +let launcher; + +const setupAccounts = async () => { + owner = (await web3.eth.getAccounts())[0]; + launcher = (await web3.eth.getAccounts())[3]; + await fundAccountHMT(launcher, owner, 1000); + return [owner, launcher]; +}; const createEscrowFactory = () => { const escrowFactory = new web3.eth.Contract( @@ -23,20 +33,29 @@ const createEscrowFactory = () => { return escrowFactory; }; -const createEscrow = async (escrowFactory) => { - const account = (await web3.eth.getAccounts())[0]; +const stake = async (escrowFactory) => { + const stakingAddress = await escrowFactory.methods.staking().call(); + const staking = new web3.eth.Contract(stakingAbi, stakingAddress); + + await staking.methods.setStaker(launcher, 1).send({ from: owner, gasLimit }); + await Token.methods + .approve(stakingAddress, 5) + .send({ from: launcher, gasLimit }); + await staking.methods.stake(5).send({ from: launcher, gasLimit }); +}; +const createEscrow = async (escrowFactory) => { await escrowFactory.methods - .createEscrow([account]) - .send({ from: account, gasLimit }); + .createEscrow([launcher]) + .send({ from: launcher, gasLimit }); + return await escrowFactory.methods.lastEscrow().call(); }; -const fundEscrow = async (escrowAddress) => { - const account = (await web3.eth.getAccounts())[0]; - const value = web3.utils.toWei(`${escrowFundAmount}`, 'ether'); +const fundAccountHMT = async (to, from, amount) => { + const value = web3.utils.toWei(`${amount || escrowFundAmount}`, 'ether'); await Token.methods - .transfer(escrowAddress, value) - .send({ from: account, gasLimit }); + .transfer(to, value) + .send({ from: from || launcher, gasLimit }); }; const setupEscrow = async ( @@ -47,7 +66,6 @@ const setupEscrow = async ( recOracleStake, escrow ) => { - const account = (await web3.eth.getAccounts())[0]; const Escrow = escrow || new web3.eth.Contract(escrowAbi, escrowAddress); try { await Escrow.methods @@ -59,7 +77,7 @@ const setupEscrow = async ( urls.manifestUrl, urls.manifestUrl ) - .send({ from: account, gasLimit }); + .send({ from: launcher, gasLimit }); } catch (err) { return err; } @@ -74,8 +92,8 @@ const setupAgents = async () => { ).data; const agents = []; const accounts = await web3.eth.getAccounts(); - for (let i = 3; i < fortunesRequested + 3; i++) { - agents[i - 3] = accounts[i]; + for (let i = 4; i < fortunesRequested + 4; i++) { + agents[i - 4] = accounts[i]; } return agents; @@ -117,11 +135,13 @@ const calculateRewardAmount = async () => { }; module.exports = { + setupAccounts, createEscrowFactory, createEscrow, - fundEscrow, + fundAccountHMT, setupEscrow, setupAgents, sendFortune, calculateRewardAmount, + stake, }; diff --git a/packages/examples/fortune/tests/e2e-backend/invalidEscrow.test.js b/packages/examples/fortune/tests/e2e-backend/invalidEscrow.test.js index 7a3d614b10..ac6f493b16 100644 --- a/packages/examples/fortune/tests/e2e-backend/invalidEscrow.test.js +++ b/packages/examples/fortune/tests/e2e-backend/invalidEscrow.test.js @@ -4,21 +4,32 @@ const invalidEscrowAbi = require('./contracts/InvalidEscrowAbi.json'); const { createEscrowFactory, createEscrow, - fundEscrow, + fundAccountHMT, setupEscrow, setupAgents, sendFortune, + setupAccounts, + stake, } = require('./fixtures'); const { urls, statusesMap, escrowFundAmount } = require('./constants'); const web3 = new Web3(urls.ethHTTPServer); +let escrowFactory; +let lastEscrowAddr; +let Escrow; describe('Invalid escrow', () => { - test('Invalid escrow setup', async () => { - const escrowFactory = createEscrowFactory(); - await createEscrow(escrowFactory); + beforeAll(async () => { + await setupAccounts(); + escrowFactory = createEscrowFactory(); + await stake(escrowFactory); + }); + + beforeEach(async () => { + lastEscrowAddr = await createEscrow(escrowFactory); + Escrow = new web3.eth.Contract(escrowAbi, lastEscrowAddr); + }); - const lastEscrowAddr = await escrowFactory.methods.lastEscrow().call(); - const Escrow = new web3.eth.Contract(escrowAbi, lastEscrowAddr); + test('Invalid escrow setup', async () => { let escrowSt = await Escrow.methods.status().call(); expect(statusesMap[escrowSt]).toBe('Launched'); @@ -26,7 +37,7 @@ describe('Invalid escrow', () => { '0x0000000000000000000000000000000000000000' ); - await fundEscrow(lastEscrowAddr); + await fundAccountHMT(lastEscrowAddr); // Bad repOracle address let res = await setupEscrow(lastEscrowAddr, 'BadAdress'); @@ -58,12 +69,8 @@ describe('Invalid escrow', () => { }); test('Invalid escrow ABI', async () => { - const escrowFactory = createEscrowFactory(); - await createEscrow(escrowFactory); - - const lastEscrowAddr = await escrowFactory.methods.lastEscrow().call(); // Create an escrow with ABI not matches actual ABI - const Escrow = new web3.eth.Contract(invalidEscrowAbi, lastEscrowAddr); + Escrow = new web3.eth.Contract(invalidEscrowAbi, lastEscrowAddr); let escrowSt = await Escrow.methods.status().call(); expect(statusesMap[escrowSt]).toBe('Launched'); @@ -71,7 +78,7 @@ describe('Invalid escrow', () => { '0x0000000000000000000000000000000000000000' ); - await fundEscrow(lastEscrowAddr); + await fundAccountHMT(lastEscrowAddr); let res = await setupEscrow(lastEscrowAddr, Escrow); expect(res.code).toBe('INVALID_ARGUMENT'); @@ -80,11 +87,6 @@ describe('Invalid escrow', () => { }); test('Invalid fortunes', async () => { - const escrowFactory = createEscrowFactory(); - await createEscrow(escrowFactory); - - const lastEscrowAddr = await escrowFactory.methods.lastEscrow().call(); - const Escrow = new web3.eth.Contract(escrowAbi, lastEscrowAddr); let escrowSt = await Escrow.methods.status().call(); expect(statusesMap[escrowSt]).toBe('Launched'); @@ -92,7 +94,7 @@ describe('Invalid escrow', () => { '0x0000000000000000000000000000000000000000' ); - await fundEscrow(lastEscrowAddr); + await fundAccountHMT(lastEscrowAddr); const agentAddresses = await setupAgents(); diff --git a/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js b/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js index 6c09d64799..7a0d248168 100644 --- a/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js +++ b/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js @@ -4,11 +4,13 @@ const hmtokenAbi = require('@human-protocol/core/abis/HMToken.json'); const { createEscrowFactory, createEscrow, - fundEscrow, + fundAccountHMT, setupEscrow, setupAgents, sendFortune, calculateRewardAmount, + stake, + setupAccounts, } = require('./fixtures'); const { urls, @@ -19,8 +21,14 @@ const { const web3 = new Web3(urls.ethHTTPServer); describe('Positive flow', () => { + beforeAll(async () => { + await setupAccounts(); + }); + test('Flow', async () => { const escrowFactory = createEscrowFactory(); + await stake(escrowFactory); + await createEscrow(escrowFactory); const lastEscrowAddr = await escrowFactory.methods.lastEscrow().call(); const Escrow = new web3.eth.Contract(escrowAbi, lastEscrowAddr); @@ -31,7 +39,7 @@ describe('Positive flow', () => { '0x0000000000000000000000000000000000000000' ); - await fundEscrow(lastEscrowAddr); + await fundAccountHMT(lastEscrowAddr); await setupEscrow(lastEscrowAddr); escrowSt = await Escrow.methods.status().call(); expect(statusesMap[escrowSt]).toBe('Pending'); diff --git a/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js b/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js index fe69048dd7..b30c3af1d1 100644 --- a/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js +++ b/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js @@ -4,11 +4,13 @@ const hmtokenAbi = require('@human-protocol/core/abis/HMToken.json'); const { createEscrowFactory, createEscrow, - fundEscrow, + fundAccountHMT, setupEscrow, setupAgents, sendFortune, calculateRewardAmount, + stake, + setupAccounts, } = require('./fixtures'); const { urls, @@ -19,8 +21,13 @@ const { const web3 = new Web3(urls.ethHTTPServer); describe('Positive flow + adding same fortune. Only one unique fortune teller should be rewarded.', () => { + beforeAll(async () => { + await setupAccounts(); + }); + test('Flow', async () => { const escrowFactory = createEscrowFactory(); + await stake(escrowFactory); await createEscrow(escrowFactory); const lastEscrowAddr = await escrowFactory.methods.lastEscrow().call(); @@ -32,7 +39,7 @@ describe('Positive flow + adding same fortune. Only one unique fortune teller sh '0x0000000000000000000000000000000000000000' ); - await fundEscrow(lastEscrowAddr); + await fundAccountHMT(lastEscrowAddr); await setupEscrow(lastEscrowAddr); escrowSt = await Escrow.methods.status().call(); diff --git a/packages/examples/fortune/yarn.lock b/packages/examples/fortune/yarn.lock deleted file mode 100644 index c7af526359..0000000000 --- a/packages/examples/fortune/yarn.lock +++ /dev/null @@ -1,5893 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.20.0": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.3.tgz#e58c9ae2f7bf7fdf4899160cf1e04400a82cd641" - integrity sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A== - dependencies: - "@babel/types" "^7.20.2" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== - dependencies: - "@babel/compat-data" "^7.20.0" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - -"@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-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" - integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== - 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.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - -"@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.18.6", "@babel/helper-plugin-utils@^7.19.0", "@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-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-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - 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-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== - dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" - integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - 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-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@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-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/template@^7.18.10", "@babel/template@^7.3.3": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@ethereumjs/common@^2.5.0", "@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/tx@^3.3.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" - -"@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.6.3": - 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": - 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": - 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": - 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": - 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/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": - 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": - 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/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/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": - 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.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/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/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/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/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.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/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" - -"@human-protocol/core@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.8.tgz#4933b48c1f51f7e5fd1ad943c8f002ff8d03f22e" - integrity sha512-z0JLzecGu7qPtKcBtAtLnpb+13ScjE7noLL0QH7UKCB9dGq6Z/RQ2Bba+1gnF3izKvkUOzVyWg2amU7j6q9TZA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090" - integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw== - dependencies: - "@jest/types" "^29.2.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.2.1" - jest-util "^29.2.1" - slash "^3.0.0" - -"@jest/core@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.0.tgz#7042d3fd673b51d89d6f6bf8b9f85fb65573629e" - integrity sha512-5DyNvV8452bwqcYyXHCYaAD8UrTiWosrhBY+rc0MBMyXyDzcIL+w5gdlCYhlHbNsHoWnf4nUbRmg++LWfWVtMQ== - dependencies: - "@jest/console" "^29.2.1" - "@jest/reporters" "^29.3.0" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.2.0" - jest-config "^29.3.0" - jest-haste-map "^29.3.0" - jest-message-util "^29.2.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.0" - jest-resolve-dependencies "^29.3.0" - jest-runner "^29.3.0" - jest-runtime "^29.3.0" - jest-snapshot "^29.3.0" - jest-util "^29.2.1" - jest-validate "^29.2.2" - jest-watcher "^29.2.2" - micromatch "^4.0.4" - pretty-format "^29.2.1" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.0.tgz#e7bfe22531813f86040feb75c046faab32fd534d" - integrity sha512-8wgn3br51bx+7rgC8FOKmAD62Q39iswdiy5/p6acoekp/9Bb/IQbh3zydOrnGp74LwStSrKgpQSKBlOKlAQq0g== - dependencies: - "@jest/fake-timers" "^29.3.0" - "@jest/types" "^29.2.1" - "@types/node" "*" - jest-mock "^29.3.0" - -"@jest/expect-utils@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" - integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== - dependencies: - jest-get-type "^29.2.0" - -"@jest/expect@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.0.tgz#06907ffc02541c8d5186e8324765a72f391f3125" - integrity sha512-Lz/3x4Se5g6nBuLjTO+xE8D4OXY9fFmosZPwkXXZUJUsp9r9seN81cJa54wOGr1QjCQnhngMqclblhM4X/hcCg== - dependencies: - expect "^29.3.0" - jest-snapshot "^29.3.0" - -"@jest/fake-timers@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.0.tgz#ffa74e5b2937676849866cac79cac6a742697f00" - integrity sha512-SzmWtN6Rld+xebMRGuWeMGhytc7qHnYfFk1Zd/1QavQWsFOmA9SgtvGHCBue1wXQhdDMaSIm1aPGj2Zmyrr1Zg== - dependencies: - "@jest/types" "^29.2.1" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^29.2.1" - jest-mock "^29.3.0" - jest-util "^29.2.1" - -"@jest/globals@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.0.tgz#f58c14d727fd7d02d7851bc03fc0445eefa2dbe2" - integrity sha512-okYDVzYNrt/4ysR8XnX6u0I1bGG4kmfdXtUu7kwWHZ9OP13RCjmphgve0tfOrNluwksWvOPYS1f/HOrFTHLygQ== - dependencies: - "@jest/environment" "^29.3.0" - "@jest/expect" "^29.3.0" - "@jest/types" "^29.2.1" - jest-mock "^29.3.0" - -"@jest/reporters@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.0.tgz#e5e2af97d7754510393d7c04084744841cce2eaf" - integrity sha512-MV76tB3Kd80vcv2yMDZfQpMkwkHaY9hlvVhCtHXkVRCWwN+SX3EOmCdX8pT/X4Xh+NusA7l2Rc3yhx4q5p3+Fg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.2.1" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" - "@jridgewell/trace-mapping" "^0.3.15" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.2.1" - jest-util "^29.2.1" - jest-worker "^29.3.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/source-map@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" - integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== - dependencies: - "@jridgewell/trace-mapping" "^0.3.15" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb" - integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA== - dependencies: - "@jest/console" "^29.2.1" - "@jest/types" "^29.2.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.0.tgz#0c2198fe482c26d763abbcb183992ae769bb7978" - integrity sha512-XQlTP/S6Yf6NKV0Mt4oopFKyDxiEkDMD7hIFcCTeltKQszE0Z+LI5KLukwNW6Qxr1YzaZ/s6PlKJusiCLJNTcw== - dependencies: - "@jest/test-result" "^29.2.1" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.0" - slash "^3.0.0" - -"@jest/transform@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.0.tgz#7f71c9596d5bad1613a3a5eb26729dd84fc71a5a" - integrity sha512-4T8h61ItCakAlJkdYa7XVWP3r39QldlCeOSNmRpiJisi5PrrlzwZdpJDIH13ZZjh+MlSPQ2cq8YbUs3TuH+tRA== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.2.1" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.0" - jest-regex-util "^29.2.0" - jest-util "^29.2.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" - integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== - dependencies: - "@jest/schemas" "^29.0.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.0", "@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.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@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" - -"@noble/hashes@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" - integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== - -"@noble/hashes@~1.1.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" - integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== - -"@noble/secp256k1@1.6.3", "@noble/secp256k1@~1.6.0": - version "1.6.3" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" - integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== - -"@nomicfoundation/ethereumjs-block@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz#fdd5c045e7baa5169abeed0e1202bf94e4481c49" - integrity sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA== - dependencies: - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-tx" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-blockchain@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz#1a8c243a46d4d3691631f139bfb3a4a157187b0c" - integrity sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw== - dependencies: - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-ethash" "^2.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - 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@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz#f6bcc7753994555e49ab3aa517fc8bcf89c280b9" - integrity sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA== - dependencies: - "@nomicfoundation/ethereumjs-util" "^8.0.0" - crc-32 "^1.2.0" - -"@nomicfoundation/ethereumjs-ethash@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz#11539c32fe0990e1122ff987d1b84cfa34774e81" - integrity sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew== - dependencies: - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - abstract-level "^1.0.3" - bigint-crypto-utils "^3.0.23" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-evm@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz#99cd173c03b59107c156a69c5e215409098a370b" - integrity sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q== - dependencies: - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - "@types/async-eventemitter" "^0.2.1" - async-eventemitter "^0.2.4" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - mcl-wasm "^0.7.1" - rustbn.js "~0.2.0" - -"@nomicfoundation/ethereumjs-rlp@^4.0.0", "@nomicfoundation/ethereumjs-rlp@^4.0.0-beta.2": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz#d9a9c5f0f10310c8849b6525101de455a53e771d" - integrity sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw== - -"@nomicfoundation/ethereumjs-statemanager@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz#14a9d4e1c828230368f7ab520c144c34d8721e4b" - integrity sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ== - dependencies: - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - functional-red-black-tree "^1.0.1" - -"@nomicfoundation/ethereumjs-trie@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz#dcfbe3be53a94bc061c9767a396c16702bc2f5b7" - integrity sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A== - dependencies: - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - ethereum-cryptography "0.1.3" - readable-stream "^3.6.0" - -"@nomicfoundation/ethereumjs-tx@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz#59dc7452b0862b30342966f7052ab9a1f7802f52" - integrity sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w== - dependencies: - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-util@^8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz#deb2b15d2c308a731e82977aefc4e61ca0ece6c5" - integrity sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A== - dependencies: - "@nomicfoundation/ethereumjs-rlp" "^4.0.0-beta.2" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-vm@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz#2bb50d332bf41790b01a3767ffec3987585d1de6" - integrity sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w== - dependencies: - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-evm" "^1.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-tx" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - "@types/async-eventemitter" "^0.2.1" - async-eventemitter "^0.2.4" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - functional-red-black-tree "^1.0.1" - mcl-wasm "^0.7.1" - rustbn.js "~0.2.0" - -"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.0.tgz#83a7367342bd053a76d04bbcf4f373fef07cf760" - integrity sha512-vEF3yKuuzfMHsZecHQcnkUrqm8mnTWfJeEVFHpg+cO+le96xQA4lAJYdUan8pXZohQxv1fSReQsn4QGNuBNuCw== - -"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.0.tgz#1225f7da647ae1ad25a87125664704ecc0af6ccc" - integrity sha512-dlHeIg0pTL4dB1l9JDwbi/JG6dHQaU1xpDK+ugYO8eJ1kxx9Dh2isEUtA4d02cQAl22cjOHTvifAk96A+ItEHA== - -"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.0.tgz#dbc052dcdfd50ae50fd5ae1788b69b4e0fa40040" - integrity sha512-WFCZYMv86WowDA4GiJKnebMQRt3kCcFqHeIomW6NMyqiKqhK1kIZCxSLDYsxqlx396kKLPN1713Q1S8tu68GKg== - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.0.tgz#e6b2eea633995b557e74e881d2a43eab4760903d" - integrity sha512-DTw6MNQWWlCgc71Pq7CEhEqkb7fZnS7oly13pujs4cMH1sR0JzNk90Mp1zpSCsCs4oKan2ClhMlLKtNat/XRKQ== - -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.0.tgz#af81107f5afa794f19988a368647727806e18dc4" - integrity sha512-wUpUnR/3GV5Da88MhrxXh/lhb9kxh9V3Jya2NpBEhKDIRCDmtXMSqPMXHZmOR9DfCwCvG6vLFPr/+YrPCnUN0w== - -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.0.tgz#6877e1da1a06a9f08446070ab6e0a5347109f868" - integrity sha512-lR0AxK1x/MeKQ/3Pt923kPvwigmGX3OxeU5qNtQ9pj9iucgk4PzhbS3ruUeSpYhUxG50jN4RkIGwUMoev5lguw== - -"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.0.tgz#bb6cd83a0c259eccef4183796b6329a66cf7ebd9" - integrity sha512-A1he/8gy/JeBD3FKvmI6WUJrGrI5uWJNr5Xb9WdV+DK0F8msuOqpEByLlnTdLkXMwW7nSl3awvLezOs9xBHJEg== - -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.0.tgz#9d4bca1cc9a1333fde985675083b0b7d165f6076" - integrity sha512-7x5SXZ9R9H4SluJZZP8XPN+ju7Mx+XeUMWZw7ZAqkdhP5mK19I4vz3x0zIWygmfE8RT7uQ5xMap0/9NPsO+ykw== - -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.0.tgz#0db5bfc6aa952bea4098d8d2c8947b4e5c4337ee" - integrity sha512-m7w3xf+hnE774YRXu+2mGV7RiF3QJtUoiYU61FascCkQhX3QMQavh7saH/vzb2jN5D24nT/jwvaHYX/MAM9zUw== - -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.0.tgz#2e0f39a2924dcd77db6b419828595e984fabcb33" - integrity sha512-xCuybjY0sLJQnJhupiFAXaek2EqF0AP0eBjgzaalPXSNvCEN6ZYHvUzdA50ENDVeSYFXcUsYf3+FsD3XKaeptA== - -"@nomicfoundation/solidity-analyzer@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.0.tgz#e5ddc43ad5c0aab96e5054520d8e16212e125f50" - integrity sha512-xGWAiVCGOycvGiP/qrlf9f9eOn7fpNbyJygcB0P21a1MDuVPlKt0Srp7rvtBEutYQ48ouYnRXm33zlRnlTOPHg== - optionalDependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.0" - "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.0" - "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.1.0" - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.0" - "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.0" - "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.0" - "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.0" - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.1.0" - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.0" - "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.0" - -"@scure/base@~1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" - integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== - -"@scure/bip32@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.0.tgz#dea45875e7fbc720c2b4560325f1cf5d2246d95b" - integrity sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q== - dependencies: - "@noble/hashes" "~1.1.1" - "@noble/secp256k1" "~1.6.0" - "@scure/base" "~1.1.0" - -"@scure/bip39@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.0.tgz#92f11d095bae025f166bef3defcc5bf4945d419a" - integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== - dependencies: - "@noble/hashes" "~1.1.1" - "@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" - -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - -"@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== - -"@sinonjs/commons@^1.7.0": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.5.tgz#e280c94c95f206dcfd5aca00a43f2156b758c764" - integrity sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@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" - -"@types/async-eventemitter@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz#f8e6280e87e8c60b2b938624b0a3530fb3e24712" - integrity sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg== - -"@types/babel__core@^7.1.14": - version "7.1.20" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" - integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== - dependencies: - "@babel/types" "^7.3.0" - -"@types/bn.js@^4.11.3": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/bn.js@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - dependencies: - "@types/node" "*" - -"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/http-cache-semantics@*": - 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/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - 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== - -"@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== - 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== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/keyv@*": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-4.2.0.tgz#65b97868ab757906f2dbb653590d7167ad023fa0" - integrity sha512-xoBtGl5R9jeKUhc8ZqeYaRDx04qqJ10yhhXYGmJ4Jr8qKpvMsDQQrNUvF/wUJ4klOtmJeJM+p2Xo3zp9uaC3tw== - dependencies: - keyv "*" - -"@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/node@*": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== - -"@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/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== - dependencies: - "@types/node" "*" - -"@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== - -"@types/responselike@*", "@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== - dependencies: - "@types/node" "*" - -"@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== - dependencies: - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@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== - -"@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== - dependencies: - "@types/yargs-parser" "*" - -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.3: - 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" - -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" - -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== - -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" - -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" - -ajv@^6.12.3: - 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" - -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@^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@^4.2.1, ansi-escapes@^4.3.0: - 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-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-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: - 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== - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -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" - -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== - -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== - -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" - -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== - -async-eventemitter@^0.2.4: - 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@^2.4.0: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -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== - -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== - -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.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -babel-jest@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.0.tgz#31fd7ef97dd6a77ddd1b4ab1f8cf77c29e20bb5c" - integrity sha512-LzQWdGm6hUugVeyGpIKI/T4SVT+PgAA5WFPqBDbneK7C/PqfckNb0tc4KvcKXq/PLA1yY6wTvB8Bc/REQdUxFg== - dependencies: - "@jest/transform" "^29.3.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.2.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" - integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" - integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== - dependencies: - babel-plugin-jest-hoist "^29.2.0" - babel-preset-current-node-syntax "^1.0.0" - -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" - -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== - -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" - -bigint-crypto-utils@^3.0.23: - version "3.1.7" - resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.7.tgz#c4c1b537c7c1ab7aadfaecf3edfd45416bf2c651" - integrity sha512-zpCQpIE2Oy5WIQpjC9iYZf8Uh9QqoS51ZCooAcNvzv1AQ3VWdT52D0ksr1+/faeK8HVIej1bxXcP75YcqH3KPA== - dependencies: - bigint-mod-arith "^3.1.0" - -bigint-mod-arith@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz#658e416bc593a463d97b59766226d0a3021a76b1" - integrity sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ== - -bignumber.js@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== - -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== - -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== - -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9: - 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.1, 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, body-parser@^1.16.0: - 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" - -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@^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-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.0.1: - 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.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -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-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-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@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -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" - integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== - dependencies: - node-gyp-build "^4.3.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" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.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-request@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - 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" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -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== - -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== - -caniuse-lite@^1.0.30001400: - version "1.0.30001431" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" - integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== - -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== - -chalk@^2.0.0, 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.1.0: - 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" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chokidar@3.5.3, chokidar@^3.4.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - 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.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" - integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== - -cids@^0.7.1: - 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" - -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" - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -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== - -classic-level@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" - integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.0" - module-error "^1.0.1" - napi-macros "~2.0.0" - node-gyp-build "^4.3.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== - -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" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - 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.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== - -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== - -commander@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concurrently@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.5.0.tgz#4dd432d4634a8251f27ab000c4974e78e3906bd3" - integrity sha512-5E3mwiS+i2JYBzr5BpXkFxOnleZTMsG+WnE/dCG4/P+oiVXrbmrBwJ2ozn4SxwB2EZDrKR568X+puVohxz3/Mg== - dependencies: - chalk "^4.1.0" - date-fns "^2.29.1" - lodash "^4.17.21" - rxjs "^7.0.0" - shell-quote "^1.7.3" - spawn-command "^0.0.2-1" - supports-color "^8.1.0" - tree-kill "^1.2.2" - yargs "^17.3.1" - -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.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.6.0, convert-source-map@^1.7.0: - 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-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: - 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== - -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== - -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" - -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== - -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" - -cross-env@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - -cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -cross-spawn@^7.0.1, 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: - 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" - -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" - -date-fns@^2.29.1: - version "2.29.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== - -debug@2.6.9, debug@^2.2.0: - 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@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.3: - 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" - -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== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - -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" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -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== - -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== - -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== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -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-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" - integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== - -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== - -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" - -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== - -dotenv@^16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== - -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" - -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== - -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== - -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" - -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - -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== - -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== - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enquirer@^2.3.0: - 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 "^4.1.1" - -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== - -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" - -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.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-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" - -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-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: - 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@^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== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -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== - -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-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-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" - -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-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: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz#74f2ac0f0f5fe79f012c889b3b8446a9a6264e6d" - integrity sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ== - dependencies: - "@noble/hashes" "1.1.2" - "@noble/secp256k1" "1.6.3" - "@scure/bip32" "1.1.0" - "@scure/bip39" "1.1.0" - -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-util@^6.0.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@^7.0.10, 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" - -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.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== - -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.0.0: - 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" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.0.tgz#2dad3a73ac837dd8074ff91d25cf1614c3e91504" - integrity sha512-bms139btnQNZh4uxCPmzbWz46YOjtEpYIZ847OfY9GCeSBEfzedHWH0CkdR20Sy+XBs8/FI2lFJPZiuH0NGv+w== - dependencies: - "@jest/expect-utils" "^29.2.2" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-util "^29.2.1" - -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@^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@~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== - -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== - -fast-deep-equal@^3.1.1: - 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-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.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== - -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" - -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" - -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-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@^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@^4.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" - -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== - -follow-redirects@^1.12.1, 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== - -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" - -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@^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" - -"fortune@link:.": - version "0.0.0" - uid "" - -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== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.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: - 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.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-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.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.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== - -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== - -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== - -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-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-intrinsic@^1.0.2, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -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-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== - -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" - -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@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@^7.1.3, glob@^7.1.4: - 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" - -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== - -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@^11.8.5: - version "11.8.5" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hardhat@^2.12.2: - version "2.12.2" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.2.tgz#6ae985007b20c1f381c6573799d66c1438c4c802" - integrity sha512-f3ZhzXy1uyQv0UXnAQ8GCBOWjzv++WJNb7bnm10SsyC3dB7vlPpsMWBNhq7aoRxKrNhX9tCev81KFV3i5BTeMQ== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-evm" "^1.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-tx" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - "@nomicfoundation/ethereumjs-vm" "^6.0.0" - "@nomicfoundation/solidity-analyzer" "^0.1.0" - "@sentry/node" "^5.18.1" - "@types/bn.js" "^5.1.0" - "@types/lru-cache" "^5.1.0" - abort-controller "^3.0.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" - qs "^6.7.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.4.0" - uuid "^8.3.2" - ws "^7.4.6" - -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-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@^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" - -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" - -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== - -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" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -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-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-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.1.11" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" - integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -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== - -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" - -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== - -immutable@^4.0.0-rc.12: - version "4.1.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" - integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -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@^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== - -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: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -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" - -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== - -is-arguments@^1.0.4: - 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-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-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-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-callable@^1.1.3: - 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-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - -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-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-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-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -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.1, 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-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-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-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-typed-array@^1.1.10, is-typed-array@^1.1.3: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -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-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== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" - integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== - dependencies: - execa "^5.0.0" - p-limit "^3.1.0" - -jest-circus@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.0.tgz#997354276d24706e14549cab98ac2995d63c92fd" - integrity sha512-xL1cmbUGBGy923KBZpZ2LRKspHlIhrltrwGaefJ677HXCPY5rTF758BtweamBype2ogcSEK/oqcp1SmYZ/ATig== - dependencies: - "@jest/environment" "^29.3.0" - "@jest/expect" "^29.3.0" - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^29.2.1" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-runtime "^29.3.0" - jest-snapshot "^29.3.0" - jest-util "^29.2.1" - p-limit "^3.1.0" - pretty-format "^29.2.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.0.tgz#7ca1913f6088570ae58bbb312d70500e00120d41" - integrity sha512-rDb9iasZvqTkgrlwzVGemR5i20T0/XN1ug46Ch2vxTRa0zS5PHaVXQXYzYbuLFHs1xpc+XsB9xPfEkkwbnLJBg== - dependencies: - "@jest/core" "^29.3.0" - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^29.3.0" - jest-util "^29.2.1" - jest-validate "^29.2.2" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.0.tgz#4b30188390636106414ea6b43aa6b2fb30d1a54d" - integrity sha512-sTSDs/M+//njznsytxiBxwfDnSWRb6OqiNSlO/B2iw1HUaa1YLsdWmV4AWLXss1XKzv1F0yVK+kA4XOhZ0I1qQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.0" - "@jest/types" "^29.2.1" - babel-jest "^29.3.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.3.0" - jest-environment-node "^29.3.0" - jest-get-type "^29.2.0" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.0" - jest-runner "^29.3.0" - jest-util "^29.2.1" - jest-validate "^29.2.2" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.2.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" - integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.2.0" - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - -jest-docblock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" - integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29" - integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw== - dependencies: - "@jest/types" "^29.2.1" - chalk "^4.0.0" - jest-get-type "^29.2.0" - jest-util "^29.2.1" - pretty-format "^29.2.1" - -jest-environment-node@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.0.tgz#aed95a8e566d80f9f8564fba01ca5caa9d0aa59a" - integrity sha512-oikVE5pyiBUMrqi7J/kFGd1zeT14+EnJulyqzopDNijLX13ygwjiOF/GVpVKSGyBrrAwSkaj/ohEQJCcjkCtOA== - dependencies: - "@jest/environment" "^29.3.0" - "@jest/fake-timers" "^29.3.0" - "@jest/types" "^29.2.1" - "@types/node" "*" - jest-mock "^29.3.0" - jest-util "^29.2.1" - -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - -jest-haste-map@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.0.tgz#9786f501ed6ab1c7adc35d3f83c1c21ed4172c77" - integrity sha512-ugdLIreycMRRg3+6AjiExECmuFI2D9PS+BmNU7eGvBt3fzVMKybb9USAZXN6kw4Q6Mn8DSK+7OFCloY2rN820Q== - dependencies: - "@jest/types" "^29.2.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.2.1" - jest-worker "^29.3.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc" - integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug== - dependencies: - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - -jest-matcher-utils@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" - integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== - dependencies: - chalk "^4.0.0" - jest-diff "^29.2.1" - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - -jest-message-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" - integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.2.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.0.tgz#aa6f1d5118fd4b9d007df782e0624e6efab6d33d" - integrity sha512-BRKfsAaeP3pTWeog+1D0ILeJF96SzB6y3k0JDxY63kssxiUy9nDLHmNUoVkBGILjMbpHULhbzVTsb3harPXuUQ== - dependencies: - "@jest/types" "^29.2.1" - "@types/node" "*" - jest-util "^29.2.1" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" - integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== - -jest-resolve-dependencies@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.0.tgz#9a2c3389d1a4cce95445f7c34b0b25f44fff9fad" - integrity sha512-ykSbDbWmIaHprOBig57AExw7i6Fj0y69M6baiAd75Ivx1UMQt4wsM6A+SNqIhycV6Zy8XV3L40Ac3HYSrDSq7w== - dependencies: - jest-regex-util "^29.2.0" - jest-snapshot "^29.3.0" - -jest-resolve@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.0.tgz#038711e9af86f4b4f55a407db14310bc57a8beb4" - integrity sha512-xH6C6loDlOWEWHdCgioLDlbpmsolNdNsV/UR35ChuK217x0ttHuhyEPdh5wa6CTQ/Eq4OGW2/EZTlh0ay5aojQ== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.2.1" - jest-validate "^29.2.2" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.0.tgz#fc255482594c1536a34e2b41f610355c4f3d2ee6" - integrity sha512-E/ROzAVj7gy44FvIe+Tbz0xGWG1sa8WLkhUg/hsXHewPC0Z48kqWySdfYRtXkB7RmMn4OcWE+hIBfsRAMVV+sQ== - dependencies: - "@jest/console" "^29.2.1" - "@jest/environment" "^29.3.0" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.2.0" - jest-environment-node "^29.3.0" - jest-haste-map "^29.3.0" - jest-leak-detector "^29.2.1" - jest-message-util "^29.2.1" - jest-resolve "^29.3.0" - jest-runtime "^29.3.0" - jest-util "^29.2.1" - jest-watcher "^29.2.2" - jest-worker "^29.3.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.0.tgz#e44f838f469ab1f6b524178bae6233697748eb27" - integrity sha512-ufgX/hbpa7MLnjWRW82T5mVF73FBk3W38dGCLPXWtYZ5Zr1ZFh8QnaAtITKJt0p3kGXR8ZqlIjadSiBTk/QJ/A== - dependencies: - "@jest/environment" "^29.3.0" - "@jest/fake-timers" "^29.3.0" - "@jest/globals" "^29.3.0" - "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.0" - jest-message-util "^29.2.1" - jest-mock "^29.3.0" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.0" - jest-snapshot "^29.3.0" - jest-util "^29.2.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.0.tgz#e319cb98cf36640194717fb37a9bd048a3e448f8" - integrity sha512-+4mX3T8XI3ABbZFzBd/AM74mfwOb6gMpYVFNTc0Cgg2F2fGYvHii8D6jWWka99a3wyNFmni3ov8meEVTF8n13Q== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.2" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.3.0" - graceful-fs "^4.2.9" - jest-diff "^29.2.1" - jest-get-type "^29.2.0" - jest-haste-map "^29.3.0" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-util "^29.2.1" - natural-compare "^1.4.0" - pretty-format "^29.2.1" - semver "^7.3.5" - -jest-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" - integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== - dependencies: - "@jest/types" "^29.2.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce" - integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA== - dependencies: - "@jest/types" "^29.2.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.2.0" - leven "^3.1.0" - pretty-format "^29.2.1" - -jest-watcher@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7" - integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w== - dependencies: - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.2.1" - string-length "^4.0.1" - -jest-worker@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.0.tgz#240a1cd731c7d6645e8bcc37a3d584f122afb44a" - integrity sha512-rP8LYClB5NCWW0p8GdQT9vRmZNrDmjypklEYZuGCIU5iNviVWCZK5MILS3rQwD0FY1u96bY7b+KoU17DdZy6Ww== - dependencies: - "@types/node" "*" - jest-util "^29.2.1" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^29.2.2: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.0.tgz#edb9ef5b308e90e1c717c8accc04b28f133ac66d" - integrity sha512-lWmHtOcJSjR6FYRw+4oo7456QUe6LN73Lw6HLwOWKTPLcyQF60cMh0EoIHi67dV74SY5tw/kL+jYC+Ji43ScUg== - dependencies: - "@jest/core" "^29.3.0" - "@jest/types" "^29.2.1" - import-local "^3.0.2" - jest-cli "^29.3.0" - -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-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-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" - -js-yaml@^3.13.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" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -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-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@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-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== - -json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -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" - -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" - -keccak@^3.0.0, keccak@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - -keyv@*, keyv@^4.0.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== - dependencies: - json-buffer "3.0.1" - -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" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -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-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@^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" - -leven@^3.1.0: - 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== - -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== - -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@^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@^4.17.11, lodash@^4.17.14, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -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" - -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: - 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@^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== - -make-dir@^3.0.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" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -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.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" - -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== - -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== - -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-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== - -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== - -micromatch@^4.0.4: - 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: - 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== - -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-response@^1.0.0: - 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== - -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" - -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@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.4, minimatch@^3.1.1: - 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" - -minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -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" - -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" - -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 "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^0.5.5: - 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" - -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.1.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.1.0.tgz#dbf1114b7c3f9d0ca5de3133906aea3dfc89ef7a" - integrity sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg== - 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" - -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== - -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== - -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: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - 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: - 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" - -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" - -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== - -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== - -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== - -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== - -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== - -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== - -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-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-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -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.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -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-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== - -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" - -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" - -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.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-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -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.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" - -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" - -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" - -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" - -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@^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-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.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@^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-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@^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-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-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== - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - 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-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@^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" - -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== - -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-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -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-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== - -pbkdf2@^3.0.17, pbkdf2@^3.0.3: - 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" - -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.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pretty-format@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" - integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -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== - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -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-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== - -psl@^1.1.28: - 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" - -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" - -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@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.11.0, qs@^6.7.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.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@^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" - -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== - -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== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, 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, raw-body@^2.4.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" - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -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" - -request@^2.79.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@^2.0.0: - 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== - -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-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - 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.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -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.20.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - -rimraf@^2.2.8: - 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" - -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.2.3, rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - -run-parallel-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" - integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== - 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@^7.0.0: - version "7.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" - integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== - dependencies: - tslib "^2.1.0" - -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: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -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== - -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" - -semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.5: - 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" - -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" - -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" - -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@^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@^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.7.4" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" - integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== - -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.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== - -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" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -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" - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@^0.5.13: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== - -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.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -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" - -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== - -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== - -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== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.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_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -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-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -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-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-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== - -supports-color@8.1.1, supports-color@^8.0.0, supports-color@^8.1.0: - 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@^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.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-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== - -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" - -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" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -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== - -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" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -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-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" - -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== - -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@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -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.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== - -tsort@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" - integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== - -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.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.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -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.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.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-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== - -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" - -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== - -undici@^5.4.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.12.0.tgz#c758ffa704fbcd40d506e4948860ccaf4099f531" - integrity sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg== - dependencies: - busboy "^1.6.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -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== - -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -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" - -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== - -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: - 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: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.12.0: - 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@^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== - -v8-to-istanbul@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" - integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.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" - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -web3-bzz@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.0.tgz#2023676d7c17ea36512bf76eb310755a02a3d464" - integrity sha512-caDtdKeLi7+2Vb+y+cq2yyhkNjnxkFzVW0j1DtemarBg3dycG1iEl75CVQMLNO6Wkg+HH9tZtRnUyFIe5LIUeQ== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - -web3-core-helpers@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.0.tgz#5dcfdda1a4ea277041d912003198f1334ca29d7c" - integrity sha512-nMAVwZB3rEp/khHI2BvFy0e/xCryf501p5NGjswmJtEM+Zrd3Biaw52JrB1qAZZIzCA8cmLKaOgdfamoDOpWdw== - dependencies: - web3-eth-iban "1.8.0" - web3-utils "1.8.0" - -web3-core-method@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.0.tgz#9c2da8896808917d1679c319f19e2174ba17086c" - integrity sha512-c94RAzo3gpXwf2rf8rL8C77jOzNWF4mXUoUfZYYsiY35cJFd46jQDPI00CB5+ZbICTiA5mlVzMj4e7jAsTqiLA== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.0" - web3-core-promievent "1.8.0" - web3-core-subscriptions "1.8.0" - web3-utils "1.8.0" - -web3-core-promievent@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.0.tgz#979765fd4d37ab0f158f0ee54037b279b737bd53" - integrity sha512-FGLyjAuOaAQ+ZhV6iuw9tg/9WvIkSZXKHQ4mdTyQ8MxVraOtFivOCbuLLsGgapfHYX+RPxsc1j1YzQjKoupagQ== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.0.tgz#06189df80cf52d24a195a7ef655031afe8192df3" - integrity sha512-2AoYCs3Owl5foWcf4uKPONyqFygSl9T54L8b581U16nsUirjhoTUGK/PBhMDVcLCmW4QQmcY5A8oPFpkQc1TTg== - dependencies: - util "^0.12.0" - web3-core-helpers "1.8.0" - web3-providers-http "1.8.0" - web3-providers-ipc "1.8.0" - web3-providers-ws "1.8.0" - -web3-core-subscriptions@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.0.tgz#ff66ae4467c8cb4716367248bcefb1845c0f8b83" - integrity sha512-7lHVRzDdg0+Gcog55lG6Q3D8JV+jN+4Ly6F8cSn9xFUAwOkdbgdWsjknQG7t7CDWy21DQkvdiY2BJF8S68AqOA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.0" - -web3-core@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.0.tgz#90afce527ac1b1dff8cbed2acbc0336530b8aacf" - integrity sha512-9sCA+Z02ci6zoY2bAquFiDjujRwmSKHiSGi4B8IstML8okSytnzXk1izHYSynE7ahIkguhjWAuXFvX76F5rAbA== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-requestmanager "1.8.0" - web3-utils "1.8.0" - -web3-eth-abi@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.0.tgz#47fdff00bfdfa72064c9c612ff6369986598196d" - integrity sha512-xPeMb2hS9YLQK/Q5YZpkcmzoRGM+/R8bogSrYHhNC3hjZSSU0YRH+1ZKK0f9YF4qDZaPMI8tKWIMSCDIpjG6fg== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.0" - -web3-eth-accounts@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.0.tgz#960d947ee87a49d6c706dc6312334fbfbd6ff812" - integrity sha512-HQ/MDSv4bexwJLvnqsM6xpGE7c2NVOqyhzOZFyMUKXbIwIq85T3TaLnM9pCN7XqMpDcfxqiZ3q43JqQVkzHdmw== - dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "3.3.2" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-utils "1.8.0" - -web3-eth-contract@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.0.tgz#58f4ce0bde74e5ce87663502e409a92abad7b2c5" - integrity sha512-6xeXhW2YoCrz2Ayf2Vm4srWiMOB6LawkvxWJDnUWJ8SMATg4Pgu42C/j8rz/enXbYWt2IKuj0kk8+QszxQbK+Q== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-promievent "1.8.0" - web3-core-subscriptions "1.8.0" - web3-eth-abi "1.8.0" - web3-utils "1.8.0" - -web3-eth-ens@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.0.tgz#f1937371eac54b087ebe2e871780c2710d39998d" - integrity sha512-/eFbQEwvsMOEiOhw9/iuRXCsPkqAmHHWuFOrThQkozRgcnSTRnvxkkRC/b6koiT5/HaKeUs4yQDg+/ixsIxZxA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-promievent "1.8.0" - web3-eth-abi "1.8.0" - web3-eth-contract "1.8.0" - web3-utils "1.8.0" - -web3-eth-iban@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.0.tgz#3af8a0c95b5f7b0b81ab0bcd2075c1e5dda31520" - integrity sha512-4RbvUxcMpo/e5811sE3a6inJ2H4+FFqUVmlRYs0RaXaxiHweahSRBNcpO0UWgmlePTolj0rXqPT2oEr0DuC8kg== - dependencies: - bn.js "^5.2.1" - web3-utils "1.8.0" - -web3-eth-personal@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.0.tgz#433c35e2e042844402a12d543c4126ea1494b478" - integrity sha512-L7FT4nR3HmsfZyIAhFpEctKkYGOjRC2h6iFKs9gnFCHZga8yLcYcGaYOBIoYtaKom99MuGBoosayWt/Twh7F5A== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-net "1.8.0" - web3-utils "1.8.0" - -web3-eth@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.0.tgz#006974a5d5e30644d05814111f9e162a72e4a09c" - integrity sha512-hist52os3OT4TQFB/GxPSMxTh3995sz6LPvQpPvj7ktSbpg9RNSFaSsPlCT63wUAHA3PZb1FemkAIeQM5t72Lw== - dependencies: - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-subscriptions "1.8.0" - web3-eth-abi "1.8.0" - web3-eth-accounts "1.8.0" - web3-eth-contract "1.8.0" - web3-eth-ens "1.8.0" - web3-eth-iban "1.8.0" - web3-eth-personal "1.8.0" - web3-net "1.8.0" - web3-utils "1.8.0" - -web3-net@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.0.tgz#9acff92d7c647d801bc68df0ff4416f104dbe789" - integrity sha512-kX6EAacK7QrOe7DOh0t5yHS5q2kxZmTCxPVwSz9io9xBeE4n4UhmzGJ/VfhP2eM3OPKYeypcR3LEO6zZ8xn2vw== - dependencies: - web3-core "1.8.0" - web3-core-method "1.8.0" - web3-utils "1.8.0" - -web3-providers-http@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.0.tgz#3fd1e569ead2095343fac17d53160a3bae674c23" - integrity sha512-/MqxwRzExohBWW97mqlCSW/+NHydGRyoEDUS1bAIF2YjfKFwyRtHgrEzOojzkC9JvB+8LofMvbXk9CcltpZapw== - dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.8.0" - -web3-providers-ipc@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.0.tgz#d339a24c4d764e459e425d3ac868a551ac33e3ea" - integrity sha512-tAXHtVXNUOgehaBU8pzAlB3qhjn/PRpjdzEjzHNFqtRRTwzSEKOJxFeEhaUA4FzHnTlbnrs8ujHWUitcp1elfg== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.8.0" - -web3-providers-ws@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.0.tgz#a0a73e0606981ea32bed40d215000a64753899de" - integrity sha512-bcZtSifsqyJxwkfQYamfdIRp4nhj9eJd7cxHg1uUkfLJK125WP96wyJL1xbPt7qt0MpfnTFn8/UuIqIB6nFENg== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.0" - websocket "^1.0.32" - -web3-shh@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.0.tgz#b4abbf4f59d097ce2f74360e61e2e5c0bd6507c7" - integrity sha512-DNRgSa9Jf9xYFUGKSMylrf+zt3MPjhI2qF+UWX07o0y3+uf8zalDGiJOWvIS4upAsdPiKKVJ7co+Neof47OMmg== - dependencies: - web3-core "1.8.0" - web3-core-method "1.8.0" - web3-core-subscriptions "1.8.0" - web3-net "1.8.0" - -web3-utils@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.0.tgz#0a506f8c6af9a2ad6ba79689892662769534fc03" - integrity sha512-7nUIl7UWpLVka2f09CMbKOSEvorvHnaugIabU4mj7zfMvm0tSByLcEu3eyV9qgS11qxxLuOkzBIwCstTflhmpQ== - 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.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.0.tgz#3ca5f0b32de6a1f626407740411219035b5fde64" - integrity sha512-sldr9stK/SALSJTgI/8qpnDuBJNMGjVR84hJ+AcdQ+MLBGLMGsCDNubCoyO6qgk1/Y9SQ7ignegOI/7BPLoiDA== - dependencies: - web3-bzz "1.8.0" - web3-core "1.8.0" - web3-eth "1.8.0" - web3-eth-personal "1.8.0" - web3-net "1.8.0" - web3-shh "1.8.0" - web3-utils "1.8.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== - -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" - -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-typed-array@^1.1.2: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -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" - -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@^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" - -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@^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@^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@^7.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -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" - -xhr@^2.0.4, 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" - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -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== - -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@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^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-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@^17.3.1: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== - 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" - -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== diff --git a/yarn.lock b/yarn.lock index 1619ad98b0..5f92faceb4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -44,25 +44,25 @@ "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" + integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.20.2", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" + integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" + "@babel/generator" "^7.20.5" "@babel/helper-compilation-targets" "^7.20.0" "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" + "@babel/helpers" "^7.20.5" + "@babel/parser" "^7.20.5" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -78,12 +78,12 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" - integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== +"@babel/generator@^7.20.5", "@babel/generator@^7.7.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" + integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.20.5" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -112,10 +112,10 @@ browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz#3c08a5b5417c7f07b5cf3dfb6dc79cbec682e8c2" - integrity sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2", "@babel/helper-create-class-features-plugin@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06" + integrity sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" @@ -125,13 +125,13 @@ "@babel/helper-replace-supers" "^7.19.1" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" - integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" + integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" + regexpu-core "^5.2.1" "@babel/helper-define-polyfill-provider@^0.3.3": version "0.3.3" @@ -270,23 +270,23 @@ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== "@babel/helper-wrap-function@^7.18.9": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" - integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== dependencies: "@babel/helper-function-name" "^7.19.0" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== +"@babel/helpers@^7.20.5": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" + integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== dependencies: "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" "@babel/highlight@^7.18.6": version "7.18.6" @@ -297,10 +297,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" - integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -346,11 +346,11 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.2.tgz#1c6c32b2a44b154ebeec2bb534f9eaebdb541fb6" - integrity sha512-nkBH96IBmgKnbHQ5gXFrcmez+Z9S2EIDKDQGp005ROqBigc88Tky4rzCnlP/lnlj245dCEQl4/YyV0V1kYh5dw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.5.tgz#28ba1a0e5044664a512967a19407d7fc26925394" + integrity sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.2" + "@babel/helper-create-class-features-plugin" "^7.20.5" "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-replace-supers" "^7.19.1" "@babel/helper-split-export-declaration" "^7.18.6" @@ -441,13 +441,13 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" + integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": @@ -514,7 +514,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@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== @@ -629,9 +629,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz#f59b1767e6385c663fd0bce655db6ca9c8b236ed" - integrity sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz#401215f9dc13dc5262940e2e527c9536b3d7f237" + integrity sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -761,12 +761,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" - integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" @@ -784,9 +784,9 @@ "@babel/helper-replace-supers" "^7.18.6" "@babel/plugin-transform-parameters@^7.20.1": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz#7b3468d70c3c5b62e46be0a47b6045d8590fb748" - integrity sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz#f8f9186c681d10c3de7620c916156d893c8a019e" + integrity sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -838,12 +838,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" + integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" + "@babel/helper-plugin-utils" "^7.20.2" + regenerator-transform "^0.15.1" "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" @@ -1038,12 +1038,12 @@ "@babel/plugin-transform-typescript" "^7.18.6" "@babel/runtime-corejs3@^7.10.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.1.tgz#d0775a49bb5fba77e42cbb7276c9955c7b05af8d" - integrity sha512-CGulbEDcg/ND1Im7fUNRZdGXmX2MTWVVZacQi/6DiKE5HNwZ3aVTm5PV4lO8HHz0B2h8WQyvKKjbX5XgTtydsg== + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz#63dae945963539ab0ad578efbf3eff271e7067ae" + integrity sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ== dependencies: core-js-pure "^3.25.1" - regenerator-runtime "^0.13.10" + regenerator-runtime "^0.13.11" "@babel/runtime@7.0.0": version "7.0.0" @@ -1053,11 +1053,11 @@ regenerator-runtime "^0.12.0" "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" - integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" + integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== dependencies: - regenerator-runtime "^0.13.10" + regenerator-runtime "^0.13.11" "@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" @@ -1068,26 +1068,26 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.16.8", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== +"@babel/traverse@^7.16.8", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.7.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" + integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" + "@babel/generator" "^7.20.5" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/parser" "^7.20.5" + "@babel/types" "^7.20.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.16.8", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.16.8", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" + integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -1099,9 +1099,9 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@coinbase/wallet-sdk@^3.3.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.0.tgz#52cc01d6721b171b69f8c4a83ef5029e52d997d4" - integrity sha512-p7RHnbhWiwVr9viX9Z5KLxKgzGoJRKcAN/BYRTsodnesgA7y+omangXncsxY+5eyQSflEL7Dqs0dv/yeDsomow== + version "3.6.1" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.1.tgz#b1c2c98f5ab0e859787bee96f9fe42eadb0c9174" + integrity sha512-mEBGSoUN3eBnUJvqr+K/Sfc7idqEXp5enyS31WHUWK3xo0faSoGk5b/yV9NFi5/tIyKjl8E/nTJ2dH0DtIl/PA== dependencies: "@metamask/safe-event-emitter" "2.0.0" "@solana/web3.js" "1.52.0" @@ -1851,11 +1851,11 @@ value-or-promise "1.0.11" "@graphql-tools/code-file-loader@^7.3.6": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.12.tgz#f3038b58f2bca369d2e5a4a487a9dbe7fd24d9b0" - integrity sha512-XflxElA2FNPDgicUZr4UF6NVlvPHFOKd1u8KAb/nHSlUT70qcvIPFfRASSuEvLMGYuW/lrFZfgi2z0BV6P5Vqw== + version "7.3.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.13.tgz#439c21c80aed1018f9457d3742b1d51ce60cd3f0" + integrity sha512-6anNQJ/VqseqBGcrZexGsiW40cBWF8Uko9AgvGSuZx2uJl1O8H9a3XMZnkmuI17yoGRCzXkwf52AS0+O5UYFUA== dependencies: - "@graphql-tools/graphql-tag-pluck" "7.3.12" + "@graphql-tools/graphql-tag-pluck" "7.4.0" "@graphql-tools/utils" "9.1.1" globby "^11.0.3" tslib "^2.4.0" @@ -1887,14 +1887,14 @@ tslib "^2.4.0" ws "8.11.0" -"@graphql-tools/executor-http@0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.0.3.tgz#adfec46a7814c7f7082005a374d944900ea18018" - integrity sha512-dtZzdcoc7tnctSGCQhcbOQPnVidn4DakgkyrBAWf0O3GTP9NFKlA+T9+I1N4gPHupQOZdJ1gmNXfnJZyswzCkA== +"@graphql-tools/executor-http@0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.0.4.tgz#b0ba436bd37a538ee31f30c9ee6266143a956062" + integrity sha512-m7UwOhzIXLXXisxOD8x+niN3ae38A8bte47eBBfzr8eTrjsSEEQRbwsc6ciUmoys/5iQabnbtJN10rNIaZaU8w== dependencies: "@graphql-tools/utils" "9.1.1" "@repeaterjs/repeater" "3.0.4" - "@whatwg-node/fetch" "0.5.1" + "@whatwg-node/fetch" "0.5.3" dset "3.1.2" extract-files "^11.0.0" meros "1.2.1" @@ -1934,12 +1934,13 @@ tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@7.3.12", "@graphql-tools/graphql-tag-pluck@^7.3.6": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.12.tgz#204e1048f92d8e3fa5d0cd39e837dd47e4ca8b96" - integrity sha512-B92+Q6xPgAKj4z+06vVWdx/7KPlh6vHgIkCg+9hJ2duYBUyEGn39YNdjjWvsGgl3N2G5/BOVFJRmdgLG1k79Xg== +"@graphql-tools/graphql-tag-pluck@7.4.0", "@graphql-tools/graphql-tag-pluck@^7.3.6": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.0.tgz#b8082801164aad0b9b03bc61fb92388d076cc66a" + integrity sha512-f966Z8cMDiPxWuN3ksuHpNgGE8euZtrL/Gcwz9rRarAb13al4CGHKmw2Cb/ZNdt7GbyhdiLT4wbaddrF0xCpdw== 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.1.1" @@ -1993,17 +1994,17 @@ value-or-promise "1.0.11" "@graphql-tools/url-loader@^7.9.7": - version "7.16.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.19.tgz#4e95443bcaf8ec66e72118caa48252180bedf37d" - integrity sha512-vFHstaANoojDCXUb/a25mTubteTUV8b7XVLHbbSvAQvwGUne6d+Upg5MeGrKBeHl2Wpn240cJnaa4A1mrwivWA== + version "7.16.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.22.tgz#3c210d8755082f2686cbdb1024fa5f7fb0e49a5f" + integrity sha512-JA0+7w2eidPmsVFRFgzZQ+RQKiS9WE0T5R/wKudxLdC8NnCKdEw0hdA7wKmhhIXNhOs5UtWGfwQ1O2CrvStxWw== dependencies: "@ardatan/sync-fetch" "0.0.1" "@graphql-tools/delegate" "9.0.17" "@graphql-tools/executor-graphql-ws" "0.0.3" - "@graphql-tools/executor-http" "0.0.3" + "@graphql-tools/executor-http" "0.0.4" "@graphql-tools/executor-legacy-ws" "0.0.3" "@graphql-tools/utils" "9.1.1" - "@graphql-tools/wrap" "9.2.16" + "@graphql-tools/wrap" "9.2.18" "@types/ws" "^8.0.0" "@whatwg-node/fetch" "^0.5.0" isomorphic-ws "5.0.0" @@ -2025,10 +2026,10 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/wrap@9.2.16": - version "9.2.16" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.16.tgz#ec7696101a34cacd1bfefb86ccb631f55651c8fa" - integrity sha512-fWTvGytllPq0IVrRcEAc6VuVUInfCEpOUhSAo1ocsSe0HZMoyrQkS1ST0jmCpEWeGWuUd/S2zBLS2yjH8fYfhA== +"@graphql-tools/wrap@9.2.18": + version "9.2.18" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.18.tgz#be19f164dad8c855081b190db9953e6e15b0343c" + integrity sha512-ocdwRM2lDjqXiu/1tpvegmxumYuwHZVLLnzLFuch5i5S10y+EmTqcfgalG/2CbMrPV6BS9t4R7/w6p6+ZbppVg== dependencies: "@graphql-tools/delegate" "9.0.17" "@graphql-tools/schema" "9.0.10" @@ -2042,9 +2043,9 @@ integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== "@human-protocol/core@workspace:*": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.8.tgz#4933b48c1f51f7e5fd1ad943c8f002ff8d03f22e" - integrity sha512-z0JLzecGu7qPtKcBtAtLnpb+13ScjE7noLL0QH7UKCB9dGq6Z/RQ2Bba+1gnF3izKvkUOzVyWg2amU7j6q9TZA== + version "1.0.10" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.10.tgz#946bc87cd8f8cf0eae5b410c27d227c0de5d599f" + integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@humanwhocodes/config-array@^0.11.6": version "0.11.7" @@ -2622,43 +2623,43 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@mui/base@5.0.0-alpha.106": - version "5.0.0-alpha.106" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.106.tgz#23e5f61639b5786318be873d7e6d26db412c5211" - integrity sha512-xJQQtwPCPwr6hGWTBdvDwHYwExn3Bw7nPQkN8Fuz8kHpZqoMVWQvvaFS557AIkkI2AFLV3DxVIMjbCvrIntBWg== +"@mui/base@5.0.0-alpha.108": + version "5.0.0-alpha.108" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.108.tgz#4e4639ba6769dd178ef475dba4cc36bf8a3f1dc6" + integrity sha512-KjzRUts2i/ODlMfywhFTqTzQl+Cr9nlDSZxJcnYjrbOV/iRyQNBTDoiFJt+XEdRi0fZBHnk74AFbnP56ehybsA== dependencies: "@babel/runtime" "^7.20.1" "@emotion/is-prop-valid" "^1.2.0" - "@mui/types" "^7.2.1" - "@mui/utils" "^5.10.14" + "@mui/types" "^7.2.2" + "@mui/utils" "^5.10.16" "@popperjs/core" "^2.11.6" clsx "^1.2.1" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.10.14": - version "5.10.14" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.14.tgz#498a35c1aeab006ba5029f4e3954829f78c204c1" - integrity sha512-qLgIJNOR9Dre8JiZ/neVzOf4jf88J6YtOkQqugtMrleLjbfRVUSS4LWl9CSOjNq76quYdmYWnSDgfQqOooT2cQ== +"@mui/core-downloads-tracker@^5.10.16": + version "5.10.16" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.16.tgz#4c2d36bcab58cb6250596b20601f499bfadc0642" + integrity sha512-eK9+olw2ZbXX+vGrtKnN01/vLP1aX0Lq0xok35bqWM1aB93Dcmky/xPNf8h31oJ/C+IzJBjZaZMEDzVZg4Qc0A== "@mui/icons-material@^5.10.14", "@mui/icons-material@^5.10.6": - version "5.10.14" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.10.14.tgz#6b1e40cc95f2a27e6547980f6a1636f54ac05617" - integrity sha512-qtH60slQa+7MZRn6kyui8rKuoGDglPqaHX+pzBKNvd8JCOlrnfY5DmGGDdToTXyXl8xJ8nhANZbrbpg7UVKq/Q== + version "5.10.16" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.10.16.tgz#9c16054d0cc54d40267447128a07e79b516ead1e" + integrity sha512-jjCc0IF6iyLiucQCu5igg3fOscSqbbvRCmyRxXgzOcLR56B0sg2L8o+ZfJ0dAg59+wvgtXaxvjze/mJg0B4iWA== dependencies: "@babel/runtime" "^7.20.1" "@mui/material@^5.10.14", "@mui/material@^5.10.7": - version "5.10.14" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.10.14.tgz#fcd687c92b22a71dc139376a5bc2d0bc578a172b" - integrity sha512-HWzKVAykePMx54WtxVwZyL1W4k3xlHYIqwMw0CaXAvgB3UE9yjABZuuGr8vG5Z6CSNWamzd+s1x8u7pQPFl9og== + version "5.10.16" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.10.16.tgz#4ad6e69d81f11487f502591d8d060143d2e89b97" + integrity sha512-JSHcDQQ+k30NKkCM/0KX6jq4F5LOrbFKZpS+cEl7scZWOCJpUPH5ccAT5a7O8wzrgNZ8Y9PnwzNvWBrfShpJFw== dependencies: "@babel/runtime" "^7.20.1" - "@mui/base" "5.0.0-alpha.106" - "@mui/core-downloads-tracker" "^5.10.14" - "@mui/system" "^5.10.14" - "@mui/types" "^7.2.1" - "@mui/utils" "^5.10.14" + "@mui/base" "5.0.0-alpha.108" + "@mui/core-downloads-tracker" "^5.10.16" + "@mui/system" "^5.10.16" + "@mui/types" "^7.2.2" + "@mui/utils" "^5.10.16" "@types/react-transition-group" "^4.4.5" clsx "^1.2.1" csstype "^3.1.1" @@ -2666,19 +2667,19 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.10.14": - version "5.10.14" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.10.14.tgz#3517f71a4c86de969f61fddc1db5023271627813" - integrity sha512-3aIBe8WK65CwAPDY8nB11hYnzE1CZMymi76UnaFrA/DdGDwl5Y8F6uB+StKrkVmsqF1po7Mp2odqVkHj320gXw== +"@mui/private-theming@^5.10.16": + version "5.10.16" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.10.16.tgz#181ab7568a3cf0c6b12cc12f5a91aeb4509df1ce" + integrity sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg== dependencies: "@babel/runtime" "^7.20.1" - "@mui/utils" "^5.10.14" + "@mui/utils" "^5.10.16" prop-types "^15.8.1" -"@mui/styled-engine@^5.10.14": - version "5.10.14" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.10.14.tgz#4395198a1919254a3edabf6e8fc8d43c9c59b5c3" - integrity sha512-bgKdM57ExogWpIfhL/ngSlzF4FhbH00vYF+Y5VALTob4uslFqje0xzoWmbfcCn4cZt2NXxZJIwhsq4vzo5itlw== +"@mui/styled-engine@^5.10.16": + version "5.10.16" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.10.16.tgz#52a2d31e4012958d21c92b42acaca4c3e79841b4" + integrity sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw== dependencies: "@babel/runtime" "^7.20.1" "@emotion/cache" "^11.10.5" @@ -2686,15 +2687,15 @@ prop-types "^15.8.1" "@mui/styles@^5.10.14": - version "5.10.14" - resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.10.14.tgz#c568d5d1831539dda7525b8a738ec844f76ea6dd" - integrity sha512-efmROE5O+9qV1Wj7Q/Cz3ZplsuqSwqWRFTUWwTuTedoLetAO6ExgV4vGD1bkFsr9+VkAfJV/Zy4KPM0ouok7aA== + version "5.10.16" + resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.10.16.tgz#51f5d6d4200705741a4d47317222dd3aa539f74c" + integrity sha512-GYxY9pAx/mIAF3l9QJhTfWyUdT18UyjXHRmfPFgDupphTyHumrVE4rgYoTFordmzMWr+1kaS0mAUvDfziGncGA== dependencies: "@babel/runtime" "^7.20.1" "@emotion/hash" "^0.9.0" - "@mui/private-theming" "^5.10.14" - "@mui/types" "^7.2.1" - "@mui/utils" "^5.10.14" + "@mui/private-theming" "^5.10.16" + "@mui/types" "^7.2.2" + "@mui/utils" "^5.10.16" clsx "^1.2.1" csstype "^3.1.1" hoist-non-react-statics "^3.3.2" @@ -2708,29 +2709,29 @@ jss-plugin-vendor-prefixer "^10.9.2" prop-types "^15.8.1" -"@mui/system@^5.10.14": - version "5.10.14" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.10.14.tgz#3bcc2d471c7faeaffecbb62e6b9087396a533c21" - integrity sha512-2de7XCjRb1j8Od0Stmo0LwFMLpOMNT4wzfINuExXI1TVSuyxXIXUxiC5FEgJW3GMvf/a7SUR8VOiMoKlKWzukw== +"@mui/system@^5.10.16": + version "5.10.16" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.10.16.tgz#2b07d78eb5e337463045b81a59f718795807fdc7" + integrity sha512-OqI9B1jZ9zQ/dmoqseku4CzdEs9DbLiiMOaWxC3WeAJxM1UavlCgXz0encqm93LIlmSL7TjuHN1/rW8BJCnU8A== dependencies: "@babel/runtime" "^7.20.1" - "@mui/private-theming" "^5.10.14" - "@mui/styled-engine" "^5.10.14" - "@mui/types" "^7.2.1" - "@mui/utils" "^5.10.14" + "@mui/private-theming" "^5.10.16" + "@mui/styled-engine" "^5.10.16" + "@mui/types" "^7.2.2" + "@mui/utils" "^5.10.16" clsx "^1.2.1" csstype "^3.1.1" prop-types "^15.8.1" -"@mui/types@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.1.tgz#1eb2bc182c595029884047f2525ad4dbefea318e" - integrity sha512-c5mSM7ivD8EsqK6HUi9hQPr5V7TJ/IRThUQ9nWNYPdhCGriTSQV4vL6DflT99LkM+wLiIS1rVjphpEWxERep7A== +"@mui/types@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.2.tgz#723f6d40c25c89c2e0352a7e51794e8eb77cdbe3" + integrity sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA== -"@mui/utils@^5.10.14", "@mui/utils@^5.10.3": - version "5.10.14" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.10.14.tgz#260bf52b2eb5a95ee80f2de4092ebf25d3d83e88" - integrity sha512-12p59+wDZpA++XVJmKwqsZmrA1nmUQ5d0a1yQWtcDjxNyER1EDzozYN/db+FY2i5ceQh2TynPTEwGms2mXDwFg== +"@mui/utils@^5.10.16", "@mui/utils@^5.10.3": + version "5.10.16" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.10.16.tgz#7a981444855968ebdb1830d76e298d1ac47eaaf6" + integrity sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ== dependencies: "@babel/runtime" "^7.20.1" "@types/prop-types" "^15.7.5" @@ -2739,9 +2740,9 @@ react-is "^18.2.0" "@mui/x-data-grid@^5.17.4": - version "5.17.12" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.12.tgz#b57c32605f1964c2eb8b25136fe51d7165e22112" - integrity sha512-Q7lFxapa9oc8j3LVm3JAS+jmJftcaSLYcvhApYLKYWej9LKMQYov8hUPdIjzSta3E0WTINfiHaTcO1b6W4UMvQ== + version "5.17.13" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.13.tgz#efee3b9ebbb868cc4a174da4a0db08c75e46a194" + integrity sha512-Z2DSQA8O2ZPKat6URO9nEpKn8Wszuiz/OJQq5aW3so3KPunb8IJV30h94Kc+Su9ng6mdknCpimrnN2EBibznFA== dependencies: "@babel/runtime" "^7.18.9" "@mui/utils" "^5.10.3" @@ -2933,9 +2934,9 @@ rustbn.js "~0.2.0" "@nomicfoundation/hardhat-chai-matchers@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.4.tgz#4b5c0d6eba637aabb49342272ae15ee6877a462e" - integrity sha512-n/5UMwGaUK2zM8ALuMChVwB1lEPeDTb5oBjQ1g7hVsUdS8x+XG9JIEp4Ze6Bwy98tghA7Y1+PCH4SNE2P3UQ2g== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.5.tgz#75d08bd9bd84a3cb7950be6bd27171a294516b01" + integrity sha512-+W5C/+5FHI2xBajUN9THSNc1UP6FUsA7LeLmfnaC9VMi/50/DEjjxd8OmizEXgV1Bjck7my4NVQLL1Ti39FkpA== dependencies: "@ethersproject/abi" "^5.1.2" "@types/chai-as-promised" "^7.1.3" @@ -3021,13 +3022,13 @@ integrity sha512-RHWYwnxryWR8hzRmU4Jm/q4gzvXpetUOJ4OPlwH2YARcDB+j79+yAYCwO0lN1SUOb4++oOTJEe6AWLEc42LIvg== "@nomiclabs/hardhat-etherscan@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.2.tgz#1f9af26ce7db437eb705d46a99996811b43d0e4a" - integrity sha512-IEikeOVq0C/7CY6aD74d8L4BpGoc/FNiN6ldiPVg0QIFIUSu4FSGA1dmtJZJKk1tjpwgrfTLQNWnigtEaN9REg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.3.tgz#c9dbaa4174edfa075a464a0e9142bc8710a2c4e2" + integrity sha512-UeNO97j0lwOHqX7mrH6SfQQBdXq1Ng6eFr7uJKuQOrq2UVTWGD70lE5QO4fAFVPz9ao+xlNpMyIqSR7+OaDR+Q== dependencies: "@ethersproject/abi" "^5.1.2" "@ethersproject/address" "^5.0.2" - cbor "^5.0.2" + cbor "^8.1.0" chalk "^2.4.2" debug "^4.1.1" fs-extra "^7.0.1" @@ -3081,9 +3082,9 @@ tslib "^2.4.0" "@pmmmwh/react-refresh-webpack-plugin@^0.5.3": - version "0.5.9" - resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.9.tgz#35aae6624a6270ca7ad755800b7eec417fa6f830" - integrity sha512-7QV4cqUwhkDIHpMAZ9mestSJ2DMIotVTbOUwbiudhjCRTAWWKIaBecELiEM2LT3AHFeOAaHIcFu4dbXjX+9GBA== + version "0.5.10" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" + integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA== dependencies: ansi-html-community "^0.0.8" common-path-prefix "^3.0.0" @@ -3091,7 +3092,7 @@ error-stack-parser "^2.0.6" find-up "^5.0.0" html-entities "^2.1.0" - loader-utils "^2.0.3" + loader-utils "^2.0.4" schema-utils "^3.0.0" source-map "^0.7.3" @@ -3166,19 +3167,19 @@ react-remove-scroll "2.5.4" "@reduxjs/toolkit@^1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.0.tgz#76b264fcea677d256b18f86cc77e00743a9e02b0" - integrity sha512-ak11IrjYcUXRqlhNPwnz6AcvA2ynJTu8PzDbbqQw4a3xR4KZtgiqbNblQD+10CRbfK4+5C79SOyxnT9dhBqFnA== + version "1.9.1" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.1.tgz#4c34dc4ddcec161535288c60da5c19c3ef15180e" + integrity sha512-HikrdY+IDgRfRYlCTGUQaiCxxDDgM1mQrRbZ6S1HFZX5ZYuJ4o8EstNmhTwHdPl2rTmLxzwSu0b3AyeyTlR+RA== dependencies: immer "^9.0.16" redux "^4.2.0" redux-thunk "^2.4.2" reselect "^4.1.7" -"@remix-run/router@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.0.3.tgz#953b88c20ea00d0eddaffdc1b115c08474aa295d" - integrity sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q== +"@remix-run/router@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.0.4.tgz#cbfbec6735711e7c2fc93b9b40adf70ef5a39990" + integrity sha512-gTL8H5USTAKOyVA4xczzDJnC3HMssdFa3tRlwBicXynx9XfiXwneHnYQogwSKpdCkjXISrEKSTtX62rLpNEVQg== "@repeaterjs/repeater@3.0.4": version "3.0.4" @@ -3328,9 +3329,9 @@ integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@sinonjs/commons@^1.7.0": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.5.tgz#e280c94c95f206dcfd5aca00a43f2156b758c764" - integrity sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA== + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== dependencies: type-detect "4.0.8" @@ -3512,36 +3513,36 @@ dependencies: defer-to-connect "^2.0.1" -"@tanstack/query-core@4.15.1": - version "4.15.1" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.15.1.tgz#a282f04fe5e612b50019e1cfaf0efabd220e00ce" - integrity sha512-+UfqJsNbPIVo0a9ANW0ZxtjiMfGLaaoIaL9vZeVycvmBuWywJGtSi7fgPVMCPdZQFOzMsaXaOsDtSKQD5xLRVQ== +"@tanstack/query-core@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.18.0.tgz#3e166ce319fd869c668536384ae94d174ea46a59" + integrity sha512-PP4mG8MD08sq64RZCqMfXMYfaj7+Oulwg7xZ/fJoEOdTZNcPIgaOkHajZvUBsNLbi/0ViMvJB4cFkL2Jg2WPbw== -"@tanstack/query-persist-client-core@4.15.1": - version "4.15.1" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.15.1.tgz#27e459a531de16454755a515b8d3dc4a0b99c7bb" - integrity sha512-ldoGHNJ4Du83CT1CvJQqaJtQXEz4CdGcDmexVoyRG2q8DV9PAfYi+zls462ZbIWxlni93pkEgG1/q4mZVk2nqQ== +"@tanstack/query-persist-client-core@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.18.0.tgz#63147c2b1f8f26bd6bb84c1945279951c541d0bf" + integrity sha512-GZlZTQdW0MH0pTQv1T4JyOG4PO6xZA+OKUDRnYHjbG5hp6njouoxisaNV/zhGN9m6zpqb+mV+4tbz7WM42i0Vw== "@tanstack/query-sync-storage-persister@^4.0.10": - version "4.15.1" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.15.1.tgz#a2a1407178cf429a21cf1f8e36a2e7d65d8bbc9c" - integrity sha512-uMk8VCTkxTS9F99nSjbJRIsNalv6cwAtBJ6HgX41dYW2BCQR4ZQrM52oohIMbZo8DqlE/gGRtplbCbQ3NDfx4g== + version "4.18.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.18.0.tgz#ea50c94647103e0e61382feebc75379e897175dd" + integrity sha512-um2+3LuzHZDNKMWkfhVaiRw6GWTX7Lvk8ir9f2NoeAaRAMmLy7OgBWDlMkPqmGob7DjWK+DcNb8GcpqPt8H7fw== dependencies: - "@tanstack/query-persist-client-core" "4.15.1" + "@tanstack/query-persist-client-core" "4.18.0" "@tanstack/react-query-persist-client@^4.0.10": - version "4.16.1" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.16.1.tgz#ab54352fe8435e88961cda48c75b844ab6e6e559" - integrity sha512-7i1Dj9amEDdRz34UMslf11uFs7QSpGqNRT9nFwc17pcJ4I3X7tSiEN1pgrAMg05eqnfGJgnSTZg+RpFR1Nsy+w== + version "4.18.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.18.0.tgz#15786cacb1944367a00bc68f068e3349a2b363ee" + integrity sha512-CMXPrrK4oEMhD5FS0LJSbp18j+Q/ob22T0hUINwhMJADsiijEabpVzxQ4NE8bmmOJ6YBJpKm1cIslJj7AxiF3A== dependencies: - "@tanstack/query-persist-client-core" "4.15.1" + "@tanstack/query-persist-client-core" "4.18.0" "@tanstack/react-query@^4.0.10": - version "4.16.1" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.16.1.tgz#077006b8eb2c87fbe8d1597c1a0083a2d218b791" - integrity sha512-PDE9u49wSDykPazlCoLFevUpceLjQ0Mm8i6038HgtTEKb/aoVnUZdlUP7C392ds3Cd75+EGlHU7qpEX06R7d9Q== + version "4.18.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.18.0.tgz#d9c661364b383fca79f5384cb97b445354068faa" + integrity sha512-s1kdbGMdVcfUIllzsHUqVUdktBT5uuIRgnvrqFNLjl9TSOXEoBSDrhjsGjao0INQZv8cMpQlgOh3YH9YtN6cKw== dependencies: - "@tanstack/query-core" "4.15.1" + "@tanstack/query-core" "4.18.0" use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": @@ -3714,9 +3715,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== dependencies: "@babel/types" "^7.3.0" @@ -3993,9 +3994,9 @@ "@types/node" "*" "@types/lodash@^4.14.159": - version "4.14.189" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.189.tgz#975ff8c38da5ae58b751127b19ad5e44b5b7f6d2" - integrity sha512-kb9/98N6X8gyME9Cf7YaqIMvYGnBSWqEci6tiettE6iJWH1XdJz/PO8LB0GtLCG7x8dU3KWhZT+lA1a35127tA== + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== "@types/long@^4.0.1": version "4.0.2" @@ -4028,21 +4029,21 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/minio@^7.0.14": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@types/minio/-/minio-7.0.14.tgz#61af9cde07ad9ccf2476683de6d2a66ea075164a" - integrity sha512-NZbszX8FSiMKq3RTR4J0n3Q8914Y4XRBdjpdexMWByy7eC59ujTcf1q6Rn7w4Jt/B/ZBoNzxOBX3jzhewWgItQ== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/minio/-/minio-7.0.15.tgz#6fbf2e17aeae172cbf181ea52b1faa05a601ce42" + integrity sha512-1VR05lWJDuxkn/C7d87MPAJs0p+onKnkUN3nyQ0xrrtaziZQmONy/nxXRaAVWheEyIb6sl0TTi77I/GAQDN5Lw== dependencies: "@types/node" "*" "@types/mocha@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.0.tgz#3d9018c575f0e3f7386c1de80ee66cc21fbb7a52" - integrity sha512-rADY+HtTOA52l9VZWtgQfn4p+UDVM2eDVkMZT1I6syp0YKxW2F9v+0pbRZLsvskhQv/vMb6ZfCay81GHbz5SHg== + version "10.0.1" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" + integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== "@types/node@*", "@types/node@>=13.7.0", "@types/node@^18.11.9": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + version "18.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" + integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== "@types/node@14.18.33": version "14.18.33" @@ -4060,9 +4061,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^16.11.68", "@types/node@^16.18.3": - version "16.18.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.3.tgz#d7f7ba828ad9e540270f01ce00d391c54e6e0abc" - integrity sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg== + version "16.18.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.4.tgz#712ba61b4caf091fc6490301b1888356638c17bd" + integrity sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw== "@types/node@^8.0.0": version "8.10.66" @@ -4265,20 +4266,20 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== + version "17.0.15" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.15.tgz#5b62c89fb049e2fc8378394a2861a593055f0866" + integrity sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg== dependencies: "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.43.0", "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz#4a5248eb31b454715ddfbf8cfbf497529a0a78bc" - integrity sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA== + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz#ffa505cf961d4844d38cfa19dcec4973a6039e41" + integrity sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA== dependencies: - "@typescript-eslint/scope-manager" "5.43.0" - "@typescript-eslint/type-utils" "5.43.0" - "@typescript-eslint/utils" "5.43.0" + "@typescript-eslint/scope-manager" "5.45.0" + "@typescript-eslint/type-utils" "5.45.0" + "@typescript-eslint/utils" "5.45.0" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -4287,78 +4288,78 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.43.0.tgz#2fbea6ea89e59e780e42ca65bc39fc830db95ed4" - integrity sha512-WkT637CumTJbm/hRbFfnHBMgfUYTKr08LitVsD7gQId7bi6rnkx3pu3jac67lmp5ObW4MpJ9SNFZAIOUB/Qbsw== + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.45.0.tgz#b59fea61a855cb2b1fdbd0fb45934a844f4bf870" + integrity sha512-DnRQg5+3uHHt/gaifTjwg9OKbg9/TWehfJzYHQIDJboPEbF897BKDE/qoqMhW7nf0jWRV1mwVXTaUvtB1/9Gwg== dependencies: - "@typescript-eslint/utils" "5.43.0" + "@typescript-eslint/utils" "5.45.0" "@typescript-eslint/parser@^5.43.0", "@typescript-eslint/parser@^5.5.0": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.43.0.tgz#9c86581234b88f2ba406f0b99a274a91c11630fd" - integrity sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug== + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.45.0.tgz#b18a5f6b3cf1c2b3e399e9d2df4be40d6b0ddd0e" + integrity sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ== dependencies: - "@typescript-eslint/scope-manager" "5.43.0" - "@typescript-eslint/types" "5.43.0" - "@typescript-eslint/typescript-estree" "5.43.0" + "@typescript-eslint/scope-manager" "5.45.0" + "@typescript-eslint/types" "5.45.0" + "@typescript-eslint/typescript-estree" "5.45.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.43.0": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz#566e46303392014d5d163704724872e1f2dd3c15" - integrity sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw== +"@typescript-eslint/scope-manager@5.45.0": + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz#7a4ac1bfa9544bff3f620ab85947945938319a96" + integrity sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw== dependencies: - "@typescript-eslint/types" "5.43.0" - "@typescript-eslint/visitor-keys" "5.43.0" + "@typescript-eslint/types" "5.45.0" + "@typescript-eslint/visitor-keys" "5.45.0" -"@typescript-eslint/type-utils@5.43.0": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz#91110fb827df5161209ecca06f70d19a96030be6" - integrity sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg== +"@typescript-eslint/type-utils@5.45.0": + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz#aefbc954c40878fcebeabfb77d20d84a3da3a8b2" + integrity sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q== dependencies: - "@typescript-eslint/typescript-estree" "5.43.0" - "@typescript-eslint/utils" "5.43.0" + "@typescript-eslint/typescript-estree" "5.45.0" + "@typescript-eslint/utils" "5.45.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.43.0": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.43.0.tgz#e4ddd7846fcbc074325293515fa98e844d8d2578" - integrity sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg== +"@typescript-eslint/types@5.45.0": + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.45.0.tgz#794760b9037ee4154c09549ef5a96599621109c5" + integrity sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA== -"@typescript-eslint/typescript-estree@5.43.0": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz#b6883e58ba236a602c334be116bfc00b58b3b9f2" - integrity sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg== +"@typescript-eslint/typescript-estree@5.45.0": + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz#f70a0d646d7f38c0dfd6936a5e171a77f1e5291d" + integrity sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ== dependencies: - "@typescript-eslint/types" "5.43.0" - "@typescript-eslint/visitor-keys" "5.43.0" + "@typescript-eslint/types" "5.45.0" + "@typescript-eslint/visitor-keys" "5.45.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.43.0", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.43.0.tgz#00fdeea07811dbdf68774a6f6eacfee17fcc669f" - integrity sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A== +"@typescript-eslint/utils@5.45.0", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.45.0.tgz#9cca2996eee1b8615485a6918a5c763629c7acf5" + integrity sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.43.0" - "@typescript-eslint/types" "5.43.0" - "@typescript-eslint/typescript-estree" "5.43.0" + "@typescript-eslint/scope-manager" "5.45.0" + "@typescript-eslint/types" "5.45.0" + "@typescript-eslint/typescript-estree" "5.45.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.43.0": - version "5.43.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz#cbbdadfdfea385310a20a962afda728ea106befa" - integrity sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg== +"@typescript-eslint/visitor-keys@5.45.0": + version "5.45.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz#e0d160e9e7fdb7f8da697a5b78e7a14a22a70528" + integrity sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg== dependencies: - "@typescript-eslint/types" "5.43.0" + "@typescript-eslint/types" "5.45.0" eslint-visitor-keys "^3.3.0" "@vanilla-extract/css@1.9.1": @@ -4395,10 +4396,10 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@5.5.8": - version "5.5.8" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.5.8.tgz#0c4c379572d9b59aaccc48d8fb60686919ebce81" - integrity sha512-DDgud8URl951OKbH9pwGs1MgR47UXSvNW1s+ftOjMKlw/qwDdCbIUclVKMcJc3MhLdnvRoo/a12f01b7dpwZDw== +"@vercel/build-utils@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.6.0.tgz#660535a8cf35213f55591501a54257512ce4a734" + integrity sha512-6JYdwsxA/OG3rLqNnM7V10WGObO5j1yd7YWYZUn86PGAp91Uz2rr+pmDWLOt319Yx5KwWoRHQ1K4bYjAfDBNGA== "@vercel/node-bridge@3.1.2": version "3.1.2" @@ -4406,13 +4407,13 @@ integrity sha512-dgcLXug0IqUeRsywf0G8IrhUFcgw+GYj+EZB4JneglKSofFBh3Xy/t7KfBUxLlKnoq6kyGYJvTmAVB1YBt11qw== "@vercel/node@^2.5.26": - version "2.6.3" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.6.3.tgz#05a624bcbbb05738f0e2ded3a6284735933767ef" - integrity sha512-zLwv+V9VnMi3Hxrg098sGU0v92+eocwFtD5ZIqVoCiIVEmv9s3TzK+nkF0dYIsy+IW/AV8rcG8qPbgtSHvapIA== + version "2.7.0" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.7.0.tgz#54e159aab98c814185004c21e7f67edea6de528f" + integrity sha512-/BtpP/S+VX4Fpklj5vC/k9Tfsak2qpN7x3Lio9K8SoM/N0fzfqnYqU9URixLxpx9GYGJe7uKjorD+D9nY3HBzA== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "5.5.8" + "@vercel/build-utils" "5.6.0" "@vercel/node-bridge" "3.1.2" "@vercel/static-config" "2.0.6" edge-runtime "2.0.0" @@ -4470,28 +4471,32 @@ "@walletconnect/utils" "^1.8.0" "@walletconnect/crypto@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.2.tgz#3fcc2b2cde6f529a19eadd883dc555cd0e861992" - integrity sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.3.tgz#7b8dd4d7e2884fe3543c7c07aea425eef5ef9dd4" + integrity sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g== dependencies: - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/environment" "^1.0.0" - "@walletconnect/randombytes" "^1.0.2" + "@walletconnect/encoding" "^1.0.2" + "@walletconnect/environment" "^1.0.1" + "@walletconnect/randombytes" "^1.0.3" aes-js "^3.1.2" hash.js "^1.1.7" + tslib "1.14.1" -"@walletconnect/encoding@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.1.tgz#93c18ce9478c3d5283dbb88c41eb2864b575269a" - integrity sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA== +"@walletconnect/encoding@^1.0.1", "@walletconnect/encoding@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.2.tgz#cb3942ad038d6a6bf01158f66773062dd25724da" + integrity sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag== dependencies: is-typedarray "1.0.0" + tslib "1.14.1" typedarray-to-buffer "3.1.5" -"@walletconnect/environment@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" - integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== +"@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@^1.7.8": version "1.8.0" @@ -4517,36 +4522,40 @@ "@walletconnect/utils" "^1.8.0" "@walletconnect/jsonrpc-http-connection@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.3.tgz#0343811bb33fb8a3823cb3306b306cf2ed61e99a" - integrity sha512-npPvDG2JxyxoqOphDiyjp5pPeASRBrlfQS39wHESPHlFIjBuvNt9lV9teh53MK9Ncbyxh4y2qEKMfPgcUulTRg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.4.tgz#aeb0f7eae6565dd031f01d650ee73d358d760ee2" + integrity sha512-ji79pspdBhmIbTwve383tMaDu5Le9plW+oj5GE2aqzxIl3ib8JvRBZRn5lGEBGqVCvqB3MBJL7gBlEwpyRtoxQ== dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.3" - "@walletconnect/safe-json" "^1.0.0" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/safe-json" "^1.0.1" cross-fetch "^3.1.4" + tslib "1.14.1" "@walletconnect/jsonrpc-provider@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.5.tgz#1a66053b6f083a9885a32b7c2c8f6a376f1a4458" - integrity sha512-v61u4ZIV8+p9uIHS2Kl2YRj/2idrQiHcrbrJXw3McQkEJtj9mkCofr1Hu/n419wSRM5uiNK8Z4WRS9zGTTAhWQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.6.tgz#e91321ef523f1904e6634e7866a0f3c6f056d2cd" + integrity sha512-f5vQxr53vUVQ51/9mRLb1OiNciT/546XZ68Byn9OYnDBGeGJXK2kQWDHp8sPWZbN5x0p7B6asdCWMVFJ6danlw== dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.3" - "@walletconnect/safe-json" "^1.0.0" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/safe-json" "^1.0.1" + tslib "1.14.1" -"@walletconnect/jsonrpc-types@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz#a96b4bb2bcc8838a70e06f15c1b5ab11c47d8e95" - integrity sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw== +"@walletconnect/jsonrpc-types@^1.0.1", "@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== dependencies: keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" -"@walletconnect/jsonrpc-utils@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz#5bd49865eef0eae48e8b45a06731dc18691cf8c7" - integrity sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ== +"@walletconnect/jsonrpc-utils@^1.0.3", "@walletconnect/jsonrpc-utils@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.4.tgz#2009ba3907b02516f2caacd2fb871ff0d472b2cb" + integrity sha512-y0+tDxcTZ9BHBBKBJbjZxLUXb+zQZCylf7y/jTvDPNx76J0hYYc+F9zHzyqBLeorSKepLTk6yI8hw3NXbAQB3g== dependencies: - "@walletconnect/environment" "^1.0.0" - "@walletconnect/jsonrpc-types" "^1.0.1" + "@walletconnect/environment" "^1.0.1" + "@walletconnect/jsonrpc-types" "^1.0.2" + tslib "1.14.1" "@walletconnect/mobile-registry@^1.4.0": version "1.4.0" @@ -4565,20 +4574,28 @@ preact "10.4.1" qrcode "1.4.4" -"@walletconnect/randombytes@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.2.tgz#95c644251a15e6675f58fbffc9513a01486da49c" - integrity sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A== +"@walletconnect/randombytes@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.3.tgz#e795e4918367fd1e6a2215e075e64ab93e23985b" + integrity sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw== dependencies: - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/environment" "^1.0.0" + "@walletconnect/encoding" "^1.0.2" + "@walletconnect/environment" "^1.0.1" randombytes "^2.1.0" + tslib "1.14.1" -"@walletconnect/safe-json@1.0.0", "@walletconnect/safe-json@^1.0.0": +"@walletconnect/safe-json@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== +"@walletconnect/safe-json@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.1.tgz#9813fa0a7a544b16468730c2d7bed046ed160957" + integrity sha512-Fm7e31oSYY15NQr8SsLJheKAy5L744udZf2lJKcz6wFmPJEzf7hOF0866o/rrldRzJnjZ4H2GJ45pFudsnLW5A== + dependencies: + tslib "1.14.1" + "@walletconnect/signer-connection@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz#6cdf490df770e504cc1a550bdb5bac7696b130bc" @@ -4618,11 +4635,18 @@ js-sha3 "0.8.0" query-string "6.13.5" -"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": +"@walletconnect/window-getters@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== +"@walletconnect/window-getters@^1.0.0": + 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.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" @@ -4795,21 +4819,7 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@whatwg-node/fetch@0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.5.1.tgz#62c7e902ddfb7d16b0b31599d81628bbd22350a9" - integrity sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g== - dependencies: - "@peculiar/webcrypto" "^1.4.0" - abort-controller "^3.0.0" - busboy "^1.6.0" - form-data-encoder "^1.7.1" - formdata-node "^4.3.1" - node-fetch "^2.6.7" - undici "^5.12.0" - web-streams-polyfill "^3.2.0" - -"@whatwg-node/fetch@^0.5.0": +"@whatwg-node/fetch@0.5.3", "@whatwg-node/fetch@^0.5.0": version "0.5.3" resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.5.3.tgz#afbd38a2e5392d91318845b967529076ca654b9e" integrity sha512-cuAKL3Z7lrJJuUrfF1wxkQTb24Qd1QO/lsjJpM5ZSZZzUMms5TPnbGeGUKWA3hVKNHh30lVfr2MyRCT5Jfkucw== @@ -5176,9 +5186,9 @@ any-signal@^3.0.0: integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + 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" @@ -5471,9 +5481,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1255.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1255.0.tgz#f5af4d7cbc78c7c04d0c65cf882c89790f563da7" - integrity sha512-S3oPXrBVOWquVL1bzH79bz88PgF4GqLcUbIph5yJ+pWW0OKNWGWKW1PDwtWi6ma+8mKXJ1gGKgy6R2hD57AsLw== + version "2.1265.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1265.0.tgz#ec034b10126d7c81242b2501567cb4d5179a4e61" + integrity sha512-PcW3VAxatnOgSwdENkXpFAKnE6P5GJeI7yxjEhjHSLXFyOzQZQZIT5NMCs7B25nB6iACzxizjKaYbU0kNA/8/Q== dependencies: buffer "4.9.2" events "1.1.1" @@ -5517,9 +5527,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.0.tgz#1cb65bd75162c70e9f8d118a905126c4a201d383" + integrity sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -5765,7 +5775,7 @@ bigint-mod-arith@^3.1.0: resolved "https://registry.yarnpkg.com/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz#658e416bc593a463d97b59766226d0a3021a76b1" integrity sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ== -bignumber.js@^9.0.0, bignumber.js@^9.0.1: +bignumber.js@^9.0.0: version "9.1.0" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== @@ -6323,9 +6333,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001434" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz#ec1ec1cfb0a93a34a0600d37903853030520a4e5" - integrity sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA== + version "1.0.30001435" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001435.tgz#502c93dbd2f493bee73a408fe98e98fb1dad10b2" + integrity sha512-kdCkUTjR+v4YAJelyiDTqiu82BDr4W4CP5sgTA0ZBmqn30XfS2ZghPLMowik9TPhS+psWJiUNxsqLyurDbmutA== carbites@^1.0.6: version "1.0.6" @@ -6352,13 +6362,12 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== -cbor@^5.0.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" - integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== +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: - bignumber.js "^9.0.1" - nofilter "^1.0.4" + nofilter "^3.1.0" cborg@^1.5.4, cborg@^1.6.0: version "1.9.6" @@ -6525,9 +6534,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.6.1.tgz#7594f1c95cb7fdfddee7af95a13af7dbc67afdcf" - integrity sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w== + version "3.7.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" + integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== cids@^0.7.1, cids@~0.7.0, cids@~0.7.1: version "0.7.5" @@ -6790,7 +6799,7 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^2.0.10, colorette@^2.0.16, colorette@^2.0.17: +colorette@^2.0.10, colorette@^2.0.19: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== @@ -6865,7 +6874,7 @@ commander@^8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@^9.3.0, commander@^9.4.0: +commander@^9.4.0, commander@^9.4.1: version "9.4.1" resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== @@ -7317,9 +7326,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.1.0.tgz#574f97235a83eb753a29f0b1f2cbacac0d628bb8" - integrity sha512-Sd99PrFgx28ez4GHu8yoQIufc/70h9oYowDf4EjeIKi8mac9whxRjhM3IaMr6EllP6KKKWtJrMfN6C7T9tIWvQ== + version "7.2.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.2.0.tgz#f44bd4abc430f0ff7f4c64b8a1fb857a753f77a8" + integrity sha512-JYlIsE7eKHSi0UNuCyo96YuIDFqvhGgHw4Ck6lsN+DP0Tp8M64UTDT2trGbkMDqnCoEjks7CkS0XcjU0rkvBdg== cssesc@^3.0.0: version "3.0.0" @@ -8206,9 +8215,9 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: once "^1.4.0" enhanced-resolve@^5.10.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" - integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== + version "5.12.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" + integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -8666,9 +8675,9 @@ eslint-plugin-jest@^25.3.0: "@typescript-eslint/experimental-utils" "^5.0.0" eslint-plugin-jest@^27.1.5: - version "27.1.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.1.5.tgz#16fad619cfee6cdf73d56098fbed0761e1f653ce" - integrity sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA== + version "27.1.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.1.6.tgz#361d943f07d1978838e6b852c44a579f3879e332" + integrity sha512-XA7RFLSrlQF9IGtAmhddkUkBuICCTuryfOTfCSWcZHiHb69OilIH05oozH2XA6CEOtztnOd0vgXyvxZodkxGjg== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -10119,9 +10128,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -10338,9 +10347,9 @@ hardhat-contract-sizer@^2.6.1: cli-table3 "^0.6.0" hardhat-deploy@^0.11.14: - version "0.11.20" - resolved "https://registry.yarnpkg.com/hardhat-deploy/-/hardhat-deploy-0.11.20.tgz#d95499a0d29b75f1f1d3838c9a3eb6d2d0d20f57" - integrity sha512-6G2aFLW0mfZxY0ljDf8rxzEJkVh57gr3Eia5H2DeBIQNJh0dhBV2Y5LDq4E4J9K4Crq0DjpxGNTshEtAB9eWxA== + version "0.11.21" + resolved "https://registry.yarnpkg.com/hardhat-deploy/-/hardhat-deploy-0.11.21.tgz#d40b7755e52b3c39419dc877bfacc0695eea1897" + integrity sha512-cSFZ+CgFdN012+ysckSiEfiD6u5fFpYmdadj2kG5BnkU0adJZtzGNtbVp/GrOt6sj73pIScWpWwMtkCLaxk+gg== dependencies: "@types/qs" "^6.9.7" axios "^0.21.1" @@ -10366,9 +10375,9 @@ hardhat-gas-reporter@^1.0.9: sha1 "^1.1.1" hardhat@^2.10.2, hardhat@^2.12.2: - version "2.12.2" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.2.tgz#6ae985007b20c1f381c6573799d66c1438c4c802" - integrity sha512-f3ZhzXy1uyQv0UXnAQ8GCBOWjzv++WJNb7bnm10SsyC3dB7vlPpsMWBNhq7aoRxKrNhX9tCev81KFV3i5BTeMQ== + version "2.12.3" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.3.tgz#1824c5d5e2bcc61601bee429053ccecb4dbc0adb" + integrity sha512-qxOvRNgQnLqRFssn5f8VP5KN3caytShU0HNeKxmPVK1Ix/0xDVhIC7JOLxG69DjOihUfmxmjqspsHbZvFj6EhQ== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" @@ -10840,9 +10849,9 @@ ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.1.1, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + version "5.2.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" + integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== immediate@~3.0.5: version "3.0.6" @@ -13204,12 +13213,7 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" -lilconfig@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== - -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: +lilconfig@2.0.6, lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== @@ -13220,35 +13224,35 @@ lines-and-columns@^1.1.6: integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lint-staged@^13.0.3: - version "13.0.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" - integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== + version "13.0.4" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.4.tgz#c4b4391280c35165b805ad43304ba01f733067a0" + integrity sha512-HxlHCXoYRsq9QCby5wFozmZW00hMs/9e3l+/dz6Qr8Kle4UH0kJTdABAbqhzG+3pcG6QjL9kz7NgGBfph+a5dw== dependencies: cli-truncate "^3.1.0" - colorette "^2.0.17" - commander "^9.3.0" + colorette "^2.0.19" + commander "^9.4.1" debug "^4.3.4" execa "^6.1.0" - lilconfig "2.0.5" - listr2 "^4.0.5" + lilconfig "2.0.6" + listr2 "^5.0.5" micromatch "^4.0.5" normalize-path "^3.0.0" object-inspect "^1.12.2" pidtree "^0.6.0" string-argv "^0.3.1" - yaml "^2.1.1" + yaml "^2.1.3" -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== +listr2@^5.0.5: + version "5.0.6" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.6.tgz#3c61153383869ffaad08a8908d63edfde481dff8" + integrity sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag== dependencies: cli-truncate "^2.1.0" - colorette "^2.0.16" + colorette "^2.0.19" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.5" + rxjs "^7.5.7" through "^2.3.8" wrap-ansi "^7.0.0" @@ -13257,7 +13261,7 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^2.0.0, loader-utils@^2.0.3: +loader-utils@^2.0.0, loader-utils@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== @@ -13771,9 +13775,9 @@ min-indent@^1.0.0: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.4.5: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.0.tgz#d7d9ba0c5b596d155e36e2b174082fc7f010dd64" - integrity sha512-auqtVo8KhTScMsba7MbijqZTfibbXiBNlPAQbsVt7enQfcDYLdgG57eGxMqwVU3mfeWANY4F1wUg+rMF+ycZgw== + version "2.7.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.1.tgz#ec924df783cff32ce6183fceb653028f70128643" + integrity sha512-viOoaUFy+Z2w43VsGPbtfwFrr0tKwDctK9dUofG5MBViYhD1noGFUzzDIVw0KPwCGUP+c7zqLxm+acuQs7zLzw== dependencies: schema-utils "^4.0.0" @@ -13816,9 +13820,9 @@ minimatch@5.0.1: brace-expansion "^2.0.1" minimatch@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + version "5.1.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" + integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== dependencies: brace-expansion "^2.0.1" @@ -13868,9 +13872,9 @@ minipass@^2.6.0, minipass@^2.9.0: yallist "^3.0.0" minipass@^3.0.0: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + 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" @@ -14409,10 +14413,10 @@ nodeify@^1.0.1: is-promise "~1.0.0" promise "~1.3.0" -nofilter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" - integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== +nofilter@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== nopt@3.x: version "3.0.6" @@ -15194,9 +15198,9 @@ postcss-custom-media@^8.0.2: postcss-value-parser "^4.2.0" postcss-custom-properties@^12.1.10: - version "12.1.10" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.10.tgz#624517179fd4cf50078a7a60f628d5782e7d4903" - integrity sha512-U3BHdgrYhCrwTVcByFHs9EOBoqcKq4Lf3kXwbTi4hhq0qWhl/pDWq2THbv/ICX/Fl9KqeHBb8OVrTf2OaYF07A== + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== dependencies: postcss-value-parser "^4.2.0" @@ -15722,9 +15726,9 @@ prettier@1.19.1: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.3.1, prettier@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + version "2.8.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9" + integrity sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA== pretty-bytes@5.6.0, pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -16277,19 +16281,19 @@ react-resize-detector@^7.1.2: lodash "^4.17.21" react-router-dom@^6.4.3: - version "6.4.3" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.4.3.tgz#70093b5f65f85f1df9e5d4182eb7ff3a08299275" - integrity sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ== + version "6.4.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.4.4.tgz#4271ec66333c440d1754477e4e6a3a5acb5487f8" + integrity sha512-0Axverhw5d+4SBhLqLpzPhNkmv7gahUwlUVIOrRLGJ4/uwt30JVajVJXqv2Qr/LCwyvHhQc7YyK1Do8a9Jj7qA== dependencies: - "@remix-run/router" "1.0.3" - react-router "6.4.3" + "@remix-run/router" "1.0.4" + react-router "6.4.4" -react-router@6.4.3: - version "6.4.3" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.4.3.tgz#9ed3ee4d6e95889e9b075a5d63e29acc7def0d49" - integrity sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA== +react-router@6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.4.4.tgz#8e7794f55ccc7050cb03937c87ff3720ce9f8b60" + integrity sha512-SA6tSrUCRfuLWeYsTJDuriRqfFIsrSvuH7SqAJHegx9ZgxadE119rU8oOX/rG5FYEthpdEaEljdjDlnBxvfr+Q== dependencies: - "@remix-run/router" "1.0.3" + "@remix-run/router" "1.0.4" react-scripts@5.0.1, react-scripts@^5.0.1: version "5.0.1" @@ -16615,12 +16619,12 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.9: +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.9: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-transform@^0.15.0: +regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== @@ -16646,7 +16650,7 @@ regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^5.1.0: +regexpu-core@^5.2.1: version "5.2.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw== @@ -17007,7 +17011,7 @@ rxjs@^6.6.3: dependencies: tslib "^1.9.0" -rxjs@^7.0.0, rxjs@^7.5.5: +rxjs@^7.0.0, rxjs@^7.5.7: version "7.5.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== @@ -18353,9 +18357,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: terser "^5.14.1" terser@^5.0.0, terser@^5.10.0, terser@^5.14.1: - version "5.15.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" - integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== + version "5.16.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.0.tgz#29362c6f5506e71545c73b069ccd199bb28f7f54" + integrity sha512-KjTV81QKStSfwbNiwlBXfcgMcOloyuRdb62/iLFPGBcVNF4EXjhdYBhYHmbJpiBrVxZhDvltE11j+LBQUxEEJg== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -18673,7 +18677,7 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +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== @@ -18870,9 +18874,9 @@ unbox-primitive@^1.0.2: which-boxed-primitive "^1.0.2" undici@^5.12.0, undici@^5.4.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.12.0.tgz#c758ffa704fbcd40d506e4948860ccaf4099f531" - integrity sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg== + version "5.13.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.13.0.tgz#56772fba89d8b25e39bddc8c26a438bd73ea69bb" + integrity sha512-UDZKtwb2k7KRsK4SdXWG7ErXiL7yTGgLWvk2AXO1JMjgjh404nFo6tWSCM2xMpJwMPx3J8i/vfqEh1zOqvj82Q== dependencies: busboy "^1.6.0" @@ -20257,7 +20261,7 @@ 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: version "2.1.3" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== From 02557d02357aa896a1d6d51b5533e9e9da5ad8dc Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 2 Dec 2022 10:45:47 +0100 Subject: [PATCH 005/216] update fortune tests for staking and slashing --- .../src/services/fortune.test.ts | 59 ++++++++++++++--- .../src/services/escrow.test.ts | 63 +++++++++++++++---- 2 files changed, 100 insertions(+), 22 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts index a6f4332e2c..dcf4a914b2 100644 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts @@ -11,12 +11,14 @@ import { addFortune } from './fortune'; import Escrow from '@human-protocol/core/artifacts/contracts/Escrow.sol/Escrow.json'; import HMToken from '@human-protocol/core/artifacts/contracts/HMToken.sol/HMToken.json'; import EscrowFactory from '@human-protocol/core/artifacts/contracts/EscrowFactory.sol/EscrowFactory.json'; +import Staking from '@human-protocol/core/artifacts/contracts/Staking.sol/Staking.json'; import { bulkPayout } from './reputationClient'; import { getManifest } from './manifest'; import { Contract } from 'web3-eth-contract'; import { getEscrow, getFortunes, getWorkerResult } from './storage'; let token: Contract; +let staking: Contract; let escrowFactory: Contract; let escrowAddress: string; let escrow: Contract; @@ -24,9 +26,12 @@ let escrow: Contract; const worker1 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; const worker2 = '0xcd3B766CCDd6AE721141F452C550Ca635964ce71'; const web3 = new Web3('http://127.0.0.1:8547'); -const account = web3.eth.accounts.privateKeyToAccount( +const owner = web3.eth.accounts.privateKeyToAccount( '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' ); +const launcher = web3.eth.accounts.privateKeyToAccount( + '0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6' +); const recordingAccount = web3.eth.accounts.privateKeyToAccount( '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' ); @@ -48,9 +53,8 @@ describe('Fortune', () => { ], }) .send({ - from: account.address, + from: owner.address, }); - const escrowFactoryContract = new web3.eth.Contract( EscrowFactory.abi as [] ); @@ -60,21 +64,56 @@ describe('Fortune', () => { arguments: [token.options.address], }) .send({ - from: account.address, + from: owner.address, + }); + + const stakingContract = new web3.eth.Contract(Staking.abi as []); + staking = await stakingContract + .deploy({ + data: Staking.bytecode, + arguments: [ + token.options.address, + escrowFactory.options.address, + web3.utils.toWei('1', 'ether'), + 1, + ], + }) + .send({ + from: owner.address, }); + + await escrowFactory.methods + .setStaking(staking.options.address) + .send({ from: owner.address }); + + await token.methods + .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) + .send({ from: owner.address }); + + await token.methods + .approve(staking.options.address, web3.utils.toWei('500', 'ether')) + .send({ from: launcher.address }); + + await staking.methods + .setStaker(launcher.address, 1) + .send({ from: owner.address }); + + await staking.methods + .stake(web3.utils.toWei('500', 'ether')) + .send({ from: launcher.address }); }); beforeEach(async () => { await escrowFactory.methods - .createEscrow([account.address]) - .send({ from: account.address }); + .createEscrow([launcher.address]) + .send({ from: launcher.address }); escrowAddress = await escrowFactory.methods.lastEscrow().call(); const value = web3.utils.toWei('10', 'ether'); await token.methods .transfer(escrowAddress, value) - .send({ from: account.address }); + .send({ from: launcher.address }); escrow = new web3.eth.Contract(Escrow.abi as [], escrowAddress); await escrow.methods @@ -86,7 +125,7 @@ describe('Fortune', () => { 'manifestUrl', 'manifestUrl' ) - .send({ from: account.address }); + .send({ from: launcher.address }); jest.mocked(getManifest).mockResolvedValue({ fortunes_requested: 2, @@ -141,7 +180,7 @@ describe('Fortune', () => { }); it('Invalid recording oracle address', async () => { - web3.eth.defaultAccount = account.address; + web3.eth.defaultAccount = owner.address; const err: any = await addFortune( web3, worker1, @@ -157,7 +196,7 @@ describe('Fortune', () => { it('Escrow not pending', async () => { await escrow.methods.cancel().send({ - from: account.address, + from: launcher.address, }); const err: any = await addFortune( web3, diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts index a5950bbe8b..2301736f93 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts @@ -4,21 +4,26 @@ import { describe, expect, it, beforeAll, beforeEach } from '@jest/globals'; import Escrow from '@human-protocol/core/artifacts/contracts/Escrow.sol/Escrow.json'; import HMToken from '@human-protocol/core/artifacts/contracts/HMToken.sol//HMToken.json'; import EscrowFactory from '@human-protocol/core/artifacts/contracts/EscrowFactory.sol/EscrowFactory.json'; +import Staking from '@human-protocol/core/artifacts/contracts/Staking.sol/Staking.json'; import { Contract } from 'web3-eth-contract'; let token: Contract; +let staking: Contract; let escrowFactory: Contract; let escrowAddress: string; let escrow: Contract; -const worker1 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; +const worker1 = '0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f'; const worker2 = '0xcd3B766CCDd6AE721141F452C550Ca635964ce71'; const worker3 = '0x146D35a6485DbAFF357fB48B3BbA31fCF9E9c787'; const web3 = new Web3('http://127.0.0.1:8548'); -const account = web3.eth.accounts.privateKeyToAccount( +const owner = web3.eth.accounts.privateKeyToAccount( '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' ); +const launcher = web3.eth.accounts.privateKeyToAccount( + '0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6' +); const recordingAccount = web3.eth.accounts.privateKeyToAccount( '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' ); @@ -38,7 +43,7 @@ describe('Fortune', () => { ], }) .send({ - from: account.address, + from: owner.address, }); const escrowFactoryContract = new web3.eth.Contract( @@ -50,21 +55,55 @@ describe('Fortune', () => { arguments: [token.options.address], }) .send({ - from: account.address, + from: owner.address, }); + const stakingContract = new web3.eth.Contract(Staking.abi as []); + staking = await stakingContract + .deploy({ + data: Staking.bytecode, + arguments: [ + token.options.address, + escrowFactory.options.address, + web3.utils.toWei('1', 'ether'), + 1, + ], + }) + .send({ + from: owner.address, + }); + + await escrowFactory.methods + .setStaking(staking.options.address) + .send({ from: owner.address }); + + await token.methods + .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) + .send({ from: owner.address }); + + await token.methods + .approve(staking.options.address, web3.utils.toWei('500', 'ether')) + .send({ from: launcher.address }); + + await staking.methods + .setStaker(launcher.address, 1) + .send({ from: owner.address }); + + await staking.methods + .stake(web3.utils.toWei('500', 'ether')) + .send({ from: launcher.address }); }); beforeEach(async () => { await escrowFactory.methods - .createEscrow([account.address]) - .send({ from: account.address }); + .createEscrow([launcher.address]) + .send({ from: launcher.address }); escrowAddress = await escrowFactory.methods.lastEscrow().call(); const value = web3.utils.toWei('30', 'ether'); await token.methods .transfer(escrowAddress, value) - .send({ from: account.address }); + .send({ from: launcher.address }); escrow = new web3.eth.Contract(Escrow.abi as [], escrowAddress); await escrow.methods @@ -76,7 +115,7 @@ describe('Fortune', () => { 'manifestUrl', 'manifestUrl' ) - .send({ from: account.address }); + .send({ from: launcher.address }); }); it('Get escrow balance', async () => { @@ -103,10 +142,10 @@ describe('Fortune', () => { expect(await token.methods.balanceOf(worker1).call()).toBe( web3.utils.toWei('0', 'ether') ); - expect(await token.methods.balanceOf(worker1).call()).toBe( + expect(await token.methods.balanceOf(worker2).call()).toBe( web3.utils.toWei('0', 'ether') ); - expect(await token.methods.balanceOf(worker1).call()).toBe( + expect(await token.methods.balanceOf(worker3).call()).toBe( web3.utils.toWei('0', 'ether') ); }, 10000); @@ -130,10 +169,10 @@ describe('Fortune', () => { expect(await token.methods.balanceOf(worker1).call()).toBe( web3.utils.toWei('8', 'ether') ); - expect(await token.methods.balanceOf(worker1).call()).toBe( + expect(await token.methods.balanceOf(worker2).call()).toBe( web3.utils.toWei('8', 'ether') ); - expect(await token.methods.balanceOf(worker1).call()).toBe( + expect(await token.methods.balanceOf(worker3).call()).toBe( web3.utils.toWei('8', 'ether') ); }, 10000); From 3e889b14ee9214703f995782f42685a1238b36d5 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 2 Dec 2022 10:49:33 +0100 Subject: [PATCH 006/216] fix lint --- .../src/services/escrow.test.ts | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts index 2301736f93..14e4603292 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts @@ -57,40 +57,40 @@ describe('Fortune', () => { .send({ from: owner.address, }); - const stakingContract = new web3.eth.Contract(Staking.abi as []); - staking = await stakingContract - .deploy({ - data: Staking.bytecode, - arguments: [ - token.options.address, - escrowFactory.options.address, - web3.utils.toWei('1', 'ether'), - 1, - ], - }) - .send({ - from: owner.address, - }); - - await escrowFactory.methods - .setStaking(staking.options.address) - .send({ from: owner.address }); - - await token.methods - .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) - .send({ from: owner.address }); - - await token.methods - .approve(staking.options.address, web3.utils.toWei('500', 'ether')) - .send({ from: launcher.address }); - - await staking.methods - .setStaker(launcher.address, 1) - .send({ from: owner.address }); - - await staking.methods - .stake(web3.utils.toWei('500', 'ether')) - .send({ from: launcher.address }); + const stakingContract = new web3.eth.Contract(Staking.abi as []); + staking = await stakingContract + .deploy({ + data: Staking.bytecode, + arguments: [ + token.options.address, + escrowFactory.options.address, + web3.utils.toWei('1', 'ether'), + 1, + ], + }) + .send({ + from: owner.address, + }); + + await escrowFactory.methods + .setStaking(staking.options.address) + .send({ from: owner.address }); + + await token.methods + .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) + .send({ from: owner.address }); + + await token.methods + .approve(staking.options.address, web3.utils.toWei('500', 'ether')) + .send({ from: launcher.address }); + + await staking.methods + .setStaker(launcher.address, 1) + .send({ from: owner.address }); + + await staking.methods + .stake(web3.utils.toWei('500', 'ether')) + .send({ from: launcher.address }); }); beforeEach(async () => { From 91e15614f2fc1a7db6588506499c8e93c26a7ea1 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 5 Dec 2022 10:20:02 -0500 Subject: [PATCH 007/216] node.js sdk change --- .../src/abis/EscrowFactoryABI.json | 147 ----- .../escrow-dashboard/src/abis/Staking.json | 583 ------------------ packages/core/contracts/RewardPool.sol | 2 +- packages/core/test/EscrowFactory.ts | 2 +- .../human-protocol-sdk/src/error.ts | 5 + .../typescript/human-protocol-sdk/src/job.ts | 223 ++++++- .../human-protocol-sdk/src/types.ts | 71 +++ .../human-protocol-sdk/src/utils.ts | 71 +++ .../human-protocol-sdk/test/job.test.ts | 111 ++-- .../test/utils/constants.ts | 4 + yarn.lock | 172 +++--- 11 files changed, 503 insertions(+), 888 deletions(-) delete mode 100644 packages/apps/escrow-dashboard/src/abis/EscrowFactoryABI.json delete mode 100644 packages/apps/escrow-dashboard/src/abis/Staking.json diff --git a/packages/apps/escrow-dashboard/src/abis/EscrowFactoryABI.json b/packages/apps/escrow-dashboard/src/abis/EscrowFactoryABI.json deleted file mode 100644 index b56696468f..0000000000 --- a/packages/apps/escrow-dashboard/src/abis/EscrowFactoryABI.json +++ /dev/null @@ -1,147 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "_eip20", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "eip20", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "escrow", - "type": "address" - } - ], - "name": "Launched", - "type": "event" - }, - { - "inputs": [], - "name": "counter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "trustedHandlers", - "type": "address[]" - } - ], - "name": "createEscrow", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "eip20", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "escrowCounters", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "hasEscrow", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_child", - "type": "address" - } - ], - "name": "isChild", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastEscrow", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } -] \ No newline at end of file diff --git a/packages/apps/escrow-dashboard/src/abis/Staking.json b/packages/apps/escrow-dashboard/src/abis/Staking.json deleted file mode 100644 index ce246dd16a..0000000000 --- a/packages/apps/escrow-dashboard/src/abis/Staking.json +++ /dev/null @@ -1,583 +0,0 @@ -[ - { - "inputs": [ - { "internalType": "address", "name": "_eip20", "type": "address" }, - { - "internalType": "address", - "name": "_escrowFactory", - "type": "address" - }, - { "internalType": "uint256", "name": "_minimumStake", "type": "uint256" }, - { "internalType": "uint32", "name": "_lockPeriod", "type": "uint32" } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "escrowAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint32", - "name": "lockPeriod", - "type": "uint32" - } - ], - "name": "SetLockPeriod", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "minimumStake", - "type": "uint256" - } - ], - "name": "SetMinumumStake", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "rewardPool", - "type": "address" - } - ], - "name": "SetRewardPool", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum Stakes.Role", - "name": "role", - "type": "uint8" - } - ], - "name": "SetStaker", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "escrowAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - } - ], - "name": "StakeAllocated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeDeposited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "StakeLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeWithdrawn", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_escrowAddress", - "type": "address" - }, - { "internalType": "uint256", "name": "_tokens", "type": "uint256" } - ], - "name": "allocate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "allocations", - "outputs": [ - { "internalType": "address", "name": "escrowAddress", "type": "address" }, - { "internalType": "address", "name": "staker", "type": "address" }, - { "internalType": "uint256", "name": "tokens", "type": "uint256" }, - { "internalType": "uint256", "name": "createdAt", "type": "uint256" }, - { "internalType": "uint256", "name": "closedAt", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_escrowAddress", "type": "address" } - ], - "name": "closeAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "eip20", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "escrowFactory", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_escrowAddress", "type": "address" } - ], - "name": "getAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "escrowAddress", - "type": "address" - }, - { "internalType": "address", "name": "staker", "type": "address" }, - { "internalType": "uint256", "name": "tokens", "type": "uint256" }, - { "internalType": "uint256", "name": "createdAt", "type": "uint256" }, - { "internalType": "uint256", "name": "closedAt", "type": "uint256" } - ], - "internalType": "struct IStaking.Allocation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_escrowAddress", "type": "address" } - ], - "name": "getAllocationState", - "outputs": [ - { - "internalType": "enum IStaking.AllocationState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "enum Stakes.Role", "name": "_role", "type": "uint8" } - ], - "name": "getListOfStakers", - "outputs": [ - { "internalType": "address[]", "name": "", "type": "address[]" }, - { - "components": [ - { - "internalType": "enum Stakes.Role", - "name": "role", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "tokensStaked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensAllocated", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensLocked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensLockedUntil", - "type": "uint256" - } - ], - "internalType": "struct Stakes.Staker[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_staker", "type": "address" } - ], - "name": "getStakedTokens", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_staker", "type": "address" } - ], - "name": "getStaker", - "outputs": [ - { - "components": [ - { - "internalType": "enum Stakes.Role", - "name": "role", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "tokensStaked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensAllocated", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensLocked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensLockedUntil", - "type": "uint256" - } - ], - "internalType": "struct Stakes.Staker", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_staker", "type": "address" } - ], - "name": "hasAvailableStake", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_staker", "type": "address" } - ], - "name": "hasStake", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_escrowAddress", "type": "address" } - ], - "name": "isAllocation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_staker", "type": "address" }, - { "internalType": "enum Stakes.Role", "name": "_role", "type": "uint8" } - ], - "name": "isRole", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lockPeriod", - "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumStake", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "rewardPool", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint32", "name": "_lockPeriod", "type": "uint32" } - ], - "name": "setLockPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint256", "name": "_minimumStake", "type": "uint256" } - ], - "name": "setMinimumStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_rewardPool", "type": "address" } - ], - "name": "setRewardPool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_staker", "type": "address" }, - { "internalType": "enum Stakes.Role", "name": "_role", "type": "uint8" } - ], - "name": "setStaker", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_staker", "type": "address" }, - { - "internalType": "address", - "name": "_escrowAddress", - "type": "address" - }, - { "internalType": "uint256", "name": "_tokens", "type": "uint256" } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "slashers", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint256", "name": "_tokens", "type": "uint256" } - ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "enum Stakes.Role", "name": "", "type": "uint8" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "name": "stakers", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "stakes", - "outputs": [ - { "internalType": "enum Stakes.Role", "name": "role", "type": "uint8" }, - { "internalType": "uint256", "name": "tokensStaked", "type": "uint256" }, - { - "internalType": "uint256", - "name": "tokensAllocated", - "type": "uint256" - }, - { "internalType": "uint256", "name": "tokensLocked", "type": "uint256" }, - { - "internalType": "uint256", - "name": "tokensLockedUntil", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint256", "name": "_tokens", "type": "uint256" } - ], - "name": "unstake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/packages/core/contracts/RewardPool.sol b/packages/core/contracts/RewardPool.sol index 130917e85c..288632f851 100644 --- a/packages/core/contracts/RewardPool.sol +++ b/packages/core/contracts/RewardPool.sol @@ -75,7 +75,7 @@ contract RewardPool is IRewardPool { /** * @dev Distribute rewards for allocation - * The function will be called from Staking contract, + * The function will be called from Escrow contract, * when the escrow gets Completed state */ function distributeReward(address _escrowAddress) external override { diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 4f51839507..44f034c877 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -47,7 +47,7 @@ describe('EscrowFactory', function () { await recordingOracle.getAddress(), ]; - // Deploy HMTToken Contract + // Deploy HMToken Contract const HMToken = await ethers.getContractFactory('HMToken'); token = await HMToken.deploy(1000000000, 'Human Token', 18, 'HMT'); diff --git a/packages/sdk/typescript/human-protocol-sdk/src/error.ts b/packages/sdk/typescript/human-protocol-sdk/src/error.ts index 7d884c9b73..93377eab2e 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/error.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/error.ts @@ -36,3 +36,8 @@ export const ErrorHMTokenMissing = new Error('HMToken is missing'); export const ErrorStorageAccessDataMissing = new Error( 'Storage access data is missing' ); + +/** + * @constant {Error} - The Staking contract is missing. + */ +export const ErrorStakingMissing = new Error('Staking contract is missing'); diff --git a/packages/sdk/typescript/human-protocol-sdk/src/job.ts b/packages/sdk/typescript/human-protocol-sdk/src/job.ts index 1b67a101c3..733575fec8 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/job.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/job.ts @@ -14,12 +14,17 @@ import { ContractData, JobArguments, StorageAccessData, + StakingData, + StakerRole, } from './types'; import { deployEscrowFactory, + deployRewardPool, + deployStaking, getEscrow, getEscrowFactory, getHmToken, + getStaking, toFullDigit, } from './utils'; import { @@ -29,6 +34,7 @@ import { ErrorJobNotLaunched, ErrorManifestMissing, ErrorReputationOracleMissing, + ErrorStakingMissing, ErrorStorageAccessDataMissing, } from './error'; import { createLogger } from './logger'; @@ -57,6 +63,11 @@ export class Job { */ storageAccessData?: StorageAccessData; + /** + * Staking data + */ + stakingData?: StakingData; + private _logger: winston.Logger; /** @@ -94,6 +105,9 @@ export class Job { storageEndpoint, storagePublicBucket, storageBucket, + stakingMinimumAmount, + stakingLockPeriod, + stakingRewardFee, logLevel = 'info', }: JobArguments) { const provider = network @@ -146,6 +160,12 @@ export class Job { bucket: storageBucket || DEFAULT_BUCKET, }; + this.stakingData = { + minimumStake: stakingMinimumAmount, + lockPeriod: stakingLockPeriod, + rewardFee: stakingRewardFee, + }; + this._logger = createLogger(logLevel); } @@ -183,6 +203,46 @@ export class Job { this._logger.info( `Escrow factory is deployed at ${this.contractData.factory.address}.` ); + + if ( + !this.stakingData?.minimumStake || + !this.stakingData?.lockPeriod || + !this.stakingData.rewardFee + ) { + this._logError(new Error('Staking data is missing.')); + this.contractData.factory = undefined; + + return false; + } + + this._logger.info('Deploying staking...'); + this.contractData.staking = await deployStaking( + this.contractData.hmTokenAddr, + this.contractData.factory.address, + this.stakingData.minimumStake, + this.stakingData.lockPeriod, + this.providerData?.gasPayer + ); + this.contractData.stakingAddr = this.contractData.staking.address; + this._logger.info( + `Staking is deployed at ${this.contractData.staking.address}` + ); + + this._logger.info('Deploying reward pool...'); + const rewardPool = await deployRewardPool( + this.contractData.hmTokenAddr, + this.contractData.staking.address, + this.stakingData.rewardFee, + this.providerData?.gasPayer + ); + this._logger.info(`RewardPool is deployed at ${rewardPool.address}`); + + this._logger.info('Configuring staking & reward pool...'); + await this.contractData.staking.setRewardPool(rewardPool.address); + await this.contractData.factory.setStaking(this.contractData.stakingAddr); + this._logger.info( + 'Staking & Reward Pool is configured with Escrow Factory.' + ); } else { if (!this.contractData?.factoryAddr) { this._logError( @@ -197,6 +257,31 @@ export class Job { this.providerData?.gasPayer ); + this._logger.info('Checking if staking is configured...'); + const stakingAddr = await this.contractData.factory.staking(); + if (!stakingAddr) { + this._logError(new Error('Factory is not configured with staking')); + this.contractData.factory = undefined; + + return false; + } + this._logger.info('Getting staking...'); + this.contractData.staking = await getStaking( + stakingAddr, + this.providerData?.gasPayer + ); + this.contractData.stakingAddr = stakingAddr; + + this._logger.info('Checking if reward pool is configured...'); + const rewardPoolAddr = await this.contractData.staking.rewardPool(); + if (!rewardPoolAddr) { + this._logError(new Error('Staking is not configured with reward pool')); + this.contractData.staking = undefined; + this.contractData.factory = undefined; + + return false; + } + this._logger.info('Checking if escrow exists in the factory...'); const hasEscrow = await this.contractData?.factory.hasEscrow( this.contractData?.escrowAddr @@ -283,7 +368,8 @@ export class Job { const txResponse = await txReceipt?.wait(); const event = txResponse?.events?.find( - (event) => event.event === 'Launched' + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (event: any) => event.event === 'Launched' ); const escrowAddr = event?.args?.[1]; @@ -633,6 +719,141 @@ export class Job { return (await this.status()) === EscrowStatus.Complete; } + /** + * **Set the account as a staker** + * + * @param {string} accountAddr - Account address to set as a staker + * @param {StakerRole} role - Account role + * @returns {Promise} - True if the account is set as staker + */ + async setStaker(accountAddr: string, role: StakerRole) { + if (!this.contractData?.staking) { + this._logError(ErrorStakingMissing); + return false; + } + + return await this._raffleExecute( + this.contractData.staking, + 'setStaker', + accountAddr, + role + ); + } + + /** + * **Stake HMTokens** + * + * @param {number} amount - Amount to stake + * @returns {Promise} - True if the token is staked + */ + async stake(amount: number) { + if (!this.contractData?.staking) { + this._logError(ErrorStakingMissing); + return false; + } + if (!this.contractData.hmToken) { + this._logError(ErrorHMTokenMissing); + return false; + } + + const approved = await this.contractData.hmToken.approve( + this.contractData.staking.address, + toFullDigit(amount) + ); + + if (!approved) { + this._logError(new Error('Error approving HMTokens for staking')); + return false; + } + + return await this._raffleExecute( + this.contractData.staking, + 'stake', + toFullDigit(amount) + ); + } + + /** + * **Unstake HMTokens** + * + * @param {number} amount - Amount to unstake + * @returns {Promise} - True if the token is unstaked + */ + async unstake(amount: number) { + if (!this.contractData?.staking) { + this._logError(ErrorStakingMissing); + return false; + } + + return await this._raffleExecute( + this.contractData.staking, + 'unstake', + toFullDigit(amount) + ); + } + + /** + * **Withdraw unstaked HMTokens** + * + * @returns {Promise} - True if the token is withdrawn + */ + async withdraw() { + if (!this.contractData?.staking) { + this._logError(ErrorStakingMissing); + return false; + } + + return await this._raffleExecute(this.contractData.staking, 'withdraw'); + } + + /** + * **Allocate HMTokens staked to the job** + * + * @param amount - Amount to allocate + * @returns {Promise} - True if the token is allocated + */ + async allocate(amount: number) { + if (!this.contractData?.staking) { + this._logError(ErrorStakingMissing); + return false; + } + + if (!this.contractData.escrowAddr) { + this._logError(ErrorJobNotLaunched); + return false; + } + + return await this._raffleExecute( + this.contractData.staking, + 'allocate', + this.contractData.escrowAddr, + toFullDigit(amount) + ); + } + + /** + * **Unallocate HMTokens from the job** + * + * @returns {Promise} - True if the token is unallocated. + */ + async closeAllocation() { + if (!this.contractData?.staking) { + this._logError(ErrorStakingMissing); + return false; + } + + if (!this.contractData.escrowAddr) { + this._logError(ErrorJobNotLaunched); + return false; + } + + return await this._raffleExecute( + this.contractData.staking, + 'closeAllocation', + this.contractData.escrowAddr + ); + } + /** * **Get current status of the escrow** * diff --git a/packages/sdk/typescript/human-protocol-sdk/src/types.ts b/packages/sdk/typescript/human-protocol-sdk/src/types.ts index 7d2d543ce2..bbadf329d5 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/types.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/types.ts @@ -2,6 +2,7 @@ import { Escrow, EscrowFactory, HMToken, + Staking, } from '@human-protocol/core/typechain-types'; import { ethers } from 'ethers'; @@ -37,6 +38,38 @@ export enum EscrowStatus { Cancelled, } +/** + * Enum for staker role. + * @readonly + * @enum {number} + */ +export enum StakerRole { + /** + * No role + */ + Null, + /** + * Operator + */ + Operator, + /** + * Validator + */ + Validator, + /** + * Exchange Oracle + */ + ExchangeOracle, + /** + * Reputation Oracle + */ + ReputationOracle, + /** + * Recording Oracle + */ + RecordingOracle, +} + /** * Payout item * @readonly @@ -539,6 +572,24 @@ export type ManifestData = { intermediateResultLink?: StorageObjectLink; }; +/** + * Staking data + */ +export type StakingData = { + /** + * Minimum amount for staking + */ + minimumStake?: number; + /** + * Lock period for staking + */ + lockPeriod?: number; + /** + * Reward fee + */ + rewardFee?: number; +}; + /** * Contract data */ @@ -567,6 +618,14 @@ export type ContractData = { * HMToken contract instance */ hmToken?: HMToken; + /** + * Staking contract address + */ + stakingAddr?: string; + /** + * Staking contract instance + */ + staking?: Staking; }; /** @@ -656,6 +715,18 @@ export type JobArguments = { * AWS/GCP private bucket name */ storageBucket?: string; + /** + * Minimum amount for staking + */ + stakingMinimumAmount?: number; + /** + * Lock period for staking + */ + stakingLockPeriod?: number; + /** + * Reward fee for staking + */ + stakingRewardFee?: number; /** * Log level */ diff --git a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts index 95ccfbd9e7..3c4b399b6a 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts @@ -7,6 +7,10 @@ import { EscrowFactory__factory, HMToken, HMToken__factory, + Staking, + Staking__factory, + RewardPool, + RewardPool__factory, } from '@human-protocol/core/typechain-types'; /** @@ -81,6 +85,73 @@ export const getEscrow = async ( return contract; }; +/** + * **Deploy Staking contract** + * + * @param {string} hmTokenAddr HMToken address + * @param {string} escrowFactoryAddr Escrow factory address + * @param {number} minimumStake Minimum amount to stake + * @param {number} lockPeriod Lock period after unstake + * @param {ethers.Signer | undefined} signer Deployer signer + * @returns {Promise} Deployed contract instance + */ +export const deployStaking = async ( + hmTokenAddr: string, + factoryAddr: string, + minimumStake: number, + lockPeriod: number, + signer?: ethers.Signer +): Promise => { + const staking = new Staking__factory(signer); + const contract = await staking.deploy( + hmTokenAddr, + factoryAddr, + minimumStake, + lockPeriod + ); + + return contract; +}; + +/** + * **Get Staking contract instance at given address** + * + * @param {string} stakingAddr Staking contract address + * @param {ethers.Signer | undefined} signer Deployer signer + * @returns {Promise} Attached contract instance + */ +export const getStaking = async ( + stakingAddr: string, + signer?: ethers.Signer +): Promise => { + const factory = new Staking__factory(signer); + + const contract = await factory.attach(stakingAddr); + + return contract; +}; + +/** + * **Deploy RewardPool contract** + * + * @param {string} hmTokenAddr HMToken address + * @param {string} stakingAddr Staking address + * @param {number} fee Reward fee of the protocol + * @param {ethers.Signer | undefined} signer Deployer signer + * @returns {Promise} Deployed contract instance + */ +export const deployRewardPool = async ( + hmTokenAddr: string, + stakingAddr: string, + fee: number, + signer?: ethers.Signer +): Promise => { + const rewardPool = new RewardPool__factory(signer); + const contract = await rewardPool.deploy(hmTokenAddr, stakingAddr, fee); + + return contract; +}; + /** * **Get specific amount representation in given decimals** * diff --git a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts index effc126241..ad8332c003 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts @@ -1,11 +1,14 @@ import { getPublicURL } from './../src/storage'; -import { EscrowStatus, Job } from '../src'; +import { EscrowStatus, Job, StakerRole } from '../src'; import { upload } from '../src/storage'; import { toFullDigit } from '../src/utils'; import { DEFAULT_GAS_PAYER_ADDR, DEFAULT_GAS_PAYER_PRIVKEY, DEFAULT_HMTOKEN_ADDR, + DEFAULT_LOCK_PERIOD, + DEFAULT_MINIMUM_STAKE, + DEFAULT_REWARD_FEE, NOT_TRUSTED_OPERATOR_PRIVKEY, REPUTATION_ORACLE_PRIVKEY, TRUSTED_OPERATOR1_ADDR, @@ -29,6 +32,14 @@ jest.mock('../src/storage', () => ({ getPublicURL: jest.fn().mockResolvedValue('public-url'), })); +const setupJob = async (job: Job) => { + await job.initialize(); + await job.setStaker(DEFAULT_GAS_PAYER_ADDR, StakerRole.Operator); + await job.stake(1); + await job.launch(); + await job.setup(); +}; + describe('Test Job', () => { describe('New job', () => { let job: Job; @@ -39,6 +50,9 @@ describe('Test Job', () => { reputationOracle: REPUTATION_ORACLE_PRIVKEY, manifest: manifest, hmTokenAddr: DEFAULT_HMTOKEN_ADDR, + stakingMinimumAmount: DEFAULT_MINIMUM_STAKE, + stakingLockPeriod: DEFAULT_LOCK_PERIOD, + stakingRewardFee: DEFAULT_REWARD_FEE, logLevel: 'debug', }); }); @@ -54,11 +68,13 @@ describe('Test Job', () => { expect(await job.contractData?.factory?.address).not.toBeNull(); }); - it('Should be able to launch the job', async () => { + it.only('Should be able to launch the job after staking', async () => { // Fail to launch the job before initialization expect(await job.launch()).toBe(false); await job.initialize(); + await job.setStaker(DEFAULT_GAS_PAYER_ADDR, StakerRole.Operator); + await job.stake(1); expect(await job.launch()).toBe(true); expect(await job.status()).toBe(EscrowStatus.Launched); @@ -69,6 +85,9 @@ describe('Test Job', () => { expect(await job.setup()).toBe(false); await job.initialize(); + await job.setStaker(DEFAULT_GAS_PAYER_ADDR, StakerRole.Operator); + await job.stake(1); + await job.launch(); expect(await job.setup()).toBe(true); @@ -76,6 +95,9 @@ describe('Test Job', () => { it('Should be able to add trusted handlers', async () => { await job.initialize(); + await job.setStaker(DEFAULT_GAS_PAYER_ADDR, StakerRole.Operator); + await job.stake(1); + await job.launch(); expect(await job.isTrustedHandler(DEFAULT_GAS_PAYER_ADDR)).toBe(true); @@ -92,9 +114,7 @@ describe('Test Job', () => { }); it('Should be able to bulk payout workers', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); expect( await job.bulkPayout( @@ -148,9 +168,7 @@ describe('Test Job', () => { }); it('Should encrypt result, when bulk paying out workers', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); jest.clearAllMocks(); const finalResults = { results: 0 }; @@ -176,9 +194,7 @@ describe('Test Job', () => { }); it('Should not encrypt result, when bulk paying out workers', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); jest.clearAllMocks(); const finalResults = { results: 0 }; @@ -204,9 +220,7 @@ describe('Test Job', () => { }); it('Should store result in private storage, when bulk paying out workers', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); jest.clearAllMocks(); const finalResults = { results: 0 }; @@ -233,9 +247,7 @@ describe('Test Job', () => { }); it('Should store result in public storage, when bulk paying out workers', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); jest.clearAllMocks(); const finalResults = { results: 0 }; @@ -263,9 +275,7 @@ describe('Test Job', () => { }); it('Should return final result', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); const finalResults = { results: 0 }; await job.bulkPayout( @@ -285,17 +295,13 @@ describe('Test Job', () => { }); it('Should be able to abort the job', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); expect(await job.abort()).toBe(true); }); it('Should be able to abort partially paid job', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); const finalResults = { results: 0 }; await job.bulkPayout( @@ -313,9 +319,7 @@ describe('Test Job', () => { }); it('Should not be able to abort fully paid job', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); const finalResults = { results: 0 }; await job.bulkPayout( @@ -333,18 +337,14 @@ describe('Test Job', () => { }); it('Should be able to cancel the job', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); expect(await job.cancel()).toBe(true); expect((await job.balance())?.toString()).toBe(toFullDigit(0).toString()); }); it('Should be able to cancel partially paid job', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); const finalResults = { results: 0 }; await job.bulkPayout( @@ -363,9 +363,7 @@ describe('Test Job', () => { }); it('Should not be able to cancel paid job', async () => { - await job.initialize(); - await job.launch(); - await job.setup(); + await setupJob(job); const finalResults = { results: 0 }; await job.bulkPayout( @@ -393,12 +391,13 @@ describe('Test Job', () => { manifest: manifest, hmTokenAddr: DEFAULT_HMTOKEN_ADDR, trustedHandlers: [TRUSTED_OPERATOR1_PRIVKEY], + stakingMinimumAmount: DEFAULT_MINIMUM_STAKE, + stakingLockPeriod: DEFAULT_LOCK_PERIOD, + stakingRewardFee: DEFAULT_REWARD_FEE, logLevel: 'error', }); - await originalJob.initialize(); - await originalJob.launch(); - await originalJob.setup(); + await setupJob(originalJob); job = new Job({ gasPayer: NOT_TRUSTED_OPERATOR_PRIVKEY, @@ -416,8 +415,7 @@ describe('Test Job', () => { }); it('Should be able to initializes the job by accessing existing escrow', async () => { - const initialized = await job.initialize(); - expect(initialized).toBe(true); + expect(await job.initialize()).toBe(true); expect(await job.manifestData?.manifestlink?.url).toBe('uploaded-key'); expect(await job.manifestData?.manifestlink?.hash).toBe('uploaded-hash'); @@ -430,7 +428,7 @@ describe('Test Job', () => { expect(await job.status()).toBe(EscrowStatus.Pending); }); - it('Should be able to setup the job again', async () => { + it('Should not be able to setup the job again', async () => { await job.initialize(); expect(await job.setup()).toBe(false); @@ -444,7 +442,6 @@ describe('Test Job', () => { it('Should be able to add trusted handlers', async () => { await job.initialize(); - await job.launch(); expect(await job.isTrustedHandler(DEFAULT_GAS_PAYER_ADDR)).toBe(true); @@ -461,8 +458,6 @@ describe('Test Job', () => { it('Should be able to bulk payout workers', async () => { await job.initialize(); - await job.launch(); - await job.setup(); expect( await job.bulkPayout( @@ -517,8 +512,6 @@ describe('Test Job', () => { it('Should encrypt result, when bulk paying out workers', async () => { await job.initialize(); - await job.launch(); - await job.setup(); jest.clearAllMocks(); const finalResults = { results: 0 }; @@ -545,8 +538,6 @@ describe('Test Job', () => { it('Should not encrypt result, when bulk paying out workers', async () => { await job.initialize(); - await job.launch(); - await job.setup(); jest.clearAllMocks(); const finalResults = { results: 0 }; @@ -573,8 +564,6 @@ describe('Test Job', () => { it('Should store result in private storage, when bulk paying out workers', async () => { await job.initialize(); - await job.launch(); - await job.setup(); jest.clearAllMocks(); const finalResults = { results: 0 }; @@ -602,8 +591,6 @@ describe('Test Job', () => { it('Should store result in public storage, when bulk paying out workers', async () => { await job.initialize(); - await job.launch(); - await job.setup(); jest.clearAllMocks(); const finalResults = { results: 0 }; @@ -632,8 +619,6 @@ describe('Test Job', () => { it('Should return final result', async () => { await job.initialize(); - await job.launch(); - await job.setup(); const finalResults = { results: 0 }; await job.bulkPayout( @@ -654,16 +639,12 @@ describe('Test Job', () => { it('Should be able to abort the job', async () => { await job.initialize(); - await job.launch(); - await job.setup(); expect(await job.abort()).toBe(true); }); it('Should be able to abort partially paid job', async () => { await job.initialize(); - await job.launch(); - await job.setup(); const finalResults = { results: 0 }; await job.bulkPayout( @@ -682,8 +663,6 @@ describe('Test Job', () => { it('Should not be able to abort fully paid job', async () => { await job.initialize(); - await job.launch(); - await job.setup(); const finalResults = { results: 0 }; await job.bulkPayout( @@ -702,8 +681,6 @@ describe('Test Job', () => { it('Should be able to cancel the job', async () => { await job.initialize(); - await job.launch(); - await job.setup(); expect(await job.cancel()).toBe(true); expect((await job.balance())?.toString()).toBe(toFullDigit(0).toString()); @@ -711,8 +688,6 @@ describe('Test Job', () => { it('Should be able to cancel partially paid job', async () => { await job.initialize(); - await job.launch(); - await job.setup(); const finalResults = { results: 0 }; await job.bulkPayout( @@ -732,8 +707,6 @@ describe('Test Job', () => { it('Should not be able to cancel paid job', async () => { await job.initialize(); - await job.launch(); - await job.setup(); const finalResults = { results: 0 }; await job.bulkPayout( diff --git a/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts b/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts index 1acbe14fff..21eb062050 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts @@ -25,3 +25,7 @@ export const WORKER3_ADDR = '0x976EA74026E726554dB657fA54763abd0C3a0aa9'; export const NOT_TRUSTED_OPERATOR_PRIVKEY = '5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365b'; + +export const DEFAULT_MINIMUM_STAKE = 1; +export const DEFAULT_LOCK_PERIOD = 1; +export const DEFAULT_REWARD_FEE = 1; diff --git a/yarn.lock b/yarn.lock index 5f92faceb4..d0cc9b1172 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1099,9 +1099,9 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@coinbase/wallet-sdk@^3.3.0": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.1.tgz#b1c2c98f5ab0e859787bee96f9fe42eadb0c9174" - integrity sha512-mEBGSoUN3eBnUJvqr+K/Sfc7idqEXp5enyS31WHUWK3xo0faSoGk5b/yV9NFi5/tIyKjl8E/nTJ2dH0DtIl/PA== + version "3.6.2" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.2.tgz#e8633001136e0236a746f6462c0dff2f881db343" + integrity sha512-HzxajB+qS+G9//c+th5uJ8KSt+jQ6/U+cgL9Sv89Wx6Mif+Lg5HxGtc6JQcIdHuYk9AFX+nXNSXtTGRdpHkdDg== dependencies: "@metamask/safe-event-emitter" "2.0.0" "@solana/web3.js" "1.52.0" @@ -2740,9 +2740,9 @@ react-is "^18.2.0" "@mui/x-data-grid@^5.17.4": - version "5.17.13" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.13.tgz#efee3b9ebbb868cc4a174da4a0db08c75e46a194" - integrity sha512-Z2DSQA8O2ZPKat6URO9nEpKn8Wszuiz/OJQq5aW3so3KPunb8IJV30h94Kc+Su9ng6mdknCpimrnN2EBibznFA== + version "5.17.14" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.14.tgz#3475d45ba3b18bdb343bbc954346324b2f935df0" + integrity sha512-Cf3yeaEAaFzpWPoDO1YTHWL2Anz69pUnIw4Swa6UehvNwJIz3ZDoVf92xCytviugU14NmL95PjmtHqK72Jt05g== dependencies: "@babel/runtime" "^7.18.9" "@mui/utils" "^5.10.3" @@ -2771,9 +2771,9 @@ integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== "@noble/hashes@~1.1.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" - integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== + version "1.1.4" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" + integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== "@noble/secp256k1@1.6.3", "@noble/secp256k1@~1.6.0": version "1.6.3" @@ -3513,36 +3513,36 @@ dependencies: defer-to-connect "^2.0.1" -"@tanstack/query-core@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.18.0.tgz#3e166ce319fd869c668536384ae94d174ea46a59" - integrity sha512-PP4mG8MD08sq64RZCqMfXMYfaj7+Oulwg7xZ/fJoEOdTZNcPIgaOkHajZvUBsNLbi/0ViMvJB4cFkL2Jg2WPbw== +"@tanstack/query-core@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.19.1.tgz#2e92d9e8a50884eb231c5beb4386e131ebe34306" + integrity sha512-Zp0aIose5C8skBzqbVFGk9HJsPtUhRVDVNWIqVzFbGQQgYSeLZMd3Sdb4+EnA5wl1J7X+bre2PJGnQg9x/zHOA== -"@tanstack/query-persist-client-core@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.18.0.tgz#63147c2b1f8f26bd6bb84c1945279951c541d0bf" - integrity sha512-GZlZTQdW0MH0pTQv1T4JyOG4PO6xZA+OKUDRnYHjbG5hp6njouoxisaNV/zhGN9m6zpqb+mV+4tbz7WM42i0Vw== +"@tanstack/query-persist-client-core@4.19.1": + version "4.19.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.19.1.tgz#e473859ee07d281e6da5f213bf4cddb58dfa738f" + integrity sha512-Tlx9tgeYMDoJ5w8O79TXx85Bk46LDQLvojdjWzQbzKWPIEtvwK6OmG2Z3zxz6qEA3FiVmG0BYjsVMsT6PZOhGg== "@tanstack/query-sync-storage-persister@^4.0.10": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.18.0.tgz#ea50c94647103e0e61382feebc75379e897175dd" - integrity sha512-um2+3LuzHZDNKMWkfhVaiRw6GWTX7Lvk8ir9f2NoeAaRAMmLy7OgBWDlMkPqmGob7DjWK+DcNb8GcpqPt8H7fw== + version "4.19.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.19.1.tgz#d8e182506dfed65b70dcd3b806261881cc62cc9d" + integrity sha512-gY8rDi6XJ4zPgPF8wEsryu8a87+E9vIByXWryoVO0ucKJzgjVLFNargPSZcMMvRsVw7nhyDCCd/nZZgW+Z3C9g== dependencies: - "@tanstack/query-persist-client-core" "4.18.0" + "@tanstack/query-persist-client-core" "4.19.1" "@tanstack/react-query-persist-client@^4.0.10": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.18.0.tgz#15786cacb1944367a00bc68f068e3349a2b363ee" - integrity sha512-CMXPrrK4oEMhD5FS0LJSbp18j+Q/ob22T0hUINwhMJADsiijEabpVzxQ4NE8bmmOJ6YBJpKm1cIslJj7AxiF3A== + version "4.19.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.19.1.tgz#8cab5776d2ac4e3134f2022f21797655b0dbd474" + integrity sha512-uNHCBfK7YiNXTjlO3B/Rym7HrNX6OnrcWIw3iiuGFK+gC566/BB3lcLHvriHwanxbnFvWiua8g9hvddeXVQzeA== dependencies: - "@tanstack/query-persist-client-core" "4.18.0" + "@tanstack/query-persist-client-core" "4.19.1" "@tanstack/react-query@^4.0.10": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.18.0.tgz#d9c661364b383fca79f5384cb97b445354068faa" - integrity sha512-s1kdbGMdVcfUIllzsHUqVUdktBT5uuIRgnvrqFNLjl9TSOXEoBSDrhjsGjao0INQZv8cMpQlgOh3YH9YtN6cKw== + version "4.19.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.19.1.tgz#43356dd537127e76d75f5a2769eb23dafd9a3690" + integrity sha512-5dvHvmc0vrWI03AJugzvKfirxCyCLe+qawrWFCXdu8t7dklIhJ7D5ZhgTypv7mMtIpdHPcECtCiT/+V74wCn2A== dependencies: - "@tanstack/query-core" "4.18.0" + "@tanstack/query-core" "4.19.1" use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": @@ -4146,9 +4146,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^18.0.21", "@types/react@^18.0.25": - version "18.0.25" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.25.tgz#8b1dcd7e56fe7315535a4af25435e0bb55c8ae44" - integrity sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g== + version "18.0.26" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" + integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -4396,10 +4396,10 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.6.0.tgz#660535a8cf35213f55591501a54257512ce4a734" - integrity sha512-6JYdwsxA/OG3rLqNnM7V10WGObO5j1yd7YWYZUn86PGAp91Uz2rr+pmDWLOt319Yx5KwWoRHQ1K4bYjAfDBNGA== +"@vercel/build-utils@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.7.0.tgz#73f5b66ee970a2712cfea62a19e04f6869c589f5" + integrity sha512-hOcb7HxYza5LtZLcmh9VkShV3hLaLlZarLBqQmMR/oTlvgIybeW6LjrPpFiu2hCCf9VbkdBR1OFmDh8EydFswQ== "@vercel/node-bridge@3.1.2": version "3.1.2" @@ -4407,13 +4407,13 @@ integrity sha512-dgcLXug0IqUeRsywf0G8IrhUFcgw+GYj+EZB4JneglKSofFBh3Xy/t7KfBUxLlKnoq6kyGYJvTmAVB1YBt11qw== "@vercel/node@^2.5.26": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.7.0.tgz#54e159aab98c814185004c21e7f67edea6de528f" - integrity sha512-/BtpP/S+VX4Fpklj5vC/k9Tfsak2qpN7x3Lio9K8SoM/N0fzfqnYqU9URixLxpx9GYGJe7uKjorD+D9nY3HBzA== + version "2.7.1" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.7.1.tgz#5d012bbe9cfc157986c5ea10ebab58635861e23b" + integrity sha512-TaNZKXvZvKzwz+ALf4/od64wniOpSwaYcGzQXs9onkzonOdO4C1biGBaIHpnqdlAxbaFRMvqQQbqjfJHJavPhQ== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "5.6.0" + "@vercel/build-utils" "5.7.0" "@vercel/node-bridge" "3.1.2" "@vercel/static-config" "2.0.6" edge-runtime "2.0.0" @@ -5481,9 +5481,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1265.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1265.0.tgz#ec034b10126d7c81242b2501567cb4d5179a4e61" - integrity sha512-PcW3VAxatnOgSwdENkXpFAKnE6P5GJeI7yxjEhjHSLXFyOzQZQZIT5NMCs7B25nB6iACzxizjKaYbU0kNA/8/Q== + version "2.1267.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1267.0.tgz#8f45c7bc7efb89a757526d993c5f77a2e7208676" + integrity sha512-ANTtRay26WwNRbYs6eZYN71b3DURNfWaq3AD6BtVNa8fVvnSLn+NNINw2+vLRjDLPZXMAQVHm0qH/TmyBvtjRA== dependencies: buffer "4.9.2" events "1.1.1" @@ -5776,9 +5776,9 @@ bigint-mod-arith@^3.1.0: integrity sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ== bignumber.js@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== + version "9.1.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" + integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== binary-extensions@^2.0.0: version "2.2.0" @@ -6333,9 +6333,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001435" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001435.tgz#502c93dbd2f493bee73a408fe98e98fb1dad10b2" - integrity sha512-kdCkUTjR+v4YAJelyiDTqiu82BDr4W4CP5sgTA0ZBmqn30XfS2ZghPLMowik9TPhS+psWJiUNxsqLyurDbmutA== + version "1.0.30001436" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz#22d7cbdbbbb60cdc4ca1030ccd6dea9f5de4848b" + integrity sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg== carbites@^1.0.6: version "1.0.6" @@ -7601,14 +7601,14 @@ decimal.js-light@^2.4.1: integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== decimal.js@^10.2.1, decimal.js@^10.4.2: - version "10.4.2" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" - integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== + 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: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== +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" @@ -8785,9 +8785,9 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.27.0, eslint@^8.3.0: - version "8.28.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.28.0.tgz#81a680732634677cc890134bcdd9fdfea8e63d6e" - integrity sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ== + version "8.29.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" + integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== dependencies: "@eslint/eslintrc" "^1.3.3" "@humanwhocodes/config-array" "^0.11.6" @@ -9427,9 +9427,9 @@ fast-xml-parser@^3.17.5: strnum "^1.0.4" fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== dependencies: reusify "^1.0.4" @@ -10347,9 +10347,9 @@ hardhat-contract-sizer@^2.6.1: cli-table3 "^0.6.0" hardhat-deploy@^0.11.14: - version "0.11.21" - resolved "https://registry.yarnpkg.com/hardhat-deploy/-/hardhat-deploy-0.11.21.tgz#d40b7755e52b3c39419dc877bfacc0695eea1897" - integrity sha512-cSFZ+CgFdN012+ysckSiEfiD6u5fFpYmdadj2kG5BnkU0adJZtzGNtbVp/GrOt6sj73pIScWpWwMtkCLaxk+gg== + version "0.11.22" + resolved "https://registry.yarnpkg.com/hardhat-deploy/-/hardhat-deploy-0.11.22.tgz#9799c0266a0fc40c84690de54760f1b4dae5e487" + integrity sha512-ZhHVNB7Jo2l8Is+KIAk9F8Q3d7pptyiX+nsNbIFXztCz81kaP+6kxNODRBqRCy7SOD3It4+iKCL6tWsPAA/jVQ== dependencies: "@types/qs" "^6.9.7" axios "^0.21.1" @@ -13118,17 +13118,17 @@ ky@^0.11.2: resolved "https://registry.yarnpkg.com/ky/-/ky-0.11.2.tgz#4ffe6621d9d9ab61bf0f5500542e3a96d1ba0815" integrity sha512-5Aou5BWue5/mkPqIRqzSWW+0Hkl403pr/2AIrCKYw7cVl/Xoe8Xe4KLBO0PRjbz7GnRe1/8wW1KhqQNFFE7/GQ== -language-subtag-registry@~0.3.2: +language-subtag-registry@^0.3.20: version "0.3.22" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== language-tags@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.6.tgz#c087cc42cd92eb71f0925e9e271d4f8be5a93430" + integrity sha512-HNkaCgM8wZgE/BZACeotAAgpL9FUjEnhgF0FVQMIgH//zqTPreLYMb3rWYkYAqPoF75Jwuycp1da7uz66cfFQg== dependencies: - language-subtag-registry "~0.3.2" + language-subtag-registry "^0.3.20" level-supports@^4.0.0: version "4.0.1" @@ -13224,9 +13224,9 @@ lines-and-columns@^1.1.6: integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lint-staged@^13.0.3: - version "13.0.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.4.tgz#c4b4391280c35165b805ad43304ba01f733067a0" - integrity sha512-HxlHCXoYRsq9QCby5wFozmZW00hMs/9e3l+/dz6Qr8Kle4UH0kJTdABAbqhzG+3pcG6QjL9kz7NgGBfph+a5dw== + version "13.1.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e" + integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ== dependencies: cli-truncate "^3.1.0" colorette "^2.0.19" @@ -15899,9 +15899,9 @@ pull-defer@~0.2.3: integrity sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA== pull-stream@^3.2.3, pull-stream@^3.6.9: - version "3.6.14" - resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.6.14.tgz#529dbd5b86131f4a5ed636fdf7f6af00781357ee" - integrity sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew== + version "3.7.0" + resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.7.0.tgz#85de0e44ff38a4d2ad08cc43fc458e1922f9bf0b" + integrity sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw== pull-to-stream@~0.1.1: version "0.1.1" @@ -16017,11 +16017,11 @@ query-string@^5.0.1: strict-uri-encode "^1.0.0" query-string@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" - integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== + 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.0" + decode-uri-component "^0.2.2" filter-obj "^1.1.0" split-on-first "^1.0.0" strict-uri-encode "^2.0.0" @@ -17012,9 +17012,9 @@ rxjs@^6.6.3: tslib "^1.9.0" rxjs@^7.0.0, rxjs@^7.5.7: - version "7.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" - integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.6.0.tgz#361da5362b6ddaa691a2de0b4f2d32028f1eb5a2" + integrity sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ== dependencies: tslib "^2.1.0" @@ -18357,9 +18357,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: terser "^5.14.1" terser@^5.0.0, terser@^5.10.0, terser@^5.14.1: - version "5.16.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.0.tgz#29362c6f5506e71545c73b069ccd199bb28f7f54" - integrity sha512-KjTV81QKStSfwbNiwlBXfcgMcOloyuRdb62/iLFPGBcVNF4EXjhdYBhYHmbJpiBrVxZhDvltE11j+LBQUxEEJg== + version "5.16.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" + integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" From e70710d8b48ca7a137f4820820fc33c83ed313c8 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 12 Dec 2022 15:49:55 -0500 Subject: [PATCH 008/216] update smart contracts --- packages/core/contracts/Escrow.sol | 9 -- packages/core/contracts/EscrowFactory.sol | 9 +- packages/core/contracts/RewardPool.sol | 4 - packages/core/contracts/Staking.sol | 134 +++++++++++------- .../core/contracts/interfaces/IStaking.sol | 14 +- 5 files changed, 98 insertions(+), 72 deletions(-) diff --git a/packages/core/contracts/Escrow.sol b/packages/core/contracts/Escrow.sol index f361475516..d834dd512b 100644 --- a/packages/core/contracts/Escrow.sol +++ b/packages/core/contracts/Escrow.sol @@ -3,7 +3,6 @@ pragma solidity >=0.6.2; import './interfaces/HMTokenInterface.sol'; -import './interfaces/IStaking.sol'; import './interfaces/IRewardPool.sol'; import './utils/SafeMath.sol'; @@ -27,7 +26,6 @@ contract Escrow { address public recordingOracle; address public launcher; address payable public canceler; - address public staking; uint256 public reputationOracleStake; uint256 public recordingOracleStake; @@ -51,7 +49,6 @@ contract Escrow { constructor( address _eip20, - address _staking, address payable _canceler, uint256 _duration, address[] memory _handlers @@ -60,7 +57,6 @@ contract Escrow { status = EscrowStatuses.Launched; duration = _duration.add(block.timestamp); // solhint-disable-line not-rely-on-time launcher = msg.sender; - staking = _staking; canceler = _canceler; areTrustedHandlers[_canceler] = true; areTrustedHandlers[msg.sender] = true; @@ -148,11 +144,6 @@ contract Escrow { ); require(status == EscrowStatuses.Paid, 'Escrow not in Paid state'); status = EscrowStatuses.Complete; - - // Distribute Reward - IRewardPool(IStaking(staking).rewardPool()).distributeReward( - address(this) - ); } function storeResults( diff --git a/packages/core/contracts/EscrowFactory.sol b/packages/core/contracts/EscrowFactory.sol index a347c4e348..054466d042 100644 --- a/packages/core/contracts/EscrowFactory.sol +++ b/packages/core/contracts/EscrowFactory.sol @@ -19,14 +19,10 @@ contract EscrowFactory { address public staking; event Launched(address eip20, address escrow, uint256 counter); - constructor(address _eip20) { + constructor(address _eip20, address _staking) { eip20 = _eip20; - owner = msg.sender; - } - - function setStaking(address _staking) external onlyOwner { - require(staking == address(0), 'Staking already set'); staking = _staking; + owner = msg.sender; } function createEscrow( @@ -43,7 +39,6 @@ contract EscrowFactory { Escrow escrow = new Escrow( eip20, - staking, payable(msg.sender), STANDARD_DURATION, trustedHandlers diff --git a/packages/core/contracts/RewardPool.sol b/packages/core/contracts/RewardPool.sol index 288632f851..a8ac1e45a9 100644 --- a/packages/core/contracts/RewardPool.sol +++ b/packages/core/contracts/RewardPool.sol @@ -75,12 +75,8 @@ contract RewardPool is IRewardPool { /** * @dev Distribute rewards for allocation - * The function will be called from Escrow contract, - * when the escrow gets Completed state */ function distributeReward(address _escrowAddress) external override { - require(_escrowAddress == msg.sender, 'Caller is not escrow'); - Reward[] memory rewardsForEscrow = rewards[_escrowAddress]; HMTokenInterface token = HMTokenInterface(eip20); diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index 15b88624d3..b47b04a1de 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -23,30 +23,26 @@ contract Staking is IStaking { // ERC20 Token address address public eip20; - // Escrow factory address - address public escrowFactory; - // Reward pool address address public override rewardPool; // Minimum amount of tokens an staker needs to stake uint256 public minimumStake; + mapping(Stakes.Role => uint256) public minimumStakeForRole; + // Time in blocks to unstake uint32 public lockPeriod; // Staker stakes: staker => Stake mapping(address => Stakes.Staker) public stakes; - // List of stakers per role - mapping(Stakes.Role => address[]) public stakers; + // List of stakers + address[] public stakers; // Allocations : escrowAddress => Allocation mapping(address => IStaking.Allocation) public allocations; - // List of addresses allowed to slash stakes - mapping(address => bool) public slashers; - /** * @dev Emitted when `staker` stake `tokens` amount. */ @@ -92,6 +88,14 @@ contract Staking is IStaking { */ event SetMinumumStake(uint256 indexed minimumStake); + /** + * @dev Emitted when `owner` set new value for `minimumStakeForRole`. + */ + event SetMinumumStakeForRole( + Stakes.Role role, + uint256 indexed minimumStakeForRole + ); + /** * @dev Emitted when `owner` set new value for `lockPeriod`. */ @@ -103,18 +107,12 @@ contract Staking is IStaking { event SetRewardPool(address indexed rewardPool); /** - * @dev Emitted when `owner` set address as `staker` with `role`. + * @dev Emitted when `staker` changed the role. */ - event SetStaker(address indexed staker, Stakes.Role indexed role); + event SetStakerRole(address indexed staker, Stakes.Role role); - constructor( - address _eip20, - address _escrowFactory, - uint256 _minimumStake, - uint32 _lockPeriod - ) { + constructor(address _eip20, uint256 _minimumStake, uint32 _lockPeriod) { eip20 = _eip20; - escrowFactory = _escrowFactory; owner = msg.sender; _setMinimumStake(_minimumStake); _setLockPeriod(_lockPeriod); @@ -140,6 +138,32 @@ contract Staking is IStaking { emit SetMinumumStake(minimumStake); } + /** + * @dev Set the minimum stake amount for the role. + * @param _role Role to set minimum stake amount + * @param _minimumStakeForRole Minimum stake amount for the role + */ + function setMinimumStakeForRole( + Stakes.Role _role, + uint256 _minimumStakeForRole + ) external override onlyOwner { + _setMinimumStakeForRole(_role, _minimumStakeForRole); + } + + /** + * @dev Set the minimum stake amount for the role. + * @param _role Role to set minimum stake amount + * @param _minimumStakeForRole Minimum stake amount for the role + */ + function _setMinimumStakeForRole( + Stakes.Role _role, + uint256 _minimumStakeForRole + ) private { + require(_minimumStakeForRole > 0, 'Must be a positive number'); + minimumStakeForRole[_role] = _minimumStakeForRole; + emit SetMinumumStakeForRole(_role, _minimumStakeForRole); + } + /** * @dev Set the lock period for unstaking. * @param _lockPeriod Period in blocks to wait for token withdrawals after unstaking @@ -176,22 +200,6 @@ contract Staking is IStaking { emit SetRewardPool(_rewardPool); } - /** - * @dev Add address to the list of stakers. - * @param _staker Staker's address - * @param _role Role of the staker - */ - function setStaker(address _staker, Stakes.Role _role) external onlyOwner { - require(_staker != address(0), 'Must be a valid address'); - require(_staker != msg.sender, 'Staker cannot set himself'); - - Stakes.Staker memory staker = Stakes.Staker(_role, 0, 0, 0, 0); - - stakes[_staker] = staker; - stakers[_role].push(_staker); - emit SetStaker(_staker, _role); - } - /** * @dev Return the result of checking if the staker has a specific role. * @param _staker Staker's address @@ -335,19 +343,16 @@ contract Staking is IStaking { } /** - * @dev Get list of stakers per role - * @param _role Staker role + * @dev Get list of stakers * @return List of staker's addresses, and stake data */ - function getListOfStakers( - Stakes.Role _role - ) + function getListOfStakers() external view override returns (address[] memory, Stakes.Staker[] memory) { - address[] memory _stakerAddresses = stakers[_role]; + address[] memory _stakerAddresses = stakers; uint256 _stakersCount = _stakerAddresses.length; if (_stakersCount == 0) { @@ -367,13 +372,25 @@ contract Staking is IStaking { * @dev Deposit tokens on the staker stake. * @param _tokens Amount of tokens to stake */ - function stake(uint256 _tokens) external override onlyStaker(msg.sender) { + function stake(uint256 _tokens) external override { require(_tokens > 0, 'Must be a positive number'); require( stakes[msg.sender].tokensSecureStake().add(_tokens) >= minimumStake, 'Total stake is below the minimum threshold' ); + if (stakes[msg.sender].role == Stakes.Role.Null) { + Stakes.Staker memory staker = Stakes.Staker( + Stakes.Role.Operator, + 0, + 0, + 0, + 0 + ); + stakes[msg.sender] = staker; + stakers.push(msg.sender); + } + HMTokenInterface token = HMTokenInterface(eip20); token.transferFrom(msg.sender, address(this), _tokens); @@ -569,6 +586,34 @@ contract Staking is IStaking { ); } + /** + * @dev Set the role of the staker + * @param _role Role to set + */ + function setRole( + Stakes.Role _role + ) external override onlyStaker(msg.sender) { + _setRole(_role); + } + + /** + * @dev Set the role of the staker + * @param _role Role to set + */ + function _setRole(Stakes.Role _role) private { + Stakes.Staker memory staker = stakes[msg.sender]; + + require( + staker.tokensAvailable() >= minimumStakeForRole[_role], + 'Not enough amount of the stakes' + ); + + staker.role = _role; + stakes[msg.sender] = staker; + + emit SetStakerRole(msg.sender, _role); + } + modifier onlyOwner() { require(owner == msg.sender, 'Caller is not a owner'); _; @@ -587,15 +632,6 @@ contract Staking is IStaking { _; } - modifier onlyOperator(address _staker) { - Stakes.Staker memory staker = stakes[_staker]; - require( - staker.role == Stakes.Role.Operator, - 'Caller is not a operator' - ); - _; - } - modifier onlyValidator(address _staker) { Stakes.Staker memory staker = stakes[_staker]; require( diff --git a/packages/core/contracts/interfaces/IStaking.sol b/packages/core/contracts/interfaces/IStaking.sol index 9ca76b1d71..abe73cc3e4 100644 --- a/packages/core/contracts/interfaces/IStaking.sol +++ b/packages/core/contracts/interfaces/IStaking.sol @@ -49,6 +49,11 @@ interface IStaking { function setMinimumStake(uint256 _minimumStake) external; + function setMinimumStakeForRole( + Stakes.Role _role, + uint256 _minimumStakeForRole + ) external; + function setLockPeriod(uint32 _lockPeriod) external; function setRewardPool(address _rewardPool) external; @@ -91,7 +96,10 @@ interface IStaking { function closeAllocation(address _escrowAddress) external; - function getListOfStakers( - Stakes.Role _role - ) external view returns (address[] memory, Stakes.Staker[] memory); + function setRole(Stakes.Role _role) external; + + function getListOfStakers() + external + view + returns (address[] memory, Stakes.Staker[] memory); } From 59334092cc8c4368ce87dd3d5e5e94b487a10171 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 12 Dec 2022 16:20:56 -0500 Subject: [PATCH 009/216] fix core contract tests --- packages/core/test/Escrow.ts | 11 +- packages/core/test/EscrowFactory.ts | 228 +++++++++------------------- packages/core/test/RewardPool.ts | 80 ++-------- packages/core/test/Staking.ts | 130 +--------------- 4 files changed, 93 insertions(+), 356 deletions(-) diff --git a/packages/core/test/Escrow.ts b/packages/core/test/Escrow.ts index ddeeb3eba7..6d95a6c098 100644 --- a/packages/core/test/Escrow.ts +++ b/packages/core/test/Escrow.ts @@ -28,8 +28,6 @@ describe('Escrow', function () { let token: HMToken, escrow: Escrow, staking: Staking, rewardPool: RewardPool; - let escrowFactory: Signer; - const minimumStake = 2; const lockPeriod = 2; const rewardFee = 2; @@ -41,7 +39,6 @@ describe('Escrow', function () { reputationOracle, recordingOracle, externalAddress, - escrowFactory, ...restAccounts ] = await ethers.getSigners(); trustedHandlers = [ @@ -55,12 +52,7 @@ describe('Escrow', function () { // Deploy Staking Conract const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy( - token.address, - await escrowFactory.getAddress(), - minimumStake, - lockPeriod - ); + staking = await Staking.deploy(token.address, minimumStake, lockPeriod); // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); @@ -77,7 +69,6 @@ describe('Escrow', function () { const Escrow = await ethers.getContractFactory('Escrow'); escrow = await Escrow.deploy( token.address, - staking.address, await owner.getAddress(), 5, trustedHandlers diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 44f034c877..137e3aea78 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -5,18 +5,16 @@ import { Signer } from 'ethers'; import { EscrowFactory, HMToken, Staking } from '../typechain-types'; describe('EscrowFactory', function () { - enum Role { - Operator = 1, - } - let owner: Signer, operator: Signer, - fakeStaking: Signer, reputationOracle: Signer, recordingOracle: Signer, trustedHandlers: string[]; - let token: HMToken, escrowFactory: EscrowFactory; + let token: HMToken, escrowFactory: EscrowFactory, staking: Staking; + + const minimumStake = 2; + const lockPeriod = 2; const stakeAmount = 10; @@ -30,16 +28,13 @@ describe('EscrowFactory', function () { } async function stakeAndCreateEscrow(staking: Staking) { - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(stakeAmount); return await createEscrow(); } beforeEach(async () => { - [owner, operator, fakeStaking, reputationOracle, recordingOracle] = + [owner, operator, reputationOracle, recordingOracle] = await ethers.getSigners(); trustedHandlers = [ @@ -54,10 +49,17 @@ describe('EscrowFactory', function () { // Send HMT tokens to the operator await token.connect(owner).transfer(await operator.getAddress(), 1000); + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = await Staking.deploy(token.address, minimumStake, lockPeriod); + + // Approve spend HMT tokens staking contract + await token.connect(operator).approve(staking.address, 1000); + // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(token.address); + escrowFactory = await EscrowFactory.deploy(token.address, staking.address); }); describe('deployment', () => { @@ -76,160 +78,78 @@ describe('EscrowFactory', function () { }); }); - describe('Without staking contract', () => { - it('Operator should not be able to create an escrow', async () => { - await expect( - escrowFactory - .connect(operator) - .createEscrow([ethers.constants.AddressZero]) - ).to.be.revertedWith('Staking is not configured'); - }); + it('Operator should not be able to create an escrow without staking', async () => { + await expect( + escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); }); - describe('With staking contract', () => { - const minimumStake = 2; - const lockPeriod = 2; + it('Operator should be able to create an escrow after staking', async () => { + const event = await stakeAndCreateEscrow(staking); - let staking: Staking; + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('1', 'counter is correct'); + }); - beforeEach(async () => { - // Deploy Staking Conract - const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy( - token.address, - escrowFactory.address, - minimumStake, - lockPeriod - ); + it('Should emit an event on launched', async function () { + await staking.connect(operator).stake(stakeAmount); - // Approve spend HMT tokens staking contract - await token.connect(operator).approve(staking.address, 1000); - }); + await expect(escrowFactory.connect(operator).createEscrow(trustedHandlers)) + .to.emit(escrowFactory, 'Launched') + .withArgs(token.address, anyValue, 1); + }); - describe('Configure staking', async () => { - it('Only owner can set staking', async () => { - await expect( - escrowFactory - .connect(operator) - .setStaking(await fakeStaking.getAddress()) - ).to.be.revertedWith('Caller is not owner'); - }); + it('Should find the newly created escrow from deployed escrow', async () => { + await stakeAndCreateEscrow(staking); - it('Owner can set staking', async () => { - await escrowFactory.setStaking(staking.address); + const escrowAddress = await escrowFactory.lastEscrow(); + const result = await escrowFactory + .connect(operator) + .hasEscrow(escrowAddress); + expect(result).to.equal(true); + }); - expect(await escrowFactory.staking()).to.equal(staking.address); - }); + it('Operator should be able to create another escrow after allocating some of the stakes', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; - it("Staking can't be modified", async () => { - await escrowFactory.setStaking(staking.address); + staking + .connect(operator) + .allocate(escrowAddress.toString(), stakeAmount / 2); - expect(await escrowFactory.staking()).to.equal(staking.address); + const event = await createEscrow(); - await expect( - escrowFactory.setStaking(await fakeStaking.getAddress()) - ).to.be.revertedWith('Staking already set'); - }); - }); + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('2', 'counter is correct'); + }); - describe('After staking is configured', async () => { - beforeEach(async () => { - // Configure Staking in EscrowFactory - await escrowFactory.setStaking(staking.address); - }); - - it('Operator should not be able to create an escrow without staking', async () => { - await expect( - escrowFactory - .connect(operator) - .createEscrow([ethers.constants.AddressZero]) - ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); - }); - - it('Operator should be able to create an escrow after staking', async () => { - const event = await stakeAndCreateEscrow(staking); - - expect(event?.eip20).to.equal( - token.address, - 'token address is correct' - ); - expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); - }); - - it('Should emit an event on launched', async function () { - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); - await staking.connect(operator).stake(stakeAmount); - - await expect( - escrowFactory.connect(operator).createEscrow(trustedHandlers) - ) - .to.emit(escrowFactory, 'Launched') - .withArgs(token.address, anyValue, 1); - }); - - it('Should find the newly created escrow from deployed escrow', async () => { - await stakeAndCreateEscrow(staking); - - const escrowAddress = await escrowFactory.lastEscrow(); - const result = await escrowFactory - .connect(operator) - .hasEscrow(escrowAddress); - expect(result).to.equal(true); - }); - - it('Operator should be able to create another escrow after allocating some of the stakes', async () => { - const result = await stakeAndCreateEscrow(staking); - const escrowAddress = result?.escrow; - - staking - .connect(operator) - .allocate(escrowAddress.toString(), stakeAmount / 2); - - const event = await createEscrow(); - - expect(event?.eip20).to.equal( - token.address, - 'token address is correct' - ); - expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('2', 'counter is correct'); - }); - - it('Operator should not be able to create an escrow after allocating all of the stakes', async () => { - const result = await stakeAndCreateEscrow(staking); - const escrowAddress = result?.escrow; - - staking - .connect(operator) - .allocate(escrowAddress.toString(), stakeAmount); - - await expect( - escrowFactory - .connect(operator) - .createEscrow([ethers.constants.AddressZero]) - ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); - }); - - it('Operator should be able to create an escrow after staking more tokens', async () => { - const result = await stakeAndCreateEscrow(staking); - const escrowAddress = result?.escrow; - - staking - .connect(operator) - .allocate(escrowAddress.toString(), stakeAmount); - - const event = await stakeAndCreateEscrow(staking); - - expect(event?.eip20).to.equal( - token.address, - 'token address is correct' - ); - expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('2', 'counter is correct'); - }); - }); + it('Operator should not be able to create an escrow after allocating all of the stakes', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; + + staking.connect(operator).allocate(escrowAddress.toString(), stakeAmount); + + await expect( + escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); + }); + + it('Operator should be able to create an escrow after staking more tokens', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; + + staking.connect(operator).allocate(escrowAddress.toString(), stakeAmount); + + const event = await stakeAndCreateEscrow(staking); + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + expect(event?.counter.toString()).to.equal('2', 'counter is correct'); }); }); diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index 637a20dc51..16cbeb8cdc 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -1,7 +1,6 @@ import { ethers } from 'hardhat'; import { Signer } from 'ethers'; import { - Escrow, EscrowFactory, HMToken, RewardPool, @@ -21,7 +20,6 @@ describe('RewardPool', function () { let token: HMToken, escrowFactory: EscrowFactory, - escrow: Escrow, staking: Staking, rewardPool: RewardPool; let owner: Signer, @@ -36,8 +34,6 @@ describe('RewardPool', function () { const minimumStake = 2; const lockPeriod = 2; const rewardFee = 2; - const url = 'http://google.com/fake'; - const hash = 'fakehash'; beforeEach(async () => { [ @@ -75,19 +71,14 @@ describe('RewardPool', function () { ); }); + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = await Staking.deploy(token.address, minimumStake, lockPeriod); + // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(token.address); - - // Deploy Staking Conract - const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy( - token.address, - escrowFactory.address, - minimumStake, - lockPeriod - ); + escrowFactory = await EscrowFactory.deploy(token.address, staking.address); // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); @@ -97,9 +88,6 @@ describe('RewardPool', function () { rewardFee ); - // Configure Staking in EscrowFactory - await escrowFactory.setStaking(staking.address); - // Configure RewardPool in Staking await staking.setRewardPool(rewardPool.address); @@ -131,14 +119,9 @@ describe('RewardPool', function () { const allocatedTokens = 5; beforeEach(async () => { - await staking - .connect(owner) - .setStaker(await validator.getAddress(), Role.Validator); await staking.connect(validator).stake(stakedTokens); + await staking.connect(validator).setRole(Role.Validator); - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(stakedTokens); const result = await ( @@ -212,19 +195,12 @@ describe('RewardPool', function () { const allocatedTokens = 8; beforeEach(async () => { - await staking - .connect(owner) - .setStaker(await validator.getAddress(), Role.Validator); await staking.connect(validator).stake(stakedTokens); + await staking.connect(validator).setRole(Role.Validator); - await staking - .connect(owner) - .setStaker(await validator2.getAddress(), Role.Validator); await staking.connect(validator2).stake(stakedTokens); + await staking.connect(validator2).setRole(Role.Validator); - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(stakedTokens); const result = await ( @@ -243,13 +219,7 @@ describe('RewardPool', function () { await staking.connect(operator).allocate(escrowAddress, allocatedTokens); }); - it('Only escrow itself can distribute the reward', async () => { - await expect( - rewardPool.connect(operator).distributeReward(escrowAddress) - ).to.be.revertedWith('Caller is not escrow'); - }); - - it('Once the escrow is completed, reward should be distributed', async () => { + it('Should distribute the reward.', async () => { const vSlashAmount = 2; const v2SlashAmount = 3; await staking @@ -266,37 +236,7 @@ describe('RewardPool', function () { await validator2.getAddress() ); - const Escrow = await ethers.getContractFactory('Escrow'); - escrow = await Escrow.attach(escrowAddress); - - // Deposit escrow - await token.connect(operator).transfer(escrowAddress, 100); - - // Setup escrow - await escrow - .connect(operator) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - url, - hash - ); - - // Payout workers - await escrow - .connect(reputationOracle) - .bulkPayOut( - [await externalAccount.getAddress()], - [100], - url, - hash, - '000' - ); - - // Complete escrow - await escrow.connect(reputationOracle).complete(); + await rewardPool.distributeReward(escrowAddress); expect(await token.balanceOf(await validator.getAddress())).to.equal( vBalanceBefore.add(vSlashAmount - rewardFee) diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 185bd6d014..5a59450600 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -85,19 +85,14 @@ describe('Staking', function () { }) ); + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = await Staking.deploy(token.address, minimumStake, lockPeriod); + // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(token.address); - - // Deploy Staking Conract - const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy( - token.address, - escrowFactory.address, - minimumStake, - lockPeriod - ); + escrowFactory = await EscrowFactory.deploy(token.address, staking.address); // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); @@ -107,9 +102,6 @@ describe('Staking', function () { rewardFee ); - // Configure Staking in EscrowFactory - await escrowFactory.setStaking(staking.address); - // Topup staking address await token.connect(owner).transfer(staking.address, 1000); @@ -133,11 +125,6 @@ describe('Staking', function () { expect(result).to.equal(token.address); }); - it('Should set the right escrow factory address', async () => { - const result = await staking.escrowFactory(); - expect(result).to.equal(escrowFactory.address); - }); - it('Should set the minimum stake', async () => { const result = await staking.minimumStake(); expect(result.toString()).to.equal(minimumStake.toString()); @@ -149,66 +136,7 @@ describe('Staking', function () { }); }); - describe('setStaker', function () { - describe('Validations', function () { - it('Should revert with the right error if caller is not an owner', async function () { - await expect( - staking - .connect(operator) - .setStaker(ethers.constants.AddressZero, Role.Operator) - ).to.be.revertedWith('Caller is not a owner'); - }); - - it('Should revert with the right error if invalid address', async function () { - await expect( - staking - .connect(owner) - .setStaker(ethers.constants.AddressZero, Role.Operator) - ).to.be.revertedWith('Must be a valid address'); - }); - - it('Should revert with the right error if called want setup himself', async function () { - await expect( - staking - .connect(owner) - .setStaker(await owner.getAddress(), Role.Operator) - ).to.be.revertedWith('Staker cannot set himself'); - }); - }); - - describe('Events', function () { - it('Should emit an event on set staker', async function () { - await expect( - staking - .connect(owner) - .setStaker(await operator2.getAddress(), Role.Operator) - ) - .to.emit(staking, 'SetStaker') - .withArgs(await operator2.getAddress(), anyValue); - }); - }); - - describe('Set address as staker', function () { - it('Should set address as a staker with role', async function () { - await staking - .connect(owner) - .setStaker(await operator3.getAddress(), Role.Operator); - await expect( - await staking - .connect(owner) - .isRole(await operator3.getAddress(), Role.Operator) - ).to.equal(true); - }); - }); - }); - describe('stake', function () { - this.beforeEach(async () => { - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); - }); - describe('Validations', function () { it('Should revert with the right error if not a positive number', async function () { await expect(staking.connect(operator).stake(0)).to.be.revertedWith( @@ -246,10 +174,6 @@ describe('Staking', function () { describe('unstake', function () { this.beforeEach(async () => { const amount = 10; - - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(amount); }); @@ -301,9 +225,6 @@ describe('Staking', function () { this.beforeEach(async () => { const amount = 10; - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(amount); const result = await ( @@ -401,9 +322,6 @@ describe('Staking', function () { this.beforeEach(async () => { const stakeTokens = 10; - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(stakeTokens); const result = await ( @@ -592,9 +510,7 @@ describe('Staking', function () { describe('isRole', function () { describe('Is user has role', function () { this.beforeEach(async () => { - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); + await staking.connect(operator).stake(10); }); it('Should return an user has not Operator role', async function () { @@ -621,10 +537,6 @@ describe('Staking', function () { this.beforeEach(async () => { const stakedTokens = 10; - - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(stakedTokens); const result = await ( @@ -665,12 +577,6 @@ describe('Staking', function () { describe('hasStake', function () { describe('Is stakes has stake', function () { - this.beforeEach(async () => { - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); - }); - it('Should return an escrow address has not allocation', async function () { expect( await staking.connect(owner).hasStake(await operator.getAddress()) @@ -696,9 +602,6 @@ describe('Staking', function () { this.beforeEach(async () => { const stakedTokens = 10; - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(stakedTokens); const result = await ( @@ -755,14 +658,9 @@ describe('Staking', function () { this.beforeEach(async () => { await staking.connect(owner).setRewardPool(rewardPool.address); - await staking - .connect(owner) - .setStaker(await validator.getAddress(), Role.Validator); await staking.connect(validator).stake(stakedTokens); + await staking.connect(validator).setRole(Role.Validator); - await staking - .connect(owner) - .setStaker(await operator.getAddress(), Role.Operator); await staking.connect(operator).stake(stakedTokens); const result = await ( @@ -861,16 +759,13 @@ describe('Staking', function () { reputationOracle, recordingOracle, ].map(async (account, index) => { - await staking - .connect(owner) - .setStaker(await account.getAddress(), Role.Operator); await staking.connect(account).stake(stakedTokens * (index + 1)); }) ); }); it('Should return list of stakers', async () => { - const [stakers, stakes] = await staking.getListOfStakers(Role.Operator); + const [stakers, stakes] = await staking.getListOfStakers(); expect(stakers.length).to.equal(6); expect(stakes.length).to.equal(6); @@ -891,14 +786,5 @@ describe('Staking', function () { }) ); }); - - it('Should return empty array', async () => { - const [stakers, stakes] = await staking.getListOfStakers( - Role.RecordingOracle - ); - - expect(stakers.length).to.equal(0); - expect(stakes.length).to.equal(0); - }); }); }); From 66a4b1bd8694821376fc3ba559ab17c38bbd4ed0 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 12 Dec 2022 17:25:03 -0500 Subject: [PATCH 010/216] fix deploy script --- packages/core/scripts/deploy.ts | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index 9f81d0c6c5..a171d60fce 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -2,7 +2,7 @@ import { ethers } from 'hardhat'; async function main() { - const [owner, recOracle, repOrcale, launcher] = await ethers.getSigners(); + const [, , , launcher] = await ethers.getSigners(); const HMToken = await ethers.getContractFactory('HMToken'); const HMTokenContract = await HMToken.deploy( 1000000000, @@ -13,9 +13,15 @@ async function main() { await HMTokenContract.deployed(); console.log('HMToken Address: ', HMTokenContract.address); + const Staking = await ethers.getContractFactory('Staking'); + const stakingContract = await Staking.deploy(HMTokenContract.address, 1, 1); + await stakingContract.deployed(); + console.log('Staking Contract Address:', stakingContract.address); + const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); const escrowFactoryContract = await EscrowFactory.deploy( - HMTokenContract.address + HMTokenContract.address, + stakingContract.address ); await escrowFactoryContract.deployed(); @@ -27,16 +33,6 @@ async function main() { console.log('KVStore Address: ', kvStoreContract.address); - const Staking = await ethers.getContractFactory('Staking'); - const stakingContract = await Staking.deploy( - HMTokenContract.address, - escrowFactoryContract.address, - 1, - 1 - ); - await stakingContract.deployed(); - console.log('Staking Contract Address:', stakingContract.address); - const RewardPool = await ethers.getContractFactory('RewardPool'); const rewardPoolContract = await RewardPool.deploy( HMTokenContract.address, @@ -46,9 +42,6 @@ async function main() { await rewardPoolContract.deployed(); console.log('Reward Pool Contract Address:', rewardPoolContract.address); - // Configure Staking in EscrowFactory - await escrowFactoryContract.setStaking(stakingContract.address); - // Configure RewardPool in Staking await stakingContract.setRewardPool(rewardPoolContract.address); From 409fef44856afa2ece7f792c3663679b4e665193 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Tue, 13 Dec 2022 18:09:26 -0500 Subject: [PATCH 011/216] remove role from smart contract --- packages/core/contracts/Staking.sol | 124 ++---------------- .../core/contracts/interfaces/IStaking.sol | 16 +-- packages/core/contracts/libs/Stakes.sol | 20 --- packages/core/test/RewardPool.ts | 48 ++++--- packages/core/test/Staking.ts | 66 ++++------ 5 files changed, 67 insertions(+), 207 deletions(-) diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index b47b04a1de..b5efef2fe0 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -29,8 +29,6 @@ contract Staking is IStaking { // Minimum amount of tokens an staker needs to stake uint256 public minimumStake; - mapping(Stakes.Role => uint256) public minimumStakeForRole; - // Time in blocks to unstake uint32 public lockPeriod; @@ -88,14 +86,6 @@ contract Staking is IStaking { */ event SetMinumumStake(uint256 indexed minimumStake); - /** - * @dev Emitted when `owner` set new value for `minimumStakeForRole`. - */ - event SetMinumumStakeForRole( - Stakes.Role role, - uint256 indexed minimumStakeForRole - ); - /** * @dev Emitted when `owner` set new value for `lockPeriod`. */ @@ -106,11 +96,6 @@ contract Staking is IStaking { */ event SetRewardPool(address indexed rewardPool); - /** - * @dev Emitted when `staker` changed the role. - */ - event SetStakerRole(address indexed staker, Stakes.Role role); - constructor(address _eip20, uint256 _minimumStake, uint32 _lockPeriod) { eip20 = _eip20; owner = msg.sender; @@ -138,32 +123,6 @@ contract Staking is IStaking { emit SetMinumumStake(minimumStake); } - /** - * @dev Set the minimum stake amount for the role. - * @param _role Role to set minimum stake amount - * @param _minimumStakeForRole Minimum stake amount for the role - */ - function setMinimumStakeForRole( - Stakes.Role _role, - uint256 _minimumStakeForRole - ) external override onlyOwner { - _setMinimumStakeForRole(_role, _minimumStakeForRole); - } - - /** - * @dev Set the minimum stake amount for the role. - * @param _role Role to set minimum stake amount - * @param _minimumStakeForRole Minimum stake amount for the role - */ - function _setMinimumStakeForRole( - Stakes.Role _role, - uint256 _minimumStakeForRole - ) private { - require(_minimumStakeForRole > 0, 'Must be a positive number'); - minimumStakeForRole[_role] = _minimumStakeForRole; - emit SetMinumumStakeForRole(_role, _minimumStakeForRole); - } - /** * @dev Set the lock period for unstaking. * @param _lockPeriod Period in blocks to wait for token withdrawals after unstaking @@ -200,20 +159,6 @@ contract Staking is IStaking { emit SetRewardPool(_rewardPool); } - /** - * @dev Return the result of checking if the staker has a specific role. - * @param _staker Staker's address - * @param _role Role of the staker - * @return True if _staker has role - */ - function isRole( - address _staker, - Stakes.Role _role - ) external view returns (bool) { - Stakes.Staker memory staker = stakes[_staker]; - return staker.role == _role; - } - /** * @dev Return if escrowAddress is use for allocation. * @param _escrowAddress Address used as signer by the staker for an allocation @@ -338,7 +283,7 @@ contract Staking is IStaking { */ function getStaker( address _staker - ) external view returns (Stakes.Staker memory) { + ) external view override returns (Stakes.Staker memory) { return stakes[_staker]; } @@ -374,19 +319,15 @@ contract Staking is IStaking { */ function stake(uint256 _tokens) external override { require(_tokens > 0, 'Must be a positive number'); + + Stakes.Staker memory staker = stakes[msg.sender]; require( - stakes[msg.sender].tokensSecureStake().add(_tokens) >= minimumStake, + staker.tokensSecureStake().add(_tokens) >= minimumStake, 'Total stake is below the minimum threshold' ); - if (stakes[msg.sender].role == Stakes.Role.Null) { - Stakes.Staker memory staker = Stakes.Staker( - Stakes.Role.Operator, - 0, - 0, - 0, - 0 - ); + if (staker.tokensStaked == 0) { + staker = Stakes.Staker(0, 0, 0, 0); stakes[msg.sender] = staker; stakers.push(msg.sender); } @@ -462,10 +403,11 @@ contract Staking is IStaking { * @param _tokens Amount of tokens to slash from the indexer stake */ function slash( + address _slasher, address _staker, address _escrowAddress, uint256 _tokens - ) external override onlyValidator(msg.sender) { + ) external override onlyOwner { require(_escrowAddress != address(0), 'Must be a valid address'); Stakes.Staker storage staker = stakes[_staker]; @@ -488,9 +430,9 @@ contract Staking is IStaking { token.transfer(rewardPool, _tokens); // Keep record on Reward Pool - IRewardPool(rewardPool).addReward(_escrowAddress, msg.sender, _tokens); + IRewardPool(rewardPool).addReward(_escrowAddress, _slasher, _tokens); - emit StakeSlashed(msg.sender, _tokens); + emit StakeSlashed(_slasher, _tokens); } /** @@ -586,34 +528,6 @@ contract Staking is IStaking { ); } - /** - * @dev Set the role of the staker - * @param _role Role to set - */ - function setRole( - Stakes.Role _role - ) external override onlyStaker(msg.sender) { - _setRole(_role); - } - - /** - * @dev Set the role of the staker - * @param _role Role to set - */ - function _setRole(Stakes.Role _role) private { - Stakes.Staker memory staker = stakes[msg.sender]; - - require( - staker.tokensAvailable() >= minimumStakeForRole[_role], - 'Not enough amount of the stakes' - ); - - staker.role = _role; - stakes[msg.sender] = staker; - - emit SetStakerRole(msg.sender, _role); - } - modifier onlyOwner() { require(owner == msg.sender, 'Caller is not a owner'); _; @@ -621,23 +535,7 @@ contract Staking is IStaking { modifier onlyStaker(address _staker) { Stakes.Staker memory staker = stakes[_staker]; - require( - staker.role == Stakes.Role.Operator || - staker.role == Stakes.Role.Validator || - staker.role == Stakes.Role.ExchangeOracle || - staker.role == Stakes.Role.ReputationOracle || - staker.role == Stakes.Role.RecordingOracle, - 'Caller is not a staker' - ); - _; - } - - modifier onlyValidator(address _staker) { - Stakes.Staker memory staker = stakes[_staker]; - require( - staker.role == Stakes.Role.Validator, - 'Caller is not a validator' - ); + require(staker.tokensStaked > 0, 'Caller is not a staker'); _; } } diff --git a/packages/core/contracts/interfaces/IStaking.sol b/packages/core/contracts/interfaces/IStaking.sol index abe73cc3e4..07d3a0a5e9 100644 --- a/packages/core/contracts/interfaces/IStaking.sol +++ b/packages/core/contracts/interfaces/IStaking.sol @@ -49,19 +49,10 @@ interface IStaking { function setMinimumStake(uint256 _minimumStake) external; - function setMinimumStakeForRole( - Stakes.Role _role, - uint256 _minimumStakeForRole - ) external; - function setLockPeriod(uint32 _lockPeriod) external; function setRewardPool(address _rewardPool) external; - // function setStaker(address _staker, Role _role) external; - - // function isRole(address _account, Role role) external view returns (bool); - function isAllocation(address _escrowAddress) external view returns (bool); function hasStake(address _indexer) external view returns (bool); @@ -78,7 +69,9 @@ interface IStaking { function getStakedTokens(address _staker) external view returns (uint256); - // function getStaker(address _staker) external view returns (Stakes.Staker memory); + function getStaker( + address _staker + ) external view returns (Stakes.Staker memory); function stake(uint256 _tokens) external; @@ -87,6 +80,7 @@ interface IStaking { function withdraw() external; function slash( + address _slasher, address _staker, address _escrowAddress, uint256 _tokens @@ -96,8 +90,6 @@ interface IStaking { function closeAllocation(address _escrowAddress) external; - function setRole(Stakes.Role _role) external; - function getListOfStakers() external view diff --git a/packages/core/contracts/libs/Stakes.sol b/packages/core/contracts/libs/Stakes.sol index 042eb1cd0f..fc49e96ff4 100644 --- a/packages/core/contracts/libs/Stakes.sol +++ b/packages/core/contracts/libs/Stakes.sol @@ -12,27 +12,7 @@ library Stakes { using SafeMath for uint256; using Stakes for Stakes.Staker; - /** - * @dev Possible roles for participants - * Roles: - * - Null = Staker == address(0) - * - Operator = Job Launcher - * - Validator = Validator - * - ExchangeOracle = Exchange Oracle - * - ReputationOracle = Reputation Oracle - * - RecordingOracle = Recording Oracle - */ - enum Role { - Null, - Operator, - Validator, - ExchangeOracle, - ReputationOracle, - RecordingOracle - } - struct Staker { - Role role; uint256 tokensStaked; // Tokens staked by the Staker uint256 tokensAllocated; // Tokens allocated for jobs uint256 tokensLocked; // Tokens locked for withdrawal diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index 16cbeb8cdc..fd76b10a3d 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -9,15 +9,6 @@ import { import { expect } from 'chai'; describe('RewardPool', function () { - enum Role { - Null = 0, - Operator = 1, - Validator = 2, - ExchangeOracle = 3, - ReputationOracle = 4, - RecordingOracle = 5, - } - let token: HMToken, escrowFactory: EscrowFactory, staking: Staking, @@ -120,7 +111,6 @@ describe('RewardPool', function () { beforeEach(async () => { await staking.connect(validator).stake(stakedTokens); - await staking.connect(validator).setRole(Role.Validator); await staking.connect(operator).stake(stakedTokens); @@ -156,8 +146,13 @@ describe('RewardPool', function () { const slashedTokens = 1; await staking - .connect(validator) - .slash(await operator.getAddress(), escrowAddress, slashedTokens); + .connect(owner) + .slash( + await validator.getAddress(), + await operator.getAddress(), + escrowAddress, + slashedTokens + ); expect(await token.balanceOf(rewardPool.address)).to.equal(slashedTokens); @@ -169,8 +164,13 @@ describe('RewardPool', function () { const slashedTokens = 3; await expect( await staking - .connect(validator) - .slash(await operator.getAddress(), escrowAddress, slashedTokens) + .connect(owner) + .slash( + await validator.getAddress(), + await operator.getAddress(), + escrowAddress, + slashedTokens + ) ) .to.emit(rewardPool, 'RewardAdded') .withArgs( @@ -196,10 +196,8 @@ describe('RewardPool', function () { beforeEach(async () => { await staking.connect(validator).stake(stakedTokens); - await staking.connect(validator).setRole(Role.Validator); await staking.connect(validator2).stake(stakedTokens); - await staking.connect(validator2).setRole(Role.Validator); await staking.connect(operator).stake(stakedTokens); @@ -223,11 +221,21 @@ describe('RewardPool', function () { const vSlashAmount = 2; const v2SlashAmount = 3; await staking - .connect(validator) - .slash(await operator.getAddress(), escrowAddress, vSlashAmount); + .connect(owner) + .slash( + await validator.getAddress(), + await operator.getAddress(), + escrowAddress, + vSlashAmount + ); await staking - .connect(validator2) - .slash(await operator.getAddress(), escrowAddress, v2SlashAmount); + .connect(owner) + .slash( + await validator2.getAddress(), + await operator.getAddress(), + escrowAddress, + v2SlashAmount + ); const vBalanceBefore = await token.balanceOf( await validator.getAddress() diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 5a59450600..01fab21367 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -20,15 +20,6 @@ const mineNBlocks = async (n: number) => { }; describe('Staking', function () { - enum Role { - Null = 0, - Operator = 1, - Validator = 2, - ExchangeOracle = 3, - ReputationOracle = 4, - RecordingOracle = 5, - } - const minimumStake = 2; const lockPeriod = 2; const rewardFee = 1; @@ -507,30 +498,6 @@ describe('Staking', function () { }); }); - describe('isRole', function () { - describe('Is user has role', function () { - this.beforeEach(async () => { - await staking.connect(operator).stake(10); - }); - - it('Should return an user has not Operator role', async function () { - expect( - await staking - .connect(owner) - .isRole(await operator.getAddress(), Role.ExchangeOracle) - ).to.equal(false); - }); - - it('Should return an user has Operator role', async function () { - expect( - await staking - .connect(owner) - .isRole(await operator.getAddress(), Role.Operator) - ).to.equal(true); - }); - }); - }); - describe('isAllocation', function () { describe('Is escrow address has allocation', function () { let escrowAddress: string; @@ -659,7 +626,6 @@ describe('Staking', function () { await staking.connect(owner).setRewardPool(rewardPool.address); await staking.connect(validator).stake(stakedTokens); - await staking.connect(validator).setRole(Role.Validator); await staking.connect(operator).stake(stakedTokens); @@ -680,19 +646,25 @@ describe('Staking', function () { }); describe('Validations', function () { - it('Should revert with the right error if caller is not a validator', async function () { + it('Should revert with the right error if caller is not the owner', async function () { await expect( staking .connect(operator) - .slash(await operator.getAddress(), escrowAddress, slashedTokens) - ).to.be.revertedWith('Caller is not a validator'); + .slash( + await operator.getAddress(), + await operator.getAddress(), + escrowAddress, + slashedTokens + ) + ).to.be.revertedWith('Caller is not a owner'); }); it('Should revert with the right error if invalid address', async function () { await expect( staking - .connect(validator) + .connect(owner) .slash( + await validator.getAddress(), await operator.getAddress(), ethers.constants.AddressZero, slashedTokens @@ -707,8 +679,13 @@ describe('Staking', function () { it('Should emit an event on stake slashed', async function () { await expect( await staking - .connect(validator) - .slash(await operator.getAddress(), escrowAddress, slashedTokens) + .connect(owner) + .slash( + await validator.getAddress(), + await operator.getAddress(), + escrowAddress, + slashedTokens + ) ) .to.emit(staking, 'StakeSlashed') .withArgs(await validator.getAddress(), anyValue); @@ -720,8 +697,13 @@ describe('Staking', function () { const slashedTokens = 2; await staking - .connect(validator) - .slash(await operator.getAddress(), escrowAddress, slashedTokens); + .connect(owner) + .slash( + await validator.getAddress(), + await operator.getAddress(), + escrowAddress, + slashedTokens + ); // await staking.connect(operator).withdraw(); From 92dfb66f537b4fe9e1fb2bf290b55a27cda3f917 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 14 Dec 2022 18:12:19 -0500 Subject: [PATCH 012/216] fix typescript sdk --- .../typescript/human-protocol-sdk/src/job.ts | 45 +++++-------------- .../human-protocol-sdk/src/types.ts | 32 ------------- .../human-protocol-sdk/src/utils.ts | 13 ++---- .../human-protocol-sdk/test/job.test.ts | 8 +--- 4 files changed, 17 insertions(+), 81 deletions(-) diff --git a/packages/sdk/typescript/human-protocol-sdk/src/job.ts b/packages/sdk/typescript/human-protocol-sdk/src/job.ts index 733575fec8..301b51f97e 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/job.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/job.ts @@ -15,7 +15,6 @@ import { JobArguments, StorageAccessData, StakingData, - StakerRole, } from './types'; import { deployEscrowFactory, @@ -194,16 +193,6 @@ export class Job { return false; } - this._logger.info('Deploying escrow factory...'); - this.contractData.factory = await deployEscrowFactory( - this.contractData.hmTokenAddr, - this.providerData?.gasPayer - ); - this.contractData.factoryAddr = this.contractData.factory.address; - this._logger.info( - `Escrow factory is deployed at ${this.contractData.factory.address}.` - ); - if ( !this.stakingData?.minimumStake || !this.stakingData?.lockPeriod || @@ -218,7 +207,6 @@ export class Job { this._logger.info('Deploying staking...'); this.contractData.staking = await deployStaking( this.contractData.hmTokenAddr, - this.contractData.factory.address, this.stakingData.minimumStake, this.stakingData.lockPeriod, this.providerData?.gasPayer @@ -228,6 +216,17 @@ export class Job { `Staking is deployed at ${this.contractData.staking.address}` ); + this._logger.info('Deploying escrow factory...'); + this.contractData.factory = await deployEscrowFactory( + this.contractData.hmTokenAddr, + this.contractData.stakingAddr, + this.providerData?.gasPayer + ); + this.contractData.factoryAddr = this.contractData.factory.address; + this._logger.info( + `Escrow factory is deployed at ${this.contractData.factory.address}.` + ); + this._logger.info('Deploying reward pool...'); const rewardPool = await deployRewardPool( this.contractData.hmTokenAddr, @@ -239,7 +238,6 @@ export class Job { this._logger.info('Configuring staking & reward pool...'); await this.contractData.staking.setRewardPool(rewardPool.address); - await this.contractData.factory.setStaking(this.contractData.stakingAddr); this._logger.info( 'Staking & Reward Pool is configured with Escrow Factory.' ); @@ -719,27 +717,6 @@ export class Job { return (await this.status()) === EscrowStatus.Complete; } - /** - * **Set the account as a staker** - * - * @param {string} accountAddr - Account address to set as a staker - * @param {StakerRole} role - Account role - * @returns {Promise} - True if the account is set as staker - */ - async setStaker(accountAddr: string, role: StakerRole) { - if (!this.contractData?.staking) { - this._logError(ErrorStakingMissing); - return false; - } - - return await this._raffleExecute( - this.contractData.staking, - 'setStaker', - accountAddr, - role - ); - } - /** * **Stake HMTokens** * diff --git a/packages/sdk/typescript/human-protocol-sdk/src/types.ts b/packages/sdk/typescript/human-protocol-sdk/src/types.ts index bbadf329d5..593c760286 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/types.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/types.ts @@ -38,38 +38,6 @@ export enum EscrowStatus { Cancelled, } -/** - * Enum for staker role. - * @readonly - * @enum {number} - */ -export enum StakerRole { - /** - * No role - */ - Null, - /** - * Operator - */ - Operator, - /** - * Validator - */ - Validator, - /** - * Exchange Oracle - */ - ExchangeOracle, - /** - * Reputation Oracle - */ - ReputationOracle, - /** - * Recording Oracle - */ - RecordingOracle, -} - /** * Payout item * @readonly diff --git a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts index 3c4b399b6a..d47f258305 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts @@ -35,16 +35,18 @@ export const getHmToken = async ( * **Deploy EscrowFactory contract** * * @param {string} hmTokenAddr HMToken address + * @param {string} stakingAddr Staking address * @param {ethers.Signer | undefined} signer Deployer signer * @returns {Promise} Deployed contract instance */ export const deployEscrowFactory = async ( hmTokenAddr: string, + stakingAddr: string, signer?: ethers.Signer ): Promise => { const factory = new EscrowFactory__factory(signer); - const contract = await factory.deploy(hmTokenAddr); + const contract = await factory.deploy(hmTokenAddr, stakingAddr); return contract; }; @@ -89,7 +91,6 @@ export const getEscrow = async ( * **Deploy Staking contract** * * @param {string} hmTokenAddr HMToken address - * @param {string} escrowFactoryAddr Escrow factory address * @param {number} minimumStake Minimum amount to stake * @param {number} lockPeriod Lock period after unstake * @param {ethers.Signer | undefined} signer Deployer signer @@ -97,18 +98,12 @@ export const getEscrow = async ( */ export const deployStaking = async ( hmTokenAddr: string, - factoryAddr: string, minimumStake: number, lockPeriod: number, signer?: ethers.Signer ): Promise => { const staking = new Staking__factory(signer); - const contract = await staking.deploy( - hmTokenAddr, - factoryAddr, - minimumStake, - lockPeriod - ); + const contract = await staking.deploy(hmTokenAddr, minimumStake, lockPeriod); return contract; }; diff --git a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts index ad8332c003..c4fb2e1bc6 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts @@ -1,5 +1,5 @@ import { getPublicURL } from './../src/storage'; -import { EscrowStatus, Job, StakerRole } from '../src'; +import { EscrowStatus, Job } from '../src'; import { upload } from '../src/storage'; import { toFullDigit } from '../src/utils'; import { @@ -34,7 +34,6 @@ jest.mock('../src/storage', () => ({ const setupJob = async (job: Job) => { await job.initialize(); - await job.setStaker(DEFAULT_GAS_PAYER_ADDR, StakerRole.Operator); await job.stake(1); await job.launch(); await job.setup(); @@ -68,12 +67,11 @@ describe('Test Job', () => { expect(await job.contractData?.factory?.address).not.toBeNull(); }); - it.only('Should be able to launch the job after staking', async () => { + it('Should be able to launch the job after staking', async () => { // Fail to launch the job before initialization expect(await job.launch()).toBe(false); await job.initialize(); - await job.setStaker(DEFAULT_GAS_PAYER_ADDR, StakerRole.Operator); await job.stake(1); expect(await job.launch()).toBe(true); @@ -85,7 +83,6 @@ describe('Test Job', () => { expect(await job.setup()).toBe(false); await job.initialize(); - await job.setStaker(DEFAULT_GAS_PAYER_ADDR, StakerRole.Operator); await job.stake(1); await job.launch(); @@ -95,7 +92,6 @@ describe('Test Job', () => { it('Should be able to add trusted handlers', async () => { await job.initialize(); - await job.setStaker(DEFAULT_GAS_PAYER_ADDR, StakerRole.Operator); await job.stake(1); await job.launch(); From 0e3fbb2568666e975d0811aab90d5a05a73389d5 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 14 Dec 2022 21:57:47 -0500 Subject: [PATCH 013/216] fix python sdk and doctest --- .../python/human_protocol_sdk/eth_bridge.py | 74 ++--- packages/sdk/python/human_protocol_sdk/job.py | 284 +++++++++++++++++- packages/sdk/python/scripts/run-test.sh | 2 +- .../test/human_protocol_sdk/test_job.py | 3 + .../typescript/human-protocol-sdk/src/job.ts | 56 +--- .../human-protocol-sdk/src/types.ts | 34 +-- .../human-protocol-sdk/test/job.test.ts | 12 +- .../test/utils/constants.ts | 7 +- 8 files changed, 337 insertions(+), 135 deletions(-) diff --git a/packages/sdk/python/human_protocol_sdk/eth_bridge.py b/packages/sdk/python/human_protocol_sdk/eth_bridge.py index 8263c07d2a..9cf627e961 100644 --- a/packages/sdk/python/human_protocol_sdk/eth_bridge.py +++ b/packages/sdk/python/human_protocol_sdk/eth_bridge.py @@ -21,12 +21,15 @@ HMTOKEN_ADDR = Web3.toChecksumAddress( os.getenv("HMTOKEN_ADDR", "0x5FbDB2315678afecb367f032d93F642f64180aa3") ) +STAKING_ADDR = Web3.toChecksumAddress( + os.getenv("STAKING_ADDR", "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512") +) ABIS_FOLDER = os.path.join(os.path.dirname(os.path.dirname(__file__)), "contracts") # See more details about the eth-kvstore here: https://github.com/hCaptcha/eth-kvstore KVSTORE_CONTRACT = Web3.toChecksumAddress( - os.getenv("KVSTORE_CONTRACT", "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0") + os.getenv("KVSTORE_CONTRACT", "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9") ) WEB3_POLL_LATENCY = float(os.getenv("WEB3_POLL_LATENCY", 5)) WEB3_TIMEOUT = int(os.getenv("WEB3_TIMEOUT", 240)) @@ -198,7 +201,7 @@ def get_hmtoken_interface(): """ return get_contract_interface( - "{}/HMTokenInterface.sol/HMTokenInterface.json".format(ABIS_FOLDER) + "{}/interfaces/HMTokenInterface.sol/HMTokenInterface.json".format(ABIS_FOLDER) ) @@ -233,6 +236,10 @@ def get_escrow(escrow_addr: str, hmt_server_addr: str = None) -> Contract: >>> rep_oracle_pub_key = b"2dbc2c2c86052702e7c219339514b2e8bd4687ba1236c478ad41b43330b08488c12c8c1797aa181f3a4596a1bd8a0c18344ea44d6655f61fa73e56e743f79e0d" >>> job = Job(credentials=credentials, escrow_manifest=manifest) + Stake HMT to create escrow + >>> job.stake(1) + True + Deploying a new Job to the ethereum network succeeds. >>> job.launch(rep_oracle_pub_key) @@ -298,6 +305,7 @@ def deploy_factory( gas: int = GAS_LIMIT, hmt_server_addr: str = None, hmtoken_addr: str = None, + staking_addr: str = None, **credentials, ) -> str: """Deploy an EscrowFactory solidity contract to the ethereum network. @@ -316,6 +324,7 @@ def deploy_factory( gas_payer = credentials["gas_payer"] gas_payer_priv = credentials["gas_payer_priv"] hmtoken_address = HMTOKEN_ADDR if hmtoken_addr is None else hmtoken_addr + staking_address = STAKING_ADDR if staking_addr is None else staking_addr w3 = get_w3(hmt_server_addr) contract_interface = get_contract_interface( @@ -326,7 +335,7 @@ def deploy_factory( ) txn_func = factory.constructor - func_args = [hmtoken_address] + func_args = [hmtoken_address, staking_address] txn_info = { "gas_payer": gas_payer, "gas_payer_priv": gas_payer_priv, @@ -338,51 +347,34 @@ def deploy_factory( return str(contract_addr) -def deploy_staking( - gas: int = GAS_LIMIT, - hmt_server_addr: str = None, - hmtoken_addr: str = None, - factory_addr: str = None, - minimum_stake: int = 1, - lock_period: int = 1, - **credentials, -) -> str: - """Deploy an EscrowFactory solidity contract to the ethereum network. +def get_staking_interface(): + """Retrieve the Staking interface. - Args: - gas (int): maximum amount of gas the caller is ready to pay. + Returns: + Contract interface: returns the Staking interface solidity contract. + + """ + + return get_contract_interface("{}/Staking.sol/Staking.json".format(ABIS_FOLDER)) + + +def get_staking(staking_addr=HMTOKEN_ADDR, hmt_server_addr: str = None) -> Contract: + """Retrieve the Staking contract from a given address. + >>> type(get_staking()) + + + Args: hmt_server_addr (str): infura API address. - Returns - str: returns the contract address of the newly deployed factory. + Returns: + Contract: returns the Staking solidity contract. """ - if gas is None: - gas = GAS_LIMIT - gas_payer = credentials["gas_payer"] - gas_payer_priv = credentials["gas_payer_priv"] - hmtoken_address = HMTOKEN_ADDR if hmtoken_addr is None else hmtoken_addr - w3 = get_w3(hmt_server_addr) - contract_interface = get_contract_interface( - "{}/Staking.sol/Staking.json".format(ABIS_FOLDER) - ) - staking = w3.eth.contract( - abi=contract_interface["abi"], bytecode=contract_interface["bytecode"] - ) - - txn_func = staking.constructor - func_args = [hmtoken_address, factory_addr, minimum_stake, lock_period] - txn_info = { - "gas_payer": gas_payer, - "gas_payer_priv": gas_payer_priv, - "gas": gas, - "hmt_server_addr": hmt_server_addr, - } - txn_receipt = handle_transaction(txn_func, *func_args, **txn_info) - contract_addr = txn_receipt["contractAddress"] - return str(contract_addr) + contract_interface = get_staking_interface() + contract = w3.eth.contract(address=staking_addr, abi=contract_interface["abi"]) + return contract def get_pub_key_from_addr(wallet_addr: str, hmt_server_addr: str = None) -> bytes: diff --git a/packages/sdk/python/human_protocol_sdk/job.py b/packages/sdk/python/human_protocol_sdk/job.py index 682e2a4ea2..6781266b46 100644 --- a/packages/sdk/python/human_protocol_sdk/job.py +++ b/packages/sdk/python/human_protocol_sdk/job.py @@ -19,11 +19,13 @@ get_entity_topic, get_escrow, get_factory, + get_staking, deploy_factory, get_w3, handle_transaction_with_retry, Retry, HMTOKEN_ADDR, + STAKING_ADDR, ) from human_protocol_sdk.storage import ( download, @@ -177,6 +179,7 @@ def __init__( retry: Retry = None, hmt_server_addr: str = None, hmtoken_addr: str = None, + staking_addr: str = None, gas_limit: int = GAS_LIMIT, ): """Initializes a Job instance with values from a Manifest class and @@ -207,6 +210,8 @@ def __init__( True >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -272,6 +277,7 @@ def __init__( self.multi_credentials = self._validate_multi_credentials(multi_credentials) self.hmt_server_addr = hmt_server_addr self.hmtoken_addr = HMTOKEN_ADDR if hmtoken_addr is None else hmtoken_addr + self.staking_addr = STAKING_ADDR if staking_addr is None else staking_addr self.gas = gas_limit or GAS_LIMIT # Initialize a new Job. @@ -306,6 +312,8 @@ def launch(self, pub_key: bytes) -> bool: Deploying a new Job to the ethereum network succeeds. + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.status() @@ -318,6 +326,8 @@ def launch(self, pub_key: bytes) -> bool: >>> job.gas_payer_priv = "657b6497a355a3982928d5515d48a84870f057c4d16923eb1d104c0afada9aa8" >>> job.multi_credentials = [("0x70997970C51812dc3A010C7d01b50e0d17dc79C8", "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"), ("0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", "5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a")] + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.status() @@ -503,6 +513,8 @@ def add_trusted_handlers(self, handlers: List[str]) -> bool: ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True @@ -573,6 +585,8 @@ def bulk_payout( ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -606,6 +620,8 @@ def bulk_payout( >>> multi_credentials = [("0x70997970C51812dc3A010C7d01b50e0d17dc79C8", "59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d"), ("0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", "5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a")] >>> job = Job(credentials, manifest, multi_credentials=multi_credentials) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -709,6 +725,8 @@ def abort(self) -> bool: The escrow contract is in Pending state after setup so it can be aborted. + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -805,6 +823,8 @@ def cancel(self) -> bool: The escrow contract is in Pending state after setup so it can be cancelled. + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -884,6 +904,8 @@ def store_intermediate_results(self, results: Dict, pub_key: bytes) -> bool: ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -977,6 +999,8 @@ def complete( ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -1033,6 +1057,201 @@ def complete( return self.status() == Status.Complete + def stake(self, amount: Decimal) -> bool: + """Stakes HMT token. + + >>> credentials = { + ... "gas_payer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + ... "gas_payer_priv": "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" + ... } + >>> from test.human_protocol_sdk.utils import manifest + >>> job = Job(credentials, manifest) + + Stakes 1 HMT + + >>> job.stake(1) + True + + Args: + amount (Decimal): Amount to stake + + Returns: + bool: returns True if staking succeeds. + """ + w3 = get_w3(self.hmt_server_addr) + + # Approve HMT + hmtoken_contract = get_hmtoken(self.hmtoken_addr, self.hmt_server_addr) + + txn_event = "Approving HMT" + txn_func = hmtoken_contract.functions.approve + txn_info = { + "gas_payer": self.gas_payer, + "gas_payer_priv": self.gas_payer_priv, + "gas": self.gas, + "hmt_server_addr": self.hmt_server_addr, + } + func_args = [self.staking_addr, amount] + + hmt_approved = False + try: + handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) + hmt_approved = True + except Exception as e: + LOG.info( + f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}. Using secondary ones..." + ) + if not hmt_approved: + raffle_txn_res = self._raffle_txn( + self.multi_credentials, txn_func, func_args, txn_event + ) + hmt_approved = raffle_txn_res["txn_succeeded"] + + # give up + if not hmt_approved: + LOG.exception(f"{txn_event} failed with all credentials.") + + txn_event = "Staking" + txn_func = self.staking_contract.functions.stake + txn_info = { + "gas_payer": self.gas_payer, + "gas_payer_priv": self.gas_payer_priv, + "gas": self.gas, + "hmt_server_addr": self.hmt_server_addr, + } + + func_args = [amount] + + try: + handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) + return True + except Exception as e: + LOG.info( + f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}. Using secondary ones..." + ) + + raffle_txn_res = self._raffle_txn( + self.multi_credentials, txn_func, func_args, txn_event + ) + staked = raffle_txn_res["txn_succeeded"] + + if not staked: + LOG.exception(f"{txn_event} failed with all credentials.") + + return True + + def unstake(self, amount: Decimal) -> bool: + """Unstakes HMT token. + + >>> credentials = { + ... "gas_payer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + ... "gas_payer_priv": "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" + ... } + >>> from test.human_protocol_sdk.utils import manifest + >>> job = Job(credentials, manifest) + + Stakes 1 HMT + + >>> job.stake(1) + True + + >>> job.unstake(1) + True + + Args: + amount (Decimal): Amount to unstake + + Returns: + bool: returns True if unstaking succeeds. + """ + w3 = get_w3(self.hmt_server_addr) + txn_event = "Staking" + txn_func = self.staking_contract.functions.unstake + txn_info = { + "gas_payer": self.gas_payer, + "gas_payer_priv": self.gas_payer_priv, + "gas": self.gas, + "hmt_server_addr": self.hmt_server_addr, + } + + func_args = [amount] + + try: + handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) + # After abort the contract should be destroyed + return w3.eth.getCode(self.job_contract.address) == b"" + except Exception as e: + LOG.info( + f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}. Using secondary ones..." + ) + + raffle_txn_res = self._raffle_txn( + self.multi_credentials, txn_func, func_args, txn_event + ) + unstaked = raffle_txn_res["txn_succeeded"] + + if not unstaked: + LOG.exception(f"{txn_event} failed with all credentials.") + + return True + + def withdraw(self, amount: Decimal) -> bool: + """Withdraws HMT token. + + >>> credentials = { + ... "gas_payer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + ... "gas_payer_priv": "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" + ... } + >>> from test.human_protocol_sdk.utils import manifest + >>> job = Job(credentials, manifest) + + Stakes 1 HMT + + >>> job.stake(1) + True + + >>> job.unstake(1) + True + + >>> # TODO withdraw test + + Args: + amount (Decimal): Amount to withdraw + + Returns: + bool: returns True if withdrawing succeeds. + """ + w3 = get_w3(self.hmt_server_addr) + txn_event = "Staking" + txn_func = self.staking_contract.functions.withdraw + txn_info = { + "gas_payer": self.gas_payer, + "gas_payer_priv": self.gas_payer_priv, + "gas": self.gas, + "hmt_server_addr": self.hmt_server_addr, + } + + func_args = [amount] + + try: + handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) + # After abort the contract should be destroyed + return w3.eth.getCode(self.job_contract.address) == b"" + except Exception as e: + LOG.info( + f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}. Using secondary ones..." + ) + + raffle_txn_res = self._raffle_txn( + self.multi_credentials, txn_func, func_args, txn_event + ) + withdrawn = raffle_txn_res["txn_succeeded"] + + if not withdrawn: + LOG.exception(f"{txn_event} failed with all credentials.") + + return True + def status(self) -> Enum: """Returns the status of the Job. @@ -1046,6 +1265,8 @@ def status(self) -> Enum: After deployment status is "Launched". + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.status() @@ -1067,6 +1288,8 @@ def balance(self) -> int: ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -1097,6 +1320,8 @@ def manifest(self, priv_key: bytes) -> Dict: ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -1126,6 +1351,8 @@ def intermediate_results(self, priv_key: bytes) -> Dict: ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -1160,6 +1387,8 @@ def final_results(self, priv_key: bytes) -> Optional[Dict]: ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -1206,6 +1435,10 @@ def _access_job(self, factory_addr: str, escrow_addr: str, **credentials): rep_oracle_priv_key = credentials["rep_oracle_priv_key"] self.factory_contract = get_factory(factory_addr, self.hmt_server_addr) + + self.staking_addr = self._factory_get_staking_addr(factory_addr) + self.staking_contract = get_staking(self.staking_addr, self.hmt_server_addr) + self.job_contract = get_escrow(escrow_addr, self.hmt_server_addr) self.manifest_url = manifest_url(self.job_contract, gas_payer, self.gas) self.manifest_hash = manifest_hash(self.job_contract, gas_payer, self.gas) @@ -1324,6 +1557,8 @@ def _factory_contains_escrow(self, escrow_addr: str, factory_addr: str) -> bool: ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() @@ -1353,6 +1588,45 @@ def _factory_contains_escrow(self, escrow_addr: str, factory_addr: str) -> bool: {"from": self.gas_payer, "gas": Wei(self.gas)} ) + def _factory_get_staking_addr(self, factory_addr: str) -> str: + """Get staking address from existing factory + + >>> from test.human_protocol_sdk.utils import manifest + >>> credentials = { + ... "gas_payer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + ... "gas_payer_priv": "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", + ... "rep_oracle_priv_key": b"ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" + ... } + >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" + >>> job = Job(credentials, manifest) + >>> job.stake(1) + True + >>> job.launch(rep_oracle_pub_key) + True + >>> job.setup() + True + + Factory contains the escrow address. + >>> factory_addr = job.factory_contract.address + >>> escrow_addr = job.job_contract.address + >>> new_job = Job(credentials=credentials, factory_addr=factory_addr, escrow_addr=escrow_addr) + >>> new_job._factory_get_staking_addr(factory_addr) + '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512' + + Args: + factory_addr (str): an ethereum address of the escrow factory contract. + + Returns: + string: returns staking contract address + + """ + factory_contract = get_factory( + factory_addr, hmt_server_addr=self.hmt_server_addr + ) + return factory_contract.functions.staking().call( + {"from": self.gas_payer, "gas": Wei(self.gas)} + ) + def _init_factory( self, factory_addr: Optional[str], credentials: Dict[str, str] ) -> Contract: @@ -1389,7 +1663,11 @@ def _init_factory( if not factory_addr_valid: factory_addr = deploy_factory( - gas=self.gas, hmt_server_addr=self.hmt_server_addr, **credentials + gas=self.gas, + hmt_server_addr=self.hmt_server_addr, + hmtoken_addr=self.hmtoken_addr, + staking_addr=self.staking_addr, + **credentials, ) factory = get_factory(factory_addr, hmt_server_addr=self.hmt_server_addr) if not factory_addr: @@ -1400,6 +1678,8 @@ def _init_factory( str(factory_addr), hmt_server_addr=self.hmt_server_addr ) + self.staking_contract = get_staking(self.staking_addr, self.hmt_server_addr) + return factory def _bulk_paid(self) -> int: @@ -1412,6 +1692,8 @@ def _bulk_paid(self) -> int: ... } >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" >>> job = Job(credentials, manifest) + >>> job.stake(1) + True >>> job.launch(rep_oracle_pub_key) True >>> job.setup() diff --git a/packages/sdk/python/scripts/run-test.sh b/packages/sdk/python/scripts/run-test.sh index 8476cc2af3..496b1217b8 100755 --- a/packages/sdk/python/scripts/run-test.sh +++ b/packages/sdk/python/scripts/run-test.sh @@ -8,7 +8,7 @@ yarn workspace @human-protocol/core local & sleep 5 # Run test -pipenv run pytest +pipenv run pytest ./human_protocol_sdk/*.py # Kill running hardhat node trap 'kill $(jobs -p)' EXIT diff --git a/packages/sdk/python/test/human_protocol_sdk/test_job.py b/packages/sdk/python/test/human_protocol_sdk/test_job.py index 87ea087ef0..faa232aa44 100644 --- a/packages/sdk/python/test/human_protocol_sdk/test_job.py +++ b/packages/sdk/python/test/human_protocol_sdk/test_job.py @@ -35,6 +35,9 @@ def setUp(self): def test_launch(self): """Tests job launch""" + staked = self.job.stake(1) + self.assertEqual(staked, True) + lauched = self.job.launch(self.rep_oracle_pub_key) self.assertEqual(lauched, True) diff --git a/packages/sdk/typescript/human-protocol-sdk/src/job.ts b/packages/sdk/typescript/human-protocol-sdk/src/job.ts index 301b51f97e..98c36cb83d 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/job.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/job.ts @@ -14,12 +14,9 @@ import { ContractData, JobArguments, StorageAccessData, - StakingData, } from './types'; import { deployEscrowFactory, - deployRewardPool, - deployStaking, getEscrow, getEscrowFactory, getHmToken, @@ -62,11 +59,6 @@ export class Job { */ storageAccessData?: StorageAccessData; - /** - * Staking data - */ - stakingData?: StakingData; - private _logger: winston.Logger; /** @@ -104,9 +96,7 @@ export class Job { storageEndpoint, storagePublicBucket, storageBucket, - stakingMinimumAmount, - stakingLockPeriod, - stakingRewardFee, + stakingAddr, logLevel = 'info', }: JobArguments) { const provider = network @@ -147,6 +137,7 @@ export class Job { hmTokenAddr, escrowAddr, factoryAddr, + stakingAddr, }; this.manifestData = { manifest }; @@ -159,12 +150,6 @@ export class Job { bucket: storageBucket || DEFAULT_BUCKET, }; - this.stakingData = { - minimumStake: stakingMinimumAmount, - lockPeriod: stakingLockPeriod, - rewardFee: stakingRewardFee, - }; - this._logger = createLogger(logLevel); } @@ -193,28 +178,16 @@ export class Job { return false; } - if ( - !this.stakingData?.minimumStake || - !this.stakingData?.lockPeriod || - !this.stakingData.rewardFee - ) { - this._logError(new Error('Staking data is missing.')); - this.contractData.factory = undefined; - + if (!this.contractData.stakingAddr) { + this._logError(new Error('Staking contract is missing')); return false; } - this._logger.info('Deploying staking...'); - this.contractData.staking = await deployStaking( - this.contractData.hmTokenAddr, - this.stakingData.minimumStake, - this.stakingData.lockPeriod, + this._logger.info('Getting staking...'); + this.contractData.staking = await getStaking( + this.contractData.stakingAddr, this.providerData?.gasPayer ); - this.contractData.stakingAddr = this.contractData.staking.address; - this._logger.info( - `Staking is deployed at ${this.contractData.staking.address}` - ); this._logger.info('Deploying escrow factory...'); this.contractData.factory = await deployEscrowFactory( @@ -226,21 +199,6 @@ export class Job { this._logger.info( `Escrow factory is deployed at ${this.contractData.factory.address}.` ); - - this._logger.info('Deploying reward pool...'); - const rewardPool = await deployRewardPool( - this.contractData.hmTokenAddr, - this.contractData.staking.address, - this.stakingData.rewardFee, - this.providerData?.gasPayer - ); - this._logger.info(`RewardPool is deployed at ${rewardPool.address}`); - - this._logger.info('Configuring staking & reward pool...'); - await this.contractData.staking.setRewardPool(rewardPool.address); - this._logger.info( - 'Staking & Reward Pool is configured with Escrow Factory.' - ); } else { if (!this.contractData?.factoryAddr) { this._logError( diff --git a/packages/sdk/typescript/human-protocol-sdk/src/types.ts b/packages/sdk/typescript/human-protocol-sdk/src/types.ts index 593c760286..ca0d7da46a 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/types.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/types.ts @@ -540,24 +540,6 @@ export type ManifestData = { intermediateResultLink?: StorageObjectLink; }; -/** - * Staking data - */ -export type StakingData = { - /** - * Minimum amount for staking - */ - minimumStake?: number; - /** - * Lock period for staking - */ - lockPeriod?: number; - /** - * Reward fee - */ - rewardFee?: number; -}; - /** * Contract data */ @@ -654,6 +636,10 @@ export type JobArguments = { /** * Factory contract address */ + stakingAddr?: string; + /** + * Staking contract address + */ factoryAddr?: string; /** * Escrow contract address @@ -683,18 +669,6 @@ export type JobArguments = { * AWS/GCP private bucket name */ storageBucket?: string; - /** - * Minimum amount for staking - */ - stakingMinimumAmount?: number; - /** - * Lock period for staking - */ - stakingLockPeriod?: number; - /** - * Reward fee for staking - */ - stakingRewardFee?: number; /** * Log level */ diff --git a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts index c4fb2e1bc6..a1f8998cf6 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts @@ -6,9 +6,7 @@ import { DEFAULT_GAS_PAYER_ADDR, DEFAULT_GAS_PAYER_PRIVKEY, DEFAULT_HMTOKEN_ADDR, - DEFAULT_LOCK_PERIOD, - DEFAULT_MINIMUM_STAKE, - DEFAULT_REWARD_FEE, + DEFAULT_STAKING_ADDR, NOT_TRUSTED_OPERATOR_PRIVKEY, REPUTATION_ORACLE_PRIVKEY, TRUSTED_OPERATOR1_ADDR, @@ -49,9 +47,7 @@ describe('Test Job', () => { reputationOracle: REPUTATION_ORACLE_PRIVKEY, manifest: manifest, hmTokenAddr: DEFAULT_HMTOKEN_ADDR, - stakingMinimumAmount: DEFAULT_MINIMUM_STAKE, - stakingLockPeriod: DEFAULT_LOCK_PERIOD, - stakingRewardFee: DEFAULT_REWARD_FEE, + stakingAddr: DEFAULT_STAKING_ADDR, logLevel: 'debug', }); }); @@ -386,10 +382,8 @@ describe('Test Job', () => { reputationOracle: REPUTATION_ORACLE_PRIVKEY, manifest: manifest, hmTokenAddr: DEFAULT_HMTOKEN_ADDR, + stakingAddr: DEFAULT_STAKING_ADDR, trustedHandlers: [TRUSTED_OPERATOR1_PRIVKEY], - stakingMinimumAmount: DEFAULT_MINIMUM_STAKE, - stakingLockPeriod: DEFAULT_LOCK_PERIOD, - stakingRewardFee: DEFAULT_REWARD_FEE, logLevel: 'error', }); diff --git a/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts b/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts index 21eb062050..e30bfedaa1 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts @@ -1,6 +1,9 @@ export const DEFAULT_HMTOKEN_ADDR = '0x5FbDB2315678afecb367f032d93F642f64180aa3'; +export const DEFAULT_STAKING_ADDR = + '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512'; + export const DEFAULT_GAS_PAYER_ADDR = '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'; export const DEFAULT_GAS_PAYER_PRIVKEY = @@ -25,7 +28,3 @@ export const WORKER3_ADDR = '0x976EA74026E726554dB657fA54763abd0C3a0aa9'; export const NOT_TRUSTED_OPERATOR_PRIVKEY = '5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365b'; - -export const DEFAULT_MINIMUM_STAKE = 1; -export const DEFAULT_LOCK_PERIOD = 1; -export const DEFAULT_REWARD_FEE = 1; From 1ab7825319bd6ffc9bc215856ae5d3c94915746e Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 14 Dec 2022 22:14:49 -0500 Subject: [PATCH 014/216] fix python sdk test --- .../sdk/python/human_protocol_sdk/storage.py | 1 - packages/sdk/python/scripts/run-test.sh | 2 +- .../storage/test_storage.py | 9 ++++--- .../test/human_protocol_sdk/test_job.py | 26 ++++++++++++++++--- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/packages/sdk/python/human_protocol_sdk/storage.py b/packages/sdk/python/human_protocol_sdk/storage.py index f632a57168..32ac18127d 100644 --- a/packages/sdk/python/human_protocol_sdk/storage.py +++ b/packages/sdk/python/human_protocol_sdk/storage.py @@ -172,7 +172,6 @@ def download(key: str, private_key: bytes, public: bool = False) -> Dict: if is_url else download_from_storage(key=key, public=public) ) - content = download_from_storage(key=key, public=public) artifact = ( crypto.decrypt(private_key, content) if crypto.is_encrypted(content) is True diff --git a/packages/sdk/python/scripts/run-test.sh b/packages/sdk/python/scripts/run-test.sh index 496b1217b8..8476cc2af3 100755 --- a/packages/sdk/python/scripts/run-test.sh +++ b/packages/sdk/python/scripts/run-test.sh @@ -8,7 +8,7 @@ yarn workspace @human-protocol/core local & sleep 5 # Run test -pipenv run pytest ./human_protocol_sdk/*.py +pipenv run pytest # Kill running hardhat node trap 'kill $(jobs -p)' EXIT diff --git a/packages/sdk/python/test/human_protocol_sdk/storage/test_storage.py b/packages/sdk/python/test/human_protocol_sdk/storage/test_storage.py index 2e9d4e387c..15f828e3b2 100644 --- a/packages/sdk/python/test/human_protocol_sdk/storage/test_storage.py +++ b/packages/sdk/python/test/human_protocol_sdk/storage/test_storage.py @@ -207,9 +207,12 @@ def test_download_from_public_resource(self): ] mock_urlopen.return_value = cm - downloaded = download(key=file_key, private_key=self.priv_key) - self.assertEqual(json.dumps(downloaded), sample_data) - mock_urlopen.assert_called_once() + with patch( + "human_protocol_sdk.storage.download_from_storage" + ) as download_mock: + downloaded = download(key=file_key, private_key=self.priv_key) + self.assertEqual(json.dumps(downloaded), sample_data) + mock_urlopen.assert_called_once() if __name__ == "__main__": diff --git a/packages/sdk/python/test/human_protocol_sdk/test_job.py b/packages/sdk/python/test/human_protocol_sdk/test_job.py index faa232aa44..4ba2bb52bd 100644 --- a/packages/sdk/python/test/human_protocol_sdk/test_job.py +++ b/packages/sdk/python/test/human_protocol_sdk/test_job.py @@ -45,6 +45,8 @@ def test_launch(self): self.assertEqual(next_status, Status.Launched) def test_status(self): + staked = self.job.stake(1) + self.assertEqual(staked, True) lauched = self.job.launch(self.rep_oracle_pub_key) self.assertEqual(lauched, True) @@ -52,6 +54,7 @@ def test_status(self): self.assertEqual(next_status, Status.Launched) def test_manifest_url(self): + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) self.assertEqual( @@ -70,6 +73,7 @@ def test_job_init(self): factory_addr = deploy_factory(**(self.credentials)) self.job = Job(self.credentials, manifest, factory_addr) self.assertTrue(self.job.factory_contract.address, factory_addr) + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) self.assertTrue( @@ -96,6 +100,7 @@ def test_job_init(self): new_job.launch(self.rep_oracle_pub_key) def test_job_launch(self): + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertEqual(self.job.status(), Status(1)) multi_credentials = [ @@ -125,6 +130,7 @@ def test_job_launch(self): "5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a", ), ] + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertEqual(self.job.status(), Status(1)) @@ -153,12 +159,14 @@ def test_job_setup(self): ), ] self.job = Job(self.credentials, manifest, multi_credentials=multi_credentials) + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) def test_job_add_trusted_handlers(self): # Make sure we se set our gas payer as a trusted handler by default. + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue( is_trusted_handler( @@ -187,6 +195,7 @@ def test_job_add_trusted_handlers(self): def test_job_bulk_payout(self): """Tests job's bulk payout.""" + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) payouts = [ @@ -234,6 +243,7 @@ def test_job_bulk_payout(self): def test_job_bulk_payout_with_false_encryption_option(self): """Test that final results are stored encrypted""" job = Job(self.credentials, manifest) + self.assertTrue(job.stake(1)) self.assertEqual(job.launch(self.rep_oracle_pub_key), True) self.assertEqual(job.setup(), True) @@ -263,6 +273,7 @@ def test_job_bulk_payout_with_false_encryption_option(self): def test_job_bulk_payout_with_true_encryption_option(self): """Test that final results are stored uncrypted""" job = Job(self.credentials, manifest) + self.assertTrue(job.stake(1)) self.assertEqual(job.launch(self.rep_oracle_pub_key), True) self.assertEqual(job.setup(), True) @@ -273,7 +284,7 @@ def test_job_bulk_payout_with_true_encryption_option(self): mock_upload = MagicMock(return_value=("hash", "url")) # Testing option as: encrypt final results: encrypt_final_results=True - with patch("hmt_escrow.job.upload") as mock_upload: + with patch("human_protocol_sdk.job.upload") as mock_upload: # Bulk payout with final results as plain (not encrypted) mock_upload.return_value = ("hash", "url") @@ -295,6 +306,7 @@ def test_job_bulk_payout_store_final_results_publicly_and_privately(self): """Tests bulk payout with option to store final results privately/publicly""" job = Job(self.credentials, manifest) + self.assertTrue(job.stake(1)) self.assertEqual(job.launch(self.rep_oracle_pub_key), True) self.assertEqual(job.setup(), True) @@ -341,6 +353,7 @@ def test_job_bulk_payout_store_final_results_publicly_and_privately(self): def test_job_bulk_payout_with_full_qualified_url(self): """Tests whether url is only S3 string with encryption is on/off.""" job = Job(self.credentials, manifest) + self.assertTrue(job.stake(1)) self.assertEqual(job.launch(self.rep_oracle_pub_key), True) self.assertEqual(job.setup(), True) @@ -349,9 +362,9 @@ def test_job_bulk_payout_with_full_qualified_url(self): final_results = {"results": 0} with patch( - "hmt_escrow.job.handle_transaction_with_retry" + "human_protocol_sdk.job.handle_transaction_with_retry" ) as transaction_retry_mock, patch( - "hmt_escrow.job.upload" + "human_protocol_sdk.job.upload" ) as upload_mock, patch.object( Job, "_check_transfer_event" ) as _check_transfer_event_mock: @@ -394,6 +407,7 @@ def test_retrieving_encrypted_final_results(self): """Tests retrieving final results with encryption on/off""" job = Job(self.credentials, manifest) + self.assertTrue(job.stake(1)) self.assertEqual(job.launch(self.rep_oracle_pub_key), True) self.assertEqual(job.setup(), True) @@ -426,6 +440,7 @@ def test_retrieving_encrypted_final_results(self): # Bulk payout with encryption OFF job = Job(self.credentials, manifest) + self.assertTrue(job.stake(1)) self.assertEqual(job.launch(self.rep_oracle_pub_key), True) self.assertEqual(job.setup(), True) @@ -448,6 +463,7 @@ def test_job_abort(self): it can't be aborted. """ + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) payouts = [("0x852023fbb19050B8291a335E5A83Ac9701E7B4E6", Decimal("100.0"))] @@ -460,6 +476,7 @@ def test_job_abort(self): # Trusted handler should be able to abort an existing contract self.job = Job(self.credentials, manifest) + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) trusted_handler = "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC" @@ -478,6 +495,7 @@ def test_job_abort(self): self.assertTrue(access_job.abort()) def test_job_cancel(self): + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) payouts = [("0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", Decimal("20.0"))] @@ -494,10 +512,12 @@ def test_job_cancel(self): self.assertEqual(self.job.status(), Status(4)) def test_job_status(self): + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertEqual(self.job.status(), Status(1)) def test_job_balance(self): + self.assertTrue(self.job.stake(1)) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) self.assertEqual(self.job.balance(), 100000000000000000000) From 9e06e532569ce488ca75796afb6f62456b06043e Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Thu, 15 Dec 2022 16:07:14 -0500 Subject: [PATCH 015/216] fix fortune test --- .../src/services/fortune.test.ts | 69 ++++++------------- .../recording-oracle/src/services/fortune.ts | 7 +- .../src/services/escrow.test.ts | 34 +++------ .../tests/e2e-backend/cancelEscrow.test.js | 3 +- .../fortune/tests/e2e-backend/fixtures.js | 1 - .../human-protocol-sdk/src/storage.ts | 7 +- 6 files changed, 43 insertions(+), 78 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts index dcf4a914b2..065443d8fd 100644 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts @@ -55,37 +55,29 @@ describe('Fortune', () => { .send({ from: owner.address, }); - const escrowFactoryContract = new web3.eth.Contract( - EscrowFactory.abi as [] - ); - escrowFactory = await escrowFactoryContract + + const stakingContract = new web3.eth.Contract(Staking.abi as []); + staking = await stakingContract .deploy({ - data: EscrowFactory.bytecode, - arguments: [token.options.address], + data: Staking.bytecode, + arguments: [token.options.address, web3.utils.toWei('1', 'ether'), 1], }) .send({ from: owner.address, }); - const stakingContract = new web3.eth.Contract(Staking.abi as []); - staking = await stakingContract + const escrowFactoryContract = new web3.eth.Contract( + EscrowFactory.abi as [] + ); + escrowFactory = await escrowFactoryContract .deploy({ - data: Staking.bytecode, - arguments: [ - token.options.address, - escrowFactory.options.address, - web3.utils.toWei('1', 'ether'), - 1, - ], + data: EscrowFactory.bytecode, + arguments: [token.options.address, staking.options.address], }) .send({ from: owner.address, }); - await escrowFactory.methods - .setStaking(staking.options.address) - .send({ from: owner.address }); - await token.methods .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) .send({ from: owner.address }); @@ -94,10 +86,6 @@ describe('Fortune', () => { .approve(staking.options.address, web3.utils.toWei('500', 'ether')) .send({ from: launcher.address }); - await staking.methods - .setStaker(launcher.address, 1) - .send({ from: owner.address }); - await staking.methods .stake(web3.utils.toWei('500', 'ether')) .send({ from: launcher.address }); @@ -149,7 +137,7 @@ describe('Fortune', () => { }); it('Do not allow two fortunes from the same worker', async () => { - let err: any = await addFortune(web3, worker1, escrowAddress, 'fortune 1'); + let err = await addFortune(web3, worker1, escrowAddress, 'fortune 1'); expect(getEscrow(escrowAddress)).toBeDefined(); expect(getWorkerResult(escrowAddress, worker1)).toBe('fortune 1'); expect(getFortunes(escrowAddress).length).toBe(1); @@ -157,38 +145,28 @@ describe('Fortune', () => { err = await addFortune(web3, worker1, escrowAddress, 'fortune 2'); expect(getEscrow(escrowAddress)).toBeDefined(); expect(getFortunes(escrowAddress).length).toBe(1); - expect(err.message).toBe( + expect(err?.message).toBe( '0x90F79bf6EB2c4f870365E785982E1f101E93b906 already submitted a fortune' ); }); it('Do not allow empty fortune', async () => { - const err: any = await addFortune(web3, worker1, escrowAddress, ''); + const err = await addFortune(web3, worker1, escrowAddress, ''); expect(getEscrow(escrowAddress)).toBeUndefined(); - expect(err.message).toBe('Non-empty fortune is required'); + expect(err?.message).toBe('Non-empty fortune is required'); }); it('Invalid escrow address', async () => { - const err: any = await addFortune( - web3, - worker1, - 'escrowAddress', - 'fortune 1' - ); + const err = await addFortune(web3, worker1, 'escrowAddress', 'fortune 1'); expect(getEscrow(escrowAddress)).toBeUndefined(); - expect(err.message).toBe('Valid ethereum address required'); + expect(err?.message).toBe('Valid ethereum address required'); }); it('Invalid recording oracle address', async () => { web3.eth.defaultAccount = owner.address; - const err: any = await addFortune( - web3, - worker1, - escrowAddress, - 'fortune 1' - ); + const err = await addFortune(web3, worker1, escrowAddress, 'fortune 1'); expect(getEscrow(escrowAddress)).toBeUndefined(); - expect(err.message).toBe( + expect(err?.message).toBe( 'The Escrow Recording Oracle address mismatches the current one' ); web3.eth.defaultAccount = recordingAccount.address; @@ -198,12 +176,7 @@ describe('Fortune', () => { await escrow.methods.cancel().send({ from: launcher.address, }); - const err: any = await addFortune( - web3, - worker1, - escrowAddress, - 'fortune 1' - ); - expect(err.message).toBe('The Escrow is not in the Pending status'); + const err = await addFortune(web3, worker1, escrowAddress, 'fortune 1'); + expect(err?.message).toBe('The Escrow is not in the Pending status'); }); }); diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.ts index ea709ad8a5..71bbae261d 100644 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.ts +++ b/packages/examples/fortune/recording-oracle/src/services/fortune.ts @@ -20,12 +20,17 @@ const statusesMap = [ 'Cancelled', ]; +export interface FortuneError { + message: string; + field?: string; +} + export async function addFortune( web3: Web3, workerAddress: string, escrowAddress: string, fortune: string -) { +): Promise { if (!web3.utils.isAddress(workerAddress)) { return { field: 'workerAddress', diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts index 14e4603292..c79c568a52 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts @@ -46,36 +46,28 @@ describe('Fortune', () => { from: owner.address, }); - const escrowFactoryContract = new web3.eth.Contract( - EscrowFactory.abi as [] - ); - escrowFactory = await escrowFactoryContract + const stakingContract = new web3.eth.Contract(Staking.abi as []); + staking = await stakingContract .deploy({ - data: EscrowFactory.bytecode, - arguments: [token.options.address], + data: Staking.bytecode, + arguments: [token.options.address, web3.utils.toWei('1', 'ether'), 1], }) .send({ from: owner.address, }); - const stakingContract = new web3.eth.Contract(Staking.abi as []); - staking = await stakingContract + + const escrowFactoryContract = new web3.eth.Contract( + EscrowFactory.abi as [] + ); + escrowFactory = await escrowFactoryContract .deploy({ - data: Staking.bytecode, - arguments: [ - token.options.address, - escrowFactory.options.address, - web3.utils.toWei('1', 'ether'), - 1, - ], + data: EscrowFactory.bytecode, + arguments: [token.options.address, staking.options.address], }) .send({ from: owner.address, }); - await escrowFactory.methods - .setStaking(staking.options.address) - .send({ from: owner.address }); - await token.methods .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) .send({ from: owner.address }); @@ -84,10 +76,6 @@ describe('Fortune', () => { .approve(staking.options.address, web3.utils.toWei('500', 'ether')) .send({ from: launcher.address }); - await staking.methods - .setStaker(launcher.address, 1) - .send({ from: owner.address }); - await staking.methods .stake(web3.utils.toWei('500', 'ether')) .send({ from: launcher.address }); diff --git a/packages/examples/fortune/tests/e2e-backend/cancelEscrow.test.js b/packages/examples/fortune/tests/e2e-backend/cancelEscrow.test.js index a3c2ea7387..17d32661b7 100644 --- a/packages/examples/fortune/tests/e2e-backend/cancelEscrow.test.js +++ b/packages/examples/fortune/tests/e2e-backend/cancelEscrow.test.js @@ -18,12 +18,11 @@ const { escrowFundAmount, } = require('./constants'); const web3 = new Web3(urls.ethHTTPServer); -let owner; let launcher; describe('Cancel escrow', () => { beforeAll(async () => { - [owner, launcher] = await setupAccounts(); + [, launcher] = await setupAccounts(); }); test('Flow', async () => { const escrowFactory = createEscrowFactory(); diff --git a/packages/examples/fortune/tests/e2e-backend/fixtures.js b/packages/examples/fortune/tests/e2e-backend/fixtures.js index 715b68afe1..5af2cef719 100644 --- a/packages/examples/fortune/tests/e2e-backend/fixtures.js +++ b/packages/examples/fortune/tests/e2e-backend/fixtures.js @@ -37,7 +37,6 @@ const stake = async (escrowFactory) => { const stakingAddress = await escrowFactory.methods.staking().call(); const staking = new web3.eth.Contract(stakingAbi, stakingAddress); - await staking.methods.setStaker(launcher, 1).send({ from: owner, gasLimit }); await Token.methods .approve(stakingAddress, 5) .send({ from: launcher, gasLimit }); diff --git a/packages/sdk/typescript/human-protocol-sdk/src/storage.ts b/packages/sdk/typescript/human-protocol-sdk/src/storage.ts index 3832294f1a..6d7fb65354 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/storage.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/storage.ts @@ -76,7 +76,7 @@ export const getKeyFromURL = (url: string): string => { * @param {StorageAccessData} storageAccessData - Cloud storage access data * @param {string} key - Key of result object * @param {string} privateKey - Private key to decode encrypted content - * @param {string} isPublic - Whether the objest is using public bucket, or private bucket + * @param {boolean} isPublic - Whether the objest is using public bucket, or private bucket * @returns {Promise} - Downloaded result */ export const download = async ( @@ -104,14 +104,15 @@ export const download = async ( * @param {StorageAccessData} storageAccessData - Cloud storage access data * @param {Result} result - Result to upload * @param {string} publicKey - Public key to encrypt data if necessary - * @param {string} encrypt - Whether to encrypt the result, or not - * @param {string} isPublic - Whether to use public bucket, or private bucket + * @param {boolean} _encrypt - Whether to encrypt the result, or not + * @param {boolean} isPublic - Whether to use public bucket, or private bucket * @returns {Promise} - Uploaded result with key/hash */ export const upload = async ( storageAccessData: StorageAccessData, result: Result, publicKey: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars encrypt = true, isPublic = false ): Promise => { From 424c32acbe6809f8874649be03ccbd6b1bc3d26f Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Thu, 15 Dec 2022 16:26:23 -0500 Subject: [PATCH 016/216] fix subgraph test --- packages/sdk/typescript/subgraph/.gitignore | 6 +- .../build/EscrowFactory/EscrowFactory.wasm | Bin 38638 -> 0 bytes .../subgraph/build/HMToken/HMToken.wasm | Bin 43966 -> 0 bytes .../typescript/subgraph/build/schema.graphql | 113 ------------------ .../build/templates/Escrow/Escrow.wasm | Bin 42054 -> 0 bytes .../sdk/typescript/subgraph/template.yaml | 2 +- .../subgraph/test/.bin/escrow/escrow.wasm | Bin 46688 -> 0 bytes .../subgraph/test/.bin/hmt/hmt.wasm | Bin 46789 -> 0 bytes .../sdk/typescript/subgraph/test/.latest.json | 4 - 9 files changed, 6 insertions(+), 119 deletions(-) delete mode 100644 packages/sdk/typescript/subgraph/build/EscrowFactory/EscrowFactory.wasm delete mode 100644 packages/sdk/typescript/subgraph/build/HMToken/HMToken.wasm delete mode 100644 packages/sdk/typescript/subgraph/build/schema.graphql delete mode 100644 packages/sdk/typescript/subgraph/build/templates/Escrow/Escrow.wasm delete mode 100644 packages/sdk/typescript/subgraph/test/.bin/escrow/escrow.wasm delete mode 100644 packages/sdk/typescript/subgraph/test/.bin/hmt/hmt.wasm delete mode 100644 packages/sdk/typescript/subgraph/test/.latest.json diff --git a/packages/sdk/typescript/subgraph/.gitignore b/packages/sdk/typescript/subgraph/.gitignore index 49c41fc18e..b74a7882e0 100644 --- a/packages/sdk/typescript/subgraph/.gitignore +++ b/packages/sdk/typescript/subgraph/.gitignore @@ -1,3 +1,6 @@ +# Graph build +build/ + # Graph generated generated/ @@ -5,4 +8,5 @@ generated/ subgraph.yaml # Graph test generated -tests/.latest.json +test/.bin +test/.latest.json diff --git a/packages/sdk/typescript/subgraph/build/EscrowFactory/EscrowFactory.wasm b/packages/sdk/typescript/subgraph/build/EscrowFactory/EscrowFactory.wasm deleted file mode 100644 index fbd5347e0cdbb73ab06203cbec3be425fd6e18a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38638 zcmeHwdw^U;)#tr^duDp(PER`TNhXh;nLHtx_cH{Nn@2-{kVpb3qC;nt(oa(ANr_MQb>QvS3OkFLW9n>{V)0c#<*LUf=t`F=YG{{Ey=CxQn|XJf#IxMIvJ&F65Ywc_&{AQy(yPT zrnYLDr?c6kI}y7lYC&cUtq58a7YBp-kQOLHrC$8$lF!0$mS!rTF{fENL4d#@2oe+#6cdyX zga}Fr$_Pw?a)K~H1;GS@2*E^xNd%J#rVvaem_{(2ppsw)!AycGf>{K!3FZ*YC5RGK z6VwpY63io*Pq2VsA;BVo#RTUOoKLWXU@1WzK|MhOK_fvEK{G)MK`TKUK|4VQK_|g7 zf(r)9?iTmES>P=KZxy&l;B5kL7kG!jy#ntPc$dJt1@04gkHC8c-Y0Os zz>f;NU*H1*9~AhIz=s7sBJhB~M+H76@Nt39$Q<~xz-I-1Mc{J+pBMO5fk)t5oSP-T zsyVDzY>TIQ1`?OYhg03#5s(iAejdW}e!ju9oYj-44xsCBme9)M>$jgQKp7rsewW(ZYM3K6T zr!785Q;%@dEA6(M2IH9=7Oq?--kn<=9~dwy9bV#nSSDQL zxXzV{?C?PD49&!_i=FXRP4it!<#`o$x8kr@br|PQC@5%bGnN#VG&dPb3rpHsjJg6g z>pG13f+p+0rlGI|Y#Iwoz^197B!)K4g(YayQZSo5lfHG9E%_CRct+G&gWb@TiS9%a z8#$xRF+;w3b!KEJm%b#P-Db2`ji$B4|COh8IJ2Fk>l2y&fyBmmZky5R3~HVw+9$CG zOJ_Fa;{6F@S#&hpO#|pI(UWgyT;PPCJdaJut*Ll!IFm4zpC;AnZNsVlOA_%OD0HFY znnKy#oycY{ON?wxWCoL2Zd;Y?7dhrqtvIPw#R_L$uwqRzlTZ_WrMGzF@RosOH@F&> zx7d|%RkcUK7#1P&XDo2VFjhO0gB`_&2L>#W)ze~)m$|BCpKG0nAQF1VGUhe>YT4+5 zEIpjcsbMoN_V&3ZF*J}KapIue;*!~Ckle0c=N%V`h*&!9x=Xz_m65h9F7rxk_4Ggs zyXJDQ_pM0`BytJ2a=lj_RavOc6;4EV2T}ZbC}(W&R&5#<(?X=&aMsx9Rl#-Jb-Bc# z@gA>ht=*aE9_Gkx7|wO42NTAX-rCb#c9U0qSr2TF-0bZz@8W7IT;(P5y7ARc$fj;; zb-BhnHnyVIBy-yw@!sq7<5{U3d%UmA9@op$Ta9ZS-VzQjX=-gV-d_+<*yuW^(du+| zFrBqhBgO}u37;<#2F3@S@m1xkco0-IU52a`EWAXOVLWGG9M zs@dX%4n?PGayTz;8O|kClWxbSoF>VhM5^1a>?y2VpYBPlOZBD|Wx@%Sijwm=k#Vbg z3u!m+R4a#~-CC$newbD5HYXq`&iUG_h7cBQ(UPOAJDl6bzKuR-TcBu_FZ4UH!Be=d z#~3KoK-#YBi4DZJuEqJ=7<6WZhf4NbStI3a8&nlX%1Arg8K;bcWDJcSQ+w!)?S-AM zP7e;nyK}3OIc0;)Xu4E3k;-C1W=GT66}Du#8ryZ16l;cu5PV^^tJAr}+8t_ejp0J$ ztr^b5IdhF2g~n5xoEr+qs?dpyorQ8rEtgDVWQ+<5VSK2t^Sn?Wb|$2f+$q02navqD zj+Q|wV(a{o!pRp)B#fI12g8mny9#ZmN;jkiMwFZE)(dCS<;ktva;oZPeL;a;rE2v+ z65DVqmy37zJK`F*=!N<@lg7AJFPsrh#d>VLlExmrP(`P96Q1o1B#hfe5kvFbrbN!x z>vp}+*zS^hhwdz5%Bq-zLuq)-s>If0N~yM2cUF$VCRjtb=h?i|xKnpxX<>`CsUF4R zF1>K<7z?O?OryKUs7&&@P7mmIs?u)~IRCl7f(h`c_uNS(}=AEn3JtM{gqlVatZN`J61jiet49T^7R;G;}N|uj(aOrOw1Yw&eVZwU_3g?fv#4MCGGAX(+gwWdh7$^TN7fJ z$49x4$8OvXC3fbFgLykynHv)E9SP+YAItl+UA!@qPWNu;Rl76e@s(|TF5rz_ptm4gdv3q#n5 zrWrxCMMYg*sl*LhDezD-rG-nnx`tECEiUcq>P`;~VEe0`XLfaEa=B#JmUuQ{JfRm4 zCI-`)k$_g*1>eL|;qyyNbUp~xXP4a-n|GV87ww8_)~UDOe%rV#xY9ZlvR(~Y)z<8Y zrkS-`jbR1*YJzAnxz8HfZUy^miu!7_6JBG%wQwl;X`oDPG3&QHp_@NM9sG zS^Ckh))ojx1%=S7-WDil=WT&V)IdA)<$$j53ZS>OVGWepG7TuI_kj}f$w%D^tamDP z)g}Or0lPY28Tp3A`Gy8s1oPz~yF9A(TgLX90E|Mxq^l?x-6&UK zRSt%%)~%483s{vlYbquUBMMDXs1l85<;g1ZxheTv#LiLu;C8FBuSV~yh6os+YTbZk ztmp;|hqg*AS*~Ni%rwm^zfo;1Jf++!j+9n&bWHWJsPJRJ z`DoikjhoWk3R+sEvd}%WH40u=Oo>^sTU7 z$3uQK0Tu~eAlJ7jpw)=^4^6OMtgwELF9cKz^Eq8NFo~ji3FmzQkEOe)!)f%SrL>)-}5f!_oc8RR0{JGe#|1k0(hBT5 z;55`TPRyH)?LxU|kyW`Pqbz73%g&0V289S^Z~;|V>J(!3vQfCEh~%tB z%QKs}JTR65XB9T!2sqSdfFqIfT_+VZq|; zE-Ch$oEOmmK_x{Dxgv%{#1g5=i>L}sr_dI00z?Ek#^mfGVj94I3p{9Se;CV0{$DFQ zvzyV1ociaQRsSa}c6KQlbN(7B&(4)$%FFfatw%*H^BV!Kr-&!j3=w(^+btb?CB%IT z8$L_V^{-d#qru1|gl;xkhZ3Eu559`uj#UiPhdGo6*M@_n>L)jDVZm zP{MiTpoVU}%K?%e4eDjspFle-wutsvwz#EcHfls7M0#YRr-aL^#3yH6tuauG{fi-+88pKJiM2rO!&DRDToXVyHD&a06RQb6g=#`pUGlQTm(w;~g* z2HA#C@qg@|T_E~~NvIk3g}uz2+D|A)@*Kgczi#*c7| zF=4v}N5YoC(s)u?Y8mXcmTY7bQp)a2`eN0^2(**!Lrb+DEsB;<>|&&%(Z`(@t6FWM zcuXk5;ikkr+!T|l1mwk|4mZWo;%JF`xG7$#$tgz;H$^zyl!`eaceI3tV5aD@DjZ`V zezYVqIjUpF0JgLx`pr|wE+&YX!V?V*6~Rj07Y#;3{jymu=LQNJS+2-}f{0XX9RlV) zu?%MIiyErl#L8=$vtb$^SxWOuxcDo;ZZ{LIX#t?!HD#b?JLykNGoGj$Q zVuuC;CnHO?W;M4mrd7sRsVMCBsz24XNUCsfR;(KOuwjKpAPHJaB_A}4VZ%tZ*(&D` z&S`^ZA8{vx?o@dCp=aWhLtPub9u_d`_?W=jKO2ryf>Ba2NW+L|MJUBK*nq{N zMVGP)wy=*woI$~8asEitSB)7_#5JObmO)(!mU8F7QxhEMvj?LZC#32k@I-8oU|PVF z7G(s52{F}O`eGDe_8QS*?A8%vgJN>0DQ2Qm&kaB7J(6JFJ3?bF=Gnu1dGin=ZS%&+X+bqzKKQXcXlmv(STesL?vuNWB6( zFm{o-<}&ok&!|YL5Pz&w zLj1oP0b`eb6P}k?A`qzYNIhASYML9C zj?_jq+U8hmG!W5Yy4`I6N7}51b*oeYI*+H-x|q7$DvOjlk8hkuH-h2Pg0b%*CTEDC zI;ujhTEh&+h%+kisQ^YiQj3=E<_9B=oB;@hZDNYl|Zt=W4NAhBT_x>XCWy7xN!V)Yt~CDh6e>^@H!of&jl;6sSZ9 z!H5SVQzN?QJC*v5M_btD%uF?#sn=vO(` z;q+W>PL89^5%|YB`A8cG28klmup~rgV0Vt6}cQZ0qoB#wuS%cveI?G8?| zRTU)yBeDeyw@2@I0XTvG9DL z1+nk~poOvULZC&l@FJkavG8J`^J3xifXZYrvNRzW{t0@YjJa2mS`|df;yYUjh6g@CM+20^SJx zE#UV6|1+2f7;gr@+?$zYhFf;5UHZ2Yeh(bS?0AfZq@N zUEu40zX$vQ;8%e^2>gBEF5n*kUl064;5hJWz*~TS1l$e$W8fa(p8zL-PXPA<{}gyD z@aw?afZqU40>25|2mCYOe&C-24*>rHco6s`a0>XBz-i!L0S^KH8hAVKZ-6tvzXi?$ z{|-0@{CnVG;J1Kx0RI8_2H-ye?*#r6@CfiJ;12=+8TiA%e*wM`_-){i0Pn`^x(WDZ zV4VG|TYz`#$lQv|&CKjU<`!mdL*`ayZbxPhGj||!8#8;6xt*Cik-3AJyO7z-%-zV` z$;>`v?qcR1WbS6>US#$$b00GIFtZ<-dztwtGWRiaKQjB7c>tM@GV>rZ_cQYlG7m8G zFftD^^9V8zF>?T!hnaa4nMas;44DJWJdVtx%shiI@fb5-M&@y5o<-&$GhadGW6V5< z%*UB|9+^)t^HpRH>E)lqVIF4=e%oi&BF#gZkF)@ZXOM+Ri;xy0oriQj(h{UPqGjTznD2r@EwBh61+KXmen@bF;B|sG34TuS3xe+x z{Dj~Qf|CTlB#_$gG50HiUlaU>;I{<7BltbR9|-BcO%9&dkj$zlA_F*u&f%1a}kMMesPmA%ag4{9A&@2o4i`mf-UQ_YqVh z{R1<%5rI6_d3^njE3Br~@YJW2461WyorhTzi#2MGQn!6O9!mEi9P z{u9Abg8xGB-w2Ko{C9%?LGTp8(*$24(A4v&kZEYTq95KB;Zd>d__#m<1fh=Q`jldMh>cS?I0QoJ@*xq)n*F zfF=c=)?rou#ZoiO`eLMYsL7!()GX1gS4zz))=WWK1*)yu8c5QO+#uu{K&Vw5_Li9w z*e-;$MI=Yv!7}On$ue^y>&lQU^qm3a2)6pF_Bjt_3bNA{)^SyL!b7s+2{Q@L+pg5e$1Y4kP zFMbpFY!BEeMY%U@o=?hoc27NMvlG3fL6H;O3rH^P6RvSIta|j&xjp7!x*@dcL3^if zr$0rvx59Ntnz$S7(%KE$QgJBdmUOKoYO*M$&eqWivC4B5c+d+uXP!YzyQeqN8m{?5iUBxOtAceNNdHKgOHf6$f=;@kHYDOMWQI2EP)!wVdD7A5r~2( zE#vCRk}OKLK_9k&`gQ0rVqUDHx0TW($BpBVKo5gxuf}%R=1C4IaG*4_Ibjce z**=S3>rL>4-@X+wyLIrp4#~CuN{kW5Y6yJ{iDfytyG5dUPu)`R&tejHqg@Y#H5@gqxR$^a|R`ygv4>BwK>9Z zX*Z=lMx5eei;&V;H1q6{~mlMRYHPL zT5Lk^T?=cgv0e?E3=55Q9NZwmiOJ?-a;rh252s*ta@{&M)xjx3_2d+@nN&-VILijK zer>b#mx2~*#*N*pqCYXk4Y3?6YCCX-9;d1vr@EH%Qn)tr>ZWK;Om%yq)|}(iv0H4! zsN(pyb#R*MWttmNXgSi*vuM*E3IFt+1gsr*BFb?^d19Jtk*h_Uv3;BWKaXLa@ht}) z*1_rG*-uV4yJ*q(BK<9%orY|Kuqb`oony9F@2ga?pwi5;uK}bOWKAMR{nVlu#R#f7 z>Xno;lre#eC}RX;0jYYS1!q5JEjeVtjnUMJ3ky-M7M+EN3^PR612g=Y#a><6%b-Y@ zfeg03r_kRl93*DCvzSrAo&g7EiZz~`X(n}8Vhhr0(Zh*ES$yKm!8eZJdA7M3MJtYH z5@`hOZ;%{gqFPT>Ok0P=-8xuh>W4M!$tv@cI=g)gX>Fc32}U$^TEeUwn9nVM8@f3d zN^G~=(>Z$gDI8iQs0xN0JPsy??1fnp&R&`2EUus>W zQJb|k^gCDSJlBmk?yTofa8B0C+;P0xnZr>r@qwsWszcfU5>}+cQS&~d0l5aP5s9l* zGg1puD^eR$J5mQyr?hAUY(%?8v};7WMzm{0yGFEYM7u_`BNw)4l3!Y^1*sLO4XGWe z1F2JbA{Vx3mfse@R-`thcBBrZPLYN^kqcY2$ZsoP8&W$`2U4dEky098KtH~?2Vk* zioc!sRaT^hs692K)Rc(5krP{4M{CW%tROb3wdNfmjuy9N;~k|2_*nxcW&*l-cfA=eG}-LK;H!VCeSy5o_;l+(QXEPGw7Q^ z-wgU@&^LpgJ~X0N1-%kLIIuK7IMB#?T+kzPs9qIYnFIZCuN ztwoI~HGAf%fxq2IJxB?pUVNfQ(<|v&^bU?NM~RlEwWu+rX3wPNZx0f8AHB$NHqfK# zmGmrn2S=ErL`&0J)RaW=+X2_dKSHdBg|2vrD-i{toA&lWGv@? zrx)~`g`7#84fJSwB|VGY!4c*t(bBXQHKx?;nbg+t^W}VW;(T)hW5Oj8!5L*45gEN0 zX=s1y&VGBb+HAv$(1%_20CqXtpA2c+u?le|9L8dQ1Ja4L8|0xJO>dwi>c_=}vrMR*l2M25gPAqlLNL;nKE4EIl zy1jMozKqryfIg@_Sf}>lb>rI)sMDf*?zWDDo;}yOE9Cpprz+iBZqkv*!)pF?Zv&sFvV& zKM(0DSgl`1_6EQx#+|2*IC6_n&J!8;4i_R>Z-N^7z185#wiqMUD5VD)%}LyB@ln*u zN&x)qu0)rp#$N1;jqb5@beD^upki{u!{nHU$thH0x3ss(eU@;h9rNXoo%?KcUg{~> zLBE6D@~I}-E$?kMKPJ27hoR27cgtt*{9W29A8t_=ZgF?J`)7##3wFE5RkIT$bHdI4=QD_?1MV-;r)chDm^ZJ+Du1fDJ(><|u5c9^T#+j1nAgF2~? z{}~IPR)HVJlsxEUocGzc3*}2r<~3vr zd}a@Bb}Z2TI0{I+2bVn-R2)PBE4~0MOrLQwdvGJ9641#!gACigWaHOtd>FSzDq1^p z{8l}fiVr6Aznio~n|#wia!dV|;Uw;@NM-Beyz5lIL<(1K#iecAhBE0~8h;O8FQ1m? zvh}zSXfT}ua;`(I=O5SO`T+ZORL^y&fhA|{TlySkulcwE{#V~oq(cw=sFCOw$%uVUGFL>+^}y5^<{tHwj?RTGy0 zCUYZR9V3tG!bIsOCRqMXx$;7k{LPMv8YaZ;F!k!5z_UA$JrQ>BM#_5JA2OV{=ptAb zmkm!;<6FS1uB$7teUhrcon8a>uoHC;jZ7ZPBf8T=BU5%OHP0CZ0Eq3)vV^lant`V8vw&u*>QFQs6g!T18A+L%#3j;jSfyzdS?50 zdMun=wY<=}>aP%0`T8u6YbwU|$y_?#+%)^*@yO!Uz9*R-8i&Fg={T zv0+X=63U$~GG*tgNF@`(o-Td3_)Cc-Euu4|`+~W|IDqS8sxSB(B&+#ri7&%)S$p;X ziy@uYa=N?og4s37F5>Dv@#MgWa&-$PO69Wimt-^D^@F&il|hJB$zq)uu`eX52VeU# zFfs0eMc&qmQ4ANJ;cA@v!uy98uB)r7&;Lu|8mX?qbkFcWB3pl^z_N89y(NzAhC=S` zJ&P{R^FijXVCCHXvv~A!Dfj-IH%-RWT}16w;QZp73v*tb3dDd;H-h{;uwV4sP&=W&S4VqK&>WY*hD9 z7yHN2zDT;nKaTb#)FGcZy4$BxpT^pA|8|*=ENx4gKC-k;S$?HI4&=Q#JnSb=Th0of zhTOftc!E!JQB7~$c^ks@9g?B!65z-RaPBk0-RD=^2W8R>Z|!Q88T6+9n2qCStDgwJZ9 zeAk_3H9jp#dA)0W)?238yl#I6X^hb3nqvNzcde7WbryWk-#*l;;_9&Q1Mdd^y!eay z-wpQ8s3>Lfoh|lhQBzl&pP>`JBI7)t;Mwa=s+~kb`Sv_yp zxuDBugN%OB$#S0#x_S9||Gm7~=R&{7((^)g^)dFz6N~)Yvo7;7cHleR{)7_vav!|} zUnS>X&b8jh6@Aouzpn7n0mpc2*an}Tk-0(Ie#h2E9~l?CvFtrQI-R=>;rq_6^l`x* z{kF7CKJp&D1=;N5WRa(P>fJq8`Dp0EP1)5x3hdd`T;tP&DEhM4;k`aa&(q&f_dcKO z>v`5|cXI9D`VBjubl@9hy!h_@KG{^BKJeXo*ZFw>gn%FLNkH{ZD7@G2gFYQ|@(e}w zE}vE&#npYM;PpODCB--YM#8vH;mTp_eV^eLUriwocg4irJ{|Rx%!+TpyA*qTTIHP% zJa1x5_{!ROx15-z*QZArN^1A*Y{Go2uW~!@SrgXVe09P60wlbXJ{_WzP4c`w@2~9h zH;UMAzwGzv%PS?ftZ@TAoyI&Y*Yyng>T@Ee``*r!PdiJG#Of`1X`j9tQ;Zo)hkW{) z)Zxf5y4~l9Z-?fLuR}KKZKqkEWwu|5n)6xaf;X)W$Nf1vtFasNJ*_)@4HC{KnqF58FTFKU==t_QSpone$TF8+|$oC|`59^3A#*@pbuL=aH&qQyLDfKgkqY1rSQ$VubWx-g~Ye$2|vTn8DD37tM02qJ3G%ky005U zhpoIy`8M5GpLTew7ct-Nui)5NxUX@(L-#c%<-cdxtNZj6S%r_&Um<;`?$bla!VdB; zpuS7@=|M{&f9Lhpck8}}R~~`rG<5U!%*x&HLi*d;JYv?!oXrf89L) z((nDcuj>t78U9g!*9OmnIPO61*L`}_rM!Cc&Ifc~*GKiT^9TK10GuQIL;gBJ{)qjs zzeASit4@HA_&c5R+&3k12XtQ_PkC9}f06a*yJQ;0{xN?S#)8+=Kd$?Fr1!ks{-D20 zqi2TWZ`*T;ow<+sH7D(t*2}YwkNdU5v6*hnq|?0{dexWZpU{1J%waR%9N&7#ugUJR zl*e?R^lLggd^7P>7Jrk7|4Q;HzgE}NS&QhO)_wZl?5Fd;CYjqNZn80#c|up0HQ?_K bySg&DT(WCRJe&B89#VgxnCJ<~pD6xsq{62f diff --git a/packages/sdk/typescript/subgraph/build/HMToken/HMToken.wasm b/packages/sdk/typescript/subgraph/build/HMToken/HMToken.wasm deleted file mode 100644 index 63e7e5195971f7768cb251f3ad6b11e609043869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43966 zcmeHwdz=*4b!Jsp&x@Ld=KY4A;Vl94egNW81GE@P2rNeO+oNWt7<#6sdzkJ)j3Wyy z>w#q?VOiG8*v7VOD_OkJCfiIqf2NVMN~ZdF%x zGr%C1cK_I&=ALuw-h0kH_ndRjy|=ol(h}KzUDGtZq2hLZufF&8(B8co0kS%B#$H|% zqCnGb4-{c!S-Q>`$bY=SF6p1@o}6YNZwmhf8!V6bkDaKDr);azYvkprsOk za+Ki@rG^1y$VW3uOT%G(Kns-^pep@l*|(rgOEdRs*5OJ*$?D972n>QSK?y-AK^Z|g zK?T7W0+T=(M3@^(FpeNfFrHun!9;>d1d|D-5KJYQMlhXV2Ej~%Sp>5Q<`B#!h!Io~ zR1?f2m`|{PU?IUGg2e<&2(BTxmS8EtGJ@pd_my%1imQnC4nysd_~}Kfv*aDP2l$ho)Gv0fj<=ZCjw6j z{8NE{Ch*S%zAo@b0)H&cpErI6*{z~BA3j8~P=LP<~z<&_87H=-k#}b+m8mXkWjrbK}h&?HwQPY~Nt$V|OOf-6^|cFpyA()Y|CU)#<(edP54BOPWM-A%G1H1!ELb(+(5TYq9OhvhLhnCQx_Poz@DG*?+ZDW=bGn!95cp92LJSYyVdqRO^Z zrmN4G>6*f&5$>}VIE_Czm>9rdc*PMF4`#NjC8wPjXwK9^VsGqoi)B!{j=5v;4ZX@W zyhmMKOf5q<=FNAybA|M&-N$hLyh}Ip`dBcxsFfPAkI%w6Bew8ZELu8Z0~U^?!o{xZ z++t^kQn^bs6U8oZ?W>yRyOhdn#yZ`K!`|9zTsy9ypsv|iT3FIhZ!9Y;X>K%@7qDq> zHEIf)w1Z7;VF}pO6_$WaeL+baZ5j$o(5A6qHu)xf(=12wo9)D)3}-_km$=35vXj^@ z8qKa6^404HhX-<*O^NJIqh)3>ttI}iJgwE8?Ihi75B8<(t%=-DV})zfJWI4sb|(-g zw&fCiwy`o+%ywG}-PzswcE&0<{N#CTOZKD_xuHSZxb7mU*6$oj_ieHh-5Ahn*ENN* ztIN)2Z?uQE+JpVcEH}qW_BF1$R4YzuRk7Bc7p&Nj9JJMhU*|90I;hNA@)vs& zwpIBC7#~Ut55@vd3}d}JIoMHrD3!8AR$q$^e&(u{eQtCkf=KAMW!$g$^@DaIXM-#= zl+G!$8Q1&!++Yu+GQ(~hbXshheF@2(`gXrv+*R1AyTPwhv9wchqhDgHyBni$YHsp- z-v&En=WMTXvwt|MvT!&zyAjTZ==`U7ARWf3w>^E@D;Xq8>zw( zNZa=Acq-Ae5l45U-<=gcD%o>ojkLRMP*t>)k#V;(ZW)ba3>4ecF`coiu=Dkq{((eS zt}U5UIv6abOK0tL785dCOy^WMlI5x$*Huz%7#cwEh1PD%Rm2r)sLgj538cfJW zZFiya)F$VSLR%F&k+G*xPO0URX$+50K_QG!7IvN&>bKkpsU&yHZ%Sr!#+}77sDU_R z{#4=Qi`%wwSD`VS*s`}!cdB$tIyJ1^WS?F*lWt1(?98dEPwNW{^eR>BQ%P*Ytz0hA z)#r+9+^rXm&z&^JXY|4u;Z|(M)+=e;qZba*t=)#3ODWs9w}==c&uz1F&baQ=3zh9H zx%cbtBBr#8NjQ*!$F$i!$+Q~Ue%)O;3Y%aJ;hv{skMUXEjirSxHm183iwE>V+c6e! z05Xj}H$tV|?MQy0sB?)T-J7#L)V7d6SY#A0&KM6B4Z9=RZ)bCf{sH4*z0f5(k^{y; zz0mr;xGxU-dEJfbYLpoGBYL45b?j-&bPpR}C^E4d+l)tx1jm+C+@FrF-Opxe~VPpA8*^uk!T8T-IQk1cxnQjrV!^v3Ow zy(ecJ%InD*yu(iHwv}6aIq%a>@z%jiX2+HtYIkOQMR%j9Q{9p1F}|8tp;xFP;^DlC z+#25NK+NP3^J{rOy0}u2e_eMEmKV3+zCc9Ynj18}p^r&+cV>2U=HPT+yEGmN0x znv%}Ww0(zG0X&dQYct9^JBQNDt*z+n?8>B4*#2tk%+AiiTrSzUJ(0DIr}ff)yFW8H z9MVcV;hVVkY*m!$nx&iif-xsQwDMkEFWDQ@tPAhH`>t_gc%5~)+&WWkRavv6nr6<^ zstqgLTOCG=iM`gqE-TzuUD8{vt<|bSRy1dgV_~%p!dNJ##q>T4YTW_4-N|UCX~wkqTFi)*G>5cU*t}5>QHpbgQv4XVT`2}?qP@{_%F>5^ zwdPPbCa4^}>dm1_cHSI{#tgJGUodrJuYukyW0$4HLNn1b$D#LDLBi@VGdj8sFVnP@ z8X8!7Usb45r%WK(7+wcrjBX3*V*26`SZgX5X3tVq-W)1dxk~o0qhm0ooah9^F2|5n zzALJ4EFO0)(lTf}%jjpZI!Pg3@CLyY1_mr@ z8=qGj+m+{HCDydvgGz%2vh1uxYEVdJx`h>Pp`+JGbqUE?jh2^Iab;+v0bEwtkSpwj zys#nk9;L8RPuQpkTPihqVO8N6x6l!GEQAF)cw9kP-4hlpF7J|}&xv^v4G>JDh~=J$ z*v!h#S&7_O3d8;>CD#I(LxxX;3JVd=TP&5C_2936wu z&7Rs(qFZIV;H_o5;u6J~Luq(pBuuJ4a>D}ROgou>2wn_hTnV@YV9tfDa%avhF|-zg z{gn$Pqc!@Gpv|_@m||R-rPC{0ms})VEZkcp9~atQj5ORkl0=llYoUbm%fS(P^&SUE z`dEm|JmPs@b(yTi)|pBy3uRdBVj5PsYAuWpm4IhStc;t0LY`O|u@<9g zZ>-eEy}A@dQ4_0lDHb&>QDIp`-KHVxRn>D{M7>WEEmr0Vt)V}cMuT6t;t4S#vH9bW zuG7!-jqotdlKlWo+)InX)wn&t^19ir)K!}hMjCRex%9aWOY;p4w4kpl2IWpUJQy2{ z>JZjeZeq|QqywWnr3_0wC|Hch;ZVpD$-;8TQR!5}1M>~1!^0}y!E+m0^;PNg1lc*nv^JRvg0P_Q3Oy0Aix}F1J_bs0NOPag z`HN3XgNs>VYbqRp8#z;5PIoV5z*f|n8Lg;>qj2sT2Bs@5dE&dkY+N&1kaUHuz zvO^@Xbj%e964Pc%dB?h5Rdd``P+=AQ01?Rm7_>02VfgSCGJ$48n87gv z-~;edn7kJhSe<)8gjRjhG=izc`KUoTFbKq9TWtKWwKj;t=n(@A_f=vNz$+CKAcKam zpl|bNSRVsRfD0I7DnlnS50Q--(Q!n2GzvDXWC>YGY;<{48>q!lpl<9wtQoL`p=>1x z`#`02)kOGIhtN&+7_M$+HQZ@&sJyz|3hm}eLBk>8-FG#fHcm#U_VHG&XdSJz>dGoT zR*ngZ1w#%cnCgPtXEL@~a6YU2#+jJmV2jwy;^K3|&)suFnEP=C-YC^MZkGj@z;VFR zc*a>~8SHf)*@(g`*nL@Vys8x8#69j*Ar!{SC^jQtN%29c(W+7o!=O=uV^NuREGi{c z8OTeEjzx%ch=uuMQRzBOVzL~IN^mTy5OqRsL^3FXnUWi4;s6BkV`T`7I_47CQkUpA zPa!9mFjh&10V*nrNYjhZT;7Liqs1!eEOJzWMR;OD2uCQz^a19a7{kCBGb9GZOw1?K zT&U}J#q{q~VNYmHlSx|YOuiO_T^x+Ud&Zlyp+l$-x_vfk9UN~pS!GHuON{bwLtuTc zLm#r_$QNSh06m5l0(q?>w~TmruchNC0$x@)F45xH1Ts8{wcN+?VzJ5!#5y)n#JWo%U9n6NX0X{H?KWv093L8=qmXjvd4>?UE_*6M&En{4KcA9m5n)QABj>~69wy^e1 zjn1x?F#POP>-<#fS7lbEY7?Df&O!^S>dbWO%na)}-6e;FVRPZd7J0hJBG?C+zvlKw z1!ZV-CeOOCqNUwXtz+MV<(yY~U$n|9+imG_OgL;REJS?Jl;m4-3nN!vOJ&KJF*Bmg zuw;XUJoXYZgk@D2+Jg;mKqrQBY}vV>BU2S|`l*iJMYqrx_AyBCAQB?thh=lcUaK@P zL!cltNX=P-VF)pqaUkwBJfN5v8>+?G0x5*V)C+H-)H>u=mp90zTJ>Y$o1k;*2Fn|Q zXS9mkqgCyZ5J)a6z7fTAK-`GPuRC*KI2963&ZXsFF0?$hUcB=}(;loIhoy@9djMf3$B#j7Z z9jfka3UMF%hBn|`x5e(e2ge1DA8tdj5hjo$j}X@%@?fz`1La7}B3n~=k~M}$4@Kd$ zSN*BBB~pc*sbW>zi~BzqkvPjT$%oBS=rFp-yg{}v`HcxEs$6 zw)s&3=jt%`C_Ld{V~IeEDIdk2prRT&pkV~@{E3YZmntk=*kEFvtTHeaxi1g~2p>2t z&6FFQ!i&XW9-62@YhN95<4ZK`DnzSlW$~uU85tM4fiTwLx@cu|p>?b-x)7s2ImR7B zDaUZ8j$>Hi8|Sy9+?i_8InfZBKiVJ~iq41d*1-nrKm#oi+Kp3Pw9;IO0rC2R33xNC z^M=3qnFi~$zj=vuURg3a&NNSkLdITf1GK1a9h=0x;s(w6L$}XPW<_;4iW^jPr!ejv zS478F8<?p|nydWyy*f9$Rh*ndY$%;+q1Q?1%ZVQd}25+M-LkEP2$#Hk78VT@1D#kOS;^?Zc6#mpU^YaN>F(>Q5= zP^NY*R8lB94?>q=>HmW(F2KhcWdXj@_T^yHsG6M_U9)GKN5ySl%czGq^tLwuN>rlkUzX~@UtSQdq!{YUwD%_QpT|43%7%)&#+q$c5Yzf)Z1dz?* z4%OL%@@RnIg{sA&X)p-Rh~enO>JX*}=KvJw^3~OpMJ!ZS+y`4k$CtpK`zAnvm*uNp z1>eJYzK5^KS8YY3lSh`(d#!zq_%l?KUvcj3YjH#1v$7%oZFeGtqI1N_=q+J4pu0okx>q0ucyp#6 zBRAjn{*PR4oV;^lrN1LmU@k`+BoMf*&#&ZU`#r;5@ErLWepiE1gFcmNLX6KmV94re zJ-ViFY9EqoXKFt!7v9u9xW+oL#y1)S&agFKrZ%Uc@trE%+mNY^<&m@1h=uc0+lY=w z>jf9hXsn2ig&d!n9BsNnL&u>fN1G8mU|eTzxOvVE$*Z{$3tiUXS_&M_y+Tlj;X`WO zRp)`VG~OSEFE;$^&m+z&%b%94nEoVol_#EubOpvg8g?V?3nZF{^##@!dmU^lwAVv^ zdp#9a_Ii&9`&W$mi3*@7) zxIoA{57FSlFzuzexKZWOTn>Kk%3Rzq=I7$fCPx+(VFPfU6$Q@YUSWq&m-_Z)t?*n7?tdC%j1?|H*;K zf#W@It1HiY&b+Kyr(gCMP%=)DK#zV;%gxx|#eT*E-8{Hg-0xmVcF6t_5WXAtp;LZ65Jh& zVA-}p@d)BR?$<_mTQMBR7pyp2$0OW3m&PNdKxOer8BlpV!u!M(@kj;Gn0RCikQtBQ zcxhF}BREl8k$40Qv3Mi~R27d@0aeE%)j;#&5p2<|`SHknpat>B0-%NQ$U>k+@yH^e#qr2upe6Ch z5}<41k!ygijYqBpS{jcm1zHx5ECX5|k1PkOiAQRHYU2@{{H?lpqz*A5?fL6yN*zZ_t z;}PsC@c%*Mk+s0j17lKIF92J>-ve#~ei3**@JqlOfL{jQ2>c3g9QZi!^}w$JZvuV| zxE=WWz&8M&0KO6U2f#N0{}6aH@SgzR415xJ3-F%;Zw3A{;12-*Iq)sOuLExb{t<8o z@Q;CS1wIQ0x()c3z#jyD6Zk{GZvlT8_%xj8Bfx(N{88Y)0{$5APk=uTdPSOzXa|9eiL{n@LRx1;B&yez`p|S z1O8j!6!6~x_XD2?P6Piva0d7vfCqqo4ZI8ZZQw!Re+13~{}XTy_@9A?fZqY$4g4>_ zcL4t@@E+iQ10Dvx0Q^bde+T|8;Qs)=6Zl==PXX`4?79p1)4)8%-VMA@N9Hrge43ei zkhzR{8b1yUdk-3kV&mwa_GY=rMpPA1g^I2vNAoBn-4Ej1aA_YCwQCSUkLt{Kx)r2 z_iqFj2>zYmKM39>*hj72P4F3ldkF3&_!VpKW9}cAyPvtgWA2{__Ve zc!uCB1b;~I7{UJ_z^}GV>k)!u1dkJZk>C#qjuJde@MVJM3BE+|6u~zMzD@8gf+q>S zPVgMT?-BfWf-0m#ZsvEGd6?k85PXl|I|Tok;0VFj2>zJhFu{ui-zE5;1TPW1K=3lb zs|2qQ94B~<;QIt82sHI|Lb+*Zx}-VUyl>*J7pnC6-_)%Gr?mMR?qQVA5MY|Wzu`Wd z!VZ+1`gNGAmkM(ffNT24zMm)2s)W$=liCZP>#J(`W>MA4oqHy4n0 z4$@tyPiot>8nnp)W&wwAy&O1;-YQIe7J92NCz7HPX&Y(=L6Zhg>xim70QYWJJosFZAu?1xOz@e$L+ zMn%&Ohc)dO(ix;^iKf*eZABVDI#|NhQih60CQLTaJc{%zs+dS#&M2;oR%tHbK&p{; zLIF8#nJ8SDjjB&VHCdDx_YP5tRRmN(lT(4NZ(IH%<9P~nT2#a zt$@FMMHuDQQPuo-#GFSaY|b(77F)1W`im{L%|S%#oNE701o!XJb_SB?G4v~C3&&dy zjaBv<3x%L1)TIV;6y@;Q<73ThSw0_$y>_FgJ?Jq5tK|gm03=8H7X0-B=gs{cxrUQuo9J&wlLBI)ZYH`?(3`2PoqW?`hnWN?CajS{M>3bBHt6 zfr+ZuiJs0q9a=|J?Q_0b+LK!7!xTa7QcRJF=5$In0g01{{=w;#KyCm!R;~6=GH0{Z z6ltaWEQ>Z>Lc^$O9hoH7cy5yUQMT+rs)di%2K=!OO_nh~Guewko5ZS|6N8wisK>aD zPc|o0j^=uN$n?$>Pp0i?#q}i(9bnkt;1nd+@CL#X2{=NzS;ZHY1N+_X+BinCL_QE=vy zhW1hIxhm1KZCEqmj^fZX)z>t$f#Y9_bel*s^33B8D!KYF?ugf&20iB8*=c4c=|5DU zzpI~j8OYWT3v%Xp-s@=m#B_;cr>2`(_LV}4L)Ij6N*|nMF^p105Wl31PmE_=+Zo>& zRY?uX2}d0>!}&R#2Eir*-O7jI0zY>@gALN>IdMx zGtE!w80+rKjCVW6K}*v&3T+h3$Y-gM&oXbNBsU|i7oE8=ne%_Q=*>U>Vkn`XB$0+8 z*Bz4MI-yo770KJNm$8n{HuXao>umEutkRlxAJWD=aT1I;kc=!n?&OMTg`Igz7Y(Y! z@w&K}+P?*(dnln)xTgcqAz=2?b7aDvo#QRui%_E$y<&;119PSI6LZZO+(~f5c9L-i ze*@zbmK_9|A?_TXJKA~2IPC5h5$!K1`u#C)|9ZK3%M~-JHE8u*DUQZu9vzRFeL5uS zM&iuzt7EaY1QhhBZqRXe!8q0qpJ?QH}Ul00v(AR^Wel;3vH-NqY^bMeI0DS}K8$eH=9E}$=g1!;- zji7G?eIw`_K~H}kjdwJGz6tbAplR-&eKBKl$7!PU>)XLiUMD6JI1L_3q zoh+;qpvMY%s@7W}KZ-t8={qQmVKlregj*m7>ZI)xb>8`OsfOFjM^yQ9bsmq8V@xQ8 zc2CufR=e9_6`nZMo`HLaVd~~ky*g>sn|0LgHAuHYYkgwbI{;&_JI^W!>Znk(|t# {syL_%LdttJ=5SFYm2*Fi~*t*Rp(>! ztdGe#R9}blT7!4fX_K}YXIl4u2KP2rB>3gygE^Cl+7x4 z%IndFXFc5cyP!DiZyJe%g}I>aWT;cph#XEdDa$pPt959k8Of8O4gI8e_8$$WL(RhJ zndZxJ8r7)IffKda?Co1UnYqv{3^SKu9&Nf#T;e9&s99gLpz0y0w z9OOMt{Q1u?r_l`hJi8LVLPgc>NSD{=rM&(sba{G}=<@6;^Q)rEC(!9=b$RLT-zPmD zSgp>2t35rQpACWW=hx#=G{c-YzS_Irqaw_u1hy_H#{1Wd?soN&HOiiAyg10yE~mdQ z;G9M)PM$UX#cL04^neKP-PJjI-rISZUO|2lqSRb>7Hc+fe`{{-*?&MkhONb_G> zXzK)N!2A^OsLXzW1TfitJWu_qCh(<&xC+x_M|-uJgRR=&yfI9y#t*8o^;&;e2s<_gJk%g zl+Q$u`~Z1g^A8*7qbLi7EDQ%3y#zmM0$yODvJ8osrvu^&2lJ~@b!|P0C+&}k;hKMB z@?8|nKt}#z3b8`|!f0>`4I)#W3ht&M!UdFx2nX@VetjzT=fF~ML^2ha-N=l0$?(Om z{GsJ3lvnt!&lg?agUA1Gv@ik+{b>j57zwX+eB&+U$ji0vU|h&GzLO=~a@p3- zD4f@})Hp9_;cHt;THgbqyxFC6?Nw41zx<_a^drQJVag{-cY`?$dT4u1XQw>9uwp_{ zDIQ}uW~!9ok5gP7HMUJiujoGV2t_>4F?f)QUchU4XQ#bu{5~c0RgBz~F$nSI z!6hbK(_`bw%y@!jcTKiyr`?~Z!D~dE_k_svdf94aF4JeHCvLdBMt3HX=^ER4y+uB= zTy!xnm%-D@2l3?4Nmp$b$J#@9GHq`1`rk+fJj@@jB$+b0L2t*SJ^QBObxosDko$Dm zX|(M$x|%tRiQUS5y?2MefiUP9>n=ZN6<^)Rq{g^>$6%(Pj}Mo*FmvU5Uqk_1{n2qPR$ncgtwZ zp4ZJqeM^_E3oktsKgEixvcttLy7DqAb6c;v>hZXg-gLU|3gdApR<|!-UX%Zq#uMs0 z`!n4`DLY$psSR3BDudOb#zEeL!Pi`$=Y!09VC6nmd~NZLT^=dEZi+-tZy)bGUfe3Z zOP(TL64o`nw(RS>zNI_oHMePI#}4c#^ra(N_)@Qr3*Gb^4u*SH?}c$62!@+%Yt-xJ z!drr2nSWVb$=1LaI&Y>c4UVJpuDY_|I6CjSD-VdHw|lJ!$kx7B{EZ2arK3qRK$eaw zD{l$Lf&4Egj0DNkk#lT7CdW3~xic{?pt-1~H(sk4y)_tB3PaB|$A2h5w(ctmWeYSR zNP)fg`%UZ!P~iL<`X&YB`=VWSu9zI;_+=HB*N{x<32^-GT@-96FM1K?)Sd5dN1jQi zeK44wE_w;)^nj+dr~Mfp4n|aWrpP%#y`5#|wqRMyt6F9S6f9kN`NF~3-N6WY`B#_D z31~+8UVJ+Dwm=2X2aj05mXq*V6_D?G)2uq6B`H7dc>#}GrrG?iV2m_EX!BIDVEg;l zNnSe(KM`ynYE|*Zu;}CO2mieIi~HUW_O4abVDgVq$ulnv~hXY5>UN% z-bxRDBA{bVo}moAGoY16apmt0v%>fGfToh-yB@zN7Pg6i!j;RmzdxD77FKv~4^$O$ zb65Cw1$5L?GAq70{L*^+kn~^56H{-W8?dcsEVZ9@uTNz4f zoTPShjcf2kLVoXM1-%mFU@sU(%)n+FAM}mT$nbnSj0;Q;Zo)2Lk$<)aA%9 zx+~y_?}X;TKuxwj(?5{t%C#kPG8?i1%Z&f2kj@Tea{2O17=2biWm- z$y`UcGoYh@@->(1P53GOrvkQ|a$Ge-?h1749k=bhfrd+UiruFN8YC3cE$P&-tV*BO z1KrHtl4An<9)ajI+>0Ivp0(Yryyd}Ql`aRj z?#Vd8|9m#>u2fH@-Zp3j1@`xVLtuE!&9eci@ z2f99X>}kt%4?i000^lCuzZk3&ia>6XJ%Z-4#R*H#B{3;Lr3jBc9q_65F26qIBy*m?kH^uuB!?9#-ZelK3a0wc%Em}a=g6MW25DW%&{FImInyv?MhuSDX z#t7iHW*C}*JpPrIqUMMeC^1m8^bgCv40TzWseoo3nriOVc&%AFL4d#@2ojVKloFH? zloL!Ls30&2DhWaa!fG0GVS?!dGYDo9%p#agFo$3+!90Tb1PchN2o@47B3MkYgdjpt zO;AIylwcXba)PS}RuHTtSVeF(!8HV{3DywQ64VjY6EqMs5;PGs6SNSt60{Mt6Lb)) zCAgMg9l>=3*AuKKI4%l&LEwu5|6Je+fiDSsS>V?Mo)q|Xf!`4L7Xn`q_?H5|De$iZ zo)Y*ifqyOV+X7z|_#J`Y6?jg@>Bj_`1Mf3jCG8e-`+Lz<&|= zYk~hN@S?!q2>h+UHwEq!^Se*r{Q@5lxL@Fd0v{6iu)qTXKP2!GfgculP~f8iKO*ok zfrkWsRN%)1eq7+=0zV<}34xy!_@uz61U@bBQvy%O9C%6K%L2b9@T9=63;c$_<1`db z(XwwXeNLaXt;g!=-qzE-aa(WKEj`^m@9yp1WCUixYh`np(Z1ZaTr8LEO63x{F>T)b zov~DZG7fhX&kV==6R});8{ANAAg(opRN2;es-JGEX@}xBNiH&uR?m#6Y7`AVsnRY2KN~XKF8d}x8QqR4nMs=^ubFZ~o-79zQ z-ImDno8q*~dk(`2?@foJ>AmT&tek0!6HTULIj3r<;I315s?&UD-U}PkoF0mVo#}Ma z2+#3q!XxVR`QC!A+|GC=K017REIArCW)u){B;u-I=4>y~joEZc-Jj+3MjEyUVRiwR zuHEreZfh(P8#d;w^m1Xoe{*aEwvZW9q%PyRtFBPhBiy`scHM2mu}lu@VJ;Kv%WaG$ zlg4~USsp1CEU>FPeHUv21y)p}YF1HUXENP4WGr-s!l4oFi3E_N5!34 z>}biZCj+!(ZXvPT_eik}O4rp+Up!r}aR%O{URq2oT{o63vzv2-^r+p#aQV_pS99CA zYDrNo)ngBz6^kdV;j&n{dcq34IgtuiIi_=KJUg1qU80&O_G)K*Rn>fxQh3c&yIC>V z+uDuQ(+X}hv>Iy)?=&?UwS{+Dn~k~xHr?$;eLpgiCa+Fqr0s&6y%Jmf{pf{Vve|2Wo8rlMF76iI;_Z$qEbPt}$D_N0D0V%P zGq!q*wvCEv8B&a9jdyyx;F@iBENTydJ@LL#TE>>qTwi)PZfx_Gjx*UFZ}(+A zur2a7Z-aRgS5x73FOk=b?{Hi;`=(ZxcX`Lg?&uwf+)hWlcRTHPRw_py@2RlI_2%?| z@m`0wxPu!STUw1f3mgh7z0aw%F`XSwXRXwj@qTB*=WhuEqt_W+zP zF`Y=Mf|#R9r(k$Ek;4R1rP~V`%F?7t`W)Ax=u}A#JJju?Fm^_BM!#cIPL)J|Jk@6x z#tREKr~46A?no=j9geG1l$_7;j9WZVNZYeVtsIJWXJLo(!>mdZjzdtK^QE_qz%AOM z4Hjv4G`Ev&8$(W5plFpXBpu)2x!K)s3>Wr5>UQ@>ld*v=?A48wGb=n)5_4sZv=cU{ zB94?X;)FBKJr0twt9VT9p))dtjc-g3kHq?Nor#>%LAIDKm5ryen2@<*I=jG@Y_!HU zT_we)(GfUbXzliNF5b0U4X&}fP3LDQ0b&oS4mE_L-n-kfb@xfvlR7dPS-&;8OqVc$~w{S3Q-?C3HRGzxMC6ydg zc5lBEq1jXOHoS?l{xJ8eOS=#p1(y;o#93umduW4o*-Q@3$p?w5V}$BmJAR1Jt&V zf23$oTt{O(R@CjD#Be;Diw%z$hx9_5=t+ziA1xYvkK-4M{h02!b=6CB{Ns9|9rf(# zO!to&j~5NGy$*d|V!ubon+^Pp9~s^U+#wmhio zC3_>9b@9zN-!yItZm^D&TW8CyYHLwg)6At>jbQ}`Yl5gTbI=;uWd(<7N(O7R^;%89 z3g@h8yji1zFcOGp5q-!4n?Y;ezI%3A;oUWQM2`e+sM>(j-5XFvw=S%%QA)*1*#1eK#zy){tD##;m7h=F?McLO?( z*wI>7NCTy|Rs)LYgP??ba;aN^%}$}N>IA?sU>650BVVyJU(rB~VE%r&eLtcNS;nrK z0F*+(q^SrP-6QvOq2TR+xbG_Z)N~gb5t)Ji_f|>v;g)WdATp7@6MEysmS*NC2Kf?nD zRl_`~>joxKM2|vXeHwcYO;k~Q4Oe*jF|;xew)EXK6v4T8hbrdutA>G8)5^u}Oifk|(N<7b!$82?AP(!+>9~#cJF0wjkV z#x7e}D=bDH(V;TizMw@hG2SZ|D`T#b6HSNf08@Gz2o2}va6~_M1vgMX6L7+`RaE7J zCZ_^CL~&)?ppR>H@TC^mcEG8kqY4{T9W*g~0hzOb4eD3=iC#}NG(7-4 zvX9jzE(OZr@W>g+<^mN4*%0nRm(pS|Vyw~hwHoXbF0VRZa9F43)y8_|xk!mMZ+Av% z&_I@rl}HJ0!j-`U)Xgc*P0U_a3e}X5oW-blX%$xnChEXtg$+2u&d3WJK889~FJHUJW0~I!a6N@Tsiuq2qX@Tj#7gk{76Lv?&kb!>>?6VObhvI->c$BAiE2D?H*QVo$C13AZy$x47#NI6O_0U*NSZO=KZRSa=(Ln!I3(T+H6)|JW> z}I@=7z;m|>=`N|w~M3yA2`u}kZUrPA7+R#ZI=Z@LP%g~+^MXw47R$IY$OPo!sg2c zqt&Hww9clbT91@O$|!azQc3Z4r`f7jK@_(MCD`1Qxtp6(Qk8+cv}kiv8YzvGxtp8P z4Vvt7WOGx3%?-jnESiuzQbt8EQ*u)kwlNStQWl;O(Gf9#Ep>@@^Ar-r1Tj;%qoJb0 zSjh(?!ASX#1k05Spb*G%MHUo(0 zwT#7B_a*eVj)Y-7Gp|_f!sMzwH+^#4RJGj!W3PTMLhQ0|d3b6K!qB{s(nr1X&{Rqp zu=Y(OUuZ-Nhr+TO0-kMO&$01bmVTug3wdEr4b{`0k&7GYsjK-U0VYPj8q}m4T@1QXlJX-ZSzrZ->CwGDpGh-}dUx00eBXAi7K0DVs zGSB)8{O2-{z^s9p5MHb{SZC*0N9J0;4Pd7S2NTi4OU#9+!Tr>s`PQKY*7LeU4he%M zB*Yw}dM`205MbISDW@K~?7O*T*;kcUsdZs`Vf#-Rp7s|jr9*<}7PA8{7j^(AA3V&V zgcl;yu$SV3%T6uXU1L;XLw4lR(r#F_ZoQ@{T(Je_O4oYmo7xu3z{+KvE88+COWnS& zd_Sma9p8W57OPb1?R)&EXN)aaKv8qwi~q9@b+OFw@I#q)O;C0biXnAD&LiTzkx5m< z<3JwSE7HJAAV~_QXo;c;X9Wtet|Lbt0WJpQ!P^cEY(xAS z*_zc1)lI8{v4Enm>#O!u-4ZFn!H{BAKZp$(dIXZ7wMOzmvlKcEuQYFz{k3<-)L_Xh zxW-voK-5oH65w2~LCaX6XP_CX7ts!~<_SYDMRZjBE5<#woO`-pNog4zx)xprPBPO< zqCuQ+V3Wsbr_+irh!MO{XawQq4ncr*j;x`foGPdjE`f0zueHwBPQcj^&O+7f*f-{L zr*^AZ<#6U6-r843&fh8EToYu#KyQYK3MV|`h7D)|I^e(vVnB!}gu5C{gi6W~tTr&Y zxkw8G9LB-hR>_&6@Z#+toh~(KovlM|dWnW5UbI@O#+aRD5hQiCyf_0(6I^RI$2XpCXae4X(K*rRseZiCI@ai^j-^D6WO$ls4#1sp=1;?H*J&|Fs_1Qg5U@oNKLTQu z>|YG;u#y5CWNsC6`xaXl7kPM-_J=sQp{KHr&|@w`A4;+CQ)3X)bBOj#(IFbb%n5vT zVSI3*O+3_iUtL)3c>AQP9qN#3pEuOX|0b40${1c5SjmX9+|q8W;pz)B;FUfUzQ!us zZRt@Mzgblc|DldCrI<#7gRAg05sg-PswEN#>lpAutpLYcttWIiT{>`{h1dpCX@wDM z*k^^#IiX<8R>26eiOCrvsD`SLtJYwruwsS+Jc5G#g|9(Ptk?Dl7TUor9(>?fCwxst z;M+iQotItCfe7*0qO zIO?e(r>U4HD&SG;bwpdLhgS<+Bd~U90atq*ZJJYRfS~Phc6w+nZS6N@ma(= z=`rTSPM=$69bH#sr*D?ob}HSr?er_QEqoQB*~-8ykc8O{>zG^z!#qE=PRIq#L|s2O z(>glS!yT#&S_?&OMm5IHRa-!9bPyy_DNy`0SjkL`pKW&G1)y9+Z|zhRHDi3ieq~@D zd>OV_!EjZ0;T0Mw1iVLQ$ynus2k32K2Rcg#&tCuI&MR zT`t@KJ-g02<24tV2g_tY0}!#mVkeph7@Os?yRi!e$rK(xh?lGA8ALb)<(a|@B7sW{ zXk)>EI#-BqF^KMfasvYm8+7-FuH%6GkrP46)?5wdGwU%fGMGo1lfgW)-a5R#XfU6{ zNr|}oQ>?ZOLxjPk&8Puoz;md>SzS~t`zOwT(qB3QiWmR`+F&nb27?UU4l;sKd9ri- zIM%*dj3K1Kh$i8EH7Km-ilWs+UK99HQ2F=Q*B6?=MY*<3VE=Jx*|mWS>#g(Nz9NJO zS}SZDfXj6!wV~!Jo&)43wZW|&6y;XZEfpQ8N&)K#+QSAAJXemh6rQ4UvfIPo?B(Kh zkl^ydmATk1<1$=MDK55!ExdGd7wn2&V}zu1lU}02o*sHpWW2Q1wiH;cbA{lcz-nny zw&hBoa{NVXlIB{!c1+h3sl0xIEh=gN;KA+*j*1gFk^Z7%zDHgnk!`=UU7gRN ztP5?hUD?Vg+x@I-y9mx~$ybB2-h6(BRvbwG|LeD^fd~%qLE(9CEE^Vgac4e@kmb~MDpovLVvXFCg{p}9bd zqM>;}bE2X7Ky#y^1wiwnp(>#H(a=Jm1<}wVpvBS9VxT3_&=R0XG!y}f=&ESwDxek7&{M4be~oP-8TNt%21P4K)EZM?=j(EzwX5P-`^Q z3e*-2wE?w9L+wBv(NG7_+GuDk(6!OfwLt5lAuO2Ibw%7I(GVP}^#U+Q z@I_z?_|JhmflmN$1bzv46Y$HxUBF)hjsl+qeh2W^fo}l*25>j28p4fs32J;2`uz76;s4Cr>?9|PY3 z{1f1J0sj>E-N0vHMDGFq8{qc>|1I#Hz<&q)KH#&!?+5-Ka4+!pf$swT0dNfXHQ?>Q zKLqXr{t<9L@ZST+fzJW&0RA!X0Ps(McLM(uI01Yfco6s>fQNv82Al-`Iq)#>1>h9$ zFM!j){|Gz+{7=BUfL{mB0RIv=3;ZkK9PmE_j{?5|yc_smfbRzWHSiwbe+3=`z6ksQ z;NJlM0q}2u?*V=j_=CXvFuU#rz7KdW@cqF1bYvbt=00ZjBXd7947Nj<$4y0?545aIj)+3!D!F;0FY+ z5&VeYuL;f({FvZp1Q!VYk>GWLUlRO1!9NiEg5XyK|4bmIKV)fW&zalL+=y^krYtt;65emTB1emM!2Tm1Q`kLDn=6Zg@k7Qz$p}b(pW^ zCjJwPrmaM>v?PAhTAvova#{kplomlQjo%1LVp>KU(BfE96z%D9b2(`jBi)PggtlF) zL!BI87H|~TwZK`lHpSEzqO~dJOj1-LZ9_>0G%4`3j;iwKr3UfNkDv&I+odM+- zjwn>=Ne^WTvQrn<8C7=9L)i(M9NI>&E~?T4rrRqen=SicQ*?aPG!d+5+L5599Y;Eg z6fV)UdZevLBS?ozxME6I@#oRA4O9;!J%=JDl9$tyOAY*i@KSbUArhO~EhZ?upQmqf!{c;?E$-}C=Z0pYe>1wZmA!2_MnwC zC~|^#0Fn#aglQZLsTMtSZi_jnZUnXZQQv9XX;0A|nChA%RosVqY3*)pjTn?NOPW>! zC0X2MpRHq4MJp$#;)wy|TyTkA+AW<&ZJ6R4Q=x6t#8@aU2dA0(JuuN}W}NrmkJKgF z9EQX+MNS1Je*{K1DiTFtWO0-@1{1?IM<4>8)QsCt-pS(5PV|R0V0Z_^rhYS83}e2c zwY4G%TjDsd)qc>h&vBV7Y0)#a+=UTWGHsNRAdPhf+%VSX!saS+t3jf!Q^JL#Ga=RC z=|c7FbhC+6tC468No`2$k@ixMT3N<~^k)?Px#_Mepu@;P?&Kv}oS|BrVXk0{5hO2# zJLcZLfd*rC4hXL6qPjXT)0{#M0i-pUf-^{2VI6xNp6ps-K=| z&L@)@NHi;|ody;|ZUjxC)}4s5W|>{Abv;rSN_V1G25A(vBKGtf#kDiYDNzB3KO)>5 zKUa%knq}&6EazsKedKs2k~={*V3;_WM$p0ta#SS!F-@k^8v$)fTdND|yLOxz3 zmu>E^%of$1p6&X@UdWvRN9(*QdtT^9|U*phs%yCh#D9Y1wUDLfC zrAhQ|;*s$BW{kwac`_1D&NF*C67TvwMx)ZuyYBURObkB|ruE2e@imiYh&zHU) zSm2Mh71I{rst#5uS6gK!bZBBb(njfrGjFoEqKm_` zaPYjG#YIqyJQGM`sDHQQ=w#IbMeRheNNz%_3r+nf-0ed1bMPXX_B2vgo;U$URCQYX zw(IGyEP%Tfa4?kEZnNV#dIKL0trAo@6%HN;6GL`vky_OjxvSa=l&DptSW4@>s{O_y za{;{{!=%Vm0Q{V?F}>d5#mf0Ep6r~VFZ6mZMSpIwyG&nh&QbRXtx0QyU08>g$f!TN z#2nHgRzDK0-m8w4+A2_R-gD_=puq)nKrBp+^Z2Egb0ddwkBcQl&=#rGoM_To(QZWb zIpTU4*W*(8oP~9uaP8Q(;xnM+vJ-I^ntIHoi20aNukp75sS&9OsTrvSsTHXWsU4|9 zYBT^gpk4#&HK1Mt>NTKV1L`%PUIXfp3u`pWFE!ST)PmHC)P~fK)FCaA3u`pVZ!=&E zQY%s$Qae(INW+%Mg*BSxw*{~jsST+esY4{DG;E1nSffRLTLIgU+L1ay#hy`WO2pR4 zsRfC@ZAk4%9muiw>=~t|L~MzeH-Wwh^i80rO-{xN znnB+T`ex8KgT5K`&7h|}PsTc0K;HuT7SOkVz6JCxpr5SOw1U1B^sS(81$`^%TR}fr zYia|18|d3W-v;_N(6@npvR2j(`gYK_gT5W~?VxW5{ba4L1N0rB?*M%V=sQ5)0eV^$ zErX-W5u%osJ z`jO&DJ8(sdrd86iXdN73juJIZZL!Ccnk|!>zx_yzH+CS$*+7e?RnoF(9UNhf5;aY2 zvB#8}Et8tRjB2=T;7sCdpheRvX<4)mjxa}wnx?kcV-@9)lD?b~&JNIX7IG$WHqfGJ zm9#8c2S=ErL`_p$>@lTg%cQoBu9o=y`PJqY`h**hIHT!1>F4N^=s&1EN=~W)#8e4w z5F4N*;u=OIBib&kLR<+)vAo}nb!kld06fkbwS8M-;=h?`;HPPqTMPM@dE?J5xFb+} z&aE+9$fx#-e4KL)YAwZ;^=PfEQ_t7BF+Nvq#-G+Js_b;F8;Ma{N%RM$=TW*2o8j8Y z#RFW=-7PI!u2U`7xhv#*(Wbh48h0b;4bNh*Z9A{-zES6HyjO#tb+BG|JX!DZcpo_9 zE;h%{*H2cv+c7HKEfh(35q!|Y0}W;awR<(vZP40~jO^Wj5sW+c8QiO_#C`6j7=m4g zWF2b|*-kdNvaQ01sk`SI%oz-}c$#%+9sqt$%|n2I;?-!f(cM}WH@OlWY*eaibeV+b zyG&j|F}7%@8_hd(+}(}@f6VV=Qk!nx2n6s%TmJ|wT9YYORz{wUjW=%_&p22MAdFS02Y3@#V zkj7mnBSIdSVEivC?gv_3?mPzKUQNZd*3njpYM*a)qgpq*eCzvp@6Jl?`?=TSzFD2e z=66^}+oa#mx0y@WZ>^gUb z?OOy<@#EbyzM`s~UN^aewTq}uRbOY`MpfT}bSYJD^_c8iQSWu)w%)kTd{or?5SqBM zdJ7wSn^bymz4AuuU6pD}ARd0aDm{j33*nO1yAKY$;#p@Dn{(?Yr}BfxHMN8S&!p11 zBJnuGIXSV8vc{cQPJ!Ra8aE=nwUbP>m*-69kwyk^RQzO)5y-(8z<)J%U%>hEROcXh zBkJ2HKgU>)JqOM|r^z9r>V`kD&e)~rfb&mkc%aTR&>_rXmZOyect7qU_F@haBOS&; zJTr3rq;(W^c;xmxaQ?jEQigbCANUr`^C;fi%Y&xpfxjRIdRUb098+EDq-iojyiI0% z1}_<=V$T8R&yS8*Lu~wb4fi14Lrlm0Byj#Q!<7ZMUa{%U08i>!*g?F(RtyR_|1|6@ z9%?W}AQhg59YM4P9%~A%X{HZ_!-7|QpasYJJ zbI9mZvC;sCNWjN%#HIKzDY#b=L7qRXydN)NUf{GAk=s%rxgaV$iwZhKJq9f7Uy%$> z;!Yzo-4Vi$XV|GXaDR&D`XJu$+-0F6A9LJiV;v7Pc&$TvxsSYD>o&%PTq9r-jAvr_ z?|Wy!tCM}9QaX|Nb1Cs7QaWL|brdh0mhK#LGAEJI(cv?|6%I>a>va}D!3Xhn>e+0Y zo`?7*8{@&}t0*fVx`-RX|1jQWeWN4k{h;7a0KF88$bD`4v|Ue!(76Tk%pXY7L4fraUQyv|!PC!EZyPG&#e@l7U=+xQt9 zp9fa7c>Oms#~#sxsn~E_|K7ZH+RS^CiS2dUM-zCbSSni=Pm#xFw8i&&C#Qn9 zpdW0zY;C(2_DlBbJTKWVS^pLZi{HavI(a$qj{dS)(p)A7(MPw}_4dm9qsnI#-NlQf zrp%Rl!}5NpI)!R?B$COBuE|Jjzi6l?VJp)x0`ssGG1}+?c=nk zbYY_UCn{L?R=M(3bNQEMD{80^@7=3YuVB9X@Y{yBn=kvW!<*SgIL;K z;hc4oBi!zJlf6qlw`FqFxpXd;bjjwe$Y%QLhVdS98iVRB{iK>;?6>{W{rPI9$$;9! zJ&1RLD)SMeTyWJm3A(pQOQN)#^X9^;jhDCHov}o!E^fbIKA))-yIbmfIAme?xpHrMJfG6IWjQd$h6YcO||FLB!SLr`~wSg?Cn7bNS^GL$SJJ z+@z5yyh&+7W^#Wlf!E0vd!g)_4U;6r3Ok|u%+@wfl7szm50NZex7zE%=%BK7{jo9o zt)X@3l(z@<DoCmOWokrj=rufy;ojdS`ySXy}sP^9-mwF#zrM_? zka6bro~~QB^mcX!CR$e~{Kn1Azh`e51m(YE6MUyX++;yl-@z%_;txyAdi52Z(yhKR zv_F|s<{wAVq{}TAf>(S>9_}G7ETaKfQabM_~xAX07$Q{!8clguNxUYjP@M&7R z+OK-IKcYG_#q;|5h1>jPEw7MYG>jCL&pVH5 zpGQvIXN^y`>rS(!J}pW4elPR6-!jdX_xUqO6Sy{46<2M4+ZxGhXT|&dZ9}apZXZ^@ z@9p597k|~z+ri!$71f!1V^{mMs9o{ff!FxtzbE+e;Ofo(C`<)t?Q3rFlU+k=t*`u= z8tZ)J*Vv zBA+4TQ%N2o%a`}?yt&;cXOU;_exI}BJwD5=zRD<(!&;wqNEF-s$l|p=EjM{(KvvI} zMc4KEtdQc5JYMJ1MmH}%Km8?NHND>NvGjaQa=lN1ib&lz@fTG$_%t~D<7AQ3J@whr+kI4YVNiC5j{YYK-0$&8 zzn-&RyOH<)zK`PVC(8Kf_nkiJR8AlGUGew%xdDWL@ApYS^*LO8)4bQGZBCw{bp0-$ zRvyLG{hoTvr>Ug)=D)_i-6wbDu=Re+z0X%w$l9kPw-;gMKht}~I7*^u*D=2SMG%8q77eU{l~tE^#n z%%82Z8oN!SBgq6muzq_w7w_7wT>ss^I*CoA_`3yca`*V^BxD^N^VJs@F0CK%)i#7T z58MC1f3_UDdwd--#}Gc~(^f#)n#1*G{K3k-K98I-Ts1@X`Wkvi_ z^%9EdmK6T~dotZObieLvG<$PmU}sJkKcL6`^gqIQV=@s><*ZyT);HuB$$s5ei*`cK z2X$W~Lx=6=QT)m0L%OdF5AWaU5b zpAbgy_h0eO_&_2h#`uWt($=>X;URy`yvO;o!H?>`E;v1jk&pSiHh50r z7=nCU_vx%lS#{5z$NgO&d-imu`^P@v?*icL;h*r=2=aUEPx?D#dA=&7dD7qMoac@u z;3?hL^C>TD`w!ioew$RI*ni63h4J=yCX3CAQu|@u*FF8_cs3gwh;t5p+TW$oGsE%j zh+KS6?lXSPNh@=A9DjKz3)W}-ig0YETQlkOjx9UX)AA#_Pv;yq^Pbqi=lq)NE=xH# z_`F}!(cznkrLs7efZ=_?uhn%tYZ3h!-KYP~KA!&_iQG;xldZYT7j^YA6#Ru^Z*L}- XOZ0A!W#eDc%hjJU#{0|Vj~V|Bx(lH} diff --git a/packages/sdk/typescript/subgraph/template.yaml b/packages/sdk/typescript/subgraph/template.yaml index e86446aec9..fd5e58999f 100644 --- a/packages/sdk/typescript/subgraph/template.yaml +++ b/packages/sdk/typescript/subgraph/template.yaml @@ -21,7 +21,7 @@ dataSources: - name: EscrowFactory file: ./node_modules/@human-protocol/core/abis/EscrowFactory.json eventHandlers: - - event: Launched(address,address) + - event: Launched(address,address,uint256) handler: handleLaunched - kind: ethereum name: HMToken diff --git a/packages/sdk/typescript/subgraph/test/.bin/escrow/escrow.wasm b/packages/sdk/typescript/subgraph/test/.bin/escrow/escrow.wasm deleted file mode 100644 index 4163971110d898af996835754f4aea6d2d59c6e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46688 zcmeHw4V+Y0mFIi)sz0D8C_chh6H?tx0wmDipM(T1O;_k71PmncBTA~fA5GEKRZUej zp`B zuimSMhE9Ch-QRDQ=ALuk{W$mBbI&>V+*{TCjAVYuGz`P+n0%l4p!wi^p$8u{?lTNx zJXsI&(L`bn1qMNJf)OrH=JR&0FmsE>bz4(*y1#qJNHU!_Ch6u= zbn~1&l-+3?rY?+b$=L&`e8J9bw)3E)OQ#o0*V_5MT&lO&-WhWMV_NR4BbYVVs~b*_ zsrVAsSQ(M=fx%isnFJvMiy%x;Mo>;rK~PCB ziC{88gkTCmlwc~sG=dnxbb=WKGYMu9TtzUOU=G1tf_Vh<391Md5L`{Lkl-4EI6*Z* z4M8ozB7$oPt|M4Xu!LYK!Sw_;5G*5DPEbcsPtZWnNYF&kOwdBmO3+5oPS8QnNw9+8 zMuL?DHxb-Su!`WA2=IAQJXo)Gvgf!`MRiolZs zza#Lw0{=qbs{+3#@cRPK$~yf_;LipALf~mxtG^WZR|5Z9;2D8G6!;^7KNk2Cfj<@a zHv<1w;8}q`6Zmt1zYus%;Qti(OM!nU@Vvmk7x*iI{~++!0{>CqKMDM2fv*Yt7lFSK z_^$#l2>h+U-wAwO;BHaB4+wln;0FahEbv1D9})Pdz&!##Ebt=&KPqsqz{doBOyJ`J z_X+&Cz)uK#Lg14EKPm7jfu9n%U*OXMpAqVh+n@w9YXZt1LV|CU%e?@m;o1L>qhVD+LM{Mh=l1}1nb;azf{GD#iXEVBdjyoF} z*ja?RB~-e1+L^+}WG*>m&0FH9!hHYw!qJ;L*sUZJUvxvIHN+f75sTmhSE zA(!kcbS2YiYk?~)9~W28cbdC%-<(Tk^5}tW*;+VjOy!z%wr|k7#$5`xk5G?a>omS6 zmmJ1q_{15FolLbWC8wP%P|cju&feT>$MT?My~v%5Z|c{&3-9&5ZftLvy0v(bGn~t$ zPwYN|OKQh&=8duRnlY{PjD2*jUwFwD9*G;4U9tfSFD1fduIk)r=SR|oahi!>m%Hn$ zn-+(Z%DSn}u%fVcby)S&N(vg=tcKE(<|eDLw4|-YYAPYq(_uB2H0c4EmeLZCX)P@Q znYNOW1lqKhmY_{Xi8c9*zH@=Y`5lOiWIAh;h2))fpPfRGX{~U@P^|9CjSd&G>yr6x z){RwT`zq0Yt!XP=YiHN>c5X0jZ%h`pSvR?hS|o|~ss1FQvQ35Lpl#h8A4_&q8pGNB z#dg*z*ZmY}Y)TDel7*3+ZLPkDtFCP$nZb2-vL6#tu4+opzCJsjzs(-qXy=Afd4|-Q z_cgA#bSoOQuIO^@f)#61Ia?e2T7U7zk=}Hw4^*vgf3e45qS`mX#7IVH&=+`YShu*w z!GRJZ>9i7FeJ$4ciR)U9+2eWy;n2U9xB3O&m9vut8{M)anSx$6>o)(GYwh85cGUHQ zPK(>G9*1+Me!YKP#3N$sbn5Q#%T!j{so3D>SoQZ~7EaAZzxJ)Q({{o3D&OXxj;<`7 z&YiAD_ZCs~dbnV1@>gvd5z&IB!bslQ?4N?Cwmk)V$hym~THU+sz7cB1hLJ*FcF4Bw z_SasdviJC>FZ+R`k#F}8SX6Os3h(fD@~iPXU6;+d>D}dB{=;2$Y@CoHgL; zl-nfLZ)f_P%59~U>$ClKPiAXY_e{C2Qum}i+c~d#duiXzyY$YX`wo^)sJP6!HtjkD zO}SWm*D&0o!`jdo>5de(acnE&h6TE>)`hI=8+?U5{nl{l45V#Oeb3b8*~*{%F4Upj9bPKGjS&U0khQn61HtUWR|Xn z<6b^!mdZ~TZ^)!awW>U9mRi&8sex?;UG*XJx)Rw+RaZKNP+S!X$-Y6CW$O{MbdIj! zSdW^eR^e8xNBEVp_KcaOTe}IjSZUk(@R-h+d|{Jaa3=NTw);`j-N>|LVTi+7 zXw4d2DrNN4_L}bQQQ8Fi2;-j3yR64d*PoWQ=+5+O5+5^5*N^^y6A)8+{1TORzr*>y zF@uXI>0h58ptPm?$Hy#+=WDD_jG6Z4)DZ5-l0(DR6JwNOb86Una?I-ce7`8|Cr#J0 z>seyrPmR%|&AZlQ`$w%$jag#XzghdoFjVwj*3)AKFV;9({LC0373;Cc)~C%1-e^bn>xdP)-3gR>k$hk2W*kc=f|F)xU{OvgcfXz7 zX=}Ckd{L*J;*Gg%cI$?%IzqGl&~!biQ@uGkV11z|La$JJ#V-~`!{x;-7#j%78w)w>S#xr#e@k}jmI74JxT6xmXqH~o*ib%%tJ&OW$S5l$d(*aQ zly8B$;UaqDq-iEEGAGsCux$0(TW`C4{p7FQxAsG(S@vMuP#0c*{dMcM@M?9iQk|(( z)#~b)VMJ<;8cT(@*M!kx=5{r_Lxl%x%C^@StBjhEiWSr}7S@>P7!SpbxH+gmX1m(G z`+*%QwzI~JoAJ=Ps@1qfU56&7lQANZNZeRt#I1N)TgZrqBe$6$a&fMdi|^x}lWd?S zwmlXlFM}A@XbXkof+{hp*%q3@!P`QyxP^9+?}tp>!eg}VsDYlw3Iix^Zbwh>Cy%BI zt#>O;-6jNzA*VW|tYX9RVnYip!o~7Rr#x;9Dr-kg2tpxaGE^Ld9*{CqdayX8+#cj! z+E&I*H3bA&ZK_Hq7gBQ_(wvwyjA=AWqq%6jpxAA0F*mE2i#a(?KfFWD-CkpEuLcWP zpK8;BWK?_umcv+Mv|DIHRH+e0;uD96qb>T!(Q}H41&i!9u}J)h8{JTpuqum9t>)rH z^kaqlC^J$qH7Pc=26uLPdO%@N1>&@Url`0w&?2Pbv1!y3X-C9%ajzX0k99^Q%Z2r^ zFhxyq$0Q3=RJ8Ol@%>}K7Zd6mjD|Wz$Dt6?+dl(uW-asNynb1-T<_hpOn!2jo zjvf{fX925Z(o#le#cFSOjL(CEGpKPxk_1H z=BCibOn40trIP{E@M|tb%yUP0HRW>&O0Zbnt8#mUW&r0fwlS1THwn8iyiCpAnbQ)qkmX=yQiDPY(=D9j7Q$@UC|Xm- z?yN@3@kKl(bg2nkmf4WY?2IC_A&ed)voVj^m@r!|HAQB1;bgbaVRkB*MR(A+0<)&a zEJ$2lB}JYyi!55`FqbS=dMs87ixpB+WKkDJ+(L)NX%*mV z&9d!z%Ha6 zCAR={3M+2bq=>zW(G3cuC%rXF#c8vxG-k{3Njjslb=gJC#lzdj@Q1zC*p8Wow_l1Q z^5M16%=!7?483}f0yzDqg|8nl4w+IjnHm>iJM3aLl`6E8p?4Tj_v^144BwAM85&Gi z4Q}jU)J(zdPzkAHq7vmpw*~i9)nFf0l}xu)sSp|dowP+cAe0XZ=U>tjwHEvi~rx8mhE zci@~s-|U<-LhMzB?uf5T&KYF9%sXdD=Zs15a%^H{@p5oZL7;hgPZdrS zm~Xr+HV3L|VU0r|&vA=A;7&P_cm)p^mB`0%ir5~nh*u6GY7E7vFrY!mpm#`yu2g2U zt^{V>HW^}tPU!jwcEZT}B#4e1)fTliZb3v?Se}lUg+NjF|jhnm#Z-^RSp`E znzPsQKoC+VapH*0LwtIjX}&*hez_WZi!_9#vLRvzIXS5FSApYsmuM#Rip@^WmS(Gk z8fGvaMJ%~9j2sV5IiN7WJFf{`%ueYz$L6@>FqFg;Js~q25BY`cm4qeMf?JVz5@KFx zNLT3hkt%h*N__)g`q6f^)T(@z2Th)x8D*bYI1TGUCkLRe*;!*%AqYPBSb0zQLAZ{e z7#dIB0Q;pc+4pT@gR-C*>TJb^?c!c`fB8pY-RjuGH*HYm(r)*Yzc_7efYUzJvD*j26g?o>NHxQwh?-3Qt9v-@^?151j10tZ4%eg_ zwj&6}jL;>lmPn)3 zJU77uMo*jPgOPH^mb=;s!fH^95l<~6}0eDniMfy3I$Q_qh3>vBDf?v zq6pklJS=PAHl-_d>UpX_y^j<49+znY`b{BygC}LeLL0i{p<-QdPhms@?T8m2Z}s$`>rN93jEjAL%x=(!fC`TvlE| zuNjMDEZU?hON4Q##>s{cCP|-JK+?~bl8#lo9YSog?*_IxS<)sJf^{BQrcN%q1Z7Jo zORpB6d9N|IN0V-{P)u8YCDsV_E&0Ake`K^<&R2O2oH&`v0SY*A!| zvy2xaD7^#1|FysQ`37~)-@Htn*9#S!6^RVs0t8BSa#rk`8dFqejygG4{m5Mg-ULvN z;PK%q80}&*u$Q?d%)of>YIk$- z>Evv7cI%GKVPEGdRuP$Is3S8G`5bHp=dsGjm%?W3!P-!@QEOIL)LPY+TB+v3J;7wS zpn?#(@QL@9*g=c;mQpxN*UbfjBU_+RT%$!AEzxM1MhzOZXw-orIkX8D!fKJ4hoRv% zIW%mDo)NnOhZZzN7sfQ2rO{j^98hTB~P9r3B;(TGo$P(^!h1VR*# z5ue7$OP&ym&@$#~gcaoz)Iyz%wS^Yp5y8!pIC&Czb5xPUGF)YI6kPg<^5{|ADb11g zu{mssYdPU+35E^DFf=m=0WrAit;J*PYggyn)hWl;;)Vn^7spqn;oiYcSmdR`z0zjq zC)Vu9iiuIv&31+?9l_R01dE%?Vz7uAV>#9wnNf^h!6g)gjsTuaaHE5p9Nf%OF9I$G zww4ZTkK9P!a1~6Use_$xZ~6xIM!Klqg>V547e)UXS%4OFNk>+yBR8p|rt5@3AfmgU zUs2lqY0KAraI6PCcr%CiambclbGEFFi={y)W)u6WTi z9q0pdp%=Z5T8oyxd+jfdx!1-4G_v>#QUAfOk&k&-Ym={;-dHGUoTK{jJc zLQ85wU{@KpO0#4(H>s|vYl17pMT z7(K!p&@0C}(Gnq^bHj~sP{fN-T>Hj4b2O;Nn1cXOy#wBe53M)4*Ocb#etx1f%BA{+u}xTS!{*C8wIYc zE%Q@#tXilVYWLU4(L5->YQXnY0tc9sM9Zw zRod4p9HrH>ceM6%yjD^_X`@Q;kQ{@<1u=OJ$GF?5U&{maML(ZuQ>WW}aRnj+tfJPa zSQX@0LqD!hy{2p%dR5V6E*t|!3CHSV3$D=6bQ>;=<9Mykbf_aUuwaaXVlDbq6l<0E zqYV*=2{E`&4f53P)HS1~14_CS3U*TsJR4*S+i^px^Wt+3RXR?Cx_zC~6U!F6Iiet+ zSY5S&gvrEKp}{K6jXK|nBPwDS;SGLF?K^H1ACIh%${4{m3gqwB;kDSPd)t#3H|hGtEZmT+>m6y#z%Hev_vNWuWQPF9pNsDz{=90>nmD;d9xN{ zJhlX#yQ@P^P=)>c6;ViR3=%8(>Tq|Xl~v+6xu!$liSP-e5JNE&X%r2_r;a?Qn$9^j zoRCk$_u&AFxC&52=)_gk=%J2`i30Zd)%zD=z4g8DiV*jyw=QtiTR-{K`xU77EB+P4 z@guC3I_iz>$aClr4rONPO#lJwET{xx9B7Ew$kbt|vr}Ln!ieztpn3g8M!{}_YP1wd1We&+r12xgWnMvwng)*D@J+jRV?YN{w1YRUT}@_ytH(Tk_O4U zT&S(=7rq$vbDlvWN_ALgD1CF}795II8RDIpu|%v#;REbqUhfkZ?HZ+4DJF|uqYg^l z0*gCxoZQAL)yd-q9#4MDc{~sIg4*xt$H?z2T$^I#kebYqt6@Rz$kp7pdca(ddiV!p zEMTuLa4g_S{p4A|?jOL1ecvyx>X7;~w1ReeX7rpcaEQF1pFAQ*K;-ZbN{CpBl7{MD z<>(ti3+$Y_kP3#@Ah1A6wRMEGf$4Lo+Z~#Z`x`X&?BohvsOD}L*C>2rQ%^xo&&}Zo z%p#(5;v1Ju90{q?7qN*&aeOC3Cr$|6!6v6a4x5+iLN?tl7qMw6vRPb$*!57C>2SRG zW|yJPh@^3I^5-**(CYvH^ZQ94&KqA?bRr5PQlUhY;iHv^BHU8p1U^H>U0foHZAz6V zqUAspiD(5-Wg?0%8K_B#=p>-YiRfgYNFs^=Urk9waS5ZMiD(pPY9cxnXj&qQZ%nCJ zB8oc`H9ZlX4m2YXodGm65uFJ%D-q?F)viiJVKu5M5uFXRAQ7Ddbaf(%tyIlUM0qx! zlZeg-nwyAL0nJN9c~v(*5#>$Y!bB7|b?TZ#^ctXeA{qy(PDHDLY7)^JpxQ*V7HCl- zipv>wZ6bOt&~=IEbwG;~(ZxVZ5>f2?YH1>hxLRGGh+YqLLn3+u(6U5y8PM`XbU9F6 zB3cJjpNQ52H6)_EG-ymj8-bbwsSd?g9QL@U6fnfNul-7Vz!B-v(X}{0i_L zz$bw>0DlK~Bk*^D-v;~_z;^<_3cLyUd%&B4zYlyD@L4F(-M~Ksz6bc{z;6fs1@Jq7 zPeX~`3H+D9?*jfS;Cq4p8u;D7XMo=W{6pX^z&`@M5BSHxN#LIV_X7VExDWVmfct^} z7T5+p3%nKhXTSr%KL_3h{0ra|@Hyb^!2c6?5crqCY2d#D9s)iOoB{rO;4JX3fQNzq z0eA=SuYq&G{|KB1{wLr9@IM2O0KW#j6Zl_%?+5-3@Gjtg1s(;y0Q_Fy-va*u@b7>h z0Dc|#eZae6T?l8@2Y`8b{t)nP6PXVp^8scaM&==AK7`B%nRx`6hnaa4nGZ3u2bo8h z`7kn%GV>8+_Av8NWIoKyUSvMP%wx!Wl$nnqvzM92k$H@neaL)_nU5p$I5VF>W*;+8 zAoFo%op;362xIMDQ}f%}C#7<`sgI1RY2# zkX9mnhXr3H_&&kcin$*!_df_u6Z|E?UlIH@!5M-d68wl@7SfNI`3b>K3I2xQEWxV; zKPUJF!FhsT5&W9qp9ub$;AaGXNAM2>uMzwUfzz~o+S8>1pkHLPYDhX93yy!;Aw&{68tg29}(;)_&mXXBKQiyQ35jcX*csFWk^9s=j9gHvPXBD2<96yhOZ5pE>`5vl^>qr4gF zn0$;iNu6m{Cv~VkNu9@Mox4vlx{FN`a*@a@Jx?H7+*=tjSHjpUBlV_X7)y|pk;YHf z=rfW=!AK#OG2+N&@e@Z)(#RPDhK>D5_dQh^xt4twBE28=DWlh@N1Fm*9&iNDb-;Oy zHYs8*z-W^qGudMb(k9g8&?f_$>aeaqIw=xmeK}GOY6=(&HOmZjYEq<%HM5Y`px1!0 z7M%1UHw3=Y@YR~ap2?AEY*&fYE1aY5z+@Ty(B#N;)=frI7(0iaqd21J+T*^S8SqY7 zsMEUctgq)9^eJF$%<6)!-4pR<RFQnV{`_Bu{0i zSb8yBb(yN?Ikj}2%4js&FxL*?gwZT{8@R)0G1^52Z5VkC%Gs(Hyx3^jho^qvUZY8# z+X1_f$NA*~#(@#+nHE`2uC5!0t6r$XR{YrD(&6yAY0~rfw8#zYxd@5#??;OyT`p|}bw&I!MiGvO&z71u0;9itc4dQr8LOnP++%_DTA=5cD!}C70s6J50 z8uuH^9r_%TBc)K2M=2Fcoz{KN&hQrP78!%%vn4*o!-(ufQRunm(Lx=VDQb0SW@L*A zS-c%-6FB8!r9qi3vm$tUmIBJyo6E)-^`LFH%z(5xH_po&h08&iq|lEZZ_aJqHrVSI+Bhn}9C61$PL?omo z9S29+b0r~p_ThR^1wDmg3AyLI*#aK$^i|sNToswe5oaKAUK~%a^AOZh?VYV>G&?ef zt>~V#A1q)+DY+rc32iv1*`62P0*-PRNuAbpXJ>m}n7yc7a3~iv^*wVgrml4fPUP?$ zp?-9ZM`4SjX{bGcS`2e)PUIf)w-Koe^QOznVgyeE$FAkrmAoHwr_*wcm^9dDE#@~@ zo8eqf_oyFqiZpV{qhEHvKJ@2`C0&Pc0X=Dq^CFLnG426-o|>l6n2VB?#qyT7RO$T7 zO`*`7xU?>N7x(vXvQ!c6l{h)A8dUnlFpT-Kw1?(<-gz-IjyQ>d^-ll)L( zEl90MZAk4%9Y~!r5~;97v;4FGwj#A5wIg*PbqY5eiB#C4MSfZV+mPCk7#eg6$K-}1 zkqTS1%1;|$J5mQyCwg&axvrTFKSowlUFFYJi?G zENX!MH$Zb5pal(ZI1^pHM)YSG#gM8I{TtE05&fwf6Is3_wqkl8{H=}4gK5DzYYBvlD46L8~RUFo7&O89sS$Uza9M<$hM>ZM768~{X5XV1N}SD zzXSa{(0`)Z*NOg}=--L{o#@|*{+;Mgt)gadb-6;6G9|^?l4Fj_o=N#(Sk4nBgIpVF zD=1Pcb%4&*CloV%6jyWoO_R3EmU_X+Lv=!8-(bP(67PW&b%vGYKDJ{;JTyx}J zB>waxG0xkH9Ib&GO|7J6Q9HQ8TqR1H(&CKCHAiM|{&2VFv4ECDYoJC`E2&x34z4g) ziIS$YIAe0nk=dI+JXmNeq$SZBsL|9)Y8JJFE6i1*q$w@Vm|SyY_Erb3kC^uw>d^I( z4fF}?#Dmkz(j(G)(bG`=oVz|Y3}B~B8QT%#r?DS!-yJq~U{Bz#JAxhYe(X!5#(Uv$ zK>Kz$oEsweZodI~SK7BPbvnnsc;W`3bLxgjE9ul-k&b(Mr_?gsSr06eed^FMFScZa zzO30n2IV@D%AvZ6O1BrQ!YFeLhvz^CGkmRXVl(952;dzG zkF1Q|)!};Sf3!Z*$kn+X=`Pd_ie}so7>C|4zGY;#1m!#fGWNI$Nu5J)L=dmldvjZg zNT@+d_cuglFfe3Hcx(;;|INjas9t8MqYd7nW9*PiAWlu>tdGd*xta!vT+l@JGHbEdk5ByCq|Vy%&JLjZGThbZ6^4* z70HXU81ENgW81`zcorSRsg)<;dV!?N=!+*yuY@Bxk>@#3rzD#^Nj754W-ZC)$fT<< z9yJX&c!zcAQD3PAJ3}e#^;ENGXWbazJy|mj)wg@JbbYQaJ^!c!Epk#h)DroyoKzmd zaHYp&9b)sQf(JYIh@HkDJbdb75D!dLF1BG<%TQO>kOhh|2?eAg+r>jQ!)U4+SsTlw zdahOU<#?;7FFc=k2f!_G!Rj1ZL4bSP1Rd7sXqzX_2+v@=hb+GO~a}-ivsZ;N?*%edQ{#2>hImnr~@nIjCg2eBu{CikrJ|o zypLf^j!84ny5;xPJSFQ0f){`EC;Fn5_iy^vP5b3M=_Ju|IsDJxDi2W#Lp z@cmeK-f{3ko?eQco>qpv`tb95n4`eO%Y9el^eu)u%{C9fT!D+X7{8B)@@okB;%6(` zGV~5x)Rfcs`||Y7XMwNb+_=|!w!IcsGKzaRZVpL!dHfxE6Pw+B;9^wCIE8l|qlj^? zcIlpe z)l_0}+PiX0{1tv)j~xY0au)AI8sEmK6`U6(>B;jA*wz93y?+|lA>gOQx;}vcCt_XW z4gD5b)d{?kKsI~eqE$82f?53YTh#?NT!3vJZ!aj`gW*G>19)cnA(p$*7j9slV>xW( zIPeZid^^&c36o0oVdCKs-mgHuP7~8&fQ$F?j6*Z90`83rrqo`%hk>p40~bFZrTfYw zj!}nM3mQj(ClnH$W(TO-S>U@k`8$xtQ@4#i1AYT4b^)U30 zsI%^QMO|QvdtsM&OGxp=^~U0F9w~I}$`45R8RdxcjFaza&?U=ffs3DhxlyJs%G-yuF~E@{>{T^Hp_$Z6Cml@h+6& z?mM1wU21W;<9mDN8!)*G7?ECm58l7>1@YyIkSjB;4&ePWV!*&f^DKw|cgm0Z%PXKyET=vJS97K3Bl&mk()Cb# z@n#$9_kQ3FY|q=fE15a9nbAEzJ92fEF`TPU`b@-#g4DsyYrqpS$OAvn9S#9csKW_% zSOCoiF3P78BRl1<`O7E4g`7frtiu7|34JT(1Ut}lfQ#RYiR1G_Nf1`0@$)Cma3(oq zo4=}ln=$kK=~Qoh???)N?>LjMPx2jJ=B-k=dH^r{*fyNY7P5WWbiF(+FXZd-$K;2y z86fvHU-kT>toXCD&Rf4qUh@@NH4$3Qo51QX@g^{9-9!kC&y4r7u<-4_C#912iIpw8 zEH!!8Sbg4o*I0R*v>r+p`nKf@slLJGNeCNn9~;6g|v1lM&(8d#_B3 z&XQpu$b4a>w|>hO`6IzoXN)P$*!NGHqvtGtIk4Pq}S{BA>oWLwIk{q9-VWkW$nujkIvoyf8{iXNAla|?bfVa z(b;+`=L$RsS=U03<}Vts@ump;HSPZTeBU;EC|TdLN!}aa*T<^s#%%=}D+=zPd0$X{ z*>+n-a_OsUF55(2`LgixZMJN~8+WexKP)>aX}n`1=Hk=tTK5f?)jloOuCG2-$R?Yc zYHoR>B>PkO;dFA8e;EG#$xJpgI+PvBKhRKH^n6>k!0Cx~FVbE`Y{#*z?RZy)wp3|x z?K~O2#O$aC_-pIey@|=BnZ`b!=KWv5vhX=|T4u zPhRil)`|5lWDCi(*R5r7KG#=2gcsm(W7D%`1Pn95rq6ljbtKR_0olNBTwXS9?U!FA z9e}$5lQywhzDTxx0<+`jV`kTJv2VY4L18VOmybzEx$|Q2^3{lIwR;k^=uf8ba+k5I zlfQBG1iQkYTvDy_D_bT=VWUr{@;5E>FD*S|zP>*>>b%3F9+MI^aAt7x#ru-Kx;76n zttz4DD9g5Fraz6hHC@E}>IwUjM!zpni!WpC{t2#`fT3~aE;6*PxL+_O({SjoeN(JA zc3&aNzMKT%S`_w<+|nfb9>st)=j|iP>`2)JU!QrD@{MUx4tQnHr+Piou%>i z36Id^*SGZ(9---up1QjF;{OcZIkaUc+dq=VW;9-yJCM%yCUM80k@u>X4Yw5OAoC_j zxi5;@SpI(5d&|P6VK!9!F!v?Xx%+U>i`lJPv1yr?Jq{Q5T_=OL0b+~Ihjd^xP82at zCwb4D)ij}P-XWp&Fx>J+`oQDJNM(!s`gf6=duR8Z8@8D_7+I^{^WO`;mwy4b;@AIB@S1_U!f}Uz# z_4WYCy6?u8Bhl<28TMW*J!f-(3>RMwJvSiT7wPI7gLy&DU*c$a_uc$~0O#*sm&yI4 zX1geos%>xWK;DurxF?vAE_(a>)d88cC;f%*2!>VHQhe_wyk=9dq~-m9@qnDA%P-$_ zUELoHqxaw=G+d9nIygrCY67xIXB58sz4q=v882GOqJURU+~>6c>8@vH*9EjC73aM; z;CYLgE$ItpkzBR%xi(J}OMBn4L5kA3{yo8tq3y$)!wv6#E9e*5UpDwwkat&QjIl2d zXj9X#?H*?kx`4WX{I?#cC@hk$UmuLXbb!{;a7U2j8rvEJrPtil6ezv6mgXSE*VEAw zBzrxLZLNXQYi?=_lwMm)dyw=J%}pJF(rat!3^E$_j#(?-6^xbKVJCB9c>JL7PP@+RfN+TNHfY`Zz2?WQOU z@S5sR;-fEoLNsWv+7hrpHl-nEyT3Tf>VOWqMgI9-_ar|?R6(z0*S3+&pnl){nt%co z;kvI6_p!IxqZ{!NQ7WHz^`$Ey)6`=W)o^V<(ILsMP382Lin;?Nx^bj8o$7-;5&;q| zYQ-)01*g!7k&Ku(PhZ~RtqUl?q<|A6>9l^!y+^+%K(T1rkoBzroxwyae7^d&0NqoU zd@BGf^RsyESZ@zd)@$wIbau2Wn$0wYJ?C))2r3wgPh4$7!MIo2FLU$mbqn_qj(=Fgz^}Qp`uL^7nXqR^fNcG#9 zKK)w=sX$4u$Jc*)GF!7EmhAyuWoWK>4zY7Z;)8+my?K|u{}jH{fvR9}0}|Rp0Ue^W zOp3Ji_ZMY^Ot4;Lq_B-L&j$42mF8RaxZ!|KV?L5S{W}8HIpMRXKaoxjbmI%Sxqu=| zAII_ucs?J{M`M~WeQ6<}k4asMbfY5ydwj<=?+kRwy0SyV$-csxR6(ra{(yPTz#s7T`%fj(pg8qnUJ8rW74!jG7CkS<6FccoMK)eu!E zB>5XmdMzI{1667_`rKm%8XUT0*W;J4QXdXht6kcg@S8?y`y;_J4pS*?vI|;kK57Q) zmx`Y?>@@?rN!A_&ariKP)5>0B52P}pjE|WCT||}+fGbIUB)WOm$IO5(TT1D7XZnTx z$Ak5-JO)u|7?17?p0wSswdLc%3SACw{p<4syx$?~p9t1ra)?r%Cj8SI9$ zIW_#rVD|>!WgMfBr_6w^yR=qs-u0~A31HGd1lXiY}@-uIdXf*lH2D>rdZRhx90WJ2=nSmbb*W)V*_}ypP z;K5+GMxTZAvsQao;qyV+q{`iI<9AtQ!}`OZA{>Y4##}bLb;DNuf%zBAfUY_m;+vBL zUku9FJ(6;D@JB(Jqf0lJ%;a%30mb{{pmx`bNek=GngM;I{bKt37)jJ*V#~q7};Qm!FJwwBwa~^MjA0Q!jL$I zBz}+tJLHWMk|?jn?UJpxo88cs?Gh)pNkS6xtaq2TG)Y^Mkd!uQOIup+@AsX1=iV74 zknQW;KXwuK`_4V*eBb%bcfRwT@0=Ow7|Gm#X&8pNKJtKh&^-7+=-@%)0mC51n{|+{ zgm^KL3?u0xWEoB!^P$k6hN6}|xUVePnaSpjiiusB!F_f%m&y#z$sZW9Hx^!34CG-PkGyHW$m^osoG%yVEKE>Grib~Zn4 zx5g`aQg*s~^WNcPI%iati4+sN(snYtlL8qbEnakY*6vN^@^*HYodXx0JEf4j$;rK~PCBfnXv*grJHbN-&9FGC_=B z3c*x@X#~>=ZX%dLa5KS7f>{K!3FZ*YC74GrpI`w&oS>SZhM<;UA;B#KiwG7I)DbKp zSW0j!!7_s71S<&Y304v`5Hu1r5i}FD5VR7kB4{IMCs<9ehF~qhI)d8>))Sl-1%6fF zvjV>+@aqDf6ZpKq7X+RW_zi*I6!5NZF7Ouue<|>i zz+VacwZOj>cv;}z3H*D3zY+Lbf&U=z9|iuCz$*g(S>V42{8xcj1^%1Be;4?Yz(Znw z?-ckhf$tXhh`>h$J|^&SfrkaYN8oz}zE9v0flmm0QsDaq9u@cjfgcq3A%Pzj_z{60 z75FiM#{@nl@Z$nMA@J)m2c8r7yucR(o)P#Bf!_q=B(3;L%@@t+F1XN+?iJd_S!Gk5 zca_a14{R9j>9Mm`dCbX#Gi;Lrt73|m)zGT*Dt&oPjXH0FFR!&(=S_6;?oAc=Mcj6o z=Q6DFXSy7t{!EwUq-l;giF78JcdJe=%603;+~zkFys$OJ?V(7xA(Kg4Q)l=!;S+V* zEPuh~e4m}QhX?LUriX27dJ&PhWnFO7O@5*~bD2S%Kf~>fH0%t*%|%=`@3RNeZtM2>D1jhkj&<>p60X3uKdPiI&IBymF1IS z?rf*J+xK1BR^isI)V2S4&Pk z8KCN$i;2Cy*ObbjbzSTB#n<(P?!bH0x0F&#*R4eho#tF2eQNhHTwFVLHLs1j1tqm~ zk9~ZW%pbLe$71QSQ7bTWG!@?Jn$A6TZaAGEqnaponLEC^YN1IfTt3NZRt)yuHfzP? zqKt-CtG+m=snJ?loYUHDH59SwXtNrNs&s%&Q*jR1G#BT9O-oTu0(Dx8b5Lhh(QNWf z`nI`_U3LobrPc1Lp-{XrdtfM^*^pgm18umWmm4cbS+M5U9iEO7cAJ6 z%G!FuZ}eyH8177`y1>=iGnQ_xek(G1>e4-Iw*ivB>-V z4HisXPlea}iTq~#2G?b?Z+dlkqkn9ij^3Zj_qpP|$!*8CQn~tg^F(J{w`O{+x468; z9c*cAX|>*35i|?-@t9BF6nf;r%N_wQiHmn z%T=XYFffqHV*=^Y?qY_rH0cuCbsd^cm*lZ=?Hq=&Gn%t{T$^&Mq`K|FE~l`!xNuvh z+wK_b$!N+x*Hvmt&SyL86{m`6ckS0Jho;?A+@ZoS>(YMLA!yEp(tC&C79G*jCE6X% z_pxnjzzqvDt+s_h*EjewJG!k*aSx~J_vMawKmDf5LE~OjH*@HPu$bF@BPJtuYgEfxnYAH4i z55f6DYxiaH_U3(haIO8t%G)%YO-i74pjdf2$a!1wSQQ(Q_4Z;prIbsi_0T8<6vBE( zapMJ{9(E_BmfX$Xien4wV5tncBTkg&VcXU_&Eny3yvw`HV)g0l?Stt9+EU(a z7Eh+FsouW4E_%dVRHRxd+L%ru5?A?rva8>f*m~3~?xH(ytjEmaN#Pc3L-duh9yg17 z>6Y%q`BmDs4wn$4^ZA{2-s#wT%wm0etL}SEcOBD;#XKC!z-Tt$L}*ZV?R}=ZcobK` zGQzND*M94W>AKV68k+~ZHH#l70NNl*2m3aSMD#=ZZT(lVyp&q1?zZ;0o|t$ zOr7RGX%@S?Z3qREy|(D(Qza(k(;Fiqdw<^gbU{xl`=FiNXKS+FPQG$^4b~<4MgM}`KyE1mqf(XXt%H6bX4f=N?xFnUPxOrc{ogN!1*jh<>ebU!_MXrY6KD)!@`l zcMm8Gu0ZTIP?d@+12sY_9-B-%k$Oa|7x(IM@K|O<>X3>Xb)iZ~ug*6*j0l7@17Yw8xP1BmG3L zCs~FWvM^leV|AHFfpSb{at3m^K!ss8gk0!SS`5dn<%YT1fMsDiSBFGxQwnNhy~=#N zOwHVv)f%*rWMgGgf=nvY&79z7I(m)Pl#!gps5!QZt3so7;JU(wTw$jcgbktf7=?{_ z!p20{aw#bYt1~CMnU1iNAS}qi;|9WVayZ%si|d=D=yO^@L<!AteP7 zb!NoPbVQsC5kZbIxxR>)2C&~E3mV-XMzfLs*Yd_TGis4j|3E0Oa0 zTv%jbP$IJ&-ZWB?Bn6sG`McI)PWpRRqTbe zR_slP7iS8&;my%7srt!{L5l0fWF-jEjd3O55`Z}uR$Tqaafv0%H!_5h-Ws{$v}M6& zW!4;`Q=~_y>gEOB8vo;MCc`yuL;A^ zhq>}rBie%Sfbp`}^oWYZO|Ii{OGgPnh!Wy@A!h6c4;=a3uo*j88>%*H&FYF;tJ+d) z)f7e;tblco2!SIJ1IG$d$y-dL=^D)h0{^)h#Wh-}QJqH1G+L=qvqo)bl1-ZsA*>dv zsc0I#VbfT>*ff;PrUg~$%$P>gHJS+og1P!FuJE-0b!bNHrs^v2tOS1({G-ZLv!SD# zY9?UKpN*VJ$eAfQ6PXhytPRz$>DqAhWYCqP#w^Ga(ebZFYMHtjc}9E^Wi;Xw^^zw_ zg&k8pMtm~kYI#HW882@Q&D3bFMsbYWxmasxAzmY`p}II_5`D8((Zn(}Ls~&l!d9RH zREWDFif#p&Yz2s|M0G0@s0nEktxz5|0#v8sDh8G&hY&;@Em{K*V@rwyb6_M1tKkk~ zIuHUOM75M`E=;A(G#{2oQcb@Dq2YxY>h#U(vmsTXw;NxoM#!Y5Q*0d@q7{jeBh^9} zo9eHDcBNyw#EVPmS4EDR*h|J{V0qwF9Klqi8HMZ607ktoZp6&k&2Ti8YML0!=^2_> zTVzq8sh*k1LdRS~v6%(BkUA$t;&-qX)Nzu1YiQ(Dcvq(=UAZ}ui<#Pn%<9YD03f7BtlK^sV<|xMp*@n z&MmD8r}tnK6x=T+1p;yKEQ?ogI}g9+Qj+ zIpy3#pxh@32FGo{KzlBG13t$UPl&mtTTjh$)?szz-VpQZ7x=Q1JF&Q@bowv5*F&>e z5vJK#j#V^i$~re+jIzIff05=7;~tF1I8pmlDR}?Y@RQN+%OO@1&2+I#ZuXg zBcxZAux?AcLP21w=ZUT&mKV2Tvm%j2bdctksu88Dayn_n$qbQ0;vUtZIcR!*WFC|Y zF`&MYIrP0PuIpW5Rell5HxD}WAtgsdA?J{Sj6jajCOIYwcJb&B6pdG9CBg@liPe@b z;e_n-PtPU)a|pKdNJ|6PO6e>mj+Ce8iIg|0c44e)#eF_He_Y&-E|6-sqw^R!L?+Th z8964=ao@;!IbqpBW9;OV047kam7^+Xou}jKP__CNzOd-)K5M9>3u23FWHOvypbo{= zuPSg>f)xR-r!F!VHE8>ntJUQib<%XnAz@i$5yuk(_|9QIUvdtE_%8Arx+*<25S&cq z9v(ExxUt_Gea|j)HE)1 zLx{yg6P6i$!b}PBZZtaMM zKypp?UC8EAfCHAo?4OT;gRy|kg~c5C=Zi-khoe02<6NgV{Rr zM0p20rhaB%TbKB|`y1o{d6267n3qbG6>(TPAuKif?2@# zA@6-d{IN%HiplhnmPOm8Nj&>-KbAgc>sB zPSMIeIM+gt#8{R~Ivgp74r2|GJM~V+w>lwe^Og&6sKIf1NM;t7?GV>hZcyMnx&5Ge z;h~X?e9khi8P=Ewm2-R%}jWHN@fj)d=9-Q2uZI)i1A6m;BWcmFayJTEc2UY*H*%V_}|zzl8mqUR}d_O-4A! z)wN7rK!_LvsaFGEQWxFm8kV|1#`ELU`_$MXm~m_gwg^@YmKRKWBenz{ekq;K5^bgz zYPkUXiMs$`9Af2>*djEuOxKSsqxVGDVR<@NEHJhtwk$G-Mb#!|&xKi7Y_#1k97J7wg=;J&zyNj`b*`G6&&TTYAcBRVL4WO^I`KL_2pTdnbW~H#tol3CGX)F zH|y%_@)D~HVUF|tnOW+@ET5HC~V_z%bY)DTyI32BcXRr{$v!w+f zn=e7HUSs4SL^{Vv)sRRv7Ox3mO3?11N0)CQOcuVDI)qaSs*x#Z@w$A?m%(?Wz;|S9 zzOfoaXeHt~!|aGRB7rZ(8<_|3;I+|z=yPtYwveuiE!1flgj=rL1y?oI_(VxGSkSYh z$WW{X`fGyYyPk$!O^m^&9L7#YW~^xhD~A<2sE)2x&rF4rrDf_dY|}A8tR2;+#+Jrb zgUBqraXubh@A@(wIRCCYNuU9-9GXDb^~`Pu;2UeejuY=38TcaaKXw^#F4o1%e@`05 z)QqhWf8f?W^fj3|e_*+*l_N8K=X038j`NhH_MXof>cn%UGv~|Lo-)u^7o_HLtO1pg z$O15+e(*MdE6(ZX(bx<41twiNvK8A(H8Ncty-AsBA|#w$jRjHOL(V(J=VV-~)e3K- zMxHlf>zvo4>(zx9@EV&KiGg&QLIY=H-b5mo!-z}AWFL{{Jocae288v`?h`u0nciR4 zZ{GYK`G%p6f5Web>ahADYQgV#F54t# z>`x2YbmT?P=BbfFpF->tlvUKHkZk6~!xs8v=srQSZl6#Kr?{x)cY!_$N25TWT#8Zp zG%5vD?(0)Xp-+XuE%XUXlD0^g;1v9F+8MA?r@zUzVv)#4cm#yQKKLFS_FecEj@WtH zhv+26?$p6NOHT9-opok6&-*Ylq!)_&tXG^BVd7a@}w0`qh^jTQ+S@vEz z3oD|Muv#Pw9~UXhi#Q6#>O>q^_$)*z*t$@8T=*8>aN+Z~6_z{U1{3)v4(I_z9im%xPXPXSy?D;n<7_ixv&{twlUJrWAu<@%!h# z4c`}6A1}MslRt6}gQz|E5lM&(LA7ut9@LQ--sar*xGeA;fxYWd^=pYo)tNjV<%H5cpCT7~JEs;z zrXojisbi5)F)qm{iW#jH^wRaIy4ez+>c~>;QxD;&(NLFVoZ(Z~Nz_nP5;atDr5`hD zSnv1I&wQW!p7{Y~2fx?BMPs{6eiOYYMEJSy2+;6R&GbS!X0MJ)Fgps7$$C99dL7Vh zTz1=dyC<{D6Q`xZ6TjYF5{gIwiHOb_X^7@E?QhNrg#42Ei^WbL%~z%xq1*re&#Tiw z++bjgBjqSuo(d(RFadlv5JjYgPX+L83miu!qTHjFC!*y*6^UpCP-P;DuOq1miRc8N ziHYb$phzN$LmO3Qt*Hv!E_L}viaO+;@7nwN;;gFZDQ5ygH~-JFQd2AY|OB2rYd5>W&}YIY)u zS*YeGqKMJdf<$xyP&^Th163!Y)j&0gXbn(pB3cWyFcHPas?>BDxZ&ArWl= zYD`2MftnK0CZOg-v>B)+5p4l#O+;IPRwbgVfZ7sK93QIoM6?}fbt1YNXiXxDGcvU{ z5nT(kE)iV^v_28N4d}Fyh^`0zDlkXzSzrbHHQ)`vUkBa@{2cHm;OBui1HS;A06qhJ z2k$Bk-RAzX|xyf!_@L7r<`; zz5x7I;J*ak4g3?}2Y`PHoCN+Ea3}Cz0e1oaHE=iZ-vHad7lC_#e-7LW{0rbd;9ml# zfG+{>0sa+mKk%=C)4+cVJOF$dco6vSfHS~<4?G0?8{oabzXi?${{wIi_#c7u!2bk1 z415K6AMif|KM4FU!25y!75D(~Rp7S){~Pezf&U%&A>fyQ-vN9Gv+H5tcLMXU=v}~v zOeEfo#5dIV3*8#PdiTXW|7UKFP!xBtFH& zH<0)=6W>H)#H{)ZKDxk1)%*ln)!|u!hac+PiYJO^86JE#pm5x;>hbXSy8%xVo@P9) zc-ru+#>2DjwRmpB^EER3I>B=U&l9{rum;b!m^e%DZGsj&tMIhr`3^JIzVlF9`4ng1W%OUlRO;;HLzCMesd>zah9t@GFA9CHOmn z-w^zk;I9cT5nLwt2ZDbjkkX$q^-ly>2>zMiUkLt{;3~nt6TC!lh#Gz;!O!{nE~b9X z)VrDbB~yP-@CaWYCHO91&k<0`-)G`6=08p#J$MgOM+lA*yq{o%;0pv_B=~)TPZRtn zg8xA92L$*nAg!dYFmagR69n%i_&mYK3H~d=2MPX=;0b~!2~H7wh~NVR|C!(u(v#|S=3@EL;75qy^5BLtr!_%gwNB=|1`9Jym|;&+&MAHkOh{yV|%68s*)(*&O+ z_#=Yj1g8m}A^2m0uM+$T!LtO<5qyo{>jcjeyg+bTSz+}&%-EB8J$Kw>f`})fWvrS0h~i?6C&nZv^F6! zjTBXQcA_K;nnCbXCv^GA36Utv%kgxeB#*XGvdmB~PKeB5$#gs$K-Ft(f+Sr?4M46m ze7WXucw%HS>s8|E6v#PsgzVIXIentiujPclFLNIgjD#OHE&`^cHvoR?8g)AkGhI>mSN?JMs8v|lkiZ@9IQcf z9m8@WDm6|tBrGb2rqTjmI+?8kQam*IXv) zeoiXxr!pFhR`j(EIAJtN+6HbjnvGSWgI2V>0r{-e30Z8^?7~|&aHr8I@2dbeB8~mq zRkVXiaCmZLIi*@OhE$y}haUXckkXOx)MTMNGdXfADHq~l|GQCVKl+{lMP6_ZAp1s5 zVCr1ebcbUeou`L9Olt_Wx>3JGBd21zy;x*1+l%92TRo^rQ_UN@0W)Z0H`1Dmx(b@( z=-rga6DEls!}A6aEiQ9>&{!-&4j``^gWChbI2gu_ZOG{|`bCrk8W_Zz=MiWIoZswJ z7wV9v2k%r*9DLaEKIG+qJCRE>h~q5@^I+#zU`9@r?mRs;vc!Z`HF)}9VtHe^!^*&78jv;U1=+h@C}m%BjtQ_8_Jl35zq)tSN3qoE$aHPS(~He`lhF=y zZHGy&G+JPYeCvVPt^`m1w85kk$ZG~}Ldiyyw4)wrx}eb()NMy;4{B|MajUDkox?X3 zw?mpF9^2R~{1TvO1!XJfHzKzO={7tq;G9Go4f588w?@=yLk_3WN|doqJL2`5#E%}C zA?SogCuewGbvJlYqXY2UD19^h_6(ejK<{_rQP6oe%IQ048w1cX$Cz5@T0;$LZE_MN zk(+l$r4drlmI|Kt#Lc4FlQ&1Y$o%B+aZ z{I}xSj4s>ghHI>@Z}2OhQ#6jw>m@Gtv3&jhFx zJsH)JIbs6G=0xr=AxIZlqv($h(lNU9j@%iJl*O%PX~Gxl;J<2OHcYr zsbB40)mfCnp}jaSGK&&V6^R+raEfp`48VZZRbA^azMjfjGo+U5lJqpu!J0ZTUt~Es z-!sN7Xp7E{Caun*obAo`*7XwoUez@YFYsz`9i=nW&R(5ZAg=r50x$UE0>LRuN6JY{ zC+}I5x}+(tEbvxYu7#vwFLZr|jGTzH)}%Y_PQ-Ov@kkSUz6{TOA`NwWt-bKKgc%xk z$XH=)E`dG`Yl%m8lm7L1UX7ceW8-2;N8yd}3iJTM;Q4BqeHW{}#U=q+Q!-bm585J^ zLAsS$+yP-kzENb1E~e38^jy|zY=#SNTo6GCXTl)DFLY+p2hG#*G zRqVyONWTe*y76%4_|;KoECB^AieW3`ZLU(iVx{g%=c!w-Z-jY_u^Wyy3YDH$+)1dj zOLU)?cwWl$6;wWFay^E_n+wiNII>i)0870^eI<5COC#^M^uCON9z&QWJk5Ao@G!LE zo`qqS4h0(!fHk0A1L`%PUIXfJztezv49yx)k6c)zQGTegW;_fcTk$Y(Ys1qnEs+ar zFo-b2>M3QGqi66J?&~dqum7hCeSy5z6tbA zpyvi-yjIW*`ex8KgT5K`&7kKtWW3hV0{Rxvw}8F{^ev!o0sVNbrWN$9pl<~|_w=ox zZw38$t%=*5RiIx5`c>~+$JjTmVR8GEq`aU~qa^8O&!r31#>;Bi_b=2keI)(Czl!vMeW#ju;uig&!p zHFcHnIkqa&LOv^Q$j3eYq}B$xvYrPA?42&I^7c+#wPl}jRhJ!Z^L8=RRvP`mCiZxn ztc_2%jV~V1`!??cOPvQjTW<4K$TwkMqjL|pM<(z9h)1^AA|G#;x=*)zySQZrK3qDb z^Ut6*`_HZOThJ%uLc15+$E#iU5JATbj3EwCHz!t04^OU+G?4pJJoiFt{W7u-0>&}! z+^g_-tPc4M%ou{L!=o;N8vVPn+LLVwMr@7b9$OQc%3zB-`P=6K;NPKnXcEQCuq|EV zZT?D|tV0JilZ!qkr+rMWqIfON_||#{X~jokjGL}Gm^!sq+vHl$mKbBPX8M}ruFVpx zGT7aSI^65w{P)N@ZH?nu{^rI)cwu;; zyPi|Hw1Jc73~*s5GZKf`_~+lrTw=wCpmg9~+SvnmuCG=41n;odvy+#h(Mz~Zf*QR7 z{AtnXF*G|~jgBqAYoyKNxbTA7d>Xi*O*xc@)P8NAWkpPo7lCh~Hu=$?_BUe*t&ZRx z4VwKi;DYDIr!Oa%4_+sM3%nH88?HF~5Yhbrax>m|sEqTgOQd--^a@-!R`zyjJUPl^ z)$Eg1m>(VV<9L-HMAQo;XP#s5sNc(BTh31IEN=UttS^n48U-Gg0~>qEd>Ibx6fU!& z13Lr!avj+91bB@c*d^S$BO?r4a9}$YL)-Z0cVNeHF%O;2)4&C%LkBjt(CR#CFzgqB z$2IInaPN-{EAY4oPLTkncLuoNb}*sNJNXxx@4B6G1kO(WVO%X#$ghA2XAw)&iVaa-A{ z>(+KO;@s_4@7&_XyWPs$UIC$8|5ma7Wm1;j5LY?=9^&@639ZuHKr-Lem&>QR`j;nR z4Y*Hkpfi0y64`wHC>P63)UAv`Ckm|h?wpI%U#}Id^uon+ypFD_>17bOH`PU_3lRj) z<%c`#ckh`2)3> z6)^wdE?CZ#xbWcQ=uYxNg?jH+sM_7Tq4cTh<+j2bA>>QQ}LhJVZ+f7kxz#PwzG zOQr_vZRfVDLShB}IQg(G!sGgqEdGx8%o}L>hJ2ueS@(%7TFKI(wXaAx>6rY@^V@2N zhI4(hZ^8W=`TD+re0@)9Kd;Pz_mkUT+zVTTVvZhY83XP6>i6K*2YpAAh%@&o^JPlt z`dH7v_$TiR*LUguIgROtu0P!!7qyS-ua`l%?KT)8E~T8O4W)?Jiru^Iz4H%gp*})ylJ#4*73rR}R_8PQ_F#O|D;jgrMQuLgm}B(~ zEa%#BaVGvSu1(0-w0QDDP>Mx?1-oMJ-mU+tel2vrdbbQn?fAOc$*a*8;v&)UsKmYO z;Fgu+tMC1_{6&zgw1rF>H$sW7JCo@oE`eG6f7v*oyt;9%tv-v#DC0UWTuQiP%pP(~ zoE|P+b$xr%mf)`WnsF`H{9CW@_tC_%_E*3R+MQrD;QnPgLA z{T<_x#;?cjRBkApJiz-O9!?Hs1`iBmhI0?CTscb^6?qaah`1i1Va=;(qw$pz--U>x zsXCYKsvp38fw(HAFd2vCx}Ys$*16`}t~Gc)X?NnHE8H=Y>dHBOCZ9~Z^H^N}M&1e5 z^0MgF5JGBb)1z-)^K#n1k1pI5!tP!*sz0E|DG|O;cebr=G<_7p782#OOKTrbw>V+) znNiiUdVF3@u2oyJcswe=)gfzZMiaj;IoO>pC}mxX7~2>zslFW932FUzB;ST`5!ZFB zF0A=j_gC=6Z{z;-`r2_2+&&Jj4Sud_99$bVj2W2}o7c-4!eUZd_NMD-yHI-^9c=V> zFfon}Hr_D~u1$WfTgJh)sbd^moBdqx90%9tyT(zeWoyTZ74?PxgSh@^_duq5IE|2U ztN^PwoxxgE?;!8inQeCz_#p8LSh;uB++F^#Sa4a`G|ZJ1f0TXNbPfdEy;G*A2VsqQ z-CbB=d*CFTNGhaPsxfBa7({a8oz-}~`CCeAzDv1cdoV1~VSN*G<&MA@I@c~w2#%w35%a|0I69X&M*`yLZQ!c{8f)ME)zJW1 zI+~mmAWKJ;lkW+}fc!Ua$AaYP$T=mTA%}Z$PS&OdG#B;s#+~8Q?hQtj!q79#>8}rv zt$Y8rM4dMUDX@2W^^9Es3S78;`sRRaU$m>YP&0$~}zZV7E zZ<%I`yMh@c*Q|W5%~M5P=WEtTK|4#{8f+VSet3OY`j*#%e?k0P`(F$8?x>VZ_GJMr zYWiyMF&d!@SRRo7)(sVuMb;~}1*0$>ptaTC9VEMk)|G+sYieu=lwWIeW030WXln{m zypD#}=0N#1HMRuGueG@~NPdZ?##MpxYi(`|G8*=_S?zBMW|rJ-C$lo~_%X#jc9+fT z%2x;EEDFpwW)BSIGh33mzBO+QSZ*aTq(lyD1KJ@`>}__oKW*Vw0a;Vs zNqqGIpCa_zx9tvCAv@Dhv)x^2Wqm*!-GcnQJU+>f`EL(;EI0NI5BBRz?Nva5ib&nn zg|ATDWgpmKX9rTb9QGVyFB<}ynz{{cWrXdg)##%J@Z2|f|_rqk(`R)LHhpYpd z?e+kz1fMX$?lj*W0j}tq?6jS?3#?xkpaE*uMFx0JKxbs0la?rFD8Dm6#yf|_gH}AK*@Ljyj;P&A>zV>F{7a;G_5aj* zF3DtkLx2MNf|@r5bPz>b7CpQvK=0{Hi~CdgKF1{99FTr}XT44%Z+W#J^Yf$wpD1t5 z^u9G9oysO?OJhsx?jSdS5b%M31l*X(4PuvaAPsdqUn1ebo72Kp$Rdxn+&Z1hgCTvFzv`3e@IA&W`RxI@!A!UmD&U zP-N+oSbrHl8_-8%nlXK8E})M|U5<34`G7sXu!t{t4Xgs?$)!UaB#*dnIkRC`FZ%n6boIU3A zN&W_<9?QqfKyBI$J|8y&jSXG4+we=Esl&lqwaa@aemf^^zb9D1F;((A?Yy>{_nLva zrNT!I?=u5BNY)+%VfYY!huGd=_ofEL7>}3%okJEkfD=i6BD!n;6J|hXEyesd4|a?A zPnv;xSnh&oGz>@IA3STjTU*P~V3jU=x9)AZULNmI^bZ8nP=ch Date: Thu, 15 Dec 2022 16:59:18 -0500 Subject: [PATCH 017/216] update dep --- packages/apps/escrow-dashboard/package.json | 2 +- packages/core/package.json | 2 +- packages/examples/eth-kvstore-gui/yarn.lock | 12356 ---------------- .../fortune/recording-oracle/src/index.ts | 5 +- .../recording-oracle/src/services/storage.ts | 9 +- .../fortune/recording-oracle/yarn.lock | 3892 ----- .../reputation-oracle/package-lock.json | 11393 -------------- .../fortune/reputation-oracle/src/index.ts | 3 +- .../reputation-oracle/src/services/escrow.ts | 2 +- .../reputation-oracle/src/services/rewards.ts | 13 +- .../fortune/reputation-oracle/yarn.lock | 3962 ----- .../human-protocol-sdk/package.json | 4 +- packages/sdk/typescript/subgraph/yarn.lock | 4284 ------ yarn.lock | 297 +- 14 files changed, 177 insertions(+), 36047 deletions(-) delete mode 100644 packages/examples/eth-kvstore-gui/yarn.lock delete mode 100644 packages/examples/fortune/recording-oracle/yarn.lock delete mode 100644 packages/examples/fortune/reputation-oracle/package-lock.json delete mode 100644 packages/examples/fortune/reputation-oracle/yarn.lock delete mode 100644 packages/sdk/typescript/subgraph/yarn.lock diff --git a/packages/apps/escrow-dashboard/package.json b/packages/apps/escrow-dashboard/package.json index a440df3937..8c3eacd0a7 100644 --- a/packages/apps/escrow-dashboard/package.json +++ b/packages/apps/escrow-dashboard/package.json @@ -7,7 +7,7 @@ "dependencies": { "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", - "@human-protocol/core": "^1.0.10", + "@human-protocol/core": "^1.0.11", "@mui/icons-material": "^5.10.14", "@mui/material": "^5.10.14", "@mui/styles": "^5.10.14", diff --git a/packages/core/package.json b/packages/core/package.json index c2b59b97a7..826a857f98 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.10", + "version": "1.0.11", "files": [ "contracts/**/*.sol", "abis/**/*.json", diff --git a/packages/examples/eth-kvstore-gui/yarn.lock b/packages/examples/eth-kvstore-gui/yarn.lock deleted file mode 100644 index f719b930e6..0000000000 --- a/packages/examples/eth-kvstore-gui/yarn.lock +++ /dev/null @@ -1,12356 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@adobe/css-tools@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd" - integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g== - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@apideck/better-ajv-errors@^0.3.1": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz#957d4c28e886a64a8141f7522783be65733ff097" - integrity sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA== - dependencies: - json-schema "^0.4.0" - jsonpointer "^5.0.0" - leven "^3.1.0" - -"@assemblyscript/loader@^0.9.4": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.9.4.tgz#a483c54c1253656bb33babd464e3154a173e1577" - integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA== - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.3", "@babel/compat-data@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" - integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== - -"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" - integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" - "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.3" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.3" - "@babel/types" "^7.19.3" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/eslint-parser@^7.16.3": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4" - integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ== - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/generator@^7.19.3", "@babel/generator@^7.19.4", "@babel/generator@^7.7.2": - version "7.19.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.5.tgz#da3f4b301c8086717eee9cab14da91b1fa5dcca7" - integrity sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg== - dependencies: - "@babel/types" "^7.19.4" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" - integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== - dependencies: - "@babel/compat-data" "^7.19.3" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b" - integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.9" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" - integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" - -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - 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-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" - -"@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" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - 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.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.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" - integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== - -"@babel/helper-remap-async-to-generator@^7.18.6", "@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" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9", "@babel/helper-replace-supers@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" - integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.19.1" - "@babel/types" "^7.19.0" - -"@babel/helper-simple-access@^7.18.6": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" - integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== - dependencies: - "@babel/types" "^7.19.4" - -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - 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-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helper-wrap-function@^7.18.9": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" - integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" - -"@babel/helpers@^7.19.0": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5" - integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw== - dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.4" - "@babel/types" "^7.19.4" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.4.tgz#03c4339d2b8971eb3beca5252bafd9b9f79db3dc" - integrity sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" - integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - -"@babel/plugin-proposal-async-generator-functions@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" - integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.18.6": - 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-class-static-block@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" - integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-decorators@^7.16.4": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.3.tgz#c1977e4902a18cdf9051bf7bf08d97db2fd8b110" - integrity sha512-MbgXtNXqo7RTKYIXVchVJGPvaVufQH3pxvQyfbGvNw1DObIhph+PesYXJTcd8J4DdWibvf6Z2eanOyItX8WnJg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-replace-supers" "^7.19.1" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/plugin-syntax-decorators" "^7.19.0" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" - integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz#a8fc86e8180ff57290c91a75d83fe658189b642d" - integrity sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q== - dependencies: - "@babel/compat-data" "^7.19.4" - "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.8" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" - integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - 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-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-decorators@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz#5f13d1d8fce96951bea01a10424463c9a5b3a599" - integrity sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" - integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" - integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@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-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.18.6", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" - integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" - integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" - integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" - -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz#315d70f68ce64426db379a3d830e7ac30be02e9b" - integrity sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-classes@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20" - integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.19.0" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-replace-supers" "^7.18.9" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" - integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-destructuring@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz#46890722687b9b89e1369ad0bd8dc6c5a3b4319d" - integrity sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-flow-strip-types@^7.16.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz#e9e8606633287488216028719638cbbb2f2dde8f" - integrity sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-flow" "^7.18.6" - -"@babel/plugin-transform-for-of@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" - integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== - dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-modules-amd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" - integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" - integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f" - integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== - dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-identifier" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" - integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - -"@babel/plugin-transform-parameters@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" - integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-constant-elements@^7.12.1": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz#edf3bec47eb98f14e84fa0af137fcc6aad8e0443" - integrity sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" - integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-jsx-development@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" - integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.18.6" - -"@babel/plugin-transform-react-jsx@^7.18.6": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" - integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.19.0" - -"@babel/plugin-transform-react-pure-annotations@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" - integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" - -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-runtime@^7.16.4", "@babel/plugin-transform-runtime@^7.5.5": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz#a3df2d7312eea624c7889a2dcd37fd1dfd25b2c6" - integrity sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - semver "^6.3.0" - -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-spread@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" - integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typescript@^7.18.6": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz#4f1db1e0fe278b42ddbc19ec2f6cd2f8262e35d6" - integrity sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-typescript" "^7.18.6" - -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.4.tgz#4c91ce2e1f994f717efb4237891c3ad2d808c94b" - integrity sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg== - dependencies: - "@babel/compat-data" "^7.19.4" - "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.19.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.19.4" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.19.4" - "@babel/plugin-transform-classes" "^7.19.0" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.19.4" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.18.6" - "@babel/plugin-transform-modules-commonjs" "^7.18.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.0" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.18.8" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.19.4" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" - integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-react-display-name" "^7.18.6" - "@babel/plugin-transform-react-jsx" "^7.18.6" - "@babel/plugin-transform-react-jsx-development" "^7.18.6" - "@babel/plugin-transform-react-pure-annotations" "^7.18.6" - -"@babel/preset-typescript@^7.16.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" - integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-typescript" "^7.18.6" - -"@babel/runtime-corejs3@^7.10.2": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz#870dbfd9685b3dad5aeb2d00841bb8b6192e3095" - integrity sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ== - dependencies: - core-js-pure "^3.25.1" - regenerator-runtime "^0.13.4" - -"@babel/runtime@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" - integrity sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA== - dependencies: - regenerator-runtime "^0.12.0" - -"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.19.0", "@babel/runtime@^7.2.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78" - integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.18.10", "@babel/template@^7.3.3": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3", "@babel/traverse@^7.19.4", "@babel/traverse@^7.7.2": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.4.tgz#f117820e18b1e59448a6c1fa9d0ff08f7ac459a8" - integrity sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.4" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.4" - "@babel/types" "^7.19.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" - integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@coinbase/wallet-sdk@^3.3.0": - version "3.5.3" - resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.5.3.tgz#ffa657cc16f896e08c3e9ac571ca6a37d1f560fd" - integrity sha512-kaGMk9KyiSLPm1+BvCQSc99ku9gn0j+M1+2Beii+4gx/lRVhutlzmn6l+5zTB/n3xri25iTr+SxjMZLlMfW8Hg== - dependencies: - "@metamask/safe-event-emitter" "2.0.0" - "@solana/web3.js" "1.52.0" - bind-decorator "^1.0.11" - bn.js "^5.1.1" - buffer "^6.0.3" - clsx "^1.1.0" - eth-block-tracker "4.4.3" - eth-json-rpc-filters "4.2.2" - eth-rpc-errors "4.0.2" - json-rpc-engine "6.1.0" - keccak "^3.0.1" - preact "^10.5.9" - qs "^6.10.3" - rxjs "^6.6.3" - sha.js "^2.4.11" - stream-browserify "^3.0.0" - util "^0.12.4" - -"@csstools/normalize.css@*": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4" - integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg== - -"@csstools/postcss-cascade-layers@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" - integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== - dependencies: - "@csstools/selector-specificity" "^2.0.2" - postcss-selector-parser "^6.0.10" - -"@csstools/postcss-color-function@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" - integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-font-format-keywords@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" - integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-hwb-function@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" - integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-ic-unit@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" - integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-is-pseudo-class@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" - integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== - dependencies: - "@csstools/selector-specificity" "^2.0.0" - postcss-selector-parser "^6.0.10" - -"@csstools/postcss-nested-calc@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" - integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-normalize-display-values@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" - integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-oklab-function@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" - integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" - integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-stepped-value-functions@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" - integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-text-decoration-shorthand@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" - integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-trigonometric-functions@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" - integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-unset-value@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" - integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== - -"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz#1bfafe4b7ed0f3e4105837e056e0a89b108ebe36" - integrity sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg== - -"@emotion/babel-plugin@^11.10.0": - version "11.10.2" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz#879db80ba622b3f6076917a1e6f648b1c7d008c7" - integrity sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/plugin-syntax-jsx" "^7.17.12" - "@babel/runtime" "^7.18.3" - "@emotion/hash" "^0.9.0" - "@emotion/memoize" "^0.8.0" - "@emotion/serialize" "^1.1.0" - babel-plugin-macros "^3.1.0" - convert-source-map "^1.5.0" - escape-string-regexp "^4.0.0" - find-root "^1.1.0" - source-map "^0.5.7" - stylis "4.0.13" - -"@emotion/cache@^11.10.0", "@emotion/cache@^11.10.3": - version "11.10.3" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.3.tgz#c4f67904fad10c945fea5165c3a5a0583c164b87" - integrity sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ== - dependencies: - "@emotion/memoize" "^0.8.0" - "@emotion/sheet" "^1.2.0" - "@emotion/utils" "^1.2.0" - "@emotion/weak-memoize" "^0.3.0" - stylis "4.0.13" - -"@emotion/hash@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" - integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== - -"@emotion/hash@^0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" - integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== - -"@emotion/is-prop-valid@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" - integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== - dependencies: - "@emotion/memoize" "^0.8.0" - -"@emotion/memoize@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" - integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== - -"@emotion/react@^11.10.4": - version "11.10.4" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.4.tgz#9dc6bccbda5d70ff68fdb204746c0e8b13a79199" - integrity sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA== - dependencies: - "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.10.0" - "@emotion/cache" "^11.10.0" - "@emotion/serialize" "^1.1.0" - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@emotion/utils" "^1.2.0" - "@emotion/weak-memoize" "^0.3.0" - hoist-non-react-statics "^3.3.1" - -"@emotion/serialize@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.0.tgz#b1f97b1011b09346a40e9796c37a3397b4ea8ea8" - integrity sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA== - dependencies: - "@emotion/hash" "^0.9.0" - "@emotion/memoize" "^0.8.0" - "@emotion/unitless" "^0.8.0" - "@emotion/utils" "^1.2.0" - csstype "^3.0.2" - -"@emotion/sheet@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.0.tgz#771b1987855839e214fc1741bde43089397f7be5" - integrity sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w== - -"@emotion/styled@^11.10.4": - version "11.10.4" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.10.4.tgz#e93f84a4d54003c2acbde178c3f97b421fce1cd4" - integrity sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ== - dependencies: - "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.10.0" - "@emotion/is-prop-valid" "^1.2.0" - "@emotion/serialize" "^1.1.0" - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@emotion/utils" "^1.2.0" - -"@emotion/unitless@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" - integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== - -"@emotion/use-insertion-effect-with-fallbacks@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz#ffadaec35dbb7885bd54de3fa267ab2f860294df" - integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== - -"@emotion/utils@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561" - integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw== - -"@emotion/weak-memoize@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" - integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== - -"@eslint/eslintrc@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.4.0" - globals "^13.15.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" - -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" - 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.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.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.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.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.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.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.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.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.1": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.1.tgz#b0799b616d5579cd1067a8ebf1fc1ec74c1e122c" - integrity sha512-vZveG/DLyo+wk4Ga1yx6jSEHrLPgmTt+dFv0dv8URpVCRf0jVhalps1jq/emN/oXnMRsC7cQgAF32DcXLL7BPQ== - 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.5.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.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.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" - -"@humanwhocodes/config-array@^0.10.5": - version "0.10.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc" - integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@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/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== - -"@ipld/car@^3.0.1", "@ipld/car@^3.2.3": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@ipld/car/-/car-3.2.4.tgz#115951ba2255ec51d865773a074e422c169fb01c" - integrity sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw== - dependencies: - "@ipld/dag-cbor" "^7.0.0" - multiformats "^9.5.4" - varint "^6.0.0" - -"@ipld/dag-cbor@^6.0.13", "@ipld/dag-cbor@^6.0.3": - version "6.0.15" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz#aebe7a26c391cae98c32faedb681b1519e3d2372" - integrity sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA== - dependencies: - cborg "^1.5.4" - multiformats "^9.5.4" - -"@ipld/dag-cbor@^7.0.0", "@ipld/dag-cbor@^7.0.2": - 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-pb@^2.0.2": - 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" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - -"@jest/console@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" - integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" - -"@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" - integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/reporters" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== - dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - -"@jest/expect-utils@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.1.tgz#eae61c90f2066540f60d23b8f254f03b7869b22f" - integrity sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg== - dependencies: - jest-get-type "^29.2.0" - -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== - dependencies: - "@jest/types" "^27.5.1" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" - -"@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" - integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.9" - source-map "^0.6.0" - -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== - dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-result@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" - integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== - dependencies: - "@jest/console" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== - dependencies: - "@jest/test-result" "^27.5.1" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" - -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@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" - -"@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== - dependencies: - "@jest/schemas" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jest/types@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" - integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== - dependencies: - "@jest/schemas" "^29.0.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.0", "@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/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@json-rpc-tools/provider@^1.5.5": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/provider/-/provider-1.7.6.tgz#8a17c34c493fa892632e278fd9331104e8491ec6" - integrity sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA== - dependencies: - "@json-rpc-tools/utils" "^1.7.6" - axios "^0.21.0" - safe-json-utils "^1.1.1" - ws "^7.4.0" - -"@json-rpc-tools/types@^1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e" - integrity sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ== - dependencies: - keyvaluestorage-interface "^1.0.0" - -"@json-rpc-tools/utils@^1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/utils/-/utils-1.7.6.tgz#67f04987dbaa2e7adb6adff1575367b75a9a9ba1" - integrity sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw== - dependencies: - "@json-rpc-tools/types" "^1.7.6" - "@pedrouid/environment" "^1.0.1" - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - -"@metamask/safe-event-emitter@2.0.0", "@metamask/safe-event-emitter@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" - integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== - -"@mui/base@5.0.0-alpha.102": - version "5.0.0-alpha.102" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.102.tgz#53b07d0b73d3afe1d2a3feb3b43c8188bb821796" - integrity sha512-5e/qAIP+DlkrZxIt/cwnDw/A3ii22WkoEoWKHyu4+oeGs3/1Flh7qLaN4h5EAIBB9TvTEZEUzvmsTInmIj6ghg== - dependencies: - "@babel/runtime" "^7.19.0" - "@emotion/is-prop-valid" "^1.2.0" - "@mui/types" "^7.2.0" - "@mui/utils" "^5.10.9" - "@popperjs/core" "^2.11.6" - clsx "^1.2.1" - prop-types "^15.8.1" - react-is "^18.2.0" - -"@mui/core-downloads-tracker@^5.10.10": - version "5.10.10" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.10.tgz#a3e5d2f6e5146e9a85d48824c386a31be1746ba3" - integrity sha512-aDuE2PNEh+hAndxEWlZgq7uiFPZKJtnkPDX7v6kSCrMXA32ZaQ6rZi5olmC7DUHt/BaOSxb7N/im/ss0XBkDhA== - -"@mui/icons-material@^5.10.6": - version "5.10.9" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.10.9.tgz#f9522c49797caf30146acc576e37ecb4f95bbc38" - integrity sha512-sqClXdEM39WKQJOQ0ZCPTptaZgqwibhj2EFV9N0v7BU1PO8y4OcX/a2wIQHn4fNuDjIZktJIBrmU23h7aqlGgg== - dependencies: - "@babel/runtime" "^7.19.0" - -"@mui/material@^5.10.7": - version "5.10.10" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.10.10.tgz#df780d933c0aa9d4a5272f32c9cc24bf1ea72cff" - integrity sha512-ioLvqY7VvcePz9dnEIRhpiVvtJmAFmvG6rtLXXzVdMmAVbSaelr5Io07mPz/mCyqE+Uv8/4EuJV276DWO7etzA== - dependencies: - "@babel/runtime" "^7.19.0" - "@mui/base" "5.0.0-alpha.102" - "@mui/core-downloads-tracker" "^5.10.10" - "@mui/system" "^5.10.10" - "@mui/types" "^7.2.0" - "@mui/utils" "^5.10.9" - "@types/react-transition-group" "^4.4.5" - clsx "^1.2.1" - csstype "^3.1.1" - prop-types "^15.8.1" - react-is "^18.2.0" - react-transition-group "^4.4.5" - -"@mui/private-theming@^5.10.9": - version "5.10.9" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.10.9.tgz#c427bfa736455703975cdb108dbde6a174ba7971" - integrity sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg== - dependencies: - "@babel/runtime" "^7.19.0" - "@mui/utils" "^5.10.9" - prop-types "^15.8.1" - -"@mui/styled-engine@^5.10.8": - version "5.10.8" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.10.8.tgz#2db411e4278f06f70ccb6b5cd56ace67109513f6" - integrity sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw== - dependencies: - "@babel/runtime" "^7.19.0" - "@emotion/cache" "^11.10.3" - csstype "^3.1.1" - prop-types "^15.8.1" - -"@mui/system@^5.10.10": - version "5.10.10" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.10.10.tgz#fbc34f29a3b62268c3d2b2be92819a35fc52de90" - integrity sha512-TXwtKN0adKpBrZmO+eilQWoPf2veh050HLYrN78Kps9OhlvO70v/2Kya0+mORFhu9yhpAwjHXO8JII/R4a5ZLA== - dependencies: - "@babel/runtime" "^7.19.0" - "@mui/private-theming" "^5.10.9" - "@mui/styled-engine" "^5.10.8" - "@mui/types" "^7.2.0" - "@mui/utils" "^5.10.9" - clsx "^1.2.1" - csstype "^3.1.1" - prop-types "^15.8.1" - -"@mui/types@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.0.tgz#91380c2d42420f51f404120f7a9270eadd6f5c23" - integrity sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA== - -"@mui/utils@^5.10.3", "@mui/utils@^5.10.9": - version "5.10.9" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.10.9.tgz#9dc455f9230f43eeb81d96a9a4bdb3855bb9ea39" - integrity sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA== - dependencies: - "@babel/runtime" "^7.19.0" - "@types/prop-types" "^15.7.5" - "@types/react-is" "^16.7.1 || ^17.0.0" - prop-types "^15.8.1" - react-is "^18.2.0" - -"@mui/x-data-grid@^5.17.4": - version "5.17.7" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.7.tgz#e338eb715e2bab77f7a191c9f2d212dbe08ae946" - integrity sha512-AwvmXcpqPCJAgakYa7BL+PZcFAwD2ulY9UJf1Bo2G0bDim8rJ5M46ewO0C70oOn5NiZwO/90/bo9/sbb5wwtKQ== - dependencies: - "@babel/runtime" "^7.18.9" - "@mui/utils" "^5.10.3" - clsx "^1.2.1" - prop-types "^15.8.1" - reselect "^4.1.6" - -"@multiformats/murmur3@^1.0.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-1.1.3.tgz#70349166992e5f981f1ddff0200fa775b2bf6606" - integrity sha512-wAPLUErGR8g6Lt+bAZn6218k9YQPym+sjszsXL6o4zfxbA22P+gxWZuuD9wDbwL55xrKO5idpcuQUX7/E3oHcw== - dependencies: - multiformats "^9.5.4" - murmurhash3js-revisited "^3.0.0" - -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== - dependencies: - eslint-scope "5.1.1" - -"@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": - 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" - -"@pedrouid/environment@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" - integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== - -"@pmmmwh/react-refresh-webpack-plugin@^0.5.3": - version "0.5.8" - resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.8.tgz#da3383761e2c0c440610819f3204769022a38d12" - integrity sha512-wxXRwf+IQ6zvHSJZ+5T2RQNEsq+kx4jKRXfFvdt3nBIUzJUAvXEFsUeoaohDe/Kr84MTjGwcuIUPNcstNJORsA== - dependencies: - ansi-html-community "^0.0.8" - common-path-prefix "^3.0.0" - core-js-pure "^3.23.3" - error-stack-parser "^2.0.6" - find-up "^5.0.0" - html-entities "^2.1.0" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - source-map "^0.7.3" - -"@popperjs/core@^2.11.6": - version "2.11.6" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" - integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== - -"@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== - -"@rainbow-me/rainbowkit@^0.7.0": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@rainbow-me/rainbowkit/-/rainbowkit-0.7.1.tgz#edf38dd512c1345624ab54b8ea5ac7d4aba444d0" - integrity sha512-8Q8uZ3ElrIjXhIiumc6s+8KlYzaN5HDTnpC5CjhnYcWkid7ZuKEzb/1uiNARmt0LTm0y7VGdOHRT74UBksxD0A== - dependencies: - "@vanilla-extract/css" "1.9.1" - "@vanilla-extract/dynamic" "2.0.2" - "@vanilla-extract/sprinkles" "1.5.0" - clsx "1.1.1" - qrcode "1.5.0" - react-remove-scroll "2.5.4" - -"@rollup/plugin-babel@^5.2.0": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" - integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@rollup/pluginutils" "^3.1.0" - -"@rollup/plugin-node-resolve@^11.2.1": - version "11.2.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" - integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.19.0" - -"@rollup/plugin-replace@^2.4.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" - integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - magic-string "^0.25.7" - -"@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@rushstack/eslint-patch@^1.1.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== - -"@sinclair/typebox@^0.24.1": - version "0.24.47" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.47.tgz#530b67163714356f93e82bdb871e7db4b7bc564e" - integrity sha512-J4Xw0xYK4h7eC34MNOPQi6IkNxGRck6n4VJpWDzXIFVTW8I/D43Gf+NfWz/v/7NHlzWOPd3+T4PJ4OqklQ2u7A== - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@solana/buffer-layout@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz#75b1b11adc487234821c81dfae3119b73a5fd734" - integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ== - dependencies: - buffer "~6.0.3" - -"@solana/web3.js@1.52.0": - version "1.52.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.52.0.tgz#71bd5c322a31e3e2fa8cda2261c594846810b8ea" - integrity sha512-oG1+BX4nVYZ0OBzmk6DRrY8oBYMsbXVQEf9N9JOfKm+wXSmjxVEEo8v3IPV8mKwR0JvUWuE8lOn3IUDiMlRLgg== - dependencies: - "@babel/runtime" "^7.12.5" - "@ethersproject/sha2" "^5.5.0" - "@solana/buffer-layout" "^4.0.0" - bigint-buffer "^1.1.5" - bn.js "^5.0.0" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.1" - fast-stable-stringify "^1.0.0" - jayson "^3.4.4" - js-sha3 "^0.8.0" - node-fetch "2" - react-native-url-polyfill "^1.3.0" - rpc-websockets "^7.5.0" - secp256k1 "^4.0.2" - superstruct "^0.14.2" - tweetnacl "^1.0.3" - -"@surma/rollup-plugin-off-main-thread@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" - integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== - dependencies: - ejs "^3.1.6" - json5 "^2.2.0" - magic-string "^0.25.0" - string.prototype.matchall "^4.0.6" - -"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" - integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== - -"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" - integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== - -"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" - integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== - -"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" - integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== - -"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" - integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== - -"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" - integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== - -"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" - integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== - -"@svgr/babel-plugin-transform-svg-component@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" - integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== - -"@svgr/babel-preset@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" - integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" - "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" - "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" - "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" - "@svgr/babel-plugin-transform-svg-component" "^5.5.0" - -"@svgr/core@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" - integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== - dependencies: - "@svgr/plugin-jsx" "^5.5.0" - camelcase "^6.2.0" - cosmiconfig "^7.0.0" - -"@svgr/hast-util-to-babel-ast@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" - integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== - dependencies: - "@babel/types" "^7.12.6" - -"@svgr/plugin-jsx@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" - integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== - dependencies: - "@babel/core" "^7.12.3" - "@svgr/babel-preset" "^5.5.0" - "@svgr/hast-util-to-babel-ast" "^5.5.0" - svg-parser "^2.0.2" - -"@svgr/plugin-svgo@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" - integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== - dependencies: - cosmiconfig "^7.0.0" - deepmerge "^4.2.2" - svgo "^1.2.2" - -"@svgr/webpack@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" - integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== - dependencies: - "@babel/core" "^7.12.3" - "@babel/plugin-transform-react-constant-elements" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.5" - "@svgr/core" "^5.5.0" - "@svgr/plugin-jsx" "^5.5.0" - "@svgr/plugin-svgo" "^5.5.0" - loader-utils "^2.0.0" - -"@tanstack/query-core@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.12.0.tgz#0e96adcfe182efc4ea4c21802f7596d56c6cd60a" - integrity sha512-KEiFPNLMFByhNL2s6RBFL6Z5cNdwwQzFpW/II3GY+rEuQ343ZEoVyQ48zlUXXkEkbamQFIFg2onM8Pxf0Yo01A== - -"@tanstack/query-persist-client-core@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.12.0.tgz#05c2e6658933cf193ce997c3ff281d21e6febebe" - integrity sha512-tCfCb3ok1IdtvryXQ2HR90HDXG2iz4ycyZO2TdHGrIwa10ML8yxfLNxrKFhTd0tRksgrSBZkWXR5y17NFIKD+Q== - -"@tanstack/query-sync-storage-persister@^4.0.10": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.12.0.tgz#b9a79576416d95f7cd15063541a69f13f89afc62" - integrity sha512-u55bQRQGPXBHi3Zwe2L/P3Ph4L+Cca045jIp2Rt+kwRRSrlH0Ll9VQ4SZRCCFVjooKuNVEMkr661JC99C5kslg== - dependencies: - "@tanstack/query-persist-client-core" "4.12.0" - -"@tanstack/react-query-persist-client@^4.0.10": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.12.0.tgz#5c08f9b05e003ae65febe386323077564cd907a3" - integrity sha512-ftm12tW7wngpBb0krt4Mf5SnodwG1b7IQIfp7nDYSCTE3NwoEuOu5a9iHSb77y7CYCzNMmP7Qu6W/NOIvM5SQA== - dependencies: - "@tanstack/query-persist-client-core" "4.12.0" - -"@tanstack/react-query@^4.0.10": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.12.0.tgz#2cb233ef1ccf7537aeed61ca171fc3dcc52d9c57" - integrity sha512-prchV1q+CJ0ZVo8Rts2cOF3azDfQizZZySmH6XXsXRcPTbir0sgb9fp0vY/5l5ZkSYjTvWt/OL8WQhAhYMSvrA== - dependencies: - "@tanstack/query-core" "4.12.0" - use-sync-external-store "^1.2.0" - -"@testing-library/dom@^8.5.0": - version "8.19.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.19.0.tgz#bd3f83c217ebac16694329e413d9ad5fdcfd785f" - integrity sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^4.2.0" - aria-query "^5.0.0" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.4.4" - pretty-format "^27.0.2" - -"@testing-library/jest-dom@^5.16.5": - version "5.16.5" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" - integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== - dependencies: - "@adobe/css-tools" "^4.0.1" - "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" - aria-query "^5.0.0" - chalk "^3.0.0" - css.escape "^1.5.1" - dom-accessibility-api "^0.5.6" - lodash "^4.17.15" - redent "^3.0.0" - -"@testing-library/react@^13.4.0": - version "13.4.0" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-13.4.0.tgz#6a31e3bf5951615593ad984e96b9e5e2d9380966" - integrity sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw== - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.5.0" - "@types/react-dom" "^18.0.0" - -"@testing-library/user-event@^13.5.0": - version "13.5.0" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295" - integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== - dependencies: - "@babel/runtime" "^7.12.5" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@types/aria-query@^4.2.0": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" - integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== - dependencies: - "@babel/types" "^7.3.0" - -"@types/bn.js@^4.11.3": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== - dependencies: - "@types/node" "*" - -"@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*", "@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== - dependencies: - "@types/node" "*" - -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.6.tgz#7976f054c1bccfcf514bff0564c0c41df5c08207" - integrity sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.31" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" - integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*", "@types/express@^4.17.13": - version "4.17.14" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/html-minifier-terser@^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" - integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== - -"@types/http-proxy@^1.17.8": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" - integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - 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== - -"@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== - 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== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@*": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.0.tgz#fa98e08b46ab119f1a74a9552c48c589f5378a96" - integrity sha512-KO7bPV21d65PKwv3LLsD8Jn3E05pjNjRZvkm+YTacWhVmykAb07wW6IkZUmQAltwQafNcDUEUrMO2h3jeBSisg== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/jest@^27.5.2": - version "27.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" - integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== - dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" - -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@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/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@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.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/node@*", "@types/node@>=13.7.0": - version "18.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.2.tgz#c59b7641832531264fda3f1ba610362dc9a7dfc8" - integrity sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw== - -"@types/node@^12.12.54": - 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@^16.11.68": - version "16.11.68" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.68.tgz#30ee923f4d940793e0380f5ce61c0bd4b7196b6c" - integrity sha512-JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ== - -"@types/normalize-package-data@^2.4.0": - 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== - -"@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== - -"@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== - dependencies: - "@types/node" "*" - -"@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== - -"@types/prop-types@*", "@types/prop-types@^15.7.5": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.6": - version "18.0.6" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" - integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== - dependencies: - "@types/react" "*" - -"@types/react-is@^16.7.1 || ^17.0.0": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-17.0.3.tgz#2d855ba575f2fc8d17ef9861f084acc4b90a137a" - integrity sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw== - dependencies: - "@types/react" "*" - -"@types/react-transition-group@^4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.5.tgz#aae20dcf773c5aa275d5b9f7cdbca638abc5e416" - integrity sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^18.0.21": - version "18.0.21" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.21.tgz#b8209e9626bb00a34c76f55482697edd2b43cc67" - integrity sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== - -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== - -"@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== - dependencies: - "@types/node" "*" - -"@types/semver@^7.3.12": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" - integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== - -"@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" - integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== - dependencies: - "@types/mime" "*" - "@types/node" "*" - -"@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== - dependencies: - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/testing-library__jest-dom@^5.9.1": - version "5.14.5" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" - integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== - dependencies: - "@types/jest" "*" - -"@types/trusted-types@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" - integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== - -"@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.5.1": - version "8.5.3" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" - integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== - 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== - -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@^5.5.0": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.1.tgz#3203a6ff396b1194083faaa6e5110c401201d7d5" - integrity sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg== - dependencies: - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/type-utils" "5.40.1" - "@typescript-eslint/utils" "5.40.1" - debug "^4.3.4" - ignore "^5.2.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/experimental-utils@^5.0.0": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.40.1.tgz#2fa6b4f768d42fe7174c34cd02fa79717e4e2bfe" - integrity sha512-lynjgnQuoCgxtYgYWjoQqijk0kYQNiztnVhoqha3N0kMYFVPURidzCq2vn9XvUUu2XxP130ZRKVDKyeGa2bhbw== - dependencies: - "@typescript-eslint/utils" "5.40.1" - -"@typescript-eslint/parser@^5.5.0": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.40.1.tgz#e7f8295dd8154d0d37d661ddd8e2f0ecfdee28dd" - integrity sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg== - dependencies: - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/typescript-estree" "5.40.1" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz#a7a5197dfd234622a2421ea590ee0ccc02e18dfe" - integrity sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg== - dependencies: - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/visitor-keys" "5.40.1" - -"@typescript-eslint/type-utils@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.40.1.tgz#091e4ce3bebbdb68f4980bae9dee2e4e1725f601" - integrity sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q== - dependencies: - "@typescript-eslint/typescript-estree" "5.40.1" - "@typescript-eslint/utils" "5.40.1" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.40.1.tgz#de37f4f64de731ee454bb2085d71030aa832f749" - integrity sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw== - -"@typescript-eslint/typescript-estree@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz#9a7d25492f02c69882ce5e0cd1857b0c55645d72" - integrity sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA== - dependencies: - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/visitor-keys" "5.40.1" - 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.40.1", "@typescript-eslint/utils@^5.13.0": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.40.1.tgz#3204fb73a559d3b7bab7dc9d3c44487c2734a9ca" - integrity sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/typescript-estree" "5.40.1" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz#f3d2bf5af192f4432b84cec6fdcb387193518754" - integrity sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw== - dependencies: - "@typescript-eslint/types" "5.40.1" - eslint-visitor-keys "^3.3.0" - -"@vanilla-extract/css@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@vanilla-extract/css/-/css-1.9.1.tgz#337b79faa5f8f98915a90c3fe3c30b54be746c09" - integrity sha512-pu2SFiff5jRhPwvGoj8cM5l/qIyLvigOmy22ss5DGjwV5pJYezRjDLxWumi2luIwioMWvh9EozCjyfH8nq+7fQ== - dependencies: - "@emotion/hash" "^0.8.0" - "@vanilla-extract/private" "^1.0.3" - ahocorasick "1.0.2" - chalk "^4.1.1" - css-what "^5.0.1" - cssesc "^3.0.0" - csstype "^3.0.7" - deep-object-diff "^1.1.0" - deepmerge "^4.2.2" - media-query-parser "^2.0.2" - outdent "^0.8.0" - -"@vanilla-extract/dynamic@2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@vanilla-extract/dynamic/-/dynamic-2.0.2.tgz#13a3e461964c8029a52e6b6b631009ca6a8b27f5" - integrity sha512-U4nKaEQ8Kuz+exXEr51DUpyaOuzo24/S/k1YbDPQR06cYcNjQqvwFRnwWtZ+9ImocqM1wTKtzrdUgSTtLGIwAg== - dependencies: - "@vanilla-extract/private" "^1.0.3" - -"@vanilla-extract/private@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@vanilla-extract/private/-/private-1.0.3.tgz#7ec72bc2ff6fe51f9d650f962e8d1989b073690f" - integrity sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ== - -"@vanilla-extract/sprinkles@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" - integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== - -"@wagmi/core@^0.5.8": - version "0.5.8" - resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.5.8.tgz#9e375c0dd31c3b22973d000694e1c2b06c05dbbc" - integrity sha512-1mABf1bXyn3AOHyQkios4FTGqoARa8y1tf7GMH6t1c7q0nAMSbpXoTDdjEidUHy8qhWoG0y3Ez4PjCi8WQnmMg== - dependencies: - eventemitter3 "^4.0.7" - zustand "^4.0.0" - -"@walletconnect/browser-utils@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951" - integrity sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A== - dependencies: - "@walletconnect/safe-json" "1.0.0" - "@walletconnect/types" "^1.8.0" - "@walletconnect/window-getters" "1.0.0" - "@walletconnect/window-metadata" "1.0.0" - detect-browser "5.2.0" - -"@walletconnect/client@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.8.0.tgz#6f46b5499c7c861c651ff1ebe5da5b66225ca696" - integrity sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ== - dependencies: - "@walletconnect/core" "^1.8.0" - "@walletconnect/iso-crypto" "^1.8.0" - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - -"@walletconnect/core@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" - integrity sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw== - dependencies: - "@walletconnect/socket-transport" "^1.8.0" - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - -"@walletconnect/crypto@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.2.tgz#3fcc2b2cde6f529a19eadd883dc555cd0e861992" - integrity sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ== - dependencies: - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/environment" "^1.0.0" - "@walletconnect/randombytes" "^1.0.2" - aes-js "^3.1.2" - hash.js "^1.1.7" - -"@walletconnect/encoding@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.1.tgz#93c18ce9478c3d5283dbb88c41eb2864b575269a" - integrity sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA== - dependencies: - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" - -"@walletconnect/environment@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" - integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== - -"@walletconnect/ethereum-provider@^1.7.8": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-1.8.0.tgz#ed1dbf9cecc3b818758a060d2f9017c50bde1d32" - integrity sha512-Nq9m+oo5P0F+njsROHw9KMWdoc/8iGHYzQdkjJN/1C7DtsqFRg5k5a3hd9rzCLpbPsOC1q8Z5lRs6JQgDvPm6Q== - dependencies: - "@walletconnect/client" "^1.8.0" - "@walletconnect/jsonrpc-http-connection" "^1.0.2" - "@walletconnect/jsonrpc-provider" "^1.0.5" - "@walletconnect/signer-connection" "^1.8.0" - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - eip1193-provider "1.0.1" - eventemitter3 "4.0.7" - -"@walletconnect/iso-crypto@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" - integrity sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ== - dependencies: - "@walletconnect/crypto" "^1.0.2" - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - -"@walletconnect/jsonrpc-http-connection@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.3.tgz#0343811bb33fb8a3823cb3306b306cf2ed61e99a" - integrity sha512-npPvDG2JxyxoqOphDiyjp5pPeASRBrlfQS39wHESPHlFIjBuvNt9lV9teh53MK9Ncbyxh4y2qEKMfPgcUulTRg== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.3" - "@walletconnect/safe-json" "^1.0.0" - cross-fetch "^3.1.4" - -"@walletconnect/jsonrpc-provider@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.5.tgz#1a66053b6f083a9885a32b7c2c8f6a376f1a4458" - integrity sha512-v61u4ZIV8+p9uIHS2Kl2YRj/2idrQiHcrbrJXw3McQkEJtj9mkCofr1Hu/n419wSRM5uiNK8Z4WRS9zGTTAhWQ== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.3" - "@walletconnect/safe-json" "^1.0.0" - -"@walletconnect/jsonrpc-types@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz#a96b4bb2bcc8838a70e06f15c1b5ab11c47d8e95" - integrity sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw== - dependencies: - keyvaluestorage-interface "^1.0.0" - -"@walletconnect/jsonrpc-utils@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz#5bd49865eef0eae48e8b45a06731dc18691cf8c7" - integrity sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ== - dependencies: - "@walletconnect/environment" "^1.0.0" - "@walletconnect/jsonrpc-types" "^1.0.1" - -"@walletconnect/mobile-registry@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5" - integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw== - -"@walletconnect/qrcode-modal@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz#ddd6f5c9b7ee52c16adf9aacec2a3eac4994caea" - integrity sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg== - dependencies: - "@walletconnect/browser-utils" "^1.8.0" - "@walletconnect/mobile-registry" "^1.4.0" - "@walletconnect/types" "^1.8.0" - copy-to-clipboard "^3.3.1" - preact "10.4.1" - qrcode "1.4.4" - -"@walletconnect/randombytes@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.2.tgz#95c644251a15e6675f58fbffc9513a01486da49c" - integrity sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A== - dependencies: - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/environment" "^1.0.0" - randombytes "^2.1.0" - -"@walletconnect/safe-json@1.0.0", "@walletconnect/safe-json@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" - integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== - -"@walletconnect/signer-connection@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz#6cdf490df770e504cc1a550bdb5bac7696b130bc" - integrity sha512-+YAaTAP52MWZJ2wWnqKClKCPlPHBo6reURFe0cWidLADh9mi/kPWGALZ5AENK22zpem1bbKV466rF5Rzvu0ehA== - dependencies: - "@walletconnect/client" "^1.8.0" - "@walletconnect/jsonrpc-types" "^1.0.1" - "@walletconnect/jsonrpc-utils" "^1.0.3" - "@walletconnect/qrcode-modal" "^1.8.0" - "@walletconnect/types" "^1.8.0" - eventemitter3 "4.0.7" - -"@walletconnect/socket-transport@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz#9a1128a249628a0be11a0979b522fe82b44afa1b" - integrity sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ== - dependencies: - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - ws "7.5.3" - -"@walletconnect/types@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" - integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== - -"@walletconnect/utils@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" - integrity sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA== - dependencies: - "@walletconnect/browser-utils" "^1.8.0" - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/jsonrpc-utils" "^1.0.3" - "@walletconnect/types" "^1.8.0" - bn.js "4.11.8" - js-sha3 "0.8.0" - query-string "6.13.5" - -"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" - integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== - -"@walletconnect/window-metadata@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" - integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA== - dependencies: - "@walletconnect/window-getters" "^1.0.0" - -"@web-std/blob@^3.0.1", "@web-std/blob@^3.0.3": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@web-std/blob/-/blob-3.0.4.tgz#dd67a685547331915428d69e723c7da2015c3fc5" - integrity sha512-+dibyiw+uHYK4dX5cJ7HA+gtDAaUUe6JsOryp2ZpAC7h4ICsh49E34JwHoEKPlPvP0llCrNzz45vvD+xX5QDBg== - dependencies: - "@web-std/stream" "1.0.0" - web-encoding "1.1.5" - -"@web-std/fetch@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@web-std/fetch/-/fetch-3.0.3.tgz#507e1371825298aae61172b0da439570437d3982" - integrity sha512-PtaKr6qvw2AmKChugzhQWuTa12dpbogHRBxwcleAZ35UhWucnfD4N+g3f7qYK2OeioSWTK3yMf6n/kOOfqxHaQ== - dependencies: - "@web-std/blob" "^3.0.3" - "@web-std/form-data" "^3.0.2" - "@web3-storage/multipart-parser" "^1.0.0" - data-uri-to-buffer "^3.0.1" - -"@web-std/file@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@web-std/file/-/file-3.0.2.tgz#b84cc9ed754608b18dcf78ac62c40dbcc6a94692" - integrity sha512-pIH0uuZsmY8YFvSHP1NsBIiMT/1ce0suPrX74fEeO3Wbr1+rW0fUGEe4d0R99iLwXtyCwyserqCFI4BJkJlkRA== - dependencies: - "@web-std/blob" "^3.0.3" - -"@web-std/form-data@^3.0.0", "@web-std/form-data@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@web-std/form-data/-/form-data-3.0.2.tgz#c71d9def6a593138ea92fe3d1ffbce19f43e869c" - integrity sha512-rhc8IRw66sJ0FHcnC84kT3mTN6eACTuNftkt1XSl1Ef6WRKq4Pz65xixxqZymAZl1K3USpwhLci4SKNn4PYxWQ== - dependencies: - web-encoding "1.1.5" - -"@web-std/stream@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@web-std/stream/-/stream-1.0.0.tgz#01066f40f536e4329d9b696dc29872f3a14b93c1" - integrity sha512-jyIbdVl+0ZJyKGTV0Ohb9E6UnxP+t7ZzX4Do3AHjZKxUXKMs9EmqnBDQgHF7bEw0EzbQygOjtt/7gvtmi//iCQ== - dependencies: - web-streams-polyfill "^3.1.1" - -"@web3-storage/multipart-parser@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz#6b69dc2a32a5b207ba43e556c25cc136a56659c4" - integrity sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw== - -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== - -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@zxing/text-encoding@0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" - integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== - -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.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -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" - -accepts@~1.3.4, accepts@~1.3.5, 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@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - -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-node@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0, acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.0.0, acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -address@^1.0.1, address@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.1.tgz#25bb61095b7522d65b357baa11bc05492d4c8acd" - integrity sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA== - -adjust-sourcemap-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" - integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== - dependencies: - loader-utils "^2.0.0" - regex-parser "^2.2.11" - -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.2: - 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" - -ahocorasick@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ahocorasick/-/ahocorasick-1.0.2.tgz#9eee93aef9d02bfb476d9b648d9b7a40ef2fd500" - integrity sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA== - -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-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: - 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.6.0, ajv@^8.8.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: - 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-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -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@^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: - 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== - -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.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -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@^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" - -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== - -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" - -aria-query@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.2.tgz#0b8a744295271861e1d933f8feca13f9b70cfdc1" - integrity sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q== - -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-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-includes@^3.1.4, array-includes@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" - integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -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.prototype.flat@^1.2.5: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" - integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" - -array.prototype.reduce@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" - integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asap@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -asn1.js@^5.0.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" - -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== - -async-mutex@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.2.6.tgz#0d7a3deb978bc2b984d5908a2038e1ae2e54ff40" - integrity sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw== - dependencies: - tslib "^2.0.0" - -async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - -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== - -autoprefixer@^10.4.11: - version "10.4.12" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.12.tgz#183f30bf0b0722af54ee5ef257f7d4320bb33129" - integrity sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q== - dependencies: - browserslist "^4.21.4" - caniuse-lite "^1.0.30001407" - fraction.js "^4.2.0" - 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== - -axe-core@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" - integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== - -axios@^0.21.0: - 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" - -axobject-query@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== - -babel-jest@^27.4.2, babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== - dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-loader@^8.2.3: - version "8.2.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" - integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-macros@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" - integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== - dependencies: - "@babel/runtime" "^7.12.5" - cosmiconfig "^7.0.0" - resolve "^1.19.0" - -babel-plugin-named-asset-import@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" - integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== - -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" - -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - -babel-plugin-transform-react-remove-prop-types@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" - integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-react-app@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz#ed6005a20a24f2c88521809fa9aea99903751584" - integrity sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg== - dependencies: - "@babel/core" "^7.16.0" - "@babel/plugin-proposal-class-properties" "^7.16.0" - "@babel/plugin-proposal-decorators" "^7.16.4" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" - "@babel/plugin-proposal-numeric-separator" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-private-methods" "^7.16.0" - "@babel/plugin-transform-flow-strip-types" "^7.16.0" - "@babel/plugin-transform-react-display-name" "^7.16.0" - "@babel/plugin-transform-runtime" "^7.16.4" - "@babel/preset-env" "^7.16.4" - "@babel/preset-react" "^7.16.0" - "@babel/preset-typescript" "^7.16.0" - "@babel/runtime" "^7.16.3" - babel-plugin-macros "^3.1.0" - babel-plugin-transform-react-remove-prop-types "^0.4.24" - -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: - 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" - -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== - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -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== - -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== - dependencies: - bluebird "^3.5.5" - check-types "^11.1.1" - hoopy "^0.1.4" - tryer "^1.0.1" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -bigint-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" - integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== - dependencies: - bindings "^1.3.0" - -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== - -bind-decorator@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/bind-decorator/-/bind-decorator-1.0.11.tgz#e41bc06a1f65dd9cec476c91c5daf3978488252f" - integrity sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg== - -bindings@^1.3.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" - -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" - -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" - -blockstore-core@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/blockstore-core/-/blockstore-core-1.0.5.tgz#2e34b6a7faae0d4b6c98dc8573c6f998eb457f36" - integrity sha512-i/9CUMMvBALVbtSqUIuiWB3tk//a4Q2I2CEWiBuYNnhJvk/DWplXjLt8Sqc5VGkRVXVPSsEuH8fUtqJt5UFYcA== - dependencies: - err-code "^3.0.1" - interface-blockstore "^2.0.2" - interface-store "^2.0.1" - it-all "^1.0.4" - it-drain "^1.0.4" - it-filter "^1.0.2" - it-take "^1.0.1" - multiformats "^9.4.7" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: - 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.1, 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" - -bonjour-service@^1.0.11: - version "1.0.14" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7" - integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ== - dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - -boolbase@^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== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -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@^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.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-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.2, 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== - -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" - -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.20.3, browserslist@^4.21.3, browserslist@^4.21.4: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -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== - 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" - -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - -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-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, buffer-from@^1.1.1: - 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-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@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2" - integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -buffer@^5.4.3: - 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" - -buffer@^6.0.1, buffer@^6.0.3, 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" - integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== - dependencies: - node-gyp-build "^4.3.0" - -builtin-modules@^3.1.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== - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -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@^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.2.0, camelcase@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001407: - version "1.0.30001422" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz#f2d7c6202c49a8359e6e35add894d88ef93edba1" - integrity sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog== - -carbites@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/carbites/-/carbites-1.0.6.tgz#0eac206c87b60e09b758a4e820af000dda4f8dd1" - integrity sha512-dS9IQvnrb5VIRvSTNz5Ff+mB9d2MFfi5mojtJi7Rlss79VeF190jr0sZdA7eW0CGHotvHkZaWuM6wgfD9PEFRg== - dependencies: - "@ipld/car" "^3.0.1" - "@ipld/dag-cbor" "^6.0.3" - "@ipld/dag-pb" "^2.0.2" - multiformats "^9.0.4" - -case-sensitive-paths-webpack-plugin@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" - integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== - -cborg@^1.5.4, cborg@^1.6.0: - version "1.9.5" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.9.5.tgz#1e3b8a8407b3665566001f8841c9d72d7a80b2d5" - integrity sha512-fLBv8wmqtlXqy1Yu+pHzevAIkW6k2K0ZtMujNzWphLsA34vzzg9BHn+5GmZqOJkSA9V7EMKsWrf6K976c1QMjQ== - -chalk@^2.0.0, chalk@^2.4.1: - 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@^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@^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" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -char-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" - integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== - -check-types@^11.1.1: - version "11.1.2" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" - integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== - -chokidar@^3.4.2, 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" - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" - integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== - -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" - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -clean-css@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" - integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== - dependencies: - source-map "~0.6.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" - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -clsx@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== - -clsx@^1.1.0, clsx@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" - integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - 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.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== - -colord@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - -colorette@^2.0.10: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== - -combined-stream@^1.0.8: - 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" - -commander@^2.20.0, commander@^2.20.3: - 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@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -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.0: - 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== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -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== - -confusing-browser-globals@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" - integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - -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-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - 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== - -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: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -copy-to-clipboard@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz#5b263ec2366224b100181dded7ce0579b340c107" - integrity sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg== - dependencies: - toggle-selection "^1.0.6" - -core-js-compat@^3.25.1: - version "3.25.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.5.tgz#0016e8158c904f7b059486639e6e82116eafa7d9" - integrity sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA== - dependencies: - browserslist "^4.21.4" - -core-js-pure@^3.23.3, core-js-pure@^3.25.1: - version "3.25.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.5.tgz#79716ba54240c6aa9ceba6eee08cf79471ba184d" - integrity sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg== - -core-js@^3.19.2: - version "3.25.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.5.tgz#e86f651a2ca8a0237a5f064c2fe56cef89646e27" - integrity sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw== - -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== - -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@^7.0.0: - 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.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -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.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" - -cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -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-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-blank-pseudo@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" - integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== - dependencies: - postcss-selector-parser "^6.0.9" - -css-declaration-sorter@^6.3.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" - integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== - -css-has-pseudo@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" - integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== - dependencies: - postcss-selector-parser "^6.0.9" - -css-loader@^6.5.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e" - integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== - dependencies: - icss-utils "^5.1.0" - postcss "^8.4.7" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.2.0" - semver "^7.3.5" - -css-minimizer-webpack-plugin@^3.2.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz#ab78f781ced9181992fe7b6e4f3422e76429878f" - integrity sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q== - dependencies: - cssnano "^5.0.6" - jest-worker "^27.0.2" - postcss "^8.3.5" - schema-utils "^4.0.0" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - -css-prefers-color-scheme@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" - integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@^4.1.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== - -css-what@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -css.escape@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== - -cssdb@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.0.2.tgz#e1cadfe2be318797bd02ca929d2b3c7bac332abc" - integrity sha512-Vm4b6P/PifADu0a76H0DKRNVWq3Rq9xa/Nx6oEMUBJlwTUuZoZ3dkZxo8Gob3UEL53Cq+Ma1GBgISed6XEBs3w== - -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== - -cssnano-preset-default@^5.2.12: - version "5.2.12" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz#ebe6596ec7030e62c3eb2b3c09f533c0644a9a97" - integrity sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew== - dependencies: - css-declaration-sorter "^6.3.0" - cssnano-utils "^3.1.0" - postcss-calc "^8.2.3" - postcss-colormin "^5.3.0" - postcss-convert-values "^5.1.2" - postcss-discard-comments "^5.1.2" - postcss-discard-duplicates "^5.1.0" - postcss-discard-empty "^5.1.1" - postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.6" - postcss-merge-rules "^5.1.2" - postcss-minify-font-values "^5.1.0" - postcss-minify-gradients "^5.1.1" - postcss-minify-params "^5.1.3" - postcss-minify-selectors "^5.2.1" - postcss-normalize-charset "^5.1.0" - postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.1" - postcss-normalize-repeat-style "^5.1.1" - postcss-normalize-string "^5.1.0" - postcss-normalize-timing-functions "^5.1.0" - postcss-normalize-unicode "^5.1.0" - postcss-normalize-url "^5.1.0" - postcss-normalize-whitespace "^5.1.1" - postcss-ordered-values "^5.1.3" - postcss-reduce-initial "^5.1.0" - postcss-reduce-transforms "^5.1.0" - postcss-svgo "^5.1.0" - postcss-unique-selectors "^5.1.1" - -cssnano-utils@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" - integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== - -cssnano@^5.0.6: - version "5.1.13" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.13.tgz#83d0926e72955332dc4802a7070296e6258efc0a" - integrity sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ== - dependencies: - cssnano-preset-default "^5.2.12" - lilconfig "^2.0.3" - yaml "^1.10.2" - -csso@^4.0.2, csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -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.0.2, csstype@^3.0.7, csstype@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== - -damerau-levenshtein@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== - -data-uri-to-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" - integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@2.6.9, debug@^2.6.0, 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@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, 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@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, 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== - -decimal.js@^10.2.1: - version "10.4.2" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" - integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -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== - -deep-object-diff@^1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.7.tgz#348b3246f426427dd633eaa50e1ed1fc2eafc7e4" - integrity sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.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: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -defined@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" - integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== - -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== - -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== - -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.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" - integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detect-node-es@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" - integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -detect-port-alt@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" - integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -detective@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" - integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== - dependencies: - acorn-node "^1.8.2" - defined "^1.0.0" - minimist "^1.2.6" - -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-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - -diff-sequences@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" - integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== - -dijkstrajs@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" - integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== - -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-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - -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" - -dns-packet@^5.2.2: - version "5.4.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" - integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: - version "0.5.14" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56" - integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg== - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-helpers@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" - integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^3.0.2" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.5.2, domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.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" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -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== - -eip1193-provider@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/eip1193-provider/-/eip1193-provider-1.0.1.tgz#420d29cf4f6c443e3f32e718fb16fafb250637c3" - integrity sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g== - dependencies: - "@json-rpc-tools/provider" "^1.5.5" - -ejs@^3.1.6: - 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" - -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.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== - -elliptic@6.5.4, elliptic@^6.5.2, 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" - -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -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== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -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@^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" - -enhanced-resolve@^5.10.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" - integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -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== - -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.6: - 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" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0, es-abstract@^1.20.1: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - 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-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -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@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-promise@^4.0.3: - 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" - -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-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@^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== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -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== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-react-app@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz#73ba3929978001c5c86274c017ea57eb5fa644b4" - integrity sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA== - dependencies: - "@babel/core" "^7.16.0" - "@babel/eslint-parser" "^7.16.3" - "@rushstack/eslint-patch" "^1.1.0" - "@typescript-eslint/eslint-plugin" "^5.5.0" - "@typescript-eslint/parser" "^5.5.0" - babel-preset-react-app "^10.0.1" - confusing-browser-globals "^1.0.11" - eslint-plugin-flowtype "^8.0.3" - eslint-plugin-import "^2.25.3" - eslint-plugin-jest "^25.3.0" - eslint-plugin-jsx-a11y "^6.5.1" - eslint-plugin-react "^7.27.1" - eslint-plugin-react-hooks "^4.3.0" - eslint-plugin-testing-library "^5.0.1" - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - -eslint-module-utils@^2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== - dependencies: - debug "^3.2.7" - -eslint-plugin-flowtype@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz#e1557e37118f24734aa3122e7536a038d34a4912" - integrity sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ== - dependencies: - lodash "^4.17.21" - string-natural-compare "^3.0.1" - -eslint-plugin-import@^2.25.3: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" - has "^1.0.3" - is-core-module "^2.8.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-jest@^25.3.0: - version "25.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" - integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== - dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" - -eslint-plugin-jsx-a11y@^6.5.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff" - integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q== - dependencies: - "@babel/runtime" "^7.18.9" - aria-query "^4.2.2" - array-includes "^3.1.5" - ast-types-flow "^0.0.7" - axe-core "^4.4.3" - axobject-query "^2.2.0" - damerau-levenshtein "^1.0.8" - emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.3.2" - language-tags "^1.0.5" - minimatch "^3.1.2" - semver "^6.3.0" - -eslint-plugin-react-hooks@^4.3.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" - integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== - -eslint-plugin-react@^7.27.1: - version "7.31.10" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz#6782c2c7fe91c09e715d536067644bbb9491419a" - integrity sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA== - dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" - prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.7" - -eslint-plugin-testing-library@^5.0.1: - version "5.7.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.7.3.tgz#2397e162f18899f13cee1d70a98238c1365a29bd" - integrity sha512-uLMVBkBI3rNOrV3mbtjLsm76X0cPac+cBNYn8ZwwvsYiDKKBXHAjZGtbjvRHEwNxwrsJm+rx4RtGWDjFRTWNuw== - dependencies: - "@typescript-eslint/utils" "^5.13.0" - -eslint-scope@5.1.1, 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: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint-webpack-plugin@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" - integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w== - dependencies: - "@types/eslint" "^7.29.0 || ^8.4.1" - jest-worker "^28.0.2" - micromatch "^4.0.5" - normalize-path "^3.0.0" - schema-utils "^4.0.0" - -eslint@^8.3.0: - version "8.25.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b" - integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A== - dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.10.5" - "@humanwhocodes/module-importer" "^1.0.1" - 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.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" - 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.1" - globals "^13.15.0" - globby "^11.1.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - 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" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esprima@^4.0.0, esprima@^4.0.1: - 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: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - 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: - 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, estraverse@^5.3.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@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -esutils@^2.0.2: - 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: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eth-block-tracker@4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626" - integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== - dependencies: - "@babel/plugin-transform-runtime" "^7.5.5" - "@babel/runtime" "^7.5.5" - eth-query "^2.1.0" - json-rpc-random-id "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-filters@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz#eb35e1dfe9357ace8a8908e7daee80b2cd60a10d" - integrity sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw== - dependencies: - "@metamask/safe-event-emitter" "^2.0.0" - async-mutex "^0.2.6" - eth-json-rpc-middleware "^6.0.0" - eth-query "^2.1.2" - json-rpc-engine "^6.1.0" - pify "^5.0.0" - -eth-json-rpc-middleware@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz#4fe16928b34231a2537856f08a5ebbc3d0c31175" - integrity sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-query "^2.1.2" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-util "^5.1.2" - json-rpc-engine "^5.3.0" - json-stable-stringify "^1.0.1" - node-fetch "^2.6.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -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-rpc-errors@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.2.tgz#11bc164e25237a679061ac05b7da7537b673d3b7" - integrity sha512-n+Re6Gu8XGyfFy1it0AwbD1x0MUzspQs0D5UiPs1fFPCr6WAwZM+vbIhXheBFrpgosqN9bs5PqlB4Q61U/QytQ== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-rpc-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz#d7b22653c70dbf9defd4ef490fd08fe70608ca10" - integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-rpc-errors@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a" - integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - integrity sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw== - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -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" - -"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-util@^5.1.1, ethereumjs-util@^5.1.2: - 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@^6.0.0: - 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" - -ethers@^5.6.8: - version "5.7.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.1.tgz#48c83a44900b5f006eb2f65d3ba6277047fd4f33" - integrity sha512-5krze4dRLITX7FpU8J4WscXqADiKmyeNlylmmDLbS95DaZpBhDe2YSwRQwKXWNyXcox7a3gBgm/MkGXV1O1S/Q== - 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.1" - "@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-util@0.1.6, ethjs-util@^0.1.3: - 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.7, eventemitter3@^4.0.0, eventemitter3@^4.0.7: - 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.2.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.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.0.0: - 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" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - -expect@^29.0.0: - version "29.2.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.1.tgz#25752d0df92d3daa5188dc8804de1f30759658cf" - integrity sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ== - dependencies: - "@jest/expect-utils" "^29.2.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.1" - jest-message-util "^29.2.1" - jest-util "^29.2.1" - -express@^4.17.3: - 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" - -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== - -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-fifo@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.1.0.tgz#17d1a3646880b9891dfa0c54e69c5fef33cad779" - integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== - -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - 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, fast-json-stable-stringify@^2.1.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-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-safe-stringify@^2.0.6: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -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" - -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-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-saver@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" - integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== - -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.1: - 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" - -filesize@^8.0.6: - version "8.0.7" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" - integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== - -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" - -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-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-root@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - -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.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-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" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -follow-redirects@^1.0.0, follow-redirects@^1.14.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -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" - -fork-ts-checker-webpack-plugin@^6.5.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz#4f67183f2f9eb8ba7df7177ce3cf3e75cdafb340" - integrity sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA== - dependencies: - "@babel/code-frame" "^7.8.3" - "@types/json-schema" "^7.0.5" - chalk "^4.1.0" - chokidar "^3.4.2" - cosmiconfig "^6.0.0" - deepmerge "^4.2.2" - fs-extra "^9.0.0" - glob "^7.1.6" - memfs "^3.1.2" - minimatch "^3.0.4" - schema-utils "2.7.0" - semver "^7.3.2" - tapable "^1.0.0" - -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" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^9.0.0, fs-extra@^9.0.1: - 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-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== - -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.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== - -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.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - 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== - -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-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-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -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-nonce@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" - integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== - -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-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-stream@^6.0.0: - 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" - -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== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.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-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - 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" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -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.15.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== - dependencies: - type-fest "^0.20.2" - -globby@^11.0.4, 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" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - -hamt-sharding@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-2.0.1.tgz#f45686d0339e74b03b233bee1bde9587727129b6" - integrity sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA== - dependencies: - sparse-array "^1.3.1" - uint8arrays "^3.0.0" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -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== - -harmony-reflect@^1.4.6: - version "1.6.2" - resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" - integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== - -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-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== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1, 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@^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" - -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" - -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== - -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" - -hoist-non-react-statics@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -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: - 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" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-entities@^2.1.0, html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-minifier-terser@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" - integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -html-webpack-plugin@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" - integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== - dependencies: - "@types/html-minifier-terser" "^6.0.0" - html-minifier-terser "^6.0.2" - lodash "^4.17.21" - pretty-error "^4.0.0" - tapable "^2.0.0" - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -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.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-proxy-middleware@^2.0.3: - 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: - 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" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -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== - -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.2, iconv-lite@^0.6.3: - 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" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -idb-keyval@^6.0.3: - version "6.2.0" - resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.0.tgz#3af94a3cc0689d6ee0bc9e045d2a3340ea897173" - integrity sha512-uw+MIyQn2jl3+hroD7hF8J7PUviBU7BPKWw4f/ISf32D4LoGu98yHjrzWWJDASu9QNrX10tCJqk9YY0ClWm8Ng== - dependencies: - safari-14-idb-fix "^3.0.0" - -idb@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.0.tgz#2cc886be57738419e57f9aab58f647e5e2160270" - integrity sha512-Wsk07aAxDsntgYJY4h0knZJuTxM73eQ4reRAO+Z1liOh8eMCJ/MoDS8fCui1vGT9mnjtl1sOu3I2i/W1swPYZg== - -identity-obj-proxy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== - dependencies: - harmony-reflect "^1.4.6" - -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: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== - -immer@^9.0.7: - version "9.0.15" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc" - integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ== - -import-fresh@^3.0.0, import-fresh@^3.1.0, 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== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -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@^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== - -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.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== - -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@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -interface-blockstore@^2.0.2, interface-blockstore@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/interface-blockstore/-/interface-blockstore-2.0.3.tgz#b85270eb5180e65e46c9f66980a0fa4d98f5d73e" - integrity sha512-OwVUnlNcx7H5HloK0Myv6c/C1q9cNG11HX6afdeU6q6kbuNj8jKCwVnmJHhC94LZaJ+9hvVOk4IUstb3Esg81w== - dependencies: - interface-store "^2.0.2" - multiformats "^9.0.4" - -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-store@^2.0.1, 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.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -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" - -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== - -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== - -ipfs-car@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/ipfs-car/-/ipfs-car-0.6.2.tgz#ec645cebe29056344abb3545e4e2e99788a4405c" - integrity sha512-tliuakkKKtCa4TTnFT3zJKjq/aD8EGKX8Y0ybCyrAW0fo/n2koZpxiLjBvtTs47Rqyji6ggXo+atPbJJ60hJmg== - dependencies: - "@ipld/car" "^3.2.3" - "@web-std/blob" "^3.0.1" - bl "^5.0.0" - blockstore-core "^1.0.2" - browser-readablestream-to-it "^1.0.2" - idb-keyval "^6.0.3" - interface-blockstore "^2.0.2" - ipfs-core-types "^0.8.3" - ipfs-core-utils "^0.12.1" - ipfs-unixfs-exporter "^7.0.4" - ipfs-unixfs-importer "^9.0.4" - ipfs-utils "^9.0.2" - it-all "^1.0.5" - it-last "^1.0.5" - it-pipe "^1.1.0" - meow "^9.0.0" - move-file "^2.1.0" - multiformats "^9.6.3" - stream-to-it "^0.2.3" - streaming-iterables "^6.0.0" - uint8arrays "^3.0.0" - -ipfs-core-types@^0.8.3, ipfs-core-types@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.8.4.tgz#4d483dc6035714ea48a0b02e3f82b6c6d55c8525" - integrity sha512-sbRZA1QX3xJ6ywTiVQZMOxhlhp4osAZX2SXx3azOLxAtxmGWDMkHYt722VV4nZ2GyJy8qyk5GHQIZ0uvQnpaTg== - dependencies: - interface-datastore "^6.0.2" - multiaddr "^10.0.0" - multiformats "^9.4.13" - -ipfs-core-utils@^0.12.1: - version "0.12.2" - resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.12.2.tgz#f5365ac884fd93a3bcb6e7b6f17cebe09d841501" - integrity sha512-RfxP3rPhXuqKIUmTAUhmee6fmaV3A7LMnjOUikRKpSyqESz/DR7aGK7tbttMxkZdkSEr0rFXlqbyb0vVwmn0wQ== - 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.8.4" - 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 "^1.1.1" - uint8arrays "^3.0.0" - -ipfs-unixfs-exporter@^7.0.4: - version "7.0.11" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.11.tgz#48c4c7605601bddc27cf1de97a2ad81a87e5fe32" - integrity sha512-qTYa69J7HbI2EIYNUddKPg9Y3rHkYZV0bNdmzZKA5+ZbwRVoUEuBW/cguEqTp22zHygh3sMnzYZFm0naVIdMgQ== - dependencies: - "@ipld/dag-cbor" "^7.0.2" - "@ipld/dag-pb" "^2.0.2" - "@multiformats/murmur3" "^1.0.3" - err-code "^3.0.1" - hamt-sharding "^2.0.0" - interface-blockstore "^2.0.3" - ipfs-unixfs "^6.0.0" - it-last "^1.0.5" - multiformats "^9.4.2" - uint8arrays "^3.0.0" - -ipfs-unixfs-importer@^9.0.4: - version "9.0.10" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.10.tgz#2527ea0b4e018a9e80fa981101485babcd05c494" - integrity sha512-W+tQTVcSmXtFh7FWYWwPBGXJ1xDgREbIyI1E5JzDcimZLIyT5gGMfxR3oKPxxWj+GKMpP5ilvMQrbsPzWcm3Fw== - dependencies: - "@ipld/dag-pb" "^2.0.2" - "@multiformats/murmur3" "^1.0.3" - bl "^5.0.0" - err-code "^3.0.1" - hamt-sharding "^2.0.0" - interface-blockstore "^2.0.3" - ipfs-unixfs "^6.0.0" - it-all "^1.0.5" - it-batch "^1.0.8" - it-first "^1.0.6" - it-parallel-batch "^1.0.9" - merge-options "^3.0.4" - multiformats "^9.4.2" - rabin-wasm "^0.1.4" - uint8arrays "^3.0.0" - -ipfs-unixfs@^6.0.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@^9.0.2: - version "9.0.7" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.7.tgz#b8644b9d053e4dd258f69773b146ac243921aa1f" - integrity sha512-Umvb0Zydy2zZiTmQBGLfLISr8vOmXX8cxEIP+N8zGHrtRShG/j32yl1xd/BtS+Hbg0FIbVm3opwvxB2gmta0YA== - dependencies: - any-signal "^3.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-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 "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" - react-native-fetch-api "^2.0.0" - stream-to-it "^0.2.2" - -is-arguments@^1.0.4: - 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-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-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-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-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -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.1" - resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.1.tgz#751b1dd8a74907422faa5c35aaa0cf66d98086e9" - integrity sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw== - -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-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-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -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.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-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-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== - -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-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@^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-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.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-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-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-root@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" - integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== - -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@^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.3, is-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" - integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - -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-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-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" - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -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-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== - -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== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -it-all@^1.0.4, it-all@^1.0.5: - 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.8, 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-drain@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-1.0.5.tgz#0466d4e286b37bcd32599d4e99b37a87cb8cfdf6" - integrity sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg== - -it-filter@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-1.0.3.tgz#66ea0cc4bf84af71bebd353c05a9c5735fcba751" - integrity sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w== - -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@^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.5: - 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.9: - 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-pipe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-1.1.0.tgz#f5964c6bb785dd776f11a62d1e75964787ab95ce" - integrity sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg== - -it-take@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/it-take/-/it-take-1.0.2.tgz#b5f1570014db7c3454897898b69bb7ac9c3bffc1" - integrity sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw== - -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" - -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== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -jayson@^3.4.4: - version "3.7.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" - integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ== - 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" - lodash "^4.17.20" - uuid "^8.3.2" - ws "^7.4.5" - -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" - integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== - dependencies: - "@jest/types" "^27.5.1" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" - integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== - dependencies: - "@jest/core" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" - integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^27.5.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-diff@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" - integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.2.0" - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -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-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== - dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" - integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== - dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.1.tgz#2bf876c5f891b33786aadf5d65d5da5970744122" - integrity sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww== - dependencies: - chalk "^4.0.0" - jest-diff "^29.2.1" - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-message-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" - integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-message-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" - integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.2.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== - -jest-regex-util@^28.0.0: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== - -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" - integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== - dependencies: - "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" - -jest-resolve@^27.4.2, jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.5.1" - graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" - -jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" - integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== - dependencies: - "@jest/types" "^29.2.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^27.5.1: - 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" - -jest-watch-typeahead@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz#b4a6826dfb9c9420da2f7bc900de59dad11266a9" - integrity sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw== - dependencies: - ansi-escapes "^4.3.1" - chalk "^4.0.0" - jest-regex-util "^28.0.0" - jest-watcher "^28.0.0" - slash "^4.0.0" - string-length "^5.0.1" - strip-ansi "^7.0.1" - -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== - dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.5.1" - string-length "^4.0.1" - -jest-watcher@^28.0.0: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" - integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== - dependencies: - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.3" - string-length "^4.0.1" - -jest-worker@^26.2.1: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^27.0.2, jest-worker@^27.4.5, jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^28.0.2: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^27.4.3: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" - integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== - dependencies: - "@jest/core" "^27.5.1" - import-local "^3.0.2" - jest-cli "^27.5.1" - -js-sdsl@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" - integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -"js-tokens@^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-yaml@^3.13.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.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" - -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -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-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: - 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@6.1.0, json-rpc-engine@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz#bf5ff7d029e1c1bf20cb6c0e9f348dcd8be5a393" - integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== - dependencies: - "@metamask/safe-event-emitter" "^2.0.0" - eth-rpc-errors "^4.0.2" - -json-rpc-engine@^5.3.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz#75758609d849e1dba1e09021ae473f3ab63161e5" - integrity sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g== - dependencies: - eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - 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.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== - dependencies: - jsonify "~0.0.0" - -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== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2, json5@^2.2.0, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -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.0: - 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== - -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== - -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" - integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== - dependencies: - array-includes "^3.1.5" - object.assign "^4.1.3" - -jszip@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" - integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== - dependencies: - lie "~3.3.0" - pako "~1.0.2" - readable-stream "~2.3.6" - setimmediate "^1.0.5" - -keccak@^3.0.0, keccak@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - -keycode@^2.1.7: - version "2.2.1" - resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.1.tgz#09c23b2be0611d26117ea2501c2c391a01f39eff" - integrity sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg== - -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@^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== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -klona@^2.0.4, klona@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== - -language-subtag-registry@~0.3.2: - version "0.3.22" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" - integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== - -language-tags@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== - dependencies: - language-subtag-registry "~0.3.2" - -leven@^3.1.0: - 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" - -lie@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== - dependencies: - immediate "~3.0.5" - -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" - integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== - -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== - -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loader-utils@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.0.tgz#bcecc51a7898bee7473d4bc6b845b23af8304d4f" - integrity sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ== - -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.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -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.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -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== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.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" - -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" - -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" - -lz-string@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ== - -magic-string@^0.25.0, 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" - -make-dir@^3.0.0, make-dir@^3.0.2, 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" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -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== - -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" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -media-query-parser@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/media-query-parser/-/media-query-parser-2.0.2.tgz#ff79e56cee92615a304a1c2fa4f2bd056c0a1d29" - integrity sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w== - dependencies: - "@babel/runtime" "^7.12.5" - -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== - -memfs@^3.1.2, memfs@^3.4.3: - version "3.4.7" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.7.tgz#e5252ad2242a724f938cb937e3c4f7ceb1f70e5a" - integrity sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw== - dependencies: - fs-monkey "^1.0.3" - -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@^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== - -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== - -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" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - 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.27, mime-types@^2.1.31, mime-types@~2.1.17, 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== - -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== - -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== - -mini-css-extract-plugin@^2.4.5: - version "2.6.1" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz#9a1251d15f2035c342d99a468ab9da7a0451b71e" - integrity sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg== - dependencies: - schema-utils "^4.0.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - 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@^3.0.4, 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: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== - 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.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -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" - -move-file@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/move-file/-/move-file-2.1.0.tgz#3bec9d34fbe4832df6865f112cda4492b56e8507" - integrity sha512-i9qLW6gqboJ5Ht8bauZi7KlTnQ3QFpBCvMvFfEcHADKgHGeJ9BZMO7SFCTwHPV9Qa0du9DYY1Yx3oqlGt30nXA== - dependencies: - path-exists "^4.0.0" - -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== - -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" - -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -multiformats@^9.0.4, multiformats@^9.4.13, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.4.7, multiformats@^9.5.4, multiformats@^9.6.3, multiformats@^9.6.4: - version "9.9.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" - integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - -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== - -nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23, nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - -native-abort-controller@^1.0.3: - 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@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nft.storage@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/nft.storage/-/nft.storage-7.0.0.tgz#9855106a16649673db12684232bb0292694230fe" - integrity sha512-6ris9loxF9TNTPY/JghLzdLlvFV3UzWkUcVTfmrRn49jzDUfyT5wMhDmYRBQuknNFN1jf7jlSGNHixs5SpOoOA== - dependencies: - "@ipld/car" "^3.2.3" - "@ipld/dag-cbor" "^6.0.13" - "@web-std/blob" "^3.0.1" - "@web-std/fetch" "^3.0.3" - "@web-std/file" "^3.0.0" - "@web-std/form-data" "^3.0.0" - carbites "^1.0.6" - ipfs-car "^0.6.2" - it-pipe "^1.1.0" - multiformats "^9.6.4" - p-retry "^4.6.1" - streaming-iterables "^6.0.0" - throttled-queue "^2.1.2" - -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-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.1, "node-fetch@https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz": - version "2.6.7" - resolved "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz#1b5d62978f2ed07b99444f64f0df39f960a6d34d" - -node-forge@^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.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -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.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -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: - 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@^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@^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== - -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" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nth-check@^2.0.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" - -nwsapi@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== - -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-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.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -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.assign@^4.1.0, object.assign@^4.1.3, 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.entries@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" - integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== - dependencies: - array.prototype.reduce "^1.0.4" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.1" - -object.hasown@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" - integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== - dependencies: - define-properties "^1.1.4" - es-abstract "^1.19.5" - -object.values@^1.1.0, object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -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.2: - 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: - 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" - -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" - -open@^8.0.9, open@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" - integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -openpgp@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.5.0.tgz#235ae5a49d5fda5cfd1d82c4c42cd91433478c14" - integrity sha512-SpwcJnxrK9Y0HRM6KxSFqkAEOSWEabCH/c8dII/+y2e5f6KvuDG5ZE7JXaPBaVJNE4VUZZeTphxXDoZD0KOHrw== - dependencies: - asn1.js "^5.0.0" - -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.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -outdent@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.8.0.tgz#2ebc3e77bf49912543f1008100ff8e7f44428eb0" - integrity sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A== - -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-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-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@^3.0.2: - 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-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-retry@^4.5.0, p-retry@^4.6.1: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== - dependencies: - "@types/retry" "0.12.0" - retry "^0.13.1" - -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== - -pako@~1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -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-duration@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.0.2.tgz#b9aa7d3a1363cc7e8845bea8fd3baf8a11df5805" - integrity sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg== - -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" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseurl@~1.3.2, 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" - -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-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -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.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-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@^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== - -pbkdf2@^3.0.17: - 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" - -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@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -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.2.3, 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.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" - integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - -postcss-attribute-case-insensitive@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" - integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-browser-comments@^4: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz#bcfc86134df5807f5d3c0eefa191d42136b5e72a" - integrity sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg== - -postcss-calc@^8.2.3: - version "8.2.4" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" - integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== - dependencies: - postcss-selector-parser "^6.0.9" - postcss-value-parser "^4.2.0" - -postcss-clamp@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" - integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-functional-notation@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" - integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-hex-alpha@^8.0.4: - version "8.0.4" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" - integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-rebeccapurple@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" - integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-colormin@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a" - integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - colord "^2.9.1" - postcss-value-parser "^4.2.0" - -postcss-convert-values@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz#31586df4e184c2e8890e8b34a0b9355313f503ab" - integrity sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g== - dependencies: - browserslist "^4.20.3" - postcss-value-parser "^4.2.0" - -postcss-custom-media@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" - integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-custom-properties@^12.1.9: - version "12.1.9" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.9.tgz#0883429a7ef99f1ba239d1fea29ce84906daa8bd" - integrity sha512-/E7PRvK8DAVljBbeWrcEQJPG72jaImxF3vvCNFwv9cC8CzigVoNIpeyfnJzphnN3Fd8/auBf5wvkw6W9MfmTyg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-custom-selectors@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" - integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-dir-pseudo-class@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" - integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-discard-comments@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" - integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== - -postcss-discard-duplicates@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" - integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== - -postcss-discard-empty@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" - integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== - -postcss-discard-overridden@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" - integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== - -postcss-double-position-gradients@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" - integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -postcss-env-function@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" - integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-flexbugs-fixes@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" - integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== - -postcss-focus-visible@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" - integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== - dependencies: - postcss-selector-parser "^6.0.9" - -postcss-focus-within@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" - integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== - dependencies: - postcss-selector-parser "^6.0.9" - -postcss-font-variant@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" - integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== - -postcss-gap-properties@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" - integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== - -postcss-image-set-function@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" - integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== - dependencies: - postcss-value-parser "^4.2.0" - -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== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-initial@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" - integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== - -postcss-js@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" - integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== - dependencies: - camelcase-css "^2.0.1" - -postcss-lab-function@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" - integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -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== - dependencies: - lilconfig "^2.0.5" - yaml "^1.10.2" - -postcss-loader@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" - integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== - dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.5" - semver "^7.3.5" - -postcss-logical@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" - integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== - -postcss-media-minmax@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" - integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== - -postcss-merge-longhand@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz#f378a8a7e55766b7b644f48e5d8c789ed7ed51ce" - integrity sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw== - dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^5.1.0" - -postcss-merge-rules@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz#7049a14d4211045412116d79b751def4484473a5" - integrity sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - cssnano-utils "^3.1.0" - postcss-selector-parser "^6.0.5" - -postcss-minify-font-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" - integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-minify-gradients@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" - integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== - dependencies: - colord "^2.9.1" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-minify-params@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz#ac41a6465be2db735099bbd1798d85079a6dc1f9" - integrity sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg== - dependencies: - browserslist "^4.16.6" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-minify-selectors@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" - integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-nested@5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" - integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== - dependencies: - postcss-selector-parser "^6.0.6" - -postcss-nesting@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" - integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== - dependencies: - "@csstools/selector-specificity" "^2.0.0" - postcss-selector-parser "^6.0.10" - -postcss-normalize-charset@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" - integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== - -postcss-normalize-display-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" - integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" - integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" - integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" - integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" - integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75" - integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ== - dependencies: - browserslist "^4.16.6" - postcss-value-parser "^4.2.0" - -postcss-normalize-url@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" - integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== - dependencies: - normalize-url "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-normalize-whitespace@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" - integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-10.0.1.tgz#464692676b52792a06b06880a176279216540dd7" - integrity sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA== - dependencies: - "@csstools/normalize.css" "*" - postcss-browser-comments "^4" - sanitize.css "*" - -postcss-opacity-percentage@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz#bd698bb3670a0a27f6d657cc16744b3ebf3b1145" - integrity sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w== - -postcss-ordered-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" - integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== - dependencies: - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-overflow-shorthand@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" - integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-page-break@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" - integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== - -postcss-place@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" - integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-preset-env@^7.0.1: - version "7.8.2" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.2.tgz#4c834d5cbd2e29df2abf59118947c456922b79ba" - integrity sha512-rSMUEaOCnovKnwc5LvBDHUDzpGP+nrUeWZGWt9M72fBvckCi45JmnJigUr4QG4zZeOHmOCNCZnd2LKDvP++ZuQ== - dependencies: - "@csstools/postcss-cascade-layers" "^1.1.0" - "@csstools/postcss-color-function" "^1.1.1" - "@csstools/postcss-font-format-keywords" "^1.0.1" - "@csstools/postcss-hwb-function" "^1.0.2" - "@csstools/postcss-ic-unit" "^1.0.1" - "@csstools/postcss-is-pseudo-class" "^2.0.7" - "@csstools/postcss-nested-calc" "^1.0.0" - "@csstools/postcss-normalize-display-values" "^1.0.1" - "@csstools/postcss-oklab-function" "^1.1.1" - "@csstools/postcss-progressive-custom-properties" "^1.3.0" - "@csstools/postcss-stepped-value-functions" "^1.0.1" - "@csstools/postcss-text-decoration-shorthand" "^1.0.0" - "@csstools/postcss-trigonometric-functions" "^1.0.2" - "@csstools/postcss-unset-value" "^1.0.2" - autoprefixer "^10.4.11" - browserslist "^4.21.3" - css-blank-pseudo "^3.0.3" - css-has-pseudo "^3.0.4" - css-prefers-color-scheme "^6.0.3" - cssdb "^7.0.1" - postcss-attribute-case-insensitive "^5.0.2" - postcss-clamp "^4.1.0" - postcss-color-functional-notation "^4.2.4" - postcss-color-hex-alpha "^8.0.4" - postcss-color-rebeccapurple "^7.1.1" - postcss-custom-media "^8.0.2" - postcss-custom-properties "^12.1.9" - postcss-custom-selectors "^6.0.3" - postcss-dir-pseudo-class "^6.0.5" - postcss-double-position-gradients "^3.1.2" - postcss-env-function "^4.0.6" - postcss-focus-visible "^6.0.4" - postcss-focus-within "^5.0.4" - postcss-font-variant "^5.0.0" - postcss-gap-properties "^3.0.5" - postcss-image-set-function "^4.0.7" - postcss-initial "^4.0.1" - postcss-lab-function "^4.2.1" - postcss-logical "^5.0.4" - postcss-media-minmax "^5.0.0" - postcss-nesting "^10.2.0" - postcss-opacity-percentage "^1.1.2" - postcss-overflow-shorthand "^3.0.4" - postcss-page-break "^3.0.4" - postcss-place "^7.0.5" - postcss-pseudo-class-any-link "^7.1.6" - postcss-replace-overflow-wrap "^4.0.0" - postcss-selector-not "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-pseudo-class-any-link@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" - integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-reduce-initial@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6" - integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" - integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-replace-overflow-wrap@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" - integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== - -postcss-selector-not@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" - integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" - integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== - dependencies: - postcss-value-parser "^4.2.0" - svgo "^2.7.0" - -postcss-unique-selectors@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" - integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.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@^7.0.35: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.4, postcss@^8.4.7: - version "8.4.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" - integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -preact@10.4.1: - version "10.4.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431" - integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q== - -preact@^10.5.9: - version "10.11.2" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.11.2.tgz#e43f2a2f2985dedb426bb4c765b7bb037734f8a8" - integrity sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw== - -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== - -pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== - -pretty-error@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" - integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== - dependencies: - lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-format@^27.0.0, pretty-format@^27.0.2, 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-format@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== - dependencies: - "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^29.0.0, pretty-format@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" - integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -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@^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@^8.1.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.2.0.tgz#a1f6280ab67457fbfc8aad2b198c9497e9e5c806" - integrity sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg== - dependencies: - asap "~2.0.6" - -prompts@^2.0.1, prompts@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -protobufjs@^6.10.2: - version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" - integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== - 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" - -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" - -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== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - -qrcode@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - -qrcode@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.0.tgz#95abb8a91fdafd86f8190f2836abbfc500c72d1b" - integrity sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ== - dependencies: - dijkstrajs "^1.0.1" - encode-utf8 "^1.0.3" - pngjs "^5.0.0" - yargs "^15.3.1" - -qs@6.11.0, qs@^6.10.3: - 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" - -query-string@6.13.5: - version "6.13.5" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" - integrity sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q== - dependencies: - decode-uri-component "^0.2.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -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: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -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== - -rabin-wasm@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.1.5.tgz#5b625ca007d6a2cbc1456c78ae71d550addbc9c9" - integrity sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA== - dependencies: - "@assemblyscript/loader" "^0.9.4" - bl "^5.0.0" - debug "^4.3.1" - minimist "^1.2.5" - node-fetch "^2.6.1" - readable-stream "^3.6.0" - -raf@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -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" - -range-parser@^1.2.1, 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" - -react-app-polyfill@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz#95221e0a9bd259e5ca6b177c7bb1cb6768f68fd7" - integrity sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w== - dependencies: - core-js "^3.19.2" - object-assign "^4.1.1" - promise "^8.1.0" - raf "^3.4.1" - regenerator-runtime "^0.13.9" - whatwg-fetch "^3.6.2" - -react-dev-utils@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" - integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== - dependencies: - "@babel/code-frame" "^7.16.0" - address "^1.1.2" - browserslist "^4.18.1" - chalk "^4.1.2" - cross-spawn "^7.0.3" - detect-port-alt "^1.1.6" - escape-string-regexp "^4.0.0" - filesize "^8.0.6" - find-up "^5.0.0" - fork-ts-checker-webpack-plugin "^6.5.0" - global-modules "^2.0.0" - globby "^11.0.4" - gzip-size "^6.0.0" - immer "^9.0.7" - is-root "^2.1.0" - loader-utils "^3.2.0" - open "^8.4.0" - pkg-up "^3.1.0" - prompts "^2.4.2" - react-error-overlay "^6.0.11" - recursive-readdir "^2.2.2" - shell-quote "^1.7.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -react-dom@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.0" - -react-error-overlay@^6.0.11: - version "6.0.11" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" - integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== - -react-event-listener@^0.6.0: - version "0.6.6" - resolved "https://registry.yarnpkg.com/react-event-listener/-/react-event-listener-0.6.6.tgz#758f7b991cad9086dd39fd29fad72127e1d8962a" - integrity sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw== - dependencies: - "@babel/runtime" "^7.2.0" - prop-types "^15.6.0" - warning "^4.0.1" - -react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -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-is@^18.0.0, react-is@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -react-native-fetch-api@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz#c4af188b4fce3f3eaf1f1ff4e61dae1a00d4ffa0" - integrity sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw== - dependencies: - p-defer "^3.0.0" - -react-native-url-polyfill@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz#c1763de0f2a8c22cc3e959b654c8790622b6ef6a" - integrity sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ== - dependencies: - whatwg-url-without-unicode "8.0.0-3" - -react-refresh@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" - integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== - -react-remove-scroll-bar@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" - integrity sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== - dependencies: - react-style-singleton "^2.2.1" - tslib "^2.0.0" - -react-remove-scroll@2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.4.tgz#afe6491acabde26f628f844b67647645488d2ea0" - integrity sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA== - dependencies: - react-remove-scroll-bar "^2.3.3" - react-style-singleton "^2.2.1" - tslib "^2.1.0" - use-callback-ref "^1.3.0" - use-sidecar "^1.1.2" - -react-scripts@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-5.0.1.tgz#6285dbd65a8ba6e49ca8d651ce30645a6d980003" - integrity sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ== - dependencies: - "@babel/core" "^7.16.0" - "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" - "@svgr/webpack" "^5.5.0" - babel-jest "^27.4.2" - babel-loader "^8.2.3" - babel-plugin-named-asset-import "^0.3.8" - babel-preset-react-app "^10.0.1" - bfj "^7.0.2" - browserslist "^4.18.1" - camelcase "^6.2.1" - case-sensitive-paths-webpack-plugin "^2.4.0" - css-loader "^6.5.1" - css-minimizer-webpack-plugin "^3.2.0" - dotenv "^10.0.0" - dotenv-expand "^5.1.0" - eslint "^8.3.0" - eslint-config-react-app "^7.0.1" - eslint-webpack-plugin "^3.1.1" - file-loader "^6.2.0" - fs-extra "^10.0.0" - html-webpack-plugin "^5.5.0" - identity-obj-proxy "^3.0.0" - jest "^27.4.3" - jest-resolve "^27.4.2" - jest-watch-typeahead "^1.0.0" - mini-css-extract-plugin "^2.4.5" - postcss "^8.4.4" - postcss-flexbugs-fixes "^5.0.2" - postcss-loader "^6.2.1" - postcss-normalize "^10.0.1" - postcss-preset-env "^7.0.1" - prompts "^2.4.2" - react-app-polyfill "^3.0.0" - react-dev-utils "^12.0.1" - react-refresh "^0.11.0" - resolve "^1.20.0" - resolve-url-loader "^4.0.0" - sass-loader "^12.3.0" - semver "^7.3.5" - source-map-loader "^3.0.0" - style-loader "^3.3.1" - tailwindcss "^3.0.2" - terser-webpack-plugin "^5.2.5" - webpack "^5.64.4" - webpack-dev-server "^4.6.0" - webpack-manifest-plugin "^4.0.2" - workbox-webpack-plugin "^6.4.1" - optionalDependencies: - fsevents "^2.3.2" - -react-style-singleton@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" - integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== - dependencies: - get-nonce "^1.0.0" - invariant "^2.2.4" - tslib "^2.0.0" - -react-swipeable-views-core@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.14.0.tgz#6ac443a7cc7bc5ea022fbd549292bb5fff361cce" - integrity sha512-0W/e9uPweNEOSPjmYtuKSC/SvKKg1sfo+WtPdnxeLF3t2L82h7jjszuOHz9C23fzkvLfdgkaOmcbAxE9w2GEjA== - dependencies: - "@babel/runtime" "7.0.0" - warning "^4.0.1" - -react-swipeable-views-utils@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.14.0.tgz#6b76e251906747482730c22002fe47ab1014ba32" - integrity sha512-W+fXBOsDqgFK1/g7MzRMVcDurp3LqO3ksC8UgInh2P/tKgb5DusuuB1geKHFc6o1wKl+4oyER4Zh3Lxmr8xbXA== - dependencies: - "@babel/runtime" "7.0.0" - keycode "^2.1.7" - prop-types "^15.6.0" - react-event-listener "^0.6.0" - react-swipeable-views-core "^0.14.0" - shallow-equal "^1.2.1" - -react-swipeable-views@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.14.0.tgz#149c0df3d92220cc89e3f6d5c04a78dfe46f9b54" - integrity sha512-wrTT6bi2nC3JbmyNAsPXffUXLn0DVT9SbbcFr36gKpbaCgEp7rX/OFxsu5hPc/NBsUhHyoSRGvwqJNNrWTwCww== - dependencies: - "@babel/runtime" "7.0.0" - prop-types "^15.5.4" - react-swipeable-views-core "^0.14.0" - react-swipeable-views-utils "^0.14.0" - warning "^4.0.1" - -react-transition-group@^4.4.5: - version "4.4.5" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" - integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== - dependencies: - "@babel/runtime" "^7.5.5" - dom-helpers "^5.0.1" - loose-envify "^1.4.0" - prop-types "^15.6.2" - -react@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== - dependencies: - loose-envify "^1.1.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@^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@^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" - -readable-stream@^2.0.1, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -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" - -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" - -recursive-readdir@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" - integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== - dependencies: - minimatch "3.0.4" - -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" - -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - 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.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== - -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: - version "0.13.10" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" - integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== - -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-parser@^2.2.11: - version "2.2.11" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" - integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== - -regexp.prototype.flags@^1.4.1, 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== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.1.tgz#a69c26f324c1e962e9ffd0b88b055caba8089139" - integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsgen "^0.7.1" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" - integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== - -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== - dependencies: - jsesc "~0.5.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -renderkid@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" - integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^6.0.1" - -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@^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-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== - -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== - -reselect@^4.1.6: - version "4.1.6" - resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.6.tgz#19ca2d3d0b35373a74dc1c98692cdaffb6602656" - integrity sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -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-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-url-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz#d50d4ddc746bb10468443167acf800dcd6c3ad57" - integrity sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA== - dependencies: - adjust-sourcemap-loader "^4.0.0" - convert-source-map "^1.7.0" - loader-utils "^2.0.0" - postcss "^7.0.35" - source-map "0.6.1" - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.3: - 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== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -retimer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" - integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg== - -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== - -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.3: - 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-plugin-terser@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" - integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== - dependencies: - "@babel/code-frame" "^7.10.4" - jest-worker "^26.2.1" - serialize-javascript "^4.0.0" - terser "^5.0.0" - -rollup@^2.43.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" - -rpc-websockets@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" - integrity sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ== - dependencies: - "@babel/runtime" "^7.17.2" - eventemitter3 "^4.0.7" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -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" - -rxjs@^6.6.3: - 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" - -safari-14-idb-fix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz#450fc049b996ec7f3fd9ca2f89d32e0761583440" - integrity sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog== - -safe-buffer@5.1.2, 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-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.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-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-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" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.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== - -sanitize.css@*: - version "13.0.0" - resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" - integrity sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA== - -sass-loader@^12.3.0: - version "12.6.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" - integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== - dependencies: - klona "^2.0.4" - neo-async "^2.6.2" - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== - dependencies: - loose-envify "^1.1.0" - -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" - integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.8.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" - -scrypt-js@3.0.1, scrypt-js@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@^4.0.1, secp256k1@^4.0.2: - 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" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== - dependencies: - node-forge "^1" - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: - 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" - -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" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - 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-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -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" - -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== - -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.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -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.11, 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" - -shallow-equal@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" - integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== - -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@^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.7.4" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" - integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== - -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.2, signal-exit@^3.0.3: - 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== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -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== - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -source-list-map@^2.0.0, source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-js@^1.0.1, 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-loader@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.1.tgz#9ae5edc7c2d42570934be4c95d1ccc6352eba52d" - integrity sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA== - dependencies: - abab "^2.0.5" - iconv-lite "^0.6.3" - source-map-js "^1.0.1" - -source-map-support@^0.5.6, source-map-support@~0.5.20: - 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@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, 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.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -source-map@^0.8.0-beta.0: - version "0.8.0-beta.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" - integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== - dependencies: - whatwg-url "^7.0.0" - -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.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - 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.12" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -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== - -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== - -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-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -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== - -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.4.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== - -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-to-it@^0.2.2, stream-to-it@^0.2.3: - 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" - -streaming-iterables@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/streaming-iterables/-/streaming-iterables-6.2.0.tgz#e8079bc56272335b287e2f13274602fbef008e56" - integrity sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA== - -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-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-length@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz#3d647f497b6e8e8d41e422f7e0b23bc536c8381e" - integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow== - dependencies: - char-regex "^2.0.0" - strip-ansi "^7.0.1" - -string-natural-compare@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" - integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== - -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@^4.1.0, string-width@^4.2.0: - 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.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" - side-channel "^1.0.4" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -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@^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.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" - integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== - -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-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.0, 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== - -style-loader@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" - integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== - -stylehacks@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520" - integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q== - dependencies: - browserslist "^4.16.6" - postcss-selector-parser "^6.0.4" - -stylis@4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" - integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== - -superstruct@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" - integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== - -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@^8.0.0: - 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-hyperlinks@^2.0.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== - -svg-parser@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" - integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== - -svgo@^1.2.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -svgo@^2.7.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - -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== - -tailwindcss@^3.0.2: - version "3.1.8" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741" - integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g== - dependencies: - arg "^5.0.2" - chokidar "^3.5.3" - color-name "^1.1.4" - detective "^5.2.1" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.2.11" - glob-parent "^6.0.2" - is-glob "^4.0.3" - lilconfig "^2.0.6" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.14" - postcss-import "^14.1.0" - postcss-js "^4.0.0" - postcss-load-config "^3.1.4" - postcss-nested "5.0.6" - postcss-selector-parser "^6.0.10" - postcss-value-parser "^4.2.0" - quick-lru "^5.1.1" - resolve "^1.22.1" - -tapable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -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@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" - integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== - dependencies: - is-stream "^2.0.0" - temp-dir "^2.0.0" - type-fest "^0.16.0" - unique-string "^2.0.0" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== - dependencies: - "@jridgewell/trace-mapping" "^0.3.14" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.14.1" - -terser@^5.0.0, terser@^5.10.0, terser@^5.14.1: - version "5.15.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" - integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -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== - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - -throttled-queue@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/throttled-queue/-/throttled-queue-2.1.4.tgz#4e2008c73ab3f72ba1bb09496c3cc9c5b745dbee" - integrity sha512-YGdk8sdmr4ge3g+doFj/7RLF5kLM+Mi7DEciu9PHxnMJZMeVuZeTj31g4VE7ekUffx/IdbvrtOCiz62afg0mkg== - -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timeout-abort-controller@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz#2c3c3c66f13c783237987673c276cbd7a9762f29" - integrity sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ== - dependencies: - abort-controller "^3.0.0" - retimer "^2.0.0" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -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-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" - -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== - -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== - -tough-cookie@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== - dependencies: - punycode "^2.1.0" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -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== - -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== - -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1, tslib@^1.9.0: - 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: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -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" - -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.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.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" - integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== - -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.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-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" - -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" - -typescript@^4.8.4: - version "4.8.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" - integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== - -uint8arrays@^3.0.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" - -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" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -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.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -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== - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -upath@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -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" - -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" - -use-callback-ref@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" - integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== - dependencies: - tslib "^2.0.0" - -use-sidecar@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" - integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== - dependencies: - detect-node-es "^1.1.0" - tslib "^2.0.0" - -use-sync-external-store@1.2.0, 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== - -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" - -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.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@^0.12.3, util@^0.12.4: - 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" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== - -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@^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== - -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" - integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -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" - -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.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== - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -wagmi@^0.6.7: - version "0.6.8" - resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.6.8.tgz#bfc65686ec08cf1c508b1dbf5fbefbbe828653cd" - integrity sha512-pIOn7I56KPfdPQ1WRIWzWnpC8eJZm1V25Rcn5fbgOJ2eV3kjGNchnIub/ERY1VMKywxkCAfgXfn2D/tqwCJsWw== - dependencies: - "@coinbase/wallet-sdk" "^3.3.0" - "@tanstack/query-sync-storage-persister" "^4.0.10" - "@tanstack/react-query" "^4.0.10" - "@tanstack/react-query-persist-client" "^4.0.10" - "@wagmi/core" "^0.5.8" - "@walletconnect/ethereum-provider" "^1.7.8" - use-sync-external-store "^1.2.0" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -warning@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -web-encoding@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" - integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== - dependencies: - util "^0.12.3" - optionalDependencies: - "@zxing/text-encoding" "0.9.0" - -web-streams-polyfill@^3.1.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-vitals@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" - integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== - dependencies: - colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^4.6.0: - version "4.11.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz#ae07f0d71ca0438cf88446f09029b92ce81380b5" - integrity sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" - ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.4.2" - -webpack-manifest-plugin@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz#10f8dbf4714ff93a215d5a45bcc416d80506f94f" - integrity sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow== - dependencies: - tapable "^2.0.0" - webpack-sources "^2.2.0" - -webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" - integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" - -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@^5.64.4: - version "5.74.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" - integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-fetch@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" - integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url-without-unicode@8.0.0-3: - version "8.0.0-3" - resolved "https://registry.yarnpkg.com/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz#ab6df4bf6caaa6c85a59f6e82c026151d4bb376b" - integrity sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig== - dependencies: - buffer "^5.4.3" - punycode "^2.1.1" - webidl-conversions "^5.0.0" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.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@^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== - -which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" - -which@^1.3.1: - 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" - -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" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -workbox-background-sync@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9" - integrity sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g== - dependencies: - idb "^7.0.1" - workbox-core "6.5.4" - -workbox-broadcast-update@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz#8441cff5417cd41f384ba7633ca960a7ffe40f66" - integrity sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw== - dependencies: - workbox-core "6.5.4" - -workbox-build@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.4.tgz#7d06d31eb28a878817e1c991c05c5b93409f0389" - integrity sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA== - dependencies: - "@apideck/better-ajv-errors" "^0.3.1" - "@babel/core" "^7.11.1" - "@babel/preset-env" "^7.11.0" - "@babel/runtime" "^7.11.2" - "@rollup/plugin-babel" "^5.2.0" - "@rollup/plugin-node-resolve" "^11.2.1" - "@rollup/plugin-replace" "^2.4.1" - "@surma/rollup-plugin-off-main-thread" "^2.2.3" - ajv "^8.6.0" - common-tags "^1.8.0" - fast-json-stable-stringify "^2.1.0" - fs-extra "^9.0.1" - glob "^7.1.6" - lodash "^4.17.20" - pretty-bytes "^5.3.0" - rollup "^2.43.1" - rollup-plugin-terser "^7.0.0" - source-map "^0.8.0-beta.0" - stringify-object "^3.3.0" - strip-comments "^2.0.1" - tempy "^0.6.0" - upath "^1.2.0" - workbox-background-sync "6.5.4" - workbox-broadcast-update "6.5.4" - workbox-cacheable-response "6.5.4" - workbox-core "6.5.4" - workbox-expiration "6.5.4" - workbox-google-analytics "6.5.4" - workbox-navigation-preload "6.5.4" - workbox-precaching "6.5.4" - workbox-range-requests "6.5.4" - workbox-recipes "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - workbox-streams "6.5.4" - workbox-sw "6.5.4" - workbox-window "6.5.4" - -workbox-cacheable-response@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz#a5c6ec0c6e2b6f037379198d4ef07d098f7cf137" - integrity sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug== - dependencies: - workbox-core "6.5.4" - -workbox-core@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.4.tgz#df48bf44cd58bb1d1726c49b883fb1dffa24c9ba" - integrity sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q== - -workbox-expiration@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz#501056f81e87e1d296c76570bb483ce5e29b4539" - integrity sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ== - dependencies: - idb "^7.0.1" - workbox-core "6.5.4" - -workbox-google-analytics@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz#c74327f80dfa4c1954cbba93cd7ea640fe7ece7d" - integrity sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg== - dependencies: - workbox-background-sync "6.5.4" - workbox-core "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - -workbox-navigation-preload@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz#ede56dd5f6fc9e860a7e45b2c1a8f87c1c793212" - integrity sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng== - dependencies: - workbox-core "6.5.4" - -workbox-precaching@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz#740e3561df92c6726ab5f7471e6aac89582cab72" - integrity sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg== - dependencies: - workbox-core "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - -workbox-range-requests@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz#86b3d482e090433dab38d36ae031b2bb0bd74399" - integrity sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg== - dependencies: - workbox-core "6.5.4" - -workbox-recipes@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz#cca809ee63b98b158b2702dcfb741b5cc3e24acb" - integrity sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA== - dependencies: - workbox-cacheable-response "6.5.4" - workbox-core "6.5.4" - workbox-expiration "6.5.4" - workbox-precaching "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - -workbox-routing@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.4.tgz#6a7fbbd23f4ac801038d9a0298bc907ee26fe3da" - integrity sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg== - dependencies: - workbox-core "6.5.4" - -workbox-strategies@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz#4edda035b3c010fc7f6152918370699334cd204d" - integrity sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw== - dependencies: - workbox-core "6.5.4" - -workbox-streams@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.4.tgz#1cb3c168a6101df7b5269d0353c19e36668d7d69" - integrity sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg== - dependencies: - workbox-core "6.5.4" - workbox-routing "6.5.4" - -workbox-sw@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.4.tgz#d93e9c67924dd153a61367a4656ff4d2ae2ed736" - integrity sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA== - -workbox-webpack-plugin@^6.4.1: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz#baf2d3f4b8f435f3469887cf4fba2b7fac3d0fd7" - integrity sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg== - dependencies: - fast-json-stable-stringify "^2.1.0" - pretty-bytes "^5.4.1" - upath "^1.2.0" - webpack-sources "^1.4.3" - workbox-build "6.5.4" - -workbox-window@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.4.tgz#d991bc0a94dff3c2dbb6b84558cff155ca878e91" - integrity sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug== - dependencies: - "@types/trusted-types" "^2.0.2" - workbox-core "6.5.4" - -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.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" - -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@^3.0.0: - 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" - -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@7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" - integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== - -ws@^7.4.0, ws@^7.4.5, ws@^7.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^8.4.2, ws@^8.5.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" - integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -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== - -xtend@^4.0.1, xtend@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -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== - -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@^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== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - 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@^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@^13.2.4: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -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@^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" - -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== - -zustand@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.1.2.tgz#4912b24741662d8a84ed1cb52198471cb369c4b6" - integrity sha512-gcRaKchcxFPbImrBb/BKgujOhHhik9YhVpIeP87ETT7uokEe2Szu7KkuZ9ghjtD+/KKkcrRNktR2AiLXPIbKIQ== - dependencies: - use-sync-external-store "1.2.0" diff --git a/packages/examples/fortune/recording-oracle/src/index.ts b/packages/examples/fortune/recording-oracle/src/index.ts index d34a3adc4b..03643038c6 100644 --- a/packages/examples/fortune/recording-oracle/src/index.ts +++ b/packages/examples/fortune/recording-oracle/src/index.ts @@ -27,18 +27,17 @@ app.post('/job/results', async (req, res) => { const { workerAddress, escrowAddress, fortune } = req.body; const err = await addFortune(web3, workerAddress, escrowAddress, fortune); if (err) { - console.log(err.message); return res.status(400).send(err); } return res.status(201).send(); } catch (err) { - console.error(err); - return res.status(500).send(err); } }); app.listen(port, () => { + // TODO: Implement logger + // eslint-disable-next-line no-console console.log(`Recording Oracle server listening port ${port}`); }); diff --git a/packages/examples/fortune/recording-oracle/src/services/storage.ts b/packages/examples/fortune/recording-oracle/src/services/storage.ts index fcfe947ed4..7c0d636bd1 100644 --- a/packages/examples/fortune/recording-oracle/src/services/storage.ts +++ b/packages/examples/fortune/recording-oracle/src/services/storage.ts @@ -1,4 +1,9 @@ -const storage: any = {}; +export interface FortuneEntry { + worker: string; + fortune: string; +} + +const storage: Record> = {}; export function newEscrow(address: string) { const escrow = {}; @@ -25,7 +30,7 @@ export function putFortune( export function getFortunes(escrowAddress: string) { const escrow = storage[escrowAddress]; - const result: any = []; + const result: FortuneEntry[] = []; if (!escrow) { return result; } diff --git a/packages/examples/fortune/recording-oracle/yarn.lock b/packages/examples/fortune/recording-oracle/yarn.lock deleted file mode 100644 index ee1b6e7fac..0000000000 --- a/packages/examples/fortune/recording-oracle/yarn.lock +++ /dev/null @@ -1,3892 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.20.0": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" - integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== - dependencies: - "@babel/types" "^7.20.2" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== - dependencies: - "@babel/compat-data" "^7.20.0" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - -"@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-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" - integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== - 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.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - -"@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.18.6", "@babel/helper-plugin-utils@^7.19.0", "@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-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-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - 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-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== - dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" - integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - 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-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@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-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/template@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@ethereumjs/common@2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz" - integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.1" - -"@ethereumjs/common@^2.5.0": - version "2.6.5" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" - integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.5" - -"@ethereumjs/tx@3.3.2": - version "3.3.2" - resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz" - integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== - dependencies: - "@ethereumjs/common" "^2.5.0" - ethereumjs-util "^7.1.2" - -"@ethersproject/abi@^5.6.3": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" - 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": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" - 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": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" - integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== - 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": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" - 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": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" - integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - -"@ethersproject/bignumber@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" - integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - bn.js "^5.2.1" - -"@ethersproject/bytes@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" - integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/constants@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" - integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - -"@ethersproject/hash@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" - 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/keccak256@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" - integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - js-sha3 "0.8.0" - -"@ethersproject/logger@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" - integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== - -"@ethersproject/networks@^5.7.0": - version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" - integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/properties@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" - integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/rlp@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" - integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/signing-key@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" - integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== - 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/strings@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" - integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" - 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/web@^5.7.0": - version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" - 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" - -"@human-protocol/core@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.8.tgz#4933b48c1f51f7e5fd1ad943c8f002ff8d03f22e" - integrity sha512-z0JLzecGu7qPtKcBtAtLnpb+13ScjE7noLL0QH7UKCB9dGq6Z/RQ2Bba+1gnF3izKvkUOzVyWg2amU7j6q9TZA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== - dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-mock "^29.3.1" - -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== - dependencies: - jest-get-type "^29.2.0" - -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== - dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" - -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== - dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" - -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" - -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== - dependencies: - "@jest/schemas" "^29.0.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.0", "@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.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - -"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": - version "4.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@sinonjs/commons@^1.7.0": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.5.tgz#e280c94c95f206dcfd5aca00a43f2156b758c764" - integrity sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - -"@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== - dependencies: - "@babel/types" "^7.3.0" - -"@types/bn.js@^5.1.0": - version "5.1.1" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - dependencies: - "@types/node" "*" - -"@types/body-parser@*", "@types/body-parser@^1.19.2": - version "1.19.2" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": - version "6.0.3" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz" - integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/cors@^2.8.12": - version "2.8.12" - resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== - -"@types/express-serve-static-core@^4.17.18": - version "4.17.31" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz" - integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@^4.17.14": - version "4.17.14" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - -"@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== - -"@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== - 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== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/keyv@^3.1.4": - version "3.1.4" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== - dependencies: - "@types/node" "*" - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/node@*", "@types/node@^18.11.9": - version "18.11.9" - resolved "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== - -"@types/node@^12.12.6": - version "12.20.55" - resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - -"@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/secp256k1@^4.0.1": - version "4.0.3" - resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== - dependencies: - "@types/node" "*" - -"@types/serve-static@*": - version "1.15.0" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== - dependencies: - "@types/mime" "*" - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@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== - -"@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== - dependencies: - "@types/yargs-parser" "*" - -abortcontroller-polyfill@^1.7.3: - version "1.7.5" - resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz" - integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -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.1.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== - -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -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" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" - 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.npmjs.org/asn1/-/asn1-0.2.6.tgz" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -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.npmjs.org/base-x/-/base-x-3.0.9.tgz" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== - -blakejs@^1.1.0: - version "1.2.1" - resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" - integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== - -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -body-parser@1.20.1, body-parser@^1.16.0: - version "1.20.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -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" - -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.npmjs.org/brorand/-/brorand-1.1.0.tgz" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - 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.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - 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.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" - 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.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -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-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz" - integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bufferutil@^4.0.1: - version "4.0.7" - resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz" - integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== - dependencies: - node-gyp-build "^4.3.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-lookup@^6.0.4: - version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz" - integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== - -cacheable-request@^7.0.2: - version "7.0.2" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - 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" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -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== - -caniuse-lite@^1.0.30001400: - version "1.0.30001431" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" - integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chalk@^2.0.0: - 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: - 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" - -chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -ci-info@^3.2.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.6.1.tgz#7594f1c95cb7fdfddee7af95a13af7dbc67afdcf" - integrity sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w== - -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz" - 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" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - -color-convert@^1.9.0: - 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.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== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -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== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.7.0: - 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-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -cors@^2.8.1: - version "2.8.5" - resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -crc-32@^1.2.0: - version "1.2.2" - resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" - integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" - 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.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - 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" - -cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - 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" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -debug@2.6.9, debug@^2.2.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0: - 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" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== - dependencies: - mimic-response "^1.0.0" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -diff-sequences@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" - integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== - -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.62" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz" - 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.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" - integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.2.8: - version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-symbol@^3.1.1, es6-symbol@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -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-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -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== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz" - integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.1.26: - version "0.1.29" - resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz" - integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - nano-json-stream-parser "^0.1.2" - servify "^0.1.12" - ws "^3.0.0" - xhr-request-promise "^0.1.2" - -ethereum-bloom-filters@^1.0.6: - version "1.0.10" - resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" - integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== - dependencies: - js-sha3 "^0.8.0" - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@types/pbkdf2" "^3.0.0" - "@types/secp256k1" "^4.0.1" - blakejs "^1.1.0" - browserify-aes "^1.2.0" - bs58check "^2.1.2" - create-hash "^1.2.0" - create-hmac "^1.1.7" - hash.js "^1.1.7" - keccak "^3.0.0" - pbkdf2 "^3.0.17" - randombytes "^2.1.0" - safe-buffer "^5.1.2" - scrypt-js "^3.0.0" - secp256k1 "^4.0.1" - setimmediate "^1.0.5" - -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: - version "7.1.5" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" - integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== - 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" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" - integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -expect@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== - dependencies: - "@jest/expect-utils" "^29.3.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - -express@^4.14.0: - version "4.18.2" - resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.7.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" - integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== - dependencies: - type "^2.7.2" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -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" - -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" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.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" - -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== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data-encoder@1.7.1: - version "1.7.1" - resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz" - integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== - -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.npmjs.org/form-data/-/form-data-2.3.3.tgz" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -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.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -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-intrinsic@^1.0.2, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -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-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob@^7.1.4: - 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" - -global@~4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -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== - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -got@12.1.0: - version "12.1.0" - resolved "https://registry.npmjs.org/got/-/got-12.1.0.tgz" - integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== - dependencies: - "@sindresorhus/is" "^4.6.0" - "@szmarczak/http-timer" "^5.0.1" - "@types/cacheable-request" "^6.0.2" - "@types/responselike" "^1.0.0" - cacheable-lookup "^6.0.4" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - form-data-encoder "1.7.1" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^2.0.0" - -got@^11.8.5: - version "11.8.5" - resolved "https://registry.npmjs.org/got/-/got-11.8.5.tgz" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -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-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" - 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.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-https@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz" - integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz" - integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== - dependencies: - punycode "2.1.0" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -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: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3: - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" - integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== - -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-typed-array@^1.1.10, is-typed-array@^1.1.3: - version "1.1.10" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== - dependencies: - "@jest/types" "^29.3.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== - dependencies: - chalk "^4.0.0" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-util "^29.3.1" - -jest-regex-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" - integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== - -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.3.1" - graceful-fs "^4.2.9" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - natural-compare "^1.4.0" - pretty-format "^29.3.1" - semver "^7.3.5" - -jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== - dependencies: - "@types/node" "*" - jest-util "^29.3.1" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.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" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -keccak@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - -keyv@^4.0.0: - version "4.5.2" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== - dependencies: - json-buffer "3.0.1" - -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" - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - -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" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -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== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.4: - 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.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" - integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^3.0.4, minimatch@^3.1.1: - 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" - -minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz" - integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== - dependencies: - mkdirp "*" - -mkdirp@*: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mock-fs@^4.1.0: - version "4.14.0" - resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" - integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - 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: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz" - integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - -nano-json-stream-parser@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz" - integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== - -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== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -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.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -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-url@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz" - integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -oboe@2.1.5: - version "2.1.5" - resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" - integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== - dependencies: - http-https "^1.0.0" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - -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-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-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== - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" - 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-headers@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz" - integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -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-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -pbkdf2@^3.0.17, pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -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== - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" - 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" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" - 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.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -request@^2.79.0: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" - 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" - -resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -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== - -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scrypt-js@^3.0.0, scrypt-js@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@^4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== - dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.5: - 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" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - 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" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -servify@^0.1.12: - version "0.1.12" - resolved "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz" - integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== - dependencies: - body-parser "^1.16.0" - cors "^2.8.1" - express "^4.14.0" - request "^2.79.0" - xhr "^2.3.3" - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -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== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^2.7.0: - version "2.8.2" - resolved "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz" - integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -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.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" - integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== - dependencies: - is-hex-prefixed "1.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - 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" - -swarm-js@^0.1.40: - version "0.1.42" - resolved "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz" - integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^11.8.5" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - -tar@^4.0.2: - version "4.4.19" - resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" - integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -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-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" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -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-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.7.2: - version "2.7.2" - resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" - integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@^4.9.3: - version "4.9.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz" - integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz" - integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.12.0: - version "0.12.5" - resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -web3-bzz@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.1.tgz" - integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - -web3-core-helpers@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz" - integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== - dependencies: - web3-eth-iban "1.8.1" - web3-utils "1.8.1" - -web3-core-method@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.1.tgz" - integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-utils "1.8.1" - -web3-core-promievent@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz" - integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz" - integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== - dependencies: - util "^0.12.0" - web3-core-helpers "1.8.1" - web3-providers-http "1.8.1" - web3-providers-ipc "1.8.1" - web3-providers-ws "1.8.1" - -web3-core-subscriptions@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz" - integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - -web3-core@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.8.1.tgz" - integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-requestmanager "1.8.1" - web3-utils "1.8.1" - -web3-eth-abi@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz" - integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.1" - -web3-eth-accounts@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz" - integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== - dependencies: - "@ethereumjs/common" "2.5.0" - "@ethereumjs/tx" "3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "^9.0.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - -web3-eth-contract@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz" - integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-utils "1.8.1" - -web3-eth-ens@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz" - integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-contract "1.8.1" - web3-utils "1.8.1" - -web3-eth-iban@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz" - integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== - dependencies: - bn.js "^5.2.1" - web3-utils "1.8.1" - -web3-eth-personal@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz" - integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - -web3-eth@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.1.tgz" - integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== - dependencies: - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-accounts "1.8.1" - web3-eth-contract "1.8.1" - web3-eth-ens "1.8.1" - web3-eth-iban "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - -web3-net@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.8.1.tgz" - integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - -web3-providers-http@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.1.tgz" - integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== - dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.8.1" - -web3-providers-ipc@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz" - integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.8.1" - -web3-providers-ws@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz" - integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - websocket "^1.0.32" - -web3-shh@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.1.tgz" - integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-net "1.8.1" - -web3-utils@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz" - integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== - 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.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3/-/web3-1.8.1.tgz" - integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== - dependencies: - web3-bzz "1.8.1" - web3-core "1.8.1" - web3-eth "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-shh "1.8.1" - web3-utils "1.8.1" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -websocket@^1.0.32: - version "1.0.34" - resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" - integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== - dependencies: - bufferutil "^4.0.1" - debug "^2.2.0" - es5-ext "^0.10.50" - typedarray-to-buffer "^3.1.5" - utf-8-validate "^5.0.2" - yaeti "^0.0.6" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-typed-array@^1.1.2: - version "1.1.9" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -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@^3.0.0: - version "3.3.3" - resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.0.1, xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz" - 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" - -xhr@^2.0.4, xhr@^2.3.3: - version "2.6.0" - resolved "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" - integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== - -yallist@^3.0.0, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== diff --git a/packages/examples/fortune/reputation-oracle/package-lock.json b/packages/examples/fortune/reputation-oracle/package-lock.json deleted file mode 100644 index 3379bade55..0000000000 --- a/packages/examples/fortune/reputation-oracle/package-lock.json +++ /dev/null @@ -1,11393 +0,0 @@ -{ - "name": "reputation-oracle", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "reputation-oracle", - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "@human-protocol/core": "^1.0.8", - "axios": "^1.1.3", - "minio": "^7.0.32", - "web3": "^1.8.1" - }, - "devDependencies": { - "@babel/preset-typescript": "^7.18.6", - "@jest/globals": "^29.3.1", - "@types/body-parser": "^1.19.2", - "@types/cors": "^2.8.12", - "@types/express": "^4.17.14", - "@types/minio": "^7.0.14", - "@types/node": "^18.11.9", - "typescript": "^4.9.3" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", - "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/generator": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", - "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.2", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", - "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "dev": true, - "license": "MIT", - "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.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", - "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", - "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", - "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.1", - "@babel/types": "^7.20.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "node_modules/@ethereumjs/tx/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bignumber/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT" - }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@human-protocol/core": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@human-protocol/core/-/core-1.0.8.tgz", - "integrity": "sha512-z0JLzecGu7qPtKcBtAtLnpb+13ScjE7noLL0QH7UKCB9dGq6Z/RQ2Bba+1gnF3izKvkUOzVyWg2amU7j6q9TZA==", - "license": "MIT" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", - "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-mock": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.3.1", - "jest-snapshot": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", - "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.2.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", - "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.3.1", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", - "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/types": "^29.3.1", - "jest-mock": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", - "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.3.1", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/types": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", - "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.0.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", - "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minio": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/minio/-/minio-7.0.14.tgz", - "integrity": "sha512-NZbszX8FSiMKq3RTR4J0n3Q8914Y4XRBdjpdexMWByy7eC59ujTcf1q6Rn7w4Jt/B/ZBoNzxOBX3jzhewWgItQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", - "license": "MIT" - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", - "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "license": "(Unlicense OR Apache-2.0)", - "optional": true - }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "license": "MIT" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "license": "MIT" - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", - "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bignumber.js": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", - "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "license": "MIT" - }, - "node_modules/block-stream2": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", - "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "license": "MIT", - "dependencies": { - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "license": "MIT" - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "license": "MIT" - }, - "node_modules/browser-or-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", - "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==", - "license": "MIT" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", - "license": "MIT" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "license": "MIT" - }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "license": "MIT", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "license": "Apache-2.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "license": "ISC" - }, - "node_modules/ci-info": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", - "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", - "license": "MIT" - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "license": "ISC", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "license": "MIT", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/diff-sequences": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", - "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true, - "license": "ISC" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "license": "MIT" - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "license": "MIT" - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", - "license": "ISC", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "license": "MIT" - }, - "node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "license": "MIT", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "license": "MIT", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "license": "MIT" - }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "license": "MIT" - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "license": "ISC", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "license": "ISC" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", - "license": "MIT", - "dependencies": { - "strnum": "^1.0.4" - }, - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "license": "MIT" - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "license": "ISC", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "license": "MIT" - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "license": "ISC" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "license": "BSD-2-Clause" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", - "license": "ISC" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "license": "MIT", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "license": "MIT" - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "license": "MIT", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "license": "MIT" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", - "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.3.1", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", - "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", - "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.3.1", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", - "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.3.1", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", - "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.3.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", - "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-util": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-regex-util": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", - "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", - "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.3.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-haste-map": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "natural-compare": "^1.4.0", - "pretty-format": "^29.3.1", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", - "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", - "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.3.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "license": "MIT" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/json-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", - "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==", - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "license": "ISC" - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-cache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minio": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/minio/-/minio-7.0.32.tgz", - "integrity": "sha512-txa7Vr0N24MKzeAybP/wY1jxbLnfGHXwZYyfFXuMW55HX2+HOcKEIgH4hU6Qj/kiMgyXs/ozHjAuLIDrR8nwLg==", - "license": "Apache-2.0", - "dependencies": { - "async": "^3.1.0", - "block-stream2": "^2.0.0", - "browser-or-node": "^1.3.0", - "buffer-crc32": "^0.2.13", - "crypto-browserify": "^3.12.0", - "es6-error": "^4.1.1", - "fast-xml-parser": "^3.17.5", - "ipaddr.js": "^2.0.1", - "json-stream": "^1.0.0", - "lodash": "^4.17.21", - "mime-types": "^2.1.14", - "mkdirp": "^0.5.1", - "query-string": "^7.1.1", - "through2": "^3.0.1", - "web-encoding": "^1.1.5", - "xml": "^1.0.0", - "xml2js": "^0.4.15" - }, - "engines": { - "node": ">8 <=18" - } - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "license": "MIT", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "license": "ISC", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mkdirp-promise/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "license": "MIT", - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", - "license": "MIT" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "license": "ISC" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "license": "MIT" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "license": "MIT" - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pretty-format": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", - "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "license": "MIT" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", - "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true, - "license": "MIT" - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/rlp/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "license": "ISC" - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "license": "MIT" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "license": "MIT", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-get/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "license": "MIT", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "license": "MIT", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/swarm-js/node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "license": "ISC", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "license": "Unlicense" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "license": "ISC" - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "license": "MIT" - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==", - "license": "MIT" - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "license": "MIT" - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/extsprintf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "license": "MIT", - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, - "node_modules/web3": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.1.tgz", - "integrity": "sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ==", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-bzz": "1.8.1", - "web3-core": "1.8.1", - "web3-eth": "1.8.1", - "web3-eth-personal": "1.8.1", - "web3-net": "1.8.1", - "web3-shh": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.1.tgz", - "integrity": "sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w==", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "license": "MIT" - }, - "node_modules/web3-core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.1.tgz", - "integrity": "sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw==", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-requestmanager": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz", - "integrity": "sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw==", - "license": "LGPL-3.0", - "dependencies": { - "web3-eth-iban": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.1.tgz", - "integrity": "sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA==", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz", - "integrity": "sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg==", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz", - "integrity": "sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw==", - "license": "LGPL-3.0", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.8.1", - "web3-providers-http": "1.8.1", - "web3-providers-ipc": "1.8.1", - "web3-providers-ws": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz", - "integrity": "sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw==", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "license": "MIT" - }, - "node_modules/web3-eth": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.1.tgz", - "integrity": "sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg==", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-eth-accounts": "1.8.1", - "web3-eth-contract": "1.8.1", - "web3-eth-ens": "1.8.1", - "web3-eth-iban": "1.8.1", - "web3-eth-personal": "1.8.1", - "web3-net": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz", - "integrity": "sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w==", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz", - "integrity": "sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg==", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz", - "integrity": "sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg==", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz", - "integrity": "sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ==", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-eth-contract": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz", - "integrity": "sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg==", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/web3-eth-personal": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz", - "integrity": "sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA==", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-net": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "license": "MIT" - }, - "node_modules/web3-net": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.1.tgz", - "integrity": "sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ==", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.8.1", - "web3-core-method": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.1.tgz", - "integrity": "sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg==", - "license": "LGPL-3.0", - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz", - "integrity": "sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA==", - "license": "LGPL-3.0", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz", - "integrity": "sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA==", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.1", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-shh": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.1.tgz", - "integrity": "sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g==", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-net": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz", - "integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "license": "Apache-2.0", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "license": "MIT", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "license": "MIT", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr-request/node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/xhr-request/node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "license": "MIT" - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "license": "MIT", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", - "dev": true - }, - "@babel/core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", - "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", - "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", - "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "dev": true, - "requires": { - "@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.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", - "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", - "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.20.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - } - }, - "@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", - "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.1", - "@babel/types": "^7.20.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "requires": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - } - } - }, - "@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "requires": { - "@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": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "requires": { - "@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": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "requires": { - "@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": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "requires": { - "@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": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "requires": { - "@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/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" - }, - "@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "requires": { - "@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" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "requires": { - "@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/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "requires": { - "@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" - } - }, - "@human-protocol/core": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@human-protocol/core/-/core-1.0.8.tgz", - "integrity": "sha512-z0JLzecGu7qPtKcBtAtLnpb+13ScjE7noLL0QH7UKCB9dGq6Z/RQ2Bba+1gnF3izKvkUOzVyWg2amU7j6q9TZA==" - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/environment": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", - "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", - "dev": true, - "requires": { - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-mock": "^29.3.1" - } - }, - "@jest/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", - "dev": true, - "requires": { - "expect": "^29.3.1", - "jest-snapshot": "^29.3.1" - } - }, - "@jest/expect-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", - "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", - "dev": true, - "requires": { - "jest-get-type": "^29.2.0" - } - }, - "@jest/fake-timers": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", - "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" - } - }, - "@jest/globals": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", - "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", - "dev": true, - "requires": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/types": "^29.3.1", - "jest-mock": "^29.3.1" - } - }, - "@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/transform": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", - "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.3.1", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "dependencies": { - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - } - } - }, - "@jest/types": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", - "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", - "dev": true, - "requires": { - "@jest/schemas": "^29.0.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" - }, - "@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@types/babel__traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", - "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "requires": { - "@types/node": "*" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true - }, - "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "requires": { - "@types/node": "*" - } - }, - "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true - }, - "@types/minio": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/minio/-/minio-7.0.14.tgz", - "integrity": "sha512-NZbszX8FSiMKq3RTR4J0n3Q8914Y4XRBdjpdexMWByy7eC59ujTcf1q6Rn7w4Jt/B/ZBoNzxOBX3jzhewWgItQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "requires": { - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dev": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", - "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, - "abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "axios": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", - "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", - "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==" - }, - "blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" - }, - "block-stream2": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", - "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "requires": { - "readable-stream": "^3.4.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "requires": { - "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" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "browser-or-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", - "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "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": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" - }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==" - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "requires": { - "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" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "ci-info": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", - "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", - "dev": true - }, - "cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "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": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "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" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "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" - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "diff-sequences": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", - "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "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" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - } - } - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "requires": { - "@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" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - } - } - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", - "dev": true, - "requires": { - "@jest/expect-utils": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1" - } - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "requires": { - "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": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "requires": { - "type": "^2.7.2" - }, - "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", - "requires": { - "strnum": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "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-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "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" - } - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "requires": { - "@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" - }, - "dependencies": { - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" - } - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==" - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "jest-diff": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", - "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.3.1", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - } - }, - "jest-get-type": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", - "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", - "dev": true - }, - "jest-haste-map": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", - "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-matcher-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", - "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.3.1", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - } - }, - "jest-message-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", - "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.3.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", - "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-util": "^29.3.1" - } - }, - "jest-regex-util": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", - "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", - "dev": true - }, - "jest-snapshot": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", - "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.3.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-haste-map": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "natural-compare": "^1.4.0", - "pretty-format": "^29.3.1", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", - "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", - "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.3.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", - "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "requires": { - "json-buffer": "3.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, - "minio": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/minio/-/minio-7.0.32.tgz", - "integrity": "sha512-txa7Vr0N24MKzeAybP/wY1jxbLnfGHXwZYyfFXuMW55HX2+HOcKEIgH4hU6Qj/kiMgyXs/ozHjAuLIDrR8nwLg==", - "requires": { - "async": "^3.1.0", - "block-stream2": "^2.0.0", - "browser-or-node": "^1.3.0", - "buffer-crc32": "^0.2.13", - "crypto-browserify": "^3.12.0", - "es6-error": "^4.1.1", - "fast-xml-parser": "^3.17.5", - "ipaddr.js": "^2.0.1", - "json-stream": "^1.0.0", - "lodash": "^4.17.21", - "mime-types": "^2.1.14", - "mkdirp": "^0.5.1", - "query-string": "^7.1.1", - "through2": "^3.0.1", - "web-encoding": "^1.1.5", - "xml": "^1.0.0", - "xml2js": "^0.4.15" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "requires": { - "mkdirp": "*" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, - "mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "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-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pretty-format": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", - "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", - "dev": true, - "requires": { - "@jest/schemas": "^29.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "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" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", - "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", - "requires": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "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" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "requires": { - "lowercase-keys": "^2.0.0" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "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" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - }, - "dependencies": { - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "requires": { - "mimic-response": "^1.0.0" - } - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "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" - } - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "requires": { - "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" - }, - "dependencies": { - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" - }, - "eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "requires": { - "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" - } - }, - "got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "requires": { - "@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" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" - } - } - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "requires": { - "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" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", - "dev": true - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" - }, - "utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "requires": { - "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" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "extsprintf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" - } - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "requires": { - "@zxing/text-encoding": "0.9.0", - "util": "^0.12.3" - } - }, - "web3": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.1.tgz", - "integrity": "sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ==", - "requires": { - "web3-bzz": "1.8.1", - "web3-core": "1.8.1", - "web3-eth": "1.8.1", - "web3-eth-personal": "1.8.1", - "web3-net": "1.8.1", - "web3-shh": "1.8.1", - "web3-utils": "1.8.1" - } - }, - "web3-bzz": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.1.tgz", - "integrity": "sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w==", - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - } - } - }, - "web3-core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.1.tgz", - "integrity": "sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw==", - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-requestmanager": "1.8.1", - "web3-utils": "1.8.1" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - } - } - }, - "web3-core-helpers": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz", - "integrity": "sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw==", - "requires": { - "web3-eth-iban": "1.8.1", - "web3-utils": "1.8.1" - } - }, - "web3-core-method": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.1.tgz", - "integrity": "sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA==", - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-utils": "1.8.1" - } - }, - "web3-core-promievent": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz", - "integrity": "sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg==", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz", - "integrity": "sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw==", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.8.1", - "web3-providers-http": "1.8.1", - "web3-providers-ipc": "1.8.1", - "web3-providers-ws": "1.8.1" - } - }, - "web3-core-subscriptions": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz", - "integrity": "sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.1" - } - }, - "web3-eth": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.1.tgz", - "integrity": "sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg==", - "requires": { - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-eth-accounts": "1.8.1", - "web3-eth-contract": "1.8.1", - "web3-eth-ens": "1.8.1", - "web3-eth-iban": "1.8.1", - "web3-eth-personal": "1.8.1", - "web3-net": "1.8.1", - "web3-utils": "1.8.1" - } - }, - "web3-eth-abi": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz", - "integrity": "sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w==", - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.1" - } - }, - "web3-eth-accounts": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz", - "integrity": "sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg==", - "requires": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-utils": "1.8.1" - } - }, - "web3-eth-contract": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz", - "integrity": "sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg==", - "requires": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-utils": "1.8.1" - } - }, - "web3-eth-ens": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz", - "integrity": "sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ==", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-eth-contract": "1.8.1", - "web3-utils": "1.8.1" - } - }, - "web3-eth-iban": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz", - "integrity": "sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg==", - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "web3-eth-personal": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz", - "integrity": "sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA==", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-net": "1.8.1", - "web3-utils": "1.8.1" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - } - } - }, - "web3-net": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.1.tgz", - "integrity": "sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ==", - "requires": { - "web3-core": "1.8.1", - "web3-core-method": "1.8.1", - "web3-utils": "1.8.1" - } - }, - "web3-providers-http": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.1.tgz", - "integrity": "sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg==", - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.1" - } - }, - "web3-providers-ipc": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz", - "integrity": "sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA==", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.1" - } - }, - "web3-providers-ws": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz", - "integrity": "sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.1", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.1.tgz", - "integrity": "sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g==", - "requires": { - "web3-core": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-net": "1.8.1" - } - }, - "web3-utils": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz", - "integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==", - "requires": { - "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" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "requires": { - "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" - } - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "requires": { - "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" - }, - "dependencies": { - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" - } - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } -} diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index ee5fc7c8d2..876c195c15 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -64,11 +64,12 @@ app.post('/job/results', async (req, res) => { return res.status(200).send({ message: 'Escrow has been completed' }); } catch (err) { - console.error(err); return res.status(500).send({ message: err }); } }); app.listen(port, () => { + // TODO: Implement logger + // eslint-disable-next-line no-console console.log(`Reputation Oracle server listening the port ${port}`); }); diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.ts index 8b6f1b461a..65686b6299 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.ts @@ -10,7 +10,7 @@ export async function bulkPayOut( web3: Web3, escrowAddress: string, workerAddresses: string[], - rewards: any, + rewards: Array, resultsUrl: string, resultHash: string ) { diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index 3992f42076..94fe95c9f4 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -1,11 +1,16 @@ import Web3 from 'web3'; +export interface FortuneEntry { + worker: string; + fortune: string; +} + export function filterAddressesToReward( web3: Web3, - addressFortunesEntries: any[] + addressFortunesEntries: FortuneEntry[] ) { - const filteredResults: any = []; - const tmpHashMap: any = {}; + const filteredResults: FortuneEntry[] = []; + const tmpHashMap: Record = {}; addressFortunesEntries.forEach((fortuneEntry) => { const { fortune } = fortuneEntry; @@ -18,7 +23,7 @@ export function filterAddressesToReward( }); return filteredResults - .map((fortune: { worker: any }) => fortune.worker) + .map((fortune: { worker: string }) => fortune.worker) .map(web3.utils.toChecksumAddress); } diff --git a/packages/examples/fortune/reputation-oracle/yarn.lock b/packages/examples/fortune/reputation-oracle/yarn.lock deleted file mode 100644 index 2dfff7e17f..0000000000 --- a/packages/examples/fortune/reputation-oracle/yarn.lock +++ /dev/null @@ -1,3962 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.20.0": - version "7.20.1" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": - version "7.20.4" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz" - integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== - dependencies: - "@babel/types" "^7.20.2" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-compilation-targets@^7.20.0": - version "7.20.0" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== - dependencies: - "@babel/compat-data" "^7.20.0" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.20.2": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz" - integrity sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.19.1" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.20.2": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz" - integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== - 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.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - 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.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@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.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-replace-supers@^7.19.1": - version "7.19.1" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz" - integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.19.1" - "@babel/types" "^7.19.0" - -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== - dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": - version "7.20.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz" - integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-typescript@^7.18.6": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz" - integrity sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" - -"@babel/preset-typescript@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz" - integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-typescript" "^7.18.6" - -"@babel/template@^7.18.10": - version "7.18.10" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": - version "7.20.1" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@ethereumjs/common@2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz" - integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.1" - -"@ethereumjs/common@^2.5.0": - version "2.6.5" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" - integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.5" - -"@ethereumjs/tx@3.3.2": - version "3.3.2" - resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz" - integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== - dependencies: - "@ethereumjs/common" "^2.5.0" - ethereumjs-util "^7.1.2" - -"@ethersproject/abi@^5.6.3": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" - 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": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" - 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": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" - integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== - 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": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" - 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": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" - integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - -"@ethersproject/bignumber@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" - integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - bn.js "^5.2.1" - -"@ethersproject/bytes@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" - integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/constants@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" - integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - -"@ethersproject/hash@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" - 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/keccak256@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" - integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - js-sha3 "0.8.0" - -"@ethersproject/logger@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" - integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== - -"@ethersproject/networks@^5.7.0": - version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" - integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/properties@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" - integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/rlp@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" - integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/signing-key@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" - integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== - 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/strings@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" - integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" - 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/web@^5.7.0": - version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" - 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" - -"@human-protocol/core@^1.0.8": - version "1.0.8" - resolved "https://registry.npmjs.org/@human-protocol/core/-/core-1.0.8.tgz" - integrity sha512-z0JLzecGu7qPtKcBtAtLnpb+13ScjE7noLL0QH7UKCB9dGq6Z/RQ2Bba+1gnF3izKvkUOzVyWg2amU7j6q9TZA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== - dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-mock "^29.3.1" - -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== - dependencies: - jest-get-type "^29.2.0" - -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== - dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" - -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== - dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" - -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" - -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== - dependencies: - "@jest/schemas" "^29.0.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - -"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": - version "4.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@sinonjs/commons@^1.7.0": - version "1.8.5" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz" - integrity sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - -"@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== - dependencies: - "@babel/types" "^7.3.0" - -"@types/bn.js@^5.1.0": - version "5.1.1" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - dependencies: - "@types/node" "*" - -"@types/body-parser@*", "@types/body-parser@^1.19.2": - version "1.19.2" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": - version "6.0.3" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz" - integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/cors@^2.8.12": - version "2.8.12" - resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== - -"@types/express-serve-static-core@^4.17.18": - version "4.17.31" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz" - integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@^4.17.14": - version "4.17.14" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/keyv@^3.1.4": - version "3.1.4" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== - dependencies: - "@types/node" "*" - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/minio@^7.0.14": - version "7.0.14" - resolved "https://registry.npmjs.org/@types/minio/-/minio-7.0.14.tgz" - integrity sha512-NZbszX8FSiMKq3RTR4J0n3Q8914Y4XRBdjpdexMWByy7eC59ujTcf1q6Rn7w4Jt/B/ZBoNzxOBX3jzhewWgItQ== - dependencies: - "@types/node" "*" - -"@types/node@*", "@types/node@^18.11.9": - version "18.11.9" - resolved "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== - -"@types/node@^12.12.6": - version "12.20.55" - resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - -"@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/secp256k1@^4.0.1": - version "4.0.3" - resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== - dependencies: - "@types/node" "*" - -"@types/serve-static@*": - version "1.15.0" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== - dependencies: - "@types/mime" "*" - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== - dependencies: - "@types/yargs-parser" "*" - -abortcontroller-polyfill@^1.7.3: - version "1.7.5" - resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz" - integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" - 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.npmjs.org/asn1/-/asn1-0.2.6.tgz" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2, base-x@^3.0.8: - version "3.0.9" - resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== - -blakejs@^1.1.0: - version "1.2.1" - resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" - integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== - -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -body-parser@1.20.1, body-parser@^1.16.0: - version "1.20.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - 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.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - 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.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" - 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.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz" - integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bufferutil@^4.0.1: - version "4.0.7" - resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz" - integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== - dependencies: - node-gyp-build "^4.3.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-lookup@^6.0.4: - version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz" - integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== - -cacheable-request@^7.0.2: - version "7.0.2" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - 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" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001400: - version "1.0.30001431" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz" - integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -ci-info@^3.2.0: - version "3.6.1" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz" - integrity sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w== - -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz" - 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" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -cors@^2.8.1: - version "2.8.5" - resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -crc-32@^1.2.0: - version "1.2.2" - resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" - integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" - 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.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - 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" - -cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - 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" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -debug@2.6.9, debug@^2.2.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== - dependencies: - mimic-response "^1.0.0" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -diff-sequences@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz" - integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== - -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.62" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz" - 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.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" - integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.2.8: - version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-symbol@^3.1.1, es6-symbol@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz" - integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.1.26: - version "0.1.29" - resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz" - integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - nano-json-stream-parser "^0.1.2" - servify "^0.1.12" - ws "^3.0.0" - xhr-request-promise "^0.1.2" - -ethereum-bloom-filters@^1.0.6: - version "1.0.10" - resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" - integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== - dependencies: - js-sha3 "^0.8.0" - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@types/pbkdf2" "^3.0.0" - "@types/secp256k1" "^4.0.1" - blakejs "^1.1.0" - browserify-aes "^1.2.0" - bs58check "^2.1.2" - create-hash "^1.2.0" - create-hmac "^1.1.7" - hash.js "^1.1.7" - keccak "^3.0.0" - pbkdf2 "^3.0.17" - randombytes "^2.1.0" - safe-buffer "^5.1.2" - scrypt-js "^3.0.0" - secp256k1 "^4.0.1" - setimmediate "^1.0.5" - -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: - version "7.1.5" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" - integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== - 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" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" - integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -expect@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== - dependencies: - "@jest/expect-utils" "^29.3.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - -express@^4.14.0: - version "4.18.2" - resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.7.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" - integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== - dependencies: - type "^2.7.2" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data-encoder@1.7.1: - version "1.7.1" - resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz" - integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" - 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.npmjs.org/form-data/-/form-data-2.3.3.tgz" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -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== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob@^7.1.4: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global@~4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -got@12.1.0: - version "12.1.0" - resolved "https://registry.npmjs.org/got/-/got-12.1.0.tgz" - integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== - dependencies: - "@sindresorhus/is" "^4.6.0" - "@szmarczak/http-timer" "^5.0.1" - "@types/cacheable-request" "^6.0.2" - "@types/responselike" "^1.0.0" - cacheable-lookup "^6.0.4" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - form-data-encoder "1.7.1" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^2.0.0" - -got@^11.8.5: - version "11.8.5" - resolved "https://registry.npmjs.org/got/-/got-11.8.5.tgz" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" - 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.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-https@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz" - integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz" - integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== - dependencies: - punycode "2.1.0" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3: - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" - integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-typed-array@^1.1.10, is-typed-array@^1.1.3: - version "1.1.10" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== - dependencies: - "@jest/types" "^29.3.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== - dependencies: - chalk "^4.0.0" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-util "^29.3.1" - -jest-regex-util@^29.2.0: - version "29.2.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz" - integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== - -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.3.1" - graceful-fs "^4.2.9" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - natural-compare "^1.4.0" - pretty-format "^29.3.1" - semver "^7.3.5" - -jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== - dependencies: - "@types/node" "*" - jest-util "^29.3.1" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -keccak@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - -keyv@^4.0.0: - version "4.5.2" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== - dependencies: - json-buffer "3.0.1" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" - integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz" - integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== - dependencies: - mkdirp "*" - -mkdirp@*: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mock-fs@^4.1.0: - version "4.14.0" - resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" - integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz" - integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - -nano-json-stream-parser@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz" - integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz" - integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -oboe@2.1.5: - version "2.1.5" - resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" - integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== - dependencies: - http-https "^1.0.0" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" - 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-headers@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz" - integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -pbkdf2@^3.0.17, pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" - 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" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" - 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.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -request@^2.79.0: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" - 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" - -resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scrypt-js@^3.0.0, scrypt-js@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@^4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== - dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.5: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - 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" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -servify@^0.1.12: - version "0.1.12" - resolved "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz" - integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== - dependencies: - body-parser "^1.16.0" - cors "^2.8.1" - express "^4.14.0" - request "^2.79.0" - xhr "^2.3.3" - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^2.7.0: - version "2.8.2" - resolved "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz" - integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" - integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== - dependencies: - is-hex-prefixed "1.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -swarm-js@^0.1.40: - version "0.1.42" - resolved "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz" - integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^11.8.5" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - -tar@^4.0.2: - version "4.4.19" - resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" - integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.7.2: - version "2.7.2" - resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" - integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@^4.9.3: - version "4.9.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz" - integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz" - integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.12.0: - version "0.12.5" - resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -web3-bzz@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.1.tgz" - integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - -web3-core-helpers@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz" - integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== - dependencies: - web3-eth-iban "1.8.1" - web3-utils "1.8.1" - -web3-core-method@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.1.tgz" - integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-utils "1.8.1" - -web3-core-promievent@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz" - integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz" - integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== - dependencies: - util "^0.12.0" - web3-core-helpers "1.8.1" - web3-providers-http "1.8.1" - web3-providers-ipc "1.8.1" - web3-providers-ws "1.8.1" - -web3-core-subscriptions@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz" - integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - -web3-core@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.8.1.tgz" - integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-requestmanager "1.8.1" - web3-utils "1.8.1" - -web3-eth-abi@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz" - integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.1" - -web3-eth-accounts@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz" - integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== - dependencies: - "@ethereumjs/common" "2.5.0" - "@ethereumjs/tx" "3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "^9.0.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - -web3-eth-contract@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz" - integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-utils "1.8.1" - -web3-eth-ens@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz" - integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-contract "1.8.1" - web3-utils "1.8.1" - -web3-eth-iban@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz" - integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== - dependencies: - bn.js "^5.2.1" - web3-utils "1.8.1" - -web3-eth-personal@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz" - integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - -web3-eth@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.1.tgz" - integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== - dependencies: - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-accounts "1.8.1" - web3-eth-contract "1.8.1" - web3-eth-ens "1.8.1" - web3-eth-iban "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - -web3-net@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.8.1.tgz" - integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - -web3-providers-http@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.1.tgz" - integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== - dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.8.1" - -web3-providers-ipc@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz" - integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.8.1" - -web3-providers-ws@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz" - integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - websocket "^1.0.32" - -web3-shh@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.1.tgz" - integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-net "1.8.1" - -web3-utils@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz" - integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== - 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.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3/-/web3-1.8.1.tgz" - integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== - dependencies: - web3-bzz "1.8.1" - web3-core "1.8.1" - web3-eth "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-shh "1.8.1" - web3-utils "1.8.1" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -websocket@^1.0.32: - version "1.0.34" - resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" - integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== - dependencies: - bufferutil "^4.0.1" - debug "^2.2.0" - es5-ext "^0.10.50" - typedarray-to-buffer "^3.1.5" - utf-8-validate "^5.0.2" - yaeti "^0.0.6" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-typed-array@^1.1.2: - version "1.1.9" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -ws@^3.0.0: - version "3.3.3" - resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.0.1, xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz" - 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" - -xhr@^2.0.4, xhr@^2.3.3: - version "2.6.0" - resolved "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" - integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== - -yallist@^3.0.0, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== diff --git a/packages/sdk/typescript/human-protocol-sdk/package.json b/packages/sdk/typescript/human-protocol-sdk/package.json index baff67301b..9dbe247287 100644 --- a/packages/sdk/typescript/human-protocol-sdk/package.json +++ b/packages/sdk/typescript/human-protocol-sdk/package.json @@ -38,7 +38,7 @@ ] }, "dependencies": { - "@human-protocol/core": "^1.0.10", + "@human-protocol/core": "^1.0.11", "aws-sdk": "^2.1255.0", "crypto": "^1.0.1", "dotenv": "^16.0.3", @@ -47,6 +47,6 @@ "winston": "^3.8.2" }, "peerDependencies": { - "@human-protocol/core": "^1.0.10" + "@human-protocol/core": "^1.0.11" } } diff --git a/packages/sdk/typescript/subgraph/yarn.lock b/packages/sdk/typescript/subgraph/yarn.lock deleted file mode 100644 index 6f00e56fd7..0000000000 --- a/packages/sdk/typescript/subgraph/yarn.lock +++ /dev/null @@ -1,4284 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@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.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/generator@^7.20.1": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.2.tgz#c2e89e22613a039285c1e7b749e2cd0b30b9a481" - integrity sha512-SD75PMIK6i9H8G/tfGvB4KKl4Nw6Ssos9nGgYwxbgyTP0iX/Z55DveoH86rmUB/YHTQQ+ZC0F7xxaY8l2OF44Q== - dependencies: - "@babel/types" "^7.20.2" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@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-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - 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-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.2.tgz#9aeb9b92f64412b5f81064d46f6a1ac0881337f4" - integrity sha512-afk318kh2uKbo7BEj2QtEi8HVCGrwHUffrYDy7dgVcSa2j9lY3LDjPzcyGdpX7xgm35aWqvciZJ4WKmdF/SxYg== - -"@babel/runtime@^7.9.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" - integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== - dependencies: - regenerator-runtime "^0.13.10" - -"@babel/template@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.16.8": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.16.8", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@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" - -"@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/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": - 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.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": - 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/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.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.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/hash@^5.0.4": - 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/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.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.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/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/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/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/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": - 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/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" - -"@graphprotocol/graph-cli@^0.35.0": - version "0.35.0" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.35.0.tgz#2f3c688f47ce763c2e8c6d8b86817fb21b3a367d" - integrity sha512-50tjeLZg3425fwueH8ORTZbPRSn4uICL0NK9XsJVriDPKCNnhyAIgJgOWaYyPAFgxR8LuyXYkoxIxZ5nduKbiw== - dependencies: - assemblyscript "0.19.10" - binary-install-raw "0.0.13" - chalk "3.0.0" - chokidar "3.5.1" - debug "4.3.1" - docker-compose "0.23.4" - dockerode "2.5.8" - fs-extra "9.0.0" - glob "7.1.6" - gluegun "https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep" - graphql "15.5.0" - immutable "3.8.2" - ipfs-http-client "34.0.0" - jayson "3.6.6" - js-yaml "3.13.1" - node-fetch "2.6.0" - pkginfo "0.4.1" - prettier "1.19.1" - request "2.88.2" - semver "7.3.5" - sync-request "6.1.0" - tmp-promise "3.0.2" - web3-eth-abi "1.7.0" - which "2.0.2" - yaml "1.9.2" - -"@graphprotocol/graph-ts@^0.27.0": - version "0.27.0" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.27.0.tgz#948fe1716f6082964a01a63a19bcbf9ac44e06ff" - integrity sha512-r1SPDIZVQiGMxcY8rhFSM0y7d/xAbQf5vHMWUf59js1KgoyWpM6P3tczZqmQd7JTmeyNsDGIPzd9FeaxllsU4w== - dependencies: - assemblyscript "0.19.10" - -"@graphprotocol/graph-ts@^0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.28.1.tgz#271affc77deb5a4a7c3f95d4b3b1daaa9818e51c" - integrity sha512-1wMLQ0cu84/6Ml3zcz9ya1zFzrDAzCj0dIGZ7Rz9upnRSXg5jjqU4DefO/OYrl2K2/OPso9hSAr6I4aue2pL1Q== - dependencies: - assemblyscript "0.19.10" - -"@graphql-eslint/eslint-plugin@^3.13.0": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.13.1.tgz#2805481f3a39b260035c035d260851c43ee957a5" - integrity sha512-Q9holJ9CnV5zgG3uqYAMdJ4GBVsNjF/BOaGWeBx6K33P3BvCXGivCZvJJhpXCRfbp0sP2CiLKf02eG9ScZS3lg== - dependencies: - "@babel/code-frame" "^7.18.6" - "@graphql-tools/code-file-loader" "^7.3.6" - "@graphql-tools/graphql-tag-pluck" "^7.3.6" - "@graphql-tools/utils" "^9.0.0" - chalk "^4.1.2" - debug "^4.3.4" - fast-glob "^3.2.12" - graphql-config "^4.3.6" - graphql-depth-limit "^1.1.0" - lodash.lowercase "^4.3.0" - -"@graphql-tools/batch-execute@8.5.10": - version "8.5.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.10.tgz#ec0a300ec0646aba3d52a5b4ad378da7531703de" - integrity sha512-f3b/UPvscQ4NaSmSQIeZPNFhpZ9xb3AftKKSn9NzsUp3vxz0d8tymBVn28f51oqiqN9BMDpCH9P8TZrKpH1//Q== - dependencies: - "@graphql-tools/utils" "9.0.1" - dataloader "2.1.0" - tslib "^2.4.0" - value-or-promise "1.0.11" - -"@graphql-tools/code-file-loader@^7.3.6": - version "7.3.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.10.tgz#ffb752beb4521f877537ca9c6ccd209c4118a9a6" - integrity sha512-UbEbuzhL01CvNhlesWMAo2ffRoyPRffTDlnUnkyvb6RuJkZhgY5A0k1RJYjt1uJQOkzPQLkkVKdSYqhHRkoH7g== - dependencies: - "@graphql-tools/graphql-tag-pluck" "7.3.10" - "@graphql-tools/utils" "9.0.1" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/delegate@9.0.14": - version "9.0.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.14.tgz#0636668c0d76c8aa0bdb419796669465273ad8fb" - integrity sha512-yKwNQl10fOdKxSk5yBoKnSjq1oumf4QYVinV9niD9KVow6j0dONtaiAYvhzaQwN/Xwwi7oADFACmKRtphlhFTw== - dependencies: - "@graphql-tools/batch-execute" "8.5.10" - "@graphql-tools/executor" "0.0.6" - "@graphql-tools/schema" "9.0.8" - "@graphql-tools/utils" "9.0.1" - dataloader "2.1.0" - tslib "~2.4.0" - value-or-promise "1.0.11" - -"@graphql-tools/executor@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.6.tgz#e980e3b148b3093091648113bfd14efac5d90c8f" - integrity sha512-2KIj1grRb1Lni97xgX1ryekcjU/WTMC1ZdPpnd0nYrBWs/C4Nv4UMNP7E/Tr8za8zlrsESvEUbpLHsBRiQsGxA== - dependencies: - "@graphql-tools/utils" "9.0.1" - "@graphql-typed-document-node/core" "3.1.1" - "@repeaterjs/repeater" "3.0.4" - tslib "^2.4.0" - value-or-promise "1.0.11" - -"@graphql-tools/graphql-file-loader@^7.3.7": - version "7.5.9" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.9.tgz#f9ba1488351871fc609d6d66b43bddaea6d2a339" - integrity sha512-hEvWFLOG8JGsguWWdHqaFvj0xqwQu4KhqAKEjmIBq4vipVKLcmcjvOM56S0fv/dtn5pcKp9ZOZAxgncYVJ1hzw== - dependencies: - "@graphql-tools/import" "6.7.10" - "@graphql-tools/utils" "9.0.1" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/graphql-tag-pluck@7.3.10", "@graphql-tools/graphql-tag-pluck@^7.3.6": - version "7.3.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.10.tgz#8e56de6b0ef98f938010c0bf33b2b7231a07428f" - integrity sha512-A3FHMbi90NHWTIzrwnbI0kHwCWfSL8j7zXuuIZKL009V+M8K0DPg/+ZCy/4SQB14yl/NTz5ZQ/0GXffD3qvMDg== - dependencies: - "@babel/parser" "^7.16.8" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - "@graphql-tools/utils" "9.0.1" - tslib "^2.4.0" - -"@graphql-tools/import@6.7.10": - version "6.7.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.10.tgz#433b08c95db2cce147032387007b76433d32d35a" - integrity sha512-6L19Ep0pP5wWywq9/jwCt2FdCJnEnyrxkmRkSRdYoTEmOFz5xrsfhyUfWl8ibx34gWzVYhCDOX1bN43zsLCbDA== - dependencies: - "@graphql-tools/utils" "9.0.1" - resolve-from "5.0.0" - tslib "^2.4.0" - -"@graphql-tools/json-file-loader@^7.3.7": - version "7.4.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.10.tgz#473dea83b0dbf985560e5bb7e32f7f133410385f" - integrity sha512-/njUvIW/zdSr70eWDfDQNDXp2UQLe+YKFRLMZkpuISrw5cdvGaMepwpr0Yz6kFnHGwB6wSYLH25LkRAzpiKz+g== - dependencies: - "@graphql-tools/utils" "9.0.1" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/load@^7.5.5": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.4.tgz#47860ff5589b37835777a196435be1e36e7257c7" - integrity sha512-swS3sJx/gVpSw1CfI18zSwLlTFbN6PVlkfaLZJ8VN3d/3C+ESff553LLleXGgzOY9X0H1x3VHZeAR2+HUCrbbw== - dependencies: - "@graphql-tools/schema" "9.0.8" - "@graphql-tools/utils" "9.0.1" - p-limit "3.1.0" - tslib "^2.4.0" - -"@graphql-tools/merge@8.3.10", "@graphql-tools/merge@^8.2.6": - version "8.3.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.10.tgz#81f374bc1e8c81d45cb1003d8ed05f181b7e6bd5" - integrity sha512-/hSg69JwqEA+t01wQmMGKPuaJ9VJBSz6uAXhbNNrTBJu8bmXljw305NVXM49pCwDKFVUGtbTqYrBeLcfT3RoYw== - dependencies: - "@graphql-tools/utils" "9.0.1" - tslib "^2.4.0" - -"@graphql-tools/schema@9.0.8": - version "9.0.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.8.tgz#df3119c8543e6dacf425998f83aa714e2ee86eb0" - integrity sha512-PnES7sNkhQ/FdPQhP7cup0OIzwzQh+nfjklilU7YJzE209ACIyEQtxoNCfvPW5eV6hc9bWsBQeI3Jm4mMtwxNA== - dependencies: - "@graphql-tools/merge" "8.3.10" - "@graphql-tools/utils" "9.0.1" - tslib "^2.4.0" - value-or-promise "1.0.11" - -"@graphql-tools/url-loader@^7.9.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.10.tgz#6cbd1f585aaf7aca51e8fb77ee68fe5e63ebcc50" - integrity sha512-VFf0lKZpPSFtUl3cNycBEWlB8NzJhXFfas0PYsFmzzOmtGcHeY3rY2KMUfBr4wq7chPfBbGpcuAwjiI3x9MZzg== - dependencies: - "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/delegate" "9.0.14" - "@graphql-tools/utils" "9.0.1" - "@graphql-tools/wrap" "9.2.9" - "@types/ws" "^8.0.0" - "@whatwg-node/fetch" "^0.5.0" - dset "^3.1.2" - extract-files "^11.0.0" - graphql-ws "^5.4.1" - isomorphic-ws "^5.0.0" - meros "^1.1.4" - tslib "^2.4.0" - value-or-promise "^1.0.11" - ws "^8.3.0" - -"@graphql-tools/utils@9.0.1", "@graphql-tools/utils@^9.0.0": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.0.1.tgz#04933b34c3435ef9add4f8bdfdf452040376f9d0" - integrity sha512-z6FimVa5E44bHKmqK0/uMp9hHvHo2Tkt9A5rlLb40ReD/8IFKehSXLzM4b2N1vcP7mSsbXIdDK9Aoc8jT/he1Q== - dependencies: - tslib "^2.4.0" - -"@graphql-tools/utils@^8.6.5": - 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/wrap@9.2.9": - version "9.2.9" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.9.tgz#1eee02e0aa8cafefff9ae3d3d0cd34af1d26ed6c" - integrity sha512-GiEMy7VJIKxdgb9E8ZkaAPhePsDbBP5rOj07tr6jzcDY+ZhLcjmD9UuiPGVFgBSu6AzRyoviEJgI0hjksqfl1A== - dependencies: - "@graphql-tools/delegate" "9.0.14" - "@graphql-tools/schema" "9.0.8" - "@graphql-tools/utils" "9.0.1" - tslib "^2.4.0" - value-or-promise "1.0.11" - -"@graphql-typed-document-node/core@3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" - integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== - -"@human-protocol/core@workspace:*": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.6.tgz#2e2f7bee029ed598a42369e21a041d47aff9c945" - integrity sha512-HgW3nI17T3IPAY791gpw87xYSB0J6uawR5mq79odOc5u9qF1v0+FN7u4OzmZwjFFubxoLtlDH4X4Btock6Lwwg== - -"@iarna/toml@^2.2.5": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" - integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@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.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@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.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@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": - 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" - -"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.0.tgz#5368416eb336138770c692ffc2bab119ee3ae917" - integrity sha512-DtNLAG4vmDrdSJFPe7rypkcj597chNQL7u+2dBtYo5mh7VW2+im6ke+O0NVr8W1f4re4C3F71LhoMb0Yxqa48Q== - dependencies: - asn1js "^3.0.5" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -"@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.1" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" - integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== - dependencies: - "@peculiar/asn1-schema" "^2.3.0" - "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.3.2" - tslib "^2.4.1" - webcrypto-core "^1.7.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== - -"@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.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== - -"@types/bn.js@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - 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.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/express-serve-static-core@^4.17.9": - version "4.17.31" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" - integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@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/lodash@^4.14.159": - version "4.14.188" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.188.tgz#e4990c4c81f7c9b00c5ff8eae389c10f27980da5" - integrity sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w== - -"@types/node@*": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== - -"@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": - 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@^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/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== - -"@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== - dependencies: - "@types/node" "*" - -"@types/qs@*", "@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== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@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== - dependencies: - "@types/node" "*" - -"@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.3" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" - integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== - dependencies: - "@types/node" "*" - -"@whatwg-node/fetch@^0.5.0": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.5.1.tgz#62c7e902ddfb7d16b0b31599d81628bbd22350a9" - integrity sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g== - dependencies: - "@peculiar/webcrypto" "^1.4.0" - abort-controller "^3.0.0" - busboy "^1.6.0" - form-data-encoder "^1.7.1" - formdata-node "^4.3.1" - node-fetch "^2.6.7" - undici "^5.12.0" - web-streams-polyfill "^3.2.0" - -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" - -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" - -acorn-walk@^8.1.1: - 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== - -acorn@^8.4.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== - -ajv@^6.12.3: - 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" - -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-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@^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-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.1.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" - -anymatch@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - 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== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -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== - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asap@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -asmcrypto.js@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz#b9f84bd0a1fb82f21f8c29cc284a707ad17bba2e" - integrity sha512-3FgFARf7RupsZETQ1nHnhLUUvpcttcCq1iZCaVAbJZbCZ5VNRrNyvpDyHTOb0KC3llFcsyOT/a99NZcCbeiEsA== - -asn1.js@^5.0.1: - 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.20: - 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@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.22.0.tgz#4ca71d6790c0f26db5d3e358e860b2d542f6e02b" - integrity sha512-BC4tV2hc+oNgKOWfXXrl5iD2W+NkQV1MbRNCMi7YE83VoSzrmJj7LqSJMHYc39nKNnX+MiL4DHzp9zCKIMal/g== - dependencies: - binaryen "110.0.0-nightly.20221019" - long "^5.2.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -async@^2.6.1, async@^2.6.2, async@^2.6.3: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -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== - -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.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@^0.21.1, axios@^0.21.2: - 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" - -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" - -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== - -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" - -bignumber.js@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== - -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@110.0.0-nightly.20221019: - version "110.0.0-nightly.20221019" - resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-110.0.0-nightly.20221019.tgz#3c458f114ea3eb34c64d47d6a03b9529199638c7" - integrity sha512-BmuVpV5hpeU1G9ENWQUslwaxbmol810S3+yd7xVJap+vrSQz7ybXiirwya1FfYSFtuDbfGYPfQAObiW5O2PS1w== - -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" - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw== - dependencies: - safe-buffer "^5.0.1" - -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@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.1.tgz#1cbb439299609e419b5a74d7fce2f8b37d8e5c6f" - integrity sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ== - dependencies: - readable-stream "^3.0.1" - -bl@^4.0.3: - 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" - -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== - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -bn.js@^4.0.0, bn.js@^4.11.8, bn.js@^4.11.9: - 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.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== - -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" - -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" - -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.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browserify-aes@^1.0.6, 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" - -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== - 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" - -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-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-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@^5.2.1, buffer@^5.4.2, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -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" - -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== - -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" - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -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== - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -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== - -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@^2.0.0, 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.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" - -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" - -chownr@^1.0.1: - 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== - -cids@~0.7.0, cids@~0.7.1: - 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" - -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== - -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-spinners@^2.2.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" - integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== - -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" - -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== - -color-convert@^1.9.0: - 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.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@1.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.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@~1.0.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" - -commander@^2.15.0, commander@^2.20.3: - 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== - -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.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" - -"concat-stream@github:hugomrdias/concat-stream#feat/smaller": - version "2.0.0" - resolved "https://codeload.github.com/hugomrdias/concat-stream/tar.gz/057bc7b5d6d8df26c8cf00a3f151b6721a0a8034" - dependencies: - inherits "^2.0.3" - readable-stream "^3.0.2" - -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.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig-toml-loader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz#0681383651cceff918177debe9084c0d3769509b" - integrity sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA== - dependencies: - "@iarna/toml" "^2.2.5" - -cosmiconfig-typescript-loader@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.2.0.tgz#a3cfd0dd9dac86be7dbe5f53eb46ad03abdf417b" - integrity sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g== - -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@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.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -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.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: - 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== - -cross-spawn@^7.0.0: - 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" - -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" - -dataloader@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.1.0.tgz#c69c538235e85e7ac6c6c444bae8ecabf5de9df7" - integrity sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ== - -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.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" - -debug@^4.1.0, 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" - -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== - -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" - -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== - -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== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -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== - -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" - -docker-compose@0.23.4: - version "0.23.4" - resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.4.tgz#43bcabcde55a6ba2873b52fe0ccd99dd8fdceba8" - integrity sha512-yWdXby9uQ8o4syOfvoSJ9ZlTnLipvUmDn59uaYY5VGIUSUAfMPPGqE1DE3pOCnfSg9Tl9UOOFO0PCSAzuIHmuA== - -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" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g== - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.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== - -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" - -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== - -elliptic@6.5.4, elliptic@^6.5.2, 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" - -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" - -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== - -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" - -es6-promise@^4.0.3: - 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" - -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== - -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== - -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-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" - -ethereumjs-util@^7.1.0: - 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" - -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" - -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== - -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@^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" - -explain-error@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/explain-error/-/explain-error-1.0.4.tgz#a793d3ac0cad4c6ab571e9968fbbab6cb2532929" - integrity sha512-/wSgNMxFusiYRy1rd19LT2SQlIXDppHpumpWo06wxjflD1OYxDLbl6rMVw+U3bxD5Nuhex4TKqv9Aem4D0lVzQ== - -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== - -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== - -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.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-deep-equal@^3.1.1: - 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-glob@^3.2.12, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - 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== - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -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== - -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" - -flatmap@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/flatmap/-/flatmap-0.0.3.tgz#1f18a4d938152d495965f9c958d923ab2dd669b4" - integrity sha512-OuR+o7kHVe+x9RtIujPay7Uw3bvDZBZFSBXClEphZuSDLmZTqMdclasf4vFSsogC8baDz0eaC2NdO/2dlXHBKQ== - -follow-redirects@^1.14.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -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.2" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" - integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== - -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@~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-node@^4.3.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" - integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== - dependencies: - node-domexception "1.0.0" - web-streams-polyfill "4.0.0-beta.3" - -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.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" - integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^1.0.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@^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: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -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== - -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -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-stream@^5.0.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" - -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" - -glob-parent@^5.1.2, glob-parent@~5.1.0: - 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@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.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -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== - -globby@^11.0.3: - 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" - -"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" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphql-config@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.3.6.tgz#908ef03d6670c3068e51fe2e84e10e3e0af220b6" - integrity sha512-i7mAPwc0LAZPnYu2bI8B6yXU5820Wy/ArvmOseDLZIu0OU1UTULEuexHo6ZcHXeT9NvGGaUPQZm8NV3z79YydA== - 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" "^8.6.5" - cosmiconfig "7.0.1" - cosmiconfig-toml-loader "1.0.0" - cosmiconfig-typescript-loader "^4.0.0" - minimatch "4.2.1" - string-env-interpolation "1.0.1" - ts-node "^10.8.1" - tslib "^2.4.0" - -graphql-depth-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/graphql-depth-limit/-/graphql-depth-limit-1.1.0.tgz#59fe6b2acea0ab30ee7344f4c75df39cc18244e8" - integrity sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw== - dependencies: - arrify "^1.0.1" - -graphql-ws@^5.4.1: - version "5.11.2" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.11.2.tgz#d5e0acae8b4d4a4cf7be410a24135cfcefd7ddc0" - integrity sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w== - -graphql@15.5.0: - version "15.5.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" - integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== - -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" - -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-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@^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" - -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" - -hi-base32@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" - integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA== - -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" - -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-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-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" - -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== - -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: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -immutable@3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== - -import-fresh@^3.1.0, 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== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -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.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ip-regex@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== - -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== - -ip@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - -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-http-client@34.0.0: - version "34.0.0" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-34.0.0.tgz#8804d06a11c22306332a8ffa0949b6f672a0c9c8" - integrity sha512-4RCkk8ix4Dqn6sxqFVwuXWCZ1eLFPsVaj6Ijvu1fs9VYgxgVudsW9PWwarlr4mw1xUCmPWYyXnEbGgzBrfMy0Q== - dependencies: - abort-controller "^3.0.0" - async "^2.6.1" - bignumber.js "^9.0.0" - bl "^3.0.0" - bs58 "^4.0.1" - buffer "^5.4.2" - cids "~0.7.1" - concat-stream "github:hugomrdias/concat-stream#feat/smaller" - debug "^4.1.0" - detect-node "^2.0.4" - end-of-stream "^1.4.1" - err-code "^2.0.0" - explain-error "^1.0.4" - flatmap "0.0.3" - glob "^7.1.3" - ipfs-block "~0.8.1" - ipfs-utils "~0.0.3" - ipld-dag-cbor "~0.15.0" - ipld-dag-pb "~0.17.3" - ipld-raw "^4.0.0" - is-ipfs "~0.6.1" - is-pull-stream "0.0.0" - is-stream "^2.0.0" - iso-stream-http "~0.1.2" - iso-url "~0.4.6" - iterable-ndjson "^1.1.0" - just-kebab-case "^1.1.0" - just-map-keys "^1.1.0" - kind-of "^6.0.2" - ky "^0.11.2" - ky-universal "^0.2.2" - lru-cache "^5.1.1" - multiaddr "^6.0.6" - multibase "~0.6.0" - multicodec "~0.5.1" - multihashes "~0.4.14" - ndjson "github:hugomrdias/ndjson#feat/readable-stream3" - once "^1.4.0" - peer-id "~0.12.3" - peer-info "~0.15.1" - promise-nodeify "^3.0.1" - promisify-es6 "^1.0.3" - pull-defer "~0.2.3" - pull-stream "^3.6.9" - pull-to-stream "~0.1.1" - pump "^3.0.0" - qs "^6.5.2" - readable-stream "^3.1.1" - stream-to-pull-stream "^1.7.2" - tar-stream "^2.0.1" - through2 "^3.0.1" - -ipfs-utils@~0.0.3: - version "0.0.4" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-0.0.4.tgz#946114cfeb6afb4454b4ccb10d2327cd323b0cce" - integrity sha512-7cZf6aGj2FG3XJWhCNwn4mS93Q0GEWjtBZvEHqzgI43U2qzNDCyzfS1pei1Y5F+tw/zDJ5U4XG0G9reJxR53Ig== - dependencies: - buffer "^5.2.1" - is-buffer "^2.0.3" - is-electron "^2.2.0" - is-pull-stream "0.0.0" - is-stream "^2.0.0" - kind-of "^6.0.2" - readable-stream "^3.4.0" - -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.17.3: - version "0.17.4" - resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.17.4.tgz#080841cfdd014d996f8da7f3a522ec8b1f6b6494" - integrity sha512-YwCxETEMuXVspOKOhjIOHJvKvB/OZfCDkpSFiYBQN2/JQjM9y/RFCYzIQGm0wg7dCFLrhvfjAZLTSaKs65jzWA== - dependencies: - cids "~0.7.0" - class-is "^1.1.0" - multicodec "~0.5.1" - multihashing-async "~0.7.0" - protons "^1.0.1" - stable "~0.1.8" - -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" - -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-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-buffer@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -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-electron@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.1.tgz#751b1dd8a74907422faa5c35aaa0cf66d98086e9" - integrity sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw== - -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-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-glob@^4.0.1, 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-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-ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-2.0.0.tgz#68eea07e8a0a0a94c2d080dd674c731ab2a461ab" - integrity sha512-9MTn0dteHETtyUx8pxqMwg5hMBi3pvlyglJ+b79KOCca0po23337LbVV2Hl4xmMvfw++ljnO0/+5G6G+0Szh6g== - dependencies: - ip-regex "^2.0.0" - -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-ipfs@~0.6.1: - 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-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-promise@~1, is-promise@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-1.0.1.tgz#31573761c057e33c2e91aab9e96da08cefbe76e5" - integrity sha512-mjWH5XxnhMA8cFnDchr6qRP9S/kLntKuEfIYku+PaN1CnS8v+OG9O/BKpRCVRJvpIkgAZm0Pf5Is3iSSOILlcg== - -is-pull-stream@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/is-pull-stream/-/is-pull-stream-0.0.0.tgz#a3bc3d1c6d3055151c46bde6f399efed21440ca9" - integrity sha512-NWLwqCc95I6m8FZDYLAmVJc9Xgk8O+8pPOoDKFTC293FH4S7FBcbLCw3WWPCdiT8uUSdzPy47VM08WPDMJJrag== - -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-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== - -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: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -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.0: - 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-stream-http@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/iso-stream-http/-/iso-stream-http-0.1.2.tgz#b3dfea4c9f23ff26d078d40c539cfc0dfebacd37" - integrity sha512-oHEDNOysIMTNypbg2f1SlydqRBvjl4ZbSE9+0awVxnkx3K2stGTFwB/kpVqnB6UEfF8QD36kAjDwZvqyXBLMnQ== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^3.1.1" - -iso-url@~0.4.6, 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== - -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== - -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== - -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== - -iterable-ndjson@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz#36f7e8a5bb04fd087d384f29e44fc4280fc014fc" - integrity sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg== - dependencies: - string_decoder "^1.2.0" - -jayson@3.6.6: - version "3.6.6" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.6.tgz#189984f624e398f831bd2be8e8c80eb3abf764a1" - integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/express-serve-static-core" "^4.17.9" - "@types/lodash" "^4.14.159" - "@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" - lodash "^4.17.20" - uuid "^8.3.2" - ws "^7.4.5" - -js-sha3@0.8.0, js-sha3@^0.8.0, js-sha3@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -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-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@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-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" - -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" - -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== - -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" - -just-kebab-case@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/just-kebab-case/-/just-kebab-case-1.1.0.tgz#ebe854fde84b0afa4e597fcd870b12eb3c026755" - integrity sha512-QkuwuBMQ9BQHMUEkAtIA4INLrkmnnveqlFB1oFi09gbU0wBdZo6tTnyxNWMR84zHxBuwK7GLAwqN8nrvVxOLTA== - -just-map-keys@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/just-map-keys/-/just-map-keys-1.2.1.tgz#ef6e16133b7d34329962dfae9101d581abb1b143" - integrity sha512-Dmyz1Cy2SWM+PpqDPB1kdDglyexdzMthnAsvOIE9w4OPj8NDRuY1mh20x/JfG5w6fCGw9F0WmcofJhYZ4MiuyA== - -keccak@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - -keypair@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/keypair/-/keypair-1.0.4.tgz#a749a45f388593f3950f18b3757d32a93bd8ce83" - integrity sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg== - -kind-of@^6.0.2: - 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== - -ky-universal@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.2.2.tgz#7a36e1a75641a98f878157463513965f799f5bfe" - integrity sha512-fb32o/fKy/ux2ALWa9HU2hvGtfOq7/vn2nH0FpVE+jwNzyTeORlAbj3Fiw+WLMbUlmVqZIWupnLZ2USHvqwZHw== - dependencies: - abort-controller "^3.0.0" - node-fetch "^2.3.0" - -ky@^0.11.2: - version "0.11.2" - resolved "https://registry.yarnpkg.com/ky/-/ky-0.11.2.tgz#4ffe6621d9d9ab61bf0f5500542e3a96d1ba0815" - integrity sha512-5Aou5BWue5/mkPqIRqzSWW+0Hkl403pr/2AIrCKYw7cVl/Xoe8Xe4KLBO0PRjbz7GnRe1/8wW1KhqQNFFE7/GQ== - -libp2p-crypto-secp256k1@~0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/libp2p-crypto-secp256k1/-/libp2p-crypto-secp256k1-0.3.1.tgz#4cbeb857f5cfe5fefb1253e6b2994420c0ca166e" - integrity sha512-evrfK/CeUSd/lcELUdDruyPBvxDmLairth75S32OLl3H+++2m2fV24JEtxzdFS9JH3xEFw0h6JFO8DBa1bP9dA== - dependencies: - async "^2.6.2" - bs58 "^4.0.1" - multihashing-async "~0.6.0" - nodeify "^1.0.1" - safe-buffer "^5.1.2" - secp256k1 "^3.6.2" - -libp2p-crypto@~0.16.1: - version "0.16.4" - resolved "https://registry.yarnpkg.com/libp2p-crypto/-/libp2p-crypto-0.16.4.tgz#fb1a4ba39d56789303947784b5b0d6cefce12fdc" - integrity sha512-II8HxKc9jbmQp34pprlluNxsBCWJDjHRPYJzuRy7ragztNip9Zb7uJ4lCje6gGzz4DNAcHkAUn+GqCIK1592iA== - dependencies: - asmcrypto.js "^2.3.2" - asn1.js "^5.0.1" - async "^2.6.1" - bn.js "^4.11.8" - browserify-aes "^1.2.0" - bs58 "^4.0.1" - iso-random-stream "^1.1.0" - keypair "^1.0.1" - libp2p-crypto-secp256k1 "~0.3.0" - multihashing-async "~0.5.1" - node-forge "^0.10.0" - pem-jwk "^2.0.0" - protons "^1.0.1" - rsa-pem-to-jwk "^1.1.3" - tweetnacl "^1.0.0" - ursa-optional "~0.10.0" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -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.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.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.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.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.14, lodash@^4.17.20: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - -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.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" - integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== - -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== - -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@^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" - -mafmt@^6.0.2: - version "6.0.10" - resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-6.0.10.tgz#3ad251c78f14f8164e66f70fd3265662da41113a" - integrity sha512-FjHDnew6dW9lUu3eYwP0FvvJl9uvNbqfoJM+c1WJcSyutNEIlyu6v3f/rlPnD1cnmue38IjuHlhBdIh3btAiyw== - dependencies: - multiaddr "^6.1.0" - -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" - -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== - -matchstick-as@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/matchstick-as/-/matchstick-as-0.5.0.tgz#cdafc1ef49d670b9cbe98e933bc2a5cb7c450aeb" - integrity sha512-4K619YDH+so129qt4RB4JCNxaFwJJYLXPc7drpG+/mIj86Cfzg6FKs/bA91cnajmS1CLHdhHl9vt6Kd6Oqvfkg== - dependencies: - "@graphprotocol/graph-ts" "^0.27.0" - assemblyscript "^0.19.20" - wabt "1.0.24" - -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" - -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== - -meros@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/meros/-/meros-1.2.1.tgz#056f7a76e8571d0aaf3c7afcbe7eb6407ff7329e" - integrity sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g== - -micromatch@^4.0.4: - 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" - -mime-db@1.52.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.19: - 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" - -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== - -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@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1: - 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" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -minipass@^3.0.0: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== - dependencies: - yallist "^4.0.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" - -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== - -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.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multiaddr@^6.0.3, multiaddr@^6.0.6, multiaddr@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-6.1.1.tgz#9aae57b3e399089b9896d9455afa8f6b117dff06" - integrity sha512-Q1Ika0F9MNhMtCs62Ue+GWIJtRFEhZ3Xz8wH7/MZDVZTWhil1/H2bEGN02kUees3hkI3q1oHSjmXYDM0gxaFjQ== - dependencies: - bs58 "^4.0.1" - class-is "^1.1.0" - hi-base32 "~0.5.0" - ip "^1.1.5" - is-ip "^2.0.0" - varint "^5.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" - 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@^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" - -multicodec@~0.5.1: - 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" - -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" - -multihashes@~0.4.13, multihashes@~0.4.14, 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" - -multihashing-async@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-0.5.2.tgz#4af40e0dde2f1dbb12a7c6b265181437ac26b9de" - integrity sha512-mmyG6M/FKxrpBh9xQDUvuJ7BbqT93ZeEeH5X6LeMYKoYshYLr9BDdCsvDtZvn+Egf+/Xi+aOznrWL4vp3s+p0Q== - dependencies: - blakejs "^1.1.0" - js-sha3 "~0.8.0" - multihashes "~0.4.13" - murmurhash3js "^3.0.1" - nodeify "^1.0.1" - -multihashing-async@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-0.6.0.tgz#c1fc6696a624b9bf39b160b0c4c4e7ba3f394453" - integrity sha512-Qv8pgg99Lewc191A5nlXy0bSd2amfqlafNJZmarU6Sj7MZVjpR94SCxQjf4DwPtgWZkiLqsjUQBXA2RSq+hYyA== - dependencies: - blakejs "^1.1.0" - js-sha3 "~0.8.0" - multihashes "~0.4.13" - murmurhash3js "^3.0.1" - nodeify "^1.0.1" - -multihashing-async@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-0.7.0.tgz#3234fb98295be84386b85bfd20377d3e5be20d6b" - integrity sha512-SCbfl3f+DzJh+/5piukga9ofIOxwfT05t8R4jfzZIJ88YE9zU9+l3K2X+XB19MYyxqvyK9UJRNWbmQpZqQlbRA== - dependencies: - blakejs "^1.1.0" - buffer "^5.2.1" - err-code "^1.1.2" - js-sha3 "~0.8.0" - multihashes "~0.4.13" - murmurhash3js-revisited "^3.0.0" - -multihashing-async@~0.8.0: - 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" - -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== - -murmurhash3js@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/murmurhash3js/-/murmurhash3js-3.0.1.tgz#3e983e5b47c2a06f43a713174e7e435ca044b998" - integrity sha512-KL8QYUaxq7kUbcl0Yto51rMcYt7E/4N4BG3/c96Iqw1PQrTRspu8Cpx4TZ4Nunib1d4bEkIH3gjCYlP2RLBdow== - -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.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.14.0, nan@^2.14.2: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== - -"ndjson@github:hugomrdias/ndjson#feat/readable-stream3": - version "1.5.0" - resolved "https://codeload.github.com/hugomrdias/ndjson/tar.gz/4db16da6b42e5b39bf300c3a7cde62abb3fa3a11" - dependencies: - json-stringify-safe "^5.0.1" - minimist "^1.2.0" - split2 "^3.1.0" - through2 "^3.0.0" - -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-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@2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - -node-fetch@^2.3.0, node-fetch@^2.6.1, 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-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-gyp-build@^4.2.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -nodeify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nodeify/-/nodeify-1.0.1.tgz#64ab69a7bdbaf03ce107b4f0335c87c0b9e91b1d" - integrity sha512-n7C2NyEze8GCo/z73KdbjRsBiLbv6eBn1FxwYKQ23IqGo7pQY3mhQan61Sv7eEDJCiyUjTVrVkXTzJCo1dW7Aw== - dependencies: - is-promise "~1.0.0" - promise "~1.3.0" - -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== - -npm-run-path@^4.0.0: - 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" - -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" - -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@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" - integrity sha512-CdsOUYIh5wIiozhJ3rLQgmUTgcyzFwZZrqhkKhODMoGtPKM+wt0h0CNIoauJWMsS9822EdzPsF/6mb4nLvPN5g== - -object-assign@^4.1.0: - 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-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -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" - -onetime@^5.1.0: - 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" - -optimist@~0.3.5: - version "0.3.7" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" - integrity sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ== - dependencies: - wordwrap "~0.0.2" - -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" - -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: - 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" - -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-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-json@^5.0.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" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -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-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== - -pbkdf2@^3.0.17: - 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" - -peer-id@~0.12.2, peer-id@~0.12.3: - version "0.12.5" - resolved "https://registry.yarnpkg.com/peer-id/-/peer-id-0.12.5.tgz#b22a1edc5b4aaaa2bb830b265ba69429823e5179" - integrity sha512-3xVWrtIvNm9/OPzaQBgXDrfWNx63AftgFQkvqO6YSZy7sP3Fuadwwbn54F/VO9AnpyW/26i0WRQz9FScivXrmw== - dependencies: - async "^2.6.3" - class-is "^1.1.0" - libp2p-crypto "~0.16.1" - multihashes "~0.4.15" - -peer-info@~0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/peer-info/-/peer-info-0.15.1.tgz#21254a7c516d0dd046b150120b9aaf1b9ad02146" - integrity sha512-Y91Q2tZRC0CpSTPd1UebhGqniOrOAk/aj60uYUcWJXCoLTAnGu+4LJGoiay8ayudS6ice7l3SKhgL/cS62QacA== - dependencies: - mafmt "^6.0.2" - multiaddr "^6.0.3" - peer-id "~0.12.2" - unique-by "^1.0.0" - -pem-jwk@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pem-jwk/-/pem-jwk-2.0.0.tgz#1c5bb264612fc391340907f5c1de60c06d22f085" - integrity sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA== - dependencies: - asn1.js "^5.0.1" - -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== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pkginfo@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" - integrity sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ== - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -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== - -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== - -promise-nodeify@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/promise-nodeify/-/promise-nodeify-3.0.1.tgz#f0f5d9720ee9ec71dd2bfa92667be504c10229c2" - integrity sha512-ghsSuzZXJX8iO7WVec2z7GI+Xk/EyiD+JZK7AZKhUqYfpLa/Zs4ylUD+CwwnKlG6G3HnkUPMAi6PO7zeqGKssg== - -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" - -promise@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" - integrity sha512-R9WrbTF3EPkVtWjp7B7umQGVndpsi+rsDAfrR4xAALQpFLa/+2OriecLhawxzvii2gd9+DZFwROWDuUUaqS5yA== - dependencies: - is-promise "~1" - -promisify-es6@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/promisify-es6/-/promisify-es6-1.0.3.tgz#b012668c4df3c965ce13daac2b3a4d1726a96346" - integrity sha512-N9iVG+CGJsI4b4ZGazjwLnxErD2d9Pe4DPvvXSxYA9tFNu8ymXME4Qs5HIQ0LMJpNM7zj+m0NlNnNeqFpKzqnA== - -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.1: - 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" - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -pull-defer@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/pull-defer/-/pull-defer-0.2.3.tgz#4ee09c6d9e227bede9938db80391c3dac489d113" - integrity sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA== - -pull-stream@^3.2.3, pull-stream@^3.6.9: - version "3.6.14" - resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.6.14.tgz#529dbd5b86131f4a5ed636fdf7f6af00781357ee" - integrity sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew== - -pull-to-stream@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pull-to-stream/-/pull-to-stream-0.1.1.tgz#fa2058528528e3542b81d6f17cbc42288508ff37" - integrity sha512-thZkMv6F9PILt9zdvpI2gxs19mkDrlixYKX6cOBxAW16i1NZH+yLAmF4r8QfJ69zuQh27e01JZP9y27tsH021w== - dependencies: - readable-stream "^3.1.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" - -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" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pvtsutils@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" - integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== - dependencies: - tslib "^2.4.0" - -pvutils@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" - integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== - -qs@^6.4.0, qs@^6.5.2: - 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.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -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" - -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" - -"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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@~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" - -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" - -regenerator-runtime@^0.13.10: - version "0.13.10" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" - integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== - -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== - -request@2.88.2: - 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" - -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== - -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" - -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== - -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.2.4: - version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - -rsa-pem-to-jwk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/rsa-pem-to-jwk/-/rsa-pem-to-jwk-1.1.3.tgz#245e76bdb7e7234cfee7ca032d31b54c38fab98e" - integrity sha512-ZlVavEvTnD8Rzh/pdB8NH4VF5GNEtF6biGQcTtC4GKFMsbZR08oHtOYefbhCN+JnJIuMItiCDCMycdcMrw6blA== - dependencies: - object-assign "^2.0.0" - rsa-unpack "0.0.6" - -rsa-unpack@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/rsa-unpack/-/rsa-unpack-0.0.6.tgz#f50ebd56a628378e631f297161026ce9ab4eddba" - integrity sha512-HRrl8GHjjPziPFRDJPq/v5OxZ3IPdksV5h3cime/oHgcgM1k1toO5OdtzClgBqRf5dF6IgptOB0g/zFb0w5zQw== - dependencies: - optimist "~0.3.5" - -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" - -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.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== - -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== - -scrypt-js@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@^3.6.2: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - -secp256k1@^4.0.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" - -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.0.0: - 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" - -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== - -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@^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@^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== - -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.2: - 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== - -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" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-support@^0.5.20: - 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@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -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== - -split2@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -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.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stable@~0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stream-to-pull-stream@^1.7.2: - 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" - -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== - -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-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_decoder@^1.1.1, string_decoder@^1.2.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" - -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@^6.0.0: - 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-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-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" - -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.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" - -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" - -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@^2.0.1: - 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@^6.1.0: - version "6.1.12" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.12.tgz#3b742fb05669b55671fb769ab67a7791ea1a62e6" - integrity sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -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" - -through2@^3.0.0, through2@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" - integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== - dependencies: - inherits "^2.0.4" - readable-stream "2 || 3" - -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tmp-promise@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" - integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== - dependencies: - tmp "^0.2.0" - -tmp@^0.2.0: - 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@^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-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" - -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@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-node@^10.8.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@^2.0.0, tslib@^2.4.0, tslib@^2.4.1, 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== - -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@^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: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -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== - -undici@^5.12.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.12.0.tgz#c758ffa704fbcd40d506e4948860ccaf4099f531" - integrity sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg== - dependencies: - busboy "^1.6.0" - -unique-by@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-by/-/unique-by-1.0.0.tgz#5220c86ba7bc572fb713ad74651470cb644212bd" - integrity sha512-rJRXK5V0zL6TiSzhoGNpJp5dr+TZBLoPJFC06rLn17Ug++7Aa0Qnve5v+skXeQxx6/sI7rBsSesa6MAcmFi8Ew== - -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -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" - -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" - -ursa-optional@~0.10.0: - version "0.10.2" - resolved "https://registry.yarnpkg.com/ursa-optional/-/ursa-optional-0.10.2.tgz#bd74e7d60289c22ac2a69a3c8dea5eb2817f9681" - integrity sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A== - dependencies: - bindings "^1.5.0" - nan "^2.14.2" - -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.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -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== - -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== - -value-or-promise@1.0.11, value-or-promise@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" - integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== - -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== - -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" - -wabt@1.0.24: - version "1.0.24" - resolved "https://registry.yarnpkg.com/wabt/-/wabt-1.0.24.tgz#c02e0b5b4503b94feaf4a30a426ef01c1bea7c6c" - integrity sha512-8l7sIOd3i5GWfTWciPL0+ff/FK/deVK2Q6FN+MPz4vfUcD78i2M/49XJTwF6aml91uIiuXJEsLKWMB2cw/mtKg== - -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@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" - integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== - -web-streams-polyfill@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - -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-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" - -webcrypto-core@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" - integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== - dependencies: - "@peculiar/asn1-schema" "^2.1.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== - -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@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" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== - -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== - -ws@^7.4.5: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^8.3.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yallist@^3.0.2: - 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@1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz#f0cfa865f003ab707663e4f04b3956957ea564ed" - integrity sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg== - dependencies: - "@babel/runtime" "^7.9.2" - -yaml@^1.10.0, 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== - -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" - -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== diff --git a/yarn.lock b/yarn.lock index 25610b361a..9e9331a8e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1052,7 +1052,7 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.20.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== @@ -2043,14 +2043,14 @@ integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== "@human-protocol/core@workspace:*": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.10.tgz#946bc87cd8f8cf0eae5b410c27d227c0de5d599f" - integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.11.tgz#9d7f2ffbc3386bd1aa53a1910c10c080575f9dfc" + integrity sha512-zJdG4kr5gZeWsfvJmKYrGfBLnMzg1LerySThLRE6TK8r+DkvXGUdAX24a7zuAu9rIcNXLkRzFPmAbd8IanZnTg== "@humanwhocodes/config-array@^0.11.6": - version "0.11.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz#38aec044c6c828f6ed51d5d7ae3d9b9faf6dbb0f" - integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -2623,43 +2623,43 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@mui/base@5.0.0-alpha.109": - version "5.0.0-alpha.109" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.109.tgz#a536c5c03196ade78681166e750eb44f5682937d" - integrity sha512-UQxoONPI3ntzxcD/cbFHl+Lp2xsVj6HpKmU9QhUZ2kZ2K2yej2QJyU1gnADoWl/Hu94VrvwSSRnjTjR3HvXO/g== +"@mui/base@5.0.0-alpha.110": + version "5.0.0-alpha.110" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.110.tgz#61174f64b23e667387708b2cbb31339e58c714cf" + integrity sha512-q4TH9T3sTBknTXXTEf2zO8F3nbHg5iGgiaRx9XErTbXvHrmLrQXbQ4hmrLERocSTBFCFWkKyne/qZj0diWlPtA== dependencies: - "@babel/runtime" "^7.20.1" + "@babel/runtime" "^7.20.6" "@emotion/is-prop-valid" "^1.2.0" - "@mui/types" "^7.2.2" - "@mui/utils" "^5.10.16" + "@mui/types" "^7.2.3" + "@mui/utils" "^5.11.0" "@popperjs/core" "^2.11.6" clsx "^1.2.1" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.10.17": - version "5.10.17" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.17.tgz#ce105d692b77fcb41e0c060f3aea0c8ca566ff5a" - integrity sha512-iNwUuMA30nrN0tiEkeD3zaczv7Tk2jlZIDbXRnijAsYXkZtl/xEzQsVRIPYRDuyEz6D18vQJhV8h7gPUXEubTg== +"@mui/core-downloads-tracker@^5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.0.tgz#7ae98a3df113270097f3024c713c4efce5537c6a" + integrity sha512-Bmogung451ezVv2YI1RvweOIVsTj2RQ4Fk61+e/+8LFPLTFEwVGbL0YhNy1VB5tri8pzGNV228kxtWVTFooQkg== "@mui/icons-material@^5.10.14", "@mui/icons-material@^5.10.6": - version "5.10.16" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.10.16.tgz#9c16054d0cc54d40267447128a07e79b516ead1e" - integrity sha512-jjCc0IF6iyLiucQCu5igg3fOscSqbbvRCmyRxXgzOcLR56B0sg2L8o+ZfJ0dAg59+wvgtXaxvjze/mJg0B4iWA== + version "5.11.0" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.11.0.tgz#9ea6949278b2266d2683866069cd43009eaf6464" + integrity sha512-I2LaOKqO8a0xcLGtIozC9xoXjZAto5G5gh0FYUMAlbsIHNHIjn4Xrw9rvjY20vZonyiGrZNMAlAXYkY6JvhF6A== dependencies: - "@babel/runtime" "^7.20.1" + "@babel/runtime" "^7.20.6" "@mui/material@^5.10.14", "@mui/material@^5.10.7": - version "5.10.17" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.10.17.tgz#d74c531219c37426b421badc9106f9a67404c251" - integrity sha512-Kuqgv1qI5HXnc/Xu426xhCGYBSKzplb+xFNLitbnIb92Qx8jmcpfNpFlDJa2kD2H6qP66rr/m4c/zMUfGX/xBQ== - dependencies: - "@babel/runtime" "^7.20.1" - "@mui/base" "5.0.0-alpha.109" - "@mui/core-downloads-tracker" "^5.10.17" - "@mui/system" "^5.10.17" - "@mui/types" "^7.2.2" - "@mui/utils" "^5.10.16" + version "5.11.0" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.0.tgz#01ead6ca389de440fbc78b2dbb8547845ca40f93" + integrity sha512-8Zl34lb89rLKTTi50Kakki675/LLHMKKnkp8Ee3rAZ2qmisQlRODsGh1MBjENKp0vwhQnNSvlsCfJteVTfotPQ== + dependencies: + "@babel/runtime" "^7.20.6" + "@mui/base" "5.0.0-alpha.110" + "@mui/core-downloads-tracker" "^5.11.0" + "@mui/system" "^5.11.0" + "@mui/types" "^7.2.3" + "@mui/utils" "^5.11.0" "@types/react-transition-group" "^4.4.5" clsx "^1.2.1" csstype "^3.1.1" @@ -2667,35 +2667,35 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.10.16": - version "5.10.16" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.10.16.tgz#181ab7568a3cf0c6b12cc12f5a91aeb4509df1ce" - integrity sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg== +"@mui/private-theming@^5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.0.tgz#14e545e74d6da4c20df25702d8c606187b300072" + integrity sha512-UFQLb9x5Sj4pg2GhhCGw3Ls/y1Hw/tz9RsBrULvUF0Vgps1z19o7XTq2xqUvp7pN7fJTW7eVIT2gwVg2xlk8PQ== dependencies: - "@babel/runtime" "^7.20.1" - "@mui/utils" "^5.10.16" + "@babel/runtime" "^7.20.6" + "@mui/utils" "^5.11.0" prop-types "^15.8.1" -"@mui/styled-engine@^5.10.16": - version "5.10.16" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.10.16.tgz#52a2d31e4012958d21c92b42acaca4c3e79841b4" - integrity sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw== +"@mui/styled-engine@^5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.11.0.tgz#79afb30c612c7807c4b77602cf258526d3997c7b" + integrity sha512-AF06K60Zc58qf0f7X+Y/QjaHaZq16znliLnGc9iVrV/+s8Ln/FCoeNuFvhlCbZZQ5WQcJvcy59zp0nXrklGGPQ== dependencies: - "@babel/runtime" "^7.20.1" + "@babel/runtime" "^7.20.6" "@emotion/cache" "^11.10.5" csstype "^3.1.1" prop-types "^15.8.1" "@mui/styles@^5.10.14": - version "5.10.16" - resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.10.16.tgz#51f5d6d4200705741a4d47317222dd3aa539f74c" - integrity sha512-GYxY9pAx/mIAF3l9QJhTfWyUdT18UyjXHRmfPFgDupphTyHumrVE4rgYoTFordmzMWr+1kaS0mAUvDfziGncGA== + version "5.11.0" + resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.11.0.tgz#11ea8b43ea25c83e7eb071172fa333f7d01230bd" + integrity sha512-Y4Qz/uoWz9NUC7AN+Ybzv8LF3RjlKs85yayLsdXJz0kZxqIJshOMZ4G1Hb5omNwVx9oCePmO9a+zemXZS76ATw== dependencies: - "@babel/runtime" "^7.20.1" + "@babel/runtime" "^7.20.6" "@emotion/hash" "^0.9.0" - "@mui/private-theming" "^5.10.16" - "@mui/types" "^7.2.2" - "@mui/utils" "^5.10.16" + "@mui/private-theming" "^5.11.0" + "@mui/types" "^7.2.3" + "@mui/utils" "^5.11.0" clsx "^1.2.1" csstype "^3.1.1" hoist-non-react-statics "^3.3.2" @@ -2709,31 +2709,31 @@ jss-plugin-vendor-prefixer "^10.9.2" prop-types "^15.8.1" -"@mui/system@^5.10.17": - version "5.10.17" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.10.17.tgz#64420b6b01c3943c0ce58523090b19791db46c53" - integrity sha512-UYzAOSK7uxkMsUssqrIUW3lnOuQpU8vqh4hLwfSw+GYAnQo3qjK4m4NhlDx+pFpsjjiGnr3K+vrSH+aIAMbcLg== +"@mui/system@^5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.0.tgz#9938d5beeddfee3e419911ec43e5f9a6f55fe161" + integrity sha512-HFUT7Dlmyq6Wfuxsw8QBXZxXDYIQQaJ4YHaZd7s+nDMcjerLnILxjh2g3a6umtOUM+jEcRaFJAtvLZvlGfa5fw== dependencies: - "@babel/runtime" "^7.20.1" - "@mui/private-theming" "^5.10.16" - "@mui/styled-engine" "^5.10.16" - "@mui/types" "^7.2.2" - "@mui/utils" "^5.10.16" + "@babel/runtime" "^7.20.6" + "@mui/private-theming" "^5.11.0" + "@mui/styled-engine" "^5.11.0" + "@mui/types" "^7.2.3" + "@mui/utils" "^5.11.0" clsx "^1.2.1" csstype "^3.1.1" prop-types "^15.8.1" -"@mui/types@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.2.tgz#723f6d40c25c89c2e0352a7e51794e8eb77cdbe3" - integrity sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA== +"@mui/types@^7.2.3": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.3.tgz#06faae1c0e2f3a31c86af6f28b3a4a42143670b9" + integrity sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw== -"@mui/utils@^5.10.16", "@mui/utils@^5.10.3": - version "5.10.16" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.10.16.tgz#7a981444855968ebdb1830d76e298d1ac47eaaf6" - integrity sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ== +"@mui/utils@^5.10.3", "@mui/utils@^5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.11.0.tgz#06d1d907935391f3f8bc58c669800194c77e6601" + integrity sha512-DP/YDaVVCVzJpZ5FFPLKNmaJkeaYRviTyIZkL/D5/FmPXQiA6ecd6z0/+VwoNQtp7aXAQWaRhvz4FM25yqFlHA== dependencies: - "@babel/runtime" "^7.20.1" + "@babel/runtime" "^7.20.6" "@types/prop-types" "^15.7.5" "@types/react-is" "^16.7.1 || ^17.0.0" prop-types "^15.8.1" @@ -2771,9 +2771,9 @@ integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== "@noble/hashes@~1.1.1": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" - integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== + version "1.1.5" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" + integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== "@noble/secp256k1@1.6.3", "@noble/secp256k1@~1.6.0": version "1.6.3" @@ -3513,42 +3513,42 @@ dependencies: defer-to-connect "^2.0.1" -"@tanstack/query-core@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.19.1.tgz#2e92d9e8a50884eb231c5beb4386e131ebe34306" - integrity sha512-Zp0aIose5C8skBzqbVFGk9HJsPtUhRVDVNWIqVzFbGQQgYSeLZMd3Sdb4+EnA5wl1J7X+bre2PJGnQg9x/zHOA== +"@tanstack/query-core@4.20.4": + version "4.20.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.20.4.tgz#1f7975a2db26a8bc2f382bad8a44cd422c846b17" + integrity sha512-lhLtGVNJDsJ/DyZXrLzekDEywQqRVykgBqTmkv0La32a/RleILXy6JMLBb7UmS3QCatg/F/0N9/5b0i5j6IKcA== -"@tanstack/query-persist-client-core@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.19.1.tgz#e473859ee07d281e6da5f213bf4cddb58dfa738f" - integrity sha512-Tlx9tgeYMDoJ5w8O79TXx85Bk46LDQLvojdjWzQbzKWPIEtvwK6OmG2Z3zxz6qEA3FiVmG0BYjsVMsT6PZOhGg== +"@tanstack/query-persist-client-core@4.20.4": + version "4.20.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.20.4.tgz#cd4b408b4f36645f3b06cce4b757df8c755e713f" + integrity sha512-MzrRC9esSEpD/kY28Zi4YqkWvuOUmpO67vpgCkQszOLbAHLMeEibId3njXxIZXDPg5fvX3HaAwFS7GheuMuKFg== "@tanstack/query-sync-storage-persister@^4.0.10": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.19.1.tgz#d8e182506dfed65b70dcd3b806261881cc62cc9d" - integrity sha512-gY8rDi6XJ4zPgPF8wEsryu8a87+E9vIByXWryoVO0ucKJzgjVLFNargPSZcMMvRsVw7nhyDCCd/nZZgW+Z3C9g== + version "4.20.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.20.4.tgz#e196c4dc8452c64d287560c9d55a8b53ad7c90fc" + integrity sha512-+LrpqZDScy9FfyJJGSY6/sMbgi9zHbDCXWOwpKJ2aPfTblk0cAJDjlM7rS49FXZD//edEJehm9SgRhFN2/9pSg== dependencies: - "@tanstack/query-persist-client-core" "4.19.1" + "@tanstack/query-persist-client-core" "4.20.4" "@tanstack/react-query-persist-client@^4.0.10": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.19.1.tgz#8cab5776d2ac4e3134f2022f21797655b0dbd474" - integrity sha512-uNHCBfK7YiNXTjlO3B/Rym7HrNX6OnrcWIw3iiuGFK+gC566/BB3lcLHvriHwanxbnFvWiua8g9hvddeXVQzeA== + version "4.20.4" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.20.4.tgz#f433e5723bf1ae4d764327faa23c26b45814eefb" + integrity sha512-fJvYdULQEa+PV7M3WzWNPWiP/VmWflyiISwIzu2/wC6TnsH7CzXwUwy5PvTl89AR26GR0/U5J6f+oS6JhLVJxQ== dependencies: - "@tanstack/query-persist-client-core" "4.19.1" + "@tanstack/query-persist-client-core" "4.20.4" "@tanstack/react-query@^4.0.10": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.19.1.tgz#43356dd537127e76d75f5a2769eb23dafd9a3690" - integrity sha512-5dvHvmc0vrWI03AJugzvKfirxCyCLe+qawrWFCXdu8t7dklIhJ7D5ZhgTypv7mMtIpdHPcECtCiT/+V74wCn2A== + version "4.20.4" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.20.4.tgz#562b34fb919adea884eccaba2b5be50e8ba7fb16" + integrity sha512-SJRxx13k/csb9lXAJfycgVA1N/yU/h3bvRNWP0+aHMfMjmbyX82FdoAcckDBbOdEyAupvb0byelNHNeypCFSyA== dependencies: - "@tanstack/query-core" "4.19.1" + "@tanstack/query-core" "4.20.4" use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.3.2.tgz#9ee69ba1fb8650d18160c637e8e487d938f6dcea" - integrity sha512-0kE0gv8RIu0N5JXKCCfYcydsMgGgj8z3qCvbeD/ynBKwOBvbFB+NZFRyTHNopbeaUKO7Q3bGFau8vS1B0EWS0g== + version "1.4.1" + resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.4.1.tgz#1dee0f28de8351caa33c32c9b44ba1c6d654811c" + integrity sha512-kdzuAIvsTsgCsw0SCOD+E5OkNFB+LM/LUgtyEInNyJVlCrD3LYjtY/iArvpva4+TxY8GYKv3aRBKumaItyYNow== dependencies: "@ethersproject/bignumber" "^5.7.0" "@nomiclabs/hardhat-ethers" "^2.1.1" @@ -3558,7 +3558,8 @@ hardhat "^2.10.2" hardhat-deploy "^0.11.14" js-yaml "^4.1.0" - tenderly "^0.0.3" + tenderly "^0.2.0" + tslog "^4.3.1" "@testing-library/dom@^8.5.0": version "8.19.0" @@ -3868,7 +3869,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.9": +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31", "@types/express-serve-static-core@^4.17.9": version "4.17.31" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== @@ -3878,12 +3879,12 @@ "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14": - version "4.17.14" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" + "@types/express-serve-static-core" "^4.17.31" "@types/qs" "*" "@types/serve-static" "*" @@ -4043,9 +4044,9 @@ integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== "@types/node@*", "@types/node@>=13.7.0", "@types/node@^18.11.9": - version "18.11.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.13.tgz#dff34f226ec1ac0432ae3b136ec5552bd3b9c0fe" - integrity sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w== + version "18.11.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" + integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== "@types/node@14.18.33": version "14.18.33" @@ -4063,9 +4064,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^16.11.68", "@types/node@^16.18.3": - version "16.18.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.8.tgz#ffb2a4efa4eb4384811081776c52b054481cca54" - integrity sha512-TrpoNiaPvBH5h8rQQenMtVsJXtGsVBRJrcp2Ik6oEt99jHfGvDLh20VTTq3ixTbjYujukYz1IlY4N8a8yfY0jA== + version "16.18.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.9.tgz#47c491cfbc10460571d766c16526748fa9ad96a1" + integrity sha512-nhrqXYxiQ+5B/tPorWum37VgAiefi/wmfJ1QZKGKKecC8/3HqcTTJD0O+VABSPwtseMMF7NCPVT9uGgwn0YqsQ== "@types/node@^8.0.0": version "8.10.66" @@ -4398,10 +4399,10 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.7.0.tgz#73f5b66ee970a2712cfea62a19e04f6869c589f5" - integrity sha512-hOcb7HxYza5LtZLcmh9VkShV3hLaLlZarLBqQmMR/oTlvgIybeW6LjrPpFiu2hCCf9VbkdBR1OFmDh8EydFswQ== +"@vercel/build-utils@5.7.1": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.7.1.tgz#985c927e8af265e73fa693c52a8e61447e030162" + integrity sha512-JilBlPlqwH/d4dbRLyxbhr4y3Yb41cfyypGyCFOpdgXo1ie3v2wkNZWNyWpDHSocSS4PpdIGJ1OdnzULd2fdBQ== "@vercel/node-bridge@3.1.2": version "3.1.2" @@ -4409,13 +4410,13 @@ integrity sha512-dgcLXug0IqUeRsywf0G8IrhUFcgw+GYj+EZB4JneglKSofFBh3Xy/t7KfBUxLlKnoq6kyGYJvTmAVB1YBt11qw== "@vercel/node@^2.5.26": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.0.tgz#98bc45098f080c036cc04739c98943438b148f52" - integrity sha512-Vji7/j1boSGNsPS3Zw5Av21dAQMUcuci9l9OI2JhJ7kG1NGT3+8k83Dy46ZI1Q9+5m+ibUxVVzfsS7Fr6oYVYA== + version "2.8.1" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.1.tgz#f794421196d2ff1dbf56a388850cca99dffd6d3b" + integrity sha512-hLp/Q9MBkYeLqVz1KPiWWae9bTfI/ouEFGhsKQSurUZRBK+FaAJC9k4T59cIfvxgdXHEr801ga3IPfhe7tpQ5A== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "5.7.0" + "@vercel/build-utils" "5.7.1" "@vercel/node-bridge" "3.1.2" "@vercel/static-config" "2.0.6" edge-runtime "2.0.0" @@ -5483,9 +5484,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1273.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1273.0.tgz#63f83e5807e3fea5383f7b96ef579d50f8496c36" - integrity sha512-QF37fm1DfUxjw+IJtDMTDBckVwAOf8EHQjs4NxJp5TtRkeqtWkxNzq/ViI8kAS+0n8JZaom8Oenmy8ufGfLMAQ== + version "2.1276.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1276.0.tgz#60d32305b687a1c8367370574d2b0d1c40d30e26" + integrity sha512-0TGPsW/uMQy0trfYZD+dvSQ9Bf8NmKK9ISj5xQJGopNt/Kxh0vLKBPy2mFmKdxeFtis6wn4c9uTp7/3p0ADa1w== dependencies: buffer "4.9.2" events "1.1.1" @@ -5509,9 +5510,9 @@ aws4@^1.8.0: integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== axe-core@^4.4.3: - version "4.6.0" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.0.tgz#1d07514866fa51262734b3357932fcf86961383a" - integrity sha512-L3ZNbXPTxMrl0+qTXAzn9FBRvk5XdO56K8CvcCKtlxv44Aw2w2NCclGuvCWxHPw1Riiq3ncP/sxFYj2nUqdoTw== + version "4.6.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.1.tgz#79cccdee3e3ab61a8f42c458d4123a6768e6fbce" + integrity sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w== axios@^0.21.0, axios@^0.21.1, axios@^0.21.2: version "0.21.4" @@ -6320,9 +6321,9 @@ camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== camelcase@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.0.tgz#fd112621b212126741f998d614cbc2a8623fd174" - integrity sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ== + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== caniuse-api@^3.0.0: version "3.0.0" @@ -7222,12 +7223,12 @@ css-has-pseudo@^3.0.4: postcss-selector-parser "^6.0.9" css-loader@^6.5.1: - version "6.7.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.2.tgz#26bc22401b5921686a10fbeba75d124228302304" - integrity sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q== + version "6.7.3" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" + integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== dependencies: icss-utils "^5.1.0" - postcss "^8.4.18" + postcss "^8.4.19" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" @@ -10953,11 +10954,11 @@ interface-store@^2.0.1, interface-store@^2.0.2: integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.1.3" has "^1.0.3" side-channel "^1.0.4" @@ -13127,9 +13128,9 @@ language-subtag-registry@^0.3.20: integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== language-tags@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.6.tgz#c087cc42cd92eb71f0925e9e271d4f8be5a93430" - integrity sha512-HNkaCgM8wZgE/BZACeotAAgpL9FUjEnhgF0FVQMIgH//zqTPreLYMb3rWYkYAqPoF75Jwuycp1da7uz66cfFQg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.7.tgz#41cc248730f3f12a452c2e2efe32bc0bbce67967" + integrity sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw== dependencies: language-subtag-registry "^0.3.20" @@ -14411,9 +14412,9 @@ node-int64@^0.4.0: integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.7.tgz#593edbc7c22860ee4d32d3933cfebdfab0c0e0e5" + integrity sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ== nodeify@^1.0.1: version "1.0.1" @@ -15682,7 +15683,7 @@ postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.4: +postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.4: version "8.4.20" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== @@ -15719,9 +15720,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier-plugin-solidity@^1.0.0-beta.24: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0.tgz#5b23f48cc9c28a1246c6dd89af117234b813f48b" - integrity sha512-gRJCeZ7imbWtNYN2SudjJoPmka5r6jcd2cSTV6FC3pVCtY6LFZbeQQjpKufUEp88hXBAAnkOTOh7TA5xwj9M3A== + version "1.1.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.0.tgz#a417d104b48a43af3adbfb96b65dbce34fd21429" + integrity sha512-5gq0T49ifvXH/6x1STuKyWjTUgi6ICoV65yNtKlg/vZEvocFtSpByJOJICBfqPwNsnv4vhhWIqkLGSUJmWum2w== dependencies: "@solidity-parser/parser" "^0.14.5" emoji-regex "^10.2.1" @@ -18333,10 +18334,10 @@ tenderly@^0.0.2: open "^8.4.0" prompts "^2.4.2" -tenderly@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tenderly/-/tenderly-0.0.3.tgz#8c85e287e080073502420d5c6f13f4762d0f59cd" - integrity sha512-dVf2uxrIOeLDRNDEXcQlV2xJt50TIx8zGQKlNj1deYTV3FYu2L0zheHBHaDU12GqAff2iiGYk+fKqFkK0bB0+w== +tenderly@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/tenderly/-/tenderly-0.2.0.tgz#614027ce58e2465c7707b5815d44c9d6ee92ab9e" + integrity sha512-VsYKJfvNOKypcSXzba7o1w1on/lWuSdjZNK0UeHkRuhKYxo/RrvoOpTB2nuaSPQ1dhczy4FNH/mpGU+kqvNr5g== dependencies: axios "^0.27.2" cli-table3 "^0.6.2" @@ -18346,6 +18347,7 @@ tenderly@^0.0.3: js-yaml "^4.1.0" open "^8.4.0" prompts "^2.4.2" + tslog "^4.4.0" terminal-link@^2.0.0: version "2.1.1" @@ -18697,6 +18699,11 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.4.1, tslib@~2.4 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== +tslog@^4.3.1, tslog@^4.4.0: + version "4.4.4" + resolved "https://registry.yarnpkg.com/tslog/-/tslog-4.4.4.tgz#ec121512a0094c4b9fe16ce8170d578a46be12af" + integrity sha512-+IJBVcB6h4BhMH3+IvB69lDZ/5ClHX40I66bGTKPAx+/S9nDqJCYN323MxR/gch3Agvrwif4HQorI/YLqAeoNA== + tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" From 40d0b140e5788872803781bc6c2dcd910493860e Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Thu, 15 Dec 2022 17:03:00 -0500 Subject: [PATCH 018/216] remove max len from eslint --- packages/apps/escrow-dashboard/.eslintrc.json | 8 +------- .../apps/escrow-dashboard/src/components/Layout.test.tsx | 1 - .../src/components/Token/TokenContainer.tsx | 4 +++- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/packages/apps/escrow-dashboard/.eslintrc.json b/packages/apps/escrow-dashboard/.eslintrc.json index 03855b59b4..91277db771 100644 --- a/packages/apps/escrow-dashboard/.eslintrc.json +++ b/packages/apps/escrow-dashboard/.eslintrc.json @@ -43,13 +43,7 @@ "@typescript-eslint/no-empty-function": 0, "@typescript-eslint/no-empty-interface": 0, "@typescript-eslint/no-var-requires": 0, - "max-len": [ - "warn", - { - "code": 80 - } - ], - "prettier/prettier": 0 + "prettier/prettier": ["error"] }, "overrides": [ { diff --git a/packages/apps/escrow-dashboard/src/components/Layout.test.tsx b/packages/apps/escrow-dashboard/src/components/Layout.test.tsx index eb03707520..72d9c0b1a3 100644 --- a/packages/apps/escrow-dashboard/src/components/Layout.test.tsx +++ b/packages/apps/escrow-dashboard/src/components/Layout.test.tsx @@ -1,7 +1,6 @@ import React from 'react'; import { render } from '@testing-library/react'; import renderer from 'react-test-renderer'; -import { act } from 'react-dom/test-utils'; import Layout from './Layout'; describe('when rendered Layout component', () => { diff --git a/packages/apps/escrow-dashboard/src/components/Token/TokenContainer.tsx b/packages/apps/escrow-dashboard/src/components/Token/TokenContainer.tsx index 8fb2bf68d9..f7b9d46d84 100644 --- a/packages/apps/escrow-dashboard/src/components/Token/TokenContainer.tsx +++ b/packages/apps/escrow-dashboard/src/components/Token/TokenContainer.tsx @@ -8,7 +8,9 @@ import { TokenView } from './TokenView'; interface ITokenContainer {} -export const TokenContainer: React.FC = (): React.ReactElement => { +export const TokenContainer: React.FC< + ITokenContainer +> = (): React.ReactElement => { usePollTokenStats(); return ( From 3dab6c2ed0244d5dbf2faf422ddc7ad0c2874d80 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Thu, 15 Dec 2022 17:14:25 -0500 Subject: [PATCH 019/216] update escrow dashboard dep --- packages/apps/escrow-dashboard/package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/apps/escrow-dashboard/package.json b/packages/apps/escrow-dashboard/package.json index 8c3eacd0a7..64d83ac2ea 100644 --- a/packages/apps/escrow-dashboard/package.json +++ b/packages/apps/escrow-dashboard/package.json @@ -7,7 +7,7 @@ "dependencies": { "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", - "@human-protocol/core": "^1.0.11", + "@human-protocol/core": "workspace:*", "@mui/icons-material": "^5.10.14", "@mui/material": "^5.10.14", "@mui/styles": "^5.10.14", diff --git a/yarn.lock b/yarn.lock index 9e9331a8e5..558c10af99 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10132,9 +10132,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" From 2d2bed85312234d79d1af642fb2dedb3557f1a32 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Thu, 15 Dec 2022 17:15:54 -0500 Subject: [PATCH 020/216] fix fortune test --- packages/examples/fortune/tests/e2e-backend/constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/tests/e2e-backend/constants.js b/packages/examples/fortune/tests/e2e-backend/constants.js index 0659e10ed2..454a2d81d8 100644 --- a/packages/examples/fortune/tests/e2e-backend/constants.js +++ b/packages/examples/fortune/tests/e2e-backend/constants.js @@ -9,7 +9,7 @@ const addresses = { hmt: process.env.HMT_ADDRESS || '0x5FbDB2315678afecb367f032d93F642f64180aa3', escrowFactory: process.env.ESCROW_FACTORY_ADDRESS || - '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512', + '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0', recOracle: process.env.REC_ORACLE_ADDRESS || '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', From 9e54961914d4007a0bff3f5e86a82d529c5b4717 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Thu, 15 Dec 2022 17:32:13 -0500 Subject: [PATCH 021/216] fix fortune test --- packages/examples/fortune/package.json | 2 +- .../fortune/recording-oracle/src/services/reputationClient.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index c6dab13d16..dc606a977b 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -17,7 +17,7 @@ "test:exchange": "cd exchange && yarn test", "test:recording": "cd recording-oracle && yarn test", "test:reputation": "cd reputation-oracle && yarn test", - "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 2s && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", + "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 2 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", "test:unit": "concurrently -g \"yarn test:recording\" \"yarn test:reputation\" \"yarn test:exchange\"", "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", "lint": "eslint .", diff --git a/packages/examples/fortune/recording-oracle/src/services/reputationClient.ts b/packages/examples/fortune/recording-oracle/src/services/reputationClient.ts index 1a095b04e0..6b78143230 100644 --- a/packages/examples/fortune/recording-oracle/src/services/reputationClient.ts +++ b/packages/examples/fortune/recording-oracle/src/services/reputationClient.ts @@ -1,10 +1,11 @@ import axios from 'axios'; import { convertUrl } from '../utils/url'; +import { FortuneEntry } from './storage'; export async function bulkPayout( reputationOracleUrl: string, escrowAddress: string, - fortunes: string + fortunes: FortuneEntry[] ) { // a cron job might check how much annotations are in work // if this is full - then just push them to the reputation oracle From 376c95a5967d874b2f722f76ee96bc866a609ef6 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Thu, 15 Dec 2022 17:52:53 -0500 Subject: [PATCH 022/216] fix sdk version --- .github/workflows/cd-python-sdk.yaml | 2 +- packages/sdk/python/setup.py | 2 +- packages/sdk/typescript/human-protocol-sdk/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cd-python-sdk.yaml b/.github/workflows/cd-python-sdk.yaml index 94dc63eb5d..c8c2ba0c11 100644 --- a/.github/workflows/cd-python-sdk.yaml +++ b/.github/workflows/cd-python-sdk.yaml @@ -32,4 +32,4 @@ jobs: TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} run: | make build-package - twine upload dist/* + twine upload dist/* --skip-existing diff --git a/packages/sdk/python/setup.py b/packages/sdk/python/setup.py index ea6dfefd66..d7ff6050d7 100644 --- a/packages/sdk/python/setup.py +++ b/packages/sdk/python/setup.py @@ -3,7 +3,7 @@ setuptools.setup( name="human-protocol-sdk", - version="0.0.6", + version="0.0.7", author="HUMAN Protocol", description="A python library to launch escrow contracts to the HUMAN network.", url="https://github.com/humanprotocol/human-protocol/packages/sdk/python", diff --git a/packages/sdk/typescript/human-protocol-sdk/package.json b/packages/sdk/typescript/human-protocol-sdk/package.json index 9dbe247287..5af0c17f61 100644 --- a/packages/sdk/typescript/human-protocol-sdk/package.json +++ b/packages/sdk/typescript/human-protocol-sdk/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/sdk", "description": "Human Protocol SDK", - "version": "1.0.1", + "version": "1.0.2", "files": [ "src", "dist", From fbd273582b36d8c15de8c06ea0be6416e6db8059 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Thu, 15 Dec 2022 19:27:44 -0500 Subject: [PATCH 023/216] update subgraph dep version --- packages/sdk/typescript/subgraph/package.json | 6 +- yarn.lock | 59 +++++++++++++------ 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/packages/sdk/typescript/subgraph/package.json b/packages/sdk/typescript/subgraph/package.json index 835c124fc8..5edc1d897d 100644 --- a/packages/sdk/typescript/subgraph/package.json +++ b/packages/sdk/typescript/subgraph/package.json @@ -34,11 +34,11 @@ ], "license": "MIT", "devDependencies": { - "@graphprotocol/graph-cli": "^0.35.0", - "@graphprotocol/graph-ts": "^0.28.1", + "@graphprotocol/graph-cli": "^0.37.1", + "@graphprotocol/graph-ts": "^0.29.0", "@graphql-eslint/eslint-plugin": "^3.13.0", "@human-protocol/core": "workspace:*", - "assemblyscript": "^0.22.0", + "assemblyscript": "^0.25.1", "matchstick-as": "^0.5.0", "mustache": "^4.2.0" }, diff --git a/yarn.lock b/yarn.lock index 558c10af99..d2450b0a93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1779,12 +1779,23 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@graphprotocol/graph-cli@^0.35.0": - version "0.35.0" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.35.0.tgz#2f3c688f47ce763c2e8c6d8b86817fb21b3a367d" - integrity sha512-50tjeLZg3425fwueH8ORTZbPRSn4uICL0NK9XsJVriDPKCNnhyAIgJgOWaYyPAFgxR8LuyXYkoxIxZ5nduKbiw== +"@float-capital/float-subgraph-uncrashable@^0.0.0-alpha.4": + version "0.0.0-alpha.6" + resolved "https://registry.yarnpkg.com/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-alpha.6.tgz#92929f4e60ba1aa4f901c807892527bf37998b54" + integrity sha512-ZPnxfewgEAr3UWjLQd1XRyx4e6kffLDaLHJiDsS8pLzVi84EOQVWeFgYOXajav/zM+QSlbTkCF9F1hVSUdcV1Q== + dependencies: + "@rescript/std" "9.0.0" + graphql "^16.6.0" + graphql-import-node "^0.0.5" + js-yaml "^4.1.0" + +"@graphprotocol/graph-cli@^0.37.1": + version "0.37.1" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.37.1.tgz#7532aa7550154238e9469ee79d245db3f9373bc9" + integrity sha512-3liXj1O/4tDOOGRcgs9T9sbz1940APhfnNIusN7L3lWgfUb5G6OyfwDgf/mfma/veoFhvdEyccDwhY4CDLp4jQ== dependencies: - assemblyscript "0.19.10" + "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" + assemblyscript "0.19.23" binary-install-raw "0.0.13" chalk "3.0.0" chokidar "3.5.1" @@ -1817,10 +1828,10 @@ dependencies: assemblyscript "0.19.10" -"@graphprotocol/graph-ts@^0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.28.1.tgz#271affc77deb5a4a7c3f95d4b3b1daaa9818e51c" - integrity sha512-1wMLQ0cu84/6Ml3zcz9ya1zFzrDAzCj0dIGZ7Rz9upnRSXg5jjqU4DefO/OYrl2K2/OPso9hSAr6I4aue2pL1Q== +"@graphprotocol/graph-ts@^0.29.0": + version "0.29.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.29.0.tgz#0b9fb72dece2dccf921f6f11518c7fec3830ab79" + integrity sha512-9rCouklL2CjlqtywcwSw++MzjBWlmm6274j4s5HokjOTxr64ER7SCKx+2iCqVV0/S7ivc63MzIHlCLSCjPjbiA== dependencies: assemblyscript "0.19.10" @@ -3186,6 +3197,11 @@ resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== +"@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== + "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -5383,7 +5399,7 @@ assemblyscript@0.19.10: binaryen "101.0.0-nightly.20210723" long "^4.0.0" -assemblyscript@^0.19.20: +assemblyscript@0.19.23, assemblyscript@^0.19.20: version "0.19.23" resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.23.tgz#16ece69f7f302161e2e736a0f6a474e6db72134c" integrity sha512-fwOQNZVTMga5KRsfY80g7cpOl4PsFQczMwHzdtgoqLXaYhkhavufKb0sB0l3T1DUxpAufA0KNhlbpuuhZUwxMA== @@ -5392,12 +5408,12 @@ assemblyscript@^0.19.20: long "^5.2.0" source-map-support "^0.5.20" -assemblyscript@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.22.0.tgz#4ca71d6790c0f26db5d3e358e860b2d542f6e02b" - integrity sha512-BC4tV2hc+oNgKOWfXXrl5iD2W+NkQV1MbRNCMi7YE83VoSzrmJj7LqSJMHYc39nKNnX+MiL4DHzp9zCKIMal/g== +assemblyscript@^0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.25.1.tgz#22650e2a3bfe83d22b4517fd25ab66ef45ee85c8" + integrity sha512-UtbAE1R+1XmSGMDeRXwsCepbnO6yhkcSiS+D8MNyy68cmR9qF6+XfbFWC+Tvw2RZib+tGEdXfPnnXZA8Cyv3CQ== dependencies: - binaryen "110.0.0-nightly.20221019" + binaryen "110.0.0-nightly.20221105" long "^5.2.0" assert-plus@1.0.0, assert-plus@^1.0.0: @@ -5807,10 +5823,10 @@ binaryen@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@110.0.0-nightly.20221019: - version "110.0.0-nightly.20221019" - resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-110.0.0-nightly.20221019.tgz#3c458f114ea3eb34c64d47d6a03b9529199638c7" - integrity sha512-BmuVpV5hpeU1G9ENWQUslwaxbmol810S3+yd7xVJap+vrSQz7ybXiirwya1FfYSFtuDbfGYPfQAObiW5O2PS1w== +binaryen@110.0.0-nightly.20221105: + version "110.0.0-nightly.20221105" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-110.0.0-nightly.20221105.tgz#9e3c47e8ffa31521acd125013dca3ceea143d0bf" + integrity sha512-OBESOc51q3SwgG8Uv8nMzGnSq7LJpSB/Fu8B3AjlZg6YtCEwRnlDWlnwNB6mdql+VdexfKmNcsrs4K7MYidmdQ== bind-decorator@^1.0.11: version "1.0.11" @@ -10264,6 +10280,11 @@ graphql-depth-limit@^1.1.0: dependencies: arrify "^1.0.1" +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-ws@5.11.2: version "5.11.2" resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.11.2.tgz#d5e0acae8b4d4a4cf7be410a24135cfcefd7ddc0" From cc34be65fb812e2b55198daaefc62dd97a151428 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 16 Dec 2022 08:43:58 +0100 Subject: [PATCH 024/216] approve staker not necessary any more --- .../examples/fortune/launcher/src/components/staking/stake.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/src/components/staking/stake.tsx b/packages/examples/fortune/launcher/src/components/staking/stake.tsx index e24b11dc97..9d02e7ad08 100644 --- a/packages/examples/fortune/launcher/src/components/staking/stake.tsx +++ b/packages/examples/fortune/launcher/src/components/staking/stake.tsx @@ -26,7 +26,7 @@ export default function Stake() { } return (
-

HMT staking amount(You need to be approved as a staker before):

+

HMT staking amount:

setStake(Number(e.target.value))} />
From 5a79e779f7b6996618da99b599d820269e1574cc Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 16 Dec 2022 15:51:22 +0100 Subject: [PATCH 025/216] undo modified script my mistake --- packages/examples/fortune/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index dc606a977b..edf3b0134e 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -12,7 +12,7 @@ "reputation-oracle": "cd reputation-oracle && yarn start", "minio": "docker compose --env-file=.env.development up -d minio-mc", "deploy:contracts": "yarn workspace @human-protocol/core install && yarn workspace @human-protocol/core deploy:local", - "local": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn deploy:contracts\" \"yarn minio\")", + "local": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn exchange\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn deploy:contracts\" \"yarn minio\")", "local:test": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn exchange\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn minio\")", "test:exchange": "cd exchange && yarn test", "test:recording": "cd recording-oracle && yarn test", From e0806acd11aa99f62e9fa6b891501641581d3911 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Fri, 16 Dec 2022 22:39:34 -0500 Subject: [PATCH 026/216] remove dead code from smart contract --- packages/core/contracts/Escrow.sol | 17 +++-------------- packages/core/contracts/EscrowFactory.sol | 13 +++---------- packages/core/contracts/RewardPool.sol | 5 ++--- packages/core/contracts/Staking.sol | 2 +- packages/core/contracts/interfaces/IEscrow.sol | 4 ++-- packages/core/test/EscrowFactory.ts | 4 ---- 6 files changed, 11 insertions(+), 34 deletions(-) diff --git a/packages/core/contracts/Escrow.sol b/packages/core/contracts/Escrow.sol index d834dd512b..8b0cffe991 100644 --- a/packages/core/contracts/Escrow.sol +++ b/packages/core/contracts/Escrow.sol @@ -4,23 +4,16 @@ pragma solidity >=0.6.2; import './interfaces/HMTokenInterface.sol'; import './interfaces/IRewardPool.sol'; +import './interfaces/IEscrow.sol'; import './utils/SafeMath.sol'; -contract Escrow { +contract Escrow is IEscrow { using SafeMath for uint256; event IntermediateStorage(string _url, string _hash); event Pending(string manifest, string hash); event BulkTransfer(uint256 indexed _txId, uint256 _bulkCount); - enum EscrowStatuses { - Launched, - Pending, - Partial, - Paid, - Complete, - Cancelled - } - EscrowStatuses public status; + EscrowStatuses public override status; address public reputationOracle; address public recordingOracle; @@ -244,10 +237,6 @@ contract Escrow { return (reputationOracleFee, recordingOracleFee); } - function getStatus() public view returns (EscrowStatuses) { - return status; - } - modifier trusted() { require(areTrustedHandlers[msg.sender], 'Address calling not trusted'); _; diff --git a/packages/core/contracts/EscrowFactory.sol b/packages/core/contracts/EscrowFactory.sol index 054466d042..74d789568c 100644 --- a/packages/core/contracts/EscrowFactory.sol +++ b/packages/core/contracts/EscrowFactory.sol @@ -8,9 +8,7 @@ import './interfaces/IStaking.sol'; contract EscrowFactory { // all Escrows will have this duration. uint256 constant STANDARD_DURATION = 8640000; - - // Owner address - address public owner; + string constant ERROR_ZERO_ADDRESS = 'EscrowFactory: Zero Address'; uint256 public counter; mapping(address => uint256) public escrowCounters; @@ -20,15 +18,15 @@ contract EscrowFactory { event Launched(address eip20, address escrow, uint256 counter); constructor(address _eip20, address _staking) { + require(_eip20 != address(0), ERROR_ZERO_ADDRESS); eip20 = _eip20; + require(_staking != address(0), ERROR_ZERO_ADDRESS); staking = _staking; - owner = msg.sender; } function createEscrow( address[] memory trustedHandlers ) public returns (address) { - require(staking != address(0), 'Staking is not configured'); bool hasAvailableStake = IStaking(staking).hasAvailableStake( msg.sender ); @@ -57,9 +55,4 @@ contract EscrowFactory { function hasEscrow(address _address) public view returns (bool) { return escrowCounters[_address] != 0; } - - modifier onlyOwner() { - require(owner == msg.sender, 'Caller is not owner'); - _; - } } diff --git a/packages/core/contracts/RewardPool.sol b/packages/core/contracts/RewardPool.sol index a8ac1e45a9..d8b35ea992 100644 --- a/packages/core/contracts/RewardPool.sol +++ b/packages/core/contracts/RewardPool.sol @@ -42,7 +42,7 @@ contract RewardPool is IRewardPool { /** * @dev Add reward record - * Protocol fee is duducted for each reward + * Protocol fee is deducted for each reward */ function addReward( address _escrowAddress, @@ -86,8 +86,7 @@ contract RewardPool is IRewardPool { // Transfer Tokens for (uint256 index = 0; index < rewardsForEscrow.length; index += 1) { Reward memory reward = rewardsForEscrow[index]; - bool success = token.transfer(reward.slasher, reward.tokens); - require(success, 'Transfer failed'); + token.transfer(reward.slasher, reward.tokens); } } diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index b5efef2fe0..1336dec2fe 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -238,7 +238,7 @@ contract Staking is IStaking { } IEscrow escrow = IEscrow(_escrowAddress); - IEscrow.EscrowStatuses escrowStatus = escrow.getStatus(); + IEscrow.EscrowStatuses escrowStatus = escrow.status(); if ( allocation.createdAt != 0 && diff --git a/packages/core/contracts/interfaces/IEscrow.sol b/packages/core/contracts/interfaces/IEscrow.sol index 402cfe45be..d8b00e647f 100644 --- a/packages/core/contracts/interfaces/IEscrow.sol +++ b/packages/core/contracts/interfaces/IEscrow.sol @@ -12,6 +12,8 @@ interface IEscrow { Cancelled } + function status() external view returns (EscrowStatuses); + function addTrustedHandlers(address[] memory _handlers) external; function setup( @@ -38,6 +40,4 @@ interface IEscrow { string memory _hash, uint256 _txId ) external returns (bool); - - function getStatus() external view returns (EscrowStatuses); } diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 137e3aea78..0e617a89eb 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -63,10 +63,6 @@ describe('EscrowFactory', function () { }); describe('deployment', () => { - it('Should set owner', async () => { - expect(await escrowFactory.owner()).to.equal(await owner.getAddress()); - }); - it('Should set the right token address', async () => { const result = await escrowFactory.eip20(); expect(result).to.equal(token.address); From 011b8c66eb159c60ff942a41e156366863ef51d3 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Fri, 16 Dec 2022 22:45:36 -0500 Subject: [PATCH 027/216] update unstake logic --- packages/core/contracts/Staking.sol | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index 1336dec2fe..32c7634812 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -348,11 +348,13 @@ contract Staking is IStaking { Stakes.Staker storage staker = stakes[msg.sender]; require(staker.tokensStaked > 0, 'Must be a positive number'); + require(_tokens > 0, 'Must be a positive number'); + require( + staker.tokensAvailable() >= _tokens, + 'Insufficient amount to unstake' + ); - uint256 tokensToLock = Math.min(staker.tokensAvailable(), _tokens); - require(tokensToLock > 0, 'Must be a positive number'); - - uint256 newStake = staker.tokensSecureStake().sub(tokensToLock); + uint256 newStake = staker.tokensSecureStake().sub(_tokens); require( newStake == 0 || newStake >= minimumStake, 'Total stake is below the minimum threshold' @@ -363,7 +365,7 @@ contract Staking is IStaking { _withdraw(msg.sender); } - staker.lockTokens(tokensToLock, lockPeriod); + staker.lockTokens(_tokens, lockPeriod); emit StakeLocked( msg.sender, From 56541e6c11c3d980a2dced5bebe7d83ac6ac595d Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 19 Dec 2022 09:37:34 -0500 Subject: [PATCH 028/216] revert escrow test changes --- packages/core/test/Escrow.ts | 390 ++++++++++++----------------------- 1 file changed, 134 insertions(+), 256 deletions(-) diff --git a/packages/core/test/Escrow.ts b/packages/core/test/Escrow.ts index 6d95a6c098..4df6d28709 100644 --- a/packages/core/test/Escrow.ts +++ b/packages/core/test/Escrow.ts @@ -2,37 +2,68 @@ import { anyValue } from '@nomicfoundation/hardhat-chai-matchers/withArgs'; import { expect } from 'chai'; import { ethers } from 'hardhat'; import { Signer } from 'ethers'; -import { Escrow, HMToken, RewardPool, Staking } from '../typechain-types'; +import { Escrow, HMToken } from '../typechain-types'; + +const MOCK_URL = 'http://google.com/fake'; +const MOCK_HASH = 'kGKmnj9BRf'; +const BULK_MAX_COUNT = 100; + +enum Status { + Launched = 0, + Pending = 1, + Partial = 2, + Paid = 3, + Complete = 4, + Cancelled = 5, +} + +let owner: Signer, + launcher: Signer, + reputationOracle: Signer, + recordingOracle: Signer, + externalAddress: Signer, + restAccounts: Signer[], + trustedHandlers: string[]; + +let token: HMToken, escrow: Escrow; + +async function deployEscrow() { + // Deploy Escrow Contract + const Escrow = await ethers.getContractFactory('Escrow'); + escrow = await Escrow.deploy( + token.address, + await owner.getAddress(), + 100, + trustedHandlers + ); +} + +async function setupEscrow() { + await escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH + ); +} + +async function addTrustedHandlers() { + await escrow + .connect(owner) + .addTrustedHandlers([await reputationOracle.getAddress()]); +} + +async function fundEscrow() { + const amount = 100; + await token.connect(owner).transfer(escrow.address, amount); +} describe('Escrow', function () { - const MOCK_URL = 'http://google.com/fake'; - const MOCK_HASH = 'kGKmnj9BRf'; - const BULK_MAX_COUNT = 100; - - enum Status { - Launched = 0, - Pending = 1, - Partial = 2, - Paid = 3, - Complete = 4, - Cancelled = 5, - } - - let owner: Signer, - launcher: Signer, - reputationOracle: Signer, - recordingOracle: Signer, - externalAddress: Signer, - restAccounts: Signer[], - trustedHandlers: string[]; - - let token: HMToken, escrow: Escrow, staking: Staking, rewardPool: RewardPool; - - const minimumStake = 2; - const lockPeriod = 2; - const rewardFee = 2; - - beforeEach(async () => { + this.beforeAll(async () => { [ owner, launcher, @@ -49,33 +80,13 @@ describe('Escrow', function () { // Deploy HMTToken Contract const HMToken = await ethers.getContractFactory('HMToken'); token = await HMToken.deploy(1000000000, 'Human Token', 18, 'HMT'); - - // Deploy Staking Conract - const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy(token.address, minimumStake, lockPeriod); - - // Deploy Reward Pool Conract - const RewardPool = await ethers.getContractFactory('RewardPool'); - rewardPool = await RewardPool.deploy( - token.address, - staking.address, - rewardFee - ); - - // Configure RewardPool in Staking - await staking.setRewardPool(rewardPool.address); - - // Deploy Escrow Contract - const Escrow = await ethers.getContractFactory('Escrow'); - escrow = await Escrow.deploy( - token.address, - await owner.getAddress(), - 5, - trustedHandlers - ); }); describe('deployment', () => { + before(async () => { + await deployEscrow(); + }); + it('Should set the right token address', async () => { const result = await escrow.eip20(); expect(result).to.equal(token.address); @@ -106,26 +117,16 @@ describe('Escrow', function () { }); describe('abort', () => { - describe('Validations', function () { - beforeEach(async () => { - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); - await escrow - .connect(owner) - .addTrustedHandlers([await reputationOracle.getAddress()]); - }); + before(async () => { + await deployEscrow(); + await setupEscrow(); + await addTrustedHandlers(); + }); - it('Should succeeds when aborting with not trusted address', async function () { - //const tx = await escrow.connect(externalAddress).abort() - //console.log(`Abort costs: ${tx.receipt.gasUsed} wei.`); + describe('Validations', function () { + it('Should revert when aborting with not trusted address', async function () { + // const tx = await escrow.connect(externalAddress).abort() + // console.log(`Abort costs: ${tx.receipt.gasUsed} wei.`); await expect( escrow.connect(externalAddress).abort() ).to.be.revertedWith('Address calling not trusted'); @@ -133,22 +134,6 @@ describe('Escrow', function () { }); describe('Calling abort', function () { - beforeEach(async () => { - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); - await escrow - .connect(owner) - .addTrustedHandlers([await reputationOracle.getAddress()]); - }); - it('Should transfer tokens to owner if contract funded when abort is called', async function () { const amount = 100; await token.connect(owner).transfer(escrow.address, amount); @@ -165,17 +150,9 @@ describe('Escrow', function () { }); describe('addTrustedHandlers', async () => { - beforeEach(async () => { - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); + before(async () => { + await deployEscrow(); + await setupEscrow(); }); describe('Validations', function () { @@ -189,12 +166,10 @@ describe('Escrow', function () { }); describe('Add trusted handlers', async function () { - it('Should succeeds when the contract launcher address trusted handlers and a trusted handler stores results', async () => { - await ( - await escrow - .connect(owner) - .addTrustedHandlers([await reputationOracle.getAddress()]) - ).wait(); + it('Should succeed when the contract launcher address trusted handlers and a trusted handler stores results', async () => { + await escrow + .connect(owner) + .addTrustedHandlers([await reputationOracle.getAddress()]); const result = await ( await escrow @@ -206,12 +181,17 @@ describe('Escrow', function () { 'IntermediateStorage', 'IntermediateStorage event was not emitted' ); + // expect(event._url).to.equal(MOCK_URL, "Manifest url is not correct") + // expect(event._hash).to.equal(MOCK_HASH, "Manifest hash is not correct") }); }); }); describe('storeResults', async () => { describe('Validations', function () { + before(async () => { + await deployEscrow(); + }); it('Should revert with the right error if address calling not trusted', async function () { await expect( escrow.connect(externalAddress).storeResults(MOCK_URL, MOCK_HASH) @@ -229,20 +209,10 @@ describe('Escrow', function () { }); describe('Events', function () { - beforeEach(async () => { - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); - await escrow - .connect(owner) - .addTrustedHandlers([await reputationOracle.getAddress()]); + before(async () => { + await deployEscrow(); + await setupEscrow(); + await addTrustedHandlers(); }); it('Should emit an event on intermediate storage', async function () { @@ -255,23 +225,13 @@ describe('Escrow', function () { }); describe('Store results', async function () { - beforeEach(async () => { - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); - await escrow - .connect(owner) - .addTrustedHandlers([await reputationOracle.getAddress()]); + before(async () => { + await deployEscrow(); + await setupEscrow(); + await addTrustedHandlers(); }); - it('Should succeeds when the contract launcher address trusted handlers and a trusted handler stores results', async () => { + it('Should succeed when the contract launcher address trusted handlers and a trusted handler stores results', async () => { const result = await ( await escrow .connect(reputationOracle) @@ -288,6 +248,10 @@ describe('Escrow', function () { describe('setup', () => { describe('Validations', function () { + before(async () => { + await deployEscrow(); + }); + it('Should revert with the right error if address calling not trusted', async function () { await expect( escrow @@ -350,6 +314,10 @@ describe('Escrow', function () { }); describe('Events', function () { + before(async () => { + await deployEscrow(); + }); + it('Should emit an event on pending', async function () { await expect( escrow @@ -369,12 +337,12 @@ describe('Escrow', function () { }); describe('Setup escrow', async function () { - beforeEach(async () => { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); + before(async () => { + await deployEscrow(); + await fundEscrow(); }); - it('Should sets correct escrow with params', async () => { + it('Should set correct escrow with params', async () => { await escrow .connect(owner) .setup( @@ -401,20 +369,10 @@ describe('Escrow', function () { describe('cancel', () => { describe('Validations', function () { - beforeEach(async () => { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); - - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); + before(async () => { + await deployEscrow(); + await fundEscrow(); + await setupEscrow(); await escrow .connect(owner) @@ -435,23 +393,13 @@ describe('Escrow', function () { }); describe('Cancel escrow', async function () { - beforeEach(async () => { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); - - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); + before(async () => { + await deployEscrow(); + await fundEscrow(); + await setupEscrow(); }); - it('Should succeeds when the contract was canceled', async () => { + it('Should succeed when the contract was canceled', async () => { await escrow.connect(owner).cancel(); const ststus = await escrow.status(); expect(ststus).to.equal(Status.Cancelled); @@ -464,20 +412,10 @@ describe('Escrow', function () { describe('bulkPayOut', () => { describe('Validations', function () { - beforeEach(async () => { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); - - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); + before(async () => { + await deployEscrow(); + await fundEscrow(); + await setupEscrow(); }); it('Should revert with the right error if address calling is not trusted', async function () { @@ -536,20 +474,10 @@ describe('Escrow', function () { }); describe('Events', function () { - beforeEach(async () => { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); - - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); + before(async () => { + await deployEscrow(); + await fundEscrow(); + await setupEscrow(); }); it('Should emit an event on bulk transfer', async function () { @@ -568,8 +496,9 @@ describe('Escrow', function () { describe('Bulk payout for recipients', async function () { beforeEach(async () => { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); + await deployEscrow(); + await fundEscrow(); + await setupEscrow(); }); it('Should pays each recipient their corresponding amount', async () => { @@ -596,17 +525,6 @@ describe('Escrow', function () { const recepients = [account1, account2, account3]; const amounts = [10, 20, 30]; - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); - await escrow .connect(reputationOracle) .bulkPayOut(recepients, amounts, MOCK_URL, MOCK_HASH, '000'); @@ -667,16 +585,6 @@ describe('Escrow', function () { const recepients = [await restAccounts[0].getAddress()]; const amounts = [100]; - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); expect(await escrow.status()).to.equal(Status.Pending); await escrow @@ -696,16 +604,6 @@ describe('Escrow', function () { ]; const amounts = [10, 20, 70]; - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); expect(await escrow.status()).to.equal(Status.Pending); await escrow @@ -721,20 +619,10 @@ describe('Escrow', function () { describe('complete', () => { describe('Validations', function () { - beforeEach(async () => { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); - - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); + before(async () => { + await deployEscrow(); + await fundEscrow(); + await setupEscrow(); }); it('Should revert with the right error if address calling is not trusted', async function () { @@ -752,19 +640,9 @@ describe('Escrow', function () { describe('Complete escrow', async function () { beforeEach(async () => { - const amount = 100; - await token.connect(owner).transfer(escrow.address, amount); - - await escrow - .connect(owner) - .setup( - await reputationOracle.getAddress(), - await recordingOracle.getAddress(), - 10, - 10, - MOCK_URL, - MOCK_HASH - ); + await deployEscrow(); + await fundEscrow(); + await setupEscrow(); await escrow .connect(owner) @@ -777,7 +655,7 @@ describe('Escrow', function () { ); }); - it('Should succeeds when the contract launcher address trusted handlers and a trusted handler stores results', async () => { + it('Should succeed when the contract launcher address trusted handlers and a trusted handler stores results', async () => { await escrow.connect(owner).complete(); expect(await escrow.status()).to.equal(Status.Complete); }); From a2f873a503fd962aec10f1d37b68fa3844ddf174 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 19 Dec 2022 09:43:47 -0500 Subject: [PATCH 029/216] use Ownable --- packages/core/contracts/Staking.sol | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index 32c7634812..7cde9c4973 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -8,18 +8,16 @@ import './interfaces/IRewardPool.sol'; import './interfaces/IStaking.sol'; import './libs/Stakes.sol'; import './utils/Math.sol'; +import './utils/Ownable.sol'; /** * @title Staking contract * @dev The Staking contract allows Operator, Exchange Oracle, Recording Oracle and Reputation Oracle to stake to Escrow. */ -contract Staking is IStaking { +contract Staking is IStaking, Ownable { using SafeMath for uint256; using Stakes for Stakes.Staker; - // Owner address - address public owner; - // ERC20 Token address address public eip20; @@ -98,7 +96,6 @@ contract Staking is IStaking { constructor(address _eip20, uint256 _minimumStake, uint32 _lockPeriod) { eip20 = _eip20; - owner = msg.sender; _setMinimumStake(_minimumStake); _setLockPeriod(_lockPeriod); } @@ -530,11 +527,6 @@ contract Staking is IStaking { ); } - modifier onlyOwner() { - require(owner == msg.sender, 'Caller is not a owner'); - _; - } - modifier onlyStaker(address _staker) { Stakes.Staker memory staker = stakes[_staker]; require(staker.tokensStaked > 0, 'Caller is not a staker'); From db517e86626ad39c96a73d4694a66416cd3d2c5d Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 19 Dec 2022 09:56:09 -0500 Subject: [PATCH 030/216] remove bash script for test --- .../sdk/typescript/human-protocol-sdk/package.json | 2 +- .../human-protocol-sdk/scripts/run-test.sh | 14 -------------- .../typescript/human-protocol-sdk/test/job.test.ts | 4 ++-- 3 files changed, 3 insertions(+), 17 deletions(-) delete mode 100755 packages/sdk/typescript/human-protocol-sdk/scripts/run-test.sh diff --git a/packages/sdk/typescript/human-protocol-sdk/package.json b/packages/sdk/typescript/human-protocol-sdk/package.json index 5af0c17f61..426b2b0890 100644 --- a/packages/sdk/typescript/human-protocol-sdk/package.json +++ b/packages/sdk/typescript/human-protocol-sdk/package.json @@ -14,7 +14,7 @@ "clean": "rm -rf ./dist", "build": "npm run clean && tsc", "prepublish": "npm run build", - "test": "./scripts/run-test.sh", + "test": "concurrently -k -s first -g --hide 0 \"yarn workspace @human-protocol/core local\" \"sleep 5 && jest --runInBand\"", "lint": "eslint .", "lint:fix": "eslint . --fix", "format": "prettier --write '**/*.{ts,json}'" diff --git a/packages/sdk/typescript/human-protocol-sdk/scripts/run-test.sh b/packages/sdk/typescript/human-protocol-sdk/scripts/run-test.sh deleted file mode 100755 index 4b5958db3d..0000000000 --- a/packages/sdk/typescript/human-protocol-sdk/scripts/run-test.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -set -eux - -# Run hardhat node, and deploy contract locally -yarn workspace @human-protocol/core local & - -# Wait for the contracts to be deployed properly -sleep 5 - -# Run test -npx jest - -# Kill running hardhat node -trap 'kill $(jobs -p)' EXIT diff --git a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts index a1f8998cf6..ee2b762ec1 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts @@ -48,7 +48,7 @@ describe('Test Job', () => { manifest: manifest, hmTokenAddr: DEFAULT_HMTOKEN_ADDR, stakingAddr: DEFAULT_STAKING_ADDR, - logLevel: 'debug', + logLevel: 'error', }); }); @@ -396,7 +396,7 @@ describe('Test Job', () => { escrowAddr: originalJob.contractData?.escrowAddr, factoryAddr: originalJob.contractData?.factoryAddr, trustedHandlers: [TRUSTED_OPERATOR1_PRIVKEY], - logLevel: 'debug', + logLevel: 'error', }); }); From 475359452109a6203cee69c16179f451c4df2de6 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 19 Dec 2022 10:14:12 -0500 Subject: [PATCH 031/216] increase time limit for sdk test and fix core test failing --- packages/core/test/Staking.ts | 8 ++++---- packages/sdk/typescript/human-protocol-sdk/jest.config.ts | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 01fab21367..d3f09a914a 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -394,7 +394,7 @@ describe('Staking', function () { await expect( staking.connect(operator).setMinimumStake(minumumStake) - ).to.be.revertedWith('Caller is not a owner'); + ).to.be.revertedWith('Ownable: caller is not the owner'); }); it('Should revert with the right error if not a positive number', async function () { @@ -433,7 +433,7 @@ describe('Staking', function () { await expect( staking.connect(operator).setLockPeriod(lockPeriod) - ).to.be.revertedWith('Caller is not a owner'); + ).to.be.revertedWith('Ownable: caller is not the owner'); }); it('Should revert with the right error if not a positive number', async function () { @@ -470,7 +470,7 @@ describe('Staking', function () { it('Should revert with the right error if caller is not an owner', async function () { await expect( staking.connect(operator).setRewardPool(rewardPool.address) - ).to.be.revertedWith('Caller is not a owner'); + ).to.be.revertedWith('Ownable: caller is not the owner'); }); it('Should revert with the right error if not a positive number', async function () { @@ -656,7 +656,7 @@ describe('Staking', function () { escrowAddress, slashedTokens ) - ).to.be.revertedWith('Caller is not a owner'); + ).to.be.revertedWith('Ownable: caller is not the owner'); }); it('Should revert with the right error if invalid address', async function () { diff --git a/packages/sdk/typescript/human-protocol-sdk/jest.config.ts b/packages/sdk/typescript/human-protocol-sdk/jest.config.ts index 809175f688..7addd5c0d9 100644 --- a/packages/sdk/typescript/human-protocol-sdk/jest.config.ts +++ b/packages/sdk/typescript/human-protocol-sdk/jest.config.ts @@ -1,4 +1,5 @@ export default { preset: 'ts-jest', testEnvironment: 'node', + testTimeout: 10000, }; From ab5e7742ee3944fd4b03099b111cb4234c2fe499 Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Tue, 20 Dec 2022 10:08:52 -0500 Subject: [PATCH 032/216] Remove counter from Launched event (#83) * feat: Add staking/slashing mechanism (#58) * staking/reward pool smnart contract * update core version and fix python sdk check script * fix test script for sdk * integrate fortune with staking and slashing * update fortune tests for staking and slashing * fix lint * node.js sdk change * update smart contracts * fix core contract tests * fix deploy script * remove role from smart contract * fix typescript sdk * fix python sdk and doctest * fix python sdk test * fix fortune test * fix subgraph test * update dep * remove max len from eslint * update escrow dashboard dep * fix fortune test * fix fortune test * fix sdk version * update subgraph dep version * approve staker not necessary any more * undo modified script my mistake * remove dead code from smart contract * update unstake logic * revert escrow test changes * use Ownable * remove bash script for test * increase time limit for sdk test and fix core test failing Co-authored-by: portuu3 * Revert "feat: Add staking/slashing mechanism (#58)" This reverts commit 25ba622a5ae1d5116522d7894b2724aeb36f89ef. * remove counter from Launched event Co-authored-by: portuu3 Co-authored-by: portuu3 <61605646+portuu3@users.noreply.github.com> --- packages/core/contracts/EscrowFactory.sol | 4 ++-- packages/core/test/EscrowFactory.ts | 5 +---- packages/core/test/RewardPool.ts | 2 -- packages/core/test/Staking.ts | 5 ----- 4 files changed, 3 insertions(+), 13 deletions(-) diff --git a/packages/core/contracts/EscrowFactory.sol b/packages/core/contracts/EscrowFactory.sol index 74d789568c..90b3c56c2c 100644 --- a/packages/core/contracts/EscrowFactory.sol +++ b/packages/core/contracts/EscrowFactory.sol @@ -15,7 +15,7 @@ contract EscrowFactory { address public lastEscrow; address public eip20; address public staking; - event Launched(address eip20, address escrow, uint256 counter); + event Launched(address eip20, address escrow); constructor(address _eip20, address _staking) { require(_eip20 != address(0), ERROR_ZERO_ADDRESS); @@ -44,7 +44,7 @@ contract EscrowFactory { counter++; escrowCounters[address(escrow)] = counter; lastEscrow = address(escrow); - emit Launched(eip20, lastEscrow, counter); + emit Launched(eip20, lastEscrow); return lastEscrow; } diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 0e617a89eb..8b16a77aa2 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -87,7 +87,6 @@ describe('EscrowFactory', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); }); it('Should emit an event on launched', async function () { @@ -95,7 +94,7 @@ describe('EscrowFactory', function () { await expect(escrowFactory.connect(operator).createEscrow(trustedHandlers)) .to.emit(escrowFactory, 'Launched') - .withArgs(token.address, anyValue, 1); + .withArgs(token.address, anyValue); }); it('Should find the newly created escrow from deployed escrow', async () => { @@ -120,7 +119,6 @@ describe('EscrowFactory', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('2', 'counter is correct'); }); it('Operator should not be able to create an escrow after allocating all of the stakes', async () => { @@ -146,6 +144,5 @@ describe('EscrowFactory', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('2', 'counter is correct'); }); }); diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index fd76b10a3d..f12c009f61 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -123,7 +123,6 @@ describe('RewardPool', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); escrowAddress = event?.escrow; @@ -210,7 +209,6 @@ describe('RewardPool', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); escrowAddress = event?.escrow; diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index d3f09a914a..3c563d32c6 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -227,7 +227,6 @@ describe('Staking', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); escrowAddress = event?.escrow; }); @@ -324,7 +323,6 @@ describe('Staking', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); }); describe('Withdrawal without allocation', function () { @@ -518,7 +516,6 @@ describe('Staking', function () { 'token address is correct' ); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); escrowAddress = event?.escrow; }); @@ -583,7 +580,6 @@ describe('Staking', function () { 'token address is correct' ); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); escrowAddress = event?.escrow; @@ -638,7 +634,6 @@ describe('Staking', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; - expect(event?.counter.toString()).to.equal('1', 'counter is correct'); escrowAddress = event?.escrow; From 1ed86ca726fe2d513838f77b283cdbc3557d47fe Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Tue, 20 Dec 2022 17:55:21 -0500 Subject: [PATCH 033/216] revert escrow dashboard change --- packages/apps/escrow-dashboard/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/apps/escrow-dashboard/package.json b/packages/apps/escrow-dashboard/package.json index 64d83ac2ea..a440df3937 100644 --- a/packages/apps/escrow-dashboard/package.json +++ b/packages/apps/escrow-dashboard/package.json @@ -7,7 +7,7 @@ "dependencies": { "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", - "@human-protocol/core": "workspace:*", + "@human-protocol/core": "^1.0.10", "@mui/icons-material": "^5.10.14", "@mui/material": "^5.10.14", "@mui/styles": "^5.10.14", From df9d82a6abb067bdcbd5e64902b329e28f03575f Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Tue, 20 Dec 2022 22:03:17 -0500 Subject: [PATCH 034/216] ability to allocate / close allocation from the job --- packages/core/contracts/Staking.sol | 2 +- packages/core/scripts/deploy.ts | 12 +- packages/sdk/python/human_protocol_sdk/job.py | 239 +++++++++++++----- .../test/human_protocol_sdk/test_job.py | 4 +- .../human-protocol-sdk/package.json | 2 +- .../typescript/human-protocol-sdk/src/job.ts | 193 ++++++++++---- .../human-protocol-sdk/test/job.test.ts | 117 ++++++++- 7 files changed, 434 insertions(+), 135 deletions(-) diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index 7cde9c4973..bd607c75cc 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -253,7 +253,7 @@ contract Staking is IStaking, Ownable { } if ( - allocation.closedAt > 0 && + allocation.closedAt == 0 && escrowStatus == IEscrow.EscrowStatuses.Complete ) { return AllocationState.Completed; diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index a171d60fce..c08c857058 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -2,7 +2,7 @@ import { ethers } from 'hardhat'; async function main() { - const [, , , launcher] = await ethers.getSigners(); + const [, ...accounts] = await ethers.getSigners(); const HMToken = await ethers.getContractFactory('HMToken'); const HMTokenContract = await HMToken.deploy( 1000000000, @@ -45,10 +45,12 @@ async function main() { // Configure RewardPool in Staking await stakingContract.setRewardPool(rewardPoolContract.address); - await HMTokenContract.transfer( - launcher.address, - ethers.utils.parseEther('1000') - ); + for (const account of accounts) { + await HMTokenContract.transfer( + account.address, + ethers.utils.parseEther('1000') + ); + } } main().catch((error) => { diff --git a/packages/sdk/python/human_protocol_sdk/job.py b/packages/sdk/python/human_protocol_sdk/job.py index 6781266b46..fa9486fe8e 100644 --- a/packages/sdk/python/human_protocol_sdk/job.py +++ b/packages/sdk/python/human_protocol_sdk/job.py @@ -326,7 +326,7 @@ def launch(self, pub_key: bytes) -> bool: >>> job.gas_payer_priv = "657b6497a355a3982928d5515d48a84870f057c4d16923eb1d104c0afada9aa8" >>> job.multi_credentials = [("0x70997970C51812dc3A010C7d01b50e0d17dc79C8", "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"), ("0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", "5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a")] - >>> job.stake(1) + >>> job.stake(1, "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC") True >>> job.launch(rep_oracle_pub_key) True @@ -1057,7 +1057,7 @@ def complete( return self.status() == Status.Complete - def stake(self, amount: Decimal) -> bool: + def stake(self, amount: Decimal, staker: Optional[str] = None) -> bool: """Stakes HMT token. >>> credentials = { @@ -1074,11 +1074,17 @@ def stake(self, amount: Decimal) -> bool: Args: amount (Decimal): Amount to stake + staker (Optional[str]): Operator to stake Returns: bool: returns True if staking succeeds. """ - w3 = get_w3(self.hmt_server_addr) + operator = self._find_operator(staker) + + if not operator: + LOG.exception(f"Unknown wallet") + + (gas_payer, gas_payer_priv) = operator # Approve HMT hmtoken_contract = get_hmtoken(self.hmtoken_addr, self.hmt_server_addr) @@ -1086,36 +1092,25 @@ def stake(self, amount: Decimal) -> bool: txn_event = "Approving HMT" txn_func = hmtoken_contract.functions.approve txn_info = { - "gas_payer": self.gas_payer, - "gas_payer_priv": self.gas_payer_priv, + "gas_payer": gas_payer, + "gas_payer_priv": gas_payer_priv, "gas": self.gas, "hmt_server_addr": self.hmt_server_addr, } func_args = [self.staking_addr, amount] - hmt_approved = False try: handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) - hmt_approved = True except Exception as e: - LOG.info( - f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}. Using secondary ones..." - ) - if not hmt_approved: - raffle_txn_res = self._raffle_txn( - self.multi_credentials, txn_func, func_args, txn_event + LOG.exception( + f"{txn_event} failed from operator: {gas_payer}, {gas_payer_priv} due to {e}." ) - hmt_approved = raffle_txn_res["txn_succeeded"] - - # give up - if not hmt_approved: - LOG.exception(f"{txn_event} failed with all credentials.") txn_event = "Staking" txn_func = self.staking_contract.functions.stake txn_info = { - "gas_payer": self.gas_payer, - "gas_payer_priv": self.gas_payer_priv, + "gas_payer": gas_payer, + "gas_payer_priv": gas_payer_priv, "gas": self.gas, "hmt_server_addr": self.hmt_server_addr, } @@ -1126,21 +1121,11 @@ def stake(self, amount: Decimal) -> bool: handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) return True except Exception as e: - LOG.info( - f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}. Using secondary ones..." + LOG.exception( + f"{txn_event} failed from operator: {gas_payer}, {gas_payer_priv} due to {e}." ) - raffle_txn_res = self._raffle_txn( - self.multi_credentials, txn_func, func_args, txn_event - ) - staked = raffle_txn_res["txn_succeeded"] - - if not staked: - LOG.exception(f"{txn_event} failed with all credentials.") - - return True - - def unstake(self, amount: Decimal) -> bool: + def unstake(self, amount: Decimal, staker: Optional[str] = None) -> bool: """Unstakes HMT token. >>> credentials = { @@ -1160,16 +1145,23 @@ def unstake(self, amount: Decimal) -> bool: Args: amount (Decimal): Amount to unstake + staker (Optional[str]): Operator to unstake Returns: bool: returns True if unstaking succeeds. """ - w3 = get_w3(self.hmt_server_addr) + operator = self._find_operator(staker) + + if not operator: + LOG.exception(f"Unknown wallet") + + (gas_payer, gas_payer_priv) = operator + txn_event = "Staking" txn_func = self.staking_contract.functions.unstake txn_info = { - "gas_payer": self.gas_payer, - "gas_payer_priv": self.gas_payer_priv, + "gas_payer": gas_payer, + "gas_payer_priv": gas_payer_priv, "gas": self.gas, "hmt_server_addr": self.hmt_server_addr, } @@ -1178,24 +1170,13 @@ def unstake(self, amount: Decimal) -> bool: try: handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) - # After abort the contract should be destroyed - return w3.eth.getCode(self.job_contract.address) == b"" + return True except Exception as e: - LOG.info( - f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}. Using secondary ones..." + LOG.exception( + f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}." ) - raffle_txn_res = self._raffle_txn( - self.multi_credentials, txn_func, func_args, txn_event - ) - unstaked = raffle_txn_res["txn_succeeded"] - - if not unstaked: - LOG.exception(f"{txn_event} failed with all credentials.") - - return True - - def withdraw(self, amount: Decimal) -> bool: + def withdraw(self, amount: Decimal, staker: Optional[str] = None) -> bool: """Withdraws HMT token. >>> credentials = { @@ -1217,16 +1198,23 @@ def withdraw(self, amount: Decimal) -> bool: Args: amount (Decimal): Amount to withdraw + staker (Optional[str]): Operator to withdraw Returns: bool: returns True if withdrawing succeeds. """ - w3 = get_w3(self.hmt_server_addr) + operator = self._find_operator(staker) + + if not operator: + LOG.exception(f"Unknown wallet") + + (gas_payer, gas_payer_priv) = operator + txn_event = "Staking" txn_func = self.staking_contract.functions.withdraw txn_info = { - "gas_payer": self.gas_payer, - "gas_payer_priv": self.gas_payer_priv, + "gas_payer": gas_payer, + "gas_payer_priv": gas_payer_priv, "gas": self.gas, "hmt_server_addr": self.hmt_server_addr, } @@ -1235,22 +1223,126 @@ def withdraw(self, amount: Decimal) -> bool: try: handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) - # After abort the contract should be destroyed - return w3.eth.getCode(self.job_contract.address) == b"" + return True except Exception as e: - LOG.info( - f"{txn_event} failed with main credentials: {self.gas_payer}, {self.gas_payer_priv} due to {e}. Using secondary ones..." + LOG.exception( + f"{txn_event} failed from operator: {gas_payer}, {gas_payer_priv} due to {e}." ) - raffle_txn_res = self._raffle_txn( - self.multi_credentials, txn_func, func_args, txn_event - ) - withdrawn = raffle_txn_res["txn_succeeded"] + def allocate(self, amount: Decimal, staker: Optional[str] = None) -> bool: + """Allocates HMT token to the escrow. - if not withdrawn: - LOG.exception(f"{txn_event} failed with all credentials.") + >>> credentials = { + ... "gas_payer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + ... "gas_payer_priv": "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" + ... } + >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" + >>> from test.human_protocol_sdk.utils import manifest + >>> job = Job(credentials, manifest) - return True + >>> job.stake(1) + True + >>> job.launch(rep_oracle_pub_key) + True + >>> job.setup() + True + + >>> job.allocate(1) + True + + Args: + amount (Decimal): Amount to allocate + staker (Optional[str]): Operator to allocate + + Returns: + bool: returns True if allocating succeeds. + """ + operator = self._find_operator(staker) + + if not operator: + LOG.exception(f"Unknown wallet") + + (gas_payer, gas_payer_priv) = operator + + txn_event = "Staking" + txn_func = self.staking_contract.functions.allocate + txn_info = { + "gas_payer": gas_payer, + "gas_payer_priv": gas_payer_priv, + "gas": self.gas, + "hmt_server_addr": self.hmt_server_addr, + } + + func_args = [self.job_contract.address, amount] + + try: + handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) + return True + except Exception as e: + LOG.exception( + f"{txn_event} failed from operator: {gas_payer}, {gas_payer_priv} due to {e}." + ) + + def closeAllocation(self, staker: Optional[str] = None) -> bool: + """Close allocation of HMT token from the escrow. + + >>> credentials = { + ... "gas_payer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + ... "gas_payer_priv": "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" + ... } + >>> rep_oracle_pub_key = b"8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5" + >>> from test.human_protocol_sdk.utils import manifest + >>> job = Job(credentials, manifest) + + >>> job.stake(1) + True + >>> job.launch(rep_oracle_pub_key) + True + >>> job.setup() + True + >>> job.allocate(1) + True + >>> payouts = [("0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", Decimal('100.0'))] + >>> job.bulk_payout(payouts, {}, rep_oracle_pub_key) + True + >>> job.complete() + True + + >>> job.closeAllocation() + True + + Args: + amount (Decimal): Amount to close allocation + staker (Optional[str]): Operator to close allocation + + Returns: + bool: returns True if closing allocation succeeds. + """ + operator = self._find_operator(staker) + + if not operator: + LOG.exception(f"Unknown wallet") + + (gas_payer, gas_payer_priv) = operator + + txn_event = "Staking" + txn_func = self.staking_contract.functions.closeAllocation + txn_info = { + "gas_payer": gas_payer, + "gas_payer_priv": gas_payer_priv, + "gas": self.gas, + "hmt_server_addr": self.hmt_server_addr, + } + + func_args = [self.job_contract.address] + + try: + handle_transaction_with_retry(txn_func, self.retry, *func_args, **txn_info) + return True + except Exception as e: + LOG.exception( + f"{txn_event} failed from operator: {gas_payer}, {gas_payer_priv} due to {e}." + ) def status(self) -> Enum: """Returns the status of the Job. @@ -1841,3 +1933,20 @@ def _check_transfer_event(self, tx_receipt: Optional[TxReceipt]) -> bool: if TRANSFER_EVENT == topic: return True return False + + def _find_operator(self, addr: Optional[str]) -> Tuple[str, str] | None: + """ + Find the operator to execute the transaction from trusted wallets. + + Args: + addr (Optional[str]): Operator address to find. + + Returns: + Tuple(str, str) | None: returns (gas_payer, gas_payer_privkey) if found, otherwise returns None. + """ + if not addr or addr == self.gas_payer: + return (self.gas_payer, self.gas_payer_priv) + for gas_payer, gas_payer_priv in self.multi_credentials: + if gas_payer == addr: + return (gas_payer, gas_payer_priv) + return None diff --git a/packages/sdk/python/test/human_protocol_sdk/test_job.py b/packages/sdk/python/test/human_protocol_sdk/test_job.py index 4ba2bb52bd..0854b76b10 100644 --- a/packages/sdk/python/test/human_protocol_sdk/test_job.py +++ b/packages/sdk/python/test/human_protocol_sdk/test_job.py @@ -130,7 +130,7 @@ def test_job_launch(self): "5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a", ), ] - self.assertTrue(self.job.stake(1)) + self.assertTrue(self.job.stake(1, "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC")) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertEqual(self.job.status(), Status(1)) @@ -159,7 +159,7 @@ def test_job_setup(self): ), ] self.job = Job(self.credentials, manifest, multi_credentials=multi_credentials) - self.assertTrue(self.job.stake(1)) + self.assertTrue(self.job.stake(1, "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC")) self.assertTrue(self.job.launch(self.rep_oracle_pub_key)) self.assertTrue(self.job.setup()) diff --git a/packages/sdk/typescript/human-protocol-sdk/package.json b/packages/sdk/typescript/human-protocol-sdk/package.json index 426b2b0890..4bd23e9bc8 100644 --- a/packages/sdk/typescript/human-protocol-sdk/package.json +++ b/packages/sdk/typescript/human-protocol-sdk/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/sdk", "description": "Human Protocol SDK", - "version": "1.0.2", + "version": "1.0.3", "files": [ "src", "dist", diff --git a/packages/sdk/typescript/human-protocol-sdk/src/job.ts b/packages/sdk/typescript/human-protocol-sdk/src/job.ts index 98c36cb83d..b1baba45d8 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/job.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/job.ts @@ -315,27 +315,32 @@ export class Job { this._logger.info('Launching escrow...'); - const txReceipt = await this.contractData?.factory?.createEscrow( - this.providerData?.trustedHandlers?.map( - (trustedHandler) => trustedHandler.address - ) || [] - ); + try { + const txReceipt = await this.contractData?.factory?.createEscrow( + this.providerData?.trustedHandlers?.map( + (trustedHandler) => trustedHandler.address + ) || [] + ); - const txResponse = await txReceipt?.wait(); + const txResponse = await txReceipt?.wait(); - const event = txResponse?.events?.find( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (event: any) => event.event === 'Launched' - ); + const event = txResponse?.events?.find( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (event: any) => event.event === 'Launched' + ); - const escrowAddr = event?.args?.[1]; - this._logger.info(`Escrow is deployed at ${escrowAddr}.`); + const escrowAddr = event?.args?.[1]; + this._logger.info(`Escrow is deployed at ${escrowAddr}.`); - this.contractData.escrowAddr = escrowAddr; - this.contractData.escrow = await getEscrow( - escrowAddr, - this.providerData?.gasPayer - ); + this.contractData.escrowAddr = escrowAddr; + this.contractData.escrow = await getEscrow( + escrowAddr, + this.providerData?.gasPayer + ); + } catch { + this._logError(new Error('Error creating escrow...')); + return false; + } return ( (await this.status()) == EscrowStatus.Launched && @@ -679,9 +684,10 @@ export class Job { * **Stake HMTokens** * * @param {number} amount - Amount to stake + * @param {string | undefined} from - Address to stake * @returns {Promise} - True if the token is staked */ - async stake(amount: number) { + async stake(amount: number, from?: string) { if (!this.contractData?.staking) { this._logError(ErrorStakingMissing); return false; @@ -691,63 +697,104 @@ export class Job { return false; } - const approved = await this.contractData.hmToken.approve( - this.contractData.staking.address, - toFullDigit(amount) - ); + const operator = this._findOperator(from); + + if (!operator) { + this._logError(new Error('Unknown wallet')); + return false; + } - if (!approved) { + try { + const approved = await this.contractData.hmToken + .connect(operator) + .approve(this.contractData.staking.address, toFullDigit(amount)); + + if (!approved) { + throw new Error('Not approved'); + } + } catch { this._logError(new Error('Error approving HMTokens for staking')); return false; } - return await this._raffleExecute( - this.contractData.staking, - 'stake', - toFullDigit(amount) - ); + try { + await this.contractData.staking + .connect(operator) + .stake(toFullDigit(amount)); + } catch { + this._logError(new Error(`Error executing transaction from ${from}`)); + return false; + } + return true; } /** * **Unstake HMTokens** * * @param {number} amount - Amount to unstake + * @param {string | undefined} from - Address to unstake * @returns {Promise} - True if the token is unstaked */ - async unstake(amount: number) { + async unstake(amount: number, from?: string) { if (!this.contractData?.staking) { this._logError(ErrorStakingMissing); return false; } - return await this._raffleExecute( - this.contractData.staking, - 'unstake', - toFullDigit(amount) - ); + const operator = this._findOperator(from); + + if (!operator) { + this._logError(new Error('Unknown wallet')); + return false; + } + + try { + await this.contractData.staking + .connect(operator) + .unstake(toFullDigit(amount)); + } catch { + this._logError(new Error(`Error executing transaction from ${from}`)); + return false; + } + return true; } /** * **Withdraw unstaked HMTokens** * + * @param {string | undefined} from - Address to withdraw * @returns {Promise} - True if the token is withdrawn */ - async withdraw() { + async withdraw(from?: string) { if (!this.contractData?.staking) { this._logError(ErrorStakingMissing); return false; } - return await this._raffleExecute(this.contractData.staking, 'withdraw'); + const operator = this._findOperator(from); + + if (!operator) { + this._logError(new Error('Unknown wallet')); + return false; + } + + try { + await this.contractData.staking.connect(operator).withdraw(); + } catch { + this._logError(new Error(`Error executing transaction from ${from}`)); + return false; + } + return true; } /** * **Allocate HMTokens staked to the job** * - * @param amount - Amount to allocate + * @param {number} amount - Amount to allocate + * @param {string | undefined} - Address to allocate with * @returns {Promise} - True if the token is allocated */ - async allocate(amount: number) { + async allocate(amount: number, from?: string) { if (!this.contractData?.staking) { this._logError(ErrorStakingMissing); return false; @@ -758,20 +805,31 @@ export class Job { return false; } - return await this._raffleExecute( - this.contractData.staking, - 'allocate', - this.contractData.escrowAddr, - toFullDigit(amount) - ); + const operator = this._findOperator(from); + + if (!operator) { + this._logError(new Error('Unknown wallet')); + return false; + } + + try { + await this.contractData.staking + .connect(operator) + .allocate(this.contractData.escrowAddr, toFullDigit(amount)); + } catch { + this._logError(new Error(`Error executing transaction from ${from}`)); + return false; + } + return true; } /** * **Unallocate HMTokens from the job** * + * @param {string | undefined} - Address to close allocation with * @returns {Promise} - True if the token is unallocated. */ - async closeAllocation() { + async closeAllocation(from?: string) { if (!this.contractData?.staking) { this._logError(ErrorStakingMissing); return false; @@ -782,11 +840,22 @@ export class Job { return false; } - return await this._raffleExecute( - this.contractData.staking, - 'closeAllocation', - this.contractData.escrowAddr - ); + const operator = this._findOperator(from); + + if (!operator) { + this._logError(new Error('Unknown wallet')); + return false; + } + + try { + await this.contractData.staking + .connect(operator) + .closeAllocation(this.contractData.escrowAddr); + } catch { + this._logError(new Error(`Error executing transaction from ${from}`)); + return false; + } + return true; } /** @@ -959,8 +1028,10 @@ export class Job { await contract.connect(trustedHandler).functions[functionName](...args); return true; } catch (err) { - new Error( - 'Error executing the transaction from all of the trusted handlers. Stop continue executing...' + this._logError( + new Error( + 'Error executing the transaction from all of the trusted handlers. Stop continue executing...' + ) ); } } @@ -969,9 +1040,25 @@ export class Job { /** * **Error log** + * * @param {Error} error - Occured error */ - private async _logError(error: Error) { + private _logError(error: Error) { this._logger.error(error.message); } + + /** + * **Find operator to execute tx** + * + * @param {string} addr - Address of the operator + * @returns {ethers.Wallet | undefined} - Operator wallet + */ + private _findOperator(addr?: string): ethers.Wallet | undefined { + return addr + ? [ + this.providerData?.gasPayer, + ...(this.providerData?.trustedHandlers || []), + ].find((account?: ethers.Wallet) => account?.address === addr) + : this.providerData?.gasPayer; + } } diff --git a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts index ee2b762ec1..fe2b866f15 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts @@ -32,7 +32,6 @@ jest.mock('../src/storage', () => ({ const setupJob = async (job: Job) => { await job.initialize(); - await job.stake(1); await job.launch(); await job.setup(); }; @@ -64,10 +63,9 @@ describe('Test Job', () => { }); it('Should be able to launch the job after staking', async () => { - // Fail to launch the job before initialization + expect(await job.initialize()).toBe(true); expect(await job.launch()).toBe(false); - await job.initialize(); await job.stake(1); expect(await job.launch()).toBe(true); @@ -79,8 +77,6 @@ describe('Test Job', () => { expect(await job.setup()).toBe(false); await job.initialize(); - await job.stake(1); - await job.launch(); expect(await job.setup()).toBe(true); @@ -88,8 +84,6 @@ describe('Test Job', () => { it('Should be able to add trusted handlers', async () => { await job.initialize(); - await job.stake(1); - await job.launch(); expect(await job.isTrustedHandler(DEFAULT_GAS_PAYER_ADDR)).toBe(true); @@ -371,6 +365,81 @@ describe('Test Job', () => { expect(await job.cancel()).toBe(false); }); + + it('Should be able to allocate token to the job', async () => { + await job.initialize(); + + expect(await job.launch()).toBe(true); + expect(await job.status()).toBe(EscrowStatus.Launched); + + expect(await job.allocate(1)).toBe(true); + }); + + it('Should be able to launch another job after allocating portion of the stake', async () => { + await job.initialize(); + await job.stake(2); + + expect(await job.launch()).toBe(true); + expect(await job.status()).toBe(EscrowStatus.Launched); + + expect(await job.allocate(1)).toBe(true); + + const newJob = new Job({ + gasPayer: DEFAULT_GAS_PAYER_PRIVKEY, + reputationOracle: REPUTATION_ORACLE_PRIVKEY, + manifest: manifest, + hmTokenAddr: DEFAULT_HMTOKEN_ADDR, + stakingAddr: DEFAULT_STAKING_ADDR, + logLevel: 'error', + }); + + await newJob.initialize(); + expect(await newJob.launch()).toBe(true); + }); + + it('Should not be able to launch another job after allocating all of the stake', async () => { + await job.initialize(); + + expect(await job.launch()).toBe(true); + expect(await job.status()).toBe(EscrowStatus.Launched); + + expect(await job.allocate(1)).toBe(true); + + const newJob = new Job({ + gasPayer: DEFAULT_GAS_PAYER_PRIVKEY, + reputationOracle: REPUTATION_ORACLE_PRIVKEY, + manifest: manifest, + hmTokenAddr: DEFAULT_HMTOKEN_ADDR, + stakingAddr: DEFAULT_STAKING_ADDR, + logLevel: 'error', + }); + + await newJob.initialize(); + expect(await newJob.launch()).toBe(false); + }); + + it('Should be able to launch another job after staking more tokens', async () => { + await job.initialize(); + await job.stake(1); + + expect(await job.launch()).toBe(true); + expect(await job.status()).toBe(EscrowStatus.Launched); + + expect(await job.allocate(1)).toBe(true); + + const newJob = new Job({ + gasPayer: DEFAULT_GAS_PAYER_PRIVKEY, + reputationOracle: REPUTATION_ORACLE_PRIVKEY, + manifest: manifest, + hmTokenAddr: DEFAULT_HMTOKEN_ADDR, + stakingAddr: DEFAULT_STAKING_ADDR, + logLevel: 'error', + }); + + await newJob.initialize(); + await newJob.stake(1); + expect(await newJob.launch()).toBe(true); + }); }); describe('Access existing job from trusted handler', () => { @@ -387,7 +456,10 @@ describe('Test Job', () => { logLevel: 'error', }); - await setupJob(originalJob); + await originalJob.initialize(); + await originalJob.launch(); + await originalJob.stake(1); + await originalJob.setup(); job = new Job({ gasPayer: NOT_TRUSTED_OPERATOR_PRIVKEY, @@ -712,5 +784,34 @@ describe('Test Job', () => { expect(await job.cancel()).toBe(false); }); + + it('Should not be able to allocate to job without staking', async () => { + await job.initialize(); + expect(await job.allocate(1, TRUSTED_OPERATOR1_ADDR)).toBe(false); + }); + + it('Should be able to allocate to job after staking', async () => { + await job.initialize(); + await job.stake(1, TRUSTED_OPERATOR1_ADDR); + + expect(await job.allocate(1, TRUSTED_OPERATOR1_ADDR)).toBe(true); + }); + + it('Should be able to launch another job after staking', async () => { + await job.initialize(); + await job.stake(1, TRUSTED_OPERATOR1_ADDR); + + const newJob = new Job({ + gasPayer: TRUSTED_OPERATOR1_PRIVKEY, + reputationOracle: REPUTATION_ORACLE_PRIVKEY, + manifest: manifest, + hmTokenAddr: DEFAULT_HMTOKEN_ADDR, + stakingAddr: DEFAULT_STAKING_ADDR, + logLevel: 'error', + }); + + await newJob.initialize(); + expect(await newJob.launch()).toBe(true); + }); }); }); From d3669cf03deae21396184b02b63bcd4b59e4cbbb Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 21 Dec 2022 21:15:48 -0500 Subject: [PATCH 035/216] use fixed version of core in escrow hashboard --- packages/apps/escrow-dashboard/package.json | 2 +- .../src/hooks/useBitfinexTicker/index.ts | 2 - yarn.lock | 442 +++++++++--------- 3 files changed, 229 insertions(+), 217 deletions(-) diff --git a/packages/apps/escrow-dashboard/package.json b/packages/apps/escrow-dashboard/package.json index a440df3937..0bc533d3ef 100644 --- a/packages/apps/escrow-dashboard/package.json +++ b/packages/apps/escrow-dashboard/package.json @@ -7,7 +7,7 @@ "dependencies": { "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", - "@human-protocol/core": "^1.0.10", + "@human-protocol/core": "1.0.10", "@mui/icons-material": "^5.10.14", "@mui/material": "^5.10.14", "@mui/styles": "^5.10.14", diff --git a/packages/apps/escrow-dashboard/src/hooks/useBitfinexTicker/index.ts b/packages/apps/escrow-dashboard/src/hooks/useBitfinexTicker/index.ts index ec3c7c20d7..6a4703fdb0 100644 --- a/packages/apps/escrow-dashboard/src/hooks/useBitfinexTicker/index.ts +++ b/packages/apps/escrow-dashboard/src/hooks/useBitfinexTicker/index.ts @@ -1,5 +1,3 @@ -/* eslint-disable camelcase */ -import HMTokenABI from '@human-protocol/core/abis/HMToken.json'; import axios from 'axios'; import { useEffect, useState } from 'react'; diff --git a/yarn.lock b/yarn.lock index d2450b0a93..d3f1b9d0b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1099,12 +1099,12 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@coinbase/wallet-sdk@^3.3.0": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.2.tgz#e8633001136e0236a746f6462c0dff2f881db343" - integrity sha512-HzxajB+qS+G9//c+th5uJ8KSt+jQ6/U+cgL9Sv89Wx6Mif+Lg5HxGtc6JQcIdHuYk9AFX+nXNSXtTGRdpHkdDg== + version "3.6.3" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.3.tgz#fd96f6f19d5a0090520c1b014ad4737bbc8e1267" + integrity sha512-XUR4poOJE+dKzwBTdlM693CdLFitr046oZOVY3iDnbFcRrrQswhbDji7q4CmUcD4HxbfViX7PFoIwl79YQcukg== dependencies: "@metamask/safe-event-emitter" "2.0.0" - "@solana/web3.js" "1.52.0" + "@solana/web3.js" "^1.70.1" bind-decorator "^1.0.11" bn.js "^5.1.1" buffer "^6.0.3" @@ -1383,15 +1383,15 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== -"@eslint/eslintrc@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== +"@eslint/eslintrc@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.0.tgz#8ec64e0df3e7a1971ee1ff5158da87389f167a63" + integrity sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.4.0" - globals "^13.15.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -1670,7 +1670,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.5.0", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -1872,10 +1872,10 @@ tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/delegate@9.0.20": - version "9.0.20" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.20.tgz#0e5ff025b786420ed3c48eb81509678da8062bbd" - integrity sha512-m/de++kSxa/JABQ15tyt6SMlc4qfl3MgFFWmwbPcWgJxlAvZ7oIdGXcUvU6VJcXiyXfo6MZ/zr4V2E2UwMehew== +"@graphql-tools/delegate@9.0.21": + version "9.0.21" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.21.tgz#914d59e6a10457fe1ddcac9270336648cfa8ca58" + integrity sha512-SM8tFeq6ogFGhIxDE82WTS44/3IQ/wz9QksAKT7xWkcICQnyR9U6Qyt+W7VGnHiybqNsVK3kHNNS/i4KGSF85g== dependencies: "@graphql-tools/batch-execute" "8.5.14" "@graphql-tools/executor" "0.0.11" @@ -2005,17 +2005,17 @@ value-or-promise "1.0.11" "@graphql-tools/url-loader@^7.9.7": - version "7.16.26" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.26.tgz#5bc78038ab21331c51b48b3bd9b5264ea3533bc1" - integrity sha512-mrbFhShlthSdvMD3GPeKYxUt54CBUteN0eR6WgJJSXibycTSA6h0LAn6iyCAg+uUsBP/KR6GcjvQHifl00Q7rQ== + version "7.16.28" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.28.tgz#c4e3c991e1174cc1d81b28d403083eb4b59c495e" + integrity sha512-C3Qmpr5g3aNf7yKbfqSEmNEoPNkY4kpm+K1FyuGQw8N6ZKdq/70VPL8beSfqE1e2CTJua95pLQCpSD9ZsWfUEg== dependencies: "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/delegate" "9.0.20" + "@graphql-tools/delegate" "9.0.21" "@graphql-tools/executor-graphql-ws" "0.0.5" "@graphql-tools/executor-http" "0.0.7" "@graphql-tools/executor-legacy-ws" "0.0.5" "@graphql-tools/utils" "9.1.3" - "@graphql-tools/wrap" "9.2.21" + "@graphql-tools/wrap" "9.2.23" "@types/ws" "^8.0.0" "@whatwg-node/fetch" "^0.5.0" isomorphic-ws "5.0.0" @@ -2037,12 +2037,12 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/wrap@9.2.21": - version "9.2.21" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.21.tgz#a4685dc1a9bd4167ca276f9fbd9576286651cb88" - integrity sha512-h4S9x9Rh8aSKkBGv+nq43Z0qK7CH8ySl+9RDO0MluscWlqNNECJ34FytwPVd8sXSrS7JwgwmVNcT51EH1n0wRw== +"@graphql-tools/wrap@9.2.23": + version "9.2.23" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.23.tgz#fb008d8d7b493aeb6b6b0821dff45c0129aed2eb" + integrity sha512-R+ar8lHdSnRQtfvkwQMOkBRlYLcBPdmFzZPiAj+tL9Nii4VNr4Oub37jcHiPBvRZSdKa9FHcKq5kKSQcbg1xuQ== dependencies: - "@graphql-tools/delegate" "9.0.20" + "@graphql-tools/delegate" "9.0.21" "@graphql-tools/schema" "9.0.12" "@graphql-tools/utils" "9.1.3" tslib "^2.4.0" @@ -2053,12 +2053,17 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== +"@human-protocol/core@1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.10.tgz#946bc87cd8f8cf0eae5b410c27d227c0de5d599f" + integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== + "@human-protocol/core@workspace:*": version "1.0.11" resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.11.tgz#9d7f2ffbc3386bd1aa53a1910c10c080575f9dfc" integrity sha512-zJdG4kr5gZeWsfvJmKYrGfBLnMzg1LerySThLRE6TK8r+DkvXGUdAX24a7zuAu9rIcNXLkRzFPmAbd8IanZnTg== -"@humanwhocodes/config-array@^0.11.6": +"@humanwhocodes/config-array@^0.11.8": version "0.11.8" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== @@ -2634,24 +2639,24 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@mui/base@5.0.0-alpha.110": - version "5.0.0-alpha.110" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.110.tgz#61174f64b23e667387708b2cbb31339e58c714cf" - integrity sha512-q4TH9T3sTBknTXXTEf2zO8F3nbHg5iGgiaRx9XErTbXvHrmLrQXbQ4hmrLERocSTBFCFWkKyne/qZj0diWlPtA== +"@mui/base@5.0.0-alpha.111": + version "5.0.0-alpha.111" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.111.tgz#fffec7f6393fc45c0d3a200ee5820820a4b92403" + integrity sha512-2wfIPpl97S4dPzD0QOM3UIzQ/EuXCYQvHmXxTpfKxev/cfkzOe7Ik/McoYUBbtM1bSOqH3W276R/L2LF9cyXqQ== dependencies: "@babel/runtime" "^7.20.6" "@emotion/is-prop-valid" "^1.2.0" "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.0" + "@mui/utils" "^5.11.1" "@popperjs/core" "^2.11.6" clsx "^1.2.1" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.11.0": - version "5.11.0" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.0.tgz#7ae98a3df113270097f3024c713c4efce5537c6a" - integrity sha512-Bmogung451ezVv2YI1RvweOIVsTj2RQ4Fk61+e/+8LFPLTFEwVGbL0YhNy1VB5tri8pzGNV228kxtWVTFooQkg== +"@mui/core-downloads-tracker@^5.11.1": + version "5.11.1" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.1.tgz#5130682392203916bd9d947bac35dfd38f533654" + integrity sha512-QVqVNlZ2K+LqUDE5kFgYd0r4KekR/dv2cNYbAutQWbfOA8VPVUVrDz0ELrEcoe8TjM/CwnsmGvaDh/YSNl/ALA== "@mui/icons-material@^5.10.14", "@mui/icons-material@^5.10.6": version "5.11.0" @@ -2661,16 +2666,16 @@ "@babel/runtime" "^7.20.6" "@mui/material@^5.10.14", "@mui/material@^5.10.7": - version "5.11.0" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.0.tgz#01ead6ca389de440fbc78b2dbb8547845ca40f93" - integrity sha512-8Zl34lb89rLKTTi50Kakki675/LLHMKKnkp8Ee3rAZ2qmisQlRODsGh1MBjENKp0vwhQnNSvlsCfJteVTfotPQ== + version "5.11.1" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.1.tgz#89ebc860abae0f146d9ac69b85baa691f09cfb47" + integrity sha512-yaZiXvcrl2vgUK+VO24780BWRgwdAMmAyuMVZnRTts1Yu0tWd6PjIYq2ZtaOlpj6/LbaSS+Q2kSfxYnDQ20CEQ== dependencies: "@babel/runtime" "^7.20.6" - "@mui/base" "5.0.0-alpha.110" - "@mui/core-downloads-tracker" "^5.11.0" - "@mui/system" "^5.11.0" + "@mui/base" "5.0.0-alpha.111" + "@mui/core-downloads-tracker" "^5.11.1" + "@mui/system" "^5.11.1" "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.0" + "@mui/utils" "^5.11.1" "@types/react-transition-group" "^4.4.5" clsx "^1.2.1" csstype "^3.1.1" @@ -2678,13 +2683,13 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.11.0": - version "5.11.0" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.0.tgz#14e545e74d6da4c20df25702d8c606187b300072" - integrity sha512-UFQLb9x5Sj4pg2GhhCGw3Ls/y1Hw/tz9RsBrULvUF0Vgps1z19o7XTq2xqUvp7pN7fJTW7eVIT2gwVg2xlk8PQ== +"@mui/private-theming@^5.11.1": + version "5.11.1" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.1.tgz#8e6a6c33c6f04cadba17b6f3320e22bd64413655" + integrity sha512-nnHg7kA5RwFRhy0wiDYe59sLCVGORpPypL1JcEdhv0+N0Zbmc2E/y4z2zqMRZ62MAEscpro7cQbvv244ThA84A== dependencies: "@babel/runtime" "^7.20.6" - "@mui/utils" "^5.11.0" + "@mui/utils" "^5.11.1" prop-types "^15.8.1" "@mui/styled-engine@^5.11.0": @@ -2698,15 +2703,15 @@ prop-types "^15.8.1" "@mui/styles@^5.10.14": - version "5.11.0" - resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.11.0.tgz#11ea8b43ea25c83e7eb071172fa333f7d01230bd" - integrity sha512-Y4Qz/uoWz9NUC7AN+Ybzv8LF3RjlKs85yayLsdXJz0kZxqIJshOMZ4G1Hb5omNwVx9oCePmO9a+zemXZS76ATw== + version "5.11.1" + resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.11.1.tgz#21b19106838bd130ee79bd070811303670064f6b" + integrity sha512-iZgKBqaXzVMKn1WYHUV4RNAnrT/AyJ9jrYSBufjGPF9GgWpJYOj+NGrX04Qgx87kFXSzA/vMRK/tdaK/QgoDbQ== dependencies: "@babel/runtime" "^7.20.6" "@emotion/hash" "^0.9.0" - "@mui/private-theming" "^5.11.0" + "@mui/private-theming" "^5.11.1" "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.0" + "@mui/utils" "^5.11.1" clsx "^1.2.1" csstype "^3.1.1" hoist-non-react-statics "^3.3.2" @@ -2720,16 +2725,16 @@ jss-plugin-vendor-prefixer "^10.9.2" prop-types "^15.8.1" -"@mui/system@^5.11.0": - version "5.11.0" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.0.tgz#9938d5beeddfee3e419911ec43e5f9a6f55fe161" - integrity sha512-HFUT7Dlmyq6Wfuxsw8QBXZxXDYIQQaJ4YHaZd7s+nDMcjerLnILxjh2g3a6umtOUM+jEcRaFJAtvLZvlGfa5fw== +"@mui/system@^5.11.1": + version "5.11.1" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.1.tgz#86c85472f5c2d4eaf739acd426c7b1ccce38eda2" + integrity sha512-BEA2S0hay8n8CcZftkeAVsi0nsb5ZjdnZRCahv5lX7QJYwDjO4ucJ6lnvxHe2v/9Te1LLjTO7ojxu/qM6CE5Cg== dependencies: "@babel/runtime" "^7.20.6" - "@mui/private-theming" "^5.11.0" + "@mui/private-theming" "^5.11.1" "@mui/styled-engine" "^5.11.0" "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.0" + "@mui/utils" "^5.11.1" clsx "^1.2.1" csstype "^3.1.1" prop-types "^15.8.1" @@ -2739,10 +2744,10 @@ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.3.tgz#06faae1c0e2f3a31c86af6f28b3a4a42143670b9" integrity sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw== -"@mui/utils@^5.10.3", "@mui/utils@^5.11.0": - version "5.11.0" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.11.0.tgz#06d1d907935391f3f8bc58c669800194c77e6601" - integrity sha512-DP/YDaVVCVzJpZ5FFPLKNmaJkeaYRviTyIZkL/D5/FmPXQiA6ecd6z0/+VwoNQtp7aXAQWaRhvz4FM25yqFlHA== +"@mui/utils@^5.10.3", "@mui/utils@^5.11.1": + version "5.11.1" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.11.1.tgz#8d12b3c2245efd9a1c0595658dcb4c86f6625206" + integrity sha512-lMAPgIJoil8V9ZxsMbEflMsvZmWcHbRVMc4JDY9jPO9V4welpF43h/O267b1RqlcRnC5MEbVQV605GYkTZY29Q== dependencies: "@babel/runtime" "^7.20.6" "@types/prop-types" "^15.7.5" @@ -2751,9 +2756,9 @@ react-is "^18.2.0" "@mui/x-data-grid@^5.17.4": - version "5.17.14" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.14.tgz#3475d45ba3b18bdb343bbc954346324b2f935df0" - integrity sha512-Cf3yeaEAaFzpWPoDO1YTHWL2Anz69pUnIw4Swa6UehvNwJIz3ZDoVf92xCytviugU14NmL95PjmtHqK72Jt05g== + version "5.17.16" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.16.tgz#4e05a014467bbee68385b5bee1e75004ba0178a3" + integrity sha512-tzgjvO0DgiYWqU9soM6ORurtOrNsqpmdRxIjqJguLHxs2nP5hyhGEDRaHQIfEPv9eXNl9QL3kBO3VfgaFS5NPg== dependencies: "@babel/runtime" "^7.18.9" "@mui/utils" "^5.10.3" @@ -2776,12 +2781,17 @@ dependencies: eslint-scope "5.1.1" +"@noble/ed25519@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.1.tgz#6899660f6fbb97798a6fbd227227c4589a454724" + integrity sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw== + "@noble/hashes@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== -"@noble/hashes@~1.1.1": +"@noble/hashes@^1.1.2", "@noble/hashes@~1.1.1": version "1.1.5" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== @@ -2791,6 +2801,11 @@ resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== +"@noble/secp256k1@^1.6.3": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" + integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== + "@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" @@ -3187,10 +3202,10 @@ redux-thunk "^2.4.2" reselect "^4.1.7" -"@remix-run/router@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.0.5.tgz#d5c65626add4c3c185a89aa5bd38b1e42daec075" - integrity sha512-my0Mycd+jruq/1lQuO5LBB6WTlL/e8DTCYWp44DfMTDcXz8DcTlgF0ISaLsGewt+ctHN+yA8xMq3q/N7uWJPug== +"@remix-run/router@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.2.0.tgz#54eff8306938b64c521f4a9ed313d33a91ef019a" + integrity sha512-GO82KYYTWPRCgdNtnheaZG3LcViUlxRFlHM7ykh7N+ufoXi6PVIHoP+9RUG/vuzl2hr9i/h6EA1Eq+2HpqJ0gQ== "@repeaterjs/repeater@3.0.4": version "3.0.4" @@ -3372,14 +3387,17 @@ dependencies: buffer "~6.0.3" -"@solana/web3.js@1.52.0": - version "1.52.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.52.0.tgz#71bd5c322a31e3e2fa8cda2261c594846810b8ea" - integrity sha512-oG1+BX4nVYZ0OBzmk6DRrY8oBYMsbXVQEf9N9JOfKm+wXSmjxVEEo8v3IPV8mKwR0JvUWuE8lOn3IUDiMlRLgg== +"@solana/web3.js@^1.70.1": + version "1.70.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.70.3.tgz#44040a78d1f86ee6a0a9dbe391b5f891bb404265" + integrity sha512-9JAFXAWB3yhUHnoahzemTz4TcsGqmITPArNlm9795e+LA/DYkIEJIXIosV4ImzDMfqolymZeRgG3O8ewNgYTTA== dependencies: "@babel/runtime" "^7.12.5" - "@ethersproject/sha2" "^5.5.0" + "@noble/ed25519" "^1.7.0" + "@noble/hashes" "^1.1.2" + "@noble/secp256k1" "^1.6.3" "@solana/buffer-layout" "^4.0.0" + agentkeepalive "^4.2.1" bigint-buffer "^1.1.5" bn.js "^5.0.0" borsh "^0.7.0" @@ -3387,13 +3405,9 @@ buffer "6.0.1" fast-stable-stringify "^1.0.0" jayson "^3.4.4" - js-sha3 "^0.8.0" node-fetch "2" - react-native-url-polyfill "^1.3.0" rpc-websockets "^7.5.0" - secp256k1 "^4.0.2" superstruct "^0.14.2" - tweetnacl "^1.0.3" "@solidity-parser/parser@^0.14.0", "@solidity-parser/parser@^0.14.1", "@solidity-parser/parser@^0.14.5": version "0.14.5" @@ -4060,9 +4074,9 @@ integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== "@types/node@*", "@types/node@>=13.7.0", "@types/node@^18.11.9": - version "18.11.15" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" - integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== + version "18.11.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.17.tgz#5c009e1d9c38f4a2a9d45c0b0c493fe6cdb4bcb5" + integrity sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng== "@types/node@14.18.33": version "14.18.33" @@ -4080,9 +4094,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^16.11.68", "@types/node@^16.18.3": - version "16.18.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.9.tgz#47c491cfbc10460571d766c16526748fa9ad96a1" - integrity sha512-nhrqXYxiQ+5B/tPorWum37VgAiefi/wmfJ1QZKGKKecC8/3HqcTTJD0O+VABSPwtseMMF7NCPVT9uGgwn0YqsQ== + version "16.18.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.10.tgz#d7415ef18c94f8d4e4a82ebcc8b8999f965d8920" + integrity sha512-XU1+v7h81p7145ddPfjv7jtWvkSilpcnON3mQ+bDi9Yuf7OI56efOglXRyXWgQ57xH3fEQgh7WOJMncRHVew5w== "@types/node@^8.0.0": version "8.10.66" @@ -4112,9 +4126,9 @@ "@types/node" "*" "@types/prettier@^2.1.1", "@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== + version "2.7.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" + integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== "@types/prop-types@*", "@types/prop-types@^15.7.5": version "15.7.5" @@ -4292,13 +4306,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.43.0", "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz#098abb4c9354e19f460d57ab18bff1f676a6cff0" - integrity sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA== + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz#dadb79df3b0499699b155839fd6792f16897d910" + integrity sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ== dependencies: - "@typescript-eslint/scope-manager" "5.46.1" - "@typescript-eslint/type-utils" "5.46.1" - "@typescript-eslint/utils" "5.46.1" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/type-utils" "5.47.0" + "@typescript-eslint/utils" "5.47.0" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -4307,78 +4321,78 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.46.1.tgz#8c11f3d3257b4a467f17c01e5f8b4034d6c30f55" - integrity sha512-M79mkB+wOuiBG8jzOVNA2h5izOip5CNPZV1K3tvE/qry/1Oh/bnKYhNWQNiH2h9O3B73YK60GmiqrUpprnQ5sQ== + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.47.0.tgz#60f26e62d948f9977488825730007ec350bc1e44" + integrity sha512-DAP8xOaTAJLxouU0QrATiw8o/OHxxbUBXtkf9v+bCCU6tbJUn24xwB1dHFw3b5wYq4XvC1z5lYEN0g/Rx1sjzA== dependencies: - "@typescript-eslint/utils" "5.46.1" + "@typescript-eslint/utils" "5.47.0" "@typescript-eslint/parser@^5.43.0", "@typescript-eslint/parser@^5.5.0": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.46.1.tgz#1fc8e7102c1141eb64276c3b89d70da8c0ba5699" - integrity sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg== + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.47.0.tgz#62e83de93499bf4b500528f74bf2e0554e3a6c8d" + integrity sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw== dependencies: - "@typescript-eslint/scope-manager" "5.46.1" - "@typescript-eslint/types" "5.46.1" - "@typescript-eslint/typescript-estree" "5.46.1" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/typescript-estree" "5.47.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.46.1": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz#70af8425c79bbc1178b5a63fb51102ddf48e104a" - integrity sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA== +"@typescript-eslint/scope-manager@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz#f58144a6b0ff58b996f92172c488813aee9b09df" + integrity sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw== dependencies: - "@typescript-eslint/types" "5.46.1" - "@typescript-eslint/visitor-keys" "5.46.1" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/visitor-keys" "5.47.0" -"@typescript-eslint/type-utils@5.46.1": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz#195033e4b30b51b870dfcf2828e88d57b04a11cc" - integrity sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng== +"@typescript-eslint/type-utils@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz#2b440979c574e317d3473225ae781f292c99e55d" + integrity sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg== dependencies: - "@typescript-eslint/typescript-estree" "5.46.1" - "@typescript-eslint/utils" "5.46.1" + "@typescript-eslint/typescript-estree" "5.47.0" + "@typescript-eslint/utils" "5.47.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.46.1": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.46.1.tgz#4e9db2107b9a88441c4d5ecacde3bb7a5ebbd47e" - integrity sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w== +"@typescript-eslint/types@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.47.0.tgz#67490def406eaa023dbbd8da42ee0d0c9b5229d3" + integrity sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg== -"@typescript-eslint/typescript-estree@5.46.1": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz#5358088f98a8f9939355e0996f9c8f41c25eced2" - integrity sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg== +"@typescript-eslint/typescript-estree@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz#ed971a11c5c928646d6ba7fc9dfdd6e997649aca" + integrity sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q== dependencies: - "@typescript-eslint/types" "5.46.1" - "@typescript-eslint/visitor-keys" "5.46.1" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/visitor-keys" "5.47.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.46.1", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.46.1.tgz#7da3c934d9fd0eb4002a6bb3429f33298b469b4a" - integrity sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA== +"@typescript-eslint/utils@5.47.0", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.47.0.tgz#b5005f7d2696769a1fdc1e00897005a25b3a0ec7" + integrity sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.46.1" - "@typescript-eslint/types" "5.46.1" - "@typescript-eslint/typescript-estree" "5.46.1" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/typescript-estree" "5.47.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.46.1": - version "5.46.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz#126cc6fe3c0f83608b2b125c5d9daced61394242" - integrity sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg== +"@typescript-eslint/visitor-keys@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz#4aca4efbdf6209c154df1f7599852d571b80bb45" + integrity sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg== dependencies: - "@typescript-eslint/types" "5.46.1" + "@typescript-eslint/types" "5.47.0" eslint-visitor-keys "^3.3.0" "@vanilla-extract/css@1.9.1": @@ -4992,9 +5006,9 @@ acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8 integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== address@^1.0.1, address@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.1.tgz#25bb61095b7522d65b357baa11bc05492d4c8acd" - integrity sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA== + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== adjust-sourcemap-loader@^4.0.0: version "4.0.0" @@ -5026,6 +5040,15 @@ agent-base@6: dependencies: debug "4" +agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -5500,9 +5523,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1276.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1276.0.tgz#60d32305b687a1c8367370574d2b0d1c40d30e26" - integrity sha512-0TGPsW/uMQy0trfYZD+dvSQ9Bf8NmKK9ISj5xQJGopNt/Kxh0vLKBPy2mFmKdxeFtis6wn4c9uTp7/3p0ADa1w== + version "2.1280.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1280.0.tgz#7eeac40e2061643299619d1332a08af028ed9ddb" + integrity sha512-6Dv/RuMQdye7wps4HwcMZwRw9han51PQVcMXq4e5KUNqzQ9wHmaFMFVI/kY4NIkR7D3IczEg4WoUCoKhj464hA== dependencies: buffer "4.9.2" events "1.1.1" @@ -5783,9 +5806,9 @@ bigint-buffer@^1.1.5: bindings "^1.3.0" bigint-crypto-utils@^3.0.23: - version "3.1.7" - resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.7.tgz#c4c1b537c7c1ab7aadfaecf3edfd45416bf2c651" - integrity sha512-zpCQpIE2Oy5WIQpjC9iYZf8Uh9QqoS51ZCooAcNvzv1AQ3VWdT52D0ksr1+/faeK8HVIej1bxXcP75YcqH3KPA== + version "3.1.8" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.8.tgz#e2e0f40cf45488f9d7f0e32ff84152aa73819d5d" + integrity sha512-+VMV9Laq8pXLBKKKK49nOoq9bfR3j7NNQAtbA617a4nw9bVLo8rsqkKMBgM2AJWlNX9fEIyYaYX+d0laqYV4tw== dependencies: bigint-mod-arith "^3.1.0" @@ -6352,9 +6375,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001439" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz#ab7371faeb4adff4b74dad1718a6fd122e45d9cb" - integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A== + version "1.0.30001441" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" + integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== carbites@^1.0.6: version "1.0.6" @@ -7763,7 +7786,7 @@ depd@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: +depd@^1.1.2, 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== @@ -8695,9 +8718,9 @@ eslint-plugin-jest@^25.3.0: "@typescript-eslint/experimental-utils" "^5.0.0" eslint-plugin-jest@^27.1.5: - version "27.1.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.1.6.tgz#361d943f07d1978838e6b852c44a579f3879e332" - integrity sha512-XA7RFLSrlQF9IGtAmhddkUkBuICCTuryfOTfCSWcZHiHb69OilIH05oozH2XA6CEOtztnOd0vgXyvxZodkxGjg== + version "27.1.7" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.1.7.tgz#0351e904afb8d66b7f70452929556dfdc8daba0d" + integrity sha512-0QVzf+og4YI1Qr3UoprkqqhezAZjFffdi62b0IurkCXMqPtRW84/UT4CKsYT80h/D82LA9avjO/80Ou1LdgbaQ== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -8805,12 +8828,12 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.27.0, eslint@^8.3.0: - version "8.29.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" - integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== + version "8.30.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.30.0.tgz#83a506125d089eef7c5b5910eeea824273a33f50" + integrity sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ== dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" + "@eslint/eslintrc" "^1.4.0" + "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -8829,7 +8852,7 @@ eslint@^8.27.0, eslint@^8.3.0: file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.15.0" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" @@ -10094,7 +10117,7 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: +globals@^13.19.0: version "13.19.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== @@ -10148,9 +10171,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -10803,6 +10826,13 @@ human-signals@^3.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + husky@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" @@ -10874,9 +10904,9 @@ ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.1.1, ignore@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" - integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immediate@~3.0.5: version "3.0.6" @@ -12917,9 +12947,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.2, json5@^2.2.0, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + version "2.2.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.2.tgz#64471c5bdcc564c18f7c1d4df2e2297f2457c5ab" + integrity sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ== jsonfile@^2.1.0: version "2.4.0" @@ -13845,9 +13875,9 @@ minimatch@5.0.1: brace-expansion "^2.0.1" minimatch@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" - integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== + version "5.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff" + integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg== dependencies: brace-expansion "^2.0.1" @@ -14082,7 +14112,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3, ms@^2.0.0, 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== @@ -14433,9 +14463,9 @@ node-int64@^0.4.0: integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.7.tgz#593edbc7c22860ee4d32d3933cfebdfab0c0e0e5" - integrity sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ== + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== nodeify@^1.0.1: version "1.0.1" @@ -15543,9 +15573,9 @@ postcss-normalize@^10.0.1: sanitize.css "*" postcss-opacity-percentage@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz#bd698bb3670a0a27f6d657cc16744b3ebf3b1145" - integrity sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w== + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== postcss-ordered-values@^5.1.3: version "5.1.3" @@ -16262,13 +16292,6 @@ react-native-fetch-api@^2.0.0: dependencies: p-defer "^3.0.0" -react-native-url-polyfill@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz#c1763de0f2a8c22cc3e959b654c8790622b6ef6a" - integrity sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ== - dependencies: - whatwg-url-without-unicode "8.0.0-3" - react-redux@^8.0.5: version "8.0.5" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.0.5.tgz#e5fb8331993a019b8aaf2e167a93d10af469c7bd" @@ -16313,19 +16336,19 @@ react-resize-detector@^7.1.2: lodash "^4.17.21" react-router-dom@^6.4.3: - version "6.4.5" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.4.5.tgz#4fdb12efef4f3848c693a76afbeaed1f6ca02047" - integrity sha512-a7HsgikBR0wNfroBHcZUCd9+mLRqZS8R5U1Z1mzLWxFXEkUT3vR1XXmSIVoVpxVX8Bar0nQYYYc9Yipq8dWwAA== + version "6.6.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.6.0.tgz#ad20b37b69e9fe7c6389663a0767ba40a19f71fe" + integrity sha512-qC4jnvpfCPKVle1mKLD75IvZLcbVJyFMlSn16WY9ZiOed3dgSmqhslCf/u3tmSccWOujkdsT/OwGq12bELmvjg== dependencies: - "@remix-run/router" "1.0.5" - react-router "6.4.5" + "@remix-run/router" "1.2.0" + react-router "6.6.0" -react-router@6.4.5: - version "6.4.5" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.4.5.tgz#73f382af2c8b9a86d74e761a7c5fc3ce7cb0024d" - integrity sha512-1RQJ8bM70YEumHIlNUYc6mFfUDoWa5EgPDenK/fq0bxD8DYpQUi/S6Zoft+9DBrh2xmtg92N5HMAJgGWDhKJ5Q== +react-router@6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.6.0.tgz#9ae27cfc6bf7f2b28e1f028fe01fdbec96a3a41d" + integrity sha512-+VPfCIaFbkW7BAiB/2oeprxKAt1KLbl+zXZ10CXOYezKWgBmTKyh8XjI53eLqY5kd7uY+V4rh3UW44FclwUU+Q== dependencies: - "@remix-run/router" "1.0.5" + "@remix-run/router" "1.2.0" react-scripts@5.0.1, react-scripts@^5.0.1: version "5.0.1" @@ -17044,9 +17067,9 @@ rxjs@^6.6.3: tslib "^1.9.0" rxjs@^7.0.0, rxjs@^7.5.7: - version "7.6.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.6.0.tgz#361da5362b6ddaa691a2de0b4f2d32028f1eb5a2" - integrity sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ== + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== dependencies: tslib "^2.1.0" @@ -17221,7 +17244,7 @@ secp256k1@^3.6.2: nan "^2.14.0" safe-buffer "^5.1.2" -secp256k1@^4.0.1, secp256k1@^4.0.2, secp256k1@^4.0.3: +secp256k1@^4.0.1, secp256k1@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== @@ -18721,9 +18744,9 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.4.1, tslib@~2.4 integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== tslog@^4.3.1, tslog@^4.4.0: - version "4.4.4" - resolved "https://registry.yarnpkg.com/tslog/-/tslog-4.4.4.tgz#ec121512a0094c4b9fe16ce8170d578a46be12af" - integrity sha512-+IJBVcB6h4BhMH3+IvB69lDZ/5ClHX40I66bGTKPAx+/S9nDqJCYN323MxR/gch3Agvrwif4HQorI/YLqAeoNA== + version "4.6.0" + resolved "https://registry.yarnpkg.com/tslog/-/tslog-4.6.0.tgz#16f318f7d5b2dfc122fbdd4b5b7465434df678e5" + integrity sha512-/dbAKIJiZAX9dfQz8hewPiWB2UxeJorkWWIBbw0nFJDzJqUNZWYA/rdHJlAgfWKyZLQy0WQ6U/rd6YoToZis0A== tsort@0.0.1: version "0.0.1" @@ -19751,15 +19774,6 @@ whatwg-mimetype@^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-without-unicode@8.0.0-3: - version "8.0.0-3" - resolved "https://registry.yarnpkg.com/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz#ab6df4bf6caaa6c85a59f6e82c026151d4bb376b" - integrity sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig== - dependencies: - buffer "^5.4.3" - punycode "^2.1.1" - webidl-conversions "^5.0.0" - whatwg-url@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" @@ -20300,9 +20314,9 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yaml@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" - integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.0.tgz#882c762992888b4144bffdec5745df340627fdd3" + integrity sha512-auf7Gi6QwO7HW//GA9seGvTXVGWl1CM/ADWh1+RxtXr6XOxnT65ovDl9fTi4e0monEyJxCHqDpF6QnFDXmJE4g== yargs-parser@13.1.2, yargs-parser@^13.1.2: version "13.1.2" From a1a68813dedc82fb4c63265f5bc303682816ced8 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 21 Dec 2022 21:30:41 -0500 Subject: [PATCH 036/216] fix fortune recording test --- .../src/services/escrow.test.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts index aa6e1d776c..fe0061c3f5 100644 --- a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts @@ -23,7 +23,7 @@ let escrow: Contract; const recordingOracle = '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'; const reputationOracle = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'; -const web3 = new Web3('http://127.0.0.1:8548'); +const web3 = new Web3('http://127.0.0.1:8547'); const owner = web3.eth.accounts.privateKeyToAccount( '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' ); @@ -32,7 +32,7 @@ const recordingAccount = web3.eth.accounts.privateKeyToAccount( ); web3.eth.defaultAccount = recordingAccount.address; -describe('Fortune', () => { +describe('Escrow', () => { beforeAll(async () => { const tokenContract = new web3.eth.Contract(HMToken.abi as []); token = await tokenContract @@ -65,13 +65,22 @@ describe('Fortune', () => { escrowFactory = await escrowFactoryContract .deploy({ data: EscrowFactory.bytecode, - arguments: [token.options.address], + arguments: [token.options.address, staking.options.address], }) .send({ from: owner.address, }); + + await token.methods + .approve(staking.options.address, web3.utils.toWei('500', 'ether')) + .send({ from: owner.address }); + + await staking.methods + .stake(web3.utils.toWei('500', 'ether')) + .send({ from: owner.address }); + await escrowFactory.methods - .createEscrow([owner.address, staking.options.address]) + .createEscrow([owner.address]) .send({ from: owner.address }); escrowAddress = await escrowFactory.methods.lastEscrow().call(); From e08f8901a906a792864f46bd1fb8d90f3bb74953 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 21 Dec 2022 21:45:42 -0500 Subject: [PATCH 037/216] revert subgraph fix --- packages/sdk/typescript/subgraph/template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/typescript/subgraph/template.yaml b/packages/sdk/typescript/subgraph/template.yaml index fd5e58999f..e86446aec9 100644 --- a/packages/sdk/typescript/subgraph/template.yaml +++ b/packages/sdk/typescript/subgraph/template.yaml @@ -21,7 +21,7 @@ dataSources: - name: EscrowFactory file: ./node_modules/@human-protocol/core/abis/EscrowFactory.json eventHandlers: - - event: Launched(address,address,uint256) + - event: Launched(address,address) handler: handleLaunched - kind: ethereum name: HMToken From 7843a6a214771ec24bcc6e969e9ee41917332ed8 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Wed, 21 Dec 2022 22:08:02 -0500 Subject: [PATCH 038/216] update core version --- packages/core/package.json | 2 +- packages/sdk/typescript/human-protocol-sdk/package.json | 4 ++-- yarn.lock | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 826a857f98..3616ef9878 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.11", + "version": "1.0.12", "files": [ "contracts/**/*.sol", "abis/**/*.json", diff --git a/packages/sdk/typescript/human-protocol-sdk/package.json b/packages/sdk/typescript/human-protocol-sdk/package.json index 4bd23e9bc8..13794e6b68 100644 --- a/packages/sdk/typescript/human-protocol-sdk/package.json +++ b/packages/sdk/typescript/human-protocol-sdk/package.json @@ -38,7 +38,7 @@ ] }, "dependencies": { - "@human-protocol/core": "^1.0.11", + "@human-protocol/core": "^1.0.12", "aws-sdk": "^2.1255.0", "crypto": "^1.0.1", "dotenv": "^16.0.3", @@ -47,6 +47,6 @@ "winston": "^3.8.2" }, "peerDependencies": { - "@human-protocol/core": "^1.0.11" + "@human-protocol/core": "^1.0.12" } } diff --git a/yarn.lock b/yarn.lock index d3f1b9d0b0..f99964965f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2059,9 +2059,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.11.tgz#9d7f2ffbc3386bd1aa53a1910c10c080575f9dfc" - integrity sha512-zJdG4kr5gZeWsfvJmKYrGfBLnMzg1LerySThLRE6TK8r+DkvXGUdAX24a7zuAu9rIcNXLkRzFPmAbd8IanZnTg== + version "1.0.12" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.12.tgz#433ae2fc4a935f763b58f11ec4fc2dc4e96edd36" + integrity sha512-siiysrflmn6HaiGCj0/3wDAk2RmnF3r9RNBTAntEFMOtYwlTcEfaow6cL4unhQipn2jRvRX2CjHa9fVtid1tWw== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" From 4a3e4d497e24220a19c0b1c3fb5d36154761b97a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 22 Dec 2022 16:15:58 +0100 Subject: [PATCH 039/216] Add proxy to escrow factory --- packages/core/contracts/EscrowFactory.sol | 5 +- .../contracts/utils/AddressUpgradeable.sol | 268 ++++++++++++++++++ .../core/contracts/utils/Initializable.sol | 170 +++++++++++ packages/core/hardhat.config.ts | 8 + packages/core/package.json | 1 + packages/core/scripts/deploy.ts | 23 +- 6 files changed, 466 insertions(+), 9 deletions(-) create mode 100644 packages/core/contracts/utils/AddressUpgradeable.sol create mode 100644 packages/core/contracts/utils/Initializable.sol diff --git a/packages/core/contracts/EscrowFactory.sol b/packages/core/contracts/EscrowFactory.sol index 90b3c56c2c..a7ede01b9e 100644 --- a/packages/core/contracts/EscrowFactory.sol +++ b/packages/core/contracts/EscrowFactory.sol @@ -4,8 +4,9 @@ pragma solidity >=0.6.2; import './Escrow.sol'; import './interfaces/IStaking.sol'; +import './utils/Initializable.sol'; -contract EscrowFactory { +contract EscrowFactory is Initializable { // all Escrows will have this duration. uint256 constant STANDARD_DURATION = 8640000; string constant ERROR_ZERO_ADDRESS = 'EscrowFactory: Zero Address'; @@ -17,7 +18,7 @@ contract EscrowFactory { address public staking; event Launched(address eip20, address escrow); - constructor(address _eip20, address _staking) { + function initialize(address _eip20, address _staking) public initializer { require(_eip20 != address(0), ERROR_ZERO_ADDRESS); eip20 = _eip20; require(_staking != address(0), ERROR_ZERO_ADDRESS); diff --git a/packages/core/contracts/utils/AddressUpgradeable.sol b/packages/core/contracts/utils/AddressUpgradeable.sol new file mode 100644 index 0000000000..ae7cc68866 --- /dev/null +++ b/packages/core/contracts/utils/AddressUpgradeable.sol @@ -0,0 +1,268 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol) + +pragma solidity ^0.8.1; + +/** + * @dev Collection of functions related to the address type + */ +library AddressUpgradeable { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * ==== + * + * [IMPORTANT] + * ==== + * You shouldn't rely on `isContract` to protect against flash loan attacks! + * + * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets + * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract + * constructor. + * ==== + */ + function isContract(address account) internal view returns (bool) { + // This method relies on extcodesize/address.code.length, which returns 0 + // for contracts in construction, since the code is only stored at the end + // of the constructor execution. + + return account.code.length > 0; + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + require( + address(this).balance >= amount, + 'Address: insufficient balance' + ); + + (bool success, ) = recipient.call{value: amount}(''); + require( + success, + 'Address: unable to send value, recipient may have reverted' + ); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain `call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall( + address target, + bytes memory data + ) internal returns (bytes memory) { + return + functionCallWithValue( + target, + data, + 0, + 'Address: low-level call failed' + ); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, + bytes memory data, + uint256 value + ) internal returns (bytes memory) { + return + functionCallWithValue( + target, + data, + value, + 'Address: low-level call with value failed' + ); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, + bytes memory data, + uint256 value, + string memory errorMessage + ) internal returns (bytes memory) { + require( + address(this).balance >= value, + 'Address: insufficient balance for call' + ); + (bool success, bytes memory returndata) = target.call{value: value}( + data + ); + return + verifyCallResultFromTarget( + target, + success, + returndata, + errorMessage + ); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall( + address target, + bytes memory data + ) internal view returns (bytes memory) { + return + functionStaticCall( + target, + data, + 'Address: low-level static call failed' + ); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall( + address target, + bytes memory data, + string memory errorMessage + ) internal view returns (bytes memory) { + (bool success, bytes memory returndata) = target.staticcall(data); + return + verifyCallResultFromTarget( + target, + success, + returndata, + errorMessage + ); + } + + /** + * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling + * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. + * + * _Available since v4.8._ + */ + function verifyCallResultFromTarget( + address target, + bool success, + bytes memory returndata, + string memory errorMessage + ) internal view returns (bytes memory) { + if (success) { + if (returndata.length == 0) { + // only check isContract if the call was successful and the return data is empty + // otherwise we already know that it was a contract + require(isContract(target), 'Address: call to non-contract'); + } + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + /** + * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the + * revert reason or using the provided one. + * + * _Available since v4.3._ + */ + function verifyCallResult( + bool success, + bytes memory returndata, + string memory errorMessage + ) internal pure returns (bytes memory) { + if (success) { + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + function _revert( + bytes memory returndata, + string memory errorMessage + ) private pure { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + /// @solidity memory-safe-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } +} diff --git a/packages/core/contracts/utils/Initializable.sol b/packages/core/contracts/utils/Initializable.sol new file mode 100644 index 0000000000..3daaaed617 --- /dev/null +++ b/packages/core/contracts/utils/Initializable.sol @@ -0,0 +1,170 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (proxy/utils/Initializable.sol) + +pragma solidity ^0.8.2; + +import './AddressUpgradeable.sol'; + +/** + * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed + * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an + * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer + * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. + * + * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be + * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in + * case an upgrade adds a module that needs to be initialized. + * + * For example: + * + * [.hljs-theme-light.nopadding] + * ``` + * contract MyToken is ERC20Upgradeable { + * function initialize() initializer public { + * __ERC20_init("MyToken", "MTK"); + * } + * } + * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { + * function initializeV2() reinitializer(2) public { + * __ERC20Permit_init("MyToken"); + * } + * } + * ``` + * + * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as + * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. + * + * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure + * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. + * + * [CAUTION] + * ==== + * Avoid leaving a contract uninitialized. + * + * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation + * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke + * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: + * + * [.hljs-theme-light.nopadding] + * ``` + * /// @custom:oz-upgrades-unsafe-allow constructor + * constructor() { + * _disableInitializers(); + * } + * ``` + * ==== + */ +abstract contract Initializable { + /** + * @dev Indicates that the contract has been initialized. + * @custom:oz-retyped-from bool + */ + uint8 private _initialized; + + /** + * @dev Indicates that the contract is in the process of being initialized. + */ + bool private _initializing; + + /** + * @dev Triggered when the contract has been initialized or reinitialized. + */ + event Initialized(uint8 version); + + /** + * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope, + * `onlyInitializing` functions can be used to initialize parent contracts. + * + * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a + * constructor. + * + * Emits an {Initialized} event. + */ + modifier initializer() { + bool isTopLevelCall = !_initializing; + require( + (isTopLevelCall && _initialized < 1) || + (!AddressUpgradeable.isContract(address(this)) && + _initialized == 1), + 'Initializable: contract is already initialized' + ); + _initialized = 1; + if (isTopLevelCall) { + _initializing = true; + } + _; + if (isTopLevelCall) { + _initializing = false; + emit Initialized(1); + } + } + + /** + * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the + * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be + * used to initialize parent contracts. + * + * A reinitializer may be used after the original initialization step. This is essential to configure modules that + * are added through upgrades and that require initialization. + * + * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer` + * cannot be nested. If one is invoked in the context of another, execution will revert. + * + * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in + * a contract, executing them in the right order is up to the developer or operator. + * + * WARNING: setting the version to 255 will prevent any future reinitialization. + * + * Emits an {Initialized} event. + */ + modifier reinitializer(uint8 version) { + require( + !_initializing && _initialized < version, + 'Initializable: contract is already initialized' + ); + _initialized = version; + _initializing = true; + _; + _initializing = false; + emit Initialized(version); + } + + /** + * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the + * {initializer} and {reinitializer} modifiers, directly or indirectly. + */ + modifier onlyInitializing() { + require(_initializing, 'Initializable: contract is not initializing'); + _; + } + + /** + * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call. + * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized + * to any version. It is recommended to use this to lock implementation contracts that are designed to be called + * through proxies. + * + * Emits an {Initialized} event the first time it is successfully executed. + */ + function _disableInitializers() internal virtual { + require(!_initializing, 'Initializable: contract is initializing'); + if (_initialized != type(uint8).max) { + _initialized = type(uint8).max; + emit Initialized(type(uint8).max); + } + } + + /** + * @dev Internal function that returns the initialized version. Returns `_initialized` + */ + function _getInitializedVersion() internal view returns (uint8) { + return _initialized; + } + + /** + * @dev Internal function that returns the initialized version. Returns `_initializing` + */ + function _isInitializing() internal view returns (bool) { + return _initializing; + } +} diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 2a35b946f8..a7a0206993 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -12,6 +12,7 @@ import 'hardhat-contract-sizer'; import * as tdly from '@tenderly/hardhat-tenderly'; import 'hardhat-abi-exporter'; import '@nomicfoundation/hardhat-toolbox'; +import '@openzeppelin/hardhat-upgrades'; dotenv.config(); @@ -70,6 +71,12 @@ const config: HardhatUserConfig = { accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, + polygonMumbai: { + chainId: 80001, + url: process.env.ETH_POLYGON_MUMBAI_URL || '', + accounts: + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], + }, }, gasReporter: { enabled: process.env.REPORT_GAS !== undefined, @@ -97,6 +104,7 @@ const config: HardhatUserConfig = { // For Mainnet, Goerli mainnet: process.env.ETHERSCAN_API_KEY || '', goerli: process.env.ETHERSCAN_API_KEY || '', + polygonMumbai: process.env.POLYGONSCAN_API_KEY || '', }, }, mocha: { diff --git a/packages/core/package.json b/packages/core/package.json index 3616ef9878..428419d62e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -44,6 +44,7 @@ "@nomicfoundation/hardhat-toolbox": "^2.0.0", "@nomiclabs/hardhat-ethers": "^2.2.1", "@nomiclabs/hardhat-etherscan": "^3.1.2", + "@openzeppelin/hardhat-upgrades": "^1.22.0", "@tenderly/hardhat-tenderly": "^1.1.6", "@typechain/ethers-v5": "^10.1.1", "@typechain/hardhat": "^6.1.4", diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index c08c857058..84461e1b38 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -1,5 +1,4 @@ -/* eslint-disable no-console */ -import { ethers } from 'hardhat'; +import { ethers, upgrades } from 'hardhat'; async function main() { const [, ...accounts] = await ethers.getSigners(); @@ -19,13 +18,23 @@ async function main() { console.log('Staking Contract Address:', stakingContract.address); const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - const escrowFactoryContract = await EscrowFactory.deploy( - HMTokenContract.address, - stakingContract.address + const escrowFactoryContract = await upgrades.deployProxy( + EscrowFactory, + [HMTokenContract.address, stakingContract.address], + { initializer: 'initialize' } ); await escrowFactoryContract.deployed(); - - console.log('Escrow Factory Address: ', escrowFactoryContract.address); + console.log('Escrow Factory Proxy Address: ', escrowFactoryContract.address); + console.log( + 'Escrow Factory Implementation Address: ', + await upgrades.erc1967.getImplementationAddress( + escrowFactoryContract.address + ) + ); + console.log( + 'Admin Address: ', + await upgrades.erc1967.getAdminAddress(escrowFactoryContract.address) + ); const KVStore = await ethers.getContractFactory('KVStore'); const kvStoreContract = await KVStore.deploy(); From f99b23db4fc6759449d859b4cc95b5b3ad586d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Fri, 23 Dec 2022 16:28:31 +0100 Subject: [PATCH 040/216] Fix tests --- packages/core/test/EscrowFactory.ts | 3 +- packages/core/test/RewardPool.ts | 3 +- packages/core/test/Staking.ts | 3 +- .../fortune/launcher/.env.development | 2 +- .../fortune/tests/e2e-backend/constants.js | 2 +- .../human-protocol-sdk/src/utils.ts | 3 +- yarn.lock | 55 +++++++++++++++++-- 7 files changed, 61 insertions(+), 10 deletions(-) diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 8b16a77aa2..29a0cd4bcc 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -59,7 +59,8 @@ describe('EscrowFactory', function () { // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(token.address, staking.address); + escrowFactory = await EscrowFactory.deploy(); + await escrowFactory.initialize(token.address, staking.address); }); describe('deployment', () => { diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index f12c009f61..9336624f4a 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -69,7 +69,8 @@ describe('RewardPool', function () { // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(token.address, staking.address); + escrowFactory = await EscrowFactory.deploy(); + await escrowFactory.initialize(token.address, staking.address); // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 3c563d32c6..2806ffef8b 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -83,7 +83,8 @@ describe('Staking', function () { // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(token.address, staking.address); + escrowFactory = await EscrowFactory.deploy(); + await escrowFactory.initialize(token.address, staking.address); // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); diff --git a/packages/examples/fortune/launcher/.env.development b/packages/examples/fortune/launcher/.env.development index ff5b2402ee..463141be26 100644 --- a/packages/examples/fortune/launcher/.env.development +++ b/packages/examples/fortune/launcher/.env.development @@ -1,6 +1,6 @@ REACT_APP_PUBLIC_URL=/ REACT_APP_HMT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 -REACT_APP_ESCROW_FACTORY_ADDRESS=0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 +REACT_APP_ESCROW_FACTORY_ADDRESS=0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9 REACT_APP_REC_ORACLE_ADDRESS=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 REACT_APP_REP_ORACLE_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC REACT_APP_EXCHANGE_ORACLE_ADDRESS=0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809 \ No newline at end of file diff --git a/packages/examples/fortune/tests/e2e-backend/constants.js b/packages/examples/fortune/tests/e2e-backend/constants.js index 8cc533f9f7..488d993991 100644 --- a/packages/examples/fortune/tests/e2e-backend/constants.js +++ b/packages/examples/fortune/tests/e2e-backend/constants.js @@ -9,7 +9,7 @@ const addresses = { hmt: process.env.HMT_ADDRESS || '0x5FbDB2315678afecb367f032d93F642f64180aa3', escrowFactory: process.env.ESCROW_FACTORY_ADDRESS || - '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0', + '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', recOracle: process.env.REC_ORACLE_ADDRESS || '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', diff --git a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts index d47f258305..b90929fd61 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts @@ -46,7 +46,8 @@ export const deployEscrowFactory = async ( ): Promise => { const factory = new EscrowFactory__factory(signer); - const contract = await factory.deploy(hmTokenAddr, stakingAddr); + const contract = await factory.deploy(); + await contract.initialize(hmTokenAddr, stakingAddr); return contract; }; diff --git a/yarn.lock b/yarn.lock index f99964965f..dd47c7717b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3063,6 +3063,29 @@ table "^6.8.0" undici "^5.4.0" +"@openzeppelin/hardhat-upgrades@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.22.0.tgz#2a432c72a428a9f277201646bc1a248021538f06" + integrity sha512-1qyZnDaxl0C8tne7ykNRa/fxw3FrNCY2M3fGuCiQW5DDkJoXhLgm3JVsXwl6X7q9mQSrik4vgBbI3ErmxmZTYg== + dependencies: + "@openzeppelin/upgrades-core" "^1.20.0" + chalk "^4.1.0" + debug "^4.1.1" + proper-lockfile "^4.1.1" + +"@openzeppelin/upgrades-core@^1.20.0": + version "1.20.6" + resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.20.6.tgz#74f43d600151b8fda6e2d375f46ae0da55922620" + integrity sha512-KWdtlahm+iunlAlzLsdpBueanwEx0LLPfAkDL1p0C4SPjMiUqHHFlyGtmmWwdiqDpJ//605vfwkd5RqfnFrHSg== + dependencies: + cbor "^8.0.0" + chalk "^4.1.0" + compare-versions "^5.0.0" + debug "^4.1.1" + ethereumjs-util "^7.0.3" + proper-lockfile "^4.1.1" + solidity-ast "^0.4.15" + "@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": version "2.3.3" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz#21418e1f3819e0b353ceff0c2dad8ccb61acd777" @@ -6404,7 +6427,7 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== -cbor@^8.1.0: +cbor@^8.0.0, cbor@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== @@ -6936,6 +6959,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== +compare-versions@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.3.tgz#a9b34fea217472650ef4a2651d905f42c28ebfd7" + integrity sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A== + compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -9142,7 +9170,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -10171,9 +10199,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -15891,6 +15919,15 @@ prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +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" + protobufjs@^6.10.2: version "6.11.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" @@ -16951,6 +16988,11 @@ retimer@^2.0.0: resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg== +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" @@ -17574,6 +17616,11 @@ solc@0.7.3: semver "^5.5.0" tmp "0.0.33" +solidity-ast@^0.4.15: + version "0.4.39" + resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.39.tgz#410b266f47e7a50c07ff589239964e1c39f37d3c" + integrity sha512-91d4HMzV9x3ZG1fXRtAFFq2UjJrQXkyWdrmzXqBlueOSGB+v+0+iiLfZIPnTE0apndG2zm23qkZQJf8IbRrf7w== + solidity-comments-extractor@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" From b5c1f8d82b5bc9e70ac6c9581f4a1210e086be1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 3 Jan 2023 12:45:10 +0100 Subject: [PATCH 041/216] Test python sdk --- .github/workflows/ci-test-python-sdk.yaml | 4 ++-- packages/sdk/python/human_protocol_sdk/eth_bridge.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-test-python-sdk.yaml b/.github/workflows/ci-test-python-sdk.yaml index 438c6dde8d..afdd0a819b 100644 --- a/.github/workflows/ci-test-python-sdk.yaml +++ b/.github/workflows/ci-test-python-sdk.yaml @@ -11,9 +11,9 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install Node - run: yarn --ignore-scripts + run: npm install --global yarn && yarn --ignore-scripts - name: Set up Python 3.10 - uses: actions/setup-python@v1 + uses: actions/setup-python@v4 with: python-version: '3.10' - name: Install pipenv diff --git a/packages/sdk/python/human_protocol_sdk/eth_bridge.py b/packages/sdk/python/human_protocol_sdk/eth_bridge.py index 9cf627e961..65ea9996c3 100644 --- a/packages/sdk/python/human_protocol_sdk/eth_bridge.py +++ b/packages/sdk/python/human_protocol_sdk/eth_bridge.py @@ -334,7 +334,7 @@ def deploy_factory( abi=contract_interface["abi"], bytecode=contract_interface["bytecode"] ) - txn_func = factory.constructor + txn_func = factory.functions.initialize func_args = [hmtoken_address, staking_address] txn_info = { "gas_payer": gas_payer, From 5b9d7cfd72b45d58ab4cf668af98cbfb5e898b7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 3 Jan 2023 17:00:34 +0100 Subject: [PATCH 042/216] Test sdk --- packages/sdk/python/human_protocol_sdk/eth_bridge.py | 10 ++++++++-- packages/sdk/python/scripts/run-test.sh | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/sdk/python/human_protocol_sdk/eth_bridge.py b/packages/sdk/python/human_protocol_sdk/eth_bridge.py index 65ea9996c3..91d7ba21b3 100644 --- a/packages/sdk/python/human_protocol_sdk/eth_bridge.py +++ b/packages/sdk/python/human_protocol_sdk/eth_bridge.py @@ -334,8 +334,8 @@ def deploy_factory( abi=contract_interface["abi"], bytecode=contract_interface["bytecode"] ) - txn_func = factory.functions.initialize - func_args = [hmtoken_address, staking_address] + txn_func = factory.constructor + func_args = [] txn_info = { "gas_payer": gas_payer, "gas_payer_priv": gas_payer_priv, @@ -344,6 +344,12 @@ def deploy_factory( } txn_receipt = handle_transaction(txn_func, *func_args, **txn_info) contract_addr = txn_receipt["contractAddress"] + + factory_contract = get_factory(contract_addr) + txn_func = factory_contract.functions.initialize + func_args = [hmtoken_address, staking_address] + txn_receipt = handle_transaction(txn_func, *func_args, **txn_info) + return str(contract_addr) diff --git a/packages/sdk/python/scripts/run-test.sh b/packages/sdk/python/scripts/run-test.sh index 8476cc2af3..4b6c28be23 100755 --- a/packages/sdk/python/scripts/run-test.sh +++ b/packages/sdk/python/scripts/run-test.sh @@ -2,7 +2,7 @@ set -eux # Run hardhat node, and deploy contract locally -yarn workspace @human-protocol/core local & +# yarn workspace @human-protocol/core local & # Wait for the contracts to be deployed properly sleep 5 From c848eebefe209544c1269fbf8d6000c356979340 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 4 Jan 2023 10:27:02 +0100 Subject: [PATCH 043/216] Uncomment hardhat node --- packages/sdk/python/scripts/run-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/python/scripts/run-test.sh b/packages/sdk/python/scripts/run-test.sh index 4b6c28be23..8476cc2af3 100755 --- a/packages/sdk/python/scripts/run-test.sh +++ b/packages/sdk/python/scripts/run-test.sh @@ -2,7 +2,7 @@ set -eux # Run hardhat node, and deploy contract locally -# yarn workspace @human-protocol/core local & +yarn workspace @human-protocol/core local & # Wait for the contracts to be deployed properly sleep 5 From 8c4156f950b6be9bbe9f56468714fecd24e9fd9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 4 Jan 2023 10:38:18 +0100 Subject: [PATCH 044/216] Change KVSTORE address --- packages/sdk/python/human_protocol_sdk/eth_bridge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/python/human_protocol_sdk/eth_bridge.py b/packages/sdk/python/human_protocol_sdk/eth_bridge.py index 91d7ba21b3..b1d9aff08f 100644 --- a/packages/sdk/python/human_protocol_sdk/eth_bridge.py +++ b/packages/sdk/python/human_protocol_sdk/eth_bridge.py @@ -29,7 +29,7 @@ # See more details about the eth-kvstore here: https://github.com/hCaptcha/eth-kvstore KVSTORE_CONTRACT = Web3.toChecksumAddress( - os.getenv("KVSTORE_CONTRACT", "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9") + os.getenv("KVSTORE_CONTRACT", "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707") ) WEB3_POLL_LATENCY = float(os.getenv("WEB3_POLL_LATENCY", 5)) WEB3_TIMEOUT = int(os.getenv("WEB3_TIMEOUT", 240)) From 54ffe17ad9199756e0f8d5ebdac441ddaf08c44d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 4 Jan 2023 16:56:12 +0100 Subject: [PATCH 045/216] Tests for Proxy --- .../contracts/EscrowFactoryUpgradeTest.sol | 51 ++++++ packages/core/test/Proxy.ts | 153 ++++++++++++++++++ 2 files changed, 204 insertions(+) create mode 100644 packages/core/contracts/EscrowFactoryUpgradeTest.sol create mode 100644 packages/core/test/Proxy.ts diff --git a/packages/core/contracts/EscrowFactoryUpgradeTest.sol b/packages/core/contracts/EscrowFactoryUpgradeTest.sol new file mode 100644 index 0000000000..840b8e7575 --- /dev/null +++ b/packages/core/contracts/EscrowFactoryUpgradeTest.sol @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +import './Escrow.sol'; +import './interfaces/IStaking.sol'; +import './utils/Initializable.sol'; + +contract EscrowFactoryUpgradeTest is Initializable { + // all Escrows will have this duration. + uint256 constant STANDARD_DURATION = 8640000; + string constant ERROR_ZERO_ADDRESS = 'EscrowFactory: Zero Address'; + + uint256 public counter; + mapping(address => uint256) public escrowCounters; + address public lastEscrow; + address public eip20; + address public staking; + event Launched(address eip20, address escrow); + + function initialize(address _eip20, address _staking) public initializer { + require(_eip20 != address(0), ERROR_ZERO_ADDRESS); + eip20 = _eip20; + require(_staking != address(0), ERROR_ZERO_ADDRESS); + staking = _staking; + } + + function createEscrow( + address[] memory trustedHandlers + ) public returns (address) { + bool hasAvailableStake = IStaking(staking).hasAvailableStake( + msg.sender + ); + require( + hasAvailableStake == true, + 'Needs to stake HMT tokens to create an escrow.' + ); + + Escrow escrow = new Escrow( + eip20, + payable(msg.sender), + STANDARD_DURATION, + trustedHandlers + ); + counter++; + escrowCounters[address(escrow)] = counter; + lastEscrow = address(escrow); + emit Launched(eip20, lastEscrow); + return lastEscrow; + } +} diff --git a/packages/core/test/Proxy.ts b/packages/core/test/Proxy.ts new file mode 100644 index 0000000000..c506a36922 --- /dev/null +++ b/packages/core/test/Proxy.ts @@ -0,0 +1,153 @@ +import { assert, expect } from 'chai'; +import { Contract, Signer } from 'ethers'; +import { ethers, upgrades } from 'hardhat'; +import { HMToken, Staking } from '../typechain-types'; + +let escrowFactoryProxyContract: Contract, + HMTokenContract: HMToken, + stakingContract: Staking, + adminImplementation: Contract; +let owner: Signer, account1: Signer; + +describe('Proxy', function () { + this.beforeAll(async () => { + [owner, account1] = await ethers.getSigners(); + const HMToken = await ethers.getContractFactory('HMToken'); + HMTokenContract = await HMToken.deploy( + 1000000000, + 'Human Token', + 18, + 'HMT' + ); + await HMTokenContract.deployed(); + + const Staking = await ethers.getContractFactory('Staking'); + stakingContract = await Staking.deploy(HMTokenContract.address, 1, 1); + await stakingContract.deployed(); + + const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); + escrowFactoryProxyContract = await upgrades.deployProxy( + EscrowFactory, + [HMTokenContract.address, stakingContract.address], + { initializer: 'initialize' } + ); + await escrowFactoryProxyContract.deployed(); + + adminImplementation = await upgrades.admin.getInstance(); + }); + + it('Deploy proxy factory', async function () { + const adminAddress = await upgrades.erc1967.getAdminAddress( + escrowFactoryProxyContract.address + ); + const implementationAddress = + await upgrades.erc1967.getImplementationAddress( + escrowFactoryProxyContract.address + ); + + expect(adminAddress).to.equal(adminImplementation.address); + expect(adminAddress).to.equal( + await adminImplementation.getProxyAdmin( + escrowFactoryProxyContract.address + ) + ); + expect(implementationAddress).to.equal( + await adminImplementation.getProxyImplementation( + escrowFactoryProxyContract.address + ) + ); + }); + + it('Check proxy storage', async function () { + expect(HMTokenContract.address).to.equal( + await escrowFactoryProxyContract.eip20() + ); + expect(stakingContract.address).to.equal( + await escrowFactoryProxyContract.staking() + ); + }); + + it('Check implementation storage', async function () { + const escrowFactoryImplementation = await ethers.getContractAt( + 'EscrowFactory', + await upgrades.erc1967.getImplementationAddress( + escrowFactoryProxyContract.address + ) + ); + expect(await escrowFactoryImplementation.eip20()).to.equal( + ethers.constants.Zero + ); + expect(await escrowFactoryImplementation.staking()).to.equal( + ethers.constants.Zero + ); + }); + + it('Upgrade proxy', async function () { + expect( + await escrowFactoryProxyContract.hasEscrow(owner.getAddress()) + ).to.equal(false); + + const EscrowFactory = await ethers.getContractFactory( + 'EscrowFactoryUpgradeTest' + ); + escrowFactoryProxyContract = await upgrades.upgradeProxy( + escrowFactoryProxyContract, + EscrowFactory + ); + + try { + escrowFactoryProxyContract.hasEscrow(owner.getAddress()); + } catch (error: any) { + assert( + error.message === + 'escrowFactoryProxyContract.hasEscrow is not a function' + ); + } + + expect(HMTokenContract.address).to.equal( + await escrowFactoryProxyContract.eip20() + ); + expect(stakingContract.address).to.equal( + await escrowFactoryProxyContract.staking() + ); + }); + + it('Admin permissions', async function () { + expect(await adminImplementation.owner()).to.equal( + await owner.getAddress() + ); + + try { + await adminImplementation + .connect(account1) + .upgrade(escrowFactoryProxyContract.address, owner.getAddress()); + } catch (error: any) { + assert(error.message.includes('Ownable: caller is not the owner')); + } + + try { + await adminImplementation.upgrade( + escrowFactoryProxyContract.address, + owner.getAddress() + ); + } catch (error: any) { + assert( + error.message.includes('ERC1967: new implementation is not a contract') + ); + } + + adminImplementation.transferOwnership(account1.getAddress()); + expect(await adminImplementation.owner()).to.equal( + await account1.getAddress() + ); + + try { + await adminImplementation.upgrade( + escrowFactoryProxyContract.address, + owner.getAddress() + ); + } catch (error: any) { + assert(error.message.includes('Ownable: caller is not the owner')); + } + }); +}); From 2a9872202e262e8f36c41f62ca1f2ed3a3aa4179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 5 Jan 2023 11:25:15 +0100 Subject: [PATCH 046/216] Optimize EscrowFactory tests --- packages/core/test/EscrowFactory.ts | 111 +++++++++++++--------------- 1 file changed, 51 insertions(+), 60 deletions(-) diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 29a0cd4bcc..19289e1f59 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -12,7 +12,7 @@ describe('EscrowFactory', function () { trustedHandlers: string[]; let token: HMToken, escrowFactory: EscrowFactory, staking: Staking; - + let firstEscrow: string, secondEscrow: string; const minimumStake = 2; const lockPeriod = 2; @@ -33,7 +33,7 @@ describe('EscrowFactory', function () { return await createEscrow(); } - beforeEach(async () => { + this.beforeAll(async () => { [owner, operator, reputationOracle, recordingOracle] = await ethers.getSigners(); @@ -75,75 +75,66 @@ describe('EscrowFactory', function () { }); }); - it('Operator should not be able to create an escrow without staking', async () => { - await expect( - escrowFactory - .connect(operator) - .createEscrow([ethers.constants.AddressZero]) - ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); - }); - - it('Operator should be able to create an escrow after staking', async () => { - const event = await stakeAndCreateEscrow(staking); - - expect(event?.eip20).to.equal(token.address, 'token address is correct'); - expect(event?.escrow).to.not.be.null; - }); - - it('Should emit an event on launched', async function () { - await staking.connect(operator).stake(stakeAmount); - - await expect(escrowFactory.connect(operator).createEscrow(trustedHandlers)) - .to.emit(escrowFactory, 'Launched') - .withArgs(token.address, anyValue); - }); - - it('Should find the newly created escrow from deployed escrow', async () => { - await stakeAndCreateEscrow(staking); + describe('createEscrow', () => { + it('Operator should not be able to create an escrow without staking', async () => { + await expect( + escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); + }); - const escrowAddress = await escrowFactory.lastEscrow(); - const result = await escrowFactory - .connect(operator) - .hasEscrow(escrowAddress); - expect(result).to.equal(true); - }); + it('Operator should be able to create an escrow after staking', async () => { + const event = await stakeAndCreateEscrow(staking); + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + firstEscrow = event?.escrow; + }); - it('Operator should be able to create another escrow after allocating some of the stakes', async () => { - const result = await stakeAndCreateEscrow(staking); - const escrowAddress = result?.escrow; + it('Should emit an event on launched', async function () { + await staking.connect(operator).stake(stakeAmount); - staking - .connect(operator) - .allocate(escrowAddress.toString(), stakeAmount / 2); + await expect( + escrowFactory.connect(operator).createEscrow(trustedHandlers) + ) + .to.emit(escrowFactory, 'Launched') + .withArgs(token.address, anyValue); + }); - const event = await createEscrow(); + it('Should find the newly created escrow from deployed escrow', async () => { + secondEscrow = await escrowFactory.lastEscrow(); + const result = await escrowFactory + .connect(operator) + .hasEscrow(secondEscrow); + expect(result).to.equal(true); + }); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); - expect(event?.escrow).to.not.be.null; - }); + it('Operator should be able to create another escrow after allocating some of the stakes', async () => { + staking.connect(operator).allocate(secondEscrow.toString(), stakeAmount); - it('Operator should not be able to create an escrow after allocating all of the stakes', async () => { - const result = await stakeAndCreateEscrow(staking); - const escrowAddress = result?.escrow; + const event = await createEscrow(); - staking.connect(operator).allocate(escrowAddress.toString(), stakeAmount); + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + }); - await expect( - escrowFactory + it('Operator should not be able to create an escrow after allocating all of the stakes', async () => { + await staking .connect(operator) - .createEscrow([ethers.constants.AddressZero]) - ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); - }); - - it('Operator should be able to create an escrow after staking more tokens', async () => { - const result = await stakeAndCreateEscrow(staking); - const escrowAddress = result?.escrow; + .allocate(firstEscrow.toString(), stakeAmount); - staking.connect(operator).allocate(escrowAddress.toString(), stakeAmount); + await expect( + escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); + }); - const event = await stakeAndCreateEscrow(staking); + it('Operator should be able to create an escrow after staking more tokens', async () => { + const event = await stakeAndCreateEscrow(staking); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); - expect(event?.escrow).to.not.be.null; + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + }); }); }); From 7a374e377b0f4f6f4f8c5eef6ec5d7bec8741248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 5 Jan 2023 13:13:48 +0100 Subject: [PATCH 047/216] Update Proxy tests --- packages/core/test/Proxy.ts | 55 ++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/packages/core/test/Proxy.ts b/packages/core/test/Proxy.ts index c506a36922..5b5da24b5f 100644 --- a/packages/core/test/Proxy.ts +++ b/packages/core/test/Proxy.ts @@ -94,15 +94,12 @@ describe('Proxy', function () { escrowFactoryProxyContract, EscrowFactory ); - - try { + await expect(() => { escrowFactoryProxyContract.hasEscrow(owner.getAddress()); - } catch (error: any) { - assert( - error.message === - 'escrowFactoryProxyContract.hasEscrow is not a function' - ); - } + }).to.throw( + TypeError, + 'escrowFactoryProxyContract.hasEscrow is not a function' + ); expect(HMTokenContract.address).to.equal( await escrowFactoryProxyContract.eip20() @@ -112,42 +109,36 @@ describe('Proxy', function () { ); }); - it('Admin permissions', async function () { + it('Revert when updating with a non contract address', async function () { + await expect( + adminImplementation.upgrade( + escrowFactoryProxyContract.address, + owner.getAddress() + ) + ).to.be.revertedWith('ERC1967: new implementation is not a contract'); + }); + + it('Only admin can modify', async function () { expect(await adminImplementation.owner()).to.equal( await owner.getAddress() ); - try { - await adminImplementation + await expect( + adminImplementation .connect(account1) - .upgrade(escrowFactoryProxyContract.address, owner.getAddress()); - } catch (error: any) { - assert(error.message.includes('Ownable: caller is not the owner')); - } - - try { - await adminImplementation.upgrade( - escrowFactoryProxyContract.address, - owner.getAddress() - ); - } catch (error: any) { - assert( - error.message.includes('ERC1967: new implementation is not a contract') - ); - } + .upgrade(escrowFactoryProxyContract.address, owner.getAddress()) + ).to.be.revertedWith('Ownable: caller is not the owner'); adminImplementation.transferOwnership(account1.getAddress()); expect(await adminImplementation.owner()).to.equal( await account1.getAddress() ); - try { - await adminImplementation.upgrade( + await expect( + adminImplementation.upgrade( escrowFactoryProxyContract.address, owner.getAddress() - ); - } catch (error: any) { - assert(error.message.includes('Ownable: caller is not the owner')); - } + ) + ).to.be.revertedWith('Ownable: caller is not the owner'); }); }); From 8363b82cc02d4318eb1f727897443098dc3bc131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 5 Jan 2023 17:18:57 +0100 Subject: [PATCH 048/216] Optimize core tests --- packages/core/test/EscrowFactory.ts | 111 +++++++++++++++------------- packages/core/test/Proxy.ts | 4 +- packages/core/test/RewardPool.ts | 24 +++--- packages/core/test/Staking.ts | 4 +- 4 files changed, 80 insertions(+), 63 deletions(-) diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 19289e1f59..02dff65711 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -12,7 +12,7 @@ describe('EscrowFactory', function () { trustedHandlers: string[]; let token: HMToken, escrowFactory: EscrowFactory, staking: Staking; - let firstEscrow: string, secondEscrow: string; + const minimumStake = 2; const lockPeriod = 2; @@ -48,7 +48,9 @@ describe('EscrowFactory', function () { // Send HMT tokens to the operator await token.connect(owner).transfer(await operator.getAddress(), 1000); + }); + this.beforeEach(async () => { // Deploy Staking Conract const Staking = await ethers.getContractFactory('Staking'); staking = await Staking.deploy(token.address, minimumStake, lockPeriod); @@ -75,66 +77,75 @@ describe('EscrowFactory', function () { }); }); - describe('createEscrow', () => { - it('Operator should not be able to create an escrow without staking', async () => { - await expect( - escrowFactory - .connect(operator) - .createEscrow([ethers.constants.AddressZero]) - ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); - }); + it('Operator should not be able to create an escrow without staking', async () => { + await expect( + escrowFactory + .connect(operator) + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); + }); - it('Operator should be able to create an escrow after staking', async () => { - const event = await stakeAndCreateEscrow(staking); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); - expect(event?.escrow).to.not.be.null; - firstEscrow = event?.escrow; - }); + it('Operator should be able to create an escrow after staking', async () => { + const event = await stakeAndCreateEscrow(staking); - it('Should emit an event on launched', async function () { - await staking.connect(operator).stake(stakeAmount); + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + }); - await expect( - escrowFactory.connect(operator).createEscrow(trustedHandlers) - ) - .to.emit(escrowFactory, 'Launched') - .withArgs(token.address, anyValue); - }); + it('Should emit an event on launched', async function () { + await staking.connect(operator).stake(stakeAmount); - it('Should find the newly created escrow from deployed escrow', async () => { - secondEscrow = await escrowFactory.lastEscrow(); - const result = await escrowFactory - .connect(operator) - .hasEscrow(secondEscrow); - expect(result).to.equal(true); - }); + await expect(escrowFactory.connect(operator).createEscrow(trustedHandlers)) + .to.emit(escrowFactory, 'Launched') + .withArgs(token.address, anyValue); + }); - it('Operator should be able to create another escrow after allocating some of the stakes', async () => { - staking.connect(operator).allocate(secondEscrow.toString(), stakeAmount); + it('Should find the newly created escrow from deployed escrow', async () => { + await stakeAndCreateEscrow(staking); - const event = await createEscrow(); + const escrowAddress = await escrowFactory.lastEscrow(); + const result = await escrowFactory + .connect(operator) + .hasEscrow(escrowAddress); + expect(result).to.equal(true); + }); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); - expect(event?.escrow).to.not.be.null; - }); + it('Operator should be able to create another escrow after allocating some of the stakes', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; + + staking + .connect(operator) + .allocate(escrowAddress.toString(), stakeAmount / 2); + + const event = await createEscrow(); + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + }); - it('Operator should not be able to create an escrow after allocating all of the stakes', async () => { - await staking + it('Operator should not be able to create an escrow after allocating all of the stakes', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; + + staking.connect(operator).allocate(escrowAddress.toString(), stakeAmount); + + await expect( + escrowFactory .connect(operator) - .allocate(firstEscrow.toString(), stakeAmount); + .createEscrow([ethers.constants.AddressZero]) + ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); + }); - await expect( - escrowFactory - .connect(operator) - .createEscrow([ethers.constants.AddressZero]) - ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); - }); + it('Operator should be able to create an escrow after staking more tokens', async () => { + const result = await stakeAndCreateEscrow(staking); + const escrowAddress = result?.escrow; - it('Operator should be able to create an escrow after staking more tokens', async () => { - const event = await stakeAndCreateEscrow(staking); + staking.connect(operator).allocate(escrowAddress.toString(), stakeAmount); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); - expect(event?.escrow).to.not.be.null; - }); + const event = await stakeAndCreateEscrow(staking); + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; }); }); diff --git a/packages/core/test/Proxy.ts b/packages/core/test/Proxy.ts index 5b5da24b5f..bf66b98a18 100644 --- a/packages/core/test/Proxy.ts +++ b/packages/core/test/Proxy.ts @@ -1,4 +1,4 @@ -import { assert, expect } from 'chai'; +import { expect } from 'chai'; import { Contract, Signer } from 'ethers'; import { ethers, upgrades } from 'hardhat'; import { HMToken, Staking } from '../typechain-types'; @@ -24,7 +24,9 @@ describe('Proxy', function () { const Staking = await ethers.getContractFactory('Staking'); stakingContract = await Staking.deploy(HMTokenContract.address, 1, 1); await stakingContract.deployed(); + }); + this.beforeEach(async () => { const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); escrowFactoryProxyContract = await upgrades.deployProxy( EscrowFactory, diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index 9336624f4a..9cf8135fb5 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -26,7 +26,7 @@ describe('RewardPool', function () { const lockPeriod = 2; const rewardFee = 2; - beforeEach(async () => { + this.beforeAll(async () => { [ owner, validator, @@ -42,6 +42,18 @@ describe('RewardPool', function () { const HMToken = await ethers.getContractFactory('HMToken'); token = await HMToken.deploy(1000000000, 'Human Token', 18, 'HMT'); + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = await Staking.deploy(token.address, minimumStake, lockPeriod); + + // Deploy Escrow Factory Contract + const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); + + escrowFactory = await EscrowFactory.deploy(); + await escrowFactory.initialize(token.address, staking.address); + }); + + this.beforeEach(async () => { // Send HMT tokens to contract participants [ validator, @@ -62,16 +74,6 @@ describe('RewardPool', function () { ); }); - // Deploy Staking Conract - const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy(token.address, minimumStake, lockPeriod); - - // Deploy Escrow Factory Contract - const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - - escrowFactory = await EscrowFactory.deploy(); - await escrowFactory.initialize(token.address, staking.address); - // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); rewardPool = await RewardPool.deploy( diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 2806ffef8b..b0b4f98bc4 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -38,7 +38,7 @@ describe('Staking', function () { staking: Staking, rewardPool: RewardPool; - this.beforeEach(async () => { + this.beforeAll(async () => { [ owner, validator, @@ -75,7 +75,9 @@ describe('Staking', function () { ); }) ); + }); + this.beforeEach(async () => { // Deploy Staking Conract const Staking = await ethers.getContractFactory('Staking'); staking = await Staking.deploy(token.address, minimumStake, lockPeriod); From 149cfc59cb4e3d8e0d4b33cdffc850bee23959ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Mon, 9 Jan 2023 09:41:29 +0100 Subject: [PATCH 049/216] remove some github workflows actions and change the proxy name to a specific one --- .github/workflows/ci-test-python-sdk.yaml | 4 ++-- packages/core/test/{Proxy.ts => EscrowFactoryProxy.ts} | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename packages/core/test/{Proxy.ts => EscrowFactoryProxy.ts} (98%) diff --git a/.github/workflows/ci-test-python-sdk.yaml b/.github/workflows/ci-test-python-sdk.yaml index afdd0a819b..438c6dde8d 100644 --- a/.github/workflows/ci-test-python-sdk.yaml +++ b/.github/workflows/ci-test-python-sdk.yaml @@ -11,9 +11,9 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install Node - run: npm install --global yarn && yarn --ignore-scripts + run: yarn --ignore-scripts - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v1 with: python-version: '3.10' - name: Install pipenv diff --git a/packages/core/test/Proxy.ts b/packages/core/test/EscrowFactoryProxy.ts similarity index 98% rename from packages/core/test/Proxy.ts rename to packages/core/test/EscrowFactoryProxy.ts index bf66b98a18..cb80ab0642 100644 --- a/packages/core/test/Proxy.ts +++ b/packages/core/test/EscrowFactoryProxy.ts @@ -9,7 +9,7 @@ let escrowFactoryProxyContract: Contract, adminImplementation: Contract; let owner: Signer, account1: Signer; -describe('Proxy', function () { +describe('EscrowFactoryProxy', function () { this.beforeAll(async () => { [owner, account1] = await ethers.getSigners(); const HMToken = await ethers.getContractFactory('HMToken'); From 016cbaee04dd9ef703b0aa85b98b77818cefeaf0 Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Mon, 9 Jan 2023 19:44:14 -0500 Subject: [PATCH 050/216] RewardPool withdraw (#149) * add withdraw functionality * make reward pool & staking uups upgradeable * fix fortune test * fix fortune test --- packages/core/.gitignore | 3 + packages/core/contracts/HMToken.sol | 3 +- packages/core/contracts/RewardPool.sol | 50 +- packages/core/contracts/Staking.sol | 32 +- .../core/contracts/interfaces/IRewardPool.sol | 2 + packages/core/contracts/utils/Context.sol | 24 - packages/core/contracts/utils/Ownable.sol | 75 --- packages/core/contracts/utils/Strings.sol | 73 --- packages/core/hardhat.config.ts | 1 + packages/core/package.json | 5 +- packages/core/scripts/deploy.ts | 27 +- packages/core/test/EscrowFactory.ts | 8 +- packages/core/test/RewardPool.ts | 49 +- packages/core/test/Staking.ts | 18 +- .../fortune/launcher/.env.development | 4 +- .../src/services/escrow.test.ts | 6 +- .../src/services/fortune.test.ts | 6 +- .../src/services/escrow.test.ts | 6 +- .../fortune/tests/e2e-backend/constants.js | 2 +- .../python/human_protocol_sdk/eth_bridge.py | 4 +- packages/sdk/python/human_protocol_sdk/job.py | 2 +- .../human-protocol-sdk/src/utils.ts | 6 +- .../human-protocol-sdk/test/job.test.ts | 2 +- .../test/utils/constants.ts | 2 +- yarn.lock | 498 ++++++++++-------- 25 files changed, 462 insertions(+), 446 deletions(-) delete mode 100644 packages/core/contracts/utils/Context.sol delete mode 100644 packages/core/contracts/utils/Ownable.sol delete mode 100644 packages/core/contracts/utils/Strings.sol diff --git a/packages/core/.gitignore b/packages/core/.gitignore index 84117bc95b..0ed5e3c4c2 100644 --- a/packages/core/.gitignore +++ b/packages/core/.gitignore @@ -22,3 +22,6 @@ flattened.sol # Tenderly fork deployment directory deployments_tenderly + +# OpenZeppelin +.openzeppelin diff --git a/packages/core/contracts/HMToken.sol b/packages/core/contracts/HMToken.sol index ef22b4f724..598e9a4fe1 100644 --- a/packages/core/contracts/HMToken.sol +++ b/packages/core/contracts/HMToken.sol @@ -2,8 +2,9 @@ pragma solidity >=0.6.2; +import '@openzeppelin/contracts/access/Ownable.sol'; + import './interfaces/HMTokenInterface.sol'; -import './utils/Ownable.sol'; import './utils/SafeMath.sol'; contract HMToken is HMTokenInterface, Ownable { diff --git a/packages/core/contracts/RewardPool.sol b/packages/core/contracts/RewardPool.sol index d8b35ea992..a4475ad24b 100644 --- a/packages/core/contracts/RewardPool.sol +++ b/packages/core/contracts/RewardPool.sol @@ -2,6 +2,9 @@ pragma solidity >=0.6.2; +import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; +import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; + import './interfaces/HMTokenInterface.sol'; import './interfaces/IRewardPool.sol'; import './utils/Math.sol'; @@ -10,21 +13,23 @@ import './utils/Math.sol'; * @title Reward Pool contract * @dev Reward Pool keeps slashed tokens, track of who slashed how much tokens, and distributes the reward after protocol fee. */ -contract RewardPool is IRewardPool { +contract RewardPool is IRewardPool, OwnableUpgradeable, UUPSUpgradeable { using SafeMath for uint256; // ERC20 Token address - address public immutable eip20; + address public eip20; // Staking contract address - address public immutable staking; + address public staking; // Protocol Fee - uint256 public immutable fees; + uint256 public fees; // Rewards per allocation mapping(address => Reward[]) public rewards; + uint256 public totalFee; + /** * @dev Emitted when a new reward record is created. */ @@ -34,7 +39,21 @@ contract RewardPool is IRewardPool { uint256 tokens ); - constructor(address _eip20, address _staking, uint256 _fees) { + function initialize( + address _eip20, + address _staking, + uint256 _fees + ) external payable virtual initializer { + __Ownable_init_unchained(); + + __RewardPool_init_unchained(_eip20, _staking, _fees); + } + + function __RewardPool_init_unchained( + address _eip20, + address _staking, + uint256 _fees + ) internal onlyInitializing { eip20 = _eip20; staking = _staking; fees = _fees; @@ -51,11 +70,13 @@ contract RewardPool is IRewardPool { ) external override onlyStaking { // If the reward is smaller than protocol fee, just keep as fee if (_tokens < fees) { + totalFee = totalFee + _tokens; return; } // Deduct protocol fee for each reward uint256 rewardAfterFee = _tokens - fees; + totalFee = totalFee + fees; // Add reward record Reward memory reward = Reward(_escrowAddress, _slasher, rewardAfterFee); @@ -90,8 +111,27 @@ contract RewardPool is IRewardPool { } } + function withdraw(address to) external override onlyOwner { + HMTokenInterface token = HMTokenInterface(eip20); + + uint256 amount = totalFee; + totalFee = 0; + + token.transfer(to, amount); + } + modifier onlyStaking() { require(staking == msg.sender, 'Caller is not staking contract'); _; } + + // solhint-disable-next-line no-empty-blocks + function _authorizeUpgrade(address) internal override onlyOwner {} + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[45] private __gap; } diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index bd607c75cc..a794d675a5 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -2,19 +2,21 @@ pragma solidity >=0.6.2; +import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; +import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; + import './interfaces/HMTokenInterface.sol'; import './interfaces/IEscrow.sol'; import './interfaces/IRewardPool.sol'; import './interfaces/IStaking.sol'; import './libs/Stakes.sol'; import './utils/Math.sol'; -import './utils/Ownable.sol'; /** * @title Staking contract * @dev The Staking contract allows Operator, Exchange Oracle, Recording Oracle and Reputation Oracle to stake to Escrow. */ -contract Staking is IStaking, Ownable { +contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { using SafeMath for uint256; using Stakes for Stakes.Staker; @@ -94,7 +96,21 @@ contract Staking is IStaking, Ownable { */ event SetRewardPool(address indexed rewardPool); - constructor(address _eip20, uint256 _minimumStake, uint32 _lockPeriod) { + function initialize( + address _eip20, + uint256 _minimumStake, + uint32 _lockPeriod + ) external payable virtual initializer { + __Ownable_init_unchained(); + + __Staking_init_unchained(_eip20, _minimumStake, _lockPeriod); + } + + function __Staking_init_unchained( + address _eip20, + uint256 _minimumStake, + uint32 _lockPeriod + ) internal onlyInitializing { eip20 = _eip20; _setMinimumStake(_minimumStake); _setLockPeriod(_lockPeriod); @@ -532,4 +548,14 @@ contract Staking is IStaking, Ownable { require(staker.tokensStaked > 0, 'Caller is not a staker'); _; } + + // solhint-disable-next-line no-empty-blocks + function _authorizeUpgrade(address) internal override onlyOwner {} + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[43] private __gap; } diff --git a/packages/core/contracts/interfaces/IRewardPool.sol b/packages/core/contracts/interfaces/IRewardPool.sol index 7525ddd8c8..f3b7d019da 100644 --- a/packages/core/contracts/interfaces/IRewardPool.sol +++ b/packages/core/contracts/interfaces/IRewardPool.sol @@ -23,4 +23,6 @@ interface IRewardPool { ) external view returns (Reward[] memory); function distributeReward(address _escrowAddress) external; + + function withdraw(address to) external; } diff --git a/packages/core/contracts/utils/Context.sol b/packages/core/contracts/utils/Context.sol deleted file mode 100644 index 7ce6ed22e2..0000000000 --- a/packages/core/contracts/utils/Context.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity >=0.6.2; - -/** - * @dev Provides information about the current execution context, including the - * sender of the transaction and its data. While these are generally available - * via msg.sender and msg.data, they should not be accessed in such a direct - * manner, since when dealing with meta-transactions the account sending and - * paying for execution may not be the actual sender (as far as an application - * is concerned). - * - * This contract is only required for intermediate, library-like contracts. - */ -abstract contract Context { - function _msgSender() internal view virtual returns (address) { - return msg.sender; - } - - function _msgData() internal view virtual returns (bytes memory) { - this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 - return msg.data; - } -} diff --git a/packages/core/contracts/utils/Ownable.sol b/packages/core/contracts/utils/Ownable.sol deleted file mode 100644 index 1a2dfffc86..0000000000 --- a/packages/core/contracts/utils/Ownable.sol +++ /dev/null @@ -1,75 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity >=0.6.2; - -import './Context.sol'; - -/** - * @dev Contract module which provides a basic access control mechanism, where - * there is an account (an owner) that can be granted exclusive access to - * specific functions. - * - * By default, the owner account will be the one that deploys the contract. This - * can later be changed with {transferOwnership}. - * - * This module is used through inheritance. It will make available the modifier - * `onlyOwner`, which can be applied to your functions to restrict their use to - * the owner. - */ -contract Ownable is Context { - address private _owner; - - event OwnershipTransferred( - address indexed previousOwner, - address indexed newOwner - ); - - /** - * @dev Initializes the contract setting the deployer as the initial owner. - */ - constructor() { - address msgSender = _msgSender(); - _owner = msgSender; - emit OwnershipTransferred(address(0), msgSender); - } - - /** - * @dev Returns the address of the current owner. - */ - function owner() public view returns (address) { - return _owner; - } - - /** - * @dev Throws if called by any account other than the owner. - */ - modifier onlyOwner() { - require(_owner == _msgSender(), 'Ownable: caller is not the owner'); - _; - } - - /** - * @dev Leaves the contract without owner. It will not be possible to call - * `onlyOwner` functions anymore. Can only be called by the current owner. - * - * NOTE: Renouncing ownership will leave the contract without an owner, - * thereby removing any functionality that is only available to the owner. - */ - function renounceOwnership() public virtual onlyOwner { - emit OwnershipTransferred(_owner, address(0)); - _owner = address(0); - } - - /** - * @dev Transfers ownership of the contract to a new account (`newOwner`). - * Can only be called by the current owner. - */ - function transferOwnership(address newOwner) public virtual onlyOwner { - require( - newOwner != address(0), - 'Ownable: new owner is the zero address' - ); - emit OwnershipTransferred(_owner, newOwner); - _owner = newOwner; - } -} diff --git a/packages/core/contracts/utils/Strings.sol b/packages/core/contracts/utils/Strings.sol deleted file mode 100644 index ab0028ceb1..0000000000 --- a/packages/core/contracts/utils/Strings.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol) - -pragma solidity >=0.6.2; - -import './Math.sol'; - -/** - * @dev String operations. - */ -library Strings { - bytes16 private constant _SYMBOLS = '0123456789abcdef'; - uint8 private constant _ADDRESS_LENGTH = 20; - - /** - * @dev Converts a `uint256` to its ASCII `string` decimal representation. - */ - function toString(uint256 value) internal pure returns (string memory) { - unchecked { - uint256 length = Math.log10(value) + 1; - string memory buffer = new string(length); - uint256 ptr; - /// @solidity memory-safe-assembly - assembly { - ptr := add(buffer, add(32, length)) - } - while (true) { - ptr--; - /// @solidity memory-safe-assembly - assembly { - mstore8(ptr, byte(mod(value, 10), _SYMBOLS)) - } - value /= 10; - if (value == 0) break; - } - return buffer; - } - } - - /** - * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. - */ - function toHexString(uint256 value) internal pure returns (string memory) { - unchecked { - return toHexString(value, Math.log256(value) + 1); - } - } - - /** - * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. - */ - function toHexString( - uint256 value, - uint256 length - ) internal pure returns (string memory) { - bytes memory buffer = new bytes(2 * length + 2); - buffer[0] = '0'; - buffer[1] = 'x'; - for (uint256 i = 2 * length + 1; i > 1; --i) { - buffer[i] = _SYMBOLS[value & 0xf]; - value >>= 4; - } - require(value == 0, 'Strings: hex length insufficient'); - return string(buffer); - } - - /** - * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation. - */ - function toHexString(address addr) internal pure returns (string memory) { - return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH); - } -} diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 2a35b946f8..d08859bd46 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -12,6 +12,7 @@ import 'hardhat-contract-sizer'; import * as tdly from '@tenderly/hardhat-tenderly'; import 'hardhat-abi-exporter'; import '@nomicfoundation/hardhat-toolbox'; +import '@openzeppelin/hardhat-upgrades'; dotenv.config(); diff --git a/packages/core/package.json b/packages/core/package.json index 3616ef9878..043d52068d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.12", + "version": "1.0.27", "files": [ "contracts/**/*.sol", "abis/**/*.json", @@ -44,6 +44,9 @@ "@nomicfoundation/hardhat-toolbox": "^2.0.0", "@nomiclabs/hardhat-ethers": "^2.2.1", "@nomiclabs/hardhat-etherscan": "^3.1.2", + "@openzeppelin/contracts": "^4.8.0", + "@openzeppelin/contracts-upgradeable": "^4.8.0", + "@openzeppelin/hardhat-upgrades": "^1.22.0", "@tenderly/hardhat-tenderly": "^1.1.6", "@typechain/ethers-v5": "^10.1.1", "@typechain/hardhat": "^6.1.4", diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index c08c857058..ed424de511 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -1,5 +1,5 @@ /* eslint-disable no-console */ -import { ethers } from 'hardhat'; +import { ethers, upgrades } from 'hardhat'; async function main() { const [, ...accounts] = await ethers.getSigners(); @@ -14,9 +14,17 @@ async function main() { console.log('HMToken Address: ', HMTokenContract.address); const Staking = await ethers.getContractFactory('Staking'); - const stakingContract = await Staking.deploy(HMTokenContract.address, 1, 1); + const stakingContract = await upgrades.deployProxy( + Staking, + [HMTokenContract.address, 1, 1], + { initializer: 'initialize', kind: 'uups' } + ); await stakingContract.deployed(); - console.log('Staking Contract Address:', stakingContract.address); + console.log('Staking Proxy Address: ', stakingContract.address); + console.log( + 'Staking Implementation Address: ', + await upgrades.erc1967.getImplementationAddress(stakingContract.address) + ); const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); const escrowFactoryContract = await EscrowFactory.deploy( @@ -34,13 +42,18 @@ async function main() { console.log('KVStore Address: ', kvStoreContract.address); const RewardPool = await ethers.getContractFactory('RewardPool'); - const rewardPoolContract = await RewardPool.deploy( - HMTokenContract.address, - stakingContract.address, - 1 + const rewardPoolContract = await upgrades.deployProxy( + RewardPool, + [HMTokenContract.address, stakingContract.address, 1], + { initializer: 'initialize', kind: 'uups' } ); await rewardPoolContract.deployed(); console.log('Reward Pool Contract Address:', rewardPoolContract.address); + console.log('Reward Pool Proxy Address: ', rewardPoolContract.address); + console.log( + 'Reward Pool Implementation Address: ', + await upgrades.erc1967.getImplementationAddress(rewardPoolContract.address) + ); // Configure RewardPool in Staking await stakingContract.setRewardPool(rewardPoolContract.address); diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 8b16a77aa2..931dcfbb48 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -1,6 +1,6 @@ import { anyValue } from '@nomicfoundation/hardhat-chai-matchers/withArgs'; import { expect } from 'chai'; -import { ethers } from 'hardhat'; +import { ethers, upgrades } from 'hardhat'; import { Signer } from 'ethers'; import { EscrowFactory, HMToken, Staking } from '../typechain-types'; @@ -51,7 +51,11 @@ describe('EscrowFactory', function () { // Deploy Staking Conract const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy(token.address, minimumStake, lockPeriod); + staking = (await upgrades.deployProxy( + Staking, + [token.address, minimumStake, lockPeriod], + { kind: 'uups', initializer: 'initialize' } + )) as Staking; // Approve spend HMT tokens staking contract await token.connect(operator).approve(staking.address, 1000); diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index f12c009f61..19311f2637 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -1,4 +1,4 @@ -import { ethers } from 'hardhat'; +import { ethers, upgrades } from 'hardhat'; import { Signer } from 'ethers'; import { EscrowFactory, @@ -64,7 +64,11 @@ describe('RewardPool', function () { // Deploy Staking Conract const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy(token.address, minimumStake, lockPeriod); + staking = (await upgrades.deployProxy( + Staking, + [token.address, minimumStake, lockPeriod], + { kind: 'uups', initializer: 'initialize' } + )) as Staking; // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); @@ -73,11 +77,11 @@ describe('RewardPool', function () { // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); - rewardPool = await RewardPool.deploy( - token.address, - staking.address, - rewardFee - ); + rewardPool = (await upgrades.deployProxy( + RewardPool, + [token.address, staking.address, rewardFee], + { kind: 'uups', initializer: 'initialize' } + )) as RewardPool; // Configure RewardPool in Staking await staking.setRewardPool(rewardPool.address); @@ -188,7 +192,7 @@ describe('RewardPool', function () { }); }); - describe('Distribute Reward', () => { + describe('Distribute & Withdraw Reward', () => { let escrowAddress: string; const stakedTokens = 10; const allocatedTokens = 8; @@ -254,5 +258,34 @@ describe('RewardPool', function () { expect(await token.balanceOf(rewardPool.address)).to.equal(rewardFee * 2); }); + + it('Should withdraw the reward', async () => { + const vSlashAmount = 2; + const v2SlashAmount = 3; + await staking + .connect(owner) + .slash( + await validator.getAddress(), + await operator.getAddress(), + escrowAddress, + vSlashAmount + ); + await staking + .connect(owner) + .slash( + await validator2.getAddress(), + await operator.getAddress(), + escrowAddress, + v2SlashAmount + ); + + const oBalanceBefore = await token.balanceOf(await owner.getAddress()); + + await rewardPool.withdraw(await owner.getAddress()); + + expect(await token.balanceOf(await owner.getAddress())).to.equal( + oBalanceBefore.add(rewardFee * 2) + ); + }); }); }); diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 3c563d32c6..7f5d2aedff 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -1,6 +1,6 @@ import { anyValue } from '@nomicfoundation/hardhat-chai-matchers/withArgs'; import { expect } from 'chai'; -import { ethers } from 'hardhat'; +import { ethers, upgrades } from 'hardhat'; import { Signer } from 'ethers'; import { EscrowFactory, @@ -78,7 +78,11 @@ describe('Staking', function () { // Deploy Staking Conract const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy(token.address, minimumStake, lockPeriod); + staking = (await upgrades.deployProxy( + Staking, + [token.address, minimumStake, lockPeriod], + { kind: 'uups', initializer: 'initialize' } + )) as Staking; // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); @@ -87,11 +91,11 @@ describe('Staking', function () { // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); - rewardPool = await RewardPool.deploy( - token.address, - staking.address, - rewardFee - ); + rewardPool = (await upgrades.deployProxy( + RewardPool, + [token.address, staking.address, rewardFee], + { kind: 'uups', initializer: 'initialize' } + )) as RewardPool; // Topup staking address await token.connect(owner).transfer(staking.address, 1000); diff --git a/packages/examples/fortune/launcher/.env.development b/packages/examples/fortune/launcher/.env.development index ff5b2402ee..ef04f6597a 100644 --- a/packages/examples/fortune/launcher/.env.development +++ b/packages/examples/fortune/launcher/.env.development @@ -1,6 +1,6 @@ REACT_APP_PUBLIC_URL=/ REACT_APP_HMT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 -REACT_APP_ESCROW_FACTORY_ADDRESS=0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 +REACT_APP_ESCROW_FACTORY_ADDRESS=0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0 REACT_APP_REC_ORACLE_ADDRESS=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 REACT_APP_REP_ORACLE_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC -REACT_APP_EXCHANGE_ORACLE_ADDRESS=0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809 \ No newline at end of file +REACT_APP_EXCHANGE_ORACLE_ADDRESS=0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809 diff --git a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts index fe0061c3f5..e230a3b50a 100644 --- a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts @@ -53,12 +53,16 @@ describe('Escrow', () => { staking = await stakingContract .deploy({ data: Staking.bytecode, - arguments: [token.options.address, web3.utils.toWei('1', 'ether'), 1], + arguments: [], }) .send({ from: owner.address, }); + await staking.methods + .initialize(token.options.address, web3.utils.toWei('1', 'ether'), 1) + .send({ from: owner.address }); + const escrowFactoryContract = new web3.eth.Contract( EscrowFactory.abi as [] ); diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts index 065443d8fd..e1934374f4 100644 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts @@ -60,12 +60,16 @@ describe('Fortune', () => { staking = await stakingContract .deploy({ data: Staking.bytecode, - arguments: [token.options.address, web3.utils.toWei('1', 'ether'), 1], + arguments: [], }) .send({ from: owner.address, }); + await staking.methods + .initialize(token.options.address, web3.utils.toWei('1', 'ether'), 1) + .send({ from: owner.address }); + const escrowFactoryContract = new web3.eth.Contract( EscrowFactory.abi as [] ); diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts index c79c568a52..a74a721c6d 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts @@ -50,12 +50,16 @@ describe('Fortune', () => { staking = await stakingContract .deploy({ data: Staking.bytecode, - arguments: [token.options.address, web3.utils.toWei('1', 'ether'), 1], + arguments: [], }) .send({ from: owner.address, }); + await staking.methods + .initialize(token.options.address, web3.utils.toWei('1', 'ether'), 1) + .send({ from: owner.address }); + const escrowFactoryContract = new web3.eth.Contract( EscrowFactory.abi as [] ); diff --git a/packages/examples/fortune/tests/e2e-backend/constants.js b/packages/examples/fortune/tests/e2e-backend/constants.js index 8cc533f9f7..c7d1275999 100644 --- a/packages/examples/fortune/tests/e2e-backend/constants.js +++ b/packages/examples/fortune/tests/e2e-backend/constants.js @@ -9,7 +9,7 @@ const addresses = { hmt: process.env.HMT_ADDRESS || '0x5FbDB2315678afecb367f032d93F642f64180aa3', escrowFactory: process.env.ESCROW_FACTORY_ADDRESS || - '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0', + '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9', recOracle: process.env.REC_ORACLE_ADDRESS || '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', diff --git a/packages/sdk/python/human_protocol_sdk/eth_bridge.py b/packages/sdk/python/human_protocol_sdk/eth_bridge.py index 9cf627e961..2fe5c4c7a8 100644 --- a/packages/sdk/python/human_protocol_sdk/eth_bridge.py +++ b/packages/sdk/python/human_protocol_sdk/eth_bridge.py @@ -22,14 +22,14 @@ os.getenv("HMTOKEN_ADDR", "0x5FbDB2315678afecb367f032d93F642f64180aa3") ) STAKING_ADDR = Web3.toChecksumAddress( - os.getenv("STAKING_ADDR", "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512") + os.getenv("STAKING_ADDR", "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0") ) ABIS_FOLDER = os.path.join(os.path.dirname(os.path.dirname(__file__)), "contracts") # See more details about the eth-kvstore here: https://github.com/hCaptcha/eth-kvstore KVSTORE_CONTRACT = Web3.toChecksumAddress( - os.getenv("KVSTORE_CONTRACT", "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9") + os.getenv("KVSTORE_CONTRACT", "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9") ) WEB3_POLL_LATENCY = float(os.getenv("WEB3_POLL_LATENCY", 5)) WEB3_TIMEOUT = int(os.getenv("WEB3_TIMEOUT", 240)) diff --git a/packages/sdk/python/human_protocol_sdk/job.py b/packages/sdk/python/human_protocol_sdk/job.py index fa9486fe8e..e5b199d01a 100644 --- a/packages/sdk/python/human_protocol_sdk/job.py +++ b/packages/sdk/python/human_protocol_sdk/job.py @@ -1703,7 +1703,7 @@ def _factory_get_staking_addr(self, factory_addr: str) -> str: >>> escrow_addr = job.job_contract.address >>> new_job = Job(credentials=credentials, factory_addr=factory_addr, escrow_addr=escrow_addr) >>> new_job._factory_get_staking_addr(factory_addr) - '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512' + '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0' Args: factory_addr (str): an ethereum address of the escrow factory contract. diff --git a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts index d47f258305..6f69241438 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts @@ -103,7 +103,8 @@ export const deployStaking = async ( signer?: ethers.Signer ): Promise => { const staking = new Staking__factory(signer); - const contract = await staking.deploy(hmTokenAddr, minimumStake, lockPeriod); + const contract = await staking.deploy(); + await contract.initialize(hmTokenAddr, minimumStake, lockPeriod); return contract; }; @@ -142,7 +143,8 @@ export const deployRewardPool = async ( signer?: ethers.Signer ): Promise => { const rewardPool = new RewardPool__factory(signer); - const contract = await rewardPool.deploy(hmTokenAddr, stakingAddr, fee); + const contract = await rewardPool.deploy(); + await contract.initialize(hmTokenAddr, stakingAddr, fee); return contract; }; diff --git a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts index fe2b866f15..45b471071c 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/job.test.ts @@ -47,7 +47,7 @@ describe('Test Job', () => { manifest: manifest, hmTokenAddr: DEFAULT_HMTOKEN_ADDR, stakingAddr: DEFAULT_STAKING_ADDR, - logLevel: 'error', + logLevel: 'debug', }); }); diff --git a/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts b/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts index e30bfedaa1..28850fdd3b 100644 --- a/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts +++ b/packages/sdk/typescript/human-protocol-sdk/test/utils/constants.ts @@ -2,7 +2,7 @@ export const DEFAULT_HMTOKEN_ADDR = '0x5FbDB2315678afecb367f032d93F642f64180aa3'; export const DEFAULT_STAKING_ADDR = - '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512'; + '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0'; export const DEFAULT_GAS_PAYER_ADDR = '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'; diff --git a/yarn.lock b/yarn.lock index d2c7fa40fc..6f874e16f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1041,14 +1041,6 @@ "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-transform-typescript" "^7.18.6" -"@babel/runtime-corejs3@^7.10.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.7.tgz#a1e5ea3d758ba6beb715210142912e3f29981d84" - integrity sha512-jr9lCZ4RbRQmCR28Q8U8Fu49zvFqLxTY9AMOUz+iyMohMoAgpEcVxY+wJNay99oXOpOcCTODkk70NDN2aaJEeg== - dependencies: - core-js-pure "^3.25.1" - regenerator-runtime "^0.13.11" - "@babel/runtime@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" @@ -1056,7 +1048,7 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== @@ -1794,9 +1786,9 @@ js-yaml "^4.1.0" "@graphprotocol/graph-cli@^0.37.1": - version "0.37.1" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.37.1.tgz#7532aa7550154238e9469ee79d245db3f9373bc9" - integrity sha512-3liXj1O/4tDOOGRcgs9T9sbz1940APhfnNIusN7L3lWgfUb5G6OyfwDgf/mfma/veoFhvdEyccDwhY4CDLp4jQ== + version "0.37.2" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.37.2.tgz#14d3b29e0e57ab2093b3cb42402c8ba5b9c4e557" + integrity sha512-RPHYCRCc62RsscwFpwFT+929lNNoB/FJW+PFaQ+zZaJuauj0x/+npcfIDCb4zAxlQskETqzT5WvWQ9gRK1l66g== dependencies: "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" assemblyscript "0.19.23" @@ -2057,9 +2049,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.26" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.26.tgz#c252eed37c798b4f768e0b84eb729e8b0982cd71" - integrity sha512-ONRu3YVkPvbVgD//XUfxQRmSYVLhQ3kq+cd4CVBnHoh2EIJ90ByNYwC0yj+vIf186LRxcy1lBpl62/v7fhyOzg== + version "1.0.27" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.27.tgz#5c8029a16ce0d38996eb082a9655692aed49bf69" + integrity sha512-C0xIGzy1KEi5+T3jTcCyj1VGLnO1lmO7KHzNXCafKclP4EPf2cyOCb6wJnGefhclf5WPlJR8z1ulkxeP6OpVgQ== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -2632,10 +2624,10 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@mui/base@5.0.0-alpha.112": - version "5.0.0-alpha.112" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.112.tgz#80e815430c5df0316e0a549d34628d54215e05f1" - integrity sha512-KPwb1iYPXsV/P8uu0SNQrj7v7YU6wdN4Eccc2lZQyRDW+f6PJYjHBuFUTYKc408B98Jvs1XbC/z5MN45a2DWrQ== +"@mui/base@5.0.0-alpha.113": + version "5.0.0-alpha.113" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.113.tgz#51ab20c3a4cf31db4a5540ecf17d7ea6f73b3001" + integrity sha512-XSjvyQWATM8uk+EJZvYna8D21kOXC42lwb3q4K70btuGieKlCIQLaHTTDV2OfD4+JfT4o3NJy3I4Td2co31RZA== dependencies: "@babel/runtime" "^7.20.7" "@emotion/is-prop-valid" "^1.2.0" @@ -2646,10 +2638,10 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.11.3": - version "5.11.3" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.3.tgz#72c04a9f12b29186877992648d7cf1c22b95ba5c" - integrity sha512-Bgb6//KtxY7IC7M5Pa5RKFX1wttc213mqpKqydnz3wn4BGDXfA5c0vf5nTu5zqsJeB4T3ysAJTRJhQ/E1GsZDQ== +"@mui/core-downloads-tracker@^5.11.4": + version "5.11.4" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.4.tgz#def5937e21443b197fd1998fd66721bd9c49a1bb" + integrity sha512-jWVwGM3vG4O0sXcW0VcIl+njCWbGCBF5vvjRpuKJajrz51AD7D6+fP1SkInZXVk5pRHf6Bnk/Yj9Of9gXxb/hA== "@mui/icons-material@^5.10.14", "@mui/icons-material@^5.10.6": version "5.11.0" @@ -2659,14 +2651,14 @@ "@babel/runtime" "^7.20.6" "@mui/material@^5.10.14", "@mui/material@^5.10.7": - version "5.11.3" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.3.tgz#e1be6d26eecde61878280cb6792797a77696b09a" - integrity sha512-Oz+rMFiMtxzzDLUxKyyj4mSxF9ShmsBoJ9qvglXCYqklgSrEl1R/Z4hfPZ+2pWd5CriO8U/0CFHr4DksrlTiCw== + version "5.11.4" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.4.tgz#4dda0f993c9aa9678e1b9bce16adfe11e984dbd4" + integrity sha512-ZL/czK9ynrQJ6uyDwQgK+j7m1iKA1XKPON+rEPupwAu/bJ1XJxD+H/H2bkMM8UpOkzaucx/WuMbJJGQ60l7gBg== dependencies: "@babel/runtime" "^7.20.7" - "@mui/base" "5.0.0-alpha.112" - "@mui/core-downloads-tracker" "^5.11.3" - "@mui/system" "^5.11.2" + "@mui/base" "5.0.0-alpha.113" + "@mui/core-downloads-tracker" "^5.11.4" + "@mui/system" "^5.11.4" "@mui/types" "^7.2.3" "@mui/utils" "^5.11.2" "@types/react-transition-group" "^4.4.5" @@ -2718,10 +2710,10 @@ jss-plugin-vendor-prefixer "^10.9.2" prop-types "^15.8.1" -"@mui/system@^5.11.2": - version "5.11.2" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.2.tgz#a5a5865dda0f5f360eed8cdc1ab399a493dbd361" - integrity sha512-PPkYhrcP2MkhscX6SauIl0wPgra0w1LGPtll+hIKc2Z2JbGRSrUCFif93kxejB7I1cAoCay9jWW4mnNhsOqF/g== +"@mui/system@^5.11.4": + version "5.11.4" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.4.tgz#a097d6451e12ac442a92ca6e9717b6b8e68ecd45" + integrity sha512-fE2Ts33V5zh7ouciwXgMm/a6sLvjIj9OMeojuHNYY7BStTxparC/Fp9CNUZNJwt76U6ZJC59aYScFSRQKbW08g== dependencies: "@babel/runtime" "^7.20.7" "@mui/private-theming" "^5.11.2" @@ -2749,9 +2741,9 @@ react-is "^18.2.0" "@mui/x-data-grid@^5.17.4": - version "5.17.17" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.17.tgz#c26111536e43d243c5657c4225d399a89d6ae152" - integrity sha512-03XwKeZ5q93CUf7EdJTBfqf3y3cd0vOEH1dXnusk0NaNROW/uBcnwTix9/1D7hhlCNs+Unq98Qffe2W/sR++Xg== + version "5.17.18" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.18.tgz#1d49aa098aa93fd027720f4db270d1971d2f1d5b" + integrity sha512-0hWExrABXA03HQZoY/EaN6jiFMXdQWs7Y+3xtngiRzGQQl6kmLz1IjdKpNuwuc2g3xphnCpz9WSqTxVhJqdmAw== dependencies: "@babel/runtime" "^7.18.9" "@mui/utils" "^5.10.3" @@ -2795,9 +2787,9 @@ integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== "@noble/secp256k1@^1.6.3": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" - integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== + 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" @@ -3056,6 +3048,39 @@ table "^6.8.0" undici "^5.4.0" +"@openzeppelin/contracts-upgradeable@^4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.0.tgz#26688982f46969018e3ed3199e72a07c8d114275" + integrity sha512-5GeFgqMiDlqGT8EdORadp1ntGF0qzWZLmEY7Wbp/yVhN7/B3NNzCxujuI77ktlyG81N3CUZP8cZe3ZAQ/cW10w== + +"@openzeppelin/contracts@^4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.8.0.tgz#6854c37df205dd2c056bdfa1b853f5d732109109" + integrity sha512-AGuwhRRL+NaKx73WKRNzeCxOCOCxpaqF+kp8TJ89QzAipSwZy/NoflkWaL9bywXFRhIzXt8j38sfF7KBKCPWLw== + +"@openzeppelin/hardhat-upgrades@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.22.0.tgz#2a432c72a428a9f277201646bc1a248021538f06" + integrity sha512-1qyZnDaxl0C8tne7ykNRa/fxw3FrNCY2M3fGuCiQW5DDkJoXhLgm3JVsXwl6X7q9mQSrik4vgBbI3ErmxmZTYg== + dependencies: + "@openzeppelin/upgrades-core" "^1.20.0" + chalk "^4.1.0" + debug "^4.1.1" + proper-lockfile "^4.1.1" + +"@openzeppelin/upgrades-core@^1.20.0": + version "1.20.6" + resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.20.6.tgz#74f43d600151b8fda6e2d375f46ae0da55922620" + integrity sha512-KWdtlahm+iunlAlzLsdpBueanwEx0LLPfAkDL1p0C4SPjMiUqHHFlyGtmmWwdiqDpJ//605vfwkd5RqfnFrHSg== + dependencies: + cbor "^8.0.0" + chalk "^4.1.0" + compare-versions "^5.0.0" + debug "^4.1.1" + ethereumjs-util "^7.0.3" + proper-lockfile "^4.1.1" + solidity-ast "^0.4.15" + "@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": version "2.3.3" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz#21418e1f3819e0b353ceff0c2dad8ccb61acd777" @@ -3536,36 +3561,36 @@ dependencies: defer-to-connect "^2.0.1" -"@tanstack/query-core@4.20.9": - version "4.20.9" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.20.9.tgz#62eb14c2fd6688eaa507452881c96a2c8b6d2544" - integrity sha512-XTEEvOGy7wlABPTYfmg7U287WYcf2PV8lH15oKWD2I09okqMOHrB23WxyikEVRwJCjYNKcCW0BuYaAY4S2g/jg== +"@tanstack/query-core@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.22.0.tgz#7a786fcea64e229ed5d4308093dd644cdfaa895e" + integrity sha512-OeLyBKBQoT265f5G9biReijeP8mBxNFwY7ZUu1dKL+YzqpG5q5z7J/N1eT8aWyKuhyDTiUHuKm5l+oIVzbtrjw== -"@tanstack/query-persist-client-core@4.20.9": - version "4.20.9" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.20.9.tgz#bbc46fc3494d4d0eb75cca9ae6d38599f84516ef" - integrity sha512-dwE3A7ZKeGsOcqnfqY8H/1Q6g0GrrDSarhVK0QqMKV9crRW87gz1wG37+2YHJettL8CC36S7SqLJGQCoViUCiw== +"@tanstack/query-persist-client-core@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.22.0.tgz#cb0677cb0ab36c626bfb18bd681426f661ef4a85" + integrity sha512-O5Qh4HycMWPD67qoGs9zwNJuCpQnbgAgpWmg/M5+jpWaobGGtdIW6SHuvVogQM53uTaWT8b30ymi4BKds4GxIA== "@tanstack/query-sync-storage-persister@^4.0.10": - version "4.20.9" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.20.9.tgz#260ee354e5a613a745531f7151c38a1d8afbb5c2" - integrity sha512-KMIxrSGsvInU/efDC+LCSHdnvHaYQIStQQx3IpkGD7t0fgJr6HZy4dFRhT8DlSvNpJ8X8IdZ0ZWzD3fk+aRl1A== + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.22.0.tgz#114545d7957f72d71abd70790dfe8bd6177bd9ec" + integrity sha512-NtsekSPrJC+qMFncs0cqzyqFWW3rZU6EwGwgqM+u7PnjYQBiOyrD7yB8V6rJEIDVvSpakS1jPyzKDxpexrUk8g== dependencies: - "@tanstack/query-persist-client-core" "4.20.9" + "@tanstack/query-persist-client-core" "4.22.0" "@tanstack/react-query-persist-client@^4.0.10": - version "4.20.9" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.20.9.tgz#36e6b72f32f606889cb4080b9cd9895aeb418e81" - integrity sha512-QPX3be8o3jkCC6lFmwn8m1nYmXPsEkP7XiFHzWY8eYfU7POSJXKrpiylz0wuFBG1mRSfHGsq//UNUPUOEDIw6A== + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.22.0.tgz#29dd5542b96a0a83a58e32f2c815874cd90a729d" + integrity sha512-E9eAstffzr+PMsKcgTI6AfMMYtUjV6w3VKCa/0v9wGWdGEJYKcjNJWyYiPF0Z0ccwAaDCeOuQCFId8y0BKCK8g== dependencies: - "@tanstack/query-persist-client-core" "4.20.9" + "@tanstack/query-persist-client-core" "4.22.0" "@tanstack/react-query@^4.0.10": - version "4.20.9" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.20.9.tgz#0ec2e734085570ce642ae7de8586eb31d562532c" - integrity sha512-OqwcmqkxOYgLbVjsMm4Cl8MMZ063VqdRw1GpSWqN8WgppftPiFJTDb6Q1TX5I/ciCbHmRWNPE/D0ayyTesAKug== + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.22.0.tgz#aaa4b41a6d306be6958018c74a8a3bb3e9f1924c" + integrity sha512-P9o+HjG42uB/xHR6dMsJaPhtZydSe4v0xdG5G/cEj1oHZAXelMlm67/rYJNQGKgBamKElKogj+HYGF+NY2yHYg== dependencies: - "@tanstack/query-core" "4.20.9" + "@tanstack/query-core" "4.22.0" use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": @@ -3927,9 +3952,9 @@ "@types/node" "*" "@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" + integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== dependencies: "@types/node" "*" @@ -4299,13 +4324,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.43.0", "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz#54f8368d080eb384a455f60c2ee044e948a8ce67" - integrity sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ== + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.1.tgz#deee67e399f2cb6b4608c935777110e509d8018c" + integrity sha512-9nY5K1Rp2ppmpb9s9S2aBiF3xo5uExCehMDmYmmFqqyxgenbHJ3qbarcLt4ITgaD6r/2ypdlcFRdcuVPnks+fQ== dependencies: - "@typescript-eslint/scope-manager" "5.48.0" - "@typescript-eslint/type-utils" "5.48.0" - "@typescript-eslint/utils" "5.48.0" + "@typescript-eslint/scope-manager" "5.48.1" + "@typescript-eslint/type-utils" "5.48.1" + "@typescript-eslint/utils" "5.48.1" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -4314,78 +4339,78 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.0.tgz#10c0871a1dfee734fbcd49399b6a07ce38bdb61c" - integrity sha512-ehoJFf67UViwnYuz6JUneZ8qxgDk0qEWKiTLmpE8WpPEr15e2cSLtp0E6Zicx2DaYdwctUA0uLRTbLckxQpurg== + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.1.tgz#5951c0b7ef4b0838ea95f25d53385de0e366e0b8" + integrity sha512-8OoIZZuOeqsm5cxn2f01qHWtVC3M4iixSsfZXPiQUg4Sl4LiU+b5epcJFwxNfqeoLl+SGncELyi3x99zI6C0ng== dependencies: - "@typescript-eslint/utils" "5.48.0" + "@typescript-eslint/utils" "5.48.1" "@typescript-eslint/parser@^5.43.0", "@typescript-eslint/parser@^5.5.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.0.tgz#02803355b23884a83e543755349809a50b7ed9ba" - integrity sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg== + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.1.tgz#d0125792dab7e232035434ab8ef0658154db2f10" + integrity sha512-4yg+FJR/V1M9Xoq56SF9Iygqm+r5LMXvheo6DQ7/yUWynQ4YfCRnsKuRgqH4EQ5Ya76rVwlEpw4Xu+TgWQUcdA== dependencies: - "@typescript-eslint/scope-manager" "5.48.0" - "@typescript-eslint/types" "5.48.0" - "@typescript-eslint/typescript-estree" "5.48.0" + "@typescript-eslint/scope-manager" "5.48.1" + "@typescript-eslint/types" "5.48.1" + "@typescript-eslint/typescript-estree" "5.48.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz#607731cb0957fbc52fd754fd79507d1b6659cecf" - integrity sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow== +"@typescript-eslint/scope-manager@5.48.1": + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.1.tgz#39c71e4de639f5fe08b988005beaaf6d79f9d64d" + integrity sha512-S035ueRrbxRMKvSTv9vJKIWgr86BD8s3RqoRZmsSh/s8HhIs90g6UlK8ZabUSjUZQkhVxt7nmZ63VJ9dcZhtDQ== dependencies: - "@typescript-eslint/types" "5.48.0" - "@typescript-eslint/visitor-keys" "5.48.0" + "@typescript-eslint/types" "5.48.1" + "@typescript-eslint/visitor-keys" "5.48.1" -"@typescript-eslint/type-utils@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz#40496dccfdc2daa14a565f8be80ad1ae3882d6d6" - integrity sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g== +"@typescript-eslint/type-utils@5.48.1": + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.1.tgz#5d94ac0c269a81a91ad77c03407cea2caf481412" + integrity sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ== dependencies: - "@typescript-eslint/typescript-estree" "5.48.0" - "@typescript-eslint/utils" "5.48.0" + "@typescript-eslint/typescript-estree" "5.48.1" + "@typescript-eslint/utils" "5.48.1" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.0.tgz#d725da8dfcff320aab2ac6f65c97b0df30058449" - integrity sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw== +"@typescript-eslint/types@5.48.1": + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.1.tgz#efd1913a9aaf67caf8a6e6779fd53e14e8587e14" + integrity sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg== -"@typescript-eslint/typescript-estree@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz#a7f04bccb001003405bb5452d43953a382c2fac2" - integrity sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw== +"@typescript-eslint/typescript-estree@5.48.1": + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.1.tgz#9efa8ee2aa471c6ab62e649f6e64d8d121bc2056" + integrity sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA== dependencies: - "@typescript-eslint/types" "5.48.0" - "@typescript-eslint/visitor-keys" "5.48.0" + "@typescript-eslint/types" "5.48.1" + "@typescript-eslint/visitor-keys" "5.48.1" 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.48.0", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.0.tgz#eee926af2733f7156ad8d15e51791e42ce300273" - integrity sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ== +"@typescript-eslint/utils@5.48.1", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.1.tgz#20f2f4e88e9e2a0961cbebcb47a1f0f7da7ba7f9" + integrity sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.48.0" - "@typescript-eslint/types" "5.48.0" - "@typescript-eslint/typescript-estree" "5.48.0" + "@typescript-eslint/scope-manager" "5.48.1" + "@typescript-eslint/types" "5.48.1" + "@typescript-eslint/typescript-estree" "5.48.1" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz#4446d5e7f6cadde7140390c0e284c8702d944904" - integrity sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q== +"@typescript-eslint/visitor-keys@5.48.1": + version "5.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.1.tgz#79fd4fb9996023ef86849bf6f904f33eb6c8fccb" + integrity sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA== dependencies: - "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/types" "5.48.1" eslint-visitor-keys "^3.3.0" "@vanilla-extract/css@1.9.1": @@ -4422,31 +4447,31 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@5.7.3": - version "5.7.3" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.7.3.tgz#3fbe98f0d22686e1cbcd75cddea249657452436e" - integrity sha512-Q4Ei4oG+tx4OnENHqqRlfAks6Rp3U/viOTUITnWpLgoej2xQUnnfk16qvHYZeE1ZGpblPoeDwD8ZWsxOkt3wHA== +"@vercel/build-utils@5.7.4": + version "5.7.4" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.7.4.tgz#77027cd943af5ad6bd9d5d599f8fd6995f18e42d" + integrity sha512-QesfcJ2LaD0tgouOI5XqF90WU5Byy5dg8ez3lttwQBkg1Lw7zuawhVYZJdoAL/GlZruvQzlpS/tUvUmUzrPOzQ== -"@vercel/node-bridge@3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-3.1.2.tgz#8e9c00201dfcfd73db0e18bb8e5db313611328f7" - integrity sha512-dgcLXug0IqUeRsywf0G8IrhUFcgw+GYj+EZB4JneglKSofFBh3Xy/t7KfBUxLlKnoq6kyGYJvTmAVB1YBt11qw== +"@vercel/node-bridge@3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-3.1.3.tgz#7c8d83e18a4cb327def776810df182ecb148fbc0" + integrity sha512-NIuiwktIsvCWZ7aToQ4sFWNYKQbojghJ2OobjTL14nj25cuxP3XsV8LkMarIsiWG/vQxiSADBLwr/7fOh8znGg== "@vercel/node@^2.5.26": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.3.tgz#6d1163318106b86f07417af286c7b2709852c3b5" - integrity sha512-LSVt+PzY8o05zvZQL/A6IhC1TT9W09YGAZrFEE7BpcSJarM+SuoRzcOw5HRSLN4Ij2T0RPYSZuM4OdY3oxLzkQ== + version "2.8.5" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.5.tgz#d74fae9a4906efbb860d217a6043d9d9dc79585f" + integrity sha512-DOPrEGJIO2mypOR/D1EFwsLMMPtAQOUMDGRjr4LhHK+yqyPiDcupTzC3RosqncINzc4Abptke2iqiEmlRC0iYw== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "5.7.3" - "@vercel/node-bridge" "3.1.2" + "@vercel/build-utils" "5.7.4" + "@vercel/node-bridge" "3.1.3" "@vercel/static-config" "2.0.6" edge-runtime "2.0.0" esbuild "0.14.47" exit-hook "2.2.1" node-fetch "2.6.7" - ts-node "8.9.1" + ts-node "10.9.1" typescript "4.3.4" "@vercel/static-config@2.0.6": @@ -5278,15 +5303,7 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" - -aria-query@^5.0.0: +aria-query@^5.0.0, aria-query@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== @@ -5526,9 +5543,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1288.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1288.0.tgz#7c5d90f0c3c942406f204aa72eb75fe715b52ebf" - integrity sha512-5ALCke6yp+QP5VEnotLw7tF3ipII2+j7+ZjJg7s5OFgqJ9p0XNOBb6V+0teOTpbQarkfefwOLHj5oir3i6OMsA== + version "2.1291.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1291.0.tgz#315e64dead4a1222726a55348bb2aa332a1917d4" + integrity sha512-iM82Md2Wb29MZ72BpNF4YeIHtkJTyw+JMGXJG48Dwois2Rq7rLcriX6NN/4Fx4b5EEtUkwAO/wJc+NTHI7QeJw== dependencies: buffer "4.9.2" events "1.1.1" @@ -5547,11 +5564,11 @@ aws-sign2@~0.7.0: integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axe-core@^4.4.3: +axe-core@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.2.tgz#6e566ab2a3d29e415f5115bc0fd2597a5eb3e5e3" integrity sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg== @@ -5580,10 +5597,12 @@ axios@^1.1.3: form-data "^4.0.0" proxy-from-env "^1.1.0" -axobject-query@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" babel-code-frame@^6.26.0: version "6.26.0" @@ -7086,7 +7105,7 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== -cbor@^8.1.0: +cbor@^8.0.0, cbor@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== @@ -7094,9 +7113,9 @@ cbor@^8.1.0: nofilter "^3.1.0" cborg@^1.5.4, cborg@^1.6.0: - version "1.9.6" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.9.6.tgz#bf90de6541d10735db878b60b4af824209b77435" - integrity sha512-XmiD+NWTk9xg31d8MdXgW46bSZd95ELllxjbjdWGyHAtpTw+cf8iG3NibWgTWRnfWfxtcihVa5Pm0gchHiO3JQ== + version "1.10.0" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.0.tgz#0fe157961dd47b537ccb84dc9ba681de8b699013" + integrity sha512-/eM0JCaL99HDHxjySNQJLaolZFVdl6VA0/hEKIoiQPcQzE5LrG5QHdml0HaBt31brgB9dNe1zMr3f8IVrpotRQ== chai-as-promised@^7.1.1: version "7.1.1" @@ -7610,9 +7629,9 @@ commander@^8.3.0: integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== commander@^9.4.0, commander@^9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== common-path-prefix@^3.0.0: version "3.0.0" @@ -7629,6 +7648,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== +compare-versions@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.3.tgz#a9b34fea217472650ef4a2651d905f42c28ebfd7" + integrity sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A== + compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -7766,7 +7790,7 @@ core-js-compat@^3.25.1: dependencies: browserslist "^4.21.4" -core-js-pure@^3.23.3, core-js-pure@^3.25.1: +core-js-pure@^3.23.3: version "3.27.1" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.27.1.tgz#ede4a6b8440585c7190062757069c01d37a19dca" integrity sha512-BS2NHgwwUppfeoqOXqi08mUqS5FiZpuRuJJpKsaME7kJz0xxuk0xkhDdfMIlP/zLa80krBqss1LtD7f889heAw== @@ -8073,9 +8097,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.2.0.tgz#f44bd4abc430f0ff7f4c64b8a1fb857a753f77a8" - integrity sha512-JYlIsE7eKHSi0UNuCyo96YuIDFqvhGgHw4Ck6lsN+DP0Tp8M64UTDT2trGbkMDqnCoEjks7CkS0XcjU0rkvBdg== + version "7.2.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.2.1.tgz#f6f59e2c4249bcb5ca5606fc4ab6f9a808d55486" + integrity sha512-btohrCpVaLqOoMt90aumHe6HU4c06duiYA8ymwtpGfwuZAhWKDBve/c2k+E85Jeq5iojPkeonqiKV+aLeY8QlA== cssesc@^3.0.0: version "3.0.0" @@ -8384,16 +8408,18 @@ deep-eql@^4.0.1, deep-eql@^4.1.2: type-detect "^4.0.0" deep-equal@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.1.0.tgz#5ba60402cf44ab92c2c07f3f3312c3d857a0e1dd" - integrity sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" + integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== dependencies: call-bind "^1.0.2" es-get-iterator "^1.1.2" get-intrinsic "^1.1.3" is-arguments "^1.1.1" + is-array-buffer "^3.0.1" is-date-object "^1.0.5" is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" isarray "^2.0.5" object-is "^1.1.5" object-keys "^1.1.1" @@ -8402,7 +8428,7 @@ deep-equal@^2.0.5: side-channel "^1.0.4" which-boxed-primitive "^1.0.2" which-collection "^1.0.1" - which-typed-array "^1.1.8" + which-typed-array "^1.1.9" deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" @@ -9107,11 +9133,12 @@ es-module-lexer@^0.9.0: integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== es-set-tostringtag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.0.tgz#b33fdef554fb35a264fe022c1f095f1f2022fa85" - integrity sha512-vZVAIWss0FcR/+a08s6e2/GjGjjYBCZJXDrOnj6l5kJCKhQvJs4cnVqUxkVepIhqHbKHm3uwOvPb8lRcqA3DSg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== dependencies: get-intrinsic "^1.1.3" + has "^1.0.3" has-tostringtag "^1.0.0" es-shim-unscopables@^1.0.0: @@ -9455,29 +9482,32 @@ eslint-plugin-jest@^25.3.0: "@typescript-eslint/experimental-utils" "^5.0.0" eslint-plugin-jest@^27.1.5: - version "27.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.0.tgz#8e9976705642bea1981596c0ba5e3f46d449f3fc" - integrity sha512-KGIYtelk4rIhKocxRKUEeX+kJ0ZCab/CiSgS8BMcKD7AY7YxXhlg/d51oF5jq2rOrtuJEDYWRwXD95l6l2vtrA== + version "27.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz#b85b4adf41c682ea29f1f01c8b11ccc39b5c672c" + integrity sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg== dependencies: "@typescript-eslint/utils" "^5.10.0" eslint-plugin-jsx-a11y@^6.5.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff" - integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q== + version "6.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.0.tgz#b7a8ced4a427bb54eab050fc2a59e31938a16445" + integrity sha512-EGGRKhzejSzXKtjmEjWNtr4SK/DkMkSzkBH7g7e7moBDXZXrqaUIxkmD7uF93upMysc4dKYEJwupu7Dff+ShwA== dependencies: - "@babel/runtime" "^7.18.9" - aria-query "^4.2.2" - array-includes "^3.1.5" + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" ast-types-flow "^0.0.7" - axe-core "^4.4.3" - axobject-query "^2.2.0" + axe-core "^4.6.2" + axobject-query "^3.1.1" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" has "^1.0.3" - jsx-ast-utils "^3.3.2" - language-tags "^1.0.5" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" semver "^6.3.0" eslint-plugin-prettier@^4.2.1: @@ -9879,7 +9909,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -11690,9 +11720,9 @@ immutable@3.8.2: integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== immutable@^4.0.0-rc.12: - version "4.2.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" - integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== + version "4.2.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16" + integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og== import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" @@ -12074,13 +12104,14 @@ is-arguments@^1.0.4, is-arguments@^1.1.0, is-arguments@^1.1.1: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-array-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.0.tgz#d93aaf24dade5e5391e2992e884c378482f078c1" - integrity sha512-TI2hnvT6dPUnn/jARFCJBKL1eeabAfLnKZ2lmW5Uh317s1Ii2IMroL1yMciEk/G+OETykVzlsH6x/L4q/avhgw== +is-array-buffer@^3.0.0, is-array-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" + integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== dependencies: call-bind "^1.0.2" get-intrinsic "^1.1.3" + is-typed-array "^1.1.10" is-arrayish@^0.2.1: version "0.2.1" @@ -13868,7 +13899,7 @@ jss@10.9.2, jss@^10.9.2: is-in-browser "^1.1.3" tiny-warning "^1.0.2" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2: +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== @@ -13967,17 +13998,17 @@ ky@^0.11.2: resolved "https://registry.yarnpkg.com/ky/-/ky-0.11.2.tgz#4ffe6621d9d9ab61bf0f5500542e3a96d1ba0815" integrity sha512-5Aou5BWue5/mkPqIRqzSWW+0Hkl403pr/2AIrCKYw7cVl/Xoe8Xe4KLBO0PRjbz7GnRe1/8wW1KhqQNFFE7/GQ== -language-subtag-registry@^0.3.20: +language-subtag-registry@~0.3.2: version "0.3.22" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== -language-tags@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.7.tgz#41cc248730f3f12a452c2e2efe32bc0bbce67967" - integrity sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw== +language-tags@=1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== dependencies: - language-subtag-registry "^0.3.20" + language-subtag-registry "~0.3.2" level-supports@^4.0.0: version "4.0.1" @@ -14484,9 +14515,9 @@ media-typer@0.3.0: integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.1.2, memfs@^3.4.3: - version "3.4.12" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.12.tgz#d00f8ad8dab132dc277c659dc85bfd14b07d03bd" - integrity sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw== + version "3.4.13" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.13.tgz#248a8bd239b3c240175cd5ec548de5227fc4f345" + integrity sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg== dependencies: fs-monkey "^1.0.3" @@ -15255,9 +15286,9 @@ node-forge@^1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + version "4.6.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" + integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== node-int64@^0.4.0: version "0.4.0" @@ -16542,9 +16573,9 @@ postcss@^7.0.35: source-map "^0.6.1" postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.4: - version "8.4.20" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" - integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== + version "8.4.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -16592,9 +16623,9 @@ prettier@1.19.1: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.3.1, prettier@^2.7.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" - integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== + version "2.8.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.2.tgz#c4ea1b5b454d7c4b59966db2e06ed7eec5dfd160" + integrity sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw== pretty-bytes@5.6.0, pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -16700,6 +16731,15 @@ prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +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" + protobufjs@^6.10.2: version "6.11.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" @@ -17150,17 +17190,17 @@ react-resize-detector@^7.1.2: lodash "^4.17.21" react-router-dom@^6.4.3: - version "6.6.1" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.6.1.tgz#1b96ec0b2cefa7319f1251383ea5b41295ee260d" - integrity sha512-u+8BKUtelStKbZD5UcY0NY90WOzktrkJJhyhNg7L0APn9t1qJNLowzrM9CHdpB6+rcPt6qQrlkIXsTvhuXP68g== + version "6.6.2" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.6.2.tgz#bbf1f9b45855b218d22fc2d294b79408a084740a" + integrity sha512-6SCDXxRQqW5af8ImOqKza7icmQ47/EMbz572uFjzvcArg3lZ+04PxSPp8qGs+p2Y+q+b+S/AjXv8m8dyLndIIA== dependencies: "@remix-run/router" "1.2.1" - react-router "6.6.1" + react-router "6.6.2" -react-router@6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.6.1.tgz#17de6cf285f2d1c9721a3afca999c984e5558854" - integrity sha512-YkvlYRusnI/IN0kDtosUCgxqHeulN5je+ew8W+iA1VvFhf86kA+JEI/X/8NqYcr11hCDDp906S+SGMpBheNeYQ== +react-router@6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.6.2.tgz#556f7b56cff7fe32c5c02429fef3fcb2ecd08111" + integrity sha512-uJPG55Pek3orClbURDvfljhqFvMgJRo59Pktywkk8hUUkTY2aRfza8Yhl/vZQXs+TNQyr6tu+uqz/fLxPICOGQ== dependencies: "@remix-run/router" "1.2.1" @@ -17807,6 +17847,11 @@ retimer@^2.0.0: resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg== +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" @@ -18447,6 +18492,11 @@ solc@0.7.3: semver "^5.5.0" tmp "0.0.33" +solidity-ast@^0.4.15: + version "0.4.40" + resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.40.tgz#182709271b4e55efb34e2da934dfaa96ee0cf40b" + integrity sha512-M8uLBT2jgFB7B0iVAC5a2l71J8vim7aEm03AZkaHbDqyrl1pE+i5PriMEw6WlwGfHp3/Ym7cn9BqvVLQgRk+Yw== + solidity-comments-extractor@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" @@ -18512,7 +18562,7 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@^0.5.20, source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@^0.5.13, source-map-support@^0.5.20, source-map-support@^0.5.6, source-map-support@~0.5.20: 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== @@ -19590,18 +19640,7 @@ ts-morph@12.0.0: "@ts-morph/common" "~0.11.0" code-block-writer "^10.1.1" -ts-node@8.9.1: - version "8.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.1.tgz#2f857f46c47e91dcd28a14e052482eb14cfd65a5" - integrity sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -ts-node@^10.9.1: +ts-node@10.9.1, 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== @@ -20750,7 +20789,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== -which-typed-array@^1.1.2, which-typed-array@^1.1.8, which-typed-array@^1.1.9: +which-typed-array@^1.1.2, which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== @@ -21082,7 +21121,7 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@8.11.0, ws@^8.11.0, ws@^8.4.2, ws@^8.5.0: +ws@8.11.0: version "8.11.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== @@ -21101,6 +21140,11 @@ ws@^7.4.0, ws@^7.4.5, ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== +ws@^8.11.0, ws@^8.4.2, ws@^8.5.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" + integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== + xdeployer@1.1.20: version "1.1.20" resolved "https://registry.yarnpkg.com/xdeployer/-/xdeployer-1.1.20.tgz#4cac0d534852b2f46b585aa10caee2f86583df5a" From 269d715db8b8fdd35e43a4b5ea6c704eadc8e48e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 10 Jan 2023 17:15:27 +0100 Subject: [PATCH 051/216] Add reputation contract --- package.json | 2 +- packages/core/contracts/Reputation.sol | 104 ++++++++++++++ packages/core/scripts/deploy.ts | 5 + .../fortune/launcher/.env.development | 2 +- .../launcher/src/constants/constants.ts | 20 ++- .../fortune/reputation-oracle/src/index.ts | 19 ++- .../src/services/reputation.ts | 36 +++++ .../src/services/rewards.test.ts | 22 ++- .../reputation-oracle/src/services/rewards.ts | 38 +++++- .../tests/e2e-backend/reputation.test.js | 129 ++++++++++++++++++ 10 files changed, 360 insertions(+), 17 deletions(-) create mode 100644 packages/core/contracts/Reputation.sol create mode 100644 packages/examples/fortune/reputation-oracle/src/services/reputation.ts create mode 100644 packages/examples/fortune/tests/e2e-backend/reputation.test.js diff --git a/package.json b/package.json index 6c67f158de..cfbadf3ebf 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "fortune:lint": "yarn workspace @human-protocol/fortune lint", "sdk:test": "yarn workspace @human-protocol/sdk test", "sdk:lint": "yarn workspace @human-protocol/sdk lint", - "test": "concurrently npm:core:test npm:subgraph:test npm:escrow-dashboard:test npm:fortune:test, npm:sdk:test", + "test": "concurrently npm:core:test npm:subgraph:test npm:escrow-dashboard:test npm:fortune:test npm:sdk:test", "lint": "concurrently npm:core:lint npm:subgraph:lint npm:escrow-dashboard:lint npm:fortune:lint npm:eth-kvstore:lint npm:sdk:lint", "prepare": "husky install" }, diff --git a/packages/core/contracts/Reputation.sol b/packages/core/contracts/Reputation.sol new file mode 100644 index 0000000000..0880fa6083 --- /dev/null +++ b/packages/core/contracts/Reputation.sol @@ -0,0 +1,104 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.6.2; + +import './utils/SafeMath.sol'; +import './interfaces/IStaking.sol'; +import '@openzeppelin/contracts/access/Ownable.sol'; + +contract Reputation is Ownable { + using SafeMath for int256; + using Stakes for Stakes.Staker; + + struct Worker { + address workerAddress; + int256 reputation; + } + + // Staking contract address + address public staking; + + uint256 public MIN_STAKE = 1; + int256 private constant MIN_REPUTATION = 1; + int256 private constant MAX_REPUTATION = 100; + mapping(address => int256) public reputations; + + constructor(address _staking) { + require(_staking != address(0), 'Zero address provided'); + staking = _staking; + } + + function addReputations(Worker[] memory _workers) public { + Stakes.Staker memory staker = IStaking(staking).getStaker(msg.sender); + require( + staker.tokensAvailable() > MIN_STAKE, + 'Needs to stake HMT tokens to modify reputations.' + ); + + for (uint256 i = 0; i < _workers.length; i++) { + if ( + reputations[_workers[i].workerAddress] + + _workers[i].reputation > + MAX_REPUTATION || + (reputations[_workers[i].workerAddress] == 0 && + 50 + _workers[i].reputation > MAX_REPUTATION) + ) { + reputations[_workers[i].workerAddress] = MAX_REPUTATION; + } else if ( + (reputations[_workers[i].workerAddress] == 0 && + 50 + _workers[i].reputation < MIN_REPUTATION) || + (reputations[_workers[i].workerAddress] + + _workers[i].reputation < + MIN_REPUTATION && + reputations[_workers[i].workerAddress] != 0) + ) { + reputations[_workers[i].workerAddress] = MIN_REPUTATION; + } else { + if (reputations[_workers[i].workerAddress] == 0) { + reputations[_workers[i].workerAddress] = + 50 + + _workers[i].reputation; + } else { + reputations[_workers[i].workerAddress] = + reputations[_workers[i].workerAddress] + + _workers[i].reputation; + } + } + } + } + + function getReputations( + address[] memory _workers + ) public view returns (Worker[] memory) { + Worker[] memory returnedValues = new Worker[](_workers.length); + + for (uint256 i = 0; i < _workers.length; i++) { + returnedValues[i] = Worker(_workers[i], reputations[_workers[i]]); + } + + return returnedValues; + } + + function getRewards( + int256 balance, + address[] memory _workers + ) public view returns (int256[] memory) { + int256[] memory returnedValues = new int256[](_workers.length); + int256 totalReputation = 0; + + for (uint256 i = 0; i < _workers.length; i++) { + totalReputation += reputations[_workers[i]]; + } + + for (uint256 i = 0; i < _workers.length; i++) { + returnedValues[i] = + (balance * reputations[_workers[i]]) / + totalReputation; + } + + return returnedValues; + } + + function updateStakingAmount(uint256 amount) public onlyOwner { + MIN_STAKE = amount; + } +} diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index ed424de511..31775568a8 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -64,6 +64,11 @@ async function main() { ethers.utils.parseEther('1000') ); } + + const Reputation = await ethers.getContractFactory('Reputation'); + const reputationContract = await Reputation.deploy(stakingContract.address); + await reputationContract.deployed(); + console.log('Reputation Contract Address:', reputationContract.address); } main().catch((error) => { diff --git a/packages/examples/fortune/launcher/.env.development b/packages/examples/fortune/launcher/.env.development index ef04f6597a..bb11e20c86 100644 --- a/packages/examples/fortune/launcher/.env.development +++ b/packages/examples/fortune/launcher/.env.development @@ -1,6 +1,6 @@ REACT_APP_PUBLIC_URL=/ REACT_APP_HMT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 -REACT_APP_ESCROW_FACTORY_ADDRESS=0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0 +REACT_APP_ESCROW_FACTORY_ADDRESS=0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 REACT_APP_REC_ORACLE_ADDRESS=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 REACT_APP_REP_ORACLE_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC REACT_APP_EXCHANGE_ORACLE_ADDRESS=0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809 diff --git a/packages/examples/fortune/launcher/src/constants/constants.ts b/packages/examples/fortune/launcher/src/constants/constants.ts index c07e7089bd..7bcdf24d26 100644 --- a/packages/examples/fortune/launcher/src/constants/constants.ts +++ b/packages/examples/fortune/launcher/src/constants/constants.ts @@ -1,5 +1,15 @@ -export const HMT_ADDRESS = process.env.REACT_APP_HMT_ADDRESS || '0x444c45937D2202118a0FF9c48d491cef527b59dF'; -export const ESCROW_FACTORY_ADDRESS = process.env.REACT_APP_ESCROW_FACTORY_ADDRESS || '0x3FF93a3847Cd1fa62DD9BcfE351C4b6BcCcF10cB'; -export const REC_ORACLE_ADDRESS = process.env.REACT_APP_REC_ORACLE_ADDRESS || '0x61F9F0B31eacB420553da8BCC59DC617279731Ac'; -export const REP_ORACLE_ADDRESS = process.env.REACT_APP_REP_ORACLE_ADDRESS || '0xD979105297fB0eee83F7433fC09279cb5B94fFC6'; -export const EXCHANGE_ORACLE_ADDRESS = process.env.REACT_APP_EXCHANGE_ORACLE_ADDRESS || '0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809'; +export const HMT_ADDRESS = + process.env.REACT_APP_HMT_ADDRESS || + '0x5FbDB2315678afecb367f032d93F642f64180aa3'; +export const ESCROW_FACTORY_ADDRESS = + process.env.REACT_APP_ESCROW_FACTORY_ADDRESS || + '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9'; +export const REC_ORACLE_ADDRESS = + process.env.REACT_APP_REC_ORACLE_ADDRESS || + '0x61F9F0B31eacB420553da8BCC59DC617279731Ac'; +export const REP_ORACLE_ADDRESS = + process.env.REACT_APP_REP_ORACLE_ADDRESS || + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6'; +export const EXCHANGE_ORACLE_ADDRESS = + process.env.REACT_APP_EXCHANGE_ORACLE_ADDRESS || + '0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809'; diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 7e351ce0ab..fa3da0667a 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -7,6 +7,7 @@ import { calculateRewardForWorker, } from './services/rewards'; import { uploadResults } from './services/s3'; +import { updateReputations } from './services/reputation'; const app = express(); const privKey = @@ -41,8 +42,22 @@ app.post('/job/results', async (req, res) => { const balance = await getBalance(web3, escrowAddress); - const workerAddresses = filterAddressesToReward(web3, fortunes); - const rewards = calculateRewardForWorker(balance, workerAddresses); + const { workerAddresses, reputationValues } = filterAddressesToReward( + web3, + fortunes + ); + + const reputationScores = await updateReputations( + web3, + reputationValues, + workerAddresses + ); + + const rewards = calculateRewardForWorker( + balance, + workerAddresses, + reputationScores + ); // TODO calculate the URL hash(?) const resultsUrl = await uploadResults( diff --git a/packages/examples/fortune/reputation-oracle/src/services/reputation.ts b/packages/examples/fortune/reputation-oracle/src/services/reputation.ts new file mode 100644 index 0000000000..dffc7ae671 --- /dev/null +++ b/packages/examples/fortune/reputation-oracle/src/services/reputation.ts @@ -0,0 +1,36 @@ +import ReputationABI from '@human-protocol/core/abis/Reputation.json'; +import Web3 from 'web3'; +import { ReputationEntry } from './rewards'; + +const reputationAddress = + process.env.REPUTATION_ADDRESS || + '0x09635F643e140090A9A8Dcd712eD6285858ceBef'; + +export async function updateReputations( + web3: Web3, + reputationValues: ReputationEntry[], + workers: string[] +) { + const Reputation = new web3.eth.Contract( + ReputationABI as [], + reputationAddress + ); + + const gasNeeded = await Reputation.methods + .addReputations(reputationValues) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + + console.log( + `Reputations will be send, gasNeeded : ${gasNeeded}, gasPrice: ${gasPrice} ` + ); + + await Reputation.methods + .addReputations(reputationValues) + .send({ from: web3.eth.defaultAccount, gas: gasNeeded, gasPrice }); + const reputationScores = await Reputation.methods + .getReputations(workers) + .call(); + + return reputationScores; +} diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts index b429b242d0..bb8e71e5fb 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts @@ -15,11 +15,29 @@ describe('Rewards', () => { { worker: worker2, fortune: 'fortune' }, { worker: worker3, fortune: 'fortune1' }, ]); - expect(result).toStrictEqual([worker1, worker3]); + expect(result.workerAddresses).toStrictEqual([worker1, worker3]); }); it('Calculate rewards', async () => { - const result = calculateRewardForWorker(30, [worker1, worker2, worker3]); + let result = calculateRewardForWorker( + 30, + [worker1, worker2, worker3], + [ + { worker: worker1, reputation: 50 }, + { worker: worker2, reputation: 50 }, + { worker: worker3, reputation: 50 }, + ] + ); expect(result).toStrictEqual(['10', '10', '10']); + result = calculateRewardForWorker( + 30, + [worker1, worker2, worker3], + [ + { worker: worker1, reputation: 70 }, + { worker: worker2, reputation: 20 }, + { worker: worker3, reputation: 50 }, + ] + ); + expect(result).not.toStrictEqual(['10', '10', '10']); }); }); diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index 94fe95c9f4..85b773dff4 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -5,32 +5,58 @@ export interface FortuneEntry { fortune: string; } +export interface ReputationEntry { + workerAddress: string; + reputation: number; +} + export function filterAddressesToReward( web3: Web3, addressFortunesEntries: FortuneEntry[] ) { const filteredResults: FortuneEntry[] = []; + const reputationValues: ReputationEntry[] = []; const tmpHashMap: Record = {}; addressFortunesEntries.forEach((fortuneEntry) => { - const { fortune } = fortuneEntry; + const { worker, fortune } = fortuneEntry; if (tmpHashMap[fortune]) { + reputationValues.push({ workerAddress: worker, reputation: -1 }); return; } tmpHashMap[fortune] = true; filteredResults.push(fortuneEntry); + reputationValues.push({ workerAddress: worker, reputation: 1 }); }); - - return filteredResults + const workerAddresses = filteredResults .map((fortune: { worker: string }) => fortune.worker) .map(web3.utils.toChecksumAddress); + return { workerAddresses, reputationValues }; } export function calculateRewardForWorker( totalReward: number, - workerAddresses: string[] + workerAddresses: string[], + reputationValues: ReputationEntry[] = [] ) { - const rewardValue = Math.floor(totalReward / workerAddresses.length); - return workerAddresses.map(() => rewardValue.toString()); + const result: string[] = []; + let totalReputation = 0; + reputationValues.forEach((element) => { + totalReputation += Number(element.reputation); + }); + workerAddresses.forEach((worker) => { + const reputation = reputationValues.find( + (element) => element.workerAddress === worker + ); + result + .push( + ( + (totalReward * (reputation?.reputation || 0)) / + totalReputation + ).toString() + ) + .toString(); + }); + return result; } diff --git a/packages/examples/fortune/tests/e2e-backend/reputation.test.js b/packages/examples/fortune/tests/e2e-backend/reputation.test.js new file mode 100644 index 0000000000..a513e9a989 --- /dev/null +++ b/packages/examples/fortune/tests/e2e-backend/reputation.test.js @@ -0,0 +1,129 @@ +const Web3 = require('web3'); +const reputationAbi = require('./contracts/ReputationAbi.json'); +const { urls, addresses } = require('./constants'); +const web3 = new Web3(urls.ethHTTPServer); + +describe('Reputation', () => { + let reputationContract; + + beforeAll(() => { + reputationContract = new web3.eth.Contract( + reputationAbi, + addresses.reputation + ); + }); + + test('Add reputation', async () => { + const account = (await web3.eth.getAccounts())[0]; + const account1 = (await web3.eth.getAccounts())[1]; + + const oldReputations = await reputationContract.methods + .getReputations([account, account1]) + .call(); + + await reputationContract.methods + .addReputations([ + [account, 2], + [account1, -1], + ]) + .send({ from: addresses.repOracle }); + + const newReputations = await reputationContract.methods + .getReputations([account, account1]) + .call(); + expect(Number(newReputations[0].reputation)).toBe( + (Number(oldReputations[0].reputation) || 50) + 2 + ); + expect(Number(newReputations[1].reputation)).toBe( + (Number(oldReputations[1].reputation) || 50) - 1 + ); + }); + + test('Check reputation limits', async () => { + const account = (await web3.eth.getAccounts())[2]; + const account1 = (await web3.eth.getAccounts())[3]; + + const oldReputations = await reputationContract.methods + .getReputations([account, account1]) + .call(); + + await reputationContract.methods + .addReputations([ + [account, 80], + [account1, -80], + ]) + .send({ from: addresses.repOracle }); + + const newReputations = await reputationContract.methods + .getReputations([account, account1]) + .call(); + expect(Number(newReputations[0].reputation)).toBe(100); + expect(Number(newReputations[1].reputation)).toBe(1); + }); + + test('Check rewards', async () => { + const account = (await web3.eth.getAccounts())[0]; + const account1 = (await web3.eth.getAccounts())[1]; + + const oldReputations = await reputationContract.methods + .getReputations([account, account1]) + .call(); + let total = oldReputations.reduce((a, b) => a + Number(b.reputation), 0); + + const oldRewards = await reputationContract.methods + .getRewards(web3.utils.toWei('1', 'ether'), [account, account1]) + .call(); + + expect(Number(oldRewards[0])).toBe( + (web3.utils.toWei('1', 'ether') * Number(oldReputations[0].reputation)) / + total + ); + expect(Number(oldRewards[1])).toBe( + (web3.utils.toWei('1', 'ether') * Number(oldReputations[1].reputation)) / + total + ); + + await reputationContract.methods + .addReputations([ + [account, 2], + [account1, -1], + ]) + .send({ from: addresses.repOracle }); + + const newRewards = await reputationContract.methods + .getRewards(web3.utils.toWei('1', 'ether'), [account, account1]) + .call(); + + const newReputations = await reputationContract.methods + .getReputations([account, account1]) + .call(); + + expect(Number(newRewards[0])).toBe( + (web3.utils.toWei('1', 'ether') * Number(newReputations[0].reputation)) / + (total + 1) + ); + expect(Number(newRewards[1])).toBe( + (web3.utils.toWei('1', 'ether') * Number(newReputations[1].reputation)) / + (total + 1) + ); + expect(Number(newRewards[0])).not.toBe(Number(oldRewards[0])); + expect(Number(newRewards[1])).not.toBe(Number(oldRewards[0])); + }); + + test('Check user not allowed', async () => { + const account = (await web3.eth.getAccounts())[0]; + const account1 = (await web3.eth.getAccounts())[1]; + let error = null; + try { + await reputationContract.methods + .addReputations([ + [account, 2], + [account1, -1], + ]) + .send({ from: account }); + } catch (err) { + error = err; + } + expect(error).not.toBe(null); + }); +}); From 641e8f294eb4bcc4e05368cff07dacba67bb9774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 11 Jan 2023 13:21:53 +0100 Subject: [PATCH 052/216] Add reputation unit tests --- packages/core/contracts/Reputation.sol | 16 ++- packages/core/scripts/deploy.ts | 5 +- packages/core/test/Reputation.ts | 122 ++++++++++++++++++ .../fortune/reputation-oracle/src/index.ts | 4 + .../src/services/reputation.test.ts | 98 ++++++++++++++ .../src/services/reputation.ts | 10 +- .../src/services/rewards.test.ts | 14 +- 7 files changed, 249 insertions(+), 20 deletions(-) create mode 100644 packages/core/test/Reputation.ts create mode 100644 packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts diff --git a/packages/core/contracts/Reputation.sol b/packages/core/contracts/Reputation.sol index 0880fa6083..f0be65950e 100644 --- a/packages/core/contracts/Reputation.sol +++ b/packages/core/contracts/Reputation.sol @@ -16,21 +16,22 @@ contract Reputation is Ownable { // Staking contract address address public staking; + uint256 public minimumStake; - uint256 public MIN_STAKE = 1; int256 private constant MIN_REPUTATION = 1; int256 private constant MAX_REPUTATION = 100; mapping(address => int256) public reputations; - constructor(address _staking) { + constructor(address _staking, uint256 _minimumStake) { require(_staking != address(0), 'Zero address provided'); staking = _staking; + _setMinimumStake(_minimumStake); } function addReputations(Worker[] memory _workers) public { Stakes.Staker memory staker = IStaking(staking).getStaker(msg.sender); require( - staker.tokensAvailable() > MIN_STAKE, + staker.tokensAvailable() > minimumStake, 'Needs to stake HMT tokens to modify reputations.' ); @@ -98,7 +99,12 @@ contract Reputation is Ownable { return returnedValues; } - function updateStakingAmount(uint256 amount) public onlyOwner { - MIN_STAKE = amount; + function setMinimumStake(uint256 _minimumStake) external onlyOwner { + _setMinimumStake(_minimumStake); + } + + function _setMinimumStake(uint256 _minimumStake) private { + require(_minimumStake > 0, 'Must be a positive number'); + minimumStake = _minimumStake; } } diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index 31775568a8..7484f5ab88 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -66,7 +66,10 @@ async function main() { } const Reputation = await ethers.getContractFactory('Reputation'); - const reputationContract = await Reputation.deploy(stakingContract.address); + const reputationContract = await Reputation.deploy( + stakingContract.address, + 1 + ); await reputationContract.deployed(); console.log('Reputation Contract Address:', reputationContract.address); } diff --git a/packages/core/test/Reputation.ts b/packages/core/test/Reputation.ts new file mode 100644 index 0000000000..a76e969245 --- /dev/null +++ b/packages/core/test/Reputation.ts @@ -0,0 +1,122 @@ +import { expect } from 'chai'; +import { Signer } from 'ethers'; +import { ethers, upgrades } from 'hardhat'; +import { HMToken, Reputation, Staking } from '../typechain-types'; + +describe('Reputation', function () { + let owner: Signer, reputationOracle: Signer; + + let token: HMToken, reputation: Reputation, staking: Staking; + + const minimumStake = 1; + const worker1 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; + const worker2 = '0xcd3B766CCDd6AE721141F452C550Ca635964ce71'; + const worker3 = '0x146D35a6485DbAFF357fB48B3BbA31fCF9E9c787'; + + const reputationValues = [ + { workerAddress: worker1, reputation: 10 }, + { workerAddress: worker2, reputation: -10 }, + { workerAddress: worker3, reputation: 20 }, + ]; + + async function getReputations() { + const result = await reputation + .connect(reputationOracle) + .getReputations([worker1, worker2, worker3]); + + return result; + } + + this.beforeAll(async () => { + [owner, reputationOracle] = await ethers.getSigners(); + + // Deploy HMToken Contract + const HMToken = await ethers.getContractFactory('HMToken'); + token = await HMToken.deploy(1000000000, 'Human Token', 18, 'HMT'); + + // Send HMT tokens to the operator + await token + .connect(owner) + .transfer(await reputationOracle.getAddress(), 1000); + }); + + this.beforeEach(async () => { + // Deploy Staking Conract + const Staking = await ethers.getContractFactory('Staking'); + staking = (await upgrades.deployProxy(Staking, [token.address, 2, 2], { + kind: 'uups', + initializer: 'initialize', + })) as Staking; + + // Approve spend HMT tokens staking contract + await token.connect(reputationOracle).approve(staking.address, 100); + + // Deploy Reputation Contract + const Reputation = await ethers.getContractFactory('Reputation'); + + reputation = await Reputation.deploy(staking.address, minimumStake); + }); + + it('Should set the right staking address', async () => { + const result = await reputation.staking(); + expect(result).to.equal(staking.address); + }); + + it('Should set the right minimun amount of staking', async () => { + const result = await reputation.minimumStake(); + expect(Number(result)).to.equal(minimumStake); + }); + + it('Should get 0 for non-setted reputations', async () => { + const reputations = await getReputations(); + expect(reputations[0].workerAddress).to.equal(worker1); + expect(reputations[0].reputation).to.equal('0'); + expect(reputations[1].workerAddress).to.equal(worker2); + expect(reputations[1].reputation).to.equal('0'); + expect(reputations[2].workerAddress).to.equal(worker3); + expect(reputations[2].reputation).to.equal('0'); + }); + + it('Should not allow to modify reputation without stake', async () => { + await expect( + reputation.connect(reputationOracle).addReputations(reputationValues) + ).to.be.revertedWith('Needs to stake HMT tokens to modify reputations.'); + }); + + it('Should modify reputation after stake', async () => { + await staking.connect(reputationOracle).stake(10); + await reputation.connect(reputationOracle).addReputations(reputationValues); + + let reputations = await getReputations(); + expect(reputations[0].workerAddress).to.equal(worker1); + expect(reputations[0].reputation).to.equal('60'); + expect(reputations[1].workerAddress).to.equal(worker2); + expect(reputations[1].reputation).to.equal('40'); + expect(reputations[2].workerAddress).to.equal(worker3); + expect(reputations[2].reputation).to.equal('70'); + + await reputation.connect(reputationOracle).addReputations(reputationValues); + + reputations = await getReputations(); + expect(reputations[0].workerAddress).to.equal(worker1); + expect(reputations[0].reputation).to.equal('70'); + expect(reputations[1].workerAddress).to.equal(worker2); + expect(reputations[1].reputation).to.equal('30'); + expect(reputations[2].workerAddress).to.equal(worker3); + expect(reputations[2].reputation).to.equal('90'); + }); + + it('Should calculate the rewards', async () => { + await staking.connect(reputationOracle).stake(10); + await reputation.connect(reputationOracle).addReputations(reputationValues); + + const rewards = await reputation.getRewards( + ethers.utils.parseUnits('1', 'ether'), + [worker1, worker2, worker3] + ); + + expect(rewards[0]).to.equal('352941176470588235'); + expect(rewards[1]).to.equal('235294117647058823'); + expect(rewards[2]).to.equal('411764705882352941'); + }); +}); diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index fa3da0667a..61e85cd9f6 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -15,6 +15,9 @@ const privKey = '5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a'; const ethHttpServer = process.env.ETH_HTTP_SERVER || 'http://127.0.0.1:8545'; const port = process.env.PORT || 3006; +const reputationAddress = + process.env.REPUTATION_ADDRESS || + '0x09635F643e140090A9A8Dcd712eD6285858ceBef'; const web3 = new Web3(ethHttpServer); const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); @@ -49,6 +52,7 @@ app.post('/job/results', async (req, res) => { const reputationScores = await updateReputations( web3, + reputationAddress, reputationValues, workerAddresses ); diff --git a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts new file mode 100644 index 0000000000..f00d16eb36 --- /dev/null +++ b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts @@ -0,0 +1,98 @@ +import HMToken from '@human-protocol/core/artifacts/contracts/HMToken.sol//HMToken.json'; +import Reputation from '@human-protocol/core/artifacts/contracts/Reputation.sol/Reputation.json'; +import Staking from '@human-protocol/core/artifacts/contracts/Staking.sol/Staking.json'; +import { beforeAll, describe, expect, it } from '@jest/globals'; +import Web3 from 'web3'; +import { Contract } from 'web3-eth-contract'; +import { updateReputations } from './reputation'; + +let token: Contract; +let staking: Contract; +let reputation: Contract; + +const worker1 = '0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f'; +const worker2 = '0xcd3B766CCDd6AE721141F452C550Ca635964ce71'; +const worker3 = '0x146D35a6485DbAFF357fB48B3BbA31fCF9E9c787'; + +const web3 = new Web3('http://127.0.0.1:8548'); +const owner = web3.eth.accounts.privateKeyToAccount( + '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' +); +const reputationAccount = web3.eth.accounts.privateKeyToAccount( + '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a' +); +const reputationAddress = '0x0165878A594ca255338adfa4d48449f69242Eb8F'; + +describe('Reputation', () => { + beforeAll(async () => { + const tokenContract = new web3.eth.Contract(HMToken.abi as []); + token = await tokenContract + .deploy({ + data: HMToken.bytecode, + arguments: [ + web3.utils.toWei('100000', 'ether'), + 'Human Token', + 18, + 'HMT', + ], + }) + .send({ + from: owner.address, + }); + + const stakingContract = new web3.eth.Contract(Staking.abi as []); + staking = await stakingContract + .deploy({ + data: Staking.bytecode, + arguments: [], + }) + .send({ + from: owner.address, + }); + + await staking.methods + .initialize(token.options.address, web3.utils.toWei('1', 'ether'), 1) + .send({ from: owner.address }); + + const reputationContract = new web3.eth.Contract(Reputation.abi as []); + reputation = await reputationContract + .deploy({ + data: Reputation.bytecode, + arguments: [staking.options.address], + }) + .send({ + from: owner.address, + }); + + await token.methods + .transfer(reputationAccount.address, web3.utils.toWei('1000', 'ether')) + .send({ from: owner.address }); + + await token.methods + .approve(staking.options.address, web3.utils.toWei('500', 'ether')) + .send({ from: reputationAccount.address }); + + await staking.methods + .stake(web3.utils.toWei('500', 'ether')) + .send({ from: reputationAccount.address }); + + web3.eth.defaultAccount = reputationAccount.address; + }); + + it('Add reputations', async () => { + const result = await updateReputations( + web3, + reputationAddress, + [ + { workerAddress: worker1, reputation: 1 }, + { workerAddress: worker2, reputation: -1 }, + { workerAddress: worker3, reputation: 2 }, + ], + [worker1, worker2, worker3] + ); + expect(result).not.toBeUndefined(); + expect(result[0].reputation).toBe('51'); + expect(result[1].reputation).toBe('49'); + expect(result[2].reputation).toBe('52'); + }); +}); diff --git a/packages/examples/fortune/reputation-oracle/src/services/reputation.ts b/packages/examples/fortune/reputation-oracle/src/services/reputation.ts index dffc7ae671..8102a4a0aa 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/reputation.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/reputation.ts @@ -2,12 +2,9 @@ import ReputationABI from '@human-protocol/core/abis/Reputation.json'; import Web3 from 'web3'; import { ReputationEntry } from './rewards'; -const reputationAddress = - process.env.REPUTATION_ADDRESS || - '0x09635F643e140090A9A8Dcd712eD6285858ceBef'; - export async function updateReputations( web3: Web3, + reputationAddress: string, reputationValues: ReputationEntry[], workers: string[] ) { @@ -21,13 +18,10 @@ export async function updateReputations( .estimateGas({ from: web3.eth.defaultAccount }); const gasPrice = await web3.eth.getGasPrice(); - console.log( - `Reputations will be send, gasNeeded : ${gasNeeded}, gasPrice: ${gasPrice} ` - ); - await Reputation.methods .addReputations(reputationValues) .send({ from: web3.eth.defaultAccount, gas: gasNeeded, gasPrice }); + const reputationScores = await Reputation.methods .getReputations(workers) .call(); diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts index bb8e71e5fb..cc83dd1ec6 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts @@ -15,6 +15,7 @@ describe('Rewards', () => { { worker: worker2, fortune: 'fortune' }, { worker: worker3, fortune: 'fortune1' }, ]); + expect(result.workerAddresses).toStrictEqual([worker1, worker3]); }); @@ -23,19 +24,20 @@ describe('Rewards', () => { 30, [worker1, worker2, worker3], [ - { worker: worker1, reputation: 50 }, - { worker: worker2, reputation: 50 }, - { worker: worker3, reputation: 50 }, + { workerAddress: worker1, reputation: 50 }, + { workerAddress: worker2, reputation: 50 }, + { workerAddress: worker3, reputation: 50 }, ] ); + expect(result).toStrictEqual(['10', '10', '10']); result = calculateRewardForWorker( 30, [worker1, worker2, worker3], [ - { worker: worker1, reputation: 70 }, - { worker: worker2, reputation: 20 }, - { worker: worker3, reputation: 50 }, + { workerAddress: worker1, reputation: 70 }, + { workerAddress: worker2, reputation: 20 }, + { workerAddress: worker3, reputation: 50 }, ] ); expect(result).not.toStrictEqual(['10', '10', '10']); From d29bcb2b0d0ef24d3bc10db1df8646ff527ec61b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 12 Jan 2023 09:09:11 +0100 Subject: [PATCH 053/216] Improve unit tests for reputation --- packages/core/test/Reputation.ts | 31 +++-- .../tests/e2e-backend/reputation.test.js | 129 ------------------ 2 files changed, 18 insertions(+), 142 deletions(-) delete mode 100644 packages/examples/fortune/tests/e2e-backend/reputation.test.js diff --git a/packages/core/test/Reputation.ts b/packages/core/test/Reputation.ts index a76e969245..aeef44432e 100644 --- a/packages/core/test/Reputation.ts +++ b/packages/core/test/Reputation.ts @@ -11,18 +11,16 @@ describe('Reputation', function () { const minimumStake = 1; const worker1 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; const worker2 = '0xcd3B766CCDd6AE721141F452C550Ca635964ce71'; - const worker3 = '0x146D35a6485DbAFF357fB48B3BbA31fCF9E9c787'; const reputationValues = [ { workerAddress: worker1, reputation: 10 }, { workerAddress: worker2, reputation: -10 }, - { workerAddress: worker3, reputation: 20 }, ]; async function getReputations() { const result = await reputation .connect(reputationOracle) - .getReputations([worker1, worker2, worker3]); + .getReputations([worker1, worker2]); return result; } @@ -73,8 +71,6 @@ describe('Reputation', function () { expect(reputations[0].reputation).to.equal('0'); expect(reputations[1].workerAddress).to.equal(worker2); expect(reputations[1].reputation).to.equal('0'); - expect(reputations[2].workerAddress).to.equal(worker3); - expect(reputations[2].reputation).to.equal('0'); }); it('Should not allow to modify reputation without stake', async () => { @@ -92,8 +88,6 @@ describe('Reputation', function () { expect(reputations[0].reputation).to.equal('60'); expect(reputations[1].workerAddress).to.equal(worker2); expect(reputations[1].reputation).to.equal('40'); - expect(reputations[2].workerAddress).to.equal(worker3); - expect(reputations[2].reputation).to.equal('70'); await reputation.connect(reputationOracle).addReputations(reputationValues); @@ -102,8 +96,6 @@ describe('Reputation', function () { expect(reputations[0].reputation).to.equal('70'); expect(reputations[1].workerAddress).to.equal(worker2); expect(reputations[1].reputation).to.equal('30'); - expect(reputations[2].workerAddress).to.equal(worker3); - expect(reputations[2].reputation).to.equal('90'); }); it('Should calculate the rewards', async () => { @@ -112,11 +104,24 @@ describe('Reputation', function () { const rewards = await reputation.getRewards( ethers.utils.parseUnits('1', 'ether'), - [worker1, worker2, worker3] + [worker1, worker2] ); - expect(rewards[0]).to.equal('352941176470588235'); - expect(rewards[1]).to.equal('235294117647058823'); - expect(rewards[2]).to.equal('411764705882352941'); + expect(rewards[0]).to.equal(ethers.utils.parseUnits('0.6', 'ether')); + expect(rewards[1]).to.equal(ethers.utils.parseUnits('0.4', 'ether')); + }); + + it('Check reputation limits', async () => { + await staking.connect(reputationOracle).stake(10); + await reputation.connect(reputationOracle).addReputations([ + { workerAddress: worker1, reputation: 80 }, + { workerAddress: worker2, reputation: -80 }, + ]); + + const reputations = await getReputations(); + expect(reputations[0].workerAddress).to.equal(worker1); + expect(reputations[0].reputation).to.equal('100'); + expect(reputations[1].workerAddress).to.equal(worker2); + expect(reputations[1].reputation).to.equal('1'); }); }); diff --git a/packages/examples/fortune/tests/e2e-backend/reputation.test.js b/packages/examples/fortune/tests/e2e-backend/reputation.test.js deleted file mode 100644 index a513e9a989..0000000000 --- a/packages/examples/fortune/tests/e2e-backend/reputation.test.js +++ /dev/null @@ -1,129 +0,0 @@ -const Web3 = require('web3'); -const reputationAbi = require('./contracts/ReputationAbi.json'); -const { urls, addresses } = require('./constants'); -const web3 = new Web3(urls.ethHTTPServer); - -describe('Reputation', () => { - let reputationContract; - - beforeAll(() => { - reputationContract = new web3.eth.Contract( - reputationAbi, - addresses.reputation - ); - }); - - test('Add reputation', async () => { - const account = (await web3.eth.getAccounts())[0]; - const account1 = (await web3.eth.getAccounts())[1]; - - const oldReputations = await reputationContract.methods - .getReputations([account, account1]) - .call(); - - await reputationContract.methods - .addReputations([ - [account, 2], - [account1, -1], - ]) - .send({ from: addresses.repOracle }); - - const newReputations = await reputationContract.methods - .getReputations([account, account1]) - .call(); - expect(Number(newReputations[0].reputation)).toBe( - (Number(oldReputations[0].reputation) || 50) + 2 - ); - expect(Number(newReputations[1].reputation)).toBe( - (Number(oldReputations[1].reputation) || 50) - 1 - ); - }); - - test('Check reputation limits', async () => { - const account = (await web3.eth.getAccounts())[2]; - const account1 = (await web3.eth.getAccounts())[3]; - - const oldReputations = await reputationContract.methods - .getReputations([account, account1]) - .call(); - - await reputationContract.methods - .addReputations([ - [account, 80], - [account1, -80], - ]) - .send({ from: addresses.repOracle }); - - const newReputations = await reputationContract.methods - .getReputations([account, account1]) - .call(); - expect(Number(newReputations[0].reputation)).toBe(100); - expect(Number(newReputations[1].reputation)).toBe(1); - }); - - test('Check rewards', async () => { - const account = (await web3.eth.getAccounts())[0]; - const account1 = (await web3.eth.getAccounts())[1]; - - const oldReputations = await reputationContract.methods - .getReputations([account, account1]) - .call(); - let total = oldReputations.reduce((a, b) => a + Number(b.reputation), 0); - - const oldRewards = await reputationContract.methods - .getRewards(web3.utils.toWei('1', 'ether'), [account, account1]) - .call(); - - expect(Number(oldRewards[0])).toBe( - (web3.utils.toWei('1', 'ether') * Number(oldReputations[0].reputation)) / - total - ); - expect(Number(oldRewards[1])).toBe( - (web3.utils.toWei('1', 'ether') * Number(oldReputations[1].reputation)) / - total - ); - - await reputationContract.methods - .addReputations([ - [account, 2], - [account1, -1], - ]) - .send({ from: addresses.repOracle }); - - const newRewards = await reputationContract.methods - .getRewards(web3.utils.toWei('1', 'ether'), [account, account1]) - .call(); - - const newReputations = await reputationContract.methods - .getReputations([account, account1]) - .call(); - - expect(Number(newRewards[0])).toBe( - (web3.utils.toWei('1', 'ether') * Number(newReputations[0].reputation)) / - (total + 1) - ); - expect(Number(newRewards[1])).toBe( - (web3.utils.toWei('1', 'ether') * Number(newReputations[1].reputation)) / - (total + 1) - ); - expect(Number(newRewards[0])).not.toBe(Number(oldRewards[0])); - expect(Number(newRewards[1])).not.toBe(Number(oldRewards[0])); - }); - - test('Check user not allowed', async () => { - const account = (await web3.eth.getAccounts())[0]; - const account1 = (await web3.eth.getAccounts())[1]; - let error = null; - try { - await reputationContract.methods - .addReputations([ - [account, 2], - [account1, -1], - ]) - .send({ from: account }); - } catch (err) { - error = err; - } - expect(error).not.toBe(null); - }); -}); From cf61bedac36f18a927608b9a5e3263a0d9827c50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 12 Jan 2023 09:57:00 +0100 Subject: [PATCH 054/216] fix raputation service test --- .../fortune/reputation-oracle/src/services/reputation.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts index f00d16eb36..ba46683482 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts @@ -58,7 +58,7 @@ describe('Reputation', () => { reputation = await reputationContract .deploy({ data: Reputation.bytecode, - arguments: [staking.options.address], + arguments: [staking.options.address, 1], }) .send({ from: owner.address, From fdafac90da68facf1b559167fe134acba8115a5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 12 Jan 2023 14:37:44 +0100 Subject: [PATCH 055/216] Update from Transparent to UUPS proxy --- packages/core/contracts/EscrowFactory.sol | 39 +++- .../contracts/EscrowFactoryUpgradeTest.sol | 51 ------ .../core/contracts/utils/Initializable.sol | 170 ------------------ packages/core/hardhat.config.ts | 1 + packages/core/scripts/deploy.ts | 2 +- packages/core/test/EscrowFactory.ts | 14 +- packages/core/test/EscrowFactoryProxy.ts | 146 --------------- packages/core/test/RewardPool.ts | 26 ++- packages/core/test/Staking.ts | 7 +- 9 files changed, 58 insertions(+), 398 deletions(-) delete mode 100644 packages/core/contracts/EscrowFactoryUpgradeTest.sol delete mode 100644 packages/core/contracts/utils/Initializable.sol delete mode 100644 packages/core/test/EscrowFactoryProxy.ts diff --git a/packages/core/contracts/EscrowFactory.sol b/packages/core/contracts/EscrowFactory.sol index a7ede01b9e..4acbf33c90 100644 --- a/packages/core/contracts/EscrowFactory.sol +++ b/packages/core/contracts/EscrowFactory.sol @@ -2,11 +2,13 @@ pragma solidity >=0.6.2; -import './Escrow.sol'; +import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; +import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; + import './interfaces/IStaking.sol'; -import './utils/Initializable.sol'; +import './Escrow.sol'; -contract EscrowFactory is Initializable { +contract EscrowFactory is OwnableUpgradeable, UUPSUpgradeable { // all Escrows will have this duration. uint256 constant STANDARD_DURATION = 8640000; string constant ERROR_ZERO_ADDRESS = 'EscrowFactory: Zero Address'; @@ -18,7 +20,18 @@ contract EscrowFactory is Initializable { address public staking; event Launched(address eip20, address escrow); - function initialize(address _eip20, address _staking) public initializer { + function initialize( + address _eip20, + address _staking + ) external payable virtual initializer { + __Ownable_init_unchained(); + __EscrowFactory_init_unchained(_eip20, _staking); + } + + function __EscrowFactory_init_unchained( + address _eip20, + address _staking + ) internal onlyInitializing { require(_eip20 != address(0), ERROR_ZERO_ADDRESS); eip20 = _eip20; require(_staking != address(0), ERROR_ZERO_ADDRESS); @@ -42,11 +55,9 @@ contract EscrowFactory is Initializable { STANDARD_DURATION, trustedHandlers ); - counter++; - escrowCounters[address(escrow)] = counter; - lastEscrow = address(escrow); - emit Launched(eip20, lastEscrow); - return lastEscrow; + escrowCounters[address(escrow)] = counter++; + emit Launched(eip20, address(escrow)); + return address(escrow); } function isChild(address _child) public view returns (bool) { @@ -56,4 +67,14 @@ contract EscrowFactory is Initializable { function hasEscrow(address _address) public view returns (bool) { return escrowCounters[_address] != 0; } + + // solhint-disable-next-line no-empty-blocks + function _authorizeUpgrade(address) internal override onlyOwner {} + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[43] private __gap; } diff --git a/packages/core/contracts/EscrowFactoryUpgradeTest.sol b/packages/core/contracts/EscrowFactoryUpgradeTest.sol deleted file mode 100644 index 840b8e7575..0000000000 --- a/packages/core/contracts/EscrowFactoryUpgradeTest.sol +++ /dev/null @@ -1,51 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity >=0.6.2; - -import './Escrow.sol'; -import './interfaces/IStaking.sol'; -import './utils/Initializable.sol'; - -contract EscrowFactoryUpgradeTest is Initializable { - // all Escrows will have this duration. - uint256 constant STANDARD_DURATION = 8640000; - string constant ERROR_ZERO_ADDRESS = 'EscrowFactory: Zero Address'; - - uint256 public counter; - mapping(address => uint256) public escrowCounters; - address public lastEscrow; - address public eip20; - address public staking; - event Launched(address eip20, address escrow); - - function initialize(address _eip20, address _staking) public initializer { - require(_eip20 != address(0), ERROR_ZERO_ADDRESS); - eip20 = _eip20; - require(_staking != address(0), ERROR_ZERO_ADDRESS); - staking = _staking; - } - - function createEscrow( - address[] memory trustedHandlers - ) public returns (address) { - bool hasAvailableStake = IStaking(staking).hasAvailableStake( - msg.sender - ); - require( - hasAvailableStake == true, - 'Needs to stake HMT tokens to create an escrow.' - ); - - Escrow escrow = new Escrow( - eip20, - payable(msg.sender), - STANDARD_DURATION, - trustedHandlers - ); - counter++; - escrowCounters[address(escrow)] = counter; - lastEscrow = address(escrow); - emit Launched(eip20, lastEscrow); - return lastEscrow; - } -} diff --git a/packages/core/contracts/utils/Initializable.sol b/packages/core/contracts/utils/Initializable.sol deleted file mode 100644 index 3daaaed617..0000000000 --- a/packages/core/contracts/utils/Initializable.sol +++ /dev/null @@ -1,170 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts (last updated v4.7.0) (proxy/utils/Initializable.sol) - -pragma solidity ^0.8.2; - -import './AddressUpgradeable.sol'; - -/** - * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed - * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an - * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer - * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. - * - * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be - * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in - * case an upgrade adds a module that needs to be initialized. - * - * For example: - * - * [.hljs-theme-light.nopadding] - * ``` - * contract MyToken is ERC20Upgradeable { - * function initialize() initializer public { - * __ERC20_init("MyToken", "MTK"); - * } - * } - * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { - * function initializeV2() reinitializer(2) public { - * __ERC20Permit_init("MyToken"); - * } - * } - * ``` - * - * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as - * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. - * - * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure - * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. - * - * [CAUTION] - * ==== - * Avoid leaving a contract uninitialized. - * - * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation - * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke - * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: - * - * [.hljs-theme-light.nopadding] - * ``` - * /// @custom:oz-upgrades-unsafe-allow constructor - * constructor() { - * _disableInitializers(); - * } - * ``` - * ==== - */ -abstract contract Initializable { - /** - * @dev Indicates that the contract has been initialized. - * @custom:oz-retyped-from bool - */ - uint8 private _initialized; - - /** - * @dev Indicates that the contract is in the process of being initialized. - */ - bool private _initializing; - - /** - * @dev Triggered when the contract has been initialized or reinitialized. - */ - event Initialized(uint8 version); - - /** - * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope, - * `onlyInitializing` functions can be used to initialize parent contracts. - * - * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a - * constructor. - * - * Emits an {Initialized} event. - */ - modifier initializer() { - bool isTopLevelCall = !_initializing; - require( - (isTopLevelCall && _initialized < 1) || - (!AddressUpgradeable.isContract(address(this)) && - _initialized == 1), - 'Initializable: contract is already initialized' - ); - _initialized = 1; - if (isTopLevelCall) { - _initializing = true; - } - _; - if (isTopLevelCall) { - _initializing = false; - emit Initialized(1); - } - } - - /** - * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the - * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be - * used to initialize parent contracts. - * - * A reinitializer may be used after the original initialization step. This is essential to configure modules that - * are added through upgrades and that require initialization. - * - * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer` - * cannot be nested. If one is invoked in the context of another, execution will revert. - * - * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in - * a contract, executing them in the right order is up to the developer or operator. - * - * WARNING: setting the version to 255 will prevent any future reinitialization. - * - * Emits an {Initialized} event. - */ - modifier reinitializer(uint8 version) { - require( - !_initializing && _initialized < version, - 'Initializable: contract is already initialized' - ); - _initialized = version; - _initializing = true; - _; - _initializing = false; - emit Initialized(version); - } - - /** - * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the - * {initializer} and {reinitializer} modifiers, directly or indirectly. - */ - modifier onlyInitializing() { - require(_initializing, 'Initializable: contract is not initializing'); - _; - } - - /** - * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call. - * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized - * to any version. It is recommended to use this to lock implementation contracts that are designed to be called - * through proxies. - * - * Emits an {Initialized} event the first time it is successfully executed. - */ - function _disableInitializers() internal virtual { - require(!_initializing, 'Initializable: contract is initializing'); - if (_initialized != type(uint8).max) { - _initialized = type(uint8).max; - emit Initialized(type(uint8).max); - } - } - - /** - * @dev Internal function that returns the initialized version. Returns `_initialized` - */ - function _getInitializedVersion() internal view returns (uint8) { - return _initialized; - } - - /** - * @dev Internal function that returns the initialized version. Returns `_initializing` - */ - function _isInitializing() internal view returns (bool) { - return _initializing; - } -} diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index a7a0206993..d0ca690c8b 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -48,6 +48,7 @@ task( const config: HardhatUserConfig = { solidity: { version: '0.8.9', + settings: { optimizer: { enabled: true, runs: 4294967295 } }, }, defaultNetwork: 'hardhat', networks: { diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index e763ff62ef..ab74027da8 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -30,7 +30,7 @@ async function main() { const escrowFactoryContract = await upgrades.deployProxy( EscrowFactory, [HMTokenContract.address, stakingContract.address], - { initializer: 'initialize' } + { initializer: 'initialize', kind: 'uups' } ); await escrowFactoryContract.deployed(); console.log('Escrow Factory Proxy Address: ', escrowFactoryContract.address); diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index a93170c38f..555b19e4f8 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -65,8 +65,11 @@ describe('EscrowFactory', function () { // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(); - await escrowFactory.initialize(token.address, staking.address); + escrowFactory = (await upgrades.deployProxy( + EscrowFactory, + [token.address, staking.address], + { kind: 'uups', initializer: 'initialize' } + )) as EscrowFactory; }); describe('deployment', () => { @@ -105,12 +108,17 @@ describe('EscrowFactory', function () { }); it('Should find the newly created escrow from deployed escrow', async () => { - await stakeAndCreateEscrow(staking); + console.log(await stakeAndCreateEscrow(staking)); + console.log('it:', escrowFactory.address); const escrowAddress = await escrowFactory.lastEscrow(); + console.log('lastEscrow', escrowAddress); + console.log('counter: ', await escrowFactory.counter()); + const result = await escrowFactory .connect(operator) .hasEscrow(escrowAddress); + console.log(result); expect(result).to.equal(true); }); diff --git a/packages/core/test/EscrowFactoryProxy.ts b/packages/core/test/EscrowFactoryProxy.ts deleted file mode 100644 index cb80ab0642..0000000000 --- a/packages/core/test/EscrowFactoryProxy.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { expect } from 'chai'; -import { Contract, Signer } from 'ethers'; -import { ethers, upgrades } from 'hardhat'; -import { HMToken, Staking } from '../typechain-types'; - -let escrowFactoryProxyContract: Contract, - HMTokenContract: HMToken, - stakingContract: Staking, - adminImplementation: Contract; -let owner: Signer, account1: Signer; - -describe('EscrowFactoryProxy', function () { - this.beforeAll(async () => { - [owner, account1] = await ethers.getSigners(); - const HMToken = await ethers.getContractFactory('HMToken'); - HMTokenContract = await HMToken.deploy( - 1000000000, - 'Human Token', - 18, - 'HMT' - ); - await HMTokenContract.deployed(); - - const Staking = await ethers.getContractFactory('Staking'); - stakingContract = await Staking.deploy(HMTokenContract.address, 1, 1); - await stakingContract.deployed(); - }); - - this.beforeEach(async () => { - const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactoryProxyContract = await upgrades.deployProxy( - EscrowFactory, - [HMTokenContract.address, stakingContract.address], - { initializer: 'initialize' } - ); - await escrowFactoryProxyContract.deployed(); - - adminImplementation = await upgrades.admin.getInstance(); - }); - - it('Deploy proxy factory', async function () { - const adminAddress = await upgrades.erc1967.getAdminAddress( - escrowFactoryProxyContract.address - ); - const implementationAddress = - await upgrades.erc1967.getImplementationAddress( - escrowFactoryProxyContract.address - ); - - expect(adminAddress).to.equal(adminImplementation.address); - expect(adminAddress).to.equal( - await adminImplementation.getProxyAdmin( - escrowFactoryProxyContract.address - ) - ); - expect(implementationAddress).to.equal( - await adminImplementation.getProxyImplementation( - escrowFactoryProxyContract.address - ) - ); - }); - - it('Check proxy storage', async function () { - expect(HMTokenContract.address).to.equal( - await escrowFactoryProxyContract.eip20() - ); - expect(stakingContract.address).to.equal( - await escrowFactoryProxyContract.staking() - ); - }); - - it('Check implementation storage', async function () { - const escrowFactoryImplementation = await ethers.getContractAt( - 'EscrowFactory', - await upgrades.erc1967.getImplementationAddress( - escrowFactoryProxyContract.address - ) - ); - expect(await escrowFactoryImplementation.eip20()).to.equal( - ethers.constants.Zero - ); - expect(await escrowFactoryImplementation.staking()).to.equal( - ethers.constants.Zero - ); - }); - - it('Upgrade proxy', async function () { - expect( - await escrowFactoryProxyContract.hasEscrow(owner.getAddress()) - ).to.equal(false); - - const EscrowFactory = await ethers.getContractFactory( - 'EscrowFactoryUpgradeTest' - ); - escrowFactoryProxyContract = await upgrades.upgradeProxy( - escrowFactoryProxyContract, - EscrowFactory - ); - await expect(() => { - escrowFactoryProxyContract.hasEscrow(owner.getAddress()); - }).to.throw( - TypeError, - 'escrowFactoryProxyContract.hasEscrow is not a function' - ); - - expect(HMTokenContract.address).to.equal( - await escrowFactoryProxyContract.eip20() - ); - expect(stakingContract.address).to.equal( - await escrowFactoryProxyContract.staking() - ); - }); - - it('Revert when updating with a non contract address', async function () { - await expect( - adminImplementation.upgrade( - escrowFactoryProxyContract.address, - owner.getAddress() - ) - ).to.be.revertedWith('ERC1967: new implementation is not a contract'); - }); - - it('Only admin can modify', async function () { - expect(await adminImplementation.owner()).to.equal( - await owner.getAddress() - ); - - await expect( - adminImplementation - .connect(account1) - .upgrade(escrowFactoryProxyContract.address, owner.getAddress()) - ).to.be.revertedWith('Ownable: caller is not the owner'); - - adminImplementation.transferOwnership(account1.getAddress()); - expect(await adminImplementation.owner()).to.equal( - await account1.getAddress() - ); - - await expect( - adminImplementation.upgrade( - escrowFactoryProxyContract.address, - owner.getAddress() - ) - ).to.be.revertedWith('Ownable: caller is not the owner'); - }); -}); diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index bb8e201deb..95b720f5c3 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -44,13 +44,20 @@ describe('RewardPool', function () { // Deploy Staking Conract const Staking = await ethers.getContractFactory('Staking'); - staking = await Staking.deploy(token.address, minimumStake, lockPeriod); + staking = (await upgrades.deployProxy( + Staking, + [token.address, minimumStake, lockPeriod], + { kind: 'uups', initializer: 'initialize' } + )) as Staking; // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(); - await escrowFactory.initialize(token.address, staking.address); + escrowFactory = (await upgrades.deployProxy( + EscrowFactory, + [token.address, staking.address], + { kind: 'uups', initializer: 'initialize' } + )) as EscrowFactory; }); this.beforeEach(async () => { @@ -74,19 +81,6 @@ describe('RewardPool', function () { ); }); - // Deploy Staking Conract - const Staking = await ethers.getContractFactory('Staking'); - staking = (await upgrades.deployProxy( - Staking, - [token.address, minimumStake, lockPeriod], - { kind: 'uups', initializer: 'initialize' } - )) as Staking; - - // Deploy Escrow Factory Contract - const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - - escrowFactory = await EscrowFactory.deploy(token.address, staking.address); - // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); rewardPool = (await upgrades.deployProxy( diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 1db04b52cb..f415a80730 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -89,8 +89,11 @@ describe('Staking', function () { // Deploy Escrow Factory Contract const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); - escrowFactory = await EscrowFactory.deploy(); - await escrowFactory.initialize(token.address, staking.address); + escrowFactory = (await upgrades.deployProxy( + EscrowFactory, + [token.address, staking.address], + { kind: 'uups', initializer: 'initialize' } + )) as EscrowFactory; // Deploy Reward Pool Conract const RewardPool = await ethers.getContractFactory('RewardPool'); From a4f92c40fc5cfecb22c9fdf2a729af17881cab40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 12 Jan 2023 14:57:35 +0100 Subject: [PATCH 056/216] Fix core tests --- packages/core/contracts/EscrowFactory.sol | 8 +++++--- packages/core/test/EscrowFactory.ts | 7 +------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/core/contracts/EscrowFactory.sol b/packages/core/contracts/EscrowFactory.sol index 4acbf33c90..d5d4eef750 100644 --- a/packages/core/contracts/EscrowFactory.sol +++ b/packages/core/contracts/EscrowFactory.sol @@ -55,9 +55,11 @@ contract EscrowFactory is OwnableUpgradeable, UUPSUpgradeable { STANDARD_DURATION, trustedHandlers ); - escrowCounters[address(escrow)] = counter++; - emit Launched(eip20, address(escrow)); - return address(escrow); + counter++; + escrowCounters[address(escrow)] = counter; + lastEscrow = address(escrow); + emit Launched(eip20, lastEscrow); + return lastEscrow; } function isChild(address _child) public view returns (bool) { diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 555b19e4f8..472e0916e6 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -108,17 +108,12 @@ describe('EscrowFactory', function () { }); it('Should find the newly created escrow from deployed escrow', async () => { - console.log(await stakeAndCreateEscrow(staking)); - - console.log('it:', escrowFactory.address); + await stakeAndCreateEscrow(staking); const escrowAddress = await escrowFactory.lastEscrow(); - console.log('lastEscrow', escrowAddress); - console.log('counter: ', await escrowFactory.counter()); const result = await escrowFactory .connect(operator) .hasEscrow(escrowAddress); - console.log(result); expect(result).to.equal(true); }); From cb70d28929c3baa3a7091121f5335d00f8a04b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 12 Jan 2023 16:29:22 +0100 Subject: [PATCH 057/216] fix all tests --- package.json | 2 +- packages/core/scripts/deploy.ts | 4 ---- packages/examples/fortune/tests/e2e-backend/constants.js | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6c67f158de..cfbadf3ebf 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "fortune:lint": "yarn workspace @human-protocol/fortune lint", "sdk:test": "yarn workspace @human-protocol/sdk test", "sdk:lint": "yarn workspace @human-protocol/sdk lint", - "test": "concurrently npm:core:test npm:subgraph:test npm:escrow-dashboard:test npm:fortune:test, npm:sdk:test", + "test": "concurrently npm:core:test npm:subgraph:test npm:escrow-dashboard:test npm:fortune:test npm:sdk:test", "lint": "concurrently npm:core:lint npm:subgraph:lint npm:escrow-dashboard:lint npm:fortune:lint npm:eth-kvstore:lint npm:sdk:lint", "prepare": "husky install" }, diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index ab74027da8..b616a21a71 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -40,10 +40,6 @@ async function main() { escrowFactoryContract.address ) ); - console.log( - 'Admin Address: ', - await upgrades.erc1967.getAdminAddress(escrowFactoryContract.address) - ); const KVStore = await ethers.getContractFactory('KVStore'); const kvStoreContract = await KVStore.deploy(); diff --git a/packages/examples/fortune/tests/e2e-backend/constants.js b/packages/examples/fortune/tests/e2e-backend/constants.js index c7d1275999..488d993991 100644 --- a/packages/examples/fortune/tests/e2e-backend/constants.js +++ b/packages/examples/fortune/tests/e2e-backend/constants.js @@ -9,7 +9,7 @@ const addresses = { hmt: process.env.HMT_ADDRESS || '0x5FbDB2315678afecb367f032d93F642f64180aa3', escrowFactory: process.env.ESCROW_FACTORY_ADDRESS || - '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9', + '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', recOracle: process.env.REC_ORACLE_ADDRESS || '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', From 1038df596ee2923f657601d41c22d39d67cc6ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 12 Jan 2023 16:57:59 +0100 Subject: [PATCH 058/216] fix python sdk --- packages/sdk/python/human_protocol_sdk/eth_bridge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/python/human_protocol_sdk/eth_bridge.py b/packages/sdk/python/human_protocol_sdk/eth_bridge.py index b0fffaf6c1..11736934b6 100644 --- a/packages/sdk/python/human_protocol_sdk/eth_bridge.py +++ b/packages/sdk/python/human_protocol_sdk/eth_bridge.py @@ -29,7 +29,7 @@ # See more details about the eth-kvstore here: https://github.com/hCaptcha/eth-kvstore KVSTORE_CONTRACT = Web3.toChecksumAddress( - os.getenv("KVSTORE_CONTRACT", "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9") + os.getenv("KVSTORE_CONTRACT", "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707") ) WEB3_POLL_LATENCY = float(os.getenv("WEB3_POLL_LATENCY", 5)) WEB3_TIMEOUT = int(os.getenv("WEB3_TIMEOUT", 240)) From 85960ff4f50ae5f7a4641cc661274358dc37bd0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 12 Jan 2023 19:21:03 +0100 Subject: [PATCH 059/216] Fix fortune tests for reputation --- .../src/services/reputation.test.ts | 3 +-- .../examples/fortune/tests/e2e-backend/constants.js | 5 +++++ .../examples/fortune/tests/e2e-backend/fixtures.js | 13 +++++++++++++ yarn.lock | 4 ++-- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts index ba46683482..3eff5d71a0 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts @@ -21,7 +21,6 @@ const owner = web3.eth.accounts.privateKeyToAccount( const reputationAccount = web3.eth.accounts.privateKeyToAccount( '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a' ); -const reputationAddress = '0x0165878A594ca255338adfa4d48449f69242Eb8F'; describe('Reputation', () => { beforeAll(async () => { @@ -82,7 +81,7 @@ describe('Reputation', () => { it('Add reputations', async () => { const result = await updateReputations( web3, - reputationAddress, + reputation.options.address, [ { workerAddress: worker1, reputation: 1 }, { workerAddress: worker2, reputation: -1 }, diff --git a/packages/examples/fortune/tests/e2e-backend/constants.js b/packages/examples/fortune/tests/e2e-backend/constants.js index c7d1275999..f803817751 100644 --- a/packages/examples/fortune/tests/e2e-backend/constants.js +++ b/packages/examples/fortune/tests/e2e-backend/constants.js @@ -52,6 +52,10 @@ const minioSettings = { minioBucketName: process.env.MINIO_BUCKET_NAME || 'job-results', }; +const repOraclePrivateKey = + process.env.ETH_PRIVATE_KEY || + '5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a'; + module.exports = { addresses, urls, @@ -60,4 +64,5 @@ module.exports = { escrowFundAmount, statusesMap, minioSettings, + repOraclePrivateKey, }; diff --git a/packages/examples/fortune/tests/e2e-backend/fixtures.js b/packages/examples/fortune/tests/e2e-backend/fixtures.js index 24d19b06bc..646c07afa0 100644 --- a/packages/examples/fortune/tests/e2e-backend/fixtures.js +++ b/packages/examples/fortune/tests/e2e-backend/fixtures.js @@ -5,6 +5,7 @@ const { gasLimit, escrowFundAmount, minioSettings, + repOraclePrivateKey, } = require('./constants'); const escrowAbi = require('@human-protocol/core/abis/Escrow.json'); const hmtokenAbi = require('@human-protocol/core/abis/HMToken.json'); @@ -16,6 +17,9 @@ const Web3 = require('web3'); const Minio = require('minio'); const web3 = new Web3(urls.ethHTTPServer); const Token = new web3.eth.Contract(hmtokenAbi, addresses.hmt); +const reputationOracle = web3.eth.accounts.privateKeyToAccount( + `0x${repOraclePrivateKey}` +); let owner; let launcher; @@ -23,6 +27,8 @@ const setupAccounts = async () => { owner = (await web3.eth.getAccounts())[0]; launcher = (await web3.eth.getAccounts())[3]; await fundAccountHMT(launcher, owner, 1000); + // await fundAccountHMT(launcher, reputationOracle.address, 1000); + return [owner, launcher]; }; @@ -51,6 +57,13 @@ const stake = async (escrowFactory) => { .approve(stakingAddress, 5) .send({ from: launcher, gasLimit }); await staking.methods.stake(5).send({ from: launcher, gasLimit }); + + await Token.methods + .approve(stakingAddress, 5) + .send({ from: reputationOracle.address, gasLimit }); + await staking.methods + .stake(5) + .send({ from: reputationOracle.address, gasLimit }); }; const createEscrow = async (escrowFactory) => { diff --git a/yarn.lock b/yarn.lock index 6f874e16f1..73219b47d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10950,9 +10950,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" From 99485e09208636fc6642975de89abb830ded4166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Fri, 13 Jan 2023 11:07:26 +0100 Subject: [PATCH 060/216] update core version --- packages/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 043d52068d..afdee176c6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.27", + "version": "1.0.28", "files": [ "contracts/**/*.sol", "abis/**/*.json", From c58cd040be64ce6370bc9c2c872d053ff57c7394 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 13 Jan 2023 11:32:59 +0100 Subject: [PATCH 061/216] fix yarn lock --- yarn.lock | 766 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 420 insertions(+), 346 deletions(-) diff --git a/yarn.lock b/yarn.lock index 73219b47d4..5ddfd8180f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,9 +3,9 @@ "@adobe/css-tools@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd" - integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.2.tgz#bd7d13543a186c3ff3eabb44bec2b22e8fb18ee0" + integrity sha512-Fx6tYjk2wKUgLi8uMANZr8GNZx05u44ArIJldn9VxLvolzlJVgHbTUCbwhMd6bcYky178+WUSxPHO3DAtGLWpw== "@ampproject/remapping@^2.1.0": version "2.2.0" @@ -1848,195 +1848,195 @@ lodash.lowercase "^4.3.0" tslib "^2.4.1" -"@graphql-tools/batch-execute@8.5.14": - version "8.5.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.14.tgz#d241adedc53df534263bfaed9c6fc15c3890bb90" - integrity sha512-m6yXqqmFAH2V5JuSIC/geiGLBQA1Y6RddOJfUtkc9Z7ttkULRCd1W39TpYS6IlrCwYyTj+klO1/kdWiny38f5g== +"@graphql-tools/batch-execute@8.5.15": + version "8.5.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.15.tgz#f61ac71d11e57c9b9f8b8b60fc882e4e9762d182" + integrity sha512-qb12M8XCK6SBJmZDS8Lzd4PVJFsIwNUkYmFuqcTiBqOI/WsoDlQDZI++ghRpGcusLkL9uzcIOTT/61OeHhsaLg== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" dataloader "2.1.0" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" "@graphql-tools/code-file-loader@^7.3.6": - version "7.3.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.15.tgz#3834033e1f58876d6c95248d8eb451d84d600eab" - integrity sha512-cF8VNc/NANTyVSIK8BkD/KSXRF64DvvomuJ0evia7tJu4uGTXgDjimTMWsTjKRGOOBSTEbL6TA8e4DdIYq6Udw== + version "7.3.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.16.tgz#58aa85c250175cebe0ea4309214357768d550f93" + integrity sha512-109UFvQjZEntHwjPaHpWvgUudHenGngbXvSImabPc2fdrtgja5KC0h7thCg379Yw6IORHGrF2XbJwS1hAGPPWw== dependencies: - "@graphql-tools/graphql-tag-pluck" "7.4.2" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/graphql-tag-pluck" "7.4.3" + "@graphql-tools/utils" "9.1.4" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/delegate@9.0.21": - version "9.0.21" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.21.tgz#914d59e6a10457fe1ddcac9270336648cfa8ca58" - integrity sha512-SM8tFeq6ogFGhIxDE82WTS44/3IQ/wz9QksAKT7xWkcICQnyR9U6Qyt+W7VGnHiybqNsVK3kHNNS/i4KGSF85g== +"@graphql-tools/delegate@9.0.22": + version "9.0.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.22.tgz#12f27ef76c5add456fa8797a496bb7dc82071771" + integrity sha512-dWJGMN8V7KORtbI8eDAjHYTWiMyis/md27M6pPhrlYVlcsDk3U0jbNdgkswBBUEBvqumPRCv8pVOxKcLS4caKA== dependencies: - "@graphql-tools/batch-execute" "8.5.14" - "@graphql-tools/executor" "0.0.11" - "@graphql-tools/schema" "9.0.12" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/batch-execute" "8.5.15" + "@graphql-tools/executor" "0.0.12" + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" dataloader "2.1.0" tslib "~2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" -"@graphql-tools/executor-graphql-ws@0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.5.tgz#eb81fb72ef1eb095be1b2d377b846bff6bf6d102" - integrity sha512-1bJfZdSBPCJWz1pJ5g/YHMtGt6YkNRDdmqNQZ8v+VlQTNVfuBpY2vzj15uvf5uDrZLg2MSQThrKlL8av4yFpsA== +"@graphql-tools/executor-graphql-ws@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.6.tgz#34c1e5bc6ac1ff292fd6c4b5490b7906c6dd25c2" + integrity sha512-n6JvIviYO8iiasV/baclimQqNkYGP7JRlkNSnphNG5LULmVpQ2WsyvbgJHV7wtlTZ8ZQ3+dILgQF83PFyLsfdA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" "@repeaterjs/repeater" "3.0.4" "@types/ws" "^8.0.0" graphql-ws "5.11.2" isomorphic-ws "5.0.0" tslib "^2.4.0" - ws "8.11.0" + ws "8.12.0" -"@graphql-tools/executor-http@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.0.8.tgz#ede3f3104f27f2ed8f8a6f8c49eb704785823c99" - integrity sha512-Y0WzbBW2dDm68EqjRO7eaCC38H6mNFUCcy8ivwnv0hon/N4GjQJhrR0cApJh/xqn/YqCY0Sn2ScmdGVuSdaCcA== +"@graphql-tools/executor-http@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.0.tgz#8071343f4d893d9ffc91c0c675230317282f310f" + integrity sha512-HUas+3EIqbw/reNH3NaO8/5Cc61ZxsoIArES55kR6Nq8lS8VWiEpnuXLXBq2THYemmthVdK3eDCKTJLmUFuKdA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" "@repeaterjs/repeater" "3.0.4" - "@whatwg-node/fetch" "0.5.4" + "@whatwg-node/fetch" "0.6.1" dset "3.1.2" extract-files "^11.0.0" meros "1.2.1" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" -"@graphql-tools/executor-legacy-ws@0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.5.tgz#0246d930ed53bc185093bee78fb614473f465d51" - integrity sha512-j2ZQVTI4rKIT41STzLPK206naYDhHxmGHot0siJKBKX1vMqvxtWBqvL66v7xYEOaX79wJrFc8l6oeURQP2LE6g== +"@graphql-tools/executor-legacy-ws@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.6.tgz#236dd5b3d4d19492978b1458b74928e8c69d16ff" + integrity sha512-L1hRuSvBUCNerYDhfeSZXFeqliDlnNXa3fDHTp7efI3Newpbevqa19Fm0mVzsCL7gqIKOwzrPORwh7kOVE/vew== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" "@types/ws" "^8.0.0" isomorphic-ws "5.0.0" tslib "^2.4.0" - ws "8.11.0" + ws "8.12.0" -"@graphql-tools/executor@0.0.11": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.11.tgz#a95823478e8edba05e55fd8ed43aceff7bd04022" - integrity sha512-GjtXW0ZMGZGKad6A1HXFPArkfxE0AIpznusZuQdy4laQx+8Ut3Zx8SAFJNnDfZJ2V5kU29B5Xv3Fr0/DiMBHOQ== +"@graphql-tools/executor@0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.12.tgz#d885c7fa98a8aaeaa771163b71fb98ce9f52f9bd" + integrity sha512-bWpZcYRo81jDoTVONTnxS9dDHhEkNVjxzvFCH4CRpuyzD3uL+5w3MhtxIh24QyWm4LvQ4f+Bz3eMV2xU2I5+FA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" "@graphql-typed-document-node/core" "3.1.1" "@repeaterjs/repeater" "3.0.4" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" "@graphql-tools/graphql-file-loader@^7.3.7": - version "7.5.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.13.tgz#2e60b7e9752334ee030276c9493d411da8a30e43" - integrity sha512-VWFVnw3aB6sykGfpb/Dn3sxQswqvp2FsVwDy8ubH1pgLuxlDuurhHjRHvMG2+p7IaHC7q8T3Vk/rLtZftrwOBQ== + version "7.5.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.14.tgz#6c6527e353cf9adcbda2cdc8a85face03ad8fe04" + integrity sha512-JGer4g57kq4wtsvqv8uZsT4ZG1lLsz1x5yHDfSj2OxyiWw2f1jFkzgby7Ut3H2sseJiQzeeDYZcbm06qgR32pg== dependencies: - "@graphql-tools/import" "6.7.14" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/import" "6.7.15" + "@graphql-tools/utils" "9.1.4" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@7.4.2", "@graphql-tools/graphql-tag-pluck@^7.3.6": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.2.tgz#0e72a142e2fb7e0cb6a86b910e44682772e5d7f1" - integrity sha512-SXM1wR5TExrxocQTxZK5r74jTbg8GxSYLY3mOPCREGz6Fu7PNxMxfguUzGUAB43Mf44Dn8oVztzd2eitv2Qgww== +"@graphql-tools/graphql-tag-pluck@7.4.3", "@graphql-tools/graphql-tag-pluck@^7.3.6": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.3.tgz#b07f2263c383d9605d941c836dc01a7bbc6e56a7" + integrity sha512-w+nrJVQw+NTuaZNQG5AwSh4Qe+urP/s4rUz5s1T007rDnv1kvkiX+XHOCnIfJzXOTuvFmG4GGYw/x0CuSRaGZQ== 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.1.3" + "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" -"@graphql-tools/import@6.7.14": - version "6.7.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.14.tgz#4f3278841217686eed8950db0aa5040bc35f6970" - integrity sha512-lRX/MHM0Km497kg4VXMvtV1DeG/AfPJFO2ovaL0kDujWEdyCsWxsB4whY7nPeiNaPA/nT3mQ8MU7yFzVjogF/Q== +"@graphql-tools/import@6.7.15": + version "6.7.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.15.tgz#7553e48140797255588b26d423a89aa042196928" + integrity sha512-WNhvauAt2I2iUg+JdQK5oQebKLXqUZWe8naP13K1jOkbTQT7hK3P/4I9AaVmzt0KXRJW5Uow3RgdHZ7eUBKVsA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" resolve-from "5.0.0" tslib "^2.4.0" "@graphql-tools/json-file-loader@^7.3.7": - version "7.4.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.14.tgz#a174fc488f35340dcbbcdb0f2b82a57d19b723d0" - integrity sha512-AD9v3rN08wvVqgbrUSiHa8Ztrlk3EgwctcxuNE5qm47zPNL4gLaJ7Tw/KlGOR7Cm+pjlQylJHMUKNfaRLPZ0og== + version "7.4.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.15.tgz#ed229d98784350623d2ef32628690db405fa6780" + integrity sha512-pH+hbsDetcEpj+Tmi7ZRUkxzJez2DLdSQuvK5Qi38FX/Nz/5nZKRfW9nqIptGYbuS9+2JPrt9WWNn1aGtegIFQ== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" "@graphql-tools/load@^7.5.5": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.8.tgz#e55aaca84a9e6348a730d92ba4cb3ec17cee45df" - integrity sha512-gMuQdO2jXmI0BNUc1MafxRQTWVMUtuH500pZAQtOdDdNJppV7lJdY6mMhITQ2qnhYDuMrcZPHhIkcftyQfkgUg== + version "7.8.9" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.9.tgz#5f4e523095b6154bac43e6a01acb6b043e9afaca" + integrity sha512-/eHRv6OCTI/Ir5XcbtSx0XbW3zOQVscp2MZQFGZKDzqCcGD+NVy4mLCoBwR/OsOUpvWAwMnc+Llb4SDKAYGmjQ== dependencies: - "@graphql-tools/schema" "9.0.12" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" p-limit "3.1.0" tslib "^2.4.0" -"@graphql-tools/merge@8.3.14", "@graphql-tools/merge@^8.2.6": - version "8.3.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.14.tgz#d4d0a645656691d35e90e0686a6fa3d4091a34da" - integrity sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA== +"@graphql-tools/merge@8.3.15", "@graphql-tools/merge@^8.2.6": + version "8.3.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.15.tgz#9b24ee5e9c36074684515c7d1587cd3e200c8a8f" + integrity sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" -"@graphql-tools/schema@9.0.12": - version "9.0.12" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.12.tgz#73910fab315bd16098b989db22f967a1dc7f93dd" - integrity sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ== +"@graphql-tools/schema@9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.13.tgz#56b994777df29ac36586a3200fb6397abf7b9d83" + integrity sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg== dependencies: - "@graphql-tools/merge" "8.3.14" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/merge" "8.3.15" + "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" "@graphql-tools/url-loader@^7.9.7": - version "7.16.29" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.29.tgz#86ea852870a3a1b66bcb06143422f2512cecd0ab" - integrity sha512-e7c0rLH4BIaYxOgglHhWbupTn3JZFXYIHXpY+T1CcTF3nQQCaKy8o59+R2AjtEgx3Az1WNahGn4xgkKUxUwCBw== + version "7.17.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.1.tgz#df32e6b84e13603e096e5a9e8fb3b4bd2c2442b9" + integrity sha512-+WZXkg1ZG4fjAB+SkCHLSr7VFZqZAkA/PILcpoPqwAL/wSsrhCHYwbzuWuKn1SGToxJRt7cc+4P0lfR7fq+xhQ== dependencies: "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/delegate" "9.0.21" - "@graphql-tools/executor-graphql-ws" "0.0.5" - "@graphql-tools/executor-http" "0.0.8" - "@graphql-tools/executor-legacy-ws" "0.0.5" - "@graphql-tools/utils" "9.1.3" - "@graphql-tools/wrap" "9.2.23" + "@graphql-tools/delegate" "9.0.22" + "@graphql-tools/executor-graphql-ws" "0.0.6" + "@graphql-tools/executor-http" "0.1.0" + "@graphql-tools/executor-legacy-ws" "0.0.6" + "@graphql-tools/utils" "9.1.4" + "@graphql-tools/wrap" "9.3.0" "@types/ws" "^8.0.0" - "@whatwg-node/fetch" "^0.5.0" + "@whatwg-node/fetch" "^0.6.0" isomorphic-ws "5.0.0" tslib "^2.4.0" value-or-promise "^1.0.11" - ws "8.11.0" + ws "8.12.0" -"@graphql-tools/utils@9.1.3", "@graphql-tools/utils@^9.0.0": - version "9.1.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.1.3.tgz#861f87057b313726136fa6ddfbd2380eae906599" - integrity sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg== +"@graphql-tools/utils@9.1.4", "@graphql-tools/utils@^9.0.0": + version "9.1.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.1.4.tgz#2c9e0aefc9655dd73247667befe3c850ec014f3f" + integrity sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg== dependencies: tslib "^2.4.0" -"@graphql-tools/wrap@9.2.23": - version "9.2.23" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.23.tgz#fb008d8d7b493aeb6b6b0821dff45c0129aed2eb" - integrity sha512-R+ar8lHdSnRQtfvkwQMOkBRlYLcBPdmFzZPiAj+tL9Nii4VNr4Oub37jcHiPBvRZSdKa9FHcKq5kKSQcbg1xuQ== +"@graphql-tools/wrap@9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.0.tgz#6dbafdef0b7eb34e0efa9698159a425106cae04e" + integrity sha512-QOEg04kzFJ1WrlA2t/qjw85C20qPDJwIU/d+bDgDd1+cjTQcVrEt9bq9NilZZg9m9AAgZbeyDwut0oQvNMCGhw== dependencies: - "@graphql-tools/delegate" "9.0.21" - "@graphql-tools/schema" "9.0.12" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/delegate" "9.0.22" + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" "@graphql-typed-document-node/core@3.1.1": version "3.1.1" @@ -2049,9 +2049,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.27" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.27.tgz#5c8029a16ce0d38996eb082a9655692aed49bf69" - integrity sha512-C0xIGzy1KEi5+T3jTcCyj1VGLnO1lmO7KHzNXCafKclP4EPf2cyOCb6wJnGefhclf5WPlJR8z1ulkxeP6OpVgQ== + version "1.0.28" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.28.tgz#08de987b5329a335e13ab26c02de0e75dc5af834" + integrity sha512-Ph/8o17p2ZQmefyqQ1D1dFu0am+zK+aPxbFHTr7FK3zoaR2JqgBK/HnWWlZKjndoEsNlER8e5ZLRuiPIS0m/ww== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -2957,9 +2957,9 @@ ordinal "^1.0.3" "@nomicfoundation/hardhat-toolbox@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.0.tgz#7f86e35c380babb8f26440b7f9a92d7febc1a8ac" - integrity sha512-BoOPbzLQ1GArnBZd4Jz4IU8FY3RY4nUwpXlfymXwxlXNimngkPRJj7ivVNurD7igohEjf90v/Axn2M5WwAdCJQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.1.tgz#3d8c620a54df2c0086c9109fb0f987bf29329deb" + integrity sha512-/pr8m9xlqiNlq6fXv4hEPNwdNwUhysoB2qbDCKqERfPpq34EydUQTC3Vis4aIea8RLwSrU8sDXFdv4TQxYstKw== "@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.0": version "0.1.0" @@ -3028,14 +3028,14 @@ "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.0" "@nomiclabs/hardhat-ethers@^2.1.1", "@nomiclabs/hardhat-ethers@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.1.tgz#8057b43566a0e41abeb8142064a3c0d3f23dca86" - integrity sha512-RHWYwnxryWR8hzRmU4Jm/q4gzvXpetUOJ4OPlwH2YARcDB+j79+yAYCwO0lN1SUOb4++oOTJEe6AWLEc42LIvg== + version "2.2.2" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.2.tgz#812d48929c3bf8fe840ec29eab4b613693467679" + integrity sha512-NLDlDFL2us07C0jB/9wzvR0kuLivChJWCXTKcj3yqjZqMoYp7g7wwS157F70VHx/+9gHIBGzak5pKDwG8gEefA== "@nomiclabs/hardhat-etherscan@^3.1.2": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.4.tgz#970e57fabc6060489c93b3f646ca790db36ffee0" - integrity sha512-fw8JCfukf6MdIGoySRmSftlM2wBgoaSbWQZgiYfD/KTeaSFEWCdMpuPZcLSBXtwtnQyyWDs07Lo7fL8HSqtD2Q== + version "3.1.5" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.5.tgz#24f3f3272d3c79acdc933b557810ca85caef0fee" + integrity sha512-PxPX28AGBAlxgXLU27NB3oiMsklxbNhM75SDC4v1QPCyPeAxGm4xV0WpYbR10W7sxY2WF3Ek7u7GhjbQWa2Fcg== dependencies: "@ethersproject/abi" "^5.1.2" "@ethersproject/address" "^5.0.2" @@ -3046,7 +3046,7 @@ lodash "^4.17.11" semver "^6.3.0" table "^6.8.0" - undici "^5.4.0" + undici "^5.14.0" "@openzeppelin/contracts-upgradeable@^4.8.0": version "4.8.0" @@ -3594,9 +3594,9 @@ use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.4.1.tgz#1dee0f28de8351caa33c32c9b44ba1c6d654811c" - integrity sha512-kdzuAIvsTsgCsw0SCOD+E5OkNFB+LM/LUgtyEInNyJVlCrD3LYjtY/iArvpva4+TxY8GYKv3aRBKumaItyYNow== + version "1.5.1" + resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.1.tgz#878ac0a1c2d3f8ba47aece0d2e49de5ad482f229" + integrity sha512-VUYJbSXKkpQrHuCXWtXozgHPEEod782Z865AqDF8qLDW71WgyhK6YxhTubMA+au0xnZfN8TjWJz0hnNhWOk/6Q== dependencies: "@ethersproject/bignumber" "^5.7.0" "@nomiclabs/hardhat-ethers" "^2.1.1" @@ -3606,7 +3606,7 @@ hardhat "^2.10.2" hardhat-deploy "^0.11.14" js-yaml "^4.1.0" - tenderly "^0.2.0" + tenderly "^0.3.0" tslog "^4.3.1" "@testing-library/dom@^8.5.0": @@ -3850,41 +3850,56 @@ dependencies: "@types/node" "*" -"@types/d3-color@^2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-2.0.3.tgz#8bc4589073c80e33d126345542f588056511fe82" - integrity sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w== +"@types/d3-array@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.4.tgz#44eebe40be57476cad6a0cd6a85b0f57d54185a2" + integrity sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ== -"@types/d3-interpolate@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-2.0.2.tgz#78eddf7278b19e48e8652603045528d46897aba0" - integrity sha512-lElyqlUfIPyWG/cD475vl6msPL4aMU7eJvx1//Q177L8mdXoVPFl1djIESF2FKnc0NyaHvQlJpWwKJYwAhUoCw== +"@types/d3-color@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.0.tgz#6594da178ded6c7c3842f3cc0ac84b156f12f2d4" + integrity sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA== + +"@types/d3-ease@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.0.tgz#c29926f8b596f9dadaeca062a32a45365681eae0" + integrity sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA== + +"@types/d3-interpolate@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz#e7d17fa4a5830ad56fe22ce3b4fac8541a9572dc" + integrity sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw== dependencies: - "@types/d3-color" "^2" + "@types/d3-color" "*" -"@types/d3-path@^2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-2.0.2.tgz#6052f38f6186319769dfabab61b5514b0e02c75c" - integrity sha512-3YHpvDw9LzONaJzejXLOwZ3LqwwkoXb9LI2YN7Hbd6pkGo5nIlJ09ul4bQhBN4hQZJKmUpX8HkVqbzgUKY48cg== +"@types/d3-path@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.0.0.tgz#939e3a784ae4f80b1fde8098b91af1776ff1312b" + integrity sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg== -"@types/d3-scale@^3.0.0": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-3.3.2.tgz#18c94e90f4f1c6b1ee14a70f14bfca2bd1c61d06" - integrity sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ== +"@types/d3-scale@^4.0.2": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.3.tgz#7a5780e934e52b6f63ad9c24b105e33dd58102b5" + integrity sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ== dependencies: - "@types/d3-time" "^2" + "@types/d3-time" "*" -"@types/d3-shape@^2.0.0": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-2.1.3.tgz#35d397b9e687abaa0de82343b250b9897b8cacf3" - integrity sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ== +"@types/d3-shape@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.1.tgz#15cc497751dac31192d7aef4e67a8d2c62354b95" + integrity sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A== dependencies: - "@types/d3-path" "^2" + "@types/d3-path" "*" -"@types/d3-time@^2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-2.1.1.tgz#743fdc821c81f86537cbfece07093ac39b4bc342" - integrity sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg== +"@types/d3-time@*", "@types/d3-time@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.0.tgz#e1ac0f3e9e195135361fa1a1d62f795d87e6e819" + integrity sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg== + +"@types/d3-timer@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.0.tgz#e2505f1c21ec08bda8915238e397fb71d2fc54ce" + integrity sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g== "@types/eslint-scope@^3.7.3": version "3.7.4" @@ -4447,10 +4462,10 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@5.7.4": - version "5.7.4" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.7.4.tgz#77027cd943af5ad6bd9d5d599f8fd6995f18e42d" - integrity sha512-QesfcJ2LaD0tgouOI5XqF90WU5Byy5dg8ez3lttwQBkg1Lw7zuawhVYZJdoAL/GlZruvQzlpS/tUvUmUzrPOzQ== +"@vercel/build-utils@5.7.5": + version "5.7.5" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.7.5.tgz#8ce3476d3b288b7377d6389b39ac7c1d463a8a93" + integrity sha512-tpQgaklH+6FslzUIyRYpTI637URSw9AI4Lwu23JXzdtVqYiApYAP/ub5zzQK2WT2KrNdrioAgHvMFkSDUjY0UA== "@vercel/node-bridge@3.1.3": version "3.1.3" @@ -4458,13 +4473,13 @@ integrity sha512-NIuiwktIsvCWZ7aToQ4sFWNYKQbojghJ2OobjTL14nj25cuxP3XsV8LkMarIsiWG/vQxiSADBLwr/7fOh8znGg== "@vercel/node@^2.5.26": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.5.tgz#d74fae9a4906efbb860d217a6043d9d9dc79585f" - integrity sha512-DOPrEGJIO2mypOR/D1EFwsLMMPtAQOUMDGRjr4LhHK+yqyPiDcupTzC3RosqncINzc4Abptke2iqiEmlRC0iYw== + version "2.8.6" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.6.tgz#9bd2ed77699d44636c68def9b9fa4191a843951e" + integrity sha512-jcobbF9yIT+WmrY9u7BDtjlsHR4W/EqiK7sskayruwo34D2+4h8oTISHtbVKoN+RU6MTMnL4oYZIoIoVADfuvA== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "5.7.4" + "@vercel/build-utils" "5.7.5" "@vercel/node-bridge" "3.1.3" "@vercel/static-config" "2.0.6" edge-runtime "2.0.0" @@ -4870,10 +4885,10 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@whatwg-node/fetch@0.5.4", "@whatwg-node/fetch@^0.5.0": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.5.4.tgz#ef7c409078fc4a5087415043f87c9d9589cda8d6" - integrity sha512-dR5PCzvOeS7OaW6dpIlPt+Ou3pak7IEG+ZVAV26ltcaiDB3+IpuvjqRdhsY6FKHcqBo1qD+S99WXY9Z6+9Rwnw== +"@whatwg-node/fetch@0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.1.tgz#802a3e71ade25c04211efc2f1520a25a8829924f" + integrity sha512-sG39WLvcJxGZ+gDstnLSXR2IcnuvIOB51KxCFo0mEhFW0q2u8fZgolr0HPkL+zXwOJsnmT+9V3IRcqLnTXdqVQ== dependencies: "@peculiar/webcrypto" "^1.4.0" abort-controller "^3.0.0" @@ -4882,6 +4897,22 @@ formdata-node "^4.3.1" node-fetch "^2.6.7" undici "^5.12.0" + urlpattern-polyfill "^6.0.2" + web-streams-polyfill "^3.2.0" + +"@whatwg-node/fetch@^0.6.0": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.2.tgz#fe4837505f6fc91bcfd6e12cdcec66f4aecfeecc" + integrity sha512-fCUycF1W+bI6XzwJFnbdDuxIldfKM3w8+AzVCLGlucm0D+AQ8ZMm2j84hdcIhfV6ZdE4Y1HFVrHosAxdDZ+nPw== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + abort-controller "^3.0.0" + busboy "^1.6.0" + form-data-encoder "^1.7.1" + formdata-node "^4.3.1" + node-fetch "^2.6.7" + undici "^5.12.0" + urlpattern-polyfill "^6.0.2" web-streams-polyfill "^3.2.0" "@xtuc/ieee754@^1.2.0": @@ -5330,7 +5361,7 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: +array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== @@ -5351,7 +5382,7 @@ array-uniq@1.0.3: resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== -array.prototype.flat@^1.2.5: +array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== @@ -5361,7 +5392,7 @@ array.prototype.flat@^1.2.5: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1: +array.prototype.flatmap@^1.3.0, array.prototype.flatmap@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== @@ -5543,9 +5574,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1291.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1291.0.tgz#315e64dead4a1222726a55348bb2aa332a1917d4" - integrity sha512-iM82Md2Wb29MZ72BpNF4YeIHtkJTyw+JMGXJG48Dwois2Rq7rLcriX6NN/4Fx4b5EEtUkwAO/wJc+NTHI7QeJw== + version "2.1294.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1294.0.tgz#4cd86f210182f6d854543df0e15adced4de1a1bb" + integrity sha512-/n/xbae0efRA/wpaMyF/0Jip8V0MMPEFicreDHRmiy/4iUrsqMvHdeaO8OW0kUYKHyUClKsc36Fu4GyhONKISw== dependencies: buffer "4.9.2" events "1.1.1" @@ -6681,9 +6712,9 @@ body-parser@1.20.1, body-parser@^1.16.0: unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.0.14" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7" - integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.0.tgz#424170268d68af26ff83a5c640b95def01803a13" + integrity sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" @@ -6778,7 +6809,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.2, browser-readablestream-to-it@^1.0.3: +browser-readablestream-to-it@^1.0.0, browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.2, 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== @@ -7076,9 +7107,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001442" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz#40337f1cf3be7c637b061e2f78582dc1daec0614" - integrity sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow== + version "1.0.30001444" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001444.tgz#c0a530776eb44d933b493de1d05346f2527b30fc" + integrity sha512-ecER9xgJQVMqcrxThKptsW0pPxSae8R2RB87LNa+ivW9ppNWRHEplXcDzkCOP4LYWGj8hunXLqaiC41iBATNyg== carbites@^1.0.6: version "1.0.6" @@ -8189,66 +8220,76 @@ csstype@^3.0.2, csstype@^3.0.7, csstype@^3.1.1: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== -d3-array@2, d3-array@^2.3.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" - integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== +"d3-array@2 - 3", "d3-array@2.10.0 - 3", d3-array@^3.1.6: + version "3.2.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.1.tgz#39331ea706f5709417d31bbb6ec152e0328b39b3" + integrity sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ== dependencies: - internmap "^1.0.0" + internmap "1 - 2" -"d3-color@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" - integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== +"d3-color@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== -"d3-format@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" - integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== +d3-ease@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== -"d3-interpolate@1.2.0 - 2", d3-interpolate@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" - integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== +"d3-format@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +"d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== dependencies: - d3-color "1 - 2" + d3-color "1 - 3" -"d3-path@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8" - integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== +d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== -d3-scale@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" - integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== +d3-scale@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== dependencies: - d3-array "^2.3.0" - d3-format "1 - 2" - d3-interpolate "1.2.0 - 2" - d3-time "^2.1.1" - d3-time-format "2 - 3" + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" -d3-shape@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.1.0.tgz#3b6a82ccafbc45de55b57fcf956c584ded3b666f" - integrity sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA== +d3-shape@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== dependencies: - d3-path "1 - 2" + d3-path "^3.1.0" -"d3-time-format@2 - 3": - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" - integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== +"d3-time-format@2 - 4": + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== dependencies: - d3-time "1 - 2" + d3-time "1 - 3" -"d3-time@1 - 2", d3-time@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682" - integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ== +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== dependencies: - d3-array "2" + d3-array "2 - 3" + +d3-timer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== d@1, d@^1.0.1: version "1.0.1" @@ -9071,12 +9112,13 @@ error-stack-parser@^2.0.6: stackframe "^1.3.4" es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.0.tgz#dd1b69ea5bfc3c27199c9753efd4de015102c252" - integrity sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g== + version "1.21.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" + integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== dependencies: + available-typed-arrays "^1.0.5" call-bind "^1.0.2" - es-set-tostringtag "^2.0.0" + es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" @@ -9089,7 +9131,7 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: has-proto "^1.0.1" has-symbols "^1.0.3" internal-slot "^1.0.4" - is-array-buffer "^3.0.0" + is-array-buffer "^3.0.1" is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" @@ -9114,25 +9156,26 @@ es-array-method-boxes-properly@^1.0.0: integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-get-iterator@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" - integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.1.0" - has-symbols "^1.0.1" - is-arguments "^1.1.0" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" is-map "^2.0.2" is-set "^2.0.2" - is-string "^1.0.5" + is-string "^1.0.7" isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== -es-set-tostringtag@^2.0.0: +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== @@ -9419,18 +9462,19 @@ eslint-config-react-app@^7.0.1: eslint-plugin-react-hooks "^4.3.0" eslint-plugin-testing-library "^5.0.1" -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.11.0" + resolve "^1.22.1" eslint-import-resolver-typescript@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.2.tgz#9431acded7d898fd94591a08ea9eec3514c7de91" - integrity sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz#db5ed9e906651b7a59dd84870aaef0e78c663a05" + integrity sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ== dependencies: debug "^4.3.4" enhanced-resolve "^5.10.0" @@ -9440,7 +9484,7 @@ eslint-import-resolver-typescript@^3.5.2: is-glob "^4.0.3" synckit "^0.8.4" -eslint-module-utils@^2.7.3: +eslint-module-utils@^2.7.4: version "2.7.4" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== @@ -9456,22 +9500,24 @@ eslint-plugin-flowtype@^8.0.3: string-natural-compare "^3.0.1" eslint-plugin-import@^2.25.3, eslint-plugin-import@^2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + version "2.27.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.4.tgz#319c2f6f6580e1678d674a258ee5e981c10cc25b" + integrity sha512-Z1jVt1EGKia1X9CnBCkpAOhWy8FgQ7OmJ/IblEkT82yrFU/xJaxwujaTzLWqigewwynRQ9mmHfX9MtAfhxm0sA== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.0" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" has "^1.0.3" - is-core-module "^2.8.1" + is-core-module "^2.11.0" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" tsconfig-paths "^3.14.1" eslint-plugin-jest@^25.3.0: @@ -9489,9 +9535,9 @@ eslint-plugin-jest@^27.1.5: "@typescript-eslint/utils" "^5.10.0" eslint-plugin-jsx-a11y@^6.5.1: - version "6.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.0.tgz#b7a8ced4a427bb54eab050fc2a59e31938a16445" - integrity sha512-EGGRKhzejSzXKtjmEjWNtr4SK/DkMkSzkBH7g7e7moBDXZXrqaUIxkmD7uF93upMysc4dKYEJwupu7Dff+ShwA== + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== dependencies: "@babel/runtime" "^7.20.7" aria-query "^5.1.3" @@ -9523,9 +9569,9 @@ eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.6.0: integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.10: - version "7.31.11" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8" - integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.0.tgz#d80f794a638c5770f952ba2ae793f0a516be7c09" + integrity sha512-vSBi1+SrPiLZCGvxpiZIa28fMEUaMjXtCplrvxcIxGzmFiYdsXQDwInEjuv5/i/2CTTxbkS87tE8lsQ0Qxinbw== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -9539,7 +9585,7 @@ eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.10: object.hasown "^1.1.2" object.values "^1.1.6" prop-types "^15.8.1" - resolve "^2.0.0-next.3" + resolve "^2.0.0-next.4" semver "^6.3.0" string.prototype.matchall "^4.0.8" @@ -10691,7 +10737,7 @@ get-func-name@^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-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== @@ -10950,9 +10996,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -11163,9 +11209,9 @@ hardhat-abi-exporter@^2.10.1: delete-empty "^3.0.0" hardhat-contract-sizer@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.6.1.tgz#2b0046a55fa1ec96f19fdab7fde372377401c874" - integrity sha512-b8wS7DBvyo22kmVwpzstAQTdDCThpl/ySBqZh5ga9Yxjf61/uTL12TEg5nl7lDeWy73ntEUzxMwY6XxbQEc2wA== + version "2.7.0" + resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.7.0.tgz#d892a741135628a77d25709a29ae164f2750b7eb" + integrity sha512-QcncKiEku9TInKH++frfCPaYaVvw6OR5C5dNUcb05WozeVOJGspbWbHOkOlfiaZUbEKTvHA6OY9LtMMvja9nzQ== dependencies: chalk "^4.0.0" cli-table3 "^0.6.0" @@ -11199,9 +11245,9 @@ hardhat-gas-reporter@^1.0.9: sha1 "^1.1.1" hardhat@^2.10.2, hardhat@^2.12.2: - version "2.12.5" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.5.tgz#e3cd4d6dae35cb9505055967bd7e15e6adf3aa03" - integrity sha512-f/t7+hLlhsnQZ6LDXyV+8rHGRZFZY1sgFvgrwr9fBjMdGp1Bu6hHq1KXS4/VFZfZcVdL1DAWWEkryinZhqce+A== + version "2.12.6" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.6.tgz#ea3c058bbd81850867389d10f76037cfa52a0019" + integrity sha512-0Ent1O5DsPgvaVb5sxEgsQ3bJRt/Ex92tsoO+xjoNH2Qc4bFmhI5/CHVlFikulalxOPjNmw5XQ2vJFuVQFESAA== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" @@ -11250,7 +11296,7 @@ hardhat@^2.10.2, hardhat@^2.12.2: source-map-support "^0.5.13" stacktrace-parser "^0.1.10" tsort "0.0.1" - undici "^5.4.0" + undici "^5.14.0" uuid "^8.3.2" ws "^7.4.6" @@ -11809,10 +11855,10 @@ internal-slot@^1.0.3, internal-slot@^1.0.4: has "^1.0.3" side-channel "^1.0.4" -internmap@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" - integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== interpret@^1.0.0: version "1.4.0" @@ -12031,23 +12077,25 @@ ipfs-unixfs@^6.0.0, ipfs-unixfs@^6.0.3: protobufjs "^6.10.2" ipfs-utils@^9.0.2: - version "9.0.9" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.9.tgz#54551093846a230be07e473187d2d063685ebe83" - integrity sha512-auKjNok5bFhid1JmnXn+QFKaGrKrxgbUpVD0v4XkIKIH7kCR9zWOihErPKBDfJXfF8YycQ+SvPgX1XOpDgUC5Q== + version "9.0.13" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.13.tgz#d0ee786d9462d57d4b6c272f827f9fd96bb7b13f" + integrity sha512-25iJcReaWNnBiFSBayudJAytDOcedI/AuxkjW0hHRm4HlPtWbnCDLgWzlsfVxx0Thqa46ZITNCo7RnzfEHYqcg== 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 "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" - react-native-fetch-api "^2.0.0" + react-native-fetch-api "^3.0.0" stream-to-it "^0.2.2" ipfs-utils@~0.0.3: @@ -12096,7 +12144,7 @@ ipld-raw@^4.0.0: multicodec "^1.0.0" multihashing-async "~0.8.0" -is-arguments@^1.0.4, is-arguments@^1.1.0, is-arguments@^1.1.1: +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== @@ -12104,7 +12152,7 @@ is-arguments@^1.0.4, is-arguments@^1.1.0, is-arguments@^1.1.1: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-array-buffer@^3.0.0, is-array-buffer@^3.0.1: +is-array-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== @@ -12160,7 +12208,7 @@ 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.10.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: +is-core-module@^2.10.0, is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== @@ -13771,7 +13819,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.1, json5@^2.2.2: +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, 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== @@ -15259,10 +15307,10 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-fetch@2, node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.1, 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== +node-fetch@2, node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.7: + version "2.6.8" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" + integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg== dependencies: whatwg-url "^5.0.0" @@ -15271,6 +15319,13 @@ node-fetch@2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +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@https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz": version "2.6.7" resolved "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz#1b5d62978f2ed07b99444f64f0df39f960a6d34d" @@ -15429,9 +15484,9 @@ object-hash@^3.0.0: integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + 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" @@ -15502,7 +15557,7 @@ object.hasown@^1.1.2: define-properties "^1.1.4" es-abstract "^1.20.4" -object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: +object.values@^1.1.0, object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -16858,9 +16913,9 @@ punycode@^1.3.2: integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.2.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" + integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== pvtsutils@^1.3.2: version "1.3.2" @@ -17139,10 +17194,10 @@ react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== -react-native-fetch-api@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz#c4af188b4fce3f3eaf1f1ff4e61dae1a00d4ffa0" - integrity sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw== +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" @@ -17445,17 +17500,11 @@ recharts-scale@^0.4.4: decimal.js-light "^2.4.1" recharts@^2.1.16: - version "2.2.0" - resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.2.0.tgz#1b8ba0799ff0feb96c87f009cd2ddd8cf5108817" - integrity sha512-/uRJ0oaESGyz//PgAzvrwXEhrKaNha1ELLysEMRklbnsddiVQsSNicP7DWiz8qFcyYXy3BrDqrUjiLiVRTSMtA== + version "2.3.2" + resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.3.2.tgz#6e9498533dd93314e1d7f08e6496fc422e2e991f" + integrity sha512-2II30fGzKaypHfHNQNUhCfiLMxrOS/gF0WFahDIEFgXtJkVEe2DpZWFfEfAn+RU3B7/h2V/B05Bwmqq3rTXwLw== dependencies: - "@types/d3-interpolate" "^2.0.0" - "@types/d3-scale" "^3.0.0" - "@types/d3-shape" "^2.0.0" classnames "^2.2.5" - d3-interpolate "^2.0.0" - d3-scale "^3.0.0" - d3-shape "^2.0.0" eventemitter3 "^4.0.1" lodash "^4.17.19" react-is "^16.10.2" @@ -17463,6 +17512,7 @@ recharts@^2.1.16: react-smooth "^2.0.1" recharts-scale "^0.4.4" reduce-css-calc "^2.1.8" + victory-vendor "^36.6.8" rechoir@^0.6.2: version "0.6.2" @@ -17793,9 +17843,9 @@ resolve-url-loader@^4.0.0: source-map "0.6.1" resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + version "1.1.1" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== resolve@1.1.x: version "1.1.7" @@ -17809,7 +17859,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.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -17818,7 +17868,7 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19. path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3: +resolve@^2.0.0-next.4: 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== @@ -18744,6 +18794,13 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + stream-browserify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -19320,10 +19377,10 @@ tenderly@^0.0.2: open "^8.4.0" prompts "^2.4.2" -tenderly@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/tenderly/-/tenderly-0.2.0.tgz#614027ce58e2465c7707b5815d44c9d6ee92ab9e" - integrity sha512-VsYKJfvNOKypcSXzba7o1w1on/lWuSdjZNK0UeHkRuhKYxo/RrvoOpTB2nuaSPQ1dhczy4FNH/mpGU+kqvNr5g== +tenderly@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tenderly/-/tenderly-0.3.0.tgz#0c24e33b21b9b546eb8ff545589e38c0b08e9afb" + integrity sha512-JulOh626MZUzfur4YGJeIjpGS+1e3f+dfutHg+JkaDTFaGdEzhE68qVyBAmhynbCcXUItkZTpLARdhQEpEXW5w== dependencies: axios "^0.27.2" cli-table3 "^0.6.2" @@ -19619,14 +19676,14 @@ ts-essentials@^7.0.1: integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== ts-jest@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.3.tgz#63ea93c5401ab73595440733cefdba31fcf9cb77" - integrity sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ== + version "29.0.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.4.tgz#9bc1fd0ec4d863f001af6c5c630e3a807df90f6d" + integrity sha512-YdNofkoyzeinwjIqLSYQeAM+GTmFQ7xFNtWcR5OyitY5VLzzNINrNmfhP5H3daA/V+RGQR7O3g1K6ysRgu5xIQ== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" jest-util "^29.0.0" - json5 "^2.2.1" + json5 "^2.2.3" lodash.memoize "4.x" make-error "1.x" semver "7.x" @@ -19884,10 +19941,10 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici@^5.12.0, undici@^5.4.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.14.0.tgz#1169d0cdee06a4ffdd30810f6228d57998884d00" - integrity sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ== +undici@^5.12.0, undici@^5.14.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.15.0.tgz#cb8437c43718673a8be59df0fdd4856ff6689283" + integrity sha512-wCAZJDyjw9Myv+Ay62LAoB+hZLPW9SmKbQkbHIhMw/acKSlpn7WohdMUc/Vd4j1iSMBO0hWwU8mjB7a5p5bl8g== dependencies: busboy "^1.6.0" @@ -20012,6 +20069,13 @@ url@0.10.3: punycode "1.3.2" querystring "0.2.0" +urlpattern-polyfill@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz#a193fe773459865a2a5c93b246bb794b13d07256" + integrity sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg== + dependencies: + braces "^3.0.2" + ursa-optional@~0.10.0: version "0.10.2" resolved "https://registry.yarnpkg.com/ursa-optional/-/ursa-optional-0.10.2.tgz#bd74e7d60289c22ac2a69a3c8dea5eb2817f9681" @@ -20144,12 +20208,7 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -value-or-promise@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" - integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== - -value-or-promise@^1.0.11: +value-or-promise@1.0.12, value-or-promise@^1.0.11: 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== @@ -20178,6 +20237,26 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +victory-vendor@^36.6.8: + version "36.6.8" + resolved "https://registry.yarnpkg.com/victory-vendor/-/victory-vendor-36.6.8.tgz#5a1c555ca99a39fdb66a6c959c8426eb834893a2" + integrity sha512-H3kyQ+2zgjMPvbPqAl7Vwm2FD5dU7/4bCTQakFQnpIsfDljeOMDojRsrmJfwh4oAlNnWhpAf+mbAoLh8u7dwyQ== + dependencies: + "@types/d3-array" "^3.0.3" + "@types/d3-ease" "^3.0.0" + "@types/d3-interpolate" "^3.0.1" + "@types/d3-scale" "^4.0.2" + "@types/d3-shape" "^3.1.0" + "@types/d3-time" "^3.0.0" + "@types/d3-timer" "^3.0.0" + d3-array "^3.1.6" + d3-ease "^3.0.1" + d3-interpolate "^3.0.1" + d3-scale "^4.0.2" + d3-shape "^3.1.0" + d3-time "^3.0.0" + d3-timer "^3.0.1" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -20278,9 +20357,9 @@ web-vitals@^2.1.4: integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== web-vitals@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.1.0.tgz#a6f5156cb6c7fee562da46078540265ac2cd2d16" - integrity sha512-zCeQ+bOjWjJbXv5ZL0r8Py3XP2doCQMZXNKlBGfUjPAVZWokApdeF/kFlK1peuKlCt8sL9TFkKzyXE9/cmNJQA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.1.1.tgz#bb124a03df7a135617f495c5bb7dbc30ecf2cce3" + integrity sha512-qvllU+ZeQChqzBhZ1oyXmWsjJ8a2jHYpH8AMaVuf29yscOPZfTQTjQFRX6+eADTdsDE8IanOZ0cetweHMs8/2A== web3-bzz@1.8.1: version "1.8.1" @@ -21121,10 +21200,10 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== +ws@8.12.0, ws@^8.11.0, ws@^8.4.2, ws@^8.5.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" + integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== ws@^3.0.0: version "3.3.3" @@ -21140,11 +21219,6 @@ ws@^7.4.0, ws@^7.4.5, ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.11.0, ws@^8.4.2, ws@^8.5.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" - integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== - xdeployer@1.1.20: version "1.1.20" resolved "https://registry.yarnpkg.com/xdeployer/-/xdeployer-1.1.20.tgz#4cac0d534852b2f46b585aa10caee2f86583df5a" @@ -21416,8 +21490,8 @@ zksync-web3@^0.8.1: integrity sha512-1A4aHPQ3MyuGjpv5X/8pVEN+MdZqMjfVmiweQSRjOlklXYu65wT9BGEOtCmMs5d3gIvLp4ssfTeuR5OCKOD2kw== zustand@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.2.0.tgz#f6ef9e63794eda9b296979578538a6df6be3e1b0" - integrity sha512-eNwaDoD2FYVnMgtNxiMUhTJO780wonZUzJrPQTLYI0erSIMZF8cniWFW22kGQUECd8rdHRJ/ZJL2XO54c9Ttuw== + version "4.3.1" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.1.tgz#76c47ef713c43763953f7a9e518f89efd898e3bb" + integrity sha512-EVyo/eLlOTcJm/X5M00rwtbYFXwRVTaRteSvhtbTZUCQFJkNfIyHPiJ6Ke68MSWzcKHpPzvqNH4gC2ZS/sbNqw== dependencies: use-sync-external-store "1.2.0" From c28572910071cba35c09b8697f31b57d8182a890 Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Mon, 16 Jan 2023 09:09:21 +0800 Subject: [PATCH 062/216] update KVStore contract (#177) * update KVStore contract * update husky pre commit --- .husky/pre-commit | 3 +-- packages/core/contracts/KVStore.sol | 3 +++ packages/core/package.json | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index e019717c0f..8ea141d5cd 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -3,5 +3,4 @@ npx lint-staged -cd packages/sdk/python && make format -git add -u +cd packages/sdk/python && make format && git add . -u diff --git a/packages/core/contracts/KVStore.sol b/packages/core/contracts/KVStore.sol index 26c2e4a3e5..4cbc8c4d81 100644 --- a/packages/core/contracts/KVStore.sol +++ b/packages/core/contracts/KVStore.sol @@ -5,6 +5,8 @@ contract KVStore { uint private constant MAX_STRING_LENGTH = 1000; mapping(address => mapping(string => string)) private store; + event DataSaved(address indexed sender, string key, string value); + function get( address _account, string memory _key @@ -19,5 +21,6 @@ contract KVStore { 'Maximum string length' ); store[msg.sender][_key] = _value; + emit DataSaved(msg.sender, _key, _value); } } diff --git a/packages/core/package.json b/packages/core/package.json index 043d52068d..4aceca77df 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.27", + "version": "1.0.30", "files": [ "contracts/**/*.sol", "abis/**/*.json", From e2daace500584474fc1e6e5d937fef7f27d039b2 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 16 Jan 2023 14:57:11 +0100 Subject: [PATCH 063/216] fix tests order --- packages/examples/fortune/package.json | 5 ++++- .../fortune/tests/e2e-backend/CustomSequencer.js | 10 ++++++++++ yarn.lock | 4 ++-- 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 packages/examples/fortune/tests/e2e-backend/CustomSequencer.js diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index 5fc9adb924..ad0de37863 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -17,7 +17,7 @@ "test:exchange": "cd exchange && yarn test", "test:recording": "cd recording-oracle && yarn test", "test:reputation": "cd reputation-oracle && yarn test", - "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", + "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest --testSequencer ./tests/e2e-backend/CustomSequencer.js tests/e2e-backend --runInBand\") && docker compose down", "test:unit": "concurrently -g \"yarn test:recording\" \"yarn test:reputation\" \"yarn test:exchange\"", "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", "lint": "eslint .", @@ -33,5 +33,8 @@ "hardhat": "^2.12.2", "jest": "^29.2.2", "web3": "^1.8.0" + }, + "dependencies": { + "@jest/test-sequencer": "^29.3.1" } } diff --git a/packages/examples/fortune/tests/e2e-backend/CustomSequencer.js b/packages/examples/fortune/tests/e2e-backend/CustomSequencer.js new file mode 100644 index 0000000000..ae7f1ef2b3 --- /dev/null +++ b/packages/examples/fortune/tests/e2e-backend/CustomSequencer.js @@ -0,0 +1,10 @@ +const Sequencer = require('@jest/test-sequencer').default; + +class CustomSequencer extends Sequencer { + sort(tests) { + const copyTests = Array.from(tests); + return [...tests].sort((a, b) => (a.path > b.path ? 1 : -1)); + } + } + + module.exports = CustomSequencer; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 5ddfd8180f..198754dedc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10996,9 +10996,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" From 4732ceedf8b31d8706e1f692479f79f41efa8eae Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Tue, 17 Jan 2023 05:43:20 +0800 Subject: [PATCH 064/216] fix staking contract slashed event fix (#180) * fix staking contract slashed event fix * fix test --- packages/core/contracts/Staking.sol | 9 +++++++-- packages/core/package.json | 2 +- packages/core/test/Staking.ts | 7 ++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index a794d675a5..b71e973876 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -59,7 +59,12 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { /** * @dev Emitted when `staker` was slashed for a total of `tokens` amount. */ - event StakeSlashed(address indexed staker, uint256 tokens); + event StakeSlashed( + address indexed staker, + uint256 tokens, + address indexed escrowAddress, + address slasher + ); /** * @dev Emitted when `staker` allocated `tokens` amount to `escrowAddress`. @@ -447,7 +452,7 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { // Keep record on Reward Pool IRewardPool(rewardPool).addReward(_escrowAddress, _slasher, _tokens); - emit StakeSlashed(_slasher, _tokens); + emit StakeSlashed(_staker, _tokens, _escrowAddress, _slasher); } /** diff --git a/packages/core/package.json b/packages/core/package.json index 4aceca77df..32e93e0c50 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.30", + "version": "1.0.31", "files": [ "contracts/**/*.sol", "abis/**/*.json", diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 7f5d2aedff..b3ac1c6965 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -687,7 +687,12 @@ describe('Staking', function () { ) ) .to.emit(staking, 'StakeSlashed') - .withArgs(await validator.getAddress(), anyValue); + .withArgs( + await operator.getAddress(), + slashedTokens, + escrowAddress, + await validator.getAddress() + ); }); }); From 81463d15b8f9a4f2adb6e60a4177d1873f672852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Manuel=20L=C3=B3pez=20Garc=C3=ADa?= <50665615+flopez7@users.noreply.github.com> Date: Tue, 17 Jan 2023 09:41:31 +0100 Subject: [PATCH 065/216] Delete unused file --- .../contracts/utils/AddressUpgradeable.sol | 268 ------------------ 1 file changed, 268 deletions(-) delete mode 100644 packages/core/contracts/utils/AddressUpgradeable.sol diff --git a/packages/core/contracts/utils/AddressUpgradeable.sol b/packages/core/contracts/utils/AddressUpgradeable.sol deleted file mode 100644 index ae7cc68866..0000000000 --- a/packages/core/contracts/utils/AddressUpgradeable.sol +++ /dev/null @@ -1,268 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol) - -pragma solidity ^0.8.1; - -/** - * @dev Collection of functions related to the address type - */ -library AddressUpgradeable { - /** - * @dev Returns true if `account` is a contract. - * - * [IMPORTANT] - * ==== - * It is unsafe to assume that an address for which this function returns - * false is an externally-owned account (EOA) and not a contract. - * - * Among others, `isContract` will return false for the following - * types of addresses: - * - * - an externally-owned account - * - a contract in construction - * - an address where a contract will be created - * - an address where a contract lived, but was destroyed - * ==== - * - * [IMPORTANT] - * ==== - * You shouldn't rely on `isContract` to protect against flash loan attacks! - * - * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets - * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract - * constructor. - * ==== - */ - function isContract(address account) internal view returns (bool) { - // This method relies on extcodesize/address.code.length, which returns 0 - // for contracts in construction, since the code is only stored at the end - // of the constructor execution. - - return account.code.length > 0; - } - - /** - * @dev Replacement for Solidity's `transfer`: sends `amount` wei to - * `recipient`, forwarding all available gas and reverting on errors. - * - * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost - * of certain opcodes, possibly making contracts go over the 2300 gas limit - * imposed by `transfer`, making them unable to receive funds via - * `transfer`. {sendValue} removes this limitation. - * - * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. - * - * IMPORTANT: because control is transferred to `recipient`, care must be - * taken to not create reentrancy vulnerabilities. Consider using - * {ReentrancyGuard} or the - * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. - */ - function sendValue(address payable recipient, uint256 amount) internal { - require( - address(this).balance >= amount, - 'Address: insufficient balance' - ); - - (bool success, ) = recipient.call{value: amount}(''); - require( - success, - 'Address: unable to send value, recipient may have reverted' - ); - } - - /** - * @dev Performs a Solidity function call using a low level `call`. A - * plain `call` is an unsafe replacement for a function call: use this - * function instead. - * - * If `target` reverts with a revert reason, it is bubbled up by this - * function (like regular Solidity function calls). - * - * Returns the raw returned data. To convert to the expected return value, - * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. - * - * Requirements: - * - * - `target` must be a contract. - * - calling `target` with `data` must not revert. - * - * _Available since v3.1._ - */ - function functionCall( - address target, - bytes memory data - ) internal returns (bytes memory) { - return - functionCallWithValue( - target, - data, - 0, - 'Address: low-level call failed' - ); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with - * `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCall( - address target, - bytes memory data, - string memory errorMessage - ) internal returns (bytes memory) { - return functionCallWithValue(target, data, 0, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but also transferring `value` wei to `target`. - * - * Requirements: - * - * - the calling contract must have an ETH balance of at least `value`. - * - the called Solidity function must be `payable`. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value - ) internal returns (bytes memory) { - return - functionCallWithValue( - target, - data, - value, - 'Address: low-level call with value failed' - ); - } - - /** - * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but - * with `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value, - string memory errorMessage - ) internal returns (bytes memory) { - require( - address(this).balance >= value, - 'Address: insufficient balance for call' - ); - (bool success, bytes memory returndata) = target.call{value: value}( - data - ); - return - verifyCallResultFromTarget( - target, - success, - returndata, - errorMessage - ); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but performing a static call. - * - * _Available since v3.3._ - */ - function functionStaticCall( - address target, - bytes memory data - ) internal view returns (bytes memory) { - return - functionStaticCall( - target, - data, - 'Address: low-level static call failed' - ); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], - * but performing a static call. - * - * _Available since v3.3._ - */ - function functionStaticCall( - address target, - bytes memory data, - string memory errorMessage - ) internal view returns (bytes memory) { - (bool success, bytes memory returndata) = target.staticcall(data); - return - verifyCallResultFromTarget( - target, - success, - returndata, - errorMessage - ); - } - - /** - * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling - * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. - * - * _Available since v4.8._ - */ - function verifyCallResultFromTarget( - address target, - bool success, - bytes memory returndata, - string memory errorMessage - ) internal view returns (bytes memory) { - if (success) { - if (returndata.length == 0) { - // only check isContract if the call was successful and the return data is empty - // otherwise we already know that it was a contract - require(isContract(target), 'Address: call to non-contract'); - } - return returndata; - } else { - _revert(returndata, errorMessage); - } - } - - /** - * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the - * revert reason or using the provided one. - * - * _Available since v4.3._ - */ - function verifyCallResult( - bool success, - bytes memory returndata, - string memory errorMessage - ) internal pure returns (bytes memory) { - if (success) { - return returndata; - } else { - _revert(returndata, errorMessage); - } - } - - function _revert( - bytes memory returndata, - string memory errorMessage - ) private pure { - // Look for revert reason and bubble it up if present - if (returndata.length > 0) { - // The easiest way to bubble the revert reason is using memory via assembly - /// @solidity memory-safe-assembly - assembly { - let returndata_size := mload(returndata) - revert(add(32, returndata), returndata_size) - } - } else { - revert(errorMessage); - } - } -} From 3d68c246e631e48d9ec0079355778945c53391ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 17 Jan 2023 13:44:43 +0100 Subject: [PATCH 066/216] Update calculate rewards method to use reputation --- .../fortune/tests/e2e-backend/constants.js | 3 ++ .../fortune/tests/e2e-backend/fixtures.js | 50 ++++++++++++++----- .../tests/e2e-backend/positiveFlow.test.js | 6 ++- .../e2e-backend/uniqueFortunePaid.test.js | 2 +- 4 files changed, 45 insertions(+), 16 deletions(-) diff --git a/packages/examples/fortune/tests/e2e-backend/constants.js b/packages/examples/fortune/tests/e2e-backend/constants.js index f803817751..bc618dd108 100644 --- a/packages/examples/fortune/tests/e2e-backend/constants.js +++ b/packages/examples/fortune/tests/e2e-backend/constants.js @@ -10,6 +10,9 @@ const addresses = { escrowFactory: process.env.ESCROW_FACTORY_ADDRESS || '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9', + reputation: + process.env.REPUTATION_ADDRESS || + '0x09635F643e140090A9A8Dcd712eD6285858ceBef', recOracle: process.env.REC_ORACLE_ADDRESS || '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', diff --git a/packages/examples/fortune/tests/e2e-backend/fixtures.js b/packages/examples/fortune/tests/e2e-backend/fixtures.js index 646c07afa0..161101390c 100644 --- a/packages/examples/fortune/tests/e2e-backend/fixtures.js +++ b/packages/examples/fortune/tests/e2e-backend/fixtures.js @@ -11,6 +11,7 @@ const escrowAbi = require('@human-protocol/core/abis/Escrow.json'); const hmtokenAbi = require('@human-protocol/core/abis/HMToken.json'); const factoryAbi = require('@human-protocol/core/abis/EscrowFactory.json'); const stakingAbi = require('@human-protocol/core/abis/Staking.json'); +const reputationAbi = require('@human-protocol/core/abis/Reputation.json'); const axios = require('axios'); const Web3 = require('web3'); @@ -138,22 +139,45 @@ const sendFortune = async (address, escrowAddress, fortune) => { } }; -const calculateRewardAmount = async () => { - const manifestResponse = await axios.get(urls.localManifestUrl); - const { fortunes_requested: fortunesRequested } = manifestResponse.data; +const calculateRewardAmount = async (agentAddresses) => { + const workerRewards = []; + const repOracleRewards = []; + const recOracleRewards = []; + let totalReputation = 0, + totalRecOracleReward = 0, + totalRepOracleReward = 0; const balance = web3.utils.toWei(`${escrowFundAmount}`, 'ether'); - const workerEvenReward = balance / fortunesRequested; - const repOracleReward = (workerEvenReward / 100) * stakes.repOracle; - const recOracleReward = (workerEvenReward / 100) * stakes.recOracle; - - const totalWorkerReward = - workerEvenReward - repOracleReward - recOracleReward; - const totalRepOracleReward = repOracleReward * fortunesRequested; - const totalRecOracleReward = recOracleReward * fortunesRequested; - - return { totalWorkerReward, totalRepOracleReward, totalRecOracleReward }; + const Reputation = new web3.eth.Contract(reputationAbi, addresses.reputation); + const reputationValues = await Reputation.methods + .getReputations(agentAddresses) + .call(); + + reputationValues.forEach((element) => { + totalReputation += Number(element.reputation); + }); + agentAddresses.forEach((worker) => { + const reputation = reputationValues.find( + (element) => element.workerAddress === worker + ); + const workerReward = + (balance * (reputation?.reputation || 0)) / totalReputation; + const recReward = (workerReward * stakes.recOracle) / 100; + const repReward = (workerReward * stakes.repOracle) / 100; + workerRewards.push(workerReward); + recOracleRewards.push(recReward); + repOracleRewards.push(repReward); + totalRecOracleReward += recReward; + totalRepOracleReward += repReward; + }); + return { + workerRewards: workerRewards, + repOracleRewards: repOracleRewards, + recOracleRewards: recOracleRewards, + totalRecOracleReward: totalRecOracleReward, + totalRepOracleReward: totalRepOracleReward, + }; }; const getS3File = async (escrowAddress) => { diff --git a/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js b/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js index 118f1924f6..a723df9f17 100644 --- a/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js +++ b/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js @@ -77,13 +77,15 @@ describe('Positive flow', () => { escrowSt = await Escrow.methods.status().call(); expect(statusesMap[escrowSt]).toBe('Paid'); - const rewards = await calculateRewardAmount(); + const rewards = await calculateRewardAmount(agentAddresses); for (let i = 0; i < agentAddresses.length; i++) { const agent_balance = await Token.methods .balanceOf(agentAddresses[i]) .call(); expect(agent_balance - agentsOldBalances[i]).toBe( - rewards.totalWorkerReward + rewards.workerRewards[i] - + rewards.recOracleRewards[i] - + rewards.repOracleRewards[i] ); } diff --git a/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js b/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js index b30c3af1d1..bdb4c756e8 100644 --- a/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js +++ b/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js @@ -76,7 +76,7 @@ describe('Positive flow + adding same fortune. Only one unique fortune teller sh escrowSt = await Escrow.methods.status().call(); expect(statusesMap[escrowSt]).toBe('Paid'); - const rewards = await calculateRewardAmount(); + const rewards = await calculateRewardAmount([agentAddresses[0]]); const agent_1_balance = await Token.methods .balanceOf(agentAddresses[0]) From 1b26c0947f396678d387b746ddd45667c37161b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 17 Jan 2023 17:28:06 +0100 Subject: [PATCH 067/216] Add tests for escrow factory proxy --- .../core/contracts/test/EscrowFactoryV0.sol | 74 +++++++++++++++++++ packages/core/test/EscrowFactory.ts | 63 +++++++++++++++- packages/examples/fortune/package.json | 2 +- 3 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 packages/core/contracts/test/EscrowFactoryV0.sol diff --git a/packages/core/contracts/test/EscrowFactoryV0.sol b/packages/core/contracts/test/EscrowFactoryV0.sol new file mode 100644 index 0000000000..2f6f143440 --- /dev/null +++ b/packages/core/contracts/test/EscrowFactoryV0.sol @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.2; + +import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; +import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; + +import '../interfaces/IStaking.sol'; +import '../Escrow.sol'; + +contract EscrowFactoryV0 is OwnableUpgradeable, UUPSUpgradeable { + // all Escrows will have this duration. + uint256 constant STANDARD_DURATION = 8640000; + string constant ERROR_ZERO_ADDRESS = 'EscrowFactory: Zero Address'; + + uint256 public counter; + mapping(address => uint256) public escrowCounters; + address public lastEscrow; + address public eip20; + address public staking; + event Launched(address eip20, address escrow); + + function initialize( + address _eip20, + address _staking + ) external payable virtual initializer { + __Ownable_init_unchained(); + __EscrowFactory_init_unchained(_eip20, _staking); + } + + function __EscrowFactory_init_unchained( + address _eip20, + address _staking + ) internal onlyInitializing { + require(_eip20 != address(0), ERROR_ZERO_ADDRESS); + eip20 = _eip20; + require(_staking != address(0), ERROR_ZERO_ADDRESS); + staking = _staking; + } + + function createEscrow( + address[] memory trustedHandlers + ) public returns (address) { + bool hasAvailableStake = IStaking(staking).hasAvailableStake( + msg.sender + ); + require( + hasAvailableStake == true, + 'Needs to stake HMT tokens to create an escrow.' + ); + + Escrow escrow = new Escrow( + eip20, + payable(msg.sender), + STANDARD_DURATION, + trustedHandlers + ); + counter++; + escrowCounters[address(escrow)] = counter; + lastEscrow = address(escrow); + emit Launched(eip20, lastEscrow); + return lastEscrow; + } + + // solhint-disable-next-line no-empty-blocks + function _authorizeUpgrade(address) internal override onlyOwner {} + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[43] private __gap; +} diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 472e0916e6..5335a5f265 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -1,7 +1,7 @@ import { anyValue } from '@nomicfoundation/hardhat-chai-matchers/withArgs'; -import { expect } from 'chai'; -import { ethers, upgrades } from 'hardhat'; +import { assert, expect } from 'chai'; import { Signer } from 'ethers'; +import { ethers, upgrades } from 'hardhat'; import { EscrowFactory, HMToken, Staking } from '../typechain-types'; describe('EscrowFactory', function () { @@ -155,4 +155,63 @@ describe('EscrowFactory', function () { expect(event?.eip20).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; }); + + describe('proxy implementation', function () { + it('Should reject non-owner upgrades', async () => { + const EscrowFactoryV0 = await ethers.getContractFactory( + 'EscrowFactoryV0', + operator + ); + + await expect( + upgrades.upgradeProxy(escrowFactory.address, EscrowFactoryV0) + ).to.be.revertedWith('Ownable: caller is not the owner'); + }); + + it('Owner should upgrade correctly', async () => { + const EscrowFactoryV0 = await ethers.getContractFactory( + 'EscrowFactoryV0' + ); + const oldImplementationAddress = + await upgrades.erc1967.getImplementationAddress(escrowFactory.address); + + await upgrades.upgradeProxy(escrowFactory.address, EscrowFactoryV0); + + expect( + await upgrades.erc1967.getImplementationAddress(escrowFactory.address) + ).to.not.be.equal(oldImplementationAddress); + + const event = await stakeAndCreateEscrow(staking); + + expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.escrow).to.not.be.null; + + try { + escrowFactory.hasEscrow(owner.getAddress()); + } catch (error: any) { + assert( + error.message === 'newEscrowFactory.hasEscrow is not a function' + ); + } + }); + + it('Should have the same storage', async () => { + await stakeAndCreateEscrow(staking); + + const oldLastEscrow = await escrowFactory.lastEscrow(); + const oldImplementationAddress = + await upgrades.erc1967.getImplementationAddress(escrowFactory.address); + + const EscrowFactoryV0 = await ethers.getContractFactory( + 'EscrowFactoryV0' + ); + await upgrades.upgradeProxy(escrowFactory.address, EscrowFactoryV0); + + expect( + await upgrades.erc1967.getImplementationAddress(escrowFactory.address) + ).to.not.be.equal(oldImplementationAddress); + + expect(await escrowFactory.lastEscrow()).to.equal(oldLastEscrow); + }); + }); }); diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index 5fc9adb924..ed70302664 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -18,7 +18,7 @@ "test:recording": "cd recording-oracle && yarn test", "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", - "test:unit": "concurrently -g \"yarn test:recording\" \"yarn test:reputation\" \"yarn test:exchange\"", + "test:unit": "concurrently -g \"yarn test:recording\" \"sleep 3 && yarn test:reputation\" \"yarn test:exchange\"", "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", "lint": "eslint .", "lint:fix": "eslint . --fix" From 74ca7f3e43c3ac726fcd792f270e3f818883b999 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 19 Jan 2023 14:36:42 +0100 Subject: [PATCH 068/216] job launcher server --- .../fortune/launcher/server/package.json | 24 ++ .../launcher/server/src/constants/networks.ts | 83 ++++++ .../launcher/server/src/constants/oracles.ts | 6 + .../fortune/launcher/server/src/index.ts | 19 ++ .../launcher/server/src/plugins/config.ts | 50 ++++ .../launcher/server/src/routes/escrow.ts | 40 +++ .../launcher/server/src/routes/index.ts | 8 + .../launcher/server/src/routes/payments.ts | 18 ++ .../launcher/server/src/schemas/escrow.ts | 13 + .../fortune/launcher/server/src/server.ts | 31 ++ .../server/src/services/escrowService.ts | 73 +++++ .../launcher/server/src/services/s3Service.ts | 33 +++ .../fortune/launcher/server/src/utils/web3.ts | 14 + .../fortune/launcher/server/tsconfig.json | 18 ++ yarn.lock | 273 +++++++++++++++++- 15 files changed, 691 insertions(+), 12 deletions(-) create mode 100644 packages/examples/fortune/launcher/server/package.json create mode 100644 packages/examples/fortune/launcher/server/src/constants/networks.ts create mode 100644 packages/examples/fortune/launcher/server/src/constants/oracles.ts create mode 100644 packages/examples/fortune/launcher/server/src/index.ts create mode 100644 packages/examples/fortune/launcher/server/src/plugins/config.ts create mode 100644 packages/examples/fortune/launcher/server/src/routes/escrow.ts create mode 100644 packages/examples/fortune/launcher/server/src/routes/index.ts create mode 100644 packages/examples/fortune/launcher/server/src/routes/payments.ts create mode 100644 packages/examples/fortune/launcher/server/src/schemas/escrow.ts create mode 100644 packages/examples/fortune/launcher/server/src/server.ts create mode 100644 packages/examples/fortune/launcher/server/src/services/escrowService.ts create mode 100644 packages/examples/fortune/launcher/server/src/services/s3Service.ts create mode 100644 packages/examples/fortune/launcher/server/src/utils/web3.ts create mode 100644 packages/examples/fortune/launcher/server/tsconfig.json diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json new file mode 100644 index 0000000000..a1a7586552 --- /dev/null +++ b/packages/examples/fortune/launcher/server/package.json @@ -0,0 +1,24 @@ +{ + "name": "server", + "version": "1.0.0", + "description": "Job Launcher Server", + "main": "index.ts", + "license": "MIT", + "private": false, + "type": "module", + "dependencies": { + "@fastify/cors": "^8.2.0", + "@human-protocol/core": "workspace:*", + "@types/node": "^18.11.18", + "bn.js": "^5.2.1", + "fastify": "^4.11.0", + "typescript": "^4.9.4" + }, + "devDependencies": { + "ts-node": "^10.9.1" + }, + "scripts": { + "build": "tsc", + "start": "ts-node --esm ./src/index.ts" + } +} diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts new file mode 100644 index 0000000000..17e6fe6a7a --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -0,0 +1,83 @@ +export enum ChainId { + ALL = -1, + MAINNET = 1, + GOERLI = 5, + BSC_MAINNET = 56, + BSC_TESTNET = 97, + POLYGON = 137, + POLYGON_MUMBAI = 80001, + MOONBEAM = 1284, + } + + export interface IEscrowNetwork { + chainId: number; + title: string; + scanUrl: string; + rpcUrl: string; + subgraphUrl: string; + hmtAddress: string; + factoryAddress: string; + } + + +export const ESCROW_NETWORKS: { + [chainId in ChainId]?: IEscrowNetwork; + } = { + // [ChainId.GOERLI]: { + // chainId: ChainId.GOERLI, + // title: 'Ethereum Goerli', + // scanUrl: 'https://goerli.etherscan.io', + // rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', + // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', + // factoryAddress: '0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F', + // hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', + // }, + // [ChainId.BSC_MAINNET]: { + // chainId: ChainId.BSC_MAINNET, + // title: 'Binance Smart Chain', + // scanUrl: 'https://bscscan.com', + // rpcUrl: 'https://bsc-dataseed1.binance.org/', + // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', + // factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + // hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', + // }, + // [ChainId.BSC_TESTNET]: { + // chainId: ChainId.BSC_TESTNET, + // title: 'Binance Smart Chain (Testnet)', + // scanUrl: 'https://testnet.bscscan.com', + // rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', + // factoryAddress: '0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f', + // hmtAddress: '0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317', + // }, + // [ChainId.POLYGON]: { + // chainId: ChainId.POLYGON, + // title: 'Polygon', + // scanUrl: 'https://polygonscan.com', + // rpcUrl: 'https://polygon-rpc.com/', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', + // factoryAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', + // hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', + // }, + [ChainId.POLYGON_MUMBAI]: { + chainId: ChainId.POLYGON_MUMBAI, + title: 'Polygon Mumbai', + scanUrl: 'https://mumbai.polygonscan.com', + rpcUrl: 'https://rpc-mumbai.maticvigil.com', + subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai', + factoryAddress: '0x558cd800f9F0B02f3B149667bDe003284c867E94', + hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', + }, + // [ChainId.MOONBEAM]: { + // chainId: ChainId.MOONBEAM, + // title: 'Moonbeam', + // scanUrl: 'https://moonbeam.moonscan.io', + // rpcUrl: 'https://rpc.api.moonbeam.network', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', + // factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + // hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', + // }, + }; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/constants/oracles.ts b/packages/examples/fortune/launcher/server/src/constants/oracles.ts new file mode 100644 index 0000000000..31ed1d61aa --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/constants/oracles.ts @@ -0,0 +1,6 @@ +export const REC_ORACLE_ADDRESS = '0x670bCc966ddc4fE7136c8793617a2C4D22849827'; +export const REP_ORACLE_ADDRESS = '0x6aC0881d52B08a9FF766b9Ac51FD9F488D761d98'; +export const EX_ORACLE_ADDRESS = ''; + +export const REC_ORACLE_PERCENTAGE_FEE = 10; +export const REP_ORACLE_PERCENTAGE_FEE = 10; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/index.ts b/packages/examples/fortune/launcher/server/src/index.ts new file mode 100644 index 0000000000..32e69b08dc --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/index.ts @@ -0,0 +1,19 @@ +import server from './server.js'; + +process.on('unhandledRejection', (err) => { + console.error(err); + process.exit(1); + }); + + const port = +server.config.API_PORT; + const host = server.config.API_HOST; + await server.listen({ host, port }); + + for (const signal of ['SIGINT', 'SIGTERM']) { + process.on(signal, () => + server.close().then((err) => { + console.log(`close application on ${signal}`); + process.exit(err ? 1 : 0); + }), + ); + } \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/plugins/config.ts b/packages/examples/fortune/launcher/server/src/plugins/config.ts new file mode 100644 index 0000000000..08d0577e01 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/plugins/config.ts @@ -0,0 +1,50 @@ +import "dotenv/config"; +import fp from "fastify-plugin"; +import { FastifyPluginAsync } from "fastify"; +import { Static, Type } from "@sinclair/typebox"; +import Ajv from "ajv"; + +export enum NodeEnv { + development = "development", + test = "test", + production = "production", +} + +const ConfigSchema = Type.Strict( + Type.Object({ + NODE_ENV: Type.Enum(NodeEnv), + LOG_LEVEL: Type.String(), + API_HOST: Type.String(), + API_PORT: Type.String(), + }) +); + +const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, +}); + +export type Config = Static; + +const configPlugin: FastifyPluginAsync = async (server) => { + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + ".env file validation failed - " + + JSON.stringify(validate.errors, null, 2) + ); + } + server.decorate("config", process.env); +}; + +declare module "fastify" { + interface FastifyInstance { + config: Config; + } +} + +export default fp(configPlugin); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/routes/escrow.ts b/packages/examples/fortune/launcher/server/src/routes/escrow.ts new file mode 100644 index 0000000000..01681ff675 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/routes/escrow.ts @@ -0,0 +1,40 @@ +import { Type } from '@sinclair/typebox'; +import { FastifyPluginAsync } from 'fastify'; +import { escrow as escrowSchema } from '../schemas/escrow.js'; +import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from '../constants/networks.js'; +import { launchEscrow } from '../services/escrowService.js' + +export const createEscrow: FastifyPluginAsync = async (server) => { + + let escrowNetwork: IEscrowNetwork; + let escrow: typeof escrowSchema.properties; + server.post('/escrow', + { + preValidation: (request, reply, done) => { + escrow = request.body as typeof escrowSchema.properties; + const chainId = Number(escrow.chainId) as ChainId; + if (!chainId) + return new Error('Invalid chain Id'); + + const network = ESCROW_NETWORKS[chainId]; + if(network){ + escrowNetwork = network; + done(undefined); + } + else + done(new Error('Chain Id not supported')); + }, + schema: { + body: escrowSchema, + response: { + 200: Type.Object({ + response: Type.String() + }), + }, + }, + }, + async function (request, reply) { + const escrowAddress = await launchEscrow(escrowNetwork, escrow); + return escrowAddress; + }); + } \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/routes/index.ts b/packages/examples/fortune/launcher/server/src/routes/index.ts new file mode 100644 index 0000000000..83781831fc --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/routes/index.ts @@ -0,0 +1,8 @@ +import { FastifyInstance } from 'fastify'; +import { createEscrow } from './escrow.js'; +import { cryptoPayment } from './payments.js'; + +export default async function routes(fastify: FastifyInstance) { + fastify.register(createEscrow); + fastify.register(cryptoPayment); +} diff --git a/packages/examples/fortune/launcher/server/src/routes/payments.ts b/packages/examples/fortune/launcher/server/src/routes/payments.ts new file mode 100644 index 0000000000..aa1dda03ce --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/routes/payments.ts @@ -0,0 +1,18 @@ +import { FastifyPluginAsync } from 'fastify'; + +export const cryptoPayment: FastifyPluginAsync = async (server) => { + server.post('/payment', + { + schema: { + body: {type: 'string'} + }, + }, + async function (request, reply) { + + const txHash = request.body; + + console.log(txHash); + + return true; + }); + } \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/schemas/escrow.ts b/packages/examples/fortune/launcher/server/src/schemas/escrow.ts new file mode 100644 index 0000000000..eba725b6c6 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/schemas/escrow.ts @@ -0,0 +1,13 @@ +export const escrow = { + type: 'object', + properties: { + chainId: { type: 'number' }, + title: { type: 'string' }, + description: { type: 'string' }, + fortunesRequired: { type: 'number' }, + token: { type: 'string', minLength: 2, pattern: '^0x[a-fA-F0-9]{40}$' }, + fundAmount: { type: 'number' }, + jobRequester: { type: 'string', minLength: 2, pattern: '^0x[a-fA-F0-9]{40}$' } + }, + required: ['chainId', 'title', 'description', 'fortunesRequired', 'token', 'fundAmount', 'jobRequester'] +} \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/server.ts b/packages/examples/fortune/launcher/server/src/server.ts new file mode 100644 index 0000000000..ffccc08639 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/server.ts @@ -0,0 +1,31 @@ +import fastify from 'fastify'; +import config from './plugins/config.js'; +// import web3 from './plugins/web3.js'; +// import s3 from './plugins/s3.js' +// import storage from './plugins/storage.js'; +import routes from './routes/index.js'; +import cors from '@fastify/cors' + +const server = fastify({ + ajv: { + customOptions: { + removeAdditional: "all", + coerceTypes: true, + useDefaults: true, + } + }, + logger: { + level: process.env.LOG_LEVEL, + }, +}); + +await server + .register(config) +// .register(web3) +// .register(s3) +// .register(storage) + .register(cors) + .register(routes) + .ready(); + +export default server; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/services/escrowService.ts b/packages/examples/fortune/launcher/server/src/services/escrowService.ts new file mode 100644 index 0000000000..1111cd3105 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/services/escrowService.ts @@ -0,0 +1,73 @@ +import { IEscrowNetwork } from "constants/networks.js"; +import { createWeb3 } from "../utils/web3.js"; +import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json' assert { type: "json" }; +import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; +import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; +import { escrow as escrowSchema } from '../schemas/escrow.js'; +import Web3 from "web3"; +import { uploadManifest } from "./s3Service.js"; +import { REC_ORACLE_ADDRESS, REC_ORACLE_PERCENTAGE_FEE, REP_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE } from "../constants/oracles.js"; + +export const launchEscrow = async (network: IEscrowNetwork, escrow: typeof escrowSchema.properties) => { + const web3 = createWeb3(network); + const jobRequester = escrow.jobRequester as unknown as string; + const token = escrow.token as unknown as string; + const fundAmount = web3.utils.toWei(Number(escrow.fundAmount).toString(), 'ether'); + if (await checkApproved(web3, token, jobRequester, fundAmount)) { + const escrowAddress = await createEscrow(web3, network.factoryAddress, jobRequester); + await fundEscrow(web3, token, jobRequester, escrowAddress, fundAmount); + await setupEscrow(web3, escrowAddress, escrow); + return escrowAddress; + } + return 'Balance or allowance not enough for funding the escrow'; +} + +export const checkApproved = async (web3: Web3, tokenAddress: string, jobRequester: string, fundAmount: string) => { + const hmtoken = new web3.eth.Contract(HMTokenAbi as [], tokenAddress); + const allowance = await hmtoken.methods + .allowance(jobRequester, web3.eth.defaultAccount) + .call(); + const balance = await hmtoken.methods + .balanceOf(jobRequester) + .call(); + console.log(balance) + console.log(fundAmount) + console.log(allowance) + return allowance == fundAmount && balance >= fundAmount; +} + +export const createEscrow = async (web3: Web3, factoryAddress: string, jobRequester: string) => { + const escrowFactory = new web3.eth.Contract(EscrowFactoryAbi as [], factoryAddress); + const gas = await escrowFactory.methods + .createEscrow([jobRequester]) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + var result = await escrowFactory.methods + .createEscrow([]) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); + return result.events.Launched.returnValues.escrow; +}; + +export const fundEscrow = async (web3: Web3, tokenAddress: string, jobRequester: string, escrowAddress: string, fundAmount: string) => { + const hmtoken = new web3.eth.Contract(HMTokenAbi as [], tokenAddress); + const gas = await hmtoken.methods + .transferFrom(jobRequester, escrowAddress, fundAmount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + var result = await hmtoken.methods + .transferFrom(jobRequester, escrowAddress, fundAmount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +}; + +export const setupEscrow = async (web3: Web3, escrowAddress: string, escrow: typeof escrowSchema.properties) => { + const url = await uploadManifest(escrow, escrowAddress); + console.log(url); + const escrowContract = new web3.eth.Contract(EscrowAbi as [], escrowAddress); + const gas = await escrowContract.methods + .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + var result = await escrowContract.methods + .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +}; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/services/s3Service.ts b/packages/examples/fortune/launcher/server/src/services/s3Service.ts new file mode 100644 index 0000000000..a0c9677f28 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/services/s3Service.ts @@ -0,0 +1,33 @@ +import * as Minio from 'minio'; +import { escrow as escrowSchema } from '../schemas/escrow.js'; + +const minioHost = process.env.MINIO_HOST || 'storage.googleapis.com'; +const minioPort = Number(process.env.MINIO_PORT) || 80; +const minioAccessKey = process.env.MINIO_ACCESS_KEY || ''; +const minioSecretKey = process.env.MINIO_SECRET_KEY || ''; +const minioBucketName = process.env.MINIO_BUCKET_NAME || ''; +const baseUrl = ''; + +const minioClient = new Minio.Client({ + endPoint: minioHost, + port: minioPort, + accessKey: minioAccessKey, + secretKey: minioSecretKey, + useSSL: false, +}); + +export async function uploadManifest(escrow: typeof escrowSchema.properties, escrowAddress: string) { + const fileName = `${escrowAddress}-manifest.json`; + + const bucketExists = await minioClient.bucketExists(minioBucketName); + if (!bucketExists) { + await minioClient.makeBucket(minioBucketName, ''); + } + await minioClient.putObject( + minioBucketName, + fileName, + JSON.stringify(escrow), + { 'Content-Type': 'application/json' } + ); + return `${baseUrl}${fileName}` +} diff --git a/packages/examples/fortune/launcher/server/src/utils/web3.ts b/packages/examples/fortune/launcher/server/src/utils/web3.ts new file mode 100644 index 0000000000..6aeb1bb780 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/utils/web3.ts @@ -0,0 +1,14 @@ +import { IEscrowNetwork } from 'constants/networks'; +import Web3 from 'web3'; + +const privKey = process.env.ETH_PRIVATE_KEY || + ''; + +export const createWeb3 = (network: IEscrowNetwork) => { + const ethHttpServer = network.rpcUrl as string; + const web3 = new Web3(ethHttpServer); + const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); + web3.eth.accounts.wallet.add(account); + web3.eth.defaultAccount = account.address; + return web3; +} \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json new file mode 100644 index 0000000000..b1ea41e692 --- /dev/null +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Node", + "lib": ["esnext"], + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "sourceMap": true, + "outDir": "build", + "baseUrl": "src", + "skipLibCheck": true, + "strict": true, + "resolveJsonModule": true, + }, + "include": ["src/**/*.ts", "tests/**/*.ts"], + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 6f874e16f1..634d2ed9d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1775,6 +1775,40 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" +"@fastify/ajv-compiler@^3.3.1": + 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/cors@^8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@fastify/cors/-/cors-8.2.0.tgz#44ce6b28bc111e12679cb02f980f0ce865ff4877" + integrity sha512-qDgwpmg6C4D0D3nh8MTMuRXWyEwPnDZDBODaJv90FP2o9ukbahJByW4FtrM5Bpod5KbTf1oIExBmpItbUTQmHg== + dependencies: + fastify-plugin "^4.0.0" + mnemonist "0.39.5" + +"@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.2.0" + resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.2.0.tgz#9010e0acfe07965f5fc7d2b367f58f042d0f4106" + integrity sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ== + +"@fastify/fast-json-stringify-compiler@^4.1.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.2.0.tgz#52d047fac76b0d75bd660f04a5dd606659f57c5a" + integrity sha512-ypZynRvXA3dibfPykQN3RB5wBdEUgSGgny8Qc6k163wYPLD4mEGEDkACp+00YmqkGvIm8D/xYoHajwyEdWD/eg== + dependencies: + fast-json-stringify "^5.0.0" + "@float-capital/float-subgraph-uncrashable@^0.0.0-alpha.4": version "0.0.0-internal-testing.4" resolved "https://registry.yarnpkg.com/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.4.tgz#7886b6fc1c75ea5b36d4c953e7150875954b94cf" @@ -4091,7 +4125,7 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== -"@types/node@*", "@types/node@>=13.7.0", "@types/node@^18.11.17", "@types/node@^18.11.9": +"@types/node@*", "@types/node@>=13.7.0", "@types/node@^18.11.17", "@types/node@^18.11.18", "@types/node@^18.11.9": version "18.11.18" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== @@ -4960,6 +4994,11 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: module-error "^1.0.1" queue-microtask "^1.2.3" +abstract-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.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -5129,7 +5168,7 @@ ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.6.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.6.0, ajv@^8.8.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -5281,6 +5320,11 @@ arch@^2.2.0: resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== +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== + arg@5.0.2, arg@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" @@ -5525,6 +5569,11 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +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== + autoprefixer@^10.4.13: version "10.4.13" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" @@ -5542,6 +5591,15 @@ available-typed-arrays@^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.0" + resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.0.tgz#aff28b0266617bf07ffc1c2d5f4220c3663ce1c2" + integrity sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg== + dependencies: + archy "^1.0.0" + debug "^4.0.0" + fastq "^1.6.1" + aws-sdk@^2.1255.0: version "2.1291.0" resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1291.0.tgz#315e64dead4a1222726a55348bb2aa332a1917d4" @@ -7741,7 +7799,7 @@ content-hash@^2.5.2: multicodec "^0.5.5" multihashes "^0.4.15" -content-type@~1.0.4: +content-type@^1.0.4, content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== @@ -7766,7 +7824,7 @@ cookie-signature@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, 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== @@ -8327,7 +8385,7 @@ debug@3.2.6: dependencies: ms "^2.1.1" -debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.0, 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== @@ -10007,7 +10065,7 @@ events@1.1.1: resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== -events@^3.0.0, events@^3.2.0: +events@^3.0.0, events@^3.2.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== @@ -10171,6 +10229,11 @@ eyes@^0.1.8: resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== +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" @@ -10207,11 +10270,35 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-sta 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.0.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.5.0.tgz#6655cb944df8da43f6b15312a9564b81c55dadab" + integrity sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA== + 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" + 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: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.0.tgz#bb645c365db88a3b6433fb6484f7e9e66764cfb9" + integrity sha512-LWkjBCZlxjnSanuPpZ6mHswjy8hQv3VcPJsQB3ltUF2zjvrycr0leP3TSTEEfvQ1WEMSRl5YNsGqaft9bjLqEw== + dependencies: + fast-decode-uri-component "^1.0.1" + +fast-redact@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" + integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== + fast-safe-stringify@^2.0.6: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" @@ -10222,6 +10309,11 @@ fast-stable-stringify@^1.0.0: resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== +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== + 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" @@ -10236,7 +10328,33 @@ fast-xml-parser@^3.17.5: dependencies: strnum "^1.0.4" -fastq@^1.6.0: +fastify-plugin@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.0.tgz#8b853923a0bba6ab6921bb8f35b81224e6988d91" + integrity sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg== + +fastify@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.11.0.tgz#7fa5614c81a618e67a7a467f0f1b33c43f4ff7d2" + integrity sha512-JteZ8pjEqd+6n+azQnQfSJV8MUMxAmxbvC2Dx/Mybj039Lf/u3kda9Kq84uy/huCpqCzZoyHIZS5JFGF3wLztw== + dependencies: + "@fastify/ajv-compiler" "^3.3.1" + "@fastify/error" "^3.0.0" + "@fastify/fast-json-stringify-compiler" "^4.1.0" + abstract-logging "^2.0.1" + avvio "^8.2.0" + content-type "^1.0.4" + find-my-way "^7.3.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 "^10.0.0" + +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== @@ -10333,6 +10451,15 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-my-way@^7.3.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.4.0.tgz#22363e6cd1c466f88883703e169a20c983f9c9cc" + integrity sha512-JFT7eURLU5FumlZ3VBGnveId82cZz7UR7OUu+THQJOwdQXxmS/g8v0KLoFhv97HreycOrmAbqjXD/4VG2j0uMQ== + dependencies: + fast-deep-equal "^3.1.3" + fast-querystring "^1.0.0" + safe-regex2 "^2.0.0" + find-replace@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" @@ -10950,9 +11077,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -14093,6 +14220,15 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" +light-my-request@^5.6.1: + version "5.8.0" + resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.8.0.tgz#93b28615d4cd134b4e2370bcf2ff7e35b51c8d29" + integrity sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg== + dependencies: + cookie "^0.5.0" + process-warning "^2.0.0" + set-cookie-parser "^2.4.1" + lilconfig@2.0.6, lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" @@ -14814,6 +14950,13 @@ mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: dependencies: minimist "^1.2.6" +mnemonist@0.39.5: + version "0.39.5" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.39.5.tgz#5850d9b30d1b2bc57cc8787e5caa40f6c3420477" + integrity sha512-FPUtkhtJ0efmEFGpU14x7jGbTB+s18LrzRL2KgoWz9YvcY3cPomz8tih01GbHwnGk/OmkOKfqd/RAQoc8Lm7DQ== + dependencies: + obliterator "^2.0.1" + mnemonist@^0.38.0: version "0.38.5" resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" @@ -15511,7 +15654,7 @@ object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" -obliterator@^2.0.0: +obliterator@^2.0.0, obliterator@^2.0.1: version "2.0.4" resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== @@ -15528,6 +15671,11 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +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== + on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -15985,6 +16133,36 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== +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== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-std-serializers@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz#307490fd426eefc95e06067e85d8558603e8e844" + integrity sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g== + +pino@^8.5.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.8.0.tgz#1f0d6695a224aa06afc7ad60f2ccc4772d3b9233" + integrity sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ== + 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-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" + thread-stream "^2.0.0" + pirates@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" @@ -16685,6 +16863,11 @@ 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-warning@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.1.0.tgz#1e60e3bfe8183033bbc1e702c2da74f099422d1a" + integrity sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg== + process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -16774,7 +16957,7 @@ protons@^1.0.1: signed-varint "^2.0.1" varint "^5.0.0" -proxy-addr@~2.0.7: +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== @@ -16957,6 +17140,11 @@ queue-microtask@^1.2.2, queue-microtask@^1.2.3: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +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" @@ -17399,6 +17587,16 @@ readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@^2.3.0, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.3.0.tgz#0914d0c72db03b316c9733bb3461d64a3cc50cba" + integrity sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + readable-stream@~1.0.26-4: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -17430,6 +17628,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +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" @@ -17842,6 +18045,11 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +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@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" @@ -17862,7 +18070,7 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfdc@^1.3.0: +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== @@ -18010,6 +18218,13 @@ safe-regex-test@^1.0.0: 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-stable-stringify@^2.3.1: version "2.4.2" resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" @@ -18154,6 +18369,11 @@ secp256k1@^4.0.1, secp256k1@^4.0.3: 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== + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -18301,6 +18521,11 @@ set-blocking@^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.5.1" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz#ddd3e9a566b0e8e0862aca974a6ac0e01349430b" + integrity sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ== + setimmediate@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" @@ -18528,6 +18753,13 @@ solidity-coverage@^0.8.2: shelljs "^0.8.3" web3-utils "^1.3.6" +sonic-boom@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.1.tgz#972ceab831b5840a08a002fa95a672008bda1c38" + integrity sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A== + dependencies: + atomic-sleep "^1.0.0" + source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -18680,6 +18912,11 @@ split2@^3.1.0: dependencies: readable-stream "^3.0.0" +split2@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -19405,6 +19642,13 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" +thread-stream@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.3.0.tgz#4fc07fb39eff32ae7bad803cb7dd9598349fed33" + integrity sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA== + dependencies: + real-require "^0.2.0" + throat@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" @@ -19461,6 +19705,11 @@ tiny-glob@^0.2.9: globalyzer "0.1.0" globrex "^0.1.2" +tiny-lru@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-10.0.1.tgz#aaf5d22207e641ed1b176ac2e616d6cc2fc9ef66" + integrity sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA== + tiny-warning@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" From aee7a065c48a127352faeea583ce3b323c7d54e7 Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Thu, 19 Jan 2023 22:19:32 +0800 Subject: [PATCH 069/216] Feat/subgraph staking (#178) * update KVStore contract * update husky pre commit * add subgraph for staking/slashing * update subgraph * update dependency * fix leader initialization in subgraph * fix kvstore test * fix kvstore test * add staking subgraph test * update staking subgraph and test * update staking subgraph and test * fix subgraph template * fix subgraph test * fix matchstick config * fix subgraph dependency * fix subgraph test * update subgraph schema * fix subgraph test * fix staking subgraph; * fix subgraph test * update staking subgraph test * update contract addresses for subgraph * use goerli for subgraph test --- packages/sdk/typescript/subgraph/.gitignore | 4 +- .../typescript/subgraph/config/goerli.json | 10 + .../typescript/subgraph/config/mumbai.json | 10 + .../sdk/typescript/subgraph/matchstick.yaml | 1 - packages/sdk/typescript/subgraph/package.json | 6 +- .../sdk/typescript/subgraph/schema.graphql | 88 ++ .../subgraph/src/mapping/KVStore.ts | 30 + .../subgraph/src/mapping/Staking.ts | 244 +++++ .../sdk/typescript/subgraph/template.yaml | 55 + .../{test => tests}/escrow/escrow.test.ts | 0 .../{test => tests}/escrow/fixtures.ts | 0 .../subgraph/{test => tests}/hmt/fixtures.ts | 0 .../subgraph/{test => tests}/hmt/hmt.test.ts | 0 .../subgraph/tests/kvstore/fixtures.ts | 30 + .../subgraph/tests/kvstore/kvstore.test.ts | 121 +++ .../subgraph/tests/staking/fixtures.ts | 188 ++++ .../subgraph/tests/staking/staking.test.ts | 916 +++++++++++++++++ .../sdk/typescript/subgraph/tsconfig.json | 2 +- yarn.lock | 973 ++++++++++-------- 19 files changed, 2222 insertions(+), 456 deletions(-) create mode 100644 packages/sdk/typescript/subgraph/src/mapping/KVStore.ts create mode 100644 packages/sdk/typescript/subgraph/src/mapping/Staking.ts rename packages/sdk/typescript/subgraph/{test => tests}/escrow/escrow.test.ts (100%) rename packages/sdk/typescript/subgraph/{test => tests}/escrow/fixtures.ts (100%) rename packages/sdk/typescript/subgraph/{test => tests}/hmt/fixtures.ts (100%) rename packages/sdk/typescript/subgraph/{test => tests}/hmt/hmt.test.ts (100%) create mode 100644 packages/sdk/typescript/subgraph/tests/kvstore/fixtures.ts create mode 100644 packages/sdk/typescript/subgraph/tests/kvstore/kvstore.test.ts create mode 100644 packages/sdk/typescript/subgraph/tests/staking/fixtures.ts create mode 100644 packages/sdk/typescript/subgraph/tests/staking/staking.test.ts diff --git a/packages/sdk/typescript/subgraph/.gitignore b/packages/sdk/typescript/subgraph/.gitignore index b74a7882e0..814a4b37a2 100644 --- a/packages/sdk/typescript/subgraph/.gitignore +++ b/packages/sdk/typescript/subgraph/.gitignore @@ -8,5 +8,5 @@ generated/ subgraph.yaml # Graph test generated -test/.bin -test/.latest.json +tests/.bin +tests/.latest.json diff --git a/packages/sdk/typescript/subgraph/config/goerli.json b/packages/sdk/typescript/subgraph/config/goerli.json index 125ecf4f5f..00056207f8 100644 --- a/packages/sdk/typescript/subgraph/config/goerli.json +++ b/packages/sdk/typescript/subgraph/config/goerli.json @@ -13,5 +13,15 @@ }, "Escrow": { "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" + }, + "Staking": { + "address": "0x115df71Eb07F44Ab0019E98B1383768B8742dB18", + "startBlock": 8326533, + "abi": "./node_modules/@human-protocol/core/abis/Staking.json" + }, + "KVStore": { + "address": "0x4e0cF75c0840c8E9664b257c32BFB760b5ed6ef5", + "startBlock": 8326276, + "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" } } diff --git a/packages/sdk/typescript/subgraph/config/mumbai.json b/packages/sdk/typescript/subgraph/config/mumbai.json index b2b8fa738b..fb2517d478 100644 --- a/packages/sdk/typescript/subgraph/config/mumbai.json +++ b/packages/sdk/typescript/subgraph/config/mumbai.json @@ -13,5 +13,15 @@ }, "Escrow": { "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" + }, + "Staking": { + "address": "0xf421fD3eB97982C205966ebB514Ab2E435c6d5B7", + "startBlock": 31060831, + "abi": "./node_modules/@human-protocol/core/abis/Staking.json" + }, + "KVStore": { + "address": "0x459EE403d060B84b5014605D6739cCFed32AFb96", + "startBlock": 31059244, + "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" } } diff --git a/packages/sdk/typescript/subgraph/matchstick.yaml b/packages/sdk/typescript/subgraph/matchstick.yaml index d497120b78..b6dd695aba 100644 --- a/packages/sdk/typescript/subgraph/matchstick.yaml +++ b/packages/sdk/typescript/subgraph/matchstick.yaml @@ -1,2 +1 @@ libsFolder: ../../../../node_modules -testsFolder: ./test diff --git a/packages/sdk/typescript/subgraph/package.json b/packages/sdk/typescript/subgraph/package.json index 33df352d70..33833a3a08 100644 --- a/packages/sdk/typescript/subgraph/package.json +++ b/packages/sdk/typescript/subgraph/package.json @@ -9,7 +9,7 @@ "generate": "mustache ./config/$NETWORK.json template.yaml > subgraph.yaml && graph codegen", "codegen": "graph codegen", "build": "graph build", - "pretest": "NETWORK=matic yarn generate", + "pretest": "NETWORK=goerli yarn generate", "test": "graph test", "deploy": "graph deploy --node https://api.thegraph.com/deploy/ posix4e/humansubgraph", "quickstart:matic": "NETWORK=matic yarn generate && graph create --node http://localhost:8020/ posix4e/humansubgraph", @@ -35,8 +35,8 @@ ], "license": "MIT", "devDependencies": { - "@graphprotocol/graph-cli": "^0.37.1", - "@graphprotocol/graph-ts": "^0.29.0", + "@graphprotocol/graph-cli": "0.37.1", + "@graphprotocol/graph-ts": "^0.27.0", "@graphql-eslint/eslint-plugin": "^3.13.0", "@human-protocol/core": "workspace:*", "assemblyscript": "^0.25.1", diff --git a/packages/sdk/typescript/subgraph/schema.graphql b/packages/sdk/typescript/subgraph/schema.graphql index 188d49d703..8d803a885b 100644 --- a/packages/sdk/typescript/subgraph/schema.graphql +++ b/packages/sdk/typescript/subgraph/schema.graphql @@ -111,3 +111,91 @@ type EventDayData @entity { dailyPendingEvents: BigInt! dailyEscrowAmounts: BigInt! } + +type LeaderStatistics @entity { + id: ID! + leaders: BigInt! +} + +type Leader @entity { + id: ID! + address: Bytes! + role: String! + amountStaked: BigInt! + amountAllocated: BigInt! + amountLocked: BigInt! + lockedUntilTimestamp: BigInt! + amountWithdrawn: BigInt! + amountSlashed: BigInt! + reputation: BigInt! + amountJobsLaunched: BigInt! +} + +type DataSavedEvent @entity { + id: ID! + leader: Bytes! # address + key: String! + value: String! + block: BigInt! + timestamp: BigInt! + transaction: Bytes! +} + +type StakeDepositedEvent @entity { + id: ID! + staker: Bytes! # address + amount: BigInt! + block: BigInt! + timestamp: BigInt! + transaction: Bytes! +} + +type StakeLockedEvent @entity { + id: ID! + staker: Bytes! # address + amount: BigInt! + lockedUntilTimestamp: BigInt! + block: BigInt! + timestamp: BigInt! + transaction: Bytes! +} + +type StakeWithdrawnEvent @entity { + id: ID! + staker: Bytes! # address + amount: BigInt! + block: BigInt! + timestamp: BigInt! + transaction: Bytes! +} + +type StakeSlashedEvent @entity { + id: ID! + staker: Bytes! # address + amount: BigInt! + escrow: Bytes! # address + slasher: Bytes! # address + block: BigInt! + timestamp: BigInt! + transaction: Bytes! +} + +type StakeAllocatedEvent @entity { + id: ID! + staker: Bytes! # address + amount: BigInt! + escrow: Bytes! # address + block: BigInt! + timestamp: BigInt! + transaction: Bytes! +} + +type AllocationClosedEvent @entity { + id: ID! + staker: Bytes! # address + amount: BigInt! + escrow: Bytes! # address + block: BigInt! + timestamp: BigInt! + transaction: Bytes! +} diff --git a/packages/sdk/typescript/subgraph/src/mapping/KVStore.ts b/packages/sdk/typescript/subgraph/src/mapping/KVStore.ts new file mode 100644 index 0000000000..47527a9773 --- /dev/null +++ b/packages/sdk/typescript/subgraph/src/mapping/KVStore.ts @@ -0,0 +1,30 @@ +import { DataSavedEvent } from '../../generated/schema'; +import { DataSaved } from '../../generated/KVStore/KVStore'; +import { createOrLoadLeader } from './Staking'; + +export function handleDataSaved(event: DataSaved): void { + const id = `${event.transaction.hash.toHex()}-${event.logIndex.toString()}-${ + event.block.timestamp + }`; + + const entity = new DataSavedEvent(id); + + entity.leader = event.params.sender; + entity.key = event.params.key; + entity.value = event.params.value; + + entity.block = event.block.number; + entity.timestamp = event.block.timestamp; + entity.transaction = event.transaction.hash; + + entity.save(); + + // Update leader role, if necessary + if (entity.key === 'role') { + const leaderId = event.params.sender.toHex(); + const leader = createOrLoadLeader(leaderId, event.params.sender); + + leader.role = entity.value; + leader.save(); + } +} diff --git a/packages/sdk/typescript/subgraph/src/mapping/Staking.ts b/packages/sdk/typescript/subgraph/src/mapping/Staking.ts new file mode 100644 index 0000000000..c220a0d912 --- /dev/null +++ b/packages/sdk/typescript/subgraph/src/mapping/Staking.ts @@ -0,0 +1,244 @@ +import { + AllocationClosed, + StakeAllocated, + StakeDeposited, + StakeLocked, + StakeSlashed, + StakeWithdrawn, +} from '../../generated/Staking/Staking'; +import { + AllocationClosedEvent, + Leader, + LeaderStatistics, + StakeAllocatedEvent, + StakeDepositedEvent, + StakeLockedEvent, + StakeSlashedEvent, + StakeWithdrawnEvent, +} from '../../generated/schema'; +import { Address, BigInt } from '@graphprotocol/graph-ts'; + +export const STATISTICS_ENTITY_ID = 'leader-statistics-id'; + +export function constructStatsEntity(): LeaderStatistics { + const entity = new LeaderStatistics(STATISTICS_ENTITY_ID); + + entity.leaders = BigInt.fromI32(0); + + return entity; +} + +export function createOrLoadLeader(id: string, address: Address): Leader { + let leader = Leader.load(id); + + if (!leader) { + leader = new Leader(id); + + leader.address = address; + leader.role = ''; + leader.amountStaked = BigInt.fromI32(0); + leader.amountAllocated = BigInt.fromI32(0); + leader.amountLocked = BigInt.fromI32(0); + leader.lockedUntilTimestamp = BigInt.fromI32(0); + leader.amountSlashed = BigInt.fromI32(0); + leader.amountWithdrawn = BigInt.fromI32(0); + leader.reputation = BigInt.fromI32(0); + leader.amountJobsLaunched = BigInt.fromI32(0); + } + + return leader; +} + +export function handleStakeDeposited(event: StakeDeposited): void { + // Entities can be loaded from the store using a string ID; this ID + // needs to be unique across all entities of the same type + const id = `${event.transaction.hash.toHex()}-${event.logIndex.toString()}-${ + event.block.timestamp + }`; + + const entity = new StakeDepositedEvent(id); + + // Entity fields can be set based on event parameters + entity.staker = event.params.staker; + entity.amount = event.params.tokens; + + entity.block = event.block.number; + entity.timestamp = event.block.timestamp; + entity.transaction = event.transaction.hash; + + entity.save(); + + const leaderId = event.params.staker.toHex(); + const leader = createOrLoadLeader(leaderId, event.params.staker); + + // Increase leader count for new leader + if ( + leader.amountStaked.equals(BigInt.fromI32(0)) && + leader.amountLocked.equals(BigInt.fromI32(0)) && + leader.amountWithdrawn.equals(BigInt.fromI32(0)) + ) { + // Update Leader Statistics + let statsEntity = LeaderStatistics.load(STATISTICS_ENTITY_ID); + + if (!statsEntity) { + statsEntity = constructStatsEntity(); + } + + statsEntity.leaders = statsEntity.leaders.plus(BigInt.fromI32(1)); + + statsEntity.save(); + } + + leader.amountStaked = leader.amountStaked.plus(entity.amount); + + leader.save(); +} + +export function handleStakeLocked(event: StakeLocked): void { + // Entities can be loaded from the store using a string ID; this ID + // needs to be unique across all entities of the same type + const id = `${event.transaction.hash.toHex()}-${event.logIndex.toString()}-${ + event.block.timestamp + }`; + + const entity = new StakeLockedEvent(id); + + // Entity fields can be set based on event parameters + entity.staker = event.params.staker; + entity.amount = event.params.tokens; + entity.lockedUntilTimestamp = event.params.until; + + entity.block = event.block.number; + entity.timestamp = event.block.timestamp; + entity.transaction = event.transaction.hash; + + entity.save(); + + const leaderId = event.params.staker.toHex(); + const leader = createOrLoadLeader(leaderId, event.params.staker); + + leader.amountLocked = entity.amount; + leader.lockedUntilTimestamp = entity.lockedUntilTimestamp; + + leader.save(); +} + +export function handleStakeWithdrawn(event: StakeWithdrawn): void { + // Entities can be loaded from the store using a string ID; this ID + // needs to be unique across all entities of the same type + const id = `${event.transaction.hash.toHex()}-${event.logIndex.toString()}-${ + event.block.timestamp + }`; + + const entity = new StakeWithdrawnEvent(id); + + // Entity fields can be set based on event parameters + entity.staker = event.params.staker; + entity.amount = event.params.tokens; + + entity.block = event.block.number; + entity.timestamp = event.block.timestamp; + entity.transaction = event.transaction.hash; + + entity.save(); + + const leaderId = event.params.staker.toHex(); + const leader = createOrLoadLeader(leaderId, event.params.staker); + + leader.amountLocked = leader.amountLocked.minus(entity.amount); + if (leader.amountLocked.equals(BigInt.fromI32(0))) { + leader.lockedUntilTimestamp = BigInt.fromI32(0); + } + + leader.amountStaked = leader.amountStaked.minus(entity.amount); + leader.amountWithdrawn = leader.amountWithdrawn.plus(entity.amount); + + leader.save(); +} + +export function handleStakeSlashed(event: StakeSlashed): void { + // Entities can be loaded from the store using a string ID; this ID + // needs to be unique across all entities of the same type + const id = `${event.transaction.hash.toHex()}-${event.logIndex.toString()}-${ + event.block.timestamp + }`; + + const entity = new StakeSlashedEvent(id); + + // Entity fields can be set based on event parameters + entity.staker = event.params.staker; + entity.amount = event.params.tokens; + entity.escrow = event.params.escrowAddress; + entity.slasher = event.params.slasher; + + entity.block = event.block.number; + entity.timestamp = event.block.timestamp; + entity.transaction = event.transaction.hash; + + entity.save(); + + const leaderId = event.params.staker.toHex(); + const leader = createOrLoadLeader(leaderId, event.params.staker); + + leader.amountSlashed = leader.amountSlashed.plus(entity.amount); + leader.amountAllocated = leader.amountAllocated.minus(entity.amount); + leader.amountStaked = leader.amountStaked.minus(entity.amount); + + leader.save(); +} + +export function handleStakeAllocated(event: StakeAllocated): void { + // Entities can be loaded from the store using a string ID; this ID + // needs to be unique across all entities of the same type + const id = `${event.transaction.hash.toHex()}-${event.logIndex.toString()}-${ + event.block.timestamp + }`; + + const entity = new StakeAllocatedEvent(id); + + // Entity fields can be set based on event parameters + entity.staker = event.params.staker; + entity.amount = event.params.tokens; + entity.escrow = event.params.escrowAddress; + + entity.block = event.block.number; + entity.timestamp = event.block.timestamp; + entity.transaction = event.transaction.hash; + + entity.save(); + + const leaderId = event.params.staker.toHex(); + const leader = createOrLoadLeader(leaderId, event.params.staker); + + leader.amountAllocated = leader.amountAllocated.plus(entity.amount); + + leader.save(); +} + +export function handleAllocationClosed(event: AllocationClosed): void { + // Entities can be loaded from the store using a string ID; this ID + // needs to be unique across all entities of the same type + const id = `${event.transaction.hash.toHex()}-${event.logIndex.toString()}-${ + event.block.timestamp + }`; + + const entity = new AllocationClosedEvent(id); + + // Entity fields can be set based on event parameters + entity.staker = event.params.staker; + entity.amount = event.params.tokens; + entity.escrow = event.params.escrowAddress; + + entity.block = event.block.number; + entity.timestamp = event.block.timestamp; + entity.transaction = event.transaction.hash; + + entity.save(); + + const leaderId = event.params.staker.toHex(); + const leader = createOrLoadLeader(leaderId, event.params.staker); + + leader.amountAllocated = leader.amountAllocated.minus(entity.amount); + + leader.save(); +} diff --git a/packages/sdk/typescript/subgraph/template.yaml b/packages/sdk/typescript/subgraph/template.yaml index 294f0e11a8..21f63a0778 100644 --- a/packages/sdk/typescript/subgraph/template.yaml +++ b/packages/sdk/typescript/subgraph/template.yaml @@ -52,6 +52,61 @@ dataSources: - event: Transfer(indexed address,indexed address,uint256) handler: handleTransfer file: ./src/mapping/HMToken.ts + - kind: ethereum + name: KVStore + network: '{{ network }}' + source: + abi: KVStore + address: '{{ KVStore.address }}' + startBlock: {{ KVStore.startBlock }} + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - DataSaved + abis: + - name: KVStore + file: '{{{ KVStore.abi }}}' + eventHandlers: + - event: DataSaved(indexed address,string,string) + handler: handleDataSaved + file: ./src/mapping/KVStore.ts + - kind: ethereum + name: Staking + network: '{{ network }}' + source: + abi: Staking + address: '{{ Staking.address }}' + startBlock: {{ Staking.startBlock }} + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - StakeDeposited + - StakeLocked + - StakeWithdrawn + - StakeSlashed + - StakeAllocated + - AllocationClosed + abis: + - name: Staking + file: '{{{ Staking.abi }}}' + eventHandlers: + - event: StakeDeposited(indexed address,uint256) + handler: handleStakeDeposited + - event: StakeLocked(indexed address,uint256,uint256) + handler: handleStakeLocked + - event: StakeWithdrawn(indexed address,uint256) + handler: handleStakeWithdrawn + - event: StakeSlashed(indexed address,uint256,indexed address,address) + handler: handleStakeSlashed + - event: StakeAllocated(indexed address,uint256,indexed address,uint256) + handler: handleStakeAllocated + - event: AllocationClosed(indexed address,uint256,indexed address,uint256) + handler: handleAllocationClosed + file: ./src/mapping/Staking.ts templates: - name: Escrow kind: ethereum/contract diff --git a/packages/sdk/typescript/subgraph/test/escrow/escrow.test.ts b/packages/sdk/typescript/subgraph/tests/escrow/escrow.test.ts similarity index 100% rename from packages/sdk/typescript/subgraph/test/escrow/escrow.test.ts rename to packages/sdk/typescript/subgraph/tests/escrow/escrow.test.ts diff --git a/packages/sdk/typescript/subgraph/test/escrow/fixtures.ts b/packages/sdk/typescript/subgraph/tests/escrow/fixtures.ts similarity index 100% rename from packages/sdk/typescript/subgraph/test/escrow/fixtures.ts rename to packages/sdk/typescript/subgraph/tests/escrow/fixtures.ts diff --git a/packages/sdk/typescript/subgraph/test/hmt/fixtures.ts b/packages/sdk/typescript/subgraph/tests/hmt/fixtures.ts similarity index 100% rename from packages/sdk/typescript/subgraph/test/hmt/fixtures.ts rename to packages/sdk/typescript/subgraph/tests/hmt/fixtures.ts diff --git a/packages/sdk/typescript/subgraph/test/hmt/hmt.test.ts b/packages/sdk/typescript/subgraph/tests/hmt/hmt.test.ts similarity index 100% rename from packages/sdk/typescript/subgraph/test/hmt/hmt.test.ts rename to packages/sdk/typescript/subgraph/tests/hmt/hmt.test.ts diff --git a/packages/sdk/typescript/subgraph/tests/kvstore/fixtures.ts b/packages/sdk/typescript/subgraph/tests/kvstore/fixtures.ts new file mode 100644 index 0000000000..63d175d4b5 --- /dev/null +++ b/packages/sdk/typescript/subgraph/tests/kvstore/fixtures.ts @@ -0,0 +1,30 @@ +import { DataSaved } from '../../generated/KVStore/KVStore'; +import { newMockEvent } from 'matchstick-as/assembly/index'; +import { ethereum, Address, BigInt } from '@graphprotocol/graph-ts'; + +export function createDataSavedEvent( + sender: string, + key: string, + value: string, + timestamp: BigInt +): DataSaved { + const newDataSavedEvent = changetype(newMockEvent()); + + newDataSavedEvent.block.timestamp = timestamp; + + newDataSavedEvent.parameters = []; + newDataSavedEvent.parameters.push( + new ethereum.EventParam( + 'sender', + ethereum.Value.fromAddress(Address.fromString(sender)) + ) + ); + newDataSavedEvent.parameters.push( + new ethereum.EventParam('key', ethereum.Value.fromString(key)) + ); + newDataSavedEvent.parameters.push( + new ethereum.EventParam('value', ethereum.Value.fromString(value)) + ); + + return newDataSavedEvent; +} diff --git a/packages/sdk/typescript/subgraph/tests/kvstore/kvstore.test.ts b/packages/sdk/typescript/subgraph/tests/kvstore/kvstore.test.ts new file mode 100644 index 0000000000..8447127e6a --- /dev/null +++ b/packages/sdk/typescript/subgraph/tests/kvstore/kvstore.test.ts @@ -0,0 +1,121 @@ +import { BigInt } from '@graphprotocol/graph-ts'; +import { describe, test, assert, clearStore } from 'matchstick-as/assembly'; + +import { handleDataSaved } from '../../src/mapping/KVStore'; +import { createDataSavedEvent } from './fixtures'; + +describe('KVStore', () => { + test('Should properly index DataSaved events', () => { + const data1 = createDataSavedEvent( + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6', + 'role', + 'Operator', + BigInt.fromI32(10) + ); + const data2 = createDataSavedEvent( + '0x92a2eEF7Ff696BCef98957a0189872680600a959', + 'role', + 'Validator', + BigInt.fromI32(11) + ); + + handleDataSaved(data1); + handleDataSaved(data2); + + const id1 = `${data1.transaction.hash.toHex()}-${data1.logIndex.toString()}-${ + data1.block.timestamp + }`; + const id2 = `${data2.transaction.hash.toHex()}-${data2.logIndex.toString()}-${ + data2.block.timestamp + }`; + + // Data 1 + assert.fieldEquals( + 'DataSavedEvent', + id1, + 'timestamp', + data1.block.timestamp.toString() + ); + assert.fieldEquals( + 'DataSavedEvent', + id1, + 'block', + data1.block.number.toString() + ); + assert.fieldEquals( + 'DataSavedEvent', + id1, + 'transaction', + data1.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'DataSavedEvent', + id1, + 'leader', + data1.params.sender.toHexString() + ); + assert.fieldEquals('DataSavedEvent', id1, 'key', 'role'); + assert.fieldEquals('DataSavedEvent', id1, 'value', 'Operator'); + + // Data 2 + assert.fieldEquals( + 'DataSavedEvent', + id2, + 'timestamp', + data2.block.timestamp.toString() + ); + assert.fieldEquals( + 'DataSavedEvent', + id2, + 'block', + data2.block.number.toString() + ); + assert.fieldEquals( + 'DataSavedEvent', + id2, + 'transaction', + data2.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'DataSavedEvent', + id2, + 'leader', + data2.params.sender.toHexString() + ); + assert.fieldEquals('DataSavedEvent', id2, 'key', 'role'); + assert.fieldEquals('DataSavedEvent', id2, 'value', 'Validator'); + + clearStore(); + }); + + test('Should properly update leader role', () => { + const data1 = createDataSavedEvent( + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6', + 'role', + 'Operator', + BigInt.fromI32(10) + ); + const data2 = createDataSavedEvent( + '0x92a2eEF7Ff696BCef98957a0189872680600a959', + 'role', + 'Validator', + BigInt.fromI32(11) + ); + + handleDataSaved(data1); + handleDataSaved(data2); + + assert.fieldEquals( + 'Leader', + data1.params.sender.toHexString(), + 'role', + 'Operator' + ); + assert.fieldEquals( + 'Leader', + data2.params.sender.toHexString(), + 'role', + 'Validator' + ); + }); +}); diff --git a/packages/sdk/typescript/subgraph/tests/staking/fixtures.ts b/packages/sdk/typescript/subgraph/tests/staking/fixtures.ts new file mode 100644 index 0000000000..71897b13c6 --- /dev/null +++ b/packages/sdk/typescript/subgraph/tests/staking/fixtures.ts @@ -0,0 +1,188 @@ +import { + AllocationClosed, + StakeAllocated, + StakeDeposited, + StakeLocked, + StakeSlashed, + StakeWithdrawn, +} from '../../generated/Staking/Staking'; +import { newMockEvent } from 'matchstick-as/assembly/index'; +import { ethereum, Address, BigInt } from '@graphprotocol/graph-ts'; + +export function createStakeDepositedEvent( + staker: string, + tokens: i32, + timestamp: BigInt +): StakeDeposited { + const newStakeDepositedEvent = changetype(newMockEvent()); + + newStakeDepositedEvent.block.timestamp = timestamp; + + newStakeDepositedEvent.parameters = []; + newStakeDepositedEvent.parameters.push( + new ethereum.EventParam( + 'staker', + ethereum.Value.fromAddress(Address.fromString(staker)) + ) + ); + newStakeDepositedEvent.parameters.push( + new ethereum.EventParam('tokens', ethereum.Value.fromI32(tokens)) + ); + + return newStakeDepositedEvent; +} + +export function createStakeLockedEvent( + staker: string, + tokens: i32, + until: i32, + timestamp: BigInt +): StakeLocked { + const newStakeLockedEvent = changetype(newMockEvent()); + + newStakeLockedEvent.block.timestamp = timestamp; + + newStakeLockedEvent.parameters = []; + newStakeLockedEvent.parameters.push( + new ethereum.EventParam( + 'staker', + ethereum.Value.fromAddress(Address.fromString(staker)) + ) + ); + newStakeLockedEvent.parameters.push( + new ethereum.EventParam('tokens', ethereum.Value.fromI32(tokens)) + ); + newStakeLockedEvent.parameters.push( + new ethereum.EventParam('until', ethereum.Value.fromI32(until)) + ); + + return newStakeLockedEvent; +} + +export function createStakeWithdrawnEvent( + staker: string, + tokens: i32, + timestamp: BigInt +): StakeWithdrawn { + const newStakeWithdrawnEvent = changetype(newMockEvent()); + + newStakeWithdrawnEvent.block.timestamp = timestamp; + + newStakeWithdrawnEvent.parameters = []; + newStakeWithdrawnEvent.parameters.push( + new ethereum.EventParam( + 'staker', + ethereum.Value.fromAddress(Address.fromString(staker)) + ) + ); + newStakeWithdrawnEvent.parameters.push( + new ethereum.EventParam('tokens', ethereum.Value.fromI32(tokens)) + ); + + return newStakeWithdrawnEvent; +} + +export function createStakeSlashedEvent( + staker: string, + tokens: i32, + escrowAddress: string, + slasher: string, + timestamp: BigInt +): StakeSlashed { + const newStakeSlashedEvent = changetype(newMockEvent()); + + newStakeSlashedEvent.block.timestamp = timestamp; + + newStakeSlashedEvent.parameters = []; + newStakeSlashedEvent.parameters.push( + new ethereum.EventParam( + 'staker', + ethereum.Value.fromAddress(Address.fromString(staker)) + ) + ); + newStakeSlashedEvent.parameters.push( + new ethereum.EventParam('tokens', ethereum.Value.fromI32(tokens)) + ); + newStakeSlashedEvent.parameters.push( + new ethereum.EventParam( + 'escrowAddress', + ethereum.Value.fromAddress(Address.fromString(escrowAddress)) + ) + ); + newStakeSlashedEvent.parameters.push( + new ethereum.EventParam( + 'slasher', + ethereum.Value.fromAddress(Address.fromString(slasher)) + ) + ); + + return newStakeSlashedEvent; +} + +export function createStakeAllocatedEvent( + staker: string, + tokens: i32, + escrowAddress: string, + createdAt: i32, + timestamp: BigInt +): StakeAllocated { + const newStakeAllocatedEvent = changetype(newMockEvent()); + + newStakeAllocatedEvent.block.timestamp = timestamp; + + newStakeAllocatedEvent.parameters = []; + newStakeAllocatedEvent.parameters.push( + new ethereum.EventParam( + 'staker', + ethereum.Value.fromAddress(Address.fromString(staker)) + ) + ); + newStakeAllocatedEvent.parameters.push( + new ethereum.EventParam('tokens', ethereum.Value.fromI32(tokens)) + ); + newStakeAllocatedEvent.parameters.push( + new ethereum.EventParam( + 'escrowAddress', + ethereum.Value.fromAddress(Address.fromString(escrowAddress)) + ) + ); + newStakeAllocatedEvent.parameters.push( + new ethereum.EventParam('createdAt', ethereum.Value.fromI32(createdAt)) + ); + + return newStakeAllocatedEvent; +} + +export function createAllocationClosedEvent( + staker: string, + tokens: i32, + escrowAddress: string, + closedAt: i32, + timestamp: BigInt +): AllocationClosed { + const newAllocationClosedEvent = changetype(newMockEvent()); + + newAllocationClosedEvent.block.timestamp = timestamp; + + newAllocationClosedEvent.parameters = []; + newAllocationClosedEvent.parameters.push( + new ethereum.EventParam( + 'staker', + ethereum.Value.fromAddress(Address.fromString(staker)) + ) + ); + newAllocationClosedEvent.parameters.push( + new ethereum.EventParam('tokens', ethereum.Value.fromI32(tokens)) + ); + newAllocationClosedEvent.parameters.push( + new ethereum.EventParam( + 'escrowAddress', + ethereum.Value.fromAddress(Address.fromString(escrowAddress)) + ) + ); + newAllocationClosedEvent.parameters.push( + new ethereum.EventParam('closedAt', ethereum.Value.fromI32(closedAt)) + ); + + return newAllocationClosedEvent; +} diff --git a/packages/sdk/typescript/subgraph/tests/staking/staking.test.ts b/packages/sdk/typescript/subgraph/tests/staking/staking.test.ts new file mode 100644 index 0000000000..b25e9f8fa8 --- /dev/null +++ b/packages/sdk/typescript/subgraph/tests/staking/staking.test.ts @@ -0,0 +1,916 @@ +import { BigInt } from '@graphprotocol/graph-ts'; +import { describe, test, assert, clearStore } from 'matchstick-as/assembly'; + +import { + handleAllocationClosed, + handleStakeAllocated, + handleStakeDeposited, + handleStakeLocked, + handleStakeSlashed, + handleStakeWithdrawn, + STATISTICS_ENTITY_ID, +} from '../../src/mapping/Staking'; +import { + createAllocationClosedEvent, + createStakeAllocatedEvent, + createStakeDepositedEvent, + createStakeLockedEvent, + createStakeSlashedEvent, + createStakeWithdrawnEvent, +} from './fixtures'; + +describe('Staking', () => { + test('Should properly index StakingDeposited events', () => { + const data1 = createStakeDepositedEvent( + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6', + 100, + BigInt.fromI32(10) + ); + const data2 = createStakeDepositedEvent( + '0x92a2eEF7Ff696BCef98957a0189872680600a959', + 200, + BigInt.fromI32(11) + ); + + handleStakeDeposited(data1); + handleStakeDeposited(data2); + + const id1 = `${data1.transaction.hash.toHex()}-${data1.logIndex.toString()}-${ + data1.block.timestamp + }`; + const id2 = `${data2.transaction.hash.toHex()}-${data2.logIndex.toString()}-${ + data2.block.timestamp + }`; + + // Data 1 + assert.fieldEquals( + 'StakeDepositedEvent', + id1, + 'timestamp', + data1.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeDepositedEvent', + id1, + 'block', + data1.block.number.toString() + ); + assert.fieldEquals( + 'StakeDepositedEvent', + id1, + 'transaction', + data1.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeDepositedEvent', + id1, + 'staker', + data1.params.staker.toHexString() + ); + assert.fieldEquals('StakeDepositedEvent', id1, 'amount', '100'); + + // Data 2 + assert.fieldEquals( + 'StakeDepositedEvent', + id2, + 'timestamp', + data2.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeDepositedEvent', + id2, + 'block', + data2.block.number.toString() + ); + assert.fieldEquals( + 'StakeDepositedEvent', + id2, + 'transaction', + data2.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeDepositedEvent', + id2, + 'staker', + data2.params.staker.toHexString() + ); + assert.fieldEquals('StakeDepositedEvent', id2, 'amount', '200'); + + // Leader statistics + assert.fieldEquals( + 'LeaderStatistics', + STATISTICS_ENTITY_ID, + 'leaders', + '2' + ); + + // Leader + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountStaked', + '100' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountStaked', + '200' + ); + }); + + test('Should properly index StakeLocked events', () => { + const data1 = createStakeLockedEvent( + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6', + 50, + 30, + BigInt.fromI32(20) + ); + const data2 = createStakeLockedEvent( + '0x92a2eEF7Ff696BCef98957a0189872680600a959', + 100, + 31, + BigInt.fromI32(21) + ); + + handleStakeLocked(data1); + handleStakeLocked(data2); + + const id1 = `${data1.transaction.hash.toHex()}-${data1.logIndex.toString()}-${ + data1.block.timestamp + }`; + const id2 = `${data2.transaction.hash.toHex()}-${data2.logIndex.toString()}-${ + data2.block.timestamp + }`; + + // Data 1 + assert.fieldEquals( + 'StakeLockedEvent', + id1, + 'timestamp', + data1.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeLockedEvent', + id1, + 'block', + data1.block.number.toString() + ); + assert.fieldEquals( + 'StakeLockedEvent', + id1, + 'transaction', + data1.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeLockedEvent', + id1, + 'staker', + data1.params.staker.toHexString() + ); + assert.fieldEquals('StakeLockedEvent', id1, 'amount', '50'); + assert.fieldEquals('StakeLockedEvent', id1, 'lockedUntilTimestamp', '30'); + + // Data 2 + assert.fieldEquals( + 'StakeLockedEvent', + id2, + 'timestamp', + data2.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeLockedEvent', + id2, + 'block', + data2.block.number.toString() + ); + assert.fieldEquals( + 'StakeLockedEvent', + id2, + 'transaction', + data2.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeLockedEvent', + id2, + 'staker', + data2.params.staker.toHexString() + ); + assert.fieldEquals('StakeLockedEvent', id2, 'amount', '100'); + assert.fieldEquals('StakeLockedEvent', id2, 'lockedUntilTimestamp', '31'); + + // Leader statistics + assert.fieldEquals( + 'LeaderStatistics', + STATISTICS_ENTITY_ID, + 'leaders', + '2' + ); + + // Leader + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountStaked', + '100' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountLocked', + '50' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'lockedUntilTimestamp', + '30' + ); + + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountStaked', + '200' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountLocked', + '100' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'lockedUntilTimestamp', + '31' + ); + }); + + test('Should properly index StakeWithdrawn events', () => { + const data1 = createStakeWithdrawnEvent( + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6', + 30, + BigInt.fromI32(40) + ); + const data2 = createStakeWithdrawnEvent( + '0x92a2eEF7Ff696BCef98957a0189872680600a959', + 100, + BigInt.fromI32(41) + ); + + handleStakeWithdrawn(data1); + handleStakeWithdrawn(data2); + + const id1 = `${data1.transaction.hash.toHex()}-${data1.logIndex.toString()}-${ + data1.block.timestamp + }`; + const id2 = `${data2.transaction.hash.toHex()}-${data2.logIndex.toString()}-${ + data2.block.timestamp + }`; + + // Data 1 + assert.fieldEquals( + 'StakeWithdrawnEvent', + id1, + 'timestamp', + data1.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeWithdrawnEvent', + id1, + 'block', + data1.block.number.toString() + ); + assert.fieldEquals( + 'StakeWithdrawnEvent', + id1, + 'transaction', + data1.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeWithdrawnEvent', + id1, + 'staker', + data1.params.staker.toHexString() + ); + assert.fieldEquals('StakeWithdrawnEvent', id1, 'amount', '30'); + + // Data 2 + assert.fieldEquals( + 'StakeWithdrawnEvent', + id2, + 'timestamp', + data2.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeWithdrawnEvent', + id2, + 'block', + data2.block.number.toString() + ); + assert.fieldEquals( + 'StakeWithdrawnEvent', + id2, + 'transaction', + data2.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeWithdrawnEvent', + id2, + 'staker', + data2.params.staker.toHexString() + ); + assert.fieldEquals('StakeWithdrawnEvent', id2, 'amount', '100'); + + // Leader statistics + assert.fieldEquals( + 'LeaderStatistics', + STATISTICS_ENTITY_ID, + 'leaders', + '2' + ); + + // Leader + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountStaked', + '70' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountLocked', + '20' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'lockedUntilTimestamp', + '30' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountWithdrawn', + '30' + ); + + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountStaked', + '100' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountLocked', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'lockedUntilTimestamp', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountWithdrawn', + '100' + ); + }); + + test('Should properly index StakeAllocated events', () => { + const data1 = createStakeAllocatedEvent( + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6', + 30, + '0xD979105297fB0eee83F7433fC09279cb5B94fFC7', + 50, + BigInt.fromI32(50) + ); + const data2 = createStakeAllocatedEvent( + '0x92a2eEF7Ff696BCef98957a0189872680600a959', + 50, + '0x92a2eEF7Ff696BCef98957a0189872680600a95A', + 51, + BigInt.fromI32(51) + ); + + handleStakeAllocated(data1); + handleStakeAllocated(data2); + + const id1 = `${data1.transaction.hash.toHex()}-${data1.logIndex.toString()}-${ + data1.block.timestamp + }`; + const id2 = `${data2.transaction.hash.toHex()}-${data2.logIndex.toString()}-${ + data2.block.timestamp + }`; + + // Data 1 + assert.fieldEquals( + 'StakeAllocatedEvent', + id1, + 'timestamp', + data1.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeAllocatedEvent', + id1, + 'block', + data1.block.number.toString() + ); + assert.fieldEquals( + 'StakeAllocatedEvent', + id1, + 'transaction', + data1.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeAllocatedEvent', + id1, + 'staker', + data1.params.staker.toHexString() + ); + assert.fieldEquals('StakeAllocatedEvent', id1, 'amount', '30'); + assert.fieldEquals( + 'StakeAllocatedEvent', + id1, + 'escrow', + data1.params.escrowAddress.toHexString() + ); + + // Data 2 + assert.fieldEquals( + 'StakeAllocatedEvent', + id2, + 'timestamp', + data2.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeAllocatedEvent', + id2, + 'block', + data2.block.number.toString() + ); + assert.fieldEquals( + 'StakeAllocatedEvent', + id2, + 'transaction', + data2.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeAllocatedEvent', + id2, + 'staker', + data2.params.staker.toHexString() + ); + assert.fieldEquals('StakeAllocatedEvent', id2, 'amount', '50'); + assert.fieldEquals( + 'StakeAllocatedEvent', + id2, + 'escrow', + data2.params.escrowAddress.toHexString() + ); + + // Leader statistics + assert.fieldEquals( + 'LeaderStatistics', + STATISTICS_ENTITY_ID, + 'leaders', + '2' + ); + + // Leader + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountStaked', + '70' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountLocked', + '20' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'lockedUntilTimestamp', + '30' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountWithdrawn', + '30' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountAllocated', + '30' + ); + + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountStaked', + '100' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountLocked', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'lockedUntilTimestamp', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountWithdrawn', + '100' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountAllocated', + '50' + ); + }); + + test('Should properly index StakeSlashed events', () => { + const data1 = createStakeSlashedEvent( + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6', + 10, + '0xD979105297fB0eee83F7433fC09279cb5B94fFC7', + '0xD979105297fB0eee83F7433fC09279cb5B94fFC8', + BigInt.fromI32(60) + ); + const data2 = createStakeSlashedEvent( + '0x92a2eEF7Ff696BCef98957a0189872680600a959', + 10, + '0x92a2eEF7Ff696BCef98957a0189872680600a95A', + '0x92a2eEF7Ff696BCef98957a0189872680600a95B', + BigInt.fromI32(61) + ); + + handleStakeSlashed(data1); + handleStakeSlashed(data2); + + const id1 = `${data1.transaction.hash.toHex()}-${data1.logIndex.toString()}-${ + data1.block.timestamp + }`; + const id2 = `${data2.transaction.hash.toHex()}-${data2.logIndex.toString()}-${ + data2.block.timestamp + }`; + + // Data 1 + assert.fieldEquals( + 'StakeSlashedEvent', + id1, + 'timestamp', + data1.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeSlashedEvent', + id1, + 'block', + data1.block.number.toString() + ); + assert.fieldEquals( + 'StakeSlashedEvent', + id1, + 'transaction', + data1.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeSlashedEvent', + id1, + 'staker', + data1.params.staker.toHexString() + ); + assert.fieldEquals('StakeSlashedEvent', id1, 'amount', '10'); + assert.fieldEquals( + 'StakeSlashedEvent', + id1, + 'escrow', + data1.params.escrowAddress.toHexString() + ); + assert.fieldEquals( + 'StakeSlashedEvent', + id1, + 'slasher', + data1.params.slasher.toHexString() + ); + + // Data 2 + assert.fieldEquals( + 'StakeSlashedEvent', + id2, + 'timestamp', + data2.block.timestamp.toString() + ); + assert.fieldEquals( + 'StakeSlashedEvent', + id2, + 'block', + data2.block.number.toString() + ); + assert.fieldEquals( + 'StakeSlashedEvent', + id2, + 'transaction', + data2.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'StakeSlashedEvent', + id2, + 'staker', + data2.params.staker.toHexString() + ); + assert.fieldEquals('StakeSlashedEvent', id2, 'amount', '10'); + assert.fieldEquals( + 'StakeSlashedEvent', + id2, + 'escrow', + data2.params.escrowAddress.toHexString() + ); + assert.fieldEquals( + 'StakeSlashedEvent', + id2, + 'slasher', + data2.params.slasher.toHexString() + ); + + // Leader statistics + assert.fieldEquals( + 'LeaderStatistics', + STATISTICS_ENTITY_ID, + 'leaders', + '2' + ); + + // Leader + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountStaked', + '60' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountLocked', + '20' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'lockedUntilTimestamp', + '30' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountWithdrawn', + '30' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountAllocated', + '20' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountSlashed', + '10' + ); + + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountStaked', + '90' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountLocked', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'lockedUntilTimestamp', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountWithdrawn', + '100' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountAllocated', + '40' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountSlashed', + '10' + ); + }); + + test('Should properly index AllocationClosed events', () => { + const data1 = createAllocationClosedEvent( + '0xD979105297fB0eee83F7433fC09279cb5B94fFC6', + 20, + '0xD979105297fB0eee83F7433fC09279cb5B94fFC7', + 70, + BigInt.fromI32(70) + ); + const data2 = createAllocationClosedEvent( + '0x92a2eEF7Ff696BCef98957a0189872680600a959', + 40, + '0x92a2eEF7Ff696BCef98957a0189872680600a95A', + 71, + BigInt.fromI32(71) + ); + + handleAllocationClosed(data1); + handleAllocationClosed(data2); + + const id1 = `${data1.transaction.hash.toHex()}-${data1.logIndex.toString()}-${ + data1.block.timestamp + }`; + const id2 = `${data2.transaction.hash.toHex()}-${data2.logIndex.toString()}-${ + data2.block.timestamp + }`; + + // Data 1 + assert.fieldEquals( + 'AllocationClosedEvent', + id1, + 'timestamp', + data1.block.timestamp.toString() + ); + assert.fieldEquals( + 'AllocationClosedEvent', + id1, + 'block', + data1.block.number.toString() + ); + assert.fieldEquals( + 'AllocationClosedEvent', + id1, + 'transaction', + data1.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'AllocationClosedEvent', + id1, + 'staker', + data1.params.staker.toHexString() + ); + assert.fieldEquals('AllocationClosedEvent', id1, 'amount', '20'); + assert.fieldEquals( + 'AllocationClosedEvent', + id1, + 'escrow', + data1.params.escrowAddress.toHexString() + ); + + // Data 2 + assert.fieldEquals( + 'AllocationClosedEvent', + id2, + 'timestamp', + data2.block.timestamp.toString() + ); + assert.fieldEquals( + 'AllocationClosedEvent', + id2, + 'block', + data2.block.number.toString() + ); + assert.fieldEquals( + 'AllocationClosedEvent', + id2, + 'transaction', + data2.transaction.hash.toHexString() + ); + assert.fieldEquals( + 'AllocationClosedEvent', + id2, + 'staker', + data2.params.staker.toHexString() + ); + assert.fieldEquals('AllocationClosedEvent', id2, 'amount', '40'); + assert.fieldEquals( + 'AllocationClosedEvent', + id2, + 'escrow', + data2.params.escrowAddress.toHexString() + ); + + // Leader statistics + assert.fieldEquals( + 'LeaderStatistics', + STATISTICS_ENTITY_ID, + 'leaders', + '2' + ); + + // Leader + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountStaked', + '60' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountLocked', + '20' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'lockedUntilTimestamp', + '30' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountWithdrawn', + '30' + ); + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountAllocated', + '0' + ); + + assert.fieldEquals( + 'Leader', + data1.params.staker.toHexString(), + 'amountSlashed', + '10' + ); + + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountStaked', + '90' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountLocked', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'lockedUntilTimestamp', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountWithdrawn', + '100' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountAllocated', + '0' + ); + assert.fieldEquals( + 'Leader', + data2.params.staker.toHexString(), + 'amountSlashed', + '10' + ); + + clearStore(); + }); +}); diff --git a/packages/sdk/typescript/subgraph/tsconfig.json b/packages/sdk/typescript/subgraph/tsconfig.json index 0dfd63c7dc..b84c398f2c 100644 --- a/packages/sdk/typescript/subgraph/tsconfig.json +++ b/packages/sdk/typescript/subgraph/tsconfig.json @@ -4,5 +4,5 @@ "baseUrl": ".", "types": ["@graphprotocol/graph-ts", "node"] }, - "include": ["./src", "./tests"] + "include": ["src", "tests"] } diff --git a/yarn.lock b/yarn.lock index 73219b47d4..0c95f9ccef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,9 +3,9 @@ "@adobe/css-tools@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd" - integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.2.tgz#bd7d13543a186c3ff3eabb44bec2b22e8fb18ee0" + integrity sha512-Fx6tYjk2wKUgLi8uMANZr8GNZx05u44ArIJldn9VxLvolzlJVgHbTUCbwhMd6bcYky178+WUSxPHO3DAtGLWpw== "@ampproject/remapping@^2.1.0": version "2.2.0" @@ -1785,10 +1785,10 @@ graphql-import-node "^0.0.5" js-yaml "^4.1.0" -"@graphprotocol/graph-cli@^0.37.1": - version "0.37.2" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.37.2.tgz#14d3b29e0e57ab2093b3cb42402c8ba5b9c4e557" - integrity sha512-RPHYCRCc62RsscwFpwFT+929lNNoB/FJW+PFaQ+zZaJuauj0x/+npcfIDCb4zAxlQskETqzT5WvWQ9gRK1l66g== +"@graphprotocol/graph-cli@0.37.1": + version "0.37.1" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.37.1.tgz#7532aa7550154238e9469ee79d245db3f9373bc9" + integrity sha512-3liXj1O/4tDOOGRcgs9T9sbz1940APhfnNIusN7L3lWgfUb5G6OyfwDgf/mfma/veoFhvdEyccDwhY4CDLp4jQ== dependencies: "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" assemblyscript "0.19.23" @@ -1824,13 +1824,6 @@ dependencies: assemblyscript "0.19.10" -"@graphprotocol/graph-ts@^0.29.0": - version "0.29.1" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.29.1.tgz#8f8fb6815fc4a7470bb8aff8004f032a2639300b" - integrity sha512-GhAP2ijk3cTM0xBjoAFxEmdZbYl1BueCYqAGw5G7UyBX3EV8FWkvD5DMam6IkLGqXasBmelCFrROK3B5t6zVdg== - dependencies: - assemblyscript "0.19.10" - "@graphql-eslint/eslint-plugin@^3.13.0": version "3.14.3" resolved "https://registry.yarnpkg.com/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.14.3.tgz#ca9d5f2499a4a0c09404ad1ac9a0bfc5a4c767e3" @@ -1848,195 +1841,195 @@ lodash.lowercase "^4.3.0" tslib "^2.4.1" -"@graphql-tools/batch-execute@8.5.14": - version "8.5.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.14.tgz#d241adedc53df534263bfaed9c6fc15c3890bb90" - integrity sha512-m6yXqqmFAH2V5JuSIC/geiGLBQA1Y6RddOJfUtkc9Z7ttkULRCd1W39TpYS6IlrCwYyTj+klO1/kdWiny38f5g== +"@graphql-tools/batch-execute@8.5.15": + version "8.5.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.15.tgz#f61ac71d11e57c9b9f8b8b60fc882e4e9762d182" + integrity sha512-qb12M8XCK6SBJmZDS8Lzd4PVJFsIwNUkYmFuqcTiBqOI/WsoDlQDZI++ghRpGcusLkL9uzcIOTT/61OeHhsaLg== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" dataloader "2.1.0" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" "@graphql-tools/code-file-loader@^7.3.6": - version "7.3.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.15.tgz#3834033e1f58876d6c95248d8eb451d84d600eab" - integrity sha512-cF8VNc/NANTyVSIK8BkD/KSXRF64DvvomuJ0evia7tJu4uGTXgDjimTMWsTjKRGOOBSTEbL6TA8e4DdIYq6Udw== + version "7.3.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.16.tgz#58aa85c250175cebe0ea4309214357768d550f93" + integrity sha512-109UFvQjZEntHwjPaHpWvgUudHenGngbXvSImabPc2fdrtgja5KC0h7thCg379Yw6IORHGrF2XbJwS1hAGPPWw== dependencies: - "@graphql-tools/graphql-tag-pluck" "7.4.2" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/graphql-tag-pluck" "7.4.3" + "@graphql-tools/utils" "9.1.4" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/delegate@9.0.21": - version "9.0.21" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.21.tgz#914d59e6a10457fe1ddcac9270336648cfa8ca58" - integrity sha512-SM8tFeq6ogFGhIxDE82WTS44/3IQ/wz9QksAKT7xWkcICQnyR9U6Qyt+W7VGnHiybqNsVK3kHNNS/i4KGSF85g== +"@graphql-tools/delegate@9.0.22": + version "9.0.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.22.tgz#12f27ef76c5add456fa8797a496bb7dc82071771" + integrity sha512-dWJGMN8V7KORtbI8eDAjHYTWiMyis/md27M6pPhrlYVlcsDk3U0jbNdgkswBBUEBvqumPRCv8pVOxKcLS4caKA== dependencies: - "@graphql-tools/batch-execute" "8.5.14" - "@graphql-tools/executor" "0.0.11" - "@graphql-tools/schema" "9.0.12" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/batch-execute" "8.5.15" + "@graphql-tools/executor" "0.0.12" + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" dataloader "2.1.0" tslib "~2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" -"@graphql-tools/executor-graphql-ws@0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.5.tgz#eb81fb72ef1eb095be1b2d377b846bff6bf6d102" - integrity sha512-1bJfZdSBPCJWz1pJ5g/YHMtGt6YkNRDdmqNQZ8v+VlQTNVfuBpY2vzj15uvf5uDrZLg2MSQThrKlL8av4yFpsA== +"@graphql-tools/executor-graphql-ws@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.6.tgz#34c1e5bc6ac1ff292fd6c4b5490b7906c6dd25c2" + integrity sha512-n6JvIviYO8iiasV/baclimQqNkYGP7JRlkNSnphNG5LULmVpQ2WsyvbgJHV7wtlTZ8ZQ3+dILgQF83PFyLsfdA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" "@repeaterjs/repeater" "3.0.4" "@types/ws" "^8.0.0" graphql-ws "5.11.2" isomorphic-ws "5.0.0" tslib "^2.4.0" - ws "8.11.0" + ws "8.12.0" -"@graphql-tools/executor-http@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.0.8.tgz#ede3f3104f27f2ed8f8a6f8c49eb704785823c99" - integrity sha512-Y0WzbBW2dDm68EqjRO7eaCC38H6mNFUCcy8ivwnv0hon/N4GjQJhrR0cApJh/xqn/YqCY0Sn2ScmdGVuSdaCcA== +"@graphql-tools/executor-http@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.0.tgz#8071343f4d893d9ffc91c0c675230317282f310f" + integrity sha512-HUas+3EIqbw/reNH3NaO8/5Cc61ZxsoIArES55kR6Nq8lS8VWiEpnuXLXBq2THYemmthVdK3eDCKTJLmUFuKdA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" "@repeaterjs/repeater" "3.0.4" - "@whatwg-node/fetch" "0.5.4" + "@whatwg-node/fetch" "0.6.1" dset "3.1.2" extract-files "^11.0.0" meros "1.2.1" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" -"@graphql-tools/executor-legacy-ws@0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.5.tgz#0246d930ed53bc185093bee78fb614473f465d51" - integrity sha512-j2ZQVTI4rKIT41STzLPK206naYDhHxmGHot0siJKBKX1vMqvxtWBqvL66v7xYEOaX79wJrFc8l6oeURQP2LE6g== +"@graphql-tools/executor-legacy-ws@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.6.tgz#236dd5b3d4d19492978b1458b74928e8c69d16ff" + integrity sha512-L1hRuSvBUCNerYDhfeSZXFeqliDlnNXa3fDHTp7efI3Newpbevqa19Fm0mVzsCL7gqIKOwzrPORwh7kOVE/vew== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" "@types/ws" "^8.0.0" isomorphic-ws "5.0.0" tslib "^2.4.0" - ws "8.11.0" + ws "8.12.0" -"@graphql-tools/executor@0.0.11": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.11.tgz#a95823478e8edba05e55fd8ed43aceff7bd04022" - integrity sha512-GjtXW0ZMGZGKad6A1HXFPArkfxE0AIpznusZuQdy4laQx+8Ut3Zx8SAFJNnDfZJ2V5kU29B5Xv3Fr0/DiMBHOQ== +"@graphql-tools/executor@0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.12.tgz#d885c7fa98a8aaeaa771163b71fb98ce9f52f9bd" + integrity sha512-bWpZcYRo81jDoTVONTnxS9dDHhEkNVjxzvFCH4CRpuyzD3uL+5w3MhtxIh24QyWm4LvQ4f+Bz3eMV2xU2I5+FA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" "@graphql-typed-document-node/core" "3.1.1" "@repeaterjs/repeater" "3.0.4" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" "@graphql-tools/graphql-file-loader@^7.3.7": - version "7.5.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.13.tgz#2e60b7e9752334ee030276c9493d411da8a30e43" - integrity sha512-VWFVnw3aB6sykGfpb/Dn3sxQswqvp2FsVwDy8ubH1pgLuxlDuurhHjRHvMG2+p7IaHC7q8T3Vk/rLtZftrwOBQ== + version "7.5.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.14.tgz#6c6527e353cf9adcbda2cdc8a85face03ad8fe04" + integrity sha512-JGer4g57kq4wtsvqv8uZsT4ZG1lLsz1x5yHDfSj2OxyiWw2f1jFkzgby7Ut3H2sseJiQzeeDYZcbm06qgR32pg== dependencies: - "@graphql-tools/import" "6.7.14" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/import" "6.7.15" + "@graphql-tools/utils" "9.1.4" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@7.4.2", "@graphql-tools/graphql-tag-pluck@^7.3.6": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.2.tgz#0e72a142e2fb7e0cb6a86b910e44682772e5d7f1" - integrity sha512-SXM1wR5TExrxocQTxZK5r74jTbg8GxSYLY3mOPCREGz6Fu7PNxMxfguUzGUAB43Mf44Dn8oVztzd2eitv2Qgww== +"@graphql-tools/graphql-tag-pluck@7.4.3", "@graphql-tools/graphql-tag-pluck@^7.3.6": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.3.tgz#b07f2263c383d9605d941c836dc01a7bbc6e56a7" + integrity sha512-w+nrJVQw+NTuaZNQG5AwSh4Qe+urP/s4rUz5s1T007rDnv1kvkiX+XHOCnIfJzXOTuvFmG4GGYw/x0CuSRaGZQ== 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.1.3" + "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" -"@graphql-tools/import@6.7.14": - version "6.7.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.14.tgz#4f3278841217686eed8950db0aa5040bc35f6970" - integrity sha512-lRX/MHM0Km497kg4VXMvtV1DeG/AfPJFO2ovaL0kDujWEdyCsWxsB4whY7nPeiNaPA/nT3mQ8MU7yFzVjogF/Q== +"@graphql-tools/import@6.7.15": + version "6.7.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.15.tgz#7553e48140797255588b26d423a89aa042196928" + integrity sha512-WNhvauAt2I2iUg+JdQK5oQebKLXqUZWe8naP13K1jOkbTQT7hK3P/4I9AaVmzt0KXRJW5Uow3RgdHZ7eUBKVsA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" resolve-from "5.0.0" tslib "^2.4.0" "@graphql-tools/json-file-loader@^7.3.7": - version "7.4.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.14.tgz#a174fc488f35340dcbbcdb0f2b82a57d19b723d0" - integrity sha512-AD9v3rN08wvVqgbrUSiHa8Ztrlk3EgwctcxuNE5qm47zPNL4gLaJ7Tw/KlGOR7Cm+pjlQylJHMUKNfaRLPZ0og== + version "7.4.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.15.tgz#ed229d98784350623d2ef32628690db405fa6780" + integrity sha512-pH+hbsDetcEpj+Tmi7ZRUkxzJez2DLdSQuvK5Qi38FX/Nz/5nZKRfW9nqIptGYbuS9+2JPrt9WWNn1aGtegIFQ== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" "@graphql-tools/load@^7.5.5": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.8.tgz#e55aaca84a9e6348a730d92ba4cb3ec17cee45df" - integrity sha512-gMuQdO2jXmI0BNUc1MafxRQTWVMUtuH500pZAQtOdDdNJppV7lJdY6mMhITQ2qnhYDuMrcZPHhIkcftyQfkgUg== + version "7.8.9" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.9.tgz#5f4e523095b6154bac43e6a01acb6b043e9afaca" + integrity sha512-/eHRv6OCTI/Ir5XcbtSx0XbW3zOQVscp2MZQFGZKDzqCcGD+NVy4mLCoBwR/OsOUpvWAwMnc+Llb4SDKAYGmjQ== dependencies: - "@graphql-tools/schema" "9.0.12" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" p-limit "3.1.0" tslib "^2.4.0" -"@graphql-tools/merge@8.3.14", "@graphql-tools/merge@^8.2.6": - version "8.3.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.14.tgz#d4d0a645656691d35e90e0686a6fa3d4091a34da" - integrity sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA== +"@graphql-tools/merge@8.3.15", "@graphql-tools/merge@^8.2.6": + version "8.3.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.15.tgz#9b24ee5e9c36074684515c7d1587cd3e200c8a8f" + integrity sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA== dependencies: - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" -"@graphql-tools/schema@9.0.12": - version "9.0.12" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.12.tgz#73910fab315bd16098b989db22f967a1dc7f93dd" - integrity sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ== +"@graphql-tools/schema@9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.13.tgz#56b994777df29ac36586a3200fb6397abf7b9d83" + integrity sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg== dependencies: - "@graphql-tools/merge" "8.3.14" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/merge" "8.3.15" + "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" "@graphql-tools/url-loader@^7.9.7": - version "7.16.29" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.29.tgz#86ea852870a3a1b66bcb06143422f2512cecd0ab" - integrity sha512-e7c0rLH4BIaYxOgglHhWbupTn3JZFXYIHXpY+T1CcTF3nQQCaKy8o59+R2AjtEgx3Az1WNahGn4xgkKUxUwCBw== + version "7.17.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.1.tgz#df32e6b84e13603e096e5a9e8fb3b4bd2c2442b9" + integrity sha512-+WZXkg1ZG4fjAB+SkCHLSr7VFZqZAkA/PILcpoPqwAL/wSsrhCHYwbzuWuKn1SGToxJRt7cc+4P0lfR7fq+xhQ== dependencies: "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/delegate" "9.0.21" - "@graphql-tools/executor-graphql-ws" "0.0.5" - "@graphql-tools/executor-http" "0.0.8" - "@graphql-tools/executor-legacy-ws" "0.0.5" - "@graphql-tools/utils" "9.1.3" - "@graphql-tools/wrap" "9.2.23" + "@graphql-tools/delegate" "9.0.22" + "@graphql-tools/executor-graphql-ws" "0.0.6" + "@graphql-tools/executor-http" "0.1.0" + "@graphql-tools/executor-legacy-ws" "0.0.6" + "@graphql-tools/utils" "9.1.4" + "@graphql-tools/wrap" "9.3.0" "@types/ws" "^8.0.0" - "@whatwg-node/fetch" "^0.5.0" + "@whatwg-node/fetch" "^0.6.0" isomorphic-ws "5.0.0" tslib "^2.4.0" value-or-promise "^1.0.11" - ws "8.11.0" + ws "8.12.0" -"@graphql-tools/utils@9.1.3", "@graphql-tools/utils@^9.0.0": - version "9.1.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.1.3.tgz#861f87057b313726136fa6ddfbd2380eae906599" - integrity sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg== +"@graphql-tools/utils@9.1.4", "@graphql-tools/utils@^9.0.0": + version "9.1.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.1.4.tgz#2c9e0aefc9655dd73247667befe3c850ec014f3f" + integrity sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg== dependencies: tslib "^2.4.0" -"@graphql-tools/wrap@9.2.23": - version "9.2.23" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.23.tgz#fb008d8d7b493aeb6b6b0821dff45c0129aed2eb" - integrity sha512-R+ar8lHdSnRQtfvkwQMOkBRlYLcBPdmFzZPiAj+tL9Nii4VNr4Oub37jcHiPBvRZSdKa9FHcKq5kKSQcbg1xuQ== +"@graphql-tools/wrap@9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.0.tgz#6dbafdef0b7eb34e0efa9698159a425106cae04e" + integrity sha512-QOEg04kzFJ1WrlA2t/qjw85C20qPDJwIU/d+bDgDd1+cjTQcVrEt9bq9NilZZg9m9AAgZbeyDwut0oQvNMCGhw== dependencies: - "@graphql-tools/delegate" "9.0.21" - "@graphql-tools/schema" "9.0.12" - "@graphql-tools/utils" "9.1.3" + "@graphql-tools/delegate" "9.0.22" + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" - value-or-promise "1.0.11" + value-or-promise "1.0.12" "@graphql-typed-document-node/core@3.1.1": version "3.1.1" @@ -2049,9 +2042,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.27" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.27.tgz#5c8029a16ce0d38996eb082a9655692aed49bf69" - integrity sha512-C0xIGzy1KEi5+T3jTcCyj1VGLnO1lmO7KHzNXCafKclP4EPf2cyOCb6wJnGefhclf5WPlJR8z1ulkxeP6OpVgQ== + version "1.0.31" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.31.tgz#2cbbeacb65191b9540772dc4114dbb2ed4db7b54" + integrity sha512-gsm4hiDhoMRwhR2o6mcFX4vwQwu8lELCudJ1xo6/kH5PSNVhfKPCS2EkN3b5ujBpE9zwH7zItGHtp4If1UXf3w== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -2741,9 +2734,9 @@ react-is "^18.2.0" "@mui/x-data-grid@^5.17.4": - version "5.17.18" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.18.tgz#1d49aa098aa93fd027720f4db270d1971d2f1d5b" - integrity sha512-0hWExrABXA03HQZoY/EaN6jiFMXdQWs7Y+3xtngiRzGQQl6kmLz1IjdKpNuwuc2g3xphnCpz9WSqTxVhJqdmAw== + version "5.17.19" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.19.tgz#fe241f8e387fa8bb2ae0be9d477255755d571b7d" + integrity sha512-mVp2ZvPKMlVuTx8dYRv7yjRCFNGLQ6XK4c8uiGmC5NsbX58oGe3M3UH2/OLSCeOEUmcNLvZ8TH0HT306VfmW4g== dependencies: "@babel/runtime" "^7.18.9" "@mui/utils" "^5.10.3" @@ -2957,9 +2950,9 @@ ordinal "^1.0.3" "@nomicfoundation/hardhat-toolbox@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.0.tgz#7f86e35c380babb8f26440b7f9a92d7febc1a8ac" - integrity sha512-BoOPbzLQ1GArnBZd4Jz4IU8FY3RY4nUwpXlfymXwxlXNimngkPRJj7ivVNurD7igohEjf90v/Axn2M5WwAdCJQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.1.tgz#3d8c620a54df2c0086c9109fb0f987bf29329deb" + integrity sha512-/pr8m9xlqiNlq6fXv4hEPNwdNwUhysoB2qbDCKqERfPpq34EydUQTC3Vis4aIea8RLwSrU8sDXFdv4TQxYstKw== "@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.0": version "0.1.0" @@ -3028,14 +3021,14 @@ "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.0" "@nomiclabs/hardhat-ethers@^2.1.1", "@nomiclabs/hardhat-ethers@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.1.tgz#8057b43566a0e41abeb8142064a3c0d3f23dca86" - integrity sha512-RHWYwnxryWR8hzRmU4Jm/q4gzvXpetUOJ4OPlwH2YARcDB+j79+yAYCwO0lN1SUOb4++oOTJEe6AWLEc42LIvg== + version "2.2.2" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.2.tgz#812d48929c3bf8fe840ec29eab4b613693467679" + integrity sha512-NLDlDFL2us07C0jB/9wzvR0kuLivChJWCXTKcj3yqjZqMoYp7g7wwS157F70VHx/+9gHIBGzak5pKDwG8gEefA== "@nomiclabs/hardhat-etherscan@^3.1.2": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.4.tgz#970e57fabc6060489c93b3f646ca790db36ffee0" - integrity sha512-fw8JCfukf6MdIGoySRmSftlM2wBgoaSbWQZgiYfD/KTeaSFEWCdMpuPZcLSBXtwtnQyyWDs07Lo7fL8HSqtD2Q== + version "3.1.5" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.5.tgz#24f3f3272d3c79acdc933b557810ca85caef0fee" + integrity sha512-PxPX28AGBAlxgXLU27NB3oiMsklxbNhM75SDC4v1QPCyPeAxGm4xV0WpYbR10W7sxY2WF3Ek7u7GhjbQWa2Fcg== dependencies: "@ethersproject/abi" "^5.1.2" "@ethersproject/address" "^5.0.2" @@ -3046,17 +3039,17 @@ lodash "^4.17.11" semver "^6.3.0" table "^6.8.0" - undici "^5.4.0" + undici "^5.14.0" "@openzeppelin/contracts-upgradeable@^4.8.0": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.0.tgz#26688982f46969018e3ed3199e72a07c8d114275" - integrity sha512-5GeFgqMiDlqGT8EdORadp1ntGF0qzWZLmEY7Wbp/yVhN7/B3NNzCxujuI77ktlyG81N3CUZP8cZe3ZAQ/cW10w== + version "4.8.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.1.tgz#363f7dd08f25f8f77e16d374350c3d6b43340a7a" + integrity sha512-1wTv+20lNiC0R07jyIAbHU7TNHKRwGiTGRfiNnA8jOWjKT98g5OgLpYWOi40Vgpk8SPLA9EvfJAbAeIyVn+7Bw== "@openzeppelin/contracts@^4.8.0": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.8.0.tgz#6854c37df205dd2c056bdfa1b853f5d732109109" - integrity sha512-AGuwhRRL+NaKx73WKRNzeCxOCOCxpaqF+kp8TJ89QzAipSwZy/NoflkWaL9bywXFRhIzXt8j38sfF7KBKCPWLw== + version "4.8.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.8.1.tgz#709cfc4bbb3ca9f4460d60101f15dac6b7a2d5e4" + integrity sha512-xQ6eUZl+RDyb/FiZe1h+U7qr/f4p/SrTSQcTPH2bjur3C5DbuW/zFgCU/b1P/xcIaEqJep+9ju4xDRi3rmChdQ== "@openzeppelin/hardhat-upgrades@^1.22.0": version "1.22.0" @@ -3594,9 +3587,9 @@ use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.4.1.tgz#1dee0f28de8351caa33c32c9b44ba1c6d654811c" - integrity sha512-kdzuAIvsTsgCsw0SCOD+E5OkNFB+LM/LUgtyEInNyJVlCrD3LYjtY/iArvpva4+TxY8GYKv3aRBKumaItyYNow== + version "1.5.2" + resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.2.tgz#0a5a9df50e0430097c58fcb9ae6e40981bd4b2e9" + integrity sha512-qITow77BqF88lUCz+9OL5eanAdCNXRN/9IeU1GwtJ2NmR7e8o9qgz1XYTTQUVmtqnqcZzf3jT0nwlqKUGRimqw== dependencies: "@ethersproject/bignumber" "^5.7.0" "@nomiclabs/hardhat-ethers" "^2.1.1" @@ -3606,13 +3599,13 @@ hardhat "^2.10.2" hardhat-deploy "^0.11.14" js-yaml "^4.1.0" - tenderly "^0.2.0" + tenderly "^0.3.0" tslog "^4.3.1" "@testing-library/dom@^8.5.0": - version "8.19.1" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.19.1.tgz#0e2dafd281dedb930bb235eac1045470b4129d0e" - integrity sha512-P6iIPyYQ+qH8CvGauAqanhVnjrnRe0IZFSYCeGkSRW9q3u8bdVn2NPI+lasFyVsEQn1J/IFmp5Aax41+dAP9wg== + version "8.20.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.0.tgz#914aa862cef0f5e89b98cc48e3445c4c921010f6" + integrity sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -3850,41 +3843,56 @@ dependencies: "@types/node" "*" -"@types/d3-color@^2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-2.0.3.tgz#8bc4589073c80e33d126345542f588056511fe82" - integrity sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w== +"@types/d3-array@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.4.tgz#44eebe40be57476cad6a0cd6a85b0f57d54185a2" + integrity sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ== -"@types/d3-interpolate@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-2.0.2.tgz#78eddf7278b19e48e8652603045528d46897aba0" - integrity sha512-lElyqlUfIPyWG/cD475vl6msPL4aMU7eJvx1//Q177L8mdXoVPFl1djIESF2FKnc0NyaHvQlJpWwKJYwAhUoCw== +"@types/d3-color@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.0.tgz#6594da178ded6c7c3842f3cc0ac84b156f12f2d4" + integrity sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA== + +"@types/d3-ease@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.0.tgz#c29926f8b596f9dadaeca062a32a45365681eae0" + integrity sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA== + +"@types/d3-interpolate@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz#e7d17fa4a5830ad56fe22ce3b4fac8541a9572dc" + integrity sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw== dependencies: - "@types/d3-color" "^2" + "@types/d3-color" "*" -"@types/d3-path@^2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-2.0.2.tgz#6052f38f6186319769dfabab61b5514b0e02c75c" - integrity sha512-3YHpvDw9LzONaJzejXLOwZ3LqwwkoXb9LI2YN7Hbd6pkGo5nIlJ09ul4bQhBN4hQZJKmUpX8HkVqbzgUKY48cg== +"@types/d3-path@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.0.0.tgz#939e3a784ae4f80b1fde8098b91af1776ff1312b" + integrity sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg== -"@types/d3-scale@^3.0.0": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-3.3.2.tgz#18c94e90f4f1c6b1ee14a70f14bfca2bd1c61d06" - integrity sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ== +"@types/d3-scale@^4.0.2": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.3.tgz#7a5780e934e52b6f63ad9c24b105e33dd58102b5" + integrity sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ== dependencies: - "@types/d3-time" "^2" + "@types/d3-time" "*" -"@types/d3-shape@^2.0.0": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-2.1.3.tgz#35d397b9e687abaa0de82343b250b9897b8cacf3" - integrity sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ== +"@types/d3-shape@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.1.tgz#15cc497751dac31192d7aef4e67a8d2c62354b95" + integrity sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A== dependencies: - "@types/d3-path" "^2" + "@types/d3-path" "*" -"@types/d3-time@^2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-2.1.1.tgz#743fdc821c81f86537cbfece07093ac39b4bc342" - integrity sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg== +"@types/d3-time@*", "@types/d3-time@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.0.tgz#e1ac0f3e9e195135361fa1a1d62f795d87e6e819" + integrity sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg== + +"@types/d3-timer@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.0.tgz#e2505f1c21ec08bda8915238e397fb71d2fc54ce" + integrity sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g== "@types/eslint-scope@^3.7.3": version "3.7.4" @@ -4324,13 +4332,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.43.0", "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.1.tgz#deee67e399f2cb6b4608c935777110e509d8018c" - integrity sha512-9nY5K1Rp2ppmpb9s9S2aBiF3xo5uExCehMDmYmmFqqyxgenbHJ3qbarcLt4ITgaD6r/2ypdlcFRdcuVPnks+fQ== + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz#112e6ae1e23a1dc8333ce82bb9c65c2608b4d8a3" + integrity sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg== dependencies: - "@typescript-eslint/scope-manager" "5.48.1" - "@typescript-eslint/type-utils" "5.48.1" - "@typescript-eslint/utils" "5.48.1" + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/type-utils" "5.48.2" + "@typescript-eslint/utils" "5.48.2" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -4339,78 +4347,78 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.1.tgz#5951c0b7ef4b0838ea95f25d53385de0e366e0b8" - integrity sha512-8OoIZZuOeqsm5cxn2f01qHWtVC3M4iixSsfZXPiQUg4Sl4LiU+b5epcJFwxNfqeoLl+SGncELyi3x99zI6C0ng== + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.2.tgz#04057cd6e96d225a6ed10e6881086add6c230781" + integrity sha512-Iwx8De8dwl6qPaPZWIaEfP1feN/YFlA5FlCxF3zUIm+2AG92C5Tefkugj2L9ytOFrmTYkTE/CqvJFZbYoVZQMg== dependencies: - "@typescript-eslint/utils" "5.48.1" + "@typescript-eslint/utils" "5.48.2" "@typescript-eslint/parser@^5.43.0", "@typescript-eslint/parser@^5.5.0": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.1.tgz#d0125792dab7e232035434ab8ef0658154db2f10" - integrity sha512-4yg+FJR/V1M9Xoq56SF9Iygqm+r5LMXvheo6DQ7/yUWynQ4YfCRnsKuRgqH4EQ5Ya76rVwlEpw4Xu+TgWQUcdA== + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3" + integrity sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw== dependencies: - "@typescript-eslint/scope-manager" "5.48.1" - "@typescript-eslint/types" "5.48.1" - "@typescript-eslint/typescript-estree" "5.48.1" + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/typescript-estree" "5.48.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.1.tgz#39c71e4de639f5fe08b988005beaaf6d79f9d64d" - integrity sha512-S035ueRrbxRMKvSTv9vJKIWgr86BD8s3RqoRZmsSh/s8HhIs90g6UlK8ZabUSjUZQkhVxt7nmZ63VJ9dcZhtDQ== +"@typescript-eslint/scope-manager@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc" + integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw== dependencies: - "@typescript-eslint/types" "5.48.1" - "@typescript-eslint/visitor-keys" "5.48.1" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/visitor-keys" "5.48.2" -"@typescript-eslint/type-utils@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.1.tgz#5d94ac0c269a81a91ad77c03407cea2caf481412" - integrity sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ== +"@typescript-eslint/type-utils@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7" + integrity sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew== dependencies: - "@typescript-eslint/typescript-estree" "5.48.1" - "@typescript-eslint/utils" "5.48.1" + "@typescript-eslint/typescript-estree" "5.48.2" + "@typescript-eslint/utils" "5.48.2" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.1.tgz#efd1913a9aaf67caf8a6e6779fd53e14e8587e14" - integrity sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg== +"@typescript-eslint/types@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e" + integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA== -"@typescript-eslint/typescript-estree@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.1.tgz#9efa8ee2aa471c6ab62e649f6e64d8d121bc2056" - integrity sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA== +"@typescript-eslint/typescript-estree@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0" + integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg== dependencies: - "@typescript-eslint/types" "5.48.1" - "@typescript-eslint/visitor-keys" "5.48.1" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/visitor-keys" "5.48.2" 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.48.1", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.1.tgz#20f2f4e88e9e2a0961cbebcb47a1f0f7da7ba7f9" - integrity sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA== +"@typescript-eslint/utils@5.48.2", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3" + integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.48.1" - "@typescript-eslint/types" "5.48.1" - "@typescript-eslint/typescript-estree" "5.48.1" + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/typescript-estree" "5.48.2" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.1.tgz#79fd4fb9996023ef86849bf6f904f33eb6c8fccb" - integrity sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA== +"@typescript-eslint/visitor-keys@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060" + integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ== dependencies: - "@typescript-eslint/types" "5.48.1" + "@typescript-eslint/types" "5.48.2" eslint-visitor-keys "^3.3.0" "@vanilla-extract/css@1.9.1": @@ -4447,26 +4455,26 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@5.7.4": - version "5.7.4" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.7.4.tgz#77027cd943af5ad6bd9d5d599f8fd6995f18e42d" - integrity sha512-QesfcJ2LaD0tgouOI5XqF90WU5Byy5dg8ez3lttwQBkg1Lw7zuawhVYZJdoAL/GlZruvQzlpS/tUvUmUzrPOzQ== +"@vercel/build-utils@5.8.3": + version "5.8.3" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.8.3.tgz#6c4e005ed8be08db8bdf52f31167839c54e82438" + integrity sha512-t9IdZjTh65NnYvVMQfGIVXaYSBkSxuBSJHdrwy8FbSD0WB0OiRLg3sXJpKIl36M5E7IRsx29qgiw3qXEhoObtg== -"@vercel/node-bridge@3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-3.1.3.tgz#7c8d83e18a4cb327def776810df182ecb148fbc0" - integrity sha512-NIuiwktIsvCWZ7aToQ4sFWNYKQbojghJ2OobjTL14nj25cuxP3XsV8LkMarIsiWG/vQxiSADBLwr/7fOh8znGg== +"@vercel/node-bridge@3.1.8": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-3.1.8.tgz#ff0205f69e7640b703a99f3660b72113339c6f63" + integrity sha512-zF4lUQLq2uqCUl1vm9KITK/rOVPeCCuSle5skqVi4ybQDaXaHpumBT7NovuOD5ls4AJxqVcyiOOheRT4f/le3A== "@vercel/node@^2.5.26": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.5.tgz#d74fae9a4906efbb860d217a6043d9d9dc79585f" - integrity sha512-DOPrEGJIO2mypOR/D1EFwsLMMPtAQOUMDGRjr4LhHK+yqyPiDcupTzC3RosqncINzc4Abptke2iqiEmlRC0iYw== + version "2.8.11" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.11.tgz#f4b9cb0c05f0aa0efea7caa3b06d0020d2f866b1" + integrity sha512-XYkyNe+C+FIDc2TnlZxyS7cc0PbwGvuK3AFU75KaB898UUnOueEki2i0s8dokG1M9T3dT2QnbozyZ0anxT8jlQ== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "5.7.4" - "@vercel/node-bridge" "3.1.3" - "@vercel/static-config" "2.0.6" + "@vercel/build-utils" "5.8.3" + "@vercel/node-bridge" "3.1.8" + "@vercel/static-config" "2.0.11" edge-runtime "2.0.0" esbuild "0.14.47" exit-hook "2.2.1" @@ -4474,10 +4482,10 @@ ts-node "10.9.1" typescript "4.3.4" -"@vercel/static-config@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@vercel/static-config/-/static-config-2.0.6.tgz#9e963eaf9eeebb28d729c963039bb9caf617ae4b" - integrity sha512-P0kh9ZBA9RrP4u0pDENxsuU/PAOw/ph+CoGgS5ZfDNa7P0qYhi9TfgVAtjFnGxi0dImq/S49uTVW5NPYWwc+ww== +"@vercel/static-config@2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@vercel/static-config/-/static-config-2.0.11.tgz#5d210e62479f1a847028f5b50ac18bccf8732585" + integrity sha512-dw6CAJ7U2AcQpjZV9YfOyz2wTseSFdkT3qivBg2GjHtVyd5wdY7vkQ9seLKEckYhFx3CjQ29IhzhDND9F5oINw== dependencies: ajv "8.6.3" json-schema-to-ts "1.6.4" @@ -4870,10 +4878,25 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@whatwg-node/fetch@0.5.4", "@whatwg-node/fetch@^0.5.0": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.5.4.tgz#ef7c409078fc4a5087415043f87c9d9589cda8d6" - integrity sha512-dR5PCzvOeS7OaW6dpIlPt+Ou3pak7IEG+ZVAV26ltcaiDB3+IpuvjqRdhsY6FKHcqBo1qD+S99WXY9Z6+9Rwnw== +"@whatwg-node/fetch@0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.1.tgz#802a3e71ade25c04211efc2f1520a25a8829924f" + integrity sha512-sG39WLvcJxGZ+gDstnLSXR2IcnuvIOB51KxCFo0mEhFW0q2u8fZgolr0HPkL+zXwOJsnmT+9V3IRcqLnTXdqVQ== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + abort-controller "^3.0.0" + busboy "^1.6.0" + form-data-encoder "^1.7.1" + formdata-node "^4.3.1" + node-fetch "^2.6.7" + undici "^5.12.0" + urlpattern-polyfill "^6.0.2" + web-streams-polyfill "^3.2.0" + +"@whatwg-node/fetch@^0.6.0": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.2.tgz#fe4837505f6fc91bcfd6e12cdcec66f4aecfeecc" + integrity sha512-fCUycF1W+bI6XzwJFnbdDuxIldfKM3w8+AzVCLGlucm0D+AQ8ZMm2j84hdcIhfV6ZdE4Y1HFVrHosAxdDZ+nPw== dependencies: "@peculiar/webcrypto" "^1.4.0" abort-controller "^3.0.0" @@ -4882,6 +4905,7 @@ formdata-node "^4.3.1" node-fetch "^2.6.7" undici "^5.12.0" + urlpattern-polyfill "^6.0.2" web-streams-polyfill "^3.2.0" "@xtuc/ieee754@^1.2.0": @@ -5330,7 +5354,7 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: +array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== @@ -5351,7 +5375,7 @@ array-uniq@1.0.3: resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== -array.prototype.flat@^1.2.5: +array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== @@ -5543,9 +5567,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1291.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1291.0.tgz#315e64dead4a1222726a55348bb2aa332a1917d4" - integrity sha512-iM82Md2Wb29MZ72BpNF4YeIHtkJTyw+JMGXJG48Dwois2Rq7rLcriX6NN/4Fx4b5EEtUkwAO/wJc+NTHI7QeJw== + version "2.1295.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1295.0.tgz#8ca19c5b9c7740e1f6ad95096feddcd7ca3df301" + integrity sha512-HVYoFCyfiL8gzL/c0lSRTg8tWBLfqAEDfwzGe338ww/LahpmC6C07S71SBBIvtGq3dpd7IwEobAbubZDijrA0Q== dependencies: buffer "4.9.2" events "1.1.1" @@ -6681,9 +6705,9 @@ body-parser@1.20.1, body-parser@^1.16.0: unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.0.14" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7" - integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.0.tgz#424170268d68af26ff83a5c640b95def01803a13" + integrity sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" @@ -6778,7 +6802,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.2, browser-readablestream-to-it@^1.0.3: +browser-readablestream-to-it@^1.0.0, browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.2, 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== @@ -7076,9 +7100,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001442" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz#40337f1cf3be7c637b061e2f78582dc1daec0614" - integrity sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow== + version "1.0.30001445" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz#cf2d4eb93f2bcdf0310de9dd6d18be271bc0b447" + integrity sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg== carbites@^1.0.6: version "1.0.6" @@ -8189,66 +8213,76 @@ csstype@^3.0.2, csstype@^3.0.7, csstype@^3.1.1: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== -d3-array@2, d3-array@^2.3.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" - integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== +"d3-array@2 - 3", "d3-array@2.10.0 - 3", d3-array@^3.1.6: + version "3.2.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.1.tgz#39331ea706f5709417d31bbb6ec152e0328b39b3" + integrity sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ== dependencies: - internmap "^1.0.0" + internmap "1 - 2" -"d3-color@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" - integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== +"d3-color@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== -"d3-format@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" - integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== +d3-ease@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== -"d3-interpolate@1.2.0 - 2", d3-interpolate@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" - integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== +"d3-format@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +"d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== dependencies: - d3-color "1 - 2" + d3-color "1 - 3" -"d3-path@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8" - integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== +d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== -d3-scale@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" - integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== +d3-scale@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== dependencies: - d3-array "^2.3.0" - d3-format "1 - 2" - d3-interpolate "1.2.0 - 2" - d3-time "^2.1.1" - d3-time-format "2 - 3" + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" -d3-shape@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.1.0.tgz#3b6a82ccafbc45de55b57fcf956c584ded3b666f" - integrity sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA== +d3-shape@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== dependencies: - d3-path "1 - 2" + d3-path "^3.1.0" -"d3-time-format@2 - 3": - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" - integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== +"d3-time-format@2 - 4": + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== dependencies: - d3-time "1 - 2" + d3-time "1 - 3" -"d3-time@1 - 2", d3-time@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682" - integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ== +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== dependencies: - d3-array "2" + d3-array "2 - 3" + +d3-timer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== d@1, d@^1.0.1: version "1.0.1" @@ -9071,12 +9105,13 @@ error-stack-parser@^2.0.6: stackframe "^1.3.4" es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.0.tgz#dd1b69ea5bfc3c27199c9753efd4de015102c252" - integrity sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g== + version "1.21.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" + integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== dependencies: + available-typed-arrays "^1.0.5" call-bind "^1.0.2" - es-set-tostringtag "^2.0.0" + es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" @@ -9089,7 +9124,7 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: has-proto "^1.0.1" has-symbols "^1.0.3" internal-slot "^1.0.4" - is-array-buffer "^3.0.0" + is-array-buffer "^3.0.1" is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" @@ -9114,25 +9149,26 @@ es-array-method-boxes-properly@^1.0.0: integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-get-iterator@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" - integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.1.0" - has-symbols "^1.0.1" - is-arguments "^1.1.0" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" is-map "^2.0.2" is-set "^2.0.2" - is-string "^1.0.5" + is-string "^1.0.7" isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== -es-set-tostringtag@^2.0.0: +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== @@ -9419,18 +9455,19 @@ eslint-config-react-app@^7.0.1: eslint-plugin-react-hooks "^4.3.0" eslint-plugin-testing-library "^5.0.1" -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.11.0" + resolve "^1.22.1" eslint-import-resolver-typescript@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.2.tgz#9431acded7d898fd94591a08ea9eec3514c7de91" - integrity sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz#db5ed9e906651b7a59dd84870aaef0e78c663a05" + integrity sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ== dependencies: debug "^4.3.4" enhanced-resolve "^5.10.0" @@ -9440,7 +9477,7 @@ eslint-import-resolver-typescript@^3.5.2: is-glob "^4.0.3" synckit "^0.8.4" -eslint-module-utils@^2.7.3: +eslint-module-utils@^2.7.4: version "2.7.4" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== @@ -9456,22 +9493,24 @@ eslint-plugin-flowtype@^8.0.3: string-natural-compare "^3.0.1" eslint-plugin-import@^2.25.3, eslint-plugin-import@^2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" has "^1.0.3" - is-core-module "^2.8.1" + is-core-module "^2.11.0" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" tsconfig-paths "^3.14.1" eslint-plugin-jest@^25.3.0: @@ -9489,9 +9528,9 @@ eslint-plugin-jest@^27.1.5: "@typescript-eslint/utils" "^5.10.0" eslint-plugin-jsx-a11y@^6.5.1: - version "6.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.0.tgz#b7a8ced4a427bb54eab050fc2a59e31938a16445" - integrity sha512-EGGRKhzejSzXKtjmEjWNtr4SK/DkMkSzkBH7g7e7moBDXZXrqaUIxkmD7uF93upMysc4dKYEJwupu7Dff+ShwA== + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== dependencies: "@babel/runtime" "^7.20.7" aria-query "^5.1.3" @@ -9523,9 +9562,9 @@ eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.6.0: integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.10: - version "7.31.11" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8" - integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== + version "7.32.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200" + integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -9539,7 +9578,7 @@ eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.10: object.hasown "^1.1.2" object.values "^1.1.6" prop-types "^15.8.1" - resolve "^2.0.0-next.3" + resolve "^2.0.0-next.4" semver "^6.3.0" string.prototype.matchall "^4.0.8" @@ -9595,9 +9634,9 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.27.0, eslint@^8.3.0: - version "8.31.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" - integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== + version "8.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861" + integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ== dependencies: "@eslint/eslintrc" "^1.4.1" "@humanwhocodes/config-array" "^0.11.8" @@ -10691,7 +10730,7 @@ get-func-name@^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-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== @@ -11163,9 +11202,9 @@ hardhat-abi-exporter@^2.10.1: delete-empty "^3.0.0" hardhat-contract-sizer@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.6.1.tgz#2b0046a55fa1ec96f19fdab7fde372377401c874" - integrity sha512-b8wS7DBvyo22kmVwpzstAQTdDCThpl/ySBqZh5ga9Yxjf61/uTL12TEg5nl7lDeWy73ntEUzxMwY6XxbQEc2wA== + version "2.7.0" + resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.7.0.tgz#d892a741135628a77d25709a29ae164f2750b7eb" + integrity sha512-QcncKiEku9TInKH++frfCPaYaVvw6OR5C5dNUcb05WozeVOJGspbWbHOkOlfiaZUbEKTvHA6OY9LtMMvja9nzQ== dependencies: chalk "^4.0.0" cli-table3 "^0.6.0" @@ -11199,9 +11238,9 @@ hardhat-gas-reporter@^1.0.9: sha1 "^1.1.1" hardhat@^2.10.2, hardhat@^2.12.2: - version "2.12.5" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.5.tgz#e3cd4d6dae35cb9505055967bd7e15e6adf3aa03" - integrity sha512-f/t7+hLlhsnQZ6LDXyV+8rHGRZFZY1sgFvgrwr9fBjMdGp1Bu6hHq1KXS4/VFZfZcVdL1DAWWEkryinZhqce+A== + version "2.12.6" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.6.tgz#ea3c058bbd81850867389d10f76037cfa52a0019" + integrity sha512-0Ent1O5DsPgvaVb5sxEgsQ3bJRt/Ex92tsoO+xjoNH2Qc4bFmhI5/CHVlFikulalxOPjNmw5XQ2vJFuVQFESAA== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" @@ -11250,7 +11289,7 @@ hardhat@^2.10.2, hardhat@^2.12.2: source-map-support "^0.5.13" stacktrace-parser "^0.1.10" tsort "0.0.1" - undici "^5.4.0" + undici "^5.14.0" uuid "^8.3.2" ws "^7.4.6" @@ -11710,9 +11749,9 @@ immediate@~3.0.5: integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== immer@^9.0.16, immer@^9.0.7: - version "9.0.17" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.17.tgz#7cfe8fbb8b461096444e9da7a5ec4a67c6c4adf4" - integrity sha512-+hBruaLSQvkPfxRiTLK/mi4vLH+/VQS6z2KJahdoxlleFOI8ARqzOF17uy12eFDlqWmPoygwc5evgwcp+dlHhg== + version "9.0.18" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.18.tgz#d2faee58fd0e34f017f329b98cdab37826fa31b8" + integrity sha512-eAPNpsj7Ax1q6Y/3lm2PmlwRcFzpON7HSNQ3ru5WQH1/PSpnyed/HpNOELl2CxLKoj4r+bAHgdyKqW5gc2Se1A== immutable@3.8.2: version "3.8.2" @@ -11809,10 +11848,10 @@ internal-slot@^1.0.3, internal-slot@^1.0.4: has "^1.0.3" side-channel "^1.0.4" -internmap@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" - integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== interpret@^1.0.0: version "1.4.0" @@ -12031,23 +12070,25 @@ ipfs-unixfs@^6.0.0, ipfs-unixfs@^6.0.3: protobufjs "^6.10.2" ipfs-utils@^9.0.2: - version "9.0.9" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.9.tgz#54551093846a230be07e473187d2d063685ebe83" - integrity sha512-auKjNok5bFhid1JmnXn+QFKaGrKrxgbUpVD0v4XkIKIH7kCR9zWOihErPKBDfJXfF8YycQ+SvPgX1XOpDgUC5Q== + 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 "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" - react-native-fetch-api "^2.0.0" + node-fetch "^2.6.8" + react-native-fetch-api "^3.0.0" stream-to-it "^0.2.2" ipfs-utils@~0.0.3: @@ -12096,7 +12137,7 @@ ipld-raw@^4.0.0: multicodec "^1.0.0" multihashing-async "~0.8.0" -is-arguments@^1.0.4, is-arguments@^1.1.0, is-arguments@^1.1.1: +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== @@ -12104,7 +12145,7 @@ is-arguments@^1.0.4, is-arguments@^1.1.0, is-arguments@^1.1.1: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-array-buffer@^3.0.0, is-array-buffer@^3.0.1: +is-array-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== @@ -12160,7 +12201,7 @@ 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.10.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: +is-core-module@^2.10.0, is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== @@ -13771,7 +13812,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.1, json5@^2.2.2: +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, 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== @@ -13976,9 +14017,9 @@ kleur@^3.0.3: integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== klona@^2.0.4, klona@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== kuler@^2.0.0: version "2.0.0" @@ -14708,9 +14749,9 @@ minimatch@5.0.1: brace-expansion "^2.0.1" minimatch@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff" - integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg== + version "5.1.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.4.tgz#4e2d39d872684e97b309a9104251c3f1aa4e9d1c" + integrity sha512-U0iNYXt9wALljzfnGkhFSy5sAC6/SCR3JrHrlsdJz4kF8MvhTRQNiC59iUi1iqsitV7abrNAJWElVL9pdnoUgw== dependencies: brace-expansion "^2.0.1" @@ -14795,10 +14836,10 @@ mkdirp-promise@^5.0.1: dependencies: mkdirp "*" -mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@*: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.0.0.tgz#1460f186644abf3b751e74f5ee82f47d191b586d" + integrity sha512-M9ecBPkCu6jZ+H19zruhjw/JB97qqVhyi1H2Lxxo2XAoIMdpHKQ8MfQiMzXk9SH/oJXIbM3oSAfLB8qSWJdCLA== mkdirp@0.5.5: version "0.5.5" @@ -14814,6 +14855,11 @@ mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: dependencies: minimist "^1.2.6" +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mnemonist@^0.38.0: version "0.38.5" resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" @@ -15259,10 +15305,10 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-fetch@2, node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.1, 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== +node-fetch@2, node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" + integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg== dependencies: whatwg-url "^5.0.0" @@ -15271,9 +15317,12 @@ node-fetch@2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -"node-fetch@https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz": +node-fetch@2.6.7: version "2.6.7" - resolved "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz#1b5d62978f2ed07b99444f64f0df39f960a6d34d" + 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-forge@^0.10.0: version "0.10.0" @@ -15429,9 +15478,9 @@ object-hash@^3.0.0: integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + 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" @@ -15502,7 +15551,7 @@ object.hasown@^1.1.2: define-properties "^1.1.4" es-abstract "^1.20.4" -object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: +object.values@^1.1.0, object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -16623,9 +16672,9 @@ prettier@1.19.1: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.3.1, prettier@^2.7.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.2.tgz#c4ea1b5b454d7c4b59966db2e06ed7eec5dfd160" - integrity sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw== + version "2.8.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" + integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== pretty-bytes@5.6.0, pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -16858,9 +16907,9 @@ punycode@^1.3.2: integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.2.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" + integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== pvtsutils@^1.3.2: version "1.3.2" @@ -17139,10 +17188,10 @@ react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== -react-native-fetch-api@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz#c4af188b4fce3f3eaf1f1ff4e61dae1a00d4ffa0" - integrity sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw== +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" @@ -17445,17 +17494,11 @@ recharts-scale@^0.4.4: decimal.js-light "^2.4.1" recharts@^2.1.16: - version "2.2.0" - resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.2.0.tgz#1b8ba0799ff0feb96c87f009cd2ddd8cf5108817" - integrity sha512-/uRJ0oaESGyz//PgAzvrwXEhrKaNha1ELLysEMRklbnsddiVQsSNicP7DWiz8qFcyYXy3BrDqrUjiLiVRTSMtA== + version "2.3.2" + resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.3.2.tgz#6e9498533dd93314e1d7f08e6496fc422e2e991f" + integrity sha512-2II30fGzKaypHfHNQNUhCfiLMxrOS/gF0WFahDIEFgXtJkVEe2DpZWFfEfAn+RU3B7/h2V/B05Bwmqq3rTXwLw== dependencies: - "@types/d3-interpolate" "^2.0.0" - "@types/d3-scale" "^3.0.0" - "@types/d3-shape" "^2.0.0" classnames "^2.2.5" - d3-interpolate "^2.0.0" - d3-scale "^3.0.0" - d3-shape "^2.0.0" eventemitter3 "^4.0.1" lodash "^4.17.19" react-is "^16.10.2" @@ -17463,6 +17506,7 @@ recharts@^2.1.16: react-smooth "^2.0.1" recharts-scale "^0.4.4" reduce-css-calc "^2.1.8" + victory-vendor "^36.6.8" rechoir@^0.6.2: version "0.6.2" @@ -17793,9 +17837,9 @@ resolve-url-loader@^4.0.0: source-map "0.6.1" resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + version "1.1.1" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== resolve@1.1.x: version "1.1.7" @@ -17809,7 +17853,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.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -17818,7 +17862,7 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19. path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3: +resolve@^2.0.0-next.4: 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== @@ -18217,7 +18261,7 @@ send@0.18.0: chainsaw ">=0.0.7 <0.1" hashish ">=0.0.2 <0.1" -serialize-javascript@6.0.0, serialize-javascript@^6.0.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== @@ -18231,6 +18275,13 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + serve-handler@6.1.5: version "6.1.5" resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.5.tgz#a4a0964f5c55c7e37a02a633232b6f0d6f068375" @@ -18744,6 +18795,13 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + stream-browserify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -19320,10 +19378,10 @@ tenderly@^0.0.2: open "^8.4.0" prompts "^2.4.2" -tenderly@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/tenderly/-/tenderly-0.2.0.tgz#614027ce58e2465c7707b5815d44c9d6ee92ab9e" - integrity sha512-VsYKJfvNOKypcSXzba7o1w1on/lWuSdjZNK0UeHkRuhKYxo/RrvoOpTB2nuaSPQ1dhczy4FNH/mpGU+kqvNr5g== +tenderly@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tenderly/-/tenderly-0.3.0.tgz#0c24e33b21b9b546eb8ff545589e38c0b08e9afb" + integrity sha512-JulOh626MZUzfur4YGJeIjpGS+1e3f+dfutHg+JkaDTFaGdEzhE68qVyBAmhynbCcXUItkZTpLARdhQEpEXW5w== dependencies: axios "^0.27.2" cli-table3 "^0.6.2" @@ -19619,14 +19677,14 @@ ts-essentials@^7.0.1: integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== ts-jest@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.3.tgz#63ea93c5401ab73595440733cefdba31fcf9cb77" - integrity sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ== + version "29.0.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.5.tgz#c5557dcec8fe434fcb8b70c3e21c6b143bfce066" + integrity sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" jest-util "^29.0.0" - json5 "^2.2.1" + json5 "^2.2.3" lodash.memoize "4.x" make-error "1.x" semver "7.x" @@ -19884,10 +19942,10 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici@^5.12.0, undici@^5.4.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.14.0.tgz#1169d0cdee06a4ffdd30810f6228d57998884d00" - integrity sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ== +undici@^5.12.0, undici@^5.14.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.15.0.tgz#cb8437c43718673a8be59df0fdd4856ff6689283" + integrity sha512-wCAZJDyjw9Myv+Ay62LAoB+hZLPW9SmKbQkbHIhMw/acKSlpn7WohdMUc/Vd4j1iSMBO0hWwU8mjB7a5p5bl8g== dependencies: busboy "^1.6.0" @@ -20012,6 +20070,13 @@ url@0.10.3: punycode "1.3.2" querystring "0.2.0" +urlpattern-polyfill@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz#a193fe773459865a2a5c93b246bb794b13d07256" + integrity sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg== + dependencies: + braces "^3.0.2" + ursa-optional@~0.10.0: version "0.10.2" resolved "https://registry.yarnpkg.com/ursa-optional/-/ursa-optional-0.10.2.tgz#bd74e7d60289c22ac2a69a3c8dea5eb2817f9681" @@ -20144,12 +20209,7 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -value-or-promise@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" - integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== - -value-or-promise@^1.0.11: +value-or-promise@1.0.12, value-or-promise@^1.0.11: 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== @@ -20178,6 +20238,26 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +victory-vendor@^36.6.8: + version "36.6.8" + resolved "https://registry.yarnpkg.com/victory-vendor/-/victory-vendor-36.6.8.tgz#5a1c555ca99a39fdb66a6c959c8426eb834893a2" + integrity sha512-H3kyQ+2zgjMPvbPqAl7Vwm2FD5dU7/4bCTQakFQnpIsfDljeOMDojRsrmJfwh4oAlNnWhpAf+mbAoLh8u7dwyQ== + dependencies: + "@types/d3-array" "^3.0.3" + "@types/d3-ease" "^3.0.0" + "@types/d3-interpolate" "^3.0.1" + "@types/d3-scale" "^4.0.2" + "@types/d3-shape" "^3.1.0" + "@types/d3-time" "^3.0.0" + "@types/d3-timer" "^3.0.0" + d3-array "^3.1.6" + d3-ease "^3.0.1" + d3-interpolate "^3.0.1" + d3-scale "^4.0.2" + d3-shape "^3.1.0" + d3-time "^3.0.0" + d3-timer "^3.0.1" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -20278,9 +20358,9 @@ web-vitals@^2.1.4: integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== web-vitals@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.1.0.tgz#a6f5156cb6c7fee562da46078540265ac2cd2d16" - integrity sha512-zCeQ+bOjWjJbXv5ZL0r8Py3XP2doCQMZXNKlBGfUjPAVZWokApdeF/kFlK1peuKlCt8sL9TFkKzyXE9/cmNJQA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.1.1.tgz#bb124a03df7a135617f495c5bb7dbc30ecf2cce3" + integrity sha512-qvllU+ZeQChqzBhZ1oyXmWsjJ8a2jHYpH8AMaVuf29yscOPZfTQTjQFRX6+eADTdsDE8IanOZ0cetweHMs8/2A== web3-bzz@1.8.1: version "1.8.1" @@ -21121,10 +21201,10 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== +ws@8.12.0, ws@^8.11.0, ws@^8.4.2, ws@^8.5.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" + integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== ws@^3.0.0: version "3.3.3" @@ -21140,11 +21220,6 @@ ws@^7.4.0, ws@^7.4.5, ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.11.0, ws@^8.4.2, ws@^8.5.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" - integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== - xdeployer@1.1.20: version "1.1.20" resolved "https://registry.yarnpkg.com/xdeployer/-/xdeployer-1.1.20.tgz#4cac0d534852b2f46b585aa10caee2f86583df5a" @@ -21416,8 +21491,8 @@ zksync-web3@^0.8.1: integrity sha512-1A4aHPQ3MyuGjpv5X/8pVEN+MdZqMjfVmiweQSRjOlklXYu65wT9BGEOtCmMs5d3gIvLp4ssfTeuR5OCKOD2kw== zustand@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.2.0.tgz#f6ef9e63794eda9b296979578538a6df6be3e1b0" - integrity sha512-eNwaDoD2FYVnMgtNxiMUhTJO780wonZUzJrPQTLYI0erSIMZF8cniWFW22kGQUECd8rdHRJ/ZJL2XO54c9Ttuw== + version "4.3.2" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.2.tgz#bb121fcad84c5a569e94bd1a2695e1a93ba85d39" + integrity sha512-rd4haDmlwMTVWVqwvgy00ny8rtti/klRoZjFbL/MAcDnmD5qSw/RZc+Vddstdv90M5Lv6RPgWvm1Hivyn0QgJw== dependencies: use-sync-external-store "1.2.0" From bfebfba5baa9b4f7f990cc0f4bb39f7a85580799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 19 Jan 2023 16:29:20 +0100 Subject: [PATCH 070/216] Fix tests for reputation implementation --- packages/core/contracts/Escrow.sol | 15 ++- packages/core/contracts/Reputation.sol | 38 ++++--- .../core/contracts/interfaces/IEscrow.sol | 3 +- .../core/contracts/utils/SignedSafeMath.sol | 104 ++++++++++++++++++ packages/core/test/Escrow.ts | 40 +++++-- packages/examples/fortune/package.json | 2 +- .../fortune/reputation-oracle/src/index.ts | 19 ++-- .../src/services/reputation.test.ts | 58 ++++++++-- .../src/services/reputation.ts | 32 +++++- .../src/services/rewards.test.ts | 29 +---- .../reputation-oracle/src/services/rewards.ts | 26 ----- .../fortune/tests/e2e-backend/constants.js | 3 + .../fortune/tests/e2e-backend/fixtures.js | 27 +++-- .../tests/e2e-backend/positiveFlow.test.js | 37 +++++-- .../e2e-backend/uniqueFortunePaid.test.js | 31 ++++-- 15 files changed, 326 insertions(+), 138 deletions(-) create mode 100644 packages/core/contracts/utils/SignedSafeMath.sol diff --git a/packages/core/contracts/Escrow.sol b/packages/core/contracts/Escrow.sol index 8b0cffe991..1821a0ac4e 100644 --- a/packages/core/contracts/Escrow.sol +++ b/packages/core/contracts/Escrow.sol @@ -29,6 +29,7 @@ contract Escrow is IEscrow { string public manifestUrl; string public manifestHash; + uint256 public remainingFortunes; string public finalResultsUrl; string public finalResultsHash; @@ -79,7 +80,8 @@ contract Escrow is IEscrow { uint256 _reputationOracleStake, uint256 _recordingOracleStake, string memory _url, - string memory _hash + string memory _hash, + uint256 _fortunesRequested ) public trusted notExpired { require( _reputationOracle != address(0), @@ -89,6 +91,7 @@ contract Escrow is IEscrow { _recordingOracle != address(0), 'Invalid or missing token spender' ); + require(_fortunesRequested > 0, 'Invalid or missing fortunes'); uint256 totalStake = _reputationOracleStake.add(_recordingOracleStake); require(totalStake >= 0 && totalStake <= 100, 'Stake out of bounds'); require( @@ -106,6 +109,7 @@ contract Escrow is IEscrow { manifestUrl = _url; manifestHash = _hash; + remainingFortunes = _fortunesRequested; status = EscrowStatuses.Pending; emit Pending(manifestUrl, manifestHash); } @@ -202,6 +206,15 @@ contract Escrow is IEscrow { if (bulkPaid) { if (status == EscrowStatuses.Pending) { status = EscrowStatuses.Partial; + remainingFortunes = remainingFortunes.sub(_recipients.length); + } + if ( + balance > 0 && + status == EscrowStatuses.Partial && + remainingFortunes == 0 + ) { + token.transfer(canceler, balance); + status = EscrowStatuses.Paid; } if (balance == 0 && status == EscrowStatuses.Partial) { status = EscrowStatuses.Paid; diff --git a/packages/core/contracts/Reputation.sol b/packages/core/contracts/Reputation.sol index f0be65950e..9c71b12b19 100644 --- a/packages/core/contracts/Reputation.sol +++ b/packages/core/contracts/Reputation.sol @@ -1,12 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.6.2; -import './utils/SafeMath.sol'; +import './utils/SignedSafeMath.sol'; import './interfaces/IStaking.sol'; import '@openzeppelin/contracts/access/Ownable.sol'; contract Reputation is Ownable { - using SafeMath for int256; + using SignedSafeMath for int256; using Stakes for Stakes.Staker; struct Worker { @@ -37,31 +37,33 @@ contract Reputation is Ownable { for (uint256 i = 0; i < _workers.length; i++) { if ( - reputations[_workers[i].workerAddress] + - _workers[i].reputation > + reputations[_workers[i].workerAddress].add( + _workers[i].reputation + ) > MAX_REPUTATION || (reputations[_workers[i].workerAddress] == 0 && - 50 + _workers[i].reputation > MAX_REPUTATION) + _workers[i].reputation.add(50) > MAX_REPUTATION) ) { reputations[_workers[i].workerAddress] = MAX_REPUTATION; } else if ( (reputations[_workers[i].workerAddress] == 0 && - 50 + _workers[i].reputation < MIN_REPUTATION) || - (reputations[_workers[i].workerAddress] + - _workers[i].reputation < + _workers[i].reputation.add(50) < MIN_REPUTATION) || + (reputations[_workers[i].workerAddress].add( + _workers[i].reputation + ) < MIN_REPUTATION && reputations[_workers[i].workerAddress] != 0) ) { reputations[_workers[i].workerAddress] = MIN_REPUTATION; } else { if (reputations[_workers[i].workerAddress] == 0) { - reputations[_workers[i].workerAddress] = - 50 + - _workers[i].reputation; + reputations[_workers[i].workerAddress] = _workers[i] + .reputation + .add(50); } else { - reputations[_workers[i].workerAddress] = - reputations[_workers[i].workerAddress] + - _workers[i].reputation; + reputations[_workers[i].workerAddress] = reputations[ + _workers[i].workerAddress + ].add(_workers[i].reputation); } } } @@ -87,13 +89,13 @@ contract Reputation is Ownable { int256 totalReputation = 0; for (uint256 i = 0; i < _workers.length; i++) { - totalReputation += reputations[_workers[i]]; + totalReputation = totalReputation.add(reputations[_workers[i]]); } for (uint256 i = 0; i < _workers.length; i++) { - returnedValues[i] = - (balance * reputations[_workers[i]]) / - totalReputation; + returnedValues[i] = balance.mul(reputations[_workers[i]]).div( + totalReputation + ); } return returnedValues; diff --git a/packages/core/contracts/interfaces/IEscrow.sol b/packages/core/contracts/interfaces/IEscrow.sol index d8b00e647f..af19aa206a 100644 --- a/packages/core/contracts/interfaces/IEscrow.sol +++ b/packages/core/contracts/interfaces/IEscrow.sol @@ -22,7 +22,8 @@ interface IEscrow { uint256 _reputationOracleStake, uint256 _recordingOracleStake, string memory _url, - string memory _hash + string memory _hash, + uint256 _fortunesRequested ) external; function abort() external; diff --git a/packages/core/contracts/utils/SignedSafeMath.sol b/packages/core/contracts/utils/SignedSafeMath.sol new file mode 100644 index 0000000000..17962082a1 --- /dev/null +++ b/packages/core/contracts/utils/SignedSafeMath.sol @@ -0,0 +1,104 @@ +// SPDX-License-Identifier: MIT + +pragma solidity >=0.6.0; + +/** + * @title SignedSafeMath + * @dev Signed math operations with safety checks that revert on error. + */ +library SignedSafeMath { + int256 private constant _INT256_MIN = -2 ** 255; + + /** + * @dev Returns the multiplication of two signed integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(int256 a, int256 b) internal pure returns (int256) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; + } + + require( + !(a == -1 && b == _INT256_MIN), + 'SignedSafeMath: multiplication overflow' + ); + + int256 c = a * b; + require(c / a == b, 'SignedSafeMath: multiplication overflow'); + + return c; + } + + /** + * @dev Returns the integer division of two signed integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(int256 a, int256 b) internal pure returns (int256) { + require(b != 0, 'SignedSafeMath: division by zero'); + require( + !(b == -1 && a == _INT256_MIN), + 'SignedSafeMath: division overflow' + ); + + int256 c = a / b; + + return c; + } + + /** + * @dev Returns the subtraction of two signed integers, reverting on + * overflow. + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(int256 a, int256 b) internal pure returns (int256) { + int256 c = a - b; + require( + (b >= 0 && c <= a) || (b < 0 && c > a), + 'SignedSafeMath: subtraction overflow' + ); + + return c; + } + + /** + * @dev Returns the addition of two signed integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(int256 a, int256 b) internal pure returns (int256) { + int256 c = a + b; + require( + (b >= 0 && c >= a) || (b < 0 && c < a), + 'SignedSafeMath: addition overflow' + ); + + return c; + } +} diff --git a/packages/core/test/Escrow.ts b/packages/core/test/Escrow.ts index 4df6d28709..8a141bef82 100644 --- a/packages/core/test/Escrow.ts +++ b/packages/core/test/Escrow.ts @@ -6,6 +6,7 @@ import { Escrow, HMToken } from '../typechain-types'; const MOCK_URL = 'http://google.com/fake'; const MOCK_HASH = 'kGKmnj9BRf'; +const MOCK_FORTUNES = 3; const BULK_MAX_COUNT = 100; enum Status { @@ -47,7 +48,8 @@ async function setupEscrow() { 10, 10, MOCK_URL, - MOCK_HASH + MOCK_HASH, + MOCK_FORTUNES ); } @@ -262,12 +264,13 @@ describe('Escrow', function () { 10, 10, MOCK_URL, - MOCK_HASH + MOCK_HASH, + MOCK_FORTUNES ) ).to.be.revertedWith('Address calling not trusted'); }); - it('Should revert with the right error if set invalid or missing reputation oracle address', async function () { + it('Should revert with the right error if set invalid or missing recording oracle address', async function () { await expect( escrow .connect(owner) @@ -277,7 +280,8 @@ describe('Escrow', function () { 10, 10, MOCK_URL, - MOCK_HASH + MOCK_HASH, + MOCK_FORTUNES ) ).to.be.revertedWith('Invalid or missing token spender'); }); @@ -292,11 +296,28 @@ describe('Escrow', function () { 10, 10, MOCK_URL, - MOCK_HASH + MOCK_HASH, + MOCK_FORTUNES ) ).to.be.revertedWith('Invalid or missing token spender'); }); + it('Should revert with the right error if set invalid number of fortunes', async function () { + await expect( + escrow + .connect(owner) + .setup( + await reputationOracle.getAddress(), + await recordingOracle.getAddress(), + 10, + 10, + MOCK_URL, + MOCK_HASH, + 0 + ) + ).to.be.revertedWith('Invalid or missing fortunes'); + }); + it('Should revert with the right error if stake out of bounds and too high', async function () { await expect( escrow @@ -307,7 +328,8 @@ describe('Escrow', function () { 500, 500, MOCK_URL, - MOCK_HASH + MOCK_HASH, + MOCK_FORTUNES ) ).to.be.revertedWith('Stake out of bounds'); }); @@ -328,7 +350,8 @@ describe('Escrow', function () { 10, 10, MOCK_URL, - MOCK_HASH + MOCK_HASH, + MOCK_FORTUNES ) ) .to.emit(escrow, 'Pending') @@ -351,7 +374,8 @@ describe('Escrow', function () { 10, 10, MOCK_URL, - MOCK_HASH + MOCK_HASH, + MOCK_FORTUNES ); expect(await escrow.reputationOracle()).to.equal( diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index ad0de37863..f9d5ebf11e 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -19,7 +19,7 @@ "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest --testSequencer ./tests/e2e-backend/CustomSequencer.js tests/e2e-backend --runInBand\") && docker compose down", "test:unit": "concurrently -g \"yarn test:recording\" \"yarn test:reputation\" \"yarn test:exchange\"", - "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", + "test": "concurrently -g \"yarn test:e2e\" \"sleep 2 && yarn test:unit\"", "lint": "eslint .", "lint:fix": "eslint . --fix" }, diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 61e85cd9f6..d11195fa3c 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -2,12 +2,12 @@ import express from 'express'; import bodyParser from 'body-parser'; import Web3 from 'web3'; import { bulkPayOut, bulkPaid, getBalance } from './services/escrow'; +import { filterAddressesToReward } from './services/rewards'; +import { uploadResults } from './services/s3'; import { - filterAddressesToReward, + updateReputations, calculateRewardForWorker, -} from './services/rewards'; -import { uploadResults } from './services/s3'; -import { updateReputations } from './services/reputation'; +} from './services/reputation'; const app = express(); const privKey = @@ -50,19 +50,14 @@ app.post('/job/results', async (req, res) => { fortunes ); - const reputationScores = await updateReputations( + await updateReputations(web3, reputationAddress, reputationValues); + const rewards = await calculateRewardForWorker( web3, reputationAddress, - reputationValues, + balance.toString(), workerAddresses ); - const rewards = calculateRewardForWorker( - balance, - workerAddresses, - reputationScores - ); - // TODO calculate the URL hash(?) const resultsUrl = await uploadResults( fortunes.map(({ fortune }) => fortune), diff --git a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts index 3eff5d71a0..70a15f482b 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts @@ -4,7 +4,11 @@ import Staking from '@human-protocol/core/artifacts/contracts/Staking.sol/Stakin import { beforeAll, describe, expect, it } from '@jest/globals'; import Web3 from 'web3'; import { Contract } from 'web3-eth-contract'; -import { updateReputations } from './reputation'; +import { + updateReputations, + calculateRewardForWorker, + getReputations, +} from './reputation'; let token: Contract; let staking: Contract; @@ -22,6 +26,12 @@ const reputationAccount = web3.eth.accounts.privateKeyToAccount( '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a' ); +const reputations = [ + { workerAddress: worker1, reputation: 10 }, + { workerAddress: worker2, reputation: -10 }, + { workerAddress: worker3, reputation: 20 }, +]; + describe('Reputation', () => { beforeAll(async () => { const tokenContract = new web3.eth.Contract(HMToken.abi as []); @@ -52,7 +62,9 @@ describe('Reputation', () => { await staking.methods .initialize(token.options.address, web3.utils.toWei('1', 'ether'), 1) .send({ from: owner.address }); + }); + beforeEach(async () => { const reputationContract = new web3.eth.Contract(Reputation.abi as []); reputation = await reputationContract .deploy({ @@ -78,20 +90,44 @@ describe('Reputation', () => { web3.eth.defaultAccount = reputationAccount.address; }); + it('Get reputations', async () => { + const result = await getReputations(web3, reputation.options.address, [ + worker1, + worker2, + worker3, + ]); + + expect(result).not.toBeUndefined(); + expect(result[0].reputation).toBe('0'); + expect(result[1].reputation).toBe('0'); + expect(result[2].reputation).toBe('0'); + }); + it('Add reputations', async () => { - const result = await updateReputations( + await updateReputations(web3, reputation.options.address, reputations); + + const result = await getReputations(web3, reputation.options.address, [ + worker1, + worker2, + worker3, + ]); + + expect(result).not.toBeUndefined(); + expect(result[0].reputation).toBe('60'); + expect(result[1].reputation).toBe('40'); + expect(result[2].reputation).toBe('70'); + }); + + it('Calculate rewards', async () => { + await updateReputations(web3, reputation.options.address, reputations); + + const result = await calculateRewardForWorker( web3, reputation.options.address, - [ - { workerAddress: worker1, reputation: 1 }, - { workerAddress: worker2, reputation: -1 }, - { workerAddress: worker3, reputation: 2 }, - ], + 3000000, [worker1, worker2, worker3] ); - expect(result).not.toBeUndefined(); - expect(result[0].reputation).toBe('51'); - expect(result[1].reputation).toBe('49'); - expect(result[2].reputation).toBe('52'); + + expect(result).toStrictEqual(['1058823', '705882', '1235294']); }); }); diff --git a/packages/examples/fortune/reputation-oracle/src/services/reputation.ts b/packages/examples/fortune/reputation-oracle/src/services/reputation.ts index 8102a4a0aa..8afbefda25 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/reputation.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/reputation.ts @@ -5,8 +5,7 @@ import { ReputationEntry } from './rewards'; export async function updateReputations( web3: Web3, reputationAddress: string, - reputationValues: ReputationEntry[], - workers: string[] + reputationValues: ReputationEntry[] ) { const Reputation = new web3.eth.Contract( ReputationABI as [], @@ -21,10 +20,35 @@ export async function updateReputations( await Reputation.methods .addReputations(reputationValues) .send({ from: web3.eth.defaultAccount, gas: gasNeeded, gasPrice }); +} +export async function getReputations( + web3: Web3, + reputationAddress: string, + workerAddresses: string[] +) { + const Reputation = new web3.eth.Contract( + ReputationABI as [], + reputationAddress + ); const reputationScores = await Reputation.methods - .getReputations(workers) + .getReputations(workerAddresses) .call(); - return reputationScores; } + +export async function calculateRewardForWorker( + web3: Web3, + reputationAddress: string, + totalReward: string, + workerAddresses: string[] +) { + const Reputation = new web3.eth.Contract( + ReputationABI as [], + reputationAddress + ); + const result = await Reputation.methods + .getRewards(totalReward, workerAddresses) + .call(); + return result; +} diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts index cc83dd1ec6..8c99ff9782 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts @@ -1,8 +1,5 @@ const Web3 = require('web3'); -const { - filterAddressesToReward, - calculateRewardForWorker, -} = require('./rewards'); +const { filterAddressesToReward } = require('./rewards'); const worker1 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; const worker2 = '0xcd3B766CCDd6AE721141F452C550Ca635964ce71'; @@ -18,28 +15,4 @@ describe('Rewards', () => { expect(result.workerAddresses).toStrictEqual([worker1, worker3]); }); - - it('Calculate rewards', async () => { - let result = calculateRewardForWorker( - 30, - [worker1, worker2, worker3], - [ - { workerAddress: worker1, reputation: 50 }, - { workerAddress: worker2, reputation: 50 }, - { workerAddress: worker3, reputation: 50 }, - ] - ); - - expect(result).toStrictEqual(['10', '10', '10']); - result = calculateRewardForWorker( - 30, - [worker1, worker2, worker3], - [ - { workerAddress: worker1, reputation: 70 }, - { workerAddress: worker2, reputation: 20 }, - { workerAddress: worker3, reputation: 50 }, - ] - ); - expect(result).not.toStrictEqual(['10', '10', '10']); - }); }); diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index 85b773dff4..d47bd2acea 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -34,29 +34,3 @@ export function filterAddressesToReward( .map(web3.utils.toChecksumAddress); return { workerAddresses, reputationValues }; } - -export function calculateRewardForWorker( - totalReward: number, - workerAddresses: string[], - reputationValues: ReputationEntry[] = [] -) { - const result: string[] = []; - let totalReputation = 0; - reputationValues.forEach((element) => { - totalReputation += Number(element.reputation); - }); - workerAddresses.forEach((worker) => { - const reputation = reputationValues.find( - (element) => element.workerAddress === worker - ); - result - .push( - ( - (totalReward * (reputation?.reputation || 0)) / - totalReputation - ).toString() - ) - .toString(); - }); - return result; -} diff --git a/packages/examples/fortune/tests/e2e-backend/constants.js b/packages/examples/fortune/tests/e2e-backend/constants.js index bc618dd108..a95b2f832e 100644 --- a/packages/examples/fortune/tests/e2e-backend/constants.js +++ b/packages/examples/fortune/tests/e2e-backend/constants.js @@ -59,6 +59,8 @@ const repOraclePrivateKey = process.env.ETH_PRIVATE_KEY || '5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a'; +const fortunesRequested = process.env.FORTUNES_REQUESTED || 2; + module.exports = { addresses, urls, @@ -68,4 +70,5 @@ module.exports = { statusesMap, minioSettings, repOraclePrivateKey, + fortunesRequested, }; diff --git a/packages/examples/fortune/tests/e2e-backend/fixtures.js b/packages/examples/fortune/tests/e2e-backend/fixtures.js index 161101390c..1500872078 100644 --- a/packages/examples/fortune/tests/e2e-backend/fixtures.js +++ b/packages/examples/fortune/tests/e2e-backend/fixtures.js @@ -6,8 +6,9 @@ const { escrowFundAmount, minioSettings, repOraclePrivateKey, + fortunesRequested, } = require('./constants'); -const escrowAbi = require('@human-protocol/core/abis/Escrow.json'); +const escrowAbi = require('../../../../core/abis/Escrow.json'); const hmtokenAbi = require('@human-protocol/core/abis/HMToken.json'); const factoryAbi = require('@human-protocol/core/abis/EscrowFactory.json'); const stakingAbi = require('@human-protocol/core/abis/Staking.json'); @@ -98,7 +99,8 @@ const setupEscrow = async ( reoOracleStake || stakes.repOracle, recOracleStake || stakes.recOracle, urls.manifestUrl, - urls.manifestUrl + urls.manifestUrl, + fortunesRequested ) .send({ from: launcher, gasLimit }); } catch (err) { @@ -157,19 +159,28 @@ const calculateRewardAmount = async (agentAddresses) => { reputationValues.forEach((element) => { totalReputation += Number(element.reputation); }); + agentAddresses.forEach((worker) => { const reputation = reputationValues.find( (element) => element.workerAddress === worker ); - const workerReward = - (balance * (reputation?.reputation || 0)) / totalReputation; - const recReward = (workerReward * stakes.recOracle) / 100; - const repReward = (workerReward * stakes.repOracle) / 100; + const workerReward = web3.utils + .toBN(balance) + .mul(web3.utils.toBN(reputation?.reputation || 0)) + .div(web3.utils.toBN(totalReputation)); + const recReward = web3.utils + .toBN(workerReward) + .mul(web3.utils.toBN(stakes.recOracle)) + .div(web3.utils.toBN(100)); + const repReward = web3.utils + .toBN(workerReward) + .mul(web3.utils.toBN(stakes.repOracle)) + .div(web3.utils.toBN(100)); workerRewards.push(workerReward); recOracleRewards.push(recReward); repOracleRewards.push(repReward); - totalRecOracleReward += recReward; - totalRepOracleReward += repReward; + totalRecOracleReward = web3.utils.toBN(totalRecOracleReward).add(recReward); + totalRepOracleReward = web3.utils.toBN(totalRepOracleReward).add(repReward); }); return { workerRewards: workerRewards, diff --git a/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js b/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js index a723df9f17..482853ed71 100644 --- a/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js +++ b/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js @@ -20,10 +20,10 @@ const { escrowFundAmount, } = require('./constants'); const web3 = new Web3(urls.ethHTTPServer); - +let owner, launcher; describe('Positive flow', () => { beforeAll(async () => { - await setupAccounts(); + [owner, launcher] = await setupAccounts(); }); test('Flow', async () => { @@ -82,24 +82,37 @@ describe('Positive flow', () => { const agent_balance = await Token.methods .balanceOf(agentAddresses[i]) .call(); - expect(agent_balance - agentsOldBalances[i]).toBe( - rewards.workerRewards[i] - - rewards.recOracleRewards[i] - - rewards.repOracleRewards[i] + expect( + web3.utils + .toBN(agent_balance) + .sub(web3.utils.toBN(agentsOldBalances[i])) + .toString() + ).toBe( + web3.utils + .toBN(rewards.workerRewards[i]) + .sub(rewards.recOracleRewards[i]) + .sub(rewards.repOracleRewards[i]) + .toString() ); } const reputationOracleBalance = await Token.methods .balanceOf(addresses.repOracle) .call(); - expect(reputationOracleBalance - reputationOracleOldBalance).toBe( - rewards.totalRepOracleReward - ); + expect( + web3.utils + .toBN(reputationOracleBalance) + .sub(web3.utils.toBN(reputationOracleOldBalance)) + .toString() + ).toBe(rewards.totalRepOracleReward.toString()); const recordingOracleBalance = await Token.methods .balanceOf(addresses.recOracle) .call(); - expect(recordingOracleBalance - recordingOracleOldBalance).toBe( - rewards.totalRecOracleReward - ); + expect( + web3.utils + .toBN(recordingOracleBalance) + .sub(web3.utils.toBN(recordingOracleOldBalance)) + .toString() + ).toBe(rewards.totalRecOracleReward.toString()); }); }); diff --git a/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js b/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js index bdb4c756e8..29a569b835 100644 --- a/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js +++ b/packages/examples/fortune/tests/e2e-backend/uniqueFortunePaid.test.js @@ -81,8 +81,17 @@ describe('Positive flow + adding same fortune. Only one unique fortune teller sh const agent_1_balance = await Token.methods .balanceOf(agentAddresses[0]) .call(); - expect(agent_1_balance - agentsOldBalances[0]).toBe( - value - rewards.totalRecOracleReward - rewards.totalRepOracleReward + expect( + web3.utils + .toBN(agent_1_balance) + .sub(web3.utils.toBN(agentsOldBalances[0])) + .toString() + ).toBe( + web3.utils + .toBN(value) + .sub(rewards.totalRecOracleReward) + .sub(rewards.totalRepOracleReward) + .toString() ); for (let i = 1; i < agentAddresses.length; i++) { const agent_balance = await Token.methods @@ -94,14 +103,20 @@ describe('Positive flow + adding same fortune. Only one unique fortune teller sh const reputationOracleBalance = await Token.methods .balanceOf(addresses.repOracle) .call(); - expect(reputationOracleBalance - reputationOracleOldBalance).toBe( - rewards.totalRepOracleReward - ); + expect( + web3.utils + .toBN(reputationOracleBalance) + .sub(web3.utils.toBN(reputationOracleOldBalance)) + .toString() + ).toBe(rewards.totalRepOracleReward.toString()); const recordingOracleBalance = await Token.methods .balanceOf(addresses.recOracle) .call(); - expect(recordingOracleBalance - recordingOracleOldBalance).toBe( - rewards.totalRecOracleReward - ); + expect( + web3.utils + .toBN(recordingOracleBalance) + .sub(web3.utils.toBN(recordingOracleOldBalance)) + .toString() + ).toBe(rewards.totalRecOracleReward.toString()); }); }); From 7f0c42c5b43e34f3ce304f58bc55d39058a251bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 19 Jan 2023 16:29:51 +0100 Subject: [PATCH 071/216] delete sleep --- packages/examples/fortune/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index f9d5ebf11e..ad0de37863 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -19,7 +19,7 @@ "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest --testSequencer ./tests/e2e-backend/CustomSequencer.js tests/e2e-backend --runInBand\") && docker compose down", "test:unit": "concurrently -g \"yarn test:recording\" \"yarn test:reputation\" \"yarn test:exchange\"", - "test": "concurrently -g \"yarn test:e2e\" \"sleep 2 && yarn test:unit\"", + "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", "lint": "eslint .", "lint:fix": "eslint . --fix" }, From d9383959f2d061d4d2bd7364af3c398cb9a36808 Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Fri, 20 Jan 2023 00:40:53 +0800 Subject: [PATCH 072/216] Escrow factory multi token support (#182) * escrow factory multi token support * fix python sdk escrow factory initialize * fix escrow creation in python sdk * fix escrow contract * fix yarn.lock * fix python sdk test * rename eip20 to token --- packages/core/contracts/Escrow.sol | 58 ++-- packages/core/contracts/EscrowFactory.sol | 21 +- packages/core/contracts/RewardPool.sol | 25 +- packages/core/contracts/Staking.sol | 35 ++- .../core/contracts/test/EscrowFactoryV0.sol | 21 +- packages/core/package.json | 2 +- packages/core/scripts/deploy.ts | 2 +- packages/core/test/Escrow.ts | 2 +- packages/core/test/EscrowFactory.ts | 30 +- packages/core/test/RewardPool.ts | 14 +- packages/core/test/Staking.ts | 24 +- .../src/services/escrow.test.ts | 8 +- .../src/services/fortune.test.ts | 8 +- .../src/services/escrow.test.ts | 8 +- .../contracts/InvalidEscrowAbi.json | 4 +- .../fortune/tests/e2e-backend/fixtures.js | 2 +- .../python/human_protocol_sdk/eth_bridge.py | 2 +- packages/sdk/python/human_protocol_sdk/job.py | 2 +- packages/sdk/python/scripts/run-test.sh | 2 +- .../typescript/human-protocol-sdk/src/job.ts | 2 +- .../human-protocol-sdk/src/utils.ts | 4 +- .../sdk/typescript/subgraph/schema.graphql | 2 +- .../subgraph/src/mapping/EscrowFactory.ts | 2 +- ...B24444511c86F4d4E63141D8Be0A025E2dca4.json | 6 +- ...B24444511c86F4d4E63141D8Be0A025E2dca4.json | 4 +- yarn.lock | 283 +++++++++--------- 26 files changed, 294 insertions(+), 279 deletions(-) diff --git a/packages/core/contracts/Escrow.sol b/packages/core/contracts/Escrow.sol index 8b0cffe991..6665021aa1 100644 --- a/packages/core/contracts/Escrow.sol +++ b/packages/core/contracts/Escrow.sol @@ -2,13 +2,21 @@ pragma solidity >=0.6.2; -import './interfaces/HMTokenInterface.sol'; +import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; + import './interfaces/IRewardPool.sol'; import './interfaces/IEscrow.sol'; import './utils/SafeMath.sol'; contract Escrow is IEscrow { using SafeMath for uint256; + + bytes4 private constant FUNC_SELECTOR_BALANCE_OF = + bytes4(keccak256('balanceOf(address)')); + bytes4 private constant FUNC_SELECTOR_TRANSFER = + bytes4(keccak256('transfer(address,uint256)')); + event IntermediateStorage(string _url, string _hash); event Pending(string manifest, string hash); event BulkTransfer(uint256 indexed _txId, uint256 _bulkCount); @@ -25,7 +33,7 @@ contract Escrow is IEscrow { uint256 private constant BULK_MAX_VALUE = 1000000000 * (10 ** 18); uint32 private constant BULK_MAX_COUNT = 100; - address public eip20; + address public token; string public manifestUrl; string public manifestHash; @@ -41,12 +49,12 @@ contract Escrow is IEscrow { mapping(address => bool) public areTrustedHandlers; constructor( - address _eip20, + address _token, address payable _canceler, uint256 _duration, address[] memory _handlers ) { - eip20 = _eip20; + token = _token; status = EscrowStatuses.Launched; duration = _duration.add(block.timestamp); // solhint-disable-line not-rely-on-time launcher = msg.sender; @@ -57,7 +65,13 @@ contract Escrow is IEscrow { } function getBalance() public view returns (uint256) { - return HMTokenInterface(eip20).balanceOf(address(this)); + (bool success, bytes memory returnData) = token.staticcall( + abi.encodeWithSelector(FUNC_SELECTOR_BALANCE_OF, address(this)) + ); + if (success) { + return abi.decode(returnData, (uint256)); + } + return 0; } function addTrustedHandlers(address[] memory _handlers) public { @@ -125,9 +139,9 @@ contract Escrow is IEscrow { notPaid returns (bool) { - bool success = HMTokenInterface(eip20).transfer(canceler, getBalance()); + _safeTransfer(canceler, getBalance()); status = EscrowStatuses.Cancelled; - return success; + return true; } function complete() public notExpired { @@ -187,28 +201,26 @@ contract Escrow is IEscrow { uint256 reputationOracleFee, uint256 recordingOracleFee ) = finalizePayouts(_amounts); - HMTokenInterface token = HMTokenInterface(eip20); for (uint256 i = 0; i < _recipients.length; ++i) { - token.transfer(_recipients[i], finalAmounts[i]); + _safeTransfer(_recipients[i], finalAmounts[i]); } delete finalAmounts; - bulkPaid = - token.transfer(reputationOracle, reputationOracleFee) && - token.transfer(recordingOracle, recordingOracleFee); + _safeTransfer(reputationOracle, reputationOracleFee); + _safeTransfer(recordingOracle, recordingOracleFee); + + bulkPaid = true; balance = getBalance(); - if (bulkPaid) { - if (status == EscrowStatuses.Pending) { - status = EscrowStatuses.Partial; - } - if (balance == 0 && status == EscrowStatuses.Partial) { - status = EscrowStatuses.Paid; - } + if (status == EscrowStatuses.Pending) { + status = EscrowStatuses.Partial; + } + if (balance == 0 && status == EscrowStatuses.Partial) { + status = EscrowStatuses.Paid; } emit BulkTransfer(_txId, _recipients.length); - return bulkPaid; + return true; } function finalizePayouts( @@ -237,13 +249,17 @@ contract Escrow is IEscrow { return (reputationOracleFee, recordingOracleFee); } + function _safeTransfer(address to, uint256 value) internal { + SafeERC20.safeTransfer(IERC20(token), to, value); + } + modifier trusted() { require(areTrustedHandlers[msg.sender], 'Address calling not trusted'); _; } modifier notBroke() { - require(getBalance() != 0, 'EIP20 contract out of funds'); + require(getBalance() != 0, 'Token contract out of funds'); _; } diff --git a/packages/core/contracts/EscrowFactory.sol b/packages/core/contracts/EscrowFactory.sol index d5d4eef750..b029488e59 100644 --- a/packages/core/contracts/EscrowFactory.sol +++ b/packages/core/contracts/EscrowFactory.sol @@ -16,29 +16,24 @@ contract EscrowFactory is OwnableUpgradeable, UUPSUpgradeable { uint256 public counter; mapping(address => uint256) public escrowCounters; address public lastEscrow; - address public eip20; address public staking; - event Launched(address eip20, address escrow); - function initialize( - address _eip20, - address _staking - ) external payable virtual initializer { + event Launched(address token, address escrow); + + function initialize(address _staking) external payable virtual initializer { __Ownable_init_unchained(); - __EscrowFactory_init_unchained(_eip20, _staking); + __EscrowFactory_init_unchained(_staking); } function __EscrowFactory_init_unchained( - address _eip20, address _staking ) internal onlyInitializing { - require(_eip20 != address(0), ERROR_ZERO_ADDRESS); - eip20 = _eip20; require(_staking != address(0), ERROR_ZERO_ADDRESS); staking = _staking; } function createEscrow( + address token, address[] memory trustedHandlers ) public returns (address) { bool hasAvailableStake = IStaking(staking).hasAvailableStake( @@ -50,7 +45,7 @@ contract EscrowFactory is OwnableUpgradeable, UUPSUpgradeable { ); Escrow escrow = new Escrow( - eip20, + token, payable(msg.sender), STANDARD_DURATION, trustedHandlers @@ -58,7 +53,7 @@ contract EscrowFactory is OwnableUpgradeable, UUPSUpgradeable { counter++; escrowCounters[address(escrow)] = counter; lastEscrow = address(escrow); - emit Launched(eip20, lastEscrow); + emit Launched(token, lastEscrow); return lastEscrow; } @@ -78,5 +73,5 @@ contract EscrowFactory is OwnableUpgradeable, UUPSUpgradeable { * variables without shifting down storage in the inheritance chain. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps */ - uint256[43] private __gap; + uint256[46] private __gap; } diff --git a/packages/core/contracts/RewardPool.sol b/packages/core/contracts/RewardPool.sol index a4475ad24b..f58f1331ab 100644 --- a/packages/core/contracts/RewardPool.sol +++ b/packages/core/contracts/RewardPool.sol @@ -2,10 +2,11 @@ pragma solidity >=0.6.2; +import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; -import './interfaces/HMTokenInterface.sol'; import './interfaces/IRewardPool.sol'; import './utils/Math.sol'; @@ -16,8 +17,8 @@ import './utils/Math.sol'; contract RewardPool is IRewardPool, OwnableUpgradeable, UUPSUpgradeable { using SafeMath for uint256; - // ERC20 Token address - address public eip20; + // Token address + address public token; // Staking contract address address public staking; @@ -40,21 +41,21 @@ contract RewardPool is IRewardPool, OwnableUpgradeable, UUPSUpgradeable { ); function initialize( - address _eip20, + address _token, address _staking, uint256 _fees ) external payable virtual initializer { __Ownable_init_unchained(); - __RewardPool_init_unchained(_eip20, _staking, _fees); + __RewardPool_init_unchained(_token, _staking, _fees); } function __RewardPool_init_unchained( - address _eip20, + address _token, address _staking, uint256 _fees ) internal onlyInitializing { - eip20 = _eip20; + token = _token; staking = _staking; fees = _fees; } @@ -99,7 +100,6 @@ contract RewardPool is IRewardPool, OwnableUpgradeable, UUPSUpgradeable { */ function distributeReward(address _escrowAddress) external override { Reward[] memory rewardsForEscrow = rewards[_escrowAddress]; - HMTokenInterface token = HMTokenInterface(eip20); // Delete rewards for allocation delete rewards[_escrowAddress]; @@ -107,17 +107,18 @@ contract RewardPool is IRewardPool, OwnableUpgradeable, UUPSUpgradeable { // Transfer Tokens for (uint256 index = 0; index < rewardsForEscrow.length; index += 1) { Reward memory reward = rewardsForEscrow[index]; - token.transfer(reward.slasher, reward.tokens); + _safeTransfer(reward.slasher, reward.tokens); } } function withdraw(address to) external override onlyOwner { - HMTokenInterface token = HMTokenInterface(eip20); - uint256 amount = totalFee; totalFee = 0; + _safeTransfer(to, amount); + } - token.transfer(to, amount); + function _safeTransfer(address to, uint256 value) internal { + SafeERC20.safeTransfer(IERC20(token), to, value); } modifier onlyStaking() { diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index b71e973876..b8092c67c5 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -2,6 +2,8 @@ pragma solidity >=0.6.2; +import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; @@ -20,8 +22,8 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { using SafeMath for uint256; using Stakes for Stakes.Staker; - // ERC20 Token address - address public eip20; + // Token address + address public token; // Reward pool address address public override rewardPool; @@ -102,21 +104,21 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { event SetRewardPool(address indexed rewardPool); function initialize( - address _eip20, + address _token, uint256 _minimumStake, uint32 _lockPeriod ) external payable virtual initializer { __Ownable_init_unchained(); - __Staking_init_unchained(_eip20, _minimumStake, _lockPeriod); + __Staking_init_unchained(_token, _minimumStake, _lockPeriod); } function __Staking_init_unchained( - address _eip20, + address _token, uint256 _minimumStake, uint32 _lockPeriod ) internal onlyInitializing { - eip20 = _eip20; + token = _token; _setMinimumStake(_minimumStake); _setLockPeriod(_lockPeriod); } @@ -350,8 +352,7 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { stakers.push(msg.sender); } - HMTokenInterface token = HMTokenInterface(eip20); - token.transferFrom(msg.sender, address(this), _tokens); + _safeTransferFrom(msg.sender, address(this), _tokens); stakes[msg.sender].deposit(_tokens); @@ -410,8 +411,7 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { 'Stake has no available tokens for withdrawal' ); - HMTokenInterface token = HMTokenInterface(eip20); - token.transfer(_staker, tokensToWithdraw); + _safeTransfer(_staker, tokensToWithdraw); emit StakeWithdrawn(_staker, tokensToWithdraw); } @@ -446,8 +446,7 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { staker.release(_tokens); - HMTokenInterface token = HMTokenInterface(eip20); - token.transfer(rewardPool, _tokens); + _safeTransfer(rewardPool, _tokens); // Keep record on Reward Pool IRewardPool(rewardPool).addReward(_escrowAddress, _slasher, _tokens); @@ -548,6 +547,18 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { ); } + function _safeTransfer(address to, uint256 value) internal { + SafeERC20.safeTransfer(IERC20(token), to, value); + } + + function _safeTransferFrom( + address from, + address to, + uint256 value + ) internal { + SafeERC20.safeTransferFrom(IERC20(token), from, to, value); + } + modifier onlyStaker(address _staker) { Stakes.Staker memory staker = stakes[_staker]; require(staker.tokensStaked > 0, 'Caller is not a staker'); diff --git a/packages/core/contracts/test/EscrowFactoryV0.sol b/packages/core/contracts/test/EscrowFactoryV0.sol index 2f6f143440..da6b454eda 100644 --- a/packages/core/contracts/test/EscrowFactoryV0.sol +++ b/packages/core/contracts/test/EscrowFactoryV0.sol @@ -16,29 +16,24 @@ contract EscrowFactoryV0 is OwnableUpgradeable, UUPSUpgradeable { uint256 public counter; mapping(address => uint256) public escrowCounters; address public lastEscrow; - address public eip20; address public staking; - event Launched(address eip20, address escrow); - function initialize( - address _eip20, - address _staking - ) external payable virtual initializer { + event Launched(address token, address escrow); + + function initialize(address _staking) external payable virtual initializer { __Ownable_init_unchained(); - __EscrowFactory_init_unchained(_eip20, _staking); + __EscrowFactory_init_unchained(_staking); } function __EscrowFactory_init_unchained( - address _eip20, address _staking ) internal onlyInitializing { - require(_eip20 != address(0), ERROR_ZERO_ADDRESS); - eip20 = _eip20; require(_staking != address(0), ERROR_ZERO_ADDRESS); staking = _staking; } function createEscrow( + address token, address[] memory trustedHandlers ) public returns (address) { bool hasAvailableStake = IStaking(staking).hasAvailableStake( @@ -50,7 +45,7 @@ contract EscrowFactoryV0 is OwnableUpgradeable, UUPSUpgradeable { ); Escrow escrow = new Escrow( - eip20, + token, payable(msg.sender), STANDARD_DURATION, trustedHandlers @@ -58,7 +53,7 @@ contract EscrowFactoryV0 is OwnableUpgradeable, UUPSUpgradeable { counter++; escrowCounters[address(escrow)] = counter; lastEscrow = address(escrow); - emit Launched(eip20, lastEscrow); + emit Launched(token, lastEscrow); return lastEscrow; } @@ -70,5 +65,5 @@ contract EscrowFactoryV0 is OwnableUpgradeable, UUPSUpgradeable { * variables without shifting down storage in the inheritance chain. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps */ - uint256[43] private __gap; + uint256[46] private __gap; } diff --git a/packages/core/package.json b/packages/core/package.json index 32e93e0c50..18144fc36a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.31", + "version": "1.0.34", "files": [ "contracts/**/*.sol", "abis/**/*.json", diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index b616a21a71..80d521a811 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -29,7 +29,7 @@ async function main() { const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); const escrowFactoryContract = await upgrades.deployProxy( EscrowFactory, - [HMTokenContract.address, stakingContract.address], + [stakingContract.address], { initializer: 'initialize', kind: 'uups' } ); await escrowFactoryContract.deployed(); diff --git a/packages/core/test/Escrow.ts b/packages/core/test/Escrow.ts index 4df6d28709..300b6fd03d 100644 --- a/packages/core/test/Escrow.ts +++ b/packages/core/test/Escrow.ts @@ -88,7 +88,7 @@ describe('Escrow', function () { }); it('Should set the right token address', async () => { - const result = await escrow.eip20(); + const result = await escrow.token(); expect(result).to.equal(token.address); }); diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index 5335a5f265..e85b6ef57d 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -20,7 +20,9 @@ describe('EscrowFactory', function () { async function createEscrow() { const result = await ( - await escrowFactory.connect(operator).createEscrow(trustedHandlers) + await escrowFactory + .connect(operator) + .createEscrow(token.address, trustedHandlers) ).wait(); const event = result.events?.[0].args; @@ -67,17 +69,12 @@ describe('EscrowFactory', function () { escrowFactory = (await upgrades.deployProxy( EscrowFactory, - [token.address, staking.address], + [staking.address], { kind: 'uups', initializer: 'initialize' } )) as EscrowFactory; }); describe('deployment', () => { - it('Should set the right token address', async () => { - const result = await escrowFactory.eip20(); - expect(result).to.equal(token.address); - }); - it('Should set the right counter', async () => { const initialCounter = await escrowFactory.counter(); expect(initialCounter.toString()).to.equal('0'); @@ -88,21 +85,25 @@ describe('EscrowFactory', function () { await expect( escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); }); it('Operator should be able to create an escrow after staking', async () => { const event = await stakeAndCreateEscrow(staking); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; }); it('Should emit an event on launched', async function () { await staking.connect(operator).stake(stakeAmount); - await expect(escrowFactory.connect(operator).createEscrow(trustedHandlers)) + await expect( + escrowFactory + .connect(operator) + .createEscrow(token.address, trustedHandlers) + ) .to.emit(escrowFactory, 'Launched') .withArgs(token.address, anyValue); }); @@ -127,7 +128,7 @@ describe('EscrowFactory', function () { const event = await createEscrow(); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; }); @@ -140,7 +141,7 @@ describe('EscrowFactory', function () { await expect( escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); }); @@ -152,7 +153,7 @@ describe('EscrowFactory', function () { const event = await stakeAndCreateEscrow(staking); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; }); @@ -183,11 +184,12 @@ describe('EscrowFactory', function () { const event = await stakeAndCreateEscrow(staking); - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; try { escrowFactory.hasEscrow(owner.getAddress()); + // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { assert( error.message === 'newEscrowFactory.hasEscrow is not a function' diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index 95b720f5c3..8ebbf84c83 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -55,7 +55,7 @@ describe('RewardPool', function () { escrowFactory = (await upgrades.deployProxy( EscrowFactory, - [token.address, staking.address], + [staking.address], { kind: 'uups', initializer: 'initialize' } )) as EscrowFactory; }); @@ -106,8 +106,8 @@ describe('RewardPool', function () { }); }); - it('Should set eip20 address given to constructor', async () => { - expect(await rewardPool.eip20()).to.equal(token.address); + it('Should set token address given to constructor', async () => { + expect(await rewardPool.token()).to.equal(token.address); }); it('Should set fee given to constructor', async () => { @@ -127,11 +127,11 @@ describe('RewardPool', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).wait(); const event = result.events?.[0].args; - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; escrowAddress = event?.escrow; @@ -213,11 +213,11 @@ describe('RewardPool', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).wait(); const event = result.events?.[0].args; - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; escrowAddress = event?.escrow; diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index 721eb564b0..f4059b14ec 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -91,7 +91,7 @@ describe('Staking', function () { escrowFactory = (await upgrades.deployProxy( EscrowFactory, - [token.address, staking.address], + [staking.address], { kind: 'uups', initializer: 'initialize' } )) as EscrowFactory; @@ -122,7 +122,7 @@ describe('Staking', function () { describe('deployment', () => { it('Should set the right token address', async () => { - const result = await staking.eip20(); + const result = await staking.token(); expect(result).to.equal(token.address); }); @@ -231,11 +231,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).wait(); const event = result.events?.[0].args; - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; escrowAddress = event?.escrow; @@ -327,11 +327,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).wait(); const event = result.events?.[0].args; - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; }); @@ -517,11 +517,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).wait(); const event = result.events?.[0].args; - expect(event?.eip20).to.equal( + expect(event?.token).to.equal( token.address, 'token address is correct' ); @@ -581,11 +581,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).wait(); const event = result.events?.[0].args; - expect(event?.eip20).to.equal( + expect(event?.token).to.equal( token.address, 'token address is correct' ); @@ -638,11 +638,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow([ethers.constants.AddressZero]) + .createEscrow(token.address, [ethers.constants.AddressZero]) ).wait(); const event = result.events?.[0].args; - expect(event?.eip20).to.equal(token.address, 'token address is correct'); + expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; escrowAddress = event?.escrow; diff --git a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts index e230a3b50a..fbd7360203 100644 --- a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts @@ -69,12 +69,16 @@ describe('Escrow', () => { escrowFactory = await escrowFactoryContract .deploy({ data: EscrowFactory.bytecode, - arguments: [token.options.address, staking.options.address], + arguments: [], }) .send({ from: owner.address, }); + await escrowFactory.methods.initialize(staking.options.address).send({ + from: owner.address, + }); + await token.methods .approve(staking.options.address, web3.utils.toWei('500', 'ether')) .send({ from: owner.address }); @@ -84,7 +88,7 @@ describe('Escrow', () => { .send({ from: owner.address }); await escrowFactory.methods - .createEscrow([owner.address]) + .createEscrow(token.options.address, [owner.address]) .send({ from: owner.address }); escrowAddress = await escrowFactory.methods.lastEscrow().call(); diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts index e1934374f4..e3bcdd5c65 100644 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts @@ -76,12 +76,16 @@ describe('Fortune', () => { escrowFactory = await escrowFactoryContract .deploy({ data: EscrowFactory.bytecode, - arguments: [token.options.address, staking.options.address], + arguments: [], }) .send({ from: owner.address, }); + await escrowFactory.methods.initialize(staking.options.address).send({ + from: owner.address, + }); + await token.methods .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) .send({ from: owner.address }); @@ -97,7 +101,7 @@ describe('Fortune', () => { beforeEach(async () => { await escrowFactory.methods - .createEscrow([launcher.address]) + .createEscrow(token.options.address, [launcher.address]) .send({ from: launcher.address }); escrowAddress = await escrowFactory.methods.lastEscrow().call(); diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts index a74a721c6d..4b3deceb80 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts @@ -66,12 +66,16 @@ describe('Fortune', () => { escrowFactory = await escrowFactoryContract .deploy({ data: EscrowFactory.bytecode, - arguments: [token.options.address, staking.options.address], + arguments: [], }) .send({ from: owner.address, }); + await escrowFactory.methods.initialize(staking.options.address).send({ + from: owner.address, + }); + await token.methods .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) .send({ from: owner.address }); @@ -87,7 +91,7 @@ describe('Fortune', () => { beforeEach(async () => { await escrowFactory.methods - .createEscrow([launcher.address]) + .createEscrow(token.options.address, [launcher.address]) .send({ from: launcher.address }); escrowAddress = await escrowFactory.methods.lastEscrow().call(); diff --git a/packages/examples/fortune/tests/e2e-backend/contracts/InvalidEscrowAbi.json b/packages/examples/fortune/tests/e2e-backend/contracts/InvalidEscrowAbi.json index 5879daedb8..ef1b344491 100644 --- a/packages/examples/fortune/tests/e2e-backend/contracts/InvalidEscrowAbi.json +++ b/packages/examples/fortune/tests/e2e-backend/contracts/InvalidEscrowAbi.json @@ -3,7 +3,7 @@ "inputs": [ { "internalType": "address", - "name": "_eip20", + "name": "_token", "type": "address" }, { @@ -202,7 +202,7 @@ }, { "inputs": [], - "name": "eip20", + "name": "token", "outputs": [ { "internalType": "address", diff --git a/packages/examples/fortune/tests/e2e-backend/fixtures.js b/packages/examples/fortune/tests/e2e-backend/fixtures.js index 24d19b06bc..fddd8602e4 100644 --- a/packages/examples/fortune/tests/e2e-backend/fixtures.js +++ b/packages/examples/fortune/tests/e2e-backend/fixtures.js @@ -55,7 +55,7 @@ const stake = async (escrowFactory) => { const createEscrow = async (escrowFactory) => { await escrowFactory.methods - .createEscrow([launcher]) + .createEscrow(addresses.hmt, [launcher]) .send({ from: launcher, gasLimit }); return await escrowFactory.methods.lastEscrow().call(); }; diff --git a/packages/sdk/python/human_protocol_sdk/eth_bridge.py b/packages/sdk/python/human_protocol_sdk/eth_bridge.py index 11736934b6..845acfd6a2 100644 --- a/packages/sdk/python/human_protocol_sdk/eth_bridge.py +++ b/packages/sdk/python/human_protocol_sdk/eth_bridge.py @@ -347,7 +347,7 @@ def deploy_factory( factory_contract = get_factory(contract_addr) txn_func = factory_contract.functions.initialize - func_args = [hmtoken_address, staking_address] + func_args = [staking_address] txn_receipt = handle_transaction(txn_func, *func_args, **txn_info) return str(contract_addr) diff --git a/packages/sdk/python/human_protocol_sdk/job.py b/packages/sdk/python/human_protocol_sdk/job.py index e5b199d01a..8c585c69ab 100644 --- a/packages/sdk/python/human_protocol_sdk/job.py +++ b/packages/sdk/python/human_protocol_sdk/job.py @@ -1855,7 +1855,7 @@ def _create_escrow(self, trusted_handlers=[]) -> RaffleTxn: "gas": self.gas, "hmt_server_addr": self.hmt_server_addr, } - func_args = [trusted_handlers] + func_args = [self.hmtoken_addr, trusted_handlers] try: tx_receipt = handle_transaction_with_retry( diff --git a/packages/sdk/python/scripts/run-test.sh b/packages/sdk/python/scripts/run-test.sh index 8476cc2af3..f51fedb521 100755 --- a/packages/sdk/python/scripts/run-test.sh +++ b/packages/sdk/python/scripts/run-test.sh @@ -5,7 +5,7 @@ set -eux yarn workspace @human-protocol/core local & # Wait for the contracts to be deployed properly -sleep 5 +sleep 10 # Run test pipenv run pytest diff --git a/packages/sdk/typescript/human-protocol-sdk/src/job.ts b/packages/sdk/typescript/human-protocol-sdk/src/job.ts index b1baba45d8..e98fc20168 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/job.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/job.ts @@ -191,7 +191,6 @@ export class Job { this._logger.info('Deploying escrow factory...'); this.contractData.factory = await deployEscrowFactory( - this.contractData.hmTokenAddr, this.contractData.stakingAddr, this.providerData?.gasPayer ); @@ -317,6 +316,7 @@ export class Job { try { const txReceipt = await this.contractData?.factory?.createEscrow( + this.contractData.hmTokenAddr, this.providerData?.trustedHandlers?.map( (trustedHandler) => trustedHandler.address ) || [] diff --git a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts index 1ccc4fa996..183444b40d 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/utils.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/utils.ts @@ -34,20 +34,18 @@ export const getHmToken = async ( /** * **Deploy EscrowFactory contract** * - * @param {string} hmTokenAddr HMToken address * @param {string} stakingAddr Staking address * @param {ethers.Signer | undefined} signer Deployer signer * @returns {Promise} Deployed contract instance */ export const deployEscrowFactory = async ( - hmTokenAddr: string, stakingAddr: string, signer?: ethers.Signer ): Promise => { const factory = new EscrowFactory__factory(signer); const contract = await factory.deploy(); - await contract.initialize(hmTokenAddr, stakingAddr); + await contract.initialize(stakingAddr); return contract; }; diff --git a/packages/sdk/typescript/subgraph/schema.graphql b/packages/sdk/typescript/subgraph/schema.graphql index 8d803a885b..71c002152c 100644 --- a/packages/sdk/typescript/subgraph/schema.graphql +++ b/packages/sdk/typescript/subgraph/schema.graphql @@ -1,6 +1,6 @@ type LaunchedEscrow @entity { id: ID! - eip20: Bytes! # address + token: Bytes! # address from: Bytes! # address timestamp: BigInt! count: BigInt diff --git a/packages/sdk/typescript/subgraph/src/mapping/EscrowFactory.ts b/packages/sdk/typescript/subgraph/src/mapping/EscrowFactory.ts index 370a121912..493d90107b 100644 --- a/packages/sdk/typescript/subgraph/src/mapping/EscrowFactory.ts +++ b/packages/sdk/typescript/subgraph/src/mapping/EscrowFactory.ts @@ -10,7 +10,7 @@ export function handleLaunched(event: Launched): void { const entity = new LaunchedEscrow(event.params.escrow.toHex()); // Entity fields can be set based on event parameters - entity.eip20 = event.params.eip20; + entity.token = event.params.token; entity.from = event.transaction.from; entity.timestamp = event.block.timestamp; diff --git a/packages/tools/DataRecoveryTool/src/abis/EscrowFactory_rinkeby_0x925B24444511c86F4d4E63141D8Be0A025E2dca4.json b/packages/tools/DataRecoveryTool/src/abis/EscrowFactory_rinkeby_0x925B24444511c86F4d4E63141D8Be0A025E2dca4.json index c280b5a950..def04cde44 100644 --- a/packages/tools/DataRecoveryTool/src/abis/EscrowFactory_rinkeby_0x925B24444511c86F4d4E63141D8Be0A025E2dca4.json +++ b/packages/tools/DataRecoveryTool/src/abis/EscrowFactory_rinkeby_0x925B24444511c86F4d4E63141D8Be0A025E2dca4.json @@ -3,7 +3,7 @@ "inputs": [ { "internalType": "address", - "name": "_eip20", + "name": "_token", "type": "address" } ], @@ -16,7 +16,7 @@ { "indexed": false, "internalType": "address", - "name": "eip20", + "name": "token", "type": "address" }, { @@ -63,7 +63,7 @@ }, { "inputs": [], - "name": "eip20", + "name": "token", "outputs": [ { "internalType": "address", diff --git a/packages/tools/DataRecoveryTool/src/abis/Escrow_rinkeby_0x925B24444511c86F4d4E63141D8Be0A025E2dca4.json b/packages/tools/DataRecoveryTool/src/abis/Escrow_rinkeby_0x925B24444511c86F4d4E63141D8Be0A025E2dca4.json index d36c94dc26..60354b8e77 100644 --- a/packages/tools/DataRecoveryTool/src/abis/Escrow_rinkeby_0x925B24444511c86F4d4E63141D8Be0A025E2dca4.json +++ b/packages/tools/DataRecoveryTool/src/abis/Escrow_rinkeby_0x925B24444511c86F4d4E63141D8Be0A025E2dca4.json @@ -3,7 +3,7 @@ "inputs": [ { "internalType": "address", - "name": "_eip20", + "name": "_token", "type": "address" }, { @@ -221,7 +221,7 @@ }, { "inputs": [], - "name": "eip20", + "name": "token", "outputs": [ { "internalType": "address", diff --git a/yarn.lock b/yarn.lock index 0c95f9ccef..606c5ca60d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1875,10 +1875,10 @@ tslib "~2.4.0" value-or-promise "1.0.12" -"@graphql-tools/executor-graphql-ws@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.6.tgz#34c1e5bc6ac1ff292fd6c4b5490b7906c6dd25c2" - integrity sha512-n6JvIviYO8iiasV/baclimQqNkYGP7JRlkNSnphNG5LULmVpQ2WsyvbgJHV7wtlTZ8ZQ3+dILgQF83PFyLsfdA== +"@graphql-tools/executor-graphql-ws@0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.7.tgz#5e7b0e6d02d3b64727bfb37c0f2c1e13badcb829" + integrity sha512-C6EExKoukn4vu3BbvlqsqtC91F4pTLPDZvRceYjpFzTCQSGFSjfrxQGP/haGlemXVRpIDxBy7wpXoQlsF8UmFA== dependencies: "@graphql-tools/utils" "9.1.4" "@repeaterjs/repeater" "3.0.4" @@ -1888,14 +1888,14 @@ tslib "^2.4.0" ws "8.12.0" -"@graphql-tools/executor-http@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.0.tgz#8071343f4d893d9ffc91c0c675230317282f310f" - integrity sha512-HUas+3EIqbw/reNH3NaO8/5Cc61ZxsoIArES55kR6Nq8lS8VWiEpnuXLXBq2THYemmthVdK3eDCKTJLmUFuKdA== +"@graphql-tools/executor-http@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.1.tgz#9c4a43811d36d1be2319fd241d5538e2fac45bce" + integrity sha512-bFE6StI7CJEIYGRkAnTYxutSV4OtC1c4MQU3nStOYZZO7KmzIgEQZ4ygPSPrRb+jtRsMCBEqPqlYOD4Rq02aMw== dependencies: "@graphql-tools/utils" "9.1.4" "@repeaterjs/repeater" "3.0.4" - "@whatwg-node/fetch" "0.6.1" + "@whatwg-node/fetch" "0.6.2" dset "3.1.2" extract-files "^11.0.0" meros "1.2.1" @@ -1995,17 +1995,17 @@ value-or-promise "1.0.12" "@graphql-tools/url-loader@^7.9.7": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.1.tgz#df32e6b84e13603e096e5a9e8fb3b4bd2c2442b9" - integrity sha512-+WZXkg1ZG4fjAB+SkCHLSr7VFZqZAkA/PILcpoPqwAL/wSsrhCHYwbzuWuKn1SGToxJRt7cc+4P0lfR7fq+xhQ== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.3.tgz#5c3270208e5cb039f65d7ef390af93bbc5c76408" + integrity sha512-NY/NQpuf29gjt19XExjRyTj3z44Ohc2OwQZIR/RqHYn+cbdMeXIgJqV5vbPOCN8Umjmm5yVb7kP6oKNGjyeBvw== dependencies: "@ardatan/sync-fetch" "0.0.1" "@graphql-tools/delegate" "9.0.22" - "@graphql-tools/executor-graphql-ws" "0.0.6" - "@graphql-tools/executor-http" "0.1.0" + "@graphql-tools/executor-graphql-ws" "0.0.7" + "@graphql-tools/executor-http" "0.1.1" "@graphql-tools/executor-legacy-ws" "0.0.6" "@graphql-tools/utils" "9.1.4" - "@graphql-tools/wrap" "9.3.0" + "@graphql-tools/wrap" "9.3.1" "@types/ws" "^8.0.0" "@whatwg-node/fetch" "^0.6.0" isomorphic-ws "5.0.0" @@ -2020,10 +2020,10 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/wrap@9.3.0": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.0.tgz#6dbafdef0b7eb34e0efa9698159a425106cae04e" - integrity sha512-QOEg04kzFJ1WrlA2t/qjw85C20qPDJwIU/d+bDgDd1+cjTQcVrEt9bq9NilZZg9m9AAgZbeyDwut0oQvNMCGhw== +"@graphql-tools/wrap@9.3.1": + version "9.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.1.tgz#d0718d87080e7a54655d629a78b08c9d39f314ea" + integrity sha512-uzY1HKc7qMErWL3ybv8bFG3hI1rTJPVYQ8WeJkCF/r/+aHEkUj0Bo2PYZrZTX1UIr3Tb4P5GyhqYBgZOXraZjw== dependencies: "@graphql-tools/delegate" "9.0.22" "@graphql-tools/schema" "9.0.13" @@ -2042,9 +2042,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.31" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.31.tgz#2cbbeacb65191b9540772dc4114dbb2ed4db7b54" - integrity sha512-gsm4hiDhoMRwhR2o6mcFX4vwQwu8lELCudJ1xo6/kH5PSNVhfKPCS2EkN3b5ujBpE9zwH7zItGHtp4If1UXf3w== + version "1.0.34" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.34.tgz#e8bc5c56920979dff887ac27f16de94350f9012a" + integrity sha512-hFyDVKQnzRFlhIYlEk9G1rRzD8820h8jVnNeGQfpby3aBocq8BZ6m7ePz4vOGp0dMzYoFsCip5vftM3eDnQbcQ== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -2617,10 +2617,10 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@mui/base@5.0.0-alpha.113": - version "5.0.0-alpha.113" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.113.tgz#51ab20c3a4cf31db4a5540ecf17d7ea6f73b3001" - integrity sha512-XSjvyQWATM8uk+EJZvYna8D21kOXC42lwb3q4K70btuGieKlCIQLaHTTDV2OfD4+JfT4o3NJy3I4Td2co31RZA== +"@mui/base@5.0.0-alpha.114": + version "5.0.0-alpha.114" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.114.tgz#19125f28b7d09d1cc60550872440ecba699d8374" + integrity sha512-ZpsG2I+zTOAnVTj3Un7TxD2zKRA2OhEPGMcWs/9ylPlS6VuGQSXowPooZiqarjT7TZ0+1bOe8titk/t8dLFiGw== dependencies: "@babel/runtime" "^7.20.7" "@emotion/is-prop-valid" "^1.2.0" @@ -2631,10 +2631,10 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.11.4": - version "5.11.4" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.4.tgz#def5937e21443b197fd1998fd66721bd9c49a1bb" - integrity sha512-jWVwGM3vG4O0sXcW0VcIl+njCWbGCBF5vvjRpuKJajrz51AD7D6+fP1SkInZXVk5pRHf6Bnk/Yj9Of9gXxb/hA== +"@mui/core-downloads-tracker@^5.11.5": + version "5.11.5" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz#473c9b918d974f03acc07d29ce467bb91eba13c6" + integrity sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig== "@mui/icons-material@^5.10.14", "@mui/icons-material@^5.10.6": version "5.11.0" @@ -2644,14 +2644,14 @@ "@babel/runtime" "^7.20.6" "@mui/material@^5.10.14", "@mui/material@^5.10.7": - version "5.11.4" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.4.tgz#4dda0f993c9aa9678e1b9bce16adfe11e984dbd4" - integrity sha512-ZL/czK9ynrQJ6uyDwQgK+j7m1iKA1XKPON+rEPupwAu/bJ1XJxD+H/H2bkMM8UpOkzaucx/WuMbJJGQ60l7gBg== + version "5.11.5" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.5.tgz#b4867b4a6f3289e41f70b4393c075a799be8d24b" + integrity sha512-5fzjBbRYaB5MoEpvA32oalAWltOZ3/kSyuovuVmPc6UF6AG42lTtbdMLpdCygurFSGUMZYTg4Cjij52fKlDDgg== dependencies: "@babel/runtime" "^7.20.7" - "@mui/base" "5.0.0-alpha.113" - "@mui/core-downloads-tracker" "^5.11.4" - "@mui/system" "^5.11.4" + "@mui/base" "5.0.0-alpha.114" + "@mui/core-downloads-tracker" "^5.11.5" + "@mui/system" "^5.11.5" "@mui/types" "^7.2.3" "@mui/utils" "^5.11.2" "@types/react-transition-group" "^4.4.5" @@ -2703,10 +2703,10 @@ jss-plugin-vendor-prefixer "^10.9.2" prop-types "^15.8.1" -"@mui/system@^5.11.4": - version "5.11.4" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.4.tgz#a097d6451e12ac442a92ca6e9717b6b8e68ecd45" - integrity sha512-fE2Ts33V5zh7ouciwXgMm/a6sLvjIj9OMeojuHNYY7BStTxparC/Fp9CNUZNJwt76U6ZJC59aYScFSRQKbW08g== +"@mui/system@^5.11.5": + version "5.11.5" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.5.tgz#c880199634708c866063396f88d3fdd4c1dfcb48" + integrity sha512-KNVsJ0sgRRp2XBqhh4wPS5aacteqjwxgiYTVwVnll2fgkgunZKo3DsDiGMrFlCg25ZHA3Ax58txWGE9w58zp0w== dependencies: "@babel/runtime" "^7.20.7" "@mui/private-theming" "^5.11.2" @@ -2734,9 +2734,9 @@ react-is "^18.2.0" "@mui/x-data-grid@^5.17.4": - version "5.17.19" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.19.tgz#fe241f8e387fa8bb2ae0be9d477255755d571b7d" - integrity sha512-mVp2ZvPKMlVuTx8dYRv7yjRCFNGLQ6XK4c8uiGmC5NsbX58oGe3M3UH2/OLSCeOEUmcNLvZ8TH0HT306VfmW4g== + version "5.17.20" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.20.tgz#ab50eadc330f10cdc056910598229ebcdcd3b062" + integrity sha512-khOe5l2deUBxUCkY9qKzevjIcg0l2rab2GjVwRfpJ/FUlV9cEsTvA9fSv4ylo6BsPfENBH6GPjZwxkr5GsXYgw== dependencies: "@babel/runtime" "^7.18.9" "@mui/utils" "^5.10.3" @@ -3052,9 +3052,9 @@ integrity sha512-xQ6eUZl+RDyb/FiZe1h+U7qr/f4p/SrTSQcTPH2bjur3C5DbuW/zFgCU/b1P/xcIaEqJep+9ju4xDRi3rmChdQ== "@openzeppelin/hardhat-upgrades@^1.22.0": - version "1.22.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.22.0.tgz#2a432c72a428a9f277201646bc1a248021538f06" - integrity sha512-1qyZnDaxl0C8tne7ykNRa/fxw3FrNCY2M3fGuCiQW5DDkJoXhLgm3JVsXwl6X7q9mQSrik4vgBbI3ErmxmZTYg== + version "1.22.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.22.1.tgz#93e2b3f870c57b00a1ae8a330a2cdd9c2d634eb8" + integrity sha512-MdoitCTLl4zwMU8MeE/bCj+7JMWBEvd38XqJkw36PkJrXlbv6FedDVCPoumMAhpmtymm0nTwTYYklYG+L6WiiQ== dependencies: "@openzeppelin/upgrades-core" "^1.20.0" chalk "^4.1.0" @@ -3062,9 +3062,9 @@ proper-lockfile "^4.1.1" "@openzeppelin/upgrades-core@^1.20.0": - version "1.20.6" - resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.20.6.tgz#74f43d600151b8fda6e2d375f46ae0da55922620" - integrity sha512-KWdtlahm+iunlAlzLsdpBueanwEx0LLPfAkDL1p0C4SPjMiUqHHFlyGtmmWwdiqDpJ//605vfwkd5RqfnFrHSg== + version "1.21.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.21.0.tgz#e53439548ac1d7c3949ddcc0f5b14e335471411c" + integrity sha512-Eoi1N7fx0f7iWixd59AbWL3XyOtgRvHMboCK0p7Ep97shGeRimX8RXmJllDTRDdjtPeG8Q1icFnSMIfs8dxb/A== dependencies: cbor "^8.0.0" chalk "^4.1.0" @@ -3213,10 +3213,10 @@ redux-thunk "^2.4.2" reselect "^4.1.7" -"@remix-run/router@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.2.1.tgz#812edd4104a15a493dda1ccac0b352270d7a188c" - integrity sha512-XiY0IsyHR+DXYS5vBxpoBe/8veTeoRpMHP+vDosLZxL5bnpetzI0igkxkLZS235ldLzyfkxF+2divEwWHP3vMQ== +"@remix-run/router@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.3.0.tgz#b6ee542c7f087b73b3d8215b9bf799f648be71cb" + integrity sha512-nwQoYb3m4DDpHTeOwpJEuDt8lWVcujhYYSFGLluC+9es2PyLjm+jjq3IeRBQbwBtPLJE/lkuHuGHr8uQLgmJRA== "@repeaterjs/repeater@3.0.4": version "3.0.4" @@ -3731,12 +3731,12 @@ integrity sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.20" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" - integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" @@ -4011,9 +4011,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*", "@types/jest@^29.2.3": - version "29.2.5" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.5.tgz#c27f41a9d6253f288d1910d3c5f09484a56b73c0" - integrity sha512-H2cSxkKgVmqNHXP7TC2L/WUorrZu8ZigyRywfVzv6EyBlxj39n4C00hjXYQWsbwqgElaj/CiAeSRmk5GoaKTgw== + version "29.2.6" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.6.tgz#1d43c8e533463d0437edef30b2d45d5aa3d95b0a" + integrity sha512-XEUC/Tgw3uMh6Ho8GkUtQ2lPhY5Fmgyp3TdlkTJs1W9VgNxs+Ow/x3Elh8lHQKqCbZL0AubQuqWjHVT033Hhrw== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -4205,9 +4205,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^18.0.21", "@types/react@^18.0.25": - version "18.0.26" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" - integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== + version "18.0.27" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.27.tgz#d9425abe187a00f8a5ec182b010d4fd9da703b71" + integrity sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -4325,9 +4325,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.19.tgz#8dbecdc9ab48bee0cb74f6e3327de3fa0d0c98ae" - integrity sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ== + version "17.0.20" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.20.tgz#107f0fcc13bd4a524e352b41c49fe88aab5c54d5" + integrity sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A== dependencies: "@types/yargs-parser" "*" @@ -4455,25 +4455,25 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@5.8.3": - version "5.8.3" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.8.3.tgz#6c4e005ed8be08db8bdf52f31167839c54e82438" - integrity sha512-t9IdZjTh65NnYvVMQfGIVXaYSBkSxuBSJHdrwy8FbSD0WB0OiRLg3sXJpKIl36M5E7IRsx29qgiw3qXEhoObtg== +"@vercel/build-utils@5.9.0": + version "5.9.0" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.9.0.tgz#54b91e5b369c852d4a0d1bcba98d4c352d290643" + integrity sha512-LJRhd/ritLGHH+YvZ+DC7AW3Jr87UZHFHz2h2ENULDZ8qAo5LJH+y+Cg11uxfXkhQKK2f/AZQJXyKVyu1BBwdQ== -"@vercel/node-bridge@3.1.8": - version "3.1.8" - resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-3.1.8.tgz#ff0205f69e7640b703a99f3660b72113339c6f63" - integrity sha512-zF4lUQLq2uqCUl1vm9KITK/rOVPeCCuSle5skqVi4ybQDaXaHpumBT7NovuOD5ls4AJxqVcyiOOheRT4f/le3A== +"@vercel/node-bridge@3.1.10": + version "3.1.10" + resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-3.1.10.tgz#9b8e6e9e81534cd93e05e246d6c7b3b57fba75a5" + integrity sha512-0DQzF5pdyP+xd5f1Ss2fAO+9xIvzUhngRAPazwg4XHZE9iLkv2L+A1u3L8NYi4hoUlAAZQ5GF3txlm/oBn4tNw== "@vercel/node@^2.5.26": - version "2.8.11" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.11.tgz#f4b9cb0c05f0aa0efea7caa3b06d0020d2f866b1" - integrity sha512-XYkyNe+C+FIDc2TnlZxyS7cc0PbwGvuK3AFU75KaB898UUnOueEki2i0s8dokG1M9T3dT2QnbozyZ0anxT8jlQ== + version "2.8.14" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.14.tgz#573c1403e69ea2c7b370cdf9c47bd562e71efd52" + integrity sha512-ty4/FUgEpfQlqNm3j5HEaMhAHPJipRBzm6WVOs7Lvf5INx6OqLxbLBw3p/xcA18EWL0D8e5V41B7F8iQ3tBkqA== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "5.8.3" - "@vercel/node-bridge" "3.1.8" + "@vercel/build-utils" "5.9.0" + "@vercel/node-bridge" "3.1.10" "@vercel/static-config" "2.0.11" edge-runtime "2.0.0" esbuild "0.14.47" @@ -4878,22 +4878,7 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@whatwg-node/fetch@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.1.tgz#802a3e71ade25c04211efc2f1520a25a8829924f" - integrity sha512-sG39WLvcJxGZ+gDstnLSXR2IcnuvIOB51KxCFo0mEhFW0q2u8fZgolr0HPkL+zXwOJsnmT+9V3IRcqLnTXdqVQ== - dependencies: - "@peculiar/webcrypto" "^1.4.0" - abort-controller "^3.0.0" - busboy "^1.6.0" - form-data-encoder "^1.7.1" - formdata-node "^4.3.1" - node-fetch "^2.6.7" - undici "^5.12.0" - urlpattern-polyfill "^6.0.2" - web-streams-polyfill "^3.2.0" - -"@whatwg-node/fetch@^0.6.0": +"@whatwg-node/fetch@0.6.2", "@whatwg-node/fetch@^0.6.0": version "0.6.2" resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.2.tgz#fe4837505f6fc91bcfd6e12cdcec66f4aecfeecc" integrity sha512-fCUycF1W+bI6XzwJFnbdDuxIldfKM3w8+AzVCLGlucm0D+AQ8ZMm2j84hdcIhfV6ZdE4Y1HFVrHosAxdDZ+nPw== @@ -5567,9 +5552,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1295.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1295.0.tgz#8ca19c5b9c7740e1f6ad95096feddcd7ca3df301" - integrity sha512-HVYoFCyfiL8gzL/c0lSRTg8tWBLfqAEDfwzGe338ww/LahpmC6C07S71SBBIvtGq3dpd7IwEobAbubZDijrA0Q== + version "2.1297.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1297.0.tgz#ee9c2d1841a86521c98e8d9899b8f9c50d7e625d" + integrity sha512-hZbG8tfluU2ijCCBQnQzCiPbArFtaWqAUFAWAGZ0+Df7OzTm7ya9fLYV3j3L6p2PacAyAuxXaeMbgMHlHi/D3w== dependencies: buffer "4.9.2" events "1.1.1" @@ -5613,9 +5598,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.1.3: - version "1.2.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1" - integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q== + version "1.2.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.3.tgz#31a3d824c0ebf754a004b585e5f04a5f87e6c4ff" + integrity sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -7100,9 +7085,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001445" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz#cf2d4eb93f2bcdf0310de9dd6d18be271bc0b447" - integrity sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg== + version "1.0.30001446" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz#6d4ba828ab19f49f9bcd14a8430d30feebf1e0c5" + integrity sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw== carbites@^1.0.6: version "1.0.6" @@ -7373,9 +7358,9 @@ classnames@^2.2.5, classnames@^2.3.2: integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== clean-css@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" - integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== dependencies: source-map "~0.6.0" @@ -7808,16 +7793,16 @@ copy-to-clipboard@^3.3.1: toggle-selection "^1.0.6" core-js-compat@^3.25.1: - version "3.27.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.27.1.tgz#b5695eb25c602d72b1d30cbfba3cb7e5e4cf0a67" - integrity sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA== + version "3.27.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.27.2.tgz#607c50ad6db8fd8326af0b2883ebb987be3786da" + integrity sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg== dependencies: browserslist "^4.21.4" core-js-pure@^3.23.3: - version "3.27.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.27.1.tgz#ede4a6b8440585c7190062757069c01d37a19dca" - integrity sha512-BS2NHgwwUppfeoqOXqi08mUqS5FiZpuRuJJpKsaME7kJz0xxuk0xkhDdfMIlP/zLa80krBqss1LtD7f889heAw== + version "3.27.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.27.2.tgz#47e9cc96c639eefc910da03c3ece26c5067c7553" + integrity sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -7825,9 +7810,9 @@ core-js@^2.4.0, core-js@^2.5.0: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.19.2: - version "3.27.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.27.1.tgz#23cc909b315a6bb4e418bf40a52758af2103ba46" - integrity sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww== + version "3.27.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.27.2.tgz#85b35453a424abdcacb97474797815f4d62ebbf7" + integrity sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w== core-util-is@1.0.2: version "1.0.2" @@ -8214,9 +8199,9 @@ csstype@^3.0.2, csstype@^3.0.7, csstype@^3.1.1: integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== "d3-array@2 - 3", "d3-array@2.10.0 - 3", d3-array@^3.1.6: - version "3.2.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.1.tgz#39331ea706f5709417d31bbb6ec152e0328b39b3" - integrity sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ== + version "3.2.2" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.2.tgz#f8ac4705c5b06914a7e0025bbf8d5f1513f6a86e" + integrity sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ== dependencies: internmap "1 - 2" @@ -8744,9 +8729,9 @@ doctrine@^3.0.0: esutils "^2.0.2" dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: - version "0.5.15" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.15.tgz#357e74338704f36fada8b2e01a4bfc11ef436ac9" - integrity sha512-8o+oVqLQZoruQPYy3uAAQtc6YbtSiRq5aPJBhJ82YTJRHvI6ofhYAkC81WmjFTnfUbqg6T3aCglIpU9p/5e7Cw== + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== dom-converter@^0.2.0: version "0.2.0" @@ -10989,9 +10974,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -14164,16 +14149,16 @@ lint-staged@^13.0.3: yaml "^2.1.3" listr2@^5.0.5: - version "5.0.6" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.6.tgz#3c61153383869ffaad08a8908d63edfde481dff8" - integrity sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag== + version "5.0.7" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.7.tgz#de69ccc4caf6bea7da03c74f7a2ffecf3904bd53" + integrity sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw== dependencies: cli-truncate "^2.1.0" colorette "^2.0.19" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.7" + rxjs "^7.8.0" through "^2.3.8" wrap-ansi "^7.0.0" @@ -14749,9 +14734,9 @@ minimatch@5.0.1: brace-expansion "^2.0.1" minimatch@^5.0.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.4.tgz#4e2d39d872684e97b309a9104251c3f1aa4e9d1c" - integrity sha512-U0iNYXt9wALljzfnGkhFSy5sAC6/SCR3JrHrlsdJz4kF8MvhTRQNiC59iUi1iqsitV7abrNAJWElVL9pdnoUgw== + 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" @@ -14837,9 +14822,9 @@ mkdirp-promise@^5.0.1: mkdirp "*" mkdirp@*: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.0.0.tgz#1460f186644abf3b751e74f5ee82f47d191b586d" - integrity sha512-M9ecBPkCu6jZ+H19zruhjw/JB97qqVhyi1H2Lxxo2XAoIMdpHKQ8MfQiMzXk9SH/oJXIbM3oSAfLB8qSWJdCLA== + version "2.1.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f" + integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw== mkdirp@0.5.5: version "0.5.5" @@ -17239,19 +17224,19 @@ react-resize-detector@^7.1.2: lodash "^4.17.21" react-router-dom@^6.4.3: - version "6.6.2" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.6.2.tgz#bbf1f9b45855b218d22fc2d294b79408a084740a" - integrity sha512-6SCDXxRQqW5af8ImOqKza7icmQ47/EMbz572uFjzvcArg3lZ+04PxSPp8qGs+p2Y+q+b+S/AjXv8m8dyLndIIA== + version "6.7.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.7.0.tgz#0249f4ca4eb704562b8b0ff29caeb928c3a6ed38" + integrity sha512-jQtXUJyhso3kFw430+0SPCbmCmY1/kJv8iRffGHwHy3CkoomGxeYzMkmeSPYo6Egzh3FKJZRAL22yg5p2tXtfg== dependencies: - "@remix-run/router" "1.2.1" - react-router "6.6.2" + "@remix-run/router" "1.3.0" + react-router "6.7.0" -react-router@6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.6.2.tgz#556f7b56cff7fe32c5c02429fef3fcb2ecd08111" - integrity sha512-uJPG55Pek3orClbURDvfljhqFvMgJRo59Pktywkk8hUUkTY2aRfza8Yhl/vZQXs+TNQyr6tu+uqz/fLxPICOGQ== +react-router@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.7.0.tgz#db262684c13b5c2970694084ae9e8531718a0681" + integrity sha512-KNWlG622ddq29MAM159uUsNMdbX8USruoKnwMMQcs/QWZgFUayICSn2oB7reHce1zPj6CG18kfkZIunSSRyGHg== dependencies: - "@remix-run/router" "1.2.1" + "@remix-run/router" "1.3.0" react-scripts@5.0.1, react-scripts@^5.0.1: version "5.0.1" @@ -18011,7 +17996,7 @@ rxjs@^6.6.3: dependencies: tslib "^1.9.0" -rxjs@^7.0.0, rxjs@^7.5.7: +rxjs@^7.0.0, rxjs@^7.8.0: version "7.8.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== @@ -19943,9 +19928,9 @@ unbox-primitive@^1.0.2: which-boxed-primitive "^1.0.2" undici@^5.12.0, undici@^5.14.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.15.0.tgz#cb8437c43718673a8be59df0fdd4856ff6689283" - integrity sha512-wCAZJDyjw9Myv+Ay62LAoB+hZLPW9SmKbQkbHIhMw/acKSlpn7WohdMUc/Vd4j1iSMBO0hWwU8mjB7a5p5bl8g== + version "5.15.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.15.1.tgz#5292454b1441da486a80c0f3ada1e88f1765ff8d" + integrity sha512-XLk8g0WAngdvFqTI+VKfBtM4YWXgdxkf1WezC771Es0Dd+Pm1KmNx8t93WTC+Hh9tnghmVxkclU1HN+j+CvIUA== dependencies: busboy "^1.6.0" From c27e31776606ca556129261d25faf16214b93f4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Fri, 20 Jan 2023 11:33:10 +0100 Subject: [PATCH 073/216] Merge branch 'feat/staking-slashing' into feat/reputation-contract --- .../src/services/escrow.test.ts | 3 +- .../src/services/fortune.test.ts | 3 +- .../fortune/reputation-oracle/src/index.ts | 2 +- .../src/services/escrow.test.ts | 3 +- yarn.lock | 46 +++++++++---------- 5 files changed, 30 insertions(+), 27 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts index fbd7360203..cbf37e75a6 100644 --- a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts @@ -106,7 +106,8 @@ describe('Escrow', () => { 10, 10, 'manifestUrl', - 'manifestUrl' + 'manifestUrl', + 3 ) .send({ from: owner.address }); }); diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts index e3bcdd5c65..4044632ebf 100644 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts +++ b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts @@ -119,7 +119,8 @@ describe('Fortune', () => { 10, 10, 'manifestUrl', - 'manifestUrl' + 'manifestUrl', + 3 ) .send({ from: launcher.address }); diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index d11195fa3c..4772f9171e 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -17,7 +17,7 @@ const ethHttpServer = process.env.ETH_HTTP_SERVER || 'http://127.0.0.1:8545'; const port = process.env.PORT || 3006; const reputationAddress = process.env.REPUTATION_ADDRESS || - '0x09635F643e140090A9A8Dcd712eD6285858ceBef'; + '0xc5a5C42992dECbae36851359345FE25997F5C42d'; const web3 = new Web3(ethHttpServer); const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts index 4b3deceb80..3c2d3fdc0b 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts @@ -109,7 +109,8 @@ describe('Fortune', () => { 10, 10, 'manifestUrl', - 'manifestUrl' + 'manifestUrl', + 3 ) .send({ from: launcher.address }); }); diff --git a/yarn.lock b/yarn.lock index d30588fa00..a8ffe5b880 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1236,9 +1236,9 @@ integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== "@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz#1bfafe4b7ed0f3e4105837e056e0a89b108ebe36" - integrity sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.0.tgz#923ebf8ba47e854863ae72510d9cbf7b44d525ea" + integrity sha512-zJ6hb3FDgBbO8d2e83vg6zq7tNvDqSq9RwdwfzJ8tdm9JHNvANq2fqwyRn6mlpUb7CwTs5ILdUrGwi9Gk4vY5w== "@dabh/diagnostics@^2.0.2": version "2.0.3" @@ -2042,9 +2042,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.34" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.34.tgz#e8bc5c56920979dff887ac27f16de94350f9012a" - integrity sha512-hFyDVKQnzRFlhIYlEk9G1rRzD8820h8jVnNeGQfpby3aBocq8BZ6m7ePz4vOGp0dMzYoFsCip5vftM3eDnQbcQ== + version "1.0.36" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.36.tgz#d6da45a501e09e7f3ad48448c18815af0641f520" + integrity sha512-WiEWhX2xNoOCUSp1ERxiga1FwL4acaJHxdIlbm4l8BY/F+CuWvuis1CoSonaACUL+ugdNNe1BoAV0ngsnt8mXA== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -5552,9 +5552,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1255.0: - version "2.1297.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1297.0.tgz#ee9c2d1841a86521c98e8d9899b8f9c50d7e625d" - integrity sha512-hZbG8tfluU2ijCCBQnQzCiPbArFtaWqAUFAWAGZ0+Df7OzTm7ya9fLYV3j3L6p2PacAyAuxXaeMbgMHlHi/D3w== + version "2.1298.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1298.0.tgz#cc11aaaf18c7b9b6c37bc060e0646d7abdc8f0af" + integrity sha512-UMaQe1Rohqguwl4V8e47SHrerboP5QpD7bx6mVZIoV2+AQ5xf8CyXjYXB95u5yvPyjIvpoRxiPKKOtnHL77q4A== dependencies: buffer "4.9.2" events "1.1.1" @@ -8106,9 +8106,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.2.1.tgz#f6f59e2c4249bcb5ca5606fc4ab6f9a808d55486" - integrity sha512-btohrCpVaLqOoMt90aumHe6HU4c06duiYA8ymwtpGfwuZAhWKDBve/c2k+E85Jeq5iojPkeonqiKV+aLeY8QlA== + version "7.3.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.3.0.tgz#b1d4580a21da34f792047ad0556fbb4b53617ead" + integrity sha512-9YymIstaCsXo9qQSxrXzOv27bXJmb/q/LkbORepKzKjHE0TS6Pn3ewoazoBDGvODUvPO0pMG2O4YzVGmVGYK5A== cssesc@^3.0.0: version "3.0.0" @@ -10716,9 +10716,9 @@ 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: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -10974,9 +10974,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -13570,9 +13570,9 @@ jmespath@0.16.0: integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== js-sdsl@^4.1.4: - version "4.2.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" - integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" @@ -16892,9 +16892,9 @@ punycode@^1.3.2: integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0, punycode@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" - integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== pvtsutils@^1.3.2: version "1.3.2" From 42a26763d69e58a3e3ff6d263f397aeb4715eb44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Fri, 20 Jan 2023 11:57:27 +0100 Subject: [PATCH 074/216] Fix lint and typescript sdk --- .../src/components/Token/TokenView.tsx | 5 +---- .../fortune/recording-oracle/src/services/fortune.ts | 2 +- .../fortune/tests/e2e-backend/CustomSequencer.js | 10 ---------- .../fortune/tests/e2e-backend/positiveFlow.test.js | 4 ++-- packages/sdk/typescript/human-protocol-sdk/src/job.ts | 4 +++- 5 files changed, 7 insertions(+), 18 deletions(-) delete mode 100644 packages/examples/fortune/tests/e2e-backend/CustomSequencer.js diff --git a/packages/apps/escrow-dashboard/src/components/Token/TokenView.tsx b/packages/apps/escrow-dashboard/src/components/Token/TokenView.tsx index acfee77107..b7bf07a84b 100644 --- a/packages/apps/escrow-dashboard/src/components/Token/TokenView.tsx +++ b/packages/apps/escrow-dashboard/src/components/Token/TokenView.tsx @@ -1,14 +1,11 @@ -import { Grid, Typography } from '@mui/material'; +import { Grid } from '@mui/material'; import * as React from 'react'; import { CardTextBlock } from 'src/components/Cards'; -import BitfinexIcon from 'src/components/Icons/BitfinexIcon'; -import useBitfinexTicker from 'src/hooks/useBitfinexTicker'; import { useTokenStatsByChainId } from 'src/state/token/hooks'; export const TokenView: React.FC = (): React.ReactElement => { const { totalTransferEventCount, holders, totalSupply } = useTokenStatsByChainId(); - const bitfinexTicker = useBitfinexTicker(); return ( diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.ts index 250e53c290..abcfdff439 100644 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.ts +++ b/packages/examples/fortune/recording-oracle/src/services/fortune.ts @@ -99,7 +99,7 @@ export async function addFortune( const fortunes = getFortunes(escrowAddress); const resultUrl = await uploadResults( - fortunes.map(({ fortune }: { fortune: any }) => fortune), + fortunes.map(({ fortune }: { fortune: string }) => fortune), escrowAddress ); // TODO calculate the URL hash(?) diff --git a/packages/examples/fortune/tests/e2e-backend/CustomSequencer.js b/packages/examples/fortune/tests/e2e-backend/CustomSequencer.js deleted file mode 100644 index ae7f1ef2b3..0000000000 --- a/packages/examples/fortune/tests/e2e-backend/CustomSequencer.js +++ /dev/null @@ -1,10 +0,0 @@ -const Sequencer = require('@jest/test-sequencer').default; - -class CustomSequencer extends Sequencer { - sort(tests) { - const copyTests = Array.from(tests); - return [...tests].sort((a, b) => (a.path > b.path ? 1 : -1)); - } - } - - module.exports = CustomSequencer; \ No newline at end of file diff --git a/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js b/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js index 482853ed71..52e7cdda0f 100644 --- a/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js +++ b/packages/examples/fortune/tests/e2e-backend/positiveFlow.test.js @@ -20,10 +20,10 @@ const { escrowFundAmount, } = require('./constants'); const web3 = new Web3(urls.ethHTTPServer); -let owner, launcher; + describe('Positive flow', () => { beforeAll(async () => { - [owner, launcher] = await setupAccounts(); + await setupAccounts(); }); test('Flow', async () => { diff --git a/packages/sdk/typescript/human-protocol-sdk/src/job.ts b/packages/sdk/typescript/human-protocol-sdk/src/job.ts index e98fc20168..cb647c2e01 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/job.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/job.ts @@ -385,6 +385,7 @@ export class Job { this.manifestData?.manifest?.reputation_oracle_addr || ''; const recordingOracleAddr = this.manifestData?.manifest?.recording_oracle_addr || ''; + const remainingFortunes = this.manifestData?.manifest?.job_total_tasks || 0; this._logger.info( `Transferring ${this.amount} HMT to ${this.contractData.escrow.address}...` @@ -438,7 +439,8 @@ export class Job { reputationOracleStake, recordingOracleStake, this.manifestData?.manifestlink?.url, - this.manifestData?.manifestlink?.hash + this.manifestData?.manifestlink?.hash, + remainingFortunes ); if (!contractSetup) { From 9647c2c15807e174290dcb94e0efd351409cdf4c Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 20 Jan 2023 12:06:25 +0100 Subject: [PATCH 075/216] convert services to fastify plugins --- .../launcher/server/src/plugins/escrow.ts | 67 +++++++++++++++ .../fortune/launcher/server/src/plugins/s3.ts | 82 +++++++++++++++++++ .../launcher/server/src/plugins/web3.ts | 58 +++++++++++++ .../launcher/server/src/routes/escrow.ts | 26 ++++-- .../fortune/launcher/server/src/server.ts | 12 +-- .../server/src/services/escrowService.ts | 73 ----------------- .../launcher/server/src/services/s3Service.ts | 33 -------- .../fortune/launcher/server/src/utils/web3.ts | 14 ---- 8 files changed, 233 insertions(+), 132 deletions(-) create mode 100644 packages/examples/fortune/launcher/server/src/plugins/escrow.ts create mode 100644 packages/examples/fortune/launcher/server/src/plugins/s3.ts create mode 100644 packages/examples/fortune/launcher/server/src/plugins/web3.ts delete mode 100644 packages/examples/fortune/launcher/server/src/services/escrowService.ts delete mode 100644 packages/examples/fortune/launcher/server/src/services/s3Service.ts delete mode 100644 packages/examples/fortune/launcher/server/src/utils/web3.ts diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts new file mode 100644 index 0000000000..cfe338e888 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -0,0 +1,67 @@ +import fp from "fastify-plugin"; +import { FastifyPluginAsync } from "fastify"; +import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json' assert { type: "json" }; +import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; +import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; +import { escrow as escrowSchema } from '../schemas/escrow.js'; +import Web3 from 'web3'; +import { REC_ORACLE_ADDRESS, REC_ORACLE_PERCENTAGE_FEE, REP_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE } from "../constants/oracles.js"; + +class Escrow { + async setupEscrow (web3: Web3, escrowAddress: string, escrow: typeof escrowSchema.properties, url: string) { + const escrowContract = new web3.eth.Contract(EscrowAbi as [], escrowAddress); + const gas = await escrowContract.methods + .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + const result = await escrowContract.methods + .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); + } + + async checkApproved (web3: Web3, tokenAddress: string, jobRequester: string, fundAmount: string) { + const hmtoken = new web3.eth.Contract(HMTokenAbi as [], tokenAddress); + const allowance = await hmtoken.methods + .allowance(jobRequester, web3.eth.defaultAccount) + .call(); + const balance = await hmtoken.methods + .balanceOf(jobRequester) + .call(); + return allowance == fundAmount && balance >= fundAmount; + } + + async createEscrow (web3: Web3, factoryAddress: string, jobRequester: string) { + const escrowFactory = new web3.eth.Contract(EscrowFactoryAbi as [], factoryAddress); + const gas = await escrowFactory.methods + .createEscrow([jobRequester]) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + var result = await escrowFactory.methods + .createEscrow([]) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); + return result.events.Launched.returnValues.escrow; + } + + async fundEscrow (web3: Web3, tokenAddress: string, jobRequester: string, escrowAddress: string, fundAmount: string) { + const hmtoken = new web3.eth.Contract(HMTokenAbi as [], tokenAddress); + const gas = await hmtoken.methods + .transferFrom(jobRequester, escrowAddress, fundAmount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + var result = await hmtoken.methods + .transferFrom(jobRequester, escrowAddress, fundAmount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); + } +} + +const escrowPlugin: FastifyPluginAsync = async (server) => { + server.decorate("escrow", new Escrow()); +}; + +declare module "fastify" { + interface FastifyInstance { + escrow: Escrow; + } +} + +export default fp(escrowPlugin); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/plugins/s3.ts b/packages/examples/fortune/launcher/server/src/plugins/s3.ts new file mode 100644 index 0000000000..20fbdf3b8d --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/plugins/s3.ts @@ -0,0 +1,82 @@ +import "dotenv/config"; +import fp from "fastify-plugin"; +import { FastifyPluginAsync } from "fastify"; +import * as Minio from 'minio'; +import { escrow as escrowSchema } from '../schemas/escrow.js'; +import { Type } from "@sinclair/typebox"; +import Ajv from "ajv"; + +const ConfigSchema = Type.Strict( + Type.Object({ + S3_HOST: Type.String(), + S3_PORT: Type.Number(), + S3_ACCESS_KEY: Type.String(), + S3_SECRET_KEY: Type.String(), + S3_BUCKET_NAME: Type.String(), + S3_BASE_URL: Type.String() + }) + ); + + const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, + }); + + +class S3Client { + private s3Client: Minio.Client; + private s3Host = process.env.S3_HOST as string; + private s3Port = Number(process.env.S3_PORT); + private s3AccessKey = process.env.S3_ACCESS_KEY as string; + private s3SecretKey = process.env.S3_SECRET_KEY as string; + private s3BucketName = process.env.S3_BUCKET_NAME as string; + private s3BaseUrl = process.env.S3_BASE_URL as string; + constructor() { + this.s3Client = new Minio.Client({ + endPoint: this.s3Host, + port: this.s3Port, + accessKey: this.s3AccessKey, + secretKey: this.s3SecretKey, + useSSL: false, + }); + } + + async uploadManifest(escrow: typeof escrowSchema.properties, escrowAddress: string) { + const fileName = `${escrowAddress}-manifest.json`; + + const bucketExists = await this.s3Client.bucketExists(this.s3BucketName); + if (!bucketExists) { + await this.s3Client.makeBucket(process.env.S3_BUCKET_NAME as string, ''); + } + await this.s3Client.putObject( + this.s3BucketName, + fileName, + JSON.stringify(escrow), + { 'Content-Type': 'application/json' } + ); + return `${this.s3BaseUrl}${fileName}` +} + } + +const s3Plugin: FastifyPluginAsync = async (server) => { + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + ".env file validation failed - " + + JSON.stringify(validate.errors, null, 2) + ); + } + server.decorate("s3", new S3Client()); +}; + +declare module "fastify" { + interface FastifyInstance { + s3: S3Client; + } +} + +export default fp(s3Plugin); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/plugins/web3.ts b/packages/examples/fortune/launcher/server/src/plugins/web3.ts new file mode 100644 index 0000000000..d0b46ea358 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/plugins/web3.ts @@ -0,0 +1,58 @@ +import "dotenv/config"; +import fp from "fastify-plugin"; +import { FastifyPluginAsync } from "fastify"; +import * as Minio from 'minio'; +import { Type } from "@sinclair/typebox"; +import Ajv from "ajv"; +import { IEscrowNetwork } from 'constants/networks'; +import Web3 from 'web3'; + +const ConfigSchema = Type.Strict( + Type.Object({ + ETH_PRIVATE_KEY: Type.String() + }) + ); + + const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, + }); + + +class Web3Client { + private privKey = process.env.ETH_PRIVATE_KEY as string; + constructor() { + } + + createWeb3 (network: IEscrowNetwork) { + const ethHttpServer = network.rpcUrl as string; + const web3 = new Web3(ethHttpServer); + const account = web3.eth.accounts.privateKeyToAccount(`0x${this.privKey}`); + web3.eth.accounts.wallet.add(account); + web3.eth.defaultAccount = account.address; + return web3; + } + } + +const web3Plugin: FastifyPluginAsync = async (server) => { + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + ".env file validation failed - " + + JSON.stringify(validate.errors, null, 2) + ); + } + server.decorate("web3", new Web3Client()); +}; + +declare module "fastify" { + interface FastifyInstance { + web3: Web3Client; + } +} + +export default fp(web3Plugin); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/routes/escrow.ts b/packages/examples/fortune/launcher/server/src/routes/escrow.ts index 01681ff675..4dc64a874d 100644 --- a/packages/examples/fortune/launcher/server/src/routes/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/routes/escrow.ts @@ -2,17 +2,16 @@ import { Type } from '@sinclair/typebox'; import { FastifyPluginAsync } from 'fastify'; import { escrow as escrowSchema } from '../schemas/escrow.js'; import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from '../constants/networks.js'; -import { launchEscrow } from '../services/escrowService.js' export const createEscrow: FastifyPluginAsync = async (server) => { let escrowNetwork: IEscrowNetwork; - let escrow: typeof escrowSchema.properties; + let escrowData: typeof escrowSchema.properties; server.post('/escrow', { preValidation: (request, reply, done) => { - escrow = request.body as typeof escrowSchema.properties; - const chainId = Number(escrow.chainId) as ChainId; + escrowData = request.body as typeof escrowSchema.properties; + const chainId = Number(escrowData.chainId) as ChainId; if (!chainId) return new Error('Invalid chain Id'); @@ -34,7 +33,22 @@ export const createEscrow: FastifyPluginAsync = async (server) => { }, }, async function (request, reply) { - const escrowAddress = await launchEscrow(escrowNetwork, escrow); - return escrowAddress; + const { escrow, s3, web3 } = server; + + const web3Client = web3.createWeb3(escrowNetwork); + + const jobRequester = escrowData.jobRequester as unknown as string; + const token = escrowData.token as unknown as string; + const fundAmount = web3Client.utils.toWei(Number(escrowData.fundAmount).toString(), 'ether'); + + if (await escrow.checkApproved(web3Client, token, jobRequester, fundAmount)) { + const escrowAddress = await escrow.createEscrow(web3Client, escrowNetwork.factoryAddress, jobRequester); + await escrow.fundEscrow(web3Client, token, jobRequester, escrowAddress, fundAmount); + const url = await s3.uploadManifest(escrowData, escrowAddress); + await escrow.setupEscrow(web3Client, escrowAddress, escrowData, url); + return escrowAddress; + } + + return 'Balance or allowance not enough for funding the escrow'; }); } \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/server.ts b/packages/examples/fortune/launcher/server/src/server.ts index ffccc08639..2841ea7a57 100644 --- a/packages/examples/fortune/launcher/server/src/server.ts +++ b/packages/examples/fortune/launcher/server/src/server.ts @@ -1,10 +1,10 @@ import fastify from 'fastify'; import config from './plugins/config.js'; -// import web3 from './plugins/web3.js'; -// import s3 from './plugins/s3.js' -// import storage from './plugins/storage.js'; +import s3 from './plugins/s3.js' import routes from './routes/index.js'; import cors from '@fastify/cors' +import escrow from './plugins/escrow.js'; +import web3 from './plugins/web3.js'; const server = fastify({ ajv: { @@ -21,11 +21,11 @@ const server = fastify({ await server .register(config) -// .register(web3) -// .register(s3) -// .register(storage) + .register(s3) .register(cors) .register(routes) + .register(escrow) + .register(web3) .ready(); export default server; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/services/escrowService.ts b/packages/examples/fortune/launcher/server/src/services/escrowService.ts deleted file mode 100644 index 1111cd3105..0000000000 --- a/packages/examples/fortune/launcher/server/src/services/escrowService.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { IEscrowNetwork } from "constants/networks.js"; -import { createWeb3 } from "../utils/web3.js"; -import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json' assert { type: "json" }; -import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; -import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; -import { escrow as escrowSchema } from '../schemas/escrow.js'; -import Web3 from "web3"; -import { uploadManifest } from "./s3Service.js"; -import { REC_ORACLE_ADDRESS, REC_ORACLE_PERCENTAGE_FEE, REP_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE } from "../constants/oracles.js"; - -export const launchEscrow = async (network: IEscrowNetwork, escrow: typeof escrowSchema.properties) => { - const web3 = createWeb3(network); - const jobRequester = escrow.jobRequester as unknown as string; - const token = escrow.token as unknown as string; - const fundAmount = web3.utils.toWei(Number(escrow.fundAmount).toString(), 'ether'); - if (await checkApproved(web3, token, jobRequester, fundAmount)) { - const escrowAddress = await createEscrow(web3, network.factoryAddress, jobRequester); - await fundEscrow(web3, token, jobRequester, escrowAddress, fundAmount); - await setupEscrow(web3, escrowAddress, escrow); - return escrowAddress; - } - return 'Balance or allowance not enough for funding the escrow'; -} - -export const checkApproved = async (web3: Web3, tokenAddress: string, jobRequester: string, fundAmount: string) => { - const hmtoken = new web3.eth.Contract(HMTokenAbi as [], tokenAddress); - const allowance = await hmtoken.methods - .allowance(jobRequester, web3.eth.defaultAccount) - .call(); - const balance = await hmtoken.methods - .balanceOf(jobRequester) - .call(); - console.log(balance) - console.log(fundAmount) - console.log(allowance) - return allowance == fundAmount && balance >= fundAmount; -} - -export const createEscrow = async (web3: Web3, factoryAddress: string, jobRequester: string) => { - const escrowFactory = new web3.eth.Contract(EscrowFactoryAbi as [], factoryAddress); - const gas = await escrowFactory.methods - .createEscrow([jobRequester]) - .estimateGas({ from: web3.eth.defaultAccount }); - const gasPrice = await web3.eth.getGasPrice(); - var result = await escrowFactory.methods - .createEscrow([]) - .send({ from: web3.eth.defaultAccount, gas, gasPrice }); - return result.events.Launched.returnValues.escrow; -}; - -export const fundEscrow = async (web3: Web3, tokenAddress: string, jobRequester: string, escrowAddress: string, fundAmount: string) => { - const hmtoken = new web3.eth.Contract(HMTokenAbi as [], tokenAddress); - const gas = await hmtoken.methods - .transferFrom(jobRequester, escrowAddress, fundAmount) - .estimateGas({ from: web3.eth.defaultAccount }); - const gasPrice = await web3.eth.getGasPrice(); - var result = await hmtoken.methods - .transferFrom(jobRequester, escrowAddress, fundAmount) - .send({ from: web3.eth.defaultAccount, gas, gasPrice }); -}; - -export const setupEscrow = async (web3: Web3, escrowAddress: string, escrow: typeof escrowSchema.properties) => { - const url = await uploadManifest(escrow, escrowAddress); - console.log(url); - const escrowContract = new web3.eth.Contract(EscrowAbi as [], escrowAddress); - const gas = await escrowContract.methods - .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url) - .estimateGas({ from: web3.eth.defaultAccount }); - const gasPrice = await web3.eth.getGasPrice(); - var result = await escrowContract.methods - .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url) - .send({ from: web3.eth.defaultAccount, gas, gasPrice }); -}; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/services/s3Service.ts b/packages/examples/fortune/launcher/server/src/services/s3Service.ts deleted file mode 100644 index a0c9677f28..0000000000 --- a/packages/examples/fortune/launcher/server/src/services/s3Service.ts +++ /dev/null @@ -1,33 +0,0 @@ -import * as Minio from 'minio'; -import { escrow as escrowSchema } from '../schemas/escrow.js'; - -const minioHost = process.env.MINIO_HOST || 'storage.googleapis.com'; -const minioPort = Number(process.env.MINIO_PORT) || 80; -const minioAccessKey = process.env.MINIO_ACCESS_KEY || ''; -const minioSecretKey = process.env.MINIO_SECRET_KEY || ''; -const minioBucketName = process.env.MINIO_BUCKET_NAME || ''; -const baseUrl = ''; - -const minioClient = new Minio.Client({ - endPoint: minioHost, - port: minioPort, - accessKey: minioAccessKey, - secretKey: minioSecretKey, - useSSL: false, -}); - -export async function uploadManifest(escrow: typeof escrowSchema.properties, escrowAddress: string) { - const fileName = `${escrowAddress}-manifest.json`; - - const bucketExists = await minioClient.bucketExists(minioBucketName); - if (!bucketExists) { - await minioClient.makeBucket(minioBucketName, ''); - } - await minioClient.putObject( - minioBucketName, - fileName, - JSON.stringify(escrow), - { 'Content-Type': 'application/json' } - ); - return `${baseUrl}${fileName}` -} diff --git a/packages/examples/fortune/launcher/server/src/utils/web3.ts b/packages/examples/fortune/launcher/server/src/utils/web3.ts deleted file mode 100644 index 6aeb1bb780..0000000000 --- a/packages/examples/fortune/launcher/server/src/utils/web3.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { IEscrowNetwork } from 'constants/networks'; -import Web3 from 'web3'; - -const privKey = process.env.ETH_PRIVATE_KEY || - ''; - -export const createWeb3 = (network: IEscrowNetwork) => { - const ethHttpServer = network.rpcUrl as string; - const web3 = new Web3(ethHttpServer); - const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); - web3.eth.accounts.wallet.add(account); - web3.eth.defaultAccount = account.address; - return web3; -} \ No newline at end of file From c3a26c6bd032889ce7ce0d020aca596cd071b5af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Fri, 20 Jan 2023 17:22:15 +0100 Subject: [PATCH 076/216] Add proxy for reputation --- packages/core/contracts/Reputation.sol | 28 ++++- packages/core/contracts/test/ReputationV0.sol | 114 ++++++++++++++++++ packages/core/package.json | 2 +- packages/core/scripts/deploy.ts | 13 +- packages/core/test/Reputation.ts | 81 ++++++++++++- .../fortune/reputation-oracle/src/index.ts | 2 +- .../src/services/reputation.test.ts | 8 +- .../fortune/tests/e2e-backend/constants.js | 2 +- yarn.lock | 6 +- 9 files changed, 238 insertions(+), 18 deletions(-) create mode 100644 packages/core/contracts/test/ReputationV0.sol diff --git a/packages/core/contracts/Reputation.sol b/packages/core/contracts/Reputation.sol index 9c71b12b19..f25e905f20 100644 --- a/packages/core/contracts/Reputation.sol +++ b/packages/core/contracts/Reputation.sol @@ -1,11 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.6.2; +import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; +import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; import './utils/SignedSafeMath.sol'; import './interfaces/IStaking.sol'; -import '@openzeppelin/contracts/access/Ownable.sol'; -contract Reputation is Ownable { +contract Reputation is OwnableUpgradeable, UUPSUpgradeable { using SignedSafeMath for int256; using Stakes for Stakes.Staker; @@ -22,7 +23,18 @@ contract Reputation is Ownable { int256 private constant MAX_REPUTATION = 100; mapping(address => int256) public reputations; - constructor(address _staking, uint256 _minimumStake) { + function initialize( + address _staking, + uint256 _minimumStake + ) external payable virtual initializer { + __Ownable_init_unchained(); + __Reputation_init_unchained(_staking, _minimumStake); + } + + function __Reputation_init_unchained( + address _staking, + uint256 _minimumStake + ) internal onlyInitializing { require(_staking != address(0), 'Zero address provided'); staking = _staking; _setMinimumStake(_minimumStake); @@ -109,4 +121,14 @@ contract Reputation is Ownable { require(_minimumStake > 0, 'Must be a positive number'); minimumStake = _minimumStake; } + + // solhint-disable-next-line no-empty-blocks + function _authorizeUpgrade(address) internal override onlyOwner {} + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[43] private __gap; } diff --git a/packages/core/contracts/test/ReputationV0.sol b/packages/core/contracts/test/ReputationV0.sol new file mode 100644 index 0000000000..0cde6a4d50 --- /dev/null +++ b/packages/core/contracts/test/ReputationV0.sol @@ -0,0 +1,114 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.6.2; + +import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; +import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; +import '../utils/SignedSafeMath.sol'; +import '../interfaces/IStaking.sol'; + +contract ReputationV0 is OwnableUpgradeable, UUPSUpgradeable { + using SignedSafeMath for int256; + using Stakes for Stakes.Staker; + + struct Worker { + address workerAddress; + int256 reputation; + } + + // Staking contract address + address public staking; + uint256 public minimumStake; + + int256 private constant MIN_REPUTATION = 1; + int256 private constant MAX_REPUTATION = 100; + mapping(address => int256) public reputations; + + function initialize( + address _staking, + uint256 _minimumStake + ) external payable virtual initializer { + __Ownable_init_unchained(); + __Reputation_init_unchained(_staking, _minimumStake); + } + + function __Reputation_init_unchained( + address _staking, + uint256 _minimumStake + ) internal onlyInitializing { + require(_staking != address(0), 'Zero address provided'); + staking = _staking; + _setMinimumStake(_minimumStake); + } + + function addReputations(Worker[] memory _workers) public { + Stakes.Staker memory staker = IStaking(staking).getStaker(msg.sender); + require( + staker.tokensAvailable() > minimumStake, + 'Needs to stake HMT tokens to modify reputations.' + ); + + for (uint256 i = 0; i < _workers.length; i++) { + if ( + reputations[_workers[i].workerAddress].add( + _workers[i].reputation + ) > + MAX_REPUTATION || + (reputations[_workers[i].workerAddress] == 0 && + _workers[i].reputation.add(50) > MAX_REPUTATION) + ) { + reputations[_workers[i].workerAddress] = MAX_REPUTATION; + } else if ( + (reputations[_workers[i].workerAddress] == 0 && + _workers[i].reputation.add(50) < MIN_REPUTATION) || + (reputations[_workers[i].workerAddress].add( + _workers[i].reputation + ) < + MIN_REPUTATION && + reputations[_workers[i].workerAddress] != 0) + ) { + reputations[_workers[i].workerAddress] = MIN_REPUTATION; + } else { + if (reputations[_workers[i].workerAddress] == 0) { + reputations[_workers[i].workerAddress] = _workers[i] + .reputation + .add(50); + } else { + reputations[_workers[i].workerAddress] = reputations[ + _workers[i].workerAddress + ].add(_workers[i].reputation); + } + } + } + } + + function getReputations( + address[] memory _workers + ) public view returns (Worker[] memory) { + Worker[] memory returnedValues = new Worker[](_workers.length); + + for (uint256 i = 0; i < _workers.length; i++) { + returnedValues[i] = Worker(_workers[i], reputations[_workers[i]]); + } + + return returnedValues; + } + + function setMinimumStake(uint256 _minimumStake) external onlyOwner { + _setMinimumStake(_minimumStake); + } + + function _setMinimumStake(uint256 _minimumStake) private { + require(_minimumStake > 0, 'Must be a positive number'); + minimumStake = _minimumStake; + } + + // solhint-disable-next-line no-empty-blocks + function _authorizeUpgrade(address) internal override onlyOwner {} + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[43] private __gap; +} diff --git a/packages/core/package.json b/packages/core/package.json index eb155ed3c9..e869decffd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.36", + "version": "1.0.37", "files": [ "contracts/**/*.sol", "abis/**/*.json", diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index c48fffc527..439b6b2fd5 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -72,12 +72,17 @@ async function main() { } const Reputation = await ethers.getContractFactory('Reputation'); - const reputationContract = await Reputation.deploy( - stakingContract.address, - 1 + const reputationContract = await upgrades.deployProxy( + Reputation, + [stakingContract.address, 1], + { initializer: 'initialize', kind: 'uups' } ); await reputationContract.deployed(); - console.log('Reputation Contract Address:', reputationContract.address); + console.log('Reputation Proxy Address: ', reputationContract.address); + console.log( + 'Reputation Implementation Address: ', + await upgrades.erc1967.getImplementationAddress(reputationContract.address) + ); } main().catch((error) => { diff --git a/packages/core/test/Reputation.ts b/packages/core/test/Reputation.ts index aeef44432e..a20bec3dda 100644 --- a/packages/core/test/Reputation.ts +++ b/packages/core/test/Reputation.ts @@ -1,4 +1,4 @@ -import { expect } from 'chai'; +import { assert, expect } from 'chai'; import { Signer } from 'ethers'; import { ethers, upgrades } from 'hardhat'; import { HMToken, Reputation, Staking } from '../typechain-types'; @@ -51,8 +51,14 @@ describe('Reputation', function () { // Deploy Reputation Contract const Reputation = await ethers.getContractFactory('Reputation'); - - reputation = await Reputation.deploy(staking.address, minimumStake); + reputation = (await upgrades.deployProxy( + Reputation, + [staking.address, minimumStake], + { + kind: 'uups', + initializer: 'initialize', + } + )) as Reputation; }); it('Should set the right staking address', async () => { @@ -124,4 +130,73 @@ describe('Reputation', function () { expect(reputations[1].workerAddress).to.equal(worker2); expect(reputations[1].reputation).to.equal('1'); }); + + describe('proxy implementation', function () { + it('Should reject non-owner upgrades', async () => { + const ReputationV0 = await ethers.getContractFactory( + 'ReputationV0', + reputationOracle + ); + + await expect( + upgrades.upgradeProxy(reputation.address, ReputationV0) + ).to.be.revertedWith('Ownable: caller is not the owner'); + }); + + it('Owner should upgrade correctly', async () => { + const ReputationV0 = await ethers.getContractFactory('ReputationV0'); + const oldImplementationAddress = + await upgrades.erc1967.getImplementationAddress(reputation.address); + + await upgrades.upgradeProxy(reputation.address, ReputationV0); + + expect( + await upgrades.erc1967.getImplementationAddress(reputation.address) + ).to.not.be.equal(oldImplementationAddress); + + const stakingAddress = await reputation.staking(); + + expect(stakingAddress).to.equal(staking.address); + expect(stakingAddress).to.not.be.null; + + try { + reputation.getRewards(ethers.utils.parseUnits('1', 'ether'), [ + worker1, + worker2, + ]); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } catch (error: any) { + assert(error.message === 'reputation.hasEscrow is not a function'); + } + }); + + it('Should have the same storage', async () => { + await staking.connect(reputationOracle).stake(10); + await reputation + .connect(reputationOracle) + .addReputations(reputationValues); + + let reputations = await getReputations(); + expect(reputations[0].workerAddress).to.equal(worker1); + expect(reputations[0].reputation).to.equal('60'); + expect(reputations[1].workerAddress).to.equal(worker2); + expect(reputations[1].reputation).to.equal('40'); + + const oldImplementationAddress = + await upgrades.erc1967.getImplementationAddress(reputation.address); + + const ReputationV0 = await ethers.getContractFactory('ReputationV0'); + await upgrades.upgradeProxy(reputation.address, ReputationV0); + + expect( + await upgrades.erc1967.getImplementationAddress(reputation.address) + ).to.not.be.equal(oldImplementationAddress); + + reputations = await getReputations(); + expect(reputations[0].workerAddress).to.equal(worker1); + expect(reputations[0].reputation).to.equal('60'); + expect(reputations[1].workerAddress).to.equal(worker2); + expect(reputations[1].reputation).to.equal('40'); + }); + }); }); diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 4772f9171e..6d5d6d5f3f 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -17,7 +17,7 @@ const ethHttpServer = process.env.ETH_HTTP_SERVER || 'http://127.0.0.1:8545'; const port = process.env.PORT || 3006; const reputationAddress = process.env.REPUTATION_ADDRESS || - '0xc5a5C42992dECbae36851359345FE25997F5C42d'; + '0x67d269191c92Caf3cD7723F116c85e6E9bf55933'; const web3 = new Web3(ethHttpServer); const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); diff --git a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts index 70a15f482b..4a72bbbe15 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/reputation.test.ts @@ -69,12 +69,16 @@ describe('Reputation', () => { reputation = await reputationContract .deploy({ data: Reputation.bytecode, - arguments: [staking.options.address, 1], + arguments: [], }) .send({ from: owner.address, }); + await reputation.methods + .initialize(staking.options.address, 1) + .send({ from: owner.address }); + await token.methods .transfer(reputationAccount.address, web3.utils.toWei('1000', 'ether')) .send({ from: owner.address }); @@ -124,7 +128,7 @@ describe('Reputation', () => { const result = await calculateRewardForWorker( web3, reputation.options.address, - 3000000, + '3000000', [worker1, worker2, worker3] ); diff --git a/packages/examples/fortune/tests/e2e-backend/constants.js b/packages/examples/fortune/tests/e2e-backend/constants.js index f49940b310..4a391cfea1 100644 --- a/packages/examples/fortune/tests/e2e-backend/constants.js +++ b/packages/examples/fortune/tests/e2e-backend/constants.js @@ -12,7 +12,7 @@ const addresses = { '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', reputation: process.env.REPUTATION_ADDRESS || - '0xc5a5C42992dECbae36851359345FE25997F5C42d', + '0x67d269191c92Caf3cD7723F116c85e6E9bf55933', recOracle: process.env.REC_ORACLE_ADDRESS || '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', diff --git a/yarn.lock b/yarn.lock index a8ffe5b880..bf6b24c373 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2042,9 +2042,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.36" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.36.tgz#d6da45a501e09e7f3ad48448c18815af0641f520" - integrity sha512-WiEWhX2xNoOCUSp1ERxiga1FwL4acaJHxdIlbm4l8BY/F+CuWvuis1CoSonaACUL+ugdNNe1BoAV0ngsnt8mXA== + version "1.0.37" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.37.tgz#df929d4235850b53818a02af9b4d79c1840bd335" + integrity sha512-5qsNupyJWJ3ckCoeGqgTYXOgVp/Y8tDRo4yFSLv2CNHKa+p2qhuqMDeM4WDlfrmtTsCgL3Xa/vxwK0xxT5mLuQ== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" From cfb2879f930599eb633f5ce6d52989bfa6e1ed0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Fri, 20 Jan 2023 17:48:36 +0100 Subject: [PATCH 077/216] delete test-sequencer --- packages/examples/fortune/package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index 41c360b105..ed70302664 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -33,8 +33,5 @@ "hardhat": "^2.12.2", "jest": "^29.2.2", "web3": "^1.8.0" - }, - "dependencies": { - "@jest/test-sequencer": "^29.3.1" } } From 52cd7c030bc87f231fe847c98a52338959481886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Mon, 23 Jan 2023 09:50:31 +0100 Subject: [PATCH 078/216] Add remaining fortunes into python sdk setup --- packages/sdk/python/human_protocol_sdk/job.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/sdk/python/human_protocol_sdk/job.py b/packages/sdk/python/human_protocol_sdk/job.py index 8c585c69ab..0d418c9212 100644 --- a/packages/sdk/python/human_protocol_sdk/job.py +++ b/packages/sdk/python/human_protocol_sdk/job.py @@ -417,6 +417,7 @@ def setup(self, sender: str = None) -> bool: recording_oracle = str(self.serialized_manifest["recording_oracle_addr"]) hmt_amount = int(self.amount * 10**18) hmtoken_contract = get_hmtoken(self.hmtoken_addr, self.hmt_server_addr) + remaining_fortunes = int(self.serialized_manifest["job_total_tasks"]) tx_balance = None hmt_transferred = False @@ -481,6 +482,7 @@ def setup(self, sender: str = None) -> bool: recording_oracle_stake, self.manifest_url, self.manifest_hash, + remaining_fortunes, ] try: From 582f4273760e6711bd1b1c2af23c6c14bf098fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Mon, 23 Jan 2023 10:52:46 +0100 Subject: [PATCH 079/216] Add check for bad words in reputation oracle --- .../src/constants/badWords.ts | 452 ++++++++++++++++++ .../src/services/rewards.test.ts | 11 + .../reputation-oracle/src/services/rewards.ts | 13 +- 3 files changed, 475 insertions(+), 1 deletion(-) create mode 100644 packages/examples/fortune/reputation-oracle/src/constants/badWords.ts diff --git a/packages/examples/fortune/reputation-oracle/src/constants/badWords.ts b/packages/examples/fortune/reputation-oracle/src/constants/badWords.ts new file mode 100644 index 0000000000..00132c667f --- /dev/null +++ b/packages/examples/fortune/reputation-oracle/src/constants/badWords.ts @@ -0,0 +1,452 @@ +export const BAD_WORDS = [ + '4r5e', + '5h1t', + '5hit', + 'a55', + 'anal', + 'anus', + 'ar5e', + 'arrse', + 'arse', + 'ass', + 'ass-fucker', + 'asses', + 'assfucker', + 'assfukka', + 'asshole', + 'assholes', + 'asswhole', + 'a_s_s', + 'b!tch', + 'b00bs', + 'b17ch', + 'b1tch', + 'ballbag', + 'balls', + 'ballsack', + 'bastard', + 'beastial', + 'beastiality', + 'bellend', + 'bestial', + 'bestiality', + 'bi+ch', + 'biatch', + 'bitch', + 'bitcher', + 'bitchers', + 'bitches', + 'bitchin', + 'bitching', + 'bloody', + 'blow job', + 'blowjob', + 'blowjobs', + 'boiolas', + 'bollock', + 'bollok', + 'boner', + 'boob', + 'boobs', + 'booobs', + 'boooobs', + 'booooobs', + 'booooooobs', + 'breasts', + 'buceta', + 'bugger', + 'bum', + 'bunny fucker', + 'butt', + 'butthole', + 'buttmuch', + 'buttplug', + 'c0ck', + 'c0cksucker', + 'carpet muncher', + 'cawk', + 'chink', + 'cipa', + 'cl1t', + 'clit', + 'clitoris', + 'clits', + 'cnut', + 'cock', + 'cock-sucker', + 'cockface', + 'cockhead', + 'cockmunch', + 'cockmuncher', + 'cocks', + 'cocksuck', + 'cocksucked', + 'cocksucker', + 'cocksucking', + 'cocksucks', + 'cocksuka', + 'cocksukka', + 'cok', + 'cokmuncher', + 'coksucka', + 'coon', + 'cox', + 'crap', + 'cum', + 'cummer', + 'cumming', + 'cums', + 'cumshot', + 'cunilingus', + 'cunillingus', + 'cunnilingus', + 'cunt', + 'cuntlick', + 'cuntlicker', + 'cuntlicking', + 'cunts', + 'cyalis', + 'cyberfuc', + 'cyberfuck', + 'cyberfucked', + 'cyberfucker', + 'cyberfuckers', + 'cyberfucking', + 'd1ck', + 'damn', + 'dick', + 'dickhead', + 'dildo', + 'dildos', + 'dink', + 'dinks', + 'dirsa', + 'dlck', + 'dog-fucker', + 'doggin', + 'dogging', + 'donkeyribber', + 'doosh', + 'duche', + 'dyke', + 'ejaculate', + 'ejaculated', + 'ejaculates', + 'ejaculating', + 'ejaculatings', + 'ejaculation', + 'ejakulate', + 'f u c k', + 'f u c k e r', + 'f4nny', + 'fag', + 'fagging', + 'faggitt', + 'faggot', + 'faggs', + 'fagot', + 'fagots', + 'fags', + 'fanny', + 'fannyflaps', + 'fannyfucker', + 'fanyy', + 'fatass', + 'fcuk', + 'fcuker', + 'fcuking', + 'feck', + 'fecker', + 'felching', + 'fellate', + 'fellatio', + 'fingerfuck', + 'fingerfucked', + 'fingerfucker', + 'fingerfuckers', + 'fingerfucking', + 'fingerfucks', + 'fistfuck', + 'fistfucked', + 'fistfucker', + 'fistfuckers', + 'fistfucking', + 'fistfuckings', + 'fistfucks', + 'flange', + 'fook', + 'fooker', + 'fuck', + 'fucka', + 'fucked', + 'fucker', + 'fuckers', + 'fuckhead', + 'fuckheads', + 'fuckin', + 'fucking', + 'fuckings', + 'fuckingshitmotherfucker', + 'fuckme', + 'fucks', + 'fuckwhit', + 'fuckwit', + 'fudge packer', + 'fudgepacker', + 'fuk', + 'fuker', + 'fukker', + 'fukkin', + 'fuks', + 'fukwhit', + 'fukwit', + 'fux', + 'fux0r', + 'f_u_c_k', + 'gangbang', + 'gangbanged', + 'gangbangs', + 'gaylord', + 'gaysex', + 'goatse', + 'God', + 'god-dam', + 'god-damned', + 'goddamn', + 'goddamned', + 'hardcoresex', + 'hell', + 'heshe', + 'hoar', + 'hoare', + 'hoer', + 'homo', + 'hore', + 'horniest', + 'horny', + 'hotsex', + 'jack-off', + 'jackoff', + 'jap', + 'jerk-off', + 'jism', + 'jiz', + 'jizm', + 'jizz', + 'kawk', + 'knob', + 'knobead', + 'knobed', + 'knobend', + 'knobhead', + 'knobjocky', + 'knobjokey', + 'kock', + 'kondum', + 'kondums', + 'kum', + 'kummer', + 'kumming', + 'kums', + 'kunilingus', + 'l3i+ch', + 'l3itch', + 'labia', + 'lust', + 'lusting', + 'm0f0', + 'm0fo', + 'm45terbate', + 'ma5terb8', + 'ma5terbate', + 'masochist', + 'master-bate', + 'masterb8', + 'masterbat*', + 'masterbat3', + 'masterbate', + 'masterbation', + 'masterbations', + 'masturbate', + 'mo-fo', + 'mof0', + 'mofo', + 'mothafuck', + 'mothafucka', + 'mothafuckas', + 'mothafuckaz', + 'mothafucked', + 'mothafucker', + 'mothafuckers', + 'mothafuckin', + 'mothafucking', + 'mothafuckings', + 'mothafucks', + 'mother fucker', + 'motherfuck', + 'motherfucked', + 'motherfucker', + 'motherfuckers', + 'motherfuckin', + 'motherfucking', + 'motherfuckings', + 'motherfuckka', + 'motherfucks', + 'muff', + 'mutha', + 'muthafecker', + 'muthafuckker', + 'muther', + 'mutherfucker', + 'n1gga', + 'n1gger', + 'nazi', + 'nigg3r', + 'nigg4h', + 'nigga', + 'niggah', + 'niggas', + 'niggaz', + 'nigger', + 'niggers', + 'nob', + 'nob jokey', + 'nobhead', + 'nobjocky', + 'nobjokey', + 'numbnuts', + 'nutsack', + 'orgasim', + 'orgasims', + 'orgasm', + 'orgasms', + 'p0rn', + 'pawn', + 'pecker', + 'penis', + 'penisfucker', + 'phonesex', + 'phuck', + 'phuk', + 'phuked', + 'phuking', + 'phukked', + 'phukking', + 'phuks', + 'phuq', + 'pigfucker', + 'pimpis', + 'piss', + 'pissed', + 'pisser', + 'pissers', + 'pisses', + 'pissflaps', + 'pissin', + 'pissing', + 'pissoff', + 'poop', + 'porn', + 'porno', + 'pornography', + 'pornos', + 'prick', + 'pricks', + 'pron', + 'pube', + 'pusse', + 'pussi', + 'pussies', + 'pussy', + 'pussys', + 'rectum', + 'retard', + 'rimjaw', + 'rimming', + 's hit', + 's.o.b.', + 'sadist', + 'schlong', + 'screwing', + 'scroat', + 'scrote', + 'scrotum', + 'semen', + 'sex', + 'sh!+', + 'sh!t', + 'sh1t', + 'shag', + 'shagger', + 'shaggin', + 'shagging', + 'shemale', + 'shi+', + 'shit', + 'shitdick', + 'shite', + 'shited', + 'shitey', + 'shitfuck', + 'shitfull', + 'shithead', + 'shiting', + 'shitings', + 'shits', + 'shitted', + 'shitter', + 'shitters', + 'shitting', + 'shittings', + 'shitty', + 'skank', + 'slut', + 'sluts', + 'smegma', + 'smut', + 'snatch', + 'son-of-a-bitch', + 'spac', + 'spunk', + 's_h_i_t', + 't1tt1e5', + 't1tties', + 'teets', + 'teez', + 'testical', + 'testicle', + 'tit', + 'titfuck', + 'tits', + 'titt', + 'tittie5', + 'tittiefucker', + 'titties', + 'tittyfuck', + 'tittywank', + 'titwank', + 'tosser', + 'turd', + 'tw4t', + 'twat', + 'twathead', + 'twatty', + 'twunt', + 'twunter', + 'v14gra', + 'v1gra', + 'vagina', + 'viagra', + 'vulva', + 'w00se', + 'wang', + 'wank', + 'wanker', + 'wanky', + 'whoar', + 'whore', + 'willies', + 'willy', + 'xrated', + 'xxx', +]; diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts index 8c99ff9782..c6b1c73d71 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts @@ -15,4 +15,15 @@ describe('Rewards', () => { expect(result.workerAddresses).toStrictEqual([worker1, worker3]); }); + + it('Check fortune bad words', async () => { + const result = filterAddressesToReward(new Web3(), [ + { worker: worker1, fortune: 'damn' }, + { worker: worker2, fortune: 'fortune' }, + { worker: worker3, fortune: 'shit should be blocked' }, + ]); + expect(result.workerAddresses).toStrictEqual([worker2]); + expect(result.reputationValues[0].reputation).toStrictEqual(-1); + expect(result.reputationValues[2].reputation).toStrictEqual(-1); + }); }); diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index d47bd2acea..e6de07a261 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -1,4 +1,5 @@ import Web3 from 'web3'; +import { BAD_WORDS } from '../constants/badWords'; export interface FortuneEntry { worker: string; @@ -20,7 +21,7 @@ export function filterAddressesToReward( addressFortunesEntries.forEach((fortuneEntry) => { const { worker, fortune } = fortuneEntry; - if (tmpHashMap[fortune]) { + if (tmpHashMap[fortune] || checkBadWords(fortune)) { reputationValues.push({ workerAddress: worker, reputation: -1 }); return; } @@ -34,3 +35,13 @@ export function filterAddressesToReward( .map(web3.utils.toChecksumAddress); return { workerAddresses, reputationValues }; } + +export function checkBadWords(fortune: string) { + for (let i = 0; i < BAD_WORDS.length; i++) { + const val = BAD_WORDS[i]; + if (fortune.toLowerCase().indexOf(val.toString()) > -1) { + return true; + } + } + return false; +} From c52357c207c87c7fd0a1fb36d751ff3b041cea7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Mon, 23 Jan 2023 11:38:40 +0100 Subject: [PATCH 080/216] Update bad words check to check whole words, not substrings inside --- .../fortune/reputation-oracle/src/services/rewards.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index e6de07a261..de3200d587 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -37,10 +37,12 @@ export function filterAddressesToReward( } export function checkBadWords(fortune: string) { + const words = fortune.replace(/[^a-zA-Z0-9 ]/g, '').split(' '); for (let i = 0; i < BAD_WORDS.length; i++) { - const val = BAD_WORDS[i]; - if (fortune.toLowerCase().indexOf(val.toString()) > -1) { - return true; + for (let j = 0; j < words.length; j++) { + if (words[j].toLowerCase() === BAD_WORDS[i].toString()) { + return true; + } } } return false; From e2c190f3594142f8e2c63fd75e0bd4407496ad86 Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Mon, 23 Jan 2023 22:42:10 +0800 Subject: [PATCH 081/216] Clone basemodels from hCaptcha (#187) * clone hcaptcha basemodels and generate json schema * fix ci & cd for basemodels * fix gitignore * add status badge for python base models to readme --- .github/workflows/cd-python-basemodels.yaml | 38 + .github/workflows/cd-python-sdk.yaml | 8 +- .../workflows/ci-test-python-basemodels.yaml | 26 + .github/workflows/ci-test-python-sdk.yaml | 4 +- .gitignore | 3 - .husky/pre-commit | 7 +- README.md | 4 + packages/examples/fortune/.gitignore | 2 + packages/sdk/json-schema/manifest.json | 721 +++++++++++++++ .../human-protocol-basemodels/.gitignore | 13 + .../python/human-protocol-basemodels/Makefile | 11 + .../python/human-protocol-basemodels/Pipfile | 20 + .../__init__.py | 0 .../basemodels/__init__.py | 13 + .../basemodels/constants.py | 18 + .../basemodels/manifest/__init__.py | 8 + .../basemodels/manifest/data/__init__.py | 2 + .../basemodels/manifest/data/groundtruth.py | 123 +++ .../basemodels/manifest/data/preprocess.py | 20 + .../basemodels/manifest/data/taskdata.py | 87 ++ .../basemodels/manifest/manifest.py | 444 +++++++++ .../manifest/restricted_audience.py | 88 ++ .../basemodels/via.py | 60 ++ .../human-protocol-basemodels/pyproject.toml | 6 + .../pytest.ini | 0 .../scripts/export-json-schema.sh | 18 + .../python/human-protocol-basemodels/setup.py | 17 + .../test}/__init__.py | 0 .../test/test_manifest.py | 873 ++++++++++++++++++ .../test/test_preprocess.py | 39 + .../{ => human-protocol-sdk}/.gitignore | 0 .../python/{ => human-protocol-sdk}/LICENSE | 0 .../{ => human-protocol-sdk}/MANIFEST.in | 0 .../python/{ => human-protocol-sdk}/Makefile | 0 .../python/{ => human-protocol-sdk}/Pipfile | 0 .../python/{ => human-protocol-sdk}/README.md | 0 .../{ => human-protocol-sdk}/docs/Makefile | 0 .../{ => human-protocol-sdk}/docs/README.md | 0 .../{ => human-protocol-sdk}/docs/make.bat | 0 .../docs/source/conf.py | 0 .../docs/source/index.rst | 0 .../human_protocol_sdk/__init__.py | 0 .../human_protocol_sdk/crypto/__init__.py | 0 .../human_protocol_sdk/crypto/encryption.py | 0 .../human_protocol_sdk/crypto/exceptions.py | 0 .../human_protocol_sdk/eth_bridge.py | 0 .../human_protocol_sdk/job.py | 0 .../human_protocol_sdk/storage.py | 0 .../human_protocol_sdk/utils.py | 0 .../{ => human-protocol-sdk}/pyproject.toml | 0 .../sdk/python/human-protocol-sdk/pytest.ini | 2 + .../scripts/build-contracts.sh | 2 +- .../scripts/generate-docs.sh | 0 .../scripts/run-test.sh | 0 .../python/{ => human-protocol-sdk}/setup.py | 2 +- .../test}/__init__.py | 0 .../test/human_protocol_sdk}/__init__.py | 0 .../human_protocol_sdk/crypto/__init__.py | 0 .../human_protocol_sdk/crypto/test_crypto.py | 0 .../crypto/test_encryption.py | 0 .../human_protocol_sdk/storage/__init__.py | 0 .../human_protocol_sdk/storage/test_bucket.py | 0 .../storage/test_storage.py | 0 .../human_protocol_sdk/test_eth_bridge.py | 0 .../test/human_protocol_sdk/test_job.py | 0 .../test/human_protocol_sdk/test_utils.py | 0 .../test/human_protocol_sdk/utils/__init__.py | 0 .../test/human_protocol_sdk/utils/job.py | 0 .../test/human_protocol_sdk/utils/manifest.py | 0 69 files changed, 2667 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/cd-python-basemodels.yaml create mode 100644 .github/workflows/ci-test-python-basemodels.yaml create mode 100644 packages/examples/fortune/.gitignore create mode 100644 packages/sdk/json-schema/manifest.json create mode 100644 packages/sdk/python/human-protocol-basemodels/.gitignore create mode 100644 packages/sdk/python/human-protocol-basemodels/Makefile create mode 100644 packages/sdk/python/human-protocol-basemodels/Pipfile rename packages/sdk/python/{test => human-protocol-basemodels}/__init__.py (100%) create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/constants.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/manifest/__init__.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/__init__.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/groundtruth.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/preprocess.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/taskdata.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/manifest/manifest.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/manifest/restricted_audience.py create mode 100644 packages/sdk/python/human-protocol-basemodels/basemodels/via.py create mode 100644 packages/sdk/python/human-protocol-basemodels/pyproject.toml rename packages/sdk/python/{ => human-protocol-basemodels}/pytest.ini (100%) create mode 100755 packages/sdk/python/human-protocol-basemodels/scripts/export-json-schema.sh create mode 100644 packages/sdk/python/human-protocol-basemodels/setup.py rename packages/sdk/python/{test/human_protocol_sdk => human-protocol-basemodels/test}/__init__.py (100%) create mode 100644 packages/sdk/python/human-protocol-basemodels/test/test_manifest.py create mode 100644 packages/sdk/python/human-protocol-basemodels/test/test_preprocess.py rename packages/sdk/python/{ => human-protocol-sdk}/.gitignore (100%) rename packages/sdk/python/{ => human-protocol-sdk}/LICENSE (100%) rename packages/sdk/python/{ => human-protocol-sdk}/MANIFEST.in (100%) rename packages/sdk/python/{ => human-protocol-sdk}/Makefile (100%) rename packages/sdk/python/{ => human-protocol-sdk}/Pipfile (100%) rename packages/sdk/python/{ => human-protocol-sdk}/README.md (100%) rename packages/sdk/python/{ => human-protocol-sdk}/docs/Makefile (100%) rename packages/sdk/python/{ => human-protocol-sdk}/docs/README.md (100%) rename packages/sdk/python/{ => human-protocol-sdk}/docs/make.bat (100%) rename packages/sdk/python/{ => human-protocol-sdk}/docs/source/conf.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/docs/source/index.rst (100%) rename packages/sdk/python/{ => human-protocol-sdk}/human_protocol_sdk/__init__.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/human_protocol_sdk/crypto/__init__.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/human_protocol_sdk/crypto/encryption.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/human_protocol_sdk/crypto/exceptions.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/human_protocol_sdk/eth_bridge.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/human_protocol_sdk/job.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/human_protocol_sdk/storage.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/human_protocol_sdk/utils.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/pyproject.toml (100%) create mode 100644 packages/sdk/python/human-protocol-sdk/pytest.ini rename packages/sdk/python/{ => human-protocol-sdk}/scripts/build-contracts.sh (66%) rename packages/sdk/python/{ => human-protocol-sdk}/scripts/generate-docs.sh (100%) rename packages/sdk/python/{ => human-protocol-sdk}/scripts/run-test.sh (100%) rename packages/sdk/python/{ => human-protocol-sdk}/setup.py (95%) rename packages/sdk/python/{test/human_protocol_sdk/crypto => human-protocol-sdk/test}/__init__.py (100%) rename packages/sdk/python/{test/human_protocol_sdk/storage => human-protocol-sdk/test/human_protocol_sdk}/__init__.py (100%) create mode 100644 packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/crypto/__init__.py rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/crypto/test_crypto.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/crypto/test_encryption.py (100%) create mode 100644 packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/storage/__init__.py rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/storage/test_bucket.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/storage/test_storage.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/test_eth_bridge.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/test_job.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/test_utils.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/utils/__init__.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/utils/job.py (100%) rename packages/sdk/python/{ => human-protocol-sdk}/test/human_protocol_sdk/utils/manifest.py (100%) diff --git a/.github/workflows/cd-python-basemodels.yaml b/.github/workflows/cd-python-basemodels.yaml new file mode 100644 index 0000000000..70f7d89a5f --- /dev/null +++ b/.github/workflows/cd-python-basemodels.yaml @@ -0,0 +1,38 @@ +name: Python Base Models publish + +on: + release: + types: [published] + +jobs: + publish-python-basemodels: + name: Publish Python Base Models + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install Node + run: yarn --ignore-scripts + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.x" + - name: Install dependencies + working-directory: ./packages/sdk/python/human-protocol-basemodels + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine + - name: Set the relase version + uses: "DamianReeves/write-file-action@master" + with: + path: ./packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py + write-mode: overwrite + contents: | + __version__ = "${{ github.event.release.tag_name }}" + - name: Build and publish + working-directory: ./packages/sdk/python/human-protocol-basemodels + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + run: | + make build-package + twine upload dist/* --skip-existing diff --git a/.github/workflows/cd-python-sdk.yaml b/.github/workflows/cd-python-sdk.yaml index b8ac92e09c..3104f8bf0d 100644 --- a/.github/workflows/cd-python-sdk.yaml +++ b/.github/workflows/cd-python-sdk.yaml @@ -15,21 +15,21 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: '3.x' + python-version: "3.x" - name: Install dependencies - working-directory: ./packages/sdk/python + working-directory: ./packages/sdk/python/human-protocol-sdk run: | python -m pip install --upgrade pip pip install setuptools wheel twine - name: Set the relase version uses: "DamianReeves/write-file-action@master" with: - path: ./packages/sdk/python/human_protocol_sdk/__init__.py + path: ./packages/sdk/python/human-protocol-sdk/human_protocol_sdk/__init__.py write-mode: overwrite contents: | __version__ = "${{ github.event.release.tag_name }}" - name: Build and publish - working-directory: ./packages/sdk/python + working-directory: ./packages/sdk/python/human-protocol-sdk env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} diff --git a/.github/workflows/ci-test-python-basemodels.yaml b/.github/workflows/ci-test-python-basemodels.yaml new file mode 100644 index 0000000000..2fa49ba6fd --- /dev/null +++ b/.github/workflows/ci-test-python-basemodels.yaml @@ -0,0 +1,26 @@ +name: Python Base Models Check + +on: + push: + branches: + - "main" + pull_request: + workflow_dispatch: + +jobs: + python-test: + name: Python Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v1 + with: + python-version: "3.10" + - name: Install pipenv + run: pip install pipenv + - name: Python test + working-directory: ./packages/sdk/python/human-protocol-basemodels + run: | + pipenv install --dev + make run-test diff --git a/.github/workflows/ci-test-python-sdk.yaml b/.github/workflows/ci-test-python-sdk.yaml index 2ed06bdba0..ad3a051ce1 100644 --- a/.github/workflows/ci-test-python-sdk.yaml +++ b/.github/workflows/ci-test-python-sdk.yaml @@ -18,11 +18,11 @@ jobs: - name: Set up Python 3.10 uses: actions/setup-python@v1 with: - python-version: '3.10' + python-version: "3.10" - name: Install pipenv run: pip install pipenv - name: Python test - working-directory: ./packages/sdk/python + working-directory: ./packages/sdk/python/human-protocol-sdk env: ESCROW_AWS_ACCESS_KEY_ID: ${{ secrets.ESCROW_AWS_ACCESS_KEY_ID }} ESCROW_AWS_SECRET_ACCESS_KEY: ${{ secrets.ESCROW_AWS_SECRET_ACCESS_KEY }} diff --git a/.gitignore b/.gitignore index 7a22e6163b..712ac4fb9f 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,3 @@ build #cache cache - -#test data -data diff --git a/.husky/pre-commit b/.husky/pre-commit index 8ea141d5cd..12e5f22e8d 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -3,4 +3,9 @@ npx lint-staged -cd packages/sdk/python && make format && git add . -u +cd packages/sdk/python +cd human-protocol-basemodels && make format && git add . -u +cd .. +cd human-protocol-sdk && make format && git add . -u +cd ../../../ + diff --git a/README.md b/README.md index 4fb396f4dc..f2ee01dd17 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ [![Python SDK Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-python-sdk.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-python-sdk.yaml) +[![Python Base Models Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-python-basemodels.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-python-basemodels.yaml) + [![Node.js SDK Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-sdk.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-sdk.yaml) [![Subgraph Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph.yaml) @@ -16,6 +18,8 @@ [![Python SDK Publish](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-python-sdk.yaml/badge.svg?event=release)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-python-sdk.yaml) +[![Python Base Models Publish](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-python-basemodels.yaml/badge.svg?event=release)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-python-basemodels.yaml) + [![Node.js SDK Publish](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-node-sdk.yaml/badge.svg?event=release)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-node-sdk.yaml) [![Subgraph Deploy](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-subgraph.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-subgraph.yaml) diff --git a/packages/examples/fortune/.gitignore b/packages/examples/fortune/.gitignore new file mode 100644 index 0000000000..d7c69347d1 --- /dev/null +++ b/packages/examples/fortune/.gitignore @@ -0,0 +1,2 @@ +# test data +data diff --git a/packages/sdk/json-schema/manifest.json b/packages/sdk/json-schema/manifest.json new file mode 100644 index 0000000000..c4d33e4d89 --- /dev/null +++ b/packages/sdk/json-schema/manifest.json @@ -0,0 +1,721 @@ +{ + "title": "Manifest", + "description": "The manifest description.", + "type": "object", + "properties": { + "job_mode": { + "title": "Job Mode", + "enum": [ + "batch", + "online", + "instant_delivery" + ], + "type": "string" + }, + "job_api_key": { + "title": "Job Api Key", + "type": "string", + "format": "uuid" + }, + "job_id": { + "title": "Job Id", + "type": "string", + "format": "uuid" + }, + "job_total_tasks": { + "title": "Job Total Tasks", + "type": "integer" + }, + "multi_challenge_manifests": { + "title": "Multi Challenge Manifests", + "type": "array", + "items": { + "$ref": "#/definitions/NestedManifest" + } + }, + "request_type": { + "$ref": "#/definitions/BaseJobTypesEnum" + }, + "network": { + "title": "Network", + "type": "string" + }, + "only_sign_results": { + "title": "Only Sign Results", + "default": false, + "type": "boolean" + }, + "public_results": { + "title": "Public Results", + "default": false, + "type": "boolean" + }, + "requester_restricted_answer_set": { + "title": "Requester Restricted Answer Set", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "requester_description": { + "title": "Requester Description", + "type": "string" + }, + "requester_max_repeats": { + "title": "Requester Max Repeats", + "default": 100, + "type": "integer" + }, + "requester_min_repeats": { + "title": "Requester Min Repeats", + "default": 1, + "type": "integer" + }, + "requester_question": { + "title": "Requester Question", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "requester_question_example": { + "title": "Requester Question Example", + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 2083, + "format": "uri" + }, + { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 2083, + "format": "uri" + } + } + ] + }, + "unsafe_content": { + "title": "Unsafe Content", + "default": false, + "type": "boolean" + }, + "task_bid_price": { + "title": "Task Bid Price", + "type": "number" + }, + "oracle_stake": { + "title": "Oracle Stake", + "type": "number" + }, + "expiration_date": { + "title": "Expiration Date", + "type": "integer" + }, + "requester_accuracy_target": { + "title": "Requester Accuracy Target", + "default": 0.1, + "type": "number" + }, + "manifest_smart_bounty_addr": { + "title": "Manifest Smart Bounty Addr", + "type": "string" + }, + "hmtoken_addr": { + "title": "Hmtoken Addr", + "type": "string" + }, + "minimum_trust_server": { + "title": "Minimum Trust Server", + "default": 0.1, + "type": "number" + }, + "minimum_trust_client": { + "title": "Minimum Trust Client", + "default": 0.1, + "type": "number" + }, + "recording_oracle_addr": { + "title": "Recording Oracle Addr", + "type": "string" + }, + "reputation_oracle_addr": { + "title": "Reputation Oracle Addr", + "type": "string" + }, + "reputation_agent_addr": { + "title": "Reputation Agent Addr", + "type": "string" + }, + "requester_pgp_public_key": { + "title": "Requester Pgp Public Key", + "type": "string" + }, + "ro_uri": { + "title": "Ro Uri", + "type": "string" + }, + "repo_uri": { + "title": "Repo Uri", + "type": "string" + }, + "batch_result_delivery_webhook": { + "title": "Batch Result Delivery Webhook", + "minLength": 1, + "maxLength": 65536, + "format": "uri", + "type": "string" + }, + "online_result_delivery_webhook": { + "title": "Online Result Delivery Webhook", + "minLength": 1, + "maxLength": 65536, + "format": "uri", + "type": "string" + }, + "instant_result_delivery_webhook": { + "title": "Instant Result Delivery Webhook", + "minLength": 1, + "maxLength": 65536, + "format": "uri", + "type": "string" + }, + "request_config": { + "$ref": "#/definitions/RequestConfig" + }, + "taskdata": { + "title": "Taskdata", + "type": "array", + "items": { + "$ref": "#/definitions/TaskData" + } + }, + "taskdata_uri": { + "title": "Taskdata Uri", + "minLength": 1, + "maxLength": 65536, + "format": "uri", + "type": "string" + }, + "groundtruth_uri": { + "title": "Groundtruth Uri", + "minLength": 1, + "maxLength": 65536, + "format": "uri", + "type": "string" + }, + "groundtruth": { + "title": "Groundtruth", + "type": "string" + }, + "internal_config": { + "$ref": "#/definitions/InternalConfig" + }, + "confcalc_configuration_id": { + "title": "Confcalc Configuration Id", + "type": "string" + }, + "restricted_audience": { + "title": "Restricted Audience", + "default": {}, + "allOf": [ + { + "$ref": "#/definitions/RestrictedAudience" + } + ] + }, + "webhook": { + "$ref": "#/definitions/Webhook" + }, + "rejected_uri": { + "title": "Rejected Uri", + "minLength": 1, + "maxLength": 65536, + "format": "uri", + "type": "string" + }, + "rejected_count": { + "title": "Rejected Count", + "type": "integer" + } + }, + "required": [ + "job_mode", + "job_total_tasks", + "request_type", + "task_bid_price", + "oracle_stake" + ], + "definitions": { + "BaseJobTypesEnum": { + "title": "BaseJobTypesEnum", + "description": "An enumeration.", + "enum": [ + "image_label_binary", + "image_label_multiple_choice", + "text_free_entry", + "text_multiple_choice_one_option", + "text_multiple_choice_multiple_options", + "image_label_area_adjust", + "image_label_area_select", + "image_label_single_polygon", + "image_label_multiple_polygons", + "image_label_semantic_segmentation_one_option", + "image_label_semantic_segmentation_multiple_options", + "image_label_text", + "multi_challenge" + ], + "type": "string" + }, + "ShapeTypes": { + "title": "ShapeTypes", + "description": "An enumeration.", + "enum": [ + "point", + "bounding_box", + "polygon" + ], + "type": "string" + }, + "RequestConfig": { + "title": "RequestConfig", + "description": "Definition of the request_config object in manifest", + "type": "object", + "properties": { + "version": { + "title": "Version", + "default": 0, + "type": "integer" + }, + "shape_type": { + "$ref": "#/definitions/ShapeTypes" + }, + "min_points": { + "title": "Min Points", + "type": "integer" + }, + "max_points": { + "title": "Max Points", + "type": "integer" + }, + "min_shapes_per_image": { + "title": "Min Shapes Per Image", + "type": "integer" + }, + "max_shapes_per_image": { + "title": "Max Shapes Per Image", + "type": "integer" + }, + "restrict_to_coords": { + "title": "Restrict To Coords", + "type": "boolean" + }, + "minimum_selection_area_per_shape": { + "title": "Minimum Selection Area Per Shape", + "type": "integer" + }, + "multiple_choice_max_choices": { + "title": "Multiple Choice Max Choices", + "default": 1, + "type": "integer" + }, + "multiple_choice_min_choices": { + "title": "Multiple Choice Min Choices", + "default": 1, + "type": "integer" + }, + "overlap_threshold": { + "title": "Overlap Threshold", + "type": "number" + } + } + }, + "Webhook": { + "title": "Webhook", + "description": "Model for webhook configuration", + "type": "object", + "properties": { + "webhook_id": { + "title": "Webhook Id", + "type": "string", + "format": "uuid" + }, + "chunk_completed": { + "title": "Chunk Completed", + "type": "array", + "items": { + "type": "string" + } + }, + "job_completed": { + "title": "Job Completed", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "webhook_id" + ] + }, + "NestedManifest": { + "title": "NestedManifest", + "description": "The nested manifest description for multi_challenge jobs", + "type": "object", + "properties": { + "job_id": { + "title": "Job Id", + "type": "string", + "format": "uuid" + }, + "request_type": { + "$ref": "#/definitions/BaseJobTypesEnum" + }, + "requester_restricted_answer_set": { + "title": "Requester Restricted Answer Set", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "requester_description": { + "title": "Requester Description", + "type": "string" + }, + "requester_max_repeats": { + "title": "Requester Max Repeats", + "default": 100, + "type": "integer" + }, + "requester_min_repeats": { + "title": "Requester Min Repeats", + "default": 1, + "type": "integer" + }, + "requester_question": { + "title": "Requester Question", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "requester_question_example": { + "title": "Requester Question Example", + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 2083, + "format": "uri" + }, + { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 2083, + "format": "uri" + } + } + ] + }, + "unsafe_content": { + "title": "Unsafe Content", + "default": false, + "type": "boolean" + }, + "requester_accuracy_target": { + "title": "Requester Accuracy Target", + "default": 0.1, + "type": "number" + }, + "request_config": { + "$ref": "#/definitions/RequestConfig" + }, + "groundtruth_uri": { + "title": "Groundtruth Uri", + "minLength": 1, + "maxLength": 2083, + "format": "uri", + "type": "string" + }, + "groundtruth": { + "title": "Groundtruth", + "type": "string" + }, + "confcalc_configuration_id": { + "title": "Confcalc Configuration Id", + "type": "string" + }, + "webhook": { + "$ref": "#/definitions/Webhook" + } + }, + "required": [ + "request_type" + ] + }, + "TaskData": { + "title": "TaskData", + "description": "Objects within taskdata list in Manifest", + "type": "object", + "properties": { + "task_key": { + "title": "Task Key", + "type": "string", + "format": "uuid" + }, + "datapoint_uri": { + "title": "Datapoint Uri", + "minLength": 1, + "maxLength": 65536, + "format": "uri", + "type": "string" + }, + "datapoint_hash": { + "title": "Datapoint Hash", + "minLength": 10, + "strip_whitespace": true, + "type": "string" + } + }, + "required": [ + "task_key", + "datapoint_uri", + "datapoint_hash" + ] + }, + "InternalConfig": { + "title": "InternalConfig", + "description": "Discarded from incoming manifests", + "type": "object", + "properties": { + "exchange": { + "title": "Exchange", + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "reco": { + "title": "Reco", + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "repo": { + "title": "Repo", + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "other": { + "title": "Other", + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "mitl": { + "title": "Mitl", + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "number" + }, + { + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + } + ] + } + } + } + }, + "RestrictedAudienceScore": { + "title": "RestrictedAudienceScore", + "type": "object", + "properties": { + "score": { + "title": "Score", + "minimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "score" + ] + }, + "RestrictedAudience": { + "title": "RestrictedAudience", + "type": "object", + "properties": { + "lang": { + "title": "Lang", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RestrictedAudienceScore" + } + } + }, + "country": { + "title": "Country", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RestrictedAudienceScore" + } + } + }, + "sitekey": { + "title": "Sitekey", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RestrictedAudienceScore" + } + } + }, + "serverdomain": { + "title": "Serverdomain", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RestrictedAudienceScore" + } + } + }, + "browser": { + "title": "Browser", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RestrictedAudienceScore" + } + } + }, + "confidence": { + "title": "Confidence", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RestrictedAudienceScore" + } + } + }, + "reason": { + "title": "Reason", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RestrictedAudienceScore" + } + } + }, + "min_difficulty": { + "title": "Min Difficulty", + "minimum": 0, + "maximum": 4, + "type": "integer" + }, + "min_user_score": { + "title": "Min User Score", + "minimum": 0, + "maximum": 1, + "type": "number" + }, + "max_user_score": { + "title": "Max User Score", + "minimum": 0, + "maximum": 1, + "type": "number" + }, + "launch_group_id": { + "title": "Launch Group Id", + "minimum": 0, + "type": "integer" + } + } + } + } +} \ No newline at end of file diff --git a/packages/sdk/python/human-protocol-basemodels/.gitignore b/packages/sdk/python/human-protocol-basemodels/.gitignore new file mode 100644 index 0000000000..452a189b30 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/.gitignore @@ -0,0 +1,13 @@ +# Python +__pycache__ +.pytest_cache + +# pipenv +Pipfile.lock +pip-log.txt +pip-wheel-metadata/ + +# Build +build +dist +*.egg-info diff --git a/packages/sdk/python/human-protocol-basemodels/Makefile b/packages/sdk/python/human-protocol-basemodels/Makefile new file mode 100644 index 0000000000..ff1201a1f7 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/Makefile @@ -0,0 +1,11 @@ +clean-package: + rm -rf build dist *.egg-info + +format: + pipenv run black . + +run-test: + pipenv run pytest + +generate-json: + ./scripts/export-json-schema.sh diff --git a/packages/sdk/python/human-protocol-basemodels/Pipfile b/packages/sdk/python/human-protocol-basemodels/Pipfile new file mode 100644 index 0000000000..1307ecd98c --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/Pipfile @@ -0,0 +1,20 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] + +[packages] +requests = "*" +pydantic = "*" +pytest = "*" +black = "*" +pylint = "*" +httpretty = "*" + +[requires] +python_version = "3" + +[pipenv] +allow_prereleases = true diff --git a/packages/sdk/python/test/__init__.py b/packages/sdk/python/human-protocol-basemodels/__init__.py similarity index 100% rename from packages/sdk/python/test/__init__.py rename to packages/sdk/python/human-protocol-basemodels/__init__.py diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py b/packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py new file mode 100644 index 0000000000..6e61801f86 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py @@ -0,0 +1,13 @@ +from .manifest import ( + validate_manifest_uris, + Manifest, + NestedManifest, + RequestConfig, + TaskData, + Webhook, +) +from .manifest.data import validate_taskdata_entry, validate_groundtruth_entry +from .via import ViaDataManifest +from .manifest.data.preprocess import Pipeline, Preprocess + +__version__ = "0.0.0" diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/constants.py b/packages/sdk/python/human-protocol-basemodels/basemodels/constants.py new file mode 100644 index 0000000000..a09cb010ff --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/constants.py @@ -0,0 +1,18 @@ +JOB_TYPES_FOR_CONTENT_TYPE_VALIDATION = [ + "image_label_binary", + "image_label_multiple_choice", + "text_free_entry", + "image_label_area_adjust", + "image_label_area_select", + "image_label_single_polygon", + "image_label_multiple_polygons", + "image_label_semantic_segmentation_one_option", + "image_label_semantic_segmentation_multiple_options", + "image_label_text", +] + +SUPPORTED_CONTENT_TYPES = [ + "image/jpeg", + "image/jpg", + "image/png", +] diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/__init__.py b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/__init__.py new file mode 100644 index 0000000000..f92231e70a --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/__init__.py @@ -0,0 +1,8 @@ +from .manifest import ( + Manifest, + NestedManifest, + RequestConfig, + TaskData, + Webhook, + validate_manifest_uris, +) diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/__init__.py b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/__init__.py new file mode 100644 index 0000000000..8f6f1beeca --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/__init__.py @@ -0,0 +1,2 @@ +from .groundtruth import validate_groundtruth_entry +from .taskdata import validate_taskdata_entry diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/groundtruth.py b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/groundtruth.py new file mode 100644 index 0000000000..f522563a14 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/groundtruth.py @@ -0,0 +1,123 @@ +from typing import List, Optional, Union + +import requests +from pydantic import BaseModel, HttpUrl, ValidationError +from requests import RequestException +from typing_extensions import Literal + +from basemodels.constants import SUPPORTED_CONTENT_TYPES + + +def create_wrapper_model(type): + class WrapperModel(BaseModel): + data: Optional[type] + + class Config: + arbitrary_types_allowed = True + + return WrapperModel + + +def validate_wrapper_model(Model, data): + Model.validate({"data": data}) + + +groundtruth_entry_key_type = HttpUrl +GroundtruthEntryKeyModel = create_wrapper_model(groundtruth_entry_key_type) +""" +Groundtruth file format for `image_label_binary` job type: + +{ + "https://domain.com/file1.jpeg": ["false", "false", "false"], + "https://domain.com/file2.jpeg": ["true", "true", "true"] +} +""" +ilb_groundtruth_entry_type = List[Literal["true", "false"]] +ILBGroundtruthEntryModel = create_wrapper_model(ilb_groundtruth_entry_type) +""" +Groundtruth file format for `image_label_multiple_choice` job type: + +{ + "https://domain.com/file1.jpeg": [ + ["cat"], + ["cat"], + ["cat"] + ], + "https://domain.com/file2.jpeg": [ + ["dog"], + ["dog"], + ["dog"] + ] +} +""" +ilmc_groundtruth_entry_type = List[List[str]] +ILMCGroundtruthEntryModel = create_wrapper_model(ilmc_groundtruth_entry_type) + + +class ILASGroundtruthEntry(BaseModel): + entity_name: float + entity_type: str + entity_coords: List[Union[int, float]] + + +""" +Groundtruth file format for `image_label_area_select` job type + +{ + "https://domain.com/file1.jpeg": [ + [ + { + "entity_name": 0, + "entity_type": "gate", + "entity_coords": [275, 184, 454, 183, 453, 366, 266, 367] + } + ] + ] +} +""" +ilas_groundtruth_entry_type = List[List[ILASGroundtruthEntry]] +ILASGroundtruthEntryModel = create_wrapper_model(ilas_groundtruth_entry_type) + +groundtruth_entry_models_map = { + "image_label_binary": ILBGroundtruthEntryModel, + "image_label_multiple_choice": ILMCGroundtruthEntryModel, + "image_label_area_select": ILASGroundtruthEntryModel, +} + + +def validate_content_type(uri: str) -> None: + """Validate uri content type""" + try: + response = requests.head(uri) + response.raise_for_status() + except RequestException as e: + raise ValidationError( + f"groundtruth content type ({uri}) validation failed", + GroundtruthEntryKeyModel, + ) from e + + content_type = response.headers.get("Content-Type", "") + if content_type not in SUPPORTED_CONTENT_TYPES: + raise ValidationError( + f"groundtruth entry has unsupported type {content_type}", + GroundtruthEntryKeyModel, + ) + + +def validate_groundtruth_entry( + key: str, + value: Union[dict, list], + request_type: str, + validate_image_content_type: bool, +): + """Validate key & value of groundtruth entry based on request_type""" + GroundtruthEntryValueModel = groundtruth_entry_models_map.get(request_type) + + if GroundtruthEntryValueModel is None: + return + + validate_wrapper_model(GroundtruthEntryKeyModel, key) + validate_wrapper_model(GroundtruthEntryValueModel, value) + + if validate_image_content_type: + validate_content_type(key) diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/preprocess.py b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/preprocess.py new file mode 100644 index 0000000000..567cb3084c --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/preprocess.py @@ -0,0 +1,20 @@ +import enum +import typing +import pydantic + + +class Pipeline(str, enum.Enum): + FaceBlurPipeline = "FaceBlurPipeline" + OCRThinFilterPipeline = "OCRThinFilterPipeline" + UploadPipeline = "UploadPipeline" + + +class Preprocess(pydantic.BaseModel): + pipeline: Pipeline + config: typing.Optional[dict] + + def to_dict(self): + p = {"pipeline": self.pipeline.value} + if self.config is not None: + p["config"] = self.config + return p diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/taskdata.py b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/taskdata.py new file mode 100644 index 0000000000..309dda0205 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/taskdata.py @@ -0,0 +1,87 @@ +from typing import Dict, Optional, Union +from uuid import UUID + +import requests +from pydantic import BaseModel, HttpUrl, validate_model, ValidationError, validator +from requests import RequestException + +from basemodels.constants import SUPPORTED_CONTENT_TYPES + + +# New type +class AtLeastTenCharUrl(HttpUrl): + min_length = 10 + + +class TaskDataEntry(BaseModel): + """ + Taskdata file format: + + [ + { + "task_key": "407fdd93-687a-46bb-b578-89eb96b4109d", + "datapoint_uri": "https://domain.com/file1.jpg", + "datapoint_hash": "f4acbe8562907183a484498ba901bfe5c5503aaa" + }, + { + "task_key": "20bd4f3e-4518-4602-b67a-1d8dfabcce0c", + "datapoint_uri": "https://domain.com/file2.jpg", + "datapoint_hash": "f4acbe8562907183a484498ba901bfe5c5503aaa" + } + ] + """ + + task_key: Optional[UUID] + datapoint_uri: HttpUrl + + @validator("datapoint_uri", always=True) + def validate_datapoint_uri(cls, value): + if len(value) < 10: + raise ValidationError("datapoint_uri need to be at least 10 char length.") + + @validator("metadata") + def validate_metadata(cls, value): + if value is None: + return value + + if len(value) > 10: + raise ValidationError("10 key max. in metadata") + + if len(str(value)) > 1024: + raise ValidationError("metadata should be < 1024") + + return value + + datapoint_hash: Optional[str] + metadata: Optional[Dict[str, Optional[Union[str, int, float]]]] + + +def validate_content_type(uri: str) -> None: + """Validate uri content type""" + try: + response = requests.head(uri) + response.raise_for_status() + except RequestException as e: + raise ValidationError( + f"taskdata content type ({uri}) validation failed", TaskDataEntry() + ) from e + + content_type = response.headers.get("Content-Type", "") + if content_type not in SUPPORTED_CONTENT_TYPES: + raise ValidationError( + f"taskdata entry datapoint_uri has unsupported type {content_type}", + TaskDataEntry(), + ) + + +def validate_taskdata_entry(value: dict, validate_image_content_type: bool) -> None: + """Validate taskdata entry""" + if not isinstance(value, dict): + raise ValidationError("taskdata entry should be dict", TaskDataEntry()) + + *_, validation_error = validate_model(TaskDataEntry, value) + if validation_error: + raise validation_error + + if validate_image_content_type: + validate_content_type(value["datapoint_uri"]) diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/manifest.py b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/manifest.py new file mode 100644 index 0000000000..2385d1e617 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/manifest.py @@ -0,0 +1,444 @@ +import uuid +import requests +from requests.exceptions import RequestException +from typing_extensions import Literal +from typing import Dict, Union, List, Optional +from enum import Enum +from uuid import UUID, uuid4 +from .data.groundtruth import validate_groundtruth_entry +from .data.taskdata import validate_taskdata_entry +from pydantic import ( + BaseModel, + validator, + ValidationError, + validate_model, + HttpUrl, + AnyHttpUrl, +) +from pydantic.fields import Field +from decimal import Decimal +from .restricted_audience import RestrictedAudience +from basemodels.constants import JOB_TYPES_FOR_CONTENT_TYPE_VALIDATION + + +# Validator function for taskdata and taskdata_uri fields +def validator_taskdata_uri(cls, value, values, **kwargs): + taskdata = values.get("taskdata") + taskdata_uri = values.get("taskdata_uri") + if taskdata is not None and len(taskdata) > 0 and taskdata_uri is not None: + raise ValidationError( + "Specify only one of taskdata {} or taskdata_uri {}".format( + taskdata, taskdata_uri + ) + ) + return value + + +# A validator function for UUID fields +def validate_uuid(cls, value): + return value or uuid.uuid4() + + +# Base job types +class BaseJobTypesEnum(str, Enum): + image_label_binary = "image_label_binary" + image_label_multiple_choice = "image_label_multiple_choice" + text_free_entry = "text_free_entry" + text_multiple_choice_one_option = "text_multiple_choice_one_option" + text_multiple_choice_multiple_options = "text_multiple_choice_multiple_options" + image_label_area_adjust = "image_label_area_adjust" + image_label_area_select = "image_label_area_select" + image_label_single_polygon = "image_label_single_polygon" + image_label_multiple_polygons = "image_label_multiple_polygons" + image_label_semantic_segmentation_one_option = ( + "image_label_semantic_segmentation_one_option" + ) + image_label_semantic_segmentation_multiple_options = ( + "image_label_semantic_segmentation_multiple_options" + ) + image_label_text = "image_label_text" + multi_challenge = "multi_challenge" + + +# Return a request type validator function +class RequestTypeValidator(object): + def __init__(self, multi_challenge: bool = True): + self.multi_challenge = multi_challenge + + def validate(self, cls, value, values): + """ + validate request types for all types of challenges + multi_challenge should always have multi_challenge_manifests + """ + if value == BaseJobTypesEnum.multi_challenge: + if not self.multi_challenge: + raise ValidationError("multi_challenge request is not allowed here.") + if "multi_challenge_manifests" not in values: + raise ValidationError( + "multi_challenge requires multi_challenge_manifests." + ) + elif value in [ + BaseJobTypesEnum.image_label_multiple_choice, + BaseJobTypesEnum.image_label_area_select, + ]: + if values.get("multiple_choice_min_choices", 1) > values.get( + "multiple_choice_max_choices", 1 + ): + raise ValidationError( + "multiple_choice_min_choices cannot be greater than multiple_choice_max_choices" + ) + return value + + +# Shape types enum +class ShapeTypes(str, Enum): + point = "point" + bounding_box = "bounding_box" + polygon = "polygon" + + +class Model(BaseModel): + def to_primitive(self): + return self.dict() + + # Helper function for using in the unittest + def check(self, return_new=False): + self.__class__.validate(self) + out_dict, _, validation_error = validate_model(self.__class__, self.__dict__) + if validation_error: + raise validation_error + + # For compatibility with tests + if return_new: + return self.__class__(**out_dict) + + +class Webhook(Model): + """Model for webhook configuration""" + + webhook_id: UUID + chunk_completed: Optional[List[str]] + job_completed: Optional[List[str]] + + # States that might be interesting later + # job_skipped: List[str] = None + # job_inserted : List[str] = None + # job_activated : List[str] = None + + +class TaskData(BaseModel): + """Objects within taskdata list in Manifest""" + + task_key: UUID + datapoint_uri: AnyHttpUrl + datapoint_hash: str = Field(..., min_length=10, strip_whitespace=True) + + +class RequestConfig(Model): + """Definition of the request_config object in manifest""" + + version: int = 0 + shape_type: Optional[ShapeTypes] + min_points: Optional[int] + max_points: Optional[int] + min_shapes_per_image: Optional[int] + max_shapes_per_image: Optional[int] + restrict_to_coords: Optional[bool] + minimum_selection_area_per_shape: Optional[int] + multiple_choice_max_choices: Optional[int] = 1 + multiple_choice_min_choices: Optional[int] = 1 + overlap_threshold: Optional[float] + + +class InternalConfig(Model): + """Discarded from incoming manifests""" + + exchange: Optional[Dict[str, Union[str, int, float]]] + reco: Optional[Dict[str, Union[str, int, float]]] + repo: Optional[Dict[str, Union[str, int, float]]] + other: Optional[Dict[str, Union[str, int, float]]] + # Accept one layer of nested + mitl: Optional[Dict[str, Union[str, int, float, Dict[str, Union[str, int, float]]]]] + + class Config: + arbitrary_types_allowed = True + + +class NestedManifest(Model): + """The nested manifest description for multi_challenge jobs""" + + # We will set a default dynamic value for job_id + job_id: Optional[UUID] + validate_job_id = validator("job_id", always=True, allow_reuse=True)(validate_uuid) + + request_type: BaseJobTypesEnum + validate_request_type = validator("request_type", allow_reuse=True, always=True)( + RequestTypeValidator(multi_challenge=False).validate + ) + requester_restricted_answer_set: Optional[Dict[str, Dict[str, str]]] + + @validator("requester_restricted_answer_set", always=True) + def validate_requester_restricted_answer_set(cls, value, values, **kwargs): + """image_label_area_select should always have a single RAS set""" + + # validation runs before other params, so need to handle missing case + if "request_type" not in values: + raise ValidationError("request_type missing") + if values["request_type"] == BaseJobTypesEnum.image_label_area_select: + if not value or len(value.keys()) == 0: + value = {"label": {}} + values["requester_restricted_answer_set"] = value + return value + + requester_description: Optional[str] + requester_max_repeats: int = 100 + requester_min_repeats: int = 1 + requester_question: Optional[Dict[str, str]] + requester_question_example: Optional[Union[HttpUrl, List[HttpUrl]]] + + @validator("requester_question_example") + def validate_requester_question_example(cls, value, values, **kwargs): + # validation runs before other params, so need to handle missing case + if not ("request_type" in values): + raise ValidationError("request_type missing") + + # based on https://github.com/hCaptcha/hmt-basemodels/issues/27#issuecomment-590706643 + supports_lists = [ + BaseJobTypesEnum.image_label_area_select, + BaseJobTypesEnum.image_label_binary, + ] + + if isinstance(value, list) and not values["request_type"] in supports_lists: + raise ValidationError("Lists are not allowed in this challenge type") + return value + + unsafe_content: bool = False + requester_accuracy_target: float = 0.1 + + request_config: Optional[RequestConfig] + + # Groundtruth data is stored as a URL or optionally as an inlined json-serialized stringtype + groundtruth_uri: Optional[HttpUrl] + groundtruth: Optional[str] + + @validator("groundtruth", always=True) + def validate_groundtruth(cls, v, values, **kwargs): + if "groundtruth_uri" in values and "groundtruth" in values: + raise ValidationError( + "Specify only groundtruth_uri or groundtruth, not both." + ) + return v + + # Configuration id -- XXX LEGACY + confcalc_configuration_id: Optional[str] + webhook: Optional[Webhook] + + class Config: + arbitrary_types_allowed = True + + +class Manifest(Model): + """The manifest description.""" + + job_mode: Literal["batch", "online", "instant_delivery"] + + # We will set a default dynamic value for job_api_key + job_api_key: Optional[UUID] + + # We will set a default dynamic value for job_id + job_id: UUID = Field(default_factory=uuid4) + + job_total_tasks: int + multi_challenge_manifests: Optional[List[NestedManifest]] + request_type: BaseJobTypesEnum + network: Optional[str] + only_sign_results: bool = False + public_results: bool = False + + requester_restricted_answer_set: Optional[Dict[str, Dict[str, str]]] + + requester_description: Optional[str] + requester_max_repeats: int = 100 + requester_min_repeats: int = 1 + requester_question: Optional[Dict[str, str]] + + requester_question_example: Optional[Union[HttpUrl, List[HttpUrl]]] + + unsafe_content: bool = False + task_bid_price: float + oracle_stake: Decimal + expiration_date: Optional[int] + requester_accuracy_target: float = 0.1 + manifest_smart_bounty_addr: Optional[str] + hmtoken_addr: Optional[str] + minimum_trust_server: float = 0.1 + minimum_trust_client: float = 0.1 + recording_oracle_addr: Optional[str] + reputation_oracle_addr: Optional[str] + reputation_agent_addr: Optional[str] + requester_pgp_public_key: Optional[str] + ro_uri: Optional[str] + repo_uri: Optional[str] + batch_result_delivery_webhook: Optional[AnyHttpUrl] + online_result_delivery_webhook: Optional[AnyHttpUrl] + instant_result_delivery_webhook: Optional[AnyHttpUrl] + + request_config: Optional[RequestConfig] + + # If taskdata is directly provided + taskdata: Optional[List[TaskData]] + + # If taskdata is separately stored + taskdata_uri: Optional[AnyHttpUrl] + + # Groundtruth data is stored as a URL or optionally as an inlined json-serialized stringtype + groundtruth_uri: Optional[AnyHttpUrl] + groundtruth: Optional[str] + + # internal config options for param tests etc. + internal_config: Optional[InternalConfig] + + # Configuration id + confcalc_configuration_id: Optional[str] + restricted_audience: Optional[RestrictedAudience] = {} + + webhook: Optional[Webhook] + + rejected_uri: Optional[AnyHttpUrl] + rejected_count: Optional[int] + + # Validators + + @validator("requester_min_repeats") + def validate_min_repeats(cls, v, values): + """min repeats are required to be at least 4 if ilmc""" + if values["request_type"] == "image_label_multiple_choice": + return max(v, 4) + return v + + @validator("groundtruth", always=True) + def validate_groundtruth(cls, value, values): + if "groundtruth_uri" in values and "groundtruth" in values: + raise ValueError("Specify only groundtruth_uri or groundtruth, not both.") + return value + + @validator("requester_restricted_answer_set", always=True) + def validate_requester_restricted_answer_set(cls, value, values, **kwargs): + """image_label_area_select should always have a single RAS set""" + # validation runs before other params, so need to handle missing case + if not ("request_type" in values): + raise ValueError("request_type missing") + + if values["request_type"] == BaseJobTypesEnum.image_label_area_select: + if not value or len(value.keys()) == 0: + value = {"label": {}} + values["requester_restricted_answer_set"] = value + return value + + @validator("requester_question_example") + def validate_requester_question_example(cls, value, values, **kwargs): + # validation runs before other params, so need to handle missing case + if not ("request_type" in values): + raise ValueError("request_type missing") + + # based on https://github.com/hCaptcha/hmt-basemodels/issues/27#issuecomment-590706643 + supports_lists = [ + BaseJobTypesEnum.image_label_area_select, + BaseJobTypesEnum.image_label_binary, + ] + + if isinstance(value, list) and not (values["request_type"] in supports_lists): + raise ValueError("Lists are not allowed in this challenge type") + return value + + validate_taskdata_uri = validator("taskdata_uri", allow_reuse=True, always=True)( + validator_taskdata_uri + ) + validate_taskdata = validator("taskdata", allow_reuse=True, always=True)( + validator_taskdata_uri + ) + validate_request_type = validator("request_type", allow_reuse=True, always=True)( + RequestTypeValidator().validate + ) + validate_job_api_key = validator("job_api_key", always=True, allow_reuse=True)( + validate_uuid + ) + validate_job_id = validator("job_id", always=True, allow_reuse=True)(validate_uuid) + + class Config: + arbitrary_types_allowed = True + + +def validate_groundtruth_uri(manifest: dict): + """ + Validate groundtruth_uri + Returns entries count if succeeded + """ + request_type = manifest.get("request_type", "") + validate_image_content_type = request_type in JOB_TYPES_FOR_CONTENT_TYPE_VALIDATION + uri_key = "groundtruth_uri" + uri = manifest.get(uri_key) + if uri is None: + return + try: + response = requests.get(uri, timeout=1) + response.raise_for_status() + + entries_count = 0 + data = response.json() + if isinstance(data, dict): + for k, v in data.items(): + entries_count += 1 + validate_groundtruth_entry( + k, v, request_type, validate_image_content_type + ) + validate_image_content_type = False + else: + for v in data: + entries_count += 1 + validate_groundtruth_entry( + "", v, request_type, validate_image_content_type + ) + validate_image_content_type = False + + except (ValidationError, RequestException) as e: + raise ValidationError(f"{uri_key} validation failed: {e}", Manifest) from e + + if entries_count == 0: + raise ValidationError(f"fetched {uri_key} is empty", Manifest) + + +def validate_taskdata_uri(manifest: dict): + """ + Validate taskdata_uri + Returns entries count if succeeded + """ + request_type = manifest.get("request_type", "") + validate_image_content_type = request_type in JOB_TYPES_FOR_CONTENT_TYPE_VALIDATION + uri_key = "taskdata_uri" + uri = manifest.get(uri_key) + if uri is None: + return + try: + response = requests.get(uri, timeout=1) + response.raise_for_status() + + entries_count = 0 + data = response.json() + for v in data: + entries_count += 1 + validate_taskdata_entry(v, validate_image_content_type) + # We want to validate only first entry for content type + validate_image_content_type = False + + except (ValidationError, RequestException) as e: + raise ValidationError(f"{uri_key} validation failed: {e}", Manifest) from e + + if entries_count == 0: + raise ValidationError(f"fetched {uri_key} is empty", Manifest) + + +def validate_manifest_uris(manifest: dict): + """Fetch & validate manifest's remote objects""" + validate_taskdata_uri(manifest) + validate_groundtruth_uri(manifest) diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/restricted_audience.py b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/restricted_audience.py new file mode 100644 index 0000000000..b9f0ba68f2 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/restricted_audience.py @@ -0,0 +1,88 @@ +from enum import Enum +from uuid import UUID +from typing import Optional, List, Dict, Any +from pydantic import ( + BaseModel, + root_validator, + ValidationError, + conint, + confloat, + validator, +) + + +class RestrictedAudienceBrowserEnum(str, Enum): + mobile = "mobile" + tablet = "tablet" + desktop = "desktop" + modern_browser = "modern_browser" + + +class RestrictedAudienceConfidenceEnum(str, Enum): + minimum_client_confidence = "minimum_client_confidence" + + +class RestrictedAudienceScore(BaseModel): + score: confloat(ge=0, le=1) + + +class RestrictedAudience(BaseModel): + lang: Optional[List[Dict[str, RestrictedAudienceScore]]] + country: Optional[List[Dict[str, RestrictedAudienceScore]]] + sitekey: Optional[List[Dict[str, RestrictedAudienceScore]]] + serverdomain: Optional[List[Dict[str, RestrictedAudienceScore]]] + browser: Optional[ + List[Dict[RestrictedAudienceBrowserEnum, RestrictedAudienceScore]] + ] + confidence: Optional[ + List[Dict[RestrictedAudienceConfidenceEnum, RestrictedAudienceScore]] + ] + reason: Optional[List[Dict[str, RestrictedAudienceScore]]] + + min_difficulty: Optional[conint(ge=0, le=4, strict=True)] + min_user_score: Optional[confloat(ge=0, le=1)] + max_user_score: Optional[confloat(ge=0, le=1)] + + launch_group_id: Optional[conint(ge=0, strict=True)] + + def dict(self, **kwargs): + kwargs["exclude_unset"] = True + return super().dict(**kwargs) + + def json(self, **kwargs): + kwargs["exclude_unset"] = True + return super().json(**kwargs) + + @root_validator() + def validate_score_fields(cls, values: Dict[str, Any]) -> Dict[str, Any]: + for entry, value in values.items(): + if value is None: + continue + if entry in [ + "lang", + "country", + "browser", + "sitekey", + "serverdomain", + "confidence", + ]: + if isinstance(value, list): + for restriction in value: + if len(restriction) > 1: + raise ValueError("only 1 element per list item is allowed") + key = next(iter(restriction)) + if entry in ["lang", "country", "sitekey"]: + if str(key) != str(key).lower(): + raise ValueError("use lowercase") + return values + + @validator("sitekey") + def validate_sitekey(cls, value): + if value is not None: + for restriction in value: + for sitekey in restriction: + try: + UUID(sitekey) + except: + raise ValidationError("invalid sitekey") + return value diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/via.py b/packages/sdk/python/human-protocol-basemodels/basemodels/via.py new file mode 100644 index 0000000000..b7bf254858 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/via.py @@ -0,0 +1,60 @@ +""" +The VIA Format defines a standard schema for data files containing the results +of annotations produced for each datapoint of a job, i.e. the tasks defined in +a job manifest. Each file takes the general form of: + +{ + "datapoints": [{ + "task_uri": "https://mydomain.com/image.jpg", + "metadata": { + "filename": "image.jpg" + }, + "class_attributes": { + "0": { + # This nested class_attributes field will soon be deprecated + "class_attributes": { + "dog": False, + "cat": False + } + } + }, + "regions": [{ + "region_attributes": { + "region_key": "region_value" + }, + "shape_attributes": { + "coords": [x1, y1, x2, y2, x3, y3, x4, y4], + "name": "shape_type" + } + }], + }] +} + + +""" +from typing import Dict, List, Any, Optional, Union +from pydantic import BaseModel, HttpUrl + + +class RegionAttributesBaseModel(BaseModel): + region_attributes: Dict[str, Any] + shape_attributes: Dict[str, Any] + + +class ClassAttributeBaseModel(BaseModel): + # inner class attributes field not required, here for legacy purposes + class_attributes: Optional[Dict[str, Any]] + regions: Optional[List[RegionAttributesBaseModel]] + + +class DatapointBaseModel(BaseModel): + task_uri: HttpUrl + metadata: Optional[Dict[str, Any]] + class_attributes: Optional[Union[Any, Dict[str, ClassAttributeBaseModel]]] + + +class ViaDataManifest(BaseModel): + """Main entrypoint to define the VIA Data Format""" + + datapoints: List[DatapointBaseModel] + version: int = 1 diff --git a/packages/sdk/python/human-protocol-basemodels/pyproject.toml b/packages/sdk/python/human-protocol-basemodels/pyproject.toml new file mode 100644 index 0000000000..c0d66ba7fc --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/pyproject.toml @@ -0,0 +1,6 @@ +[project] +name = "human-protocol-basemodels" +dynamic = ["version"] + +[tool.setuptools.dynamic] +version = {attr = "basemodels.__version__"} diff --git a/packages/sdk/python/pytest.ini b/packages/sdk/python/human-protocol-basemodels/pytest.ini similarity index 100% rename from packages/sdk/python/pytest.ini rename to packages/sdk/python/human-protocol-basemodels/pytest.ini diff --git a/packages/sdk/python/human-protocol-basemodels/scripts/export-json-schema.sh b/packages/sdk/python/human-protocol-basemodels/scripts/export-json-schema.sh new file mode 100755 index 0000000000..a4cda132df --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/scripts/export-json-schema.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +cat << EOF > pyscript.py +#!/usr/bin/python3 +import json +from basemodels import Manifest + +# Writing to manifest.json +with open("../../json-schema/manifest.json", "w") as outfile: + outfile.write(Manifest.schema_json(indent=2)) + +EOF + +chmod 755 pyscript.py + +pipenv run python ./pyscript.py + +rm -rf pyscript.py diff --git a/packages/sdk/python/human-protocol-basemodels/setup.py b/packages/sdk/python/human-protocol-basemodels/setup.py new file mode 100644 index 0000000000..30fb3c380f --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/setup.py @@ -0,0 +1,17 @@ +import setuptools + +setuptools.setup( + name="human-protocol-basemodels", + author="HUMAN Protocol", + description="Common data models shared by various components of the Human Protocol stack", + url="https://github.com/humanprotocol/human-protocol/packages/sdk/python/human-protocol-basemodels", + include_package_data=True, + zip_safe=True, + classifiers=[ + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Programming Language :: Python", + ], + packages=setuptools.find_packages(), + install_requires=["requests>=2", "typing-extensions", "pydantic>=1.6"], +) diff --git a/packages/sdk/python/test/human_protocol_sdk/__init__.py b/packages/sdk/python/human-protocol-basemodels/test/__init__.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/__init__.py rename to packages/sdk/python/human-protocol-basemodels/test/__init__.py diff --git a/packages/sdk/python/human-protocol-basemodels/test/test_manifest.py b/packages/sdk/python/human-protocol-basemodels/test/test_manifest.py new file mode 100644 index 0000000000..ac3813435a --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/test/test_manifest.py @@ -0,0 +1,873 @@ +#!/usr/bin/env python3 +from pydantic import ValidationError +from typing import Any + +import basemodels +from uuid import uuid4 +from copy import deepcopy + +from basemodels.manifest.data.taskdata import TaskDataEntry + +import unittest +import httpretty +import json + +from basemodels.manifest.restricted_audience import RestrictedAudience + +CALLBACK_URL = "http://google.com/webback" +FAKE_URL = "http://google.com/fake" +IMAGE_LABEL_BINARY = "image_label_binary" + +REP_ORACLE = "0x61F9F0B31eacB420553da8BCC59DC617279731Ac" +REC_ORACLE = "0xD979105297fB0eee83F7433fC09279cb5B94fFC6" +FAKE_ORACLE = "0x1413862c2b7054cdbfdc181b83962cb0fc11fd92" + + +# A helper function for create manifest models based on model library +def create_manifest(data: dict): + return basemodels.Manifest.construct(**data) + + +# A helper function for create nested manifest models based on model library +def create_nested_manifest(data: dict): + return basemodels.NestedManifest.construct(**data) + + +# A helper function for create nested manifest models based on model library +def create_webhook(data: dict): + return basemodels.Webhook.construct(**data) + + +# Json serializer for models based on libraries +def to_json(model): + # Pydantic json serializer + return model.json() + + +# A helper function for providing validatation function based on libraries +def validate_func(model): + return model.check + + +def a_manifest( + number_of_tasks=100, + bid_amount=1.0, + oracle_stake=0.05, + expiration_date=0, + minimum_trust=0.1, + request_type=IMAGE_LABEL_BINARY, + request_config=None, + job_mode="batch", + multi_challenge_manifests=None, +) -> Any: + internal_config = {"exchange": {"a": 1, "b": "c"}} + model = { + "requester_restricted_answer_set": { + "0": {"en": "English Answer 1"}, + "1": { + "en": "English Answer 2", + "answer_example_uri": "https://hcaptcha.com/example_answer2.jpg", + }, + }, + "job_mode": job_mode, + "request_type": request_type, + "internal_config": internal_config, + "multi_challenge_manifests": multi_challenge_manifests, + "unsafe_content": False, + "task_bid_price": bid_amount, + "oracle_stake": oracle_stake, + "expiration_date": expiration_date, + "minimum_trust_server": minimum_trust, + "minimum_trust_client": minimum_trust, + "requester_accuracy_target": minimum_trust, + "recording_oracle_addr": REC_ORACLE, + "reputation_oracle_addr": REP_ORACLE, + "reputation_agent_addr": REP_ORACLE, + "instant_result_delivery_webhook": CALLBACK_URL, + "requester_question": {"en": "How much money are we to make"}, + "requester_question_example": FAKE_URL, + "job_total_tasks": number_of_tasks, + "taskdata_uri": FAKE_URL, + } + + if request_config: + model.update({"request_config": request_config}) + + manifest = create_manifest(model) + validate_func(manifest)() + return manifest + + +def a_nested_manifest( + request_type=IMAGE_LABEL_BINARY, minimum_trust=0.1, request_config=None +) -> Any: + model = { + "requester_restricted_answer_set": { + "0": {"en": "English Answer 1"}, + "1": { + "en": "English Answer 2", + "answer_example_uri": "https://hcaptcha.com/example_answer2.jpg", + }, + }, + "request_type": request_type, + "requester_accuracy_target": minimum_trust, + "requester_question": {"en": "How much money are we to make"}, + "requester_question_example": FAKE_URL, + } + + if request_config: + model.update({"request_config": request_config}) + + manifest = create_nested_manifest(model) + validate_func(manifest)() + + return manifest + + +TASK = { + "task_key": "407fdd93-687a-46bb-b578-89eb96b4109d", + "datapoint_uri": "https://domain.com/file1.jpg", + "datapoint_hash": "f4acbe8562907183a484498ba901bfe5c5503aaa", + "metadata": { + "key_1": "value_1", + "key_2": "value_2", + }, +} + + +class ManifestTest(unittest.TestCase): + """Manifest specific tests, validating that models work the way we want""" + + def test_basic_construction(self): + """Tests that manifest can validate the test manifest properly.""" + a_manifest() + + def test_can_serialize(self): + """validate that we can dump this to json in downstream services""" + j = to_json(a_manifest()) + + def test_can_fail_toconstruct(self): + """Tests that the manifest raises an Error when called with falsy parameters.""" + a_manifest(-1) + self.assertRaises(ValidationError, a_manifest, "invalid amount") + + def test_can_fail_toconstruct2(self): + """Tests that validated fields can't be broken without an exception.""" + mani = a_manifest() + mani.taskdata_uri = "test" + self.assertRaises(ValidationError, validate_func(mani)) + + def test_can_make_request_config_job(self): + """Test that jobs with valid request_config parameter work""" + manifest = a_manifest( + request_type="image_label_area_select", + request_config={"shape_type": "point", "overlap_threshold": 0.8}, + ) + + def test_can_make_nested_request_config_job_single_nest(self): + """Test that jobs with valid nested request_config parameter work""" + nested_manifest = a_nested_manifest( + request_type="image_label_area_select", + request_config={"shape_type": "point"}, + ) + + manifest = a_manifest( + request_type="multi_challenge", multi_challenge_manifests=[nested_manifest] + ) + + def test_can_make_nested_request_config_job_multiple_nest(self): + """Test that jobs with multiple valid nested request_config parameters work""" + nested_manifest = a_nested_manifest( + request_type="image_label_area_select", + request_config={"shape_type": "point"}, + ) + + nested_manifest_2 = a_nested_manifest( + request_type="image_label_area_select", + request_config={"shape_type": "point"}, + ) + + manifest = a_manifest( + request_type="multi_challenge", + multi_challenge_manifests=[nested_manifest, nested_manifest_2], + ) + + def test_can_bad_request_config(self): + """Test that an invalid shape_type in request_config will fail""" + manifest = a_manifest() + manifest.request_type = "image_label_area_select" + manifest.request_config = {"shape_type": "not-a-real-option"} + self.assertRaises(ValidationError, validate_func(manifest)) + + def test_gets_default_restrictedanswerset(self): + """Make sure that the image_label_area_select jobs get a default RAS""" + model = { + "job_mode": "batch", + "request_type": "image_label_area_select", + "unsafe_content": False, + "task_bid_price": 1, + "oracle_stake": 0.1, + "expiration_date": 0, + "minimum_trust_server": 0.1, + "minimum_trust_client": 0.1, + "requester_accuracy_target": 0.1, + "recording_oracle_addr": REC_ORACLE, + "reputation_oracle_addr": REP_ORACLE, + "reputation_agent_addr": REP_ORACLE, + "instant_result_delivery_webhook": CALLBACK_URL, + "requester_question": {"en": "How much money are we to make"}, + "requester_question_example": FAKE_URL, + "job_total_tasks": 5, + "taskdata_uri": FAKE_URL, + } + + manifest = create_manifest(model) + + func = validate_func(manifest) + manifest = func(True) + + self.assertGreater( + len(manifest.to_primitive()["requester_restricted_answer_set"].keys()), 0 + ) + + def test_confcalc_configuration_id(self): + """Test that key is in manifest""" + manifest = a_manifest() + manifest.confcalc_configuration_id = "test_conf_id" + validate_func(manifest)() + + self.assertTrue("confcalc_configuration_id" in manifest.to_primitive()) + + def test_url_or_list_for_example(self): + """validates that we can supply a list or a url to example key""" + model = a_manifest() + + model.requester_question_example = "https://test.com" + self.assertTrue(validate_func(model)() is None) + self.assertIsInstance(model.to_primitive()["requester_question_example"], str) + + model.requester_question_example = ["https://test.com"] + self.assertTrue(validate_func(model)() is None) + self.assertIsInstance(model.to_primitive()["requester_question_example"], list) + + model.requester_question_example = "non-url" + self.assertRaises(ValidationError, validate_func(model)) + model.requester_question_example = ["non-url"] + self.assertRaises(ValidationError, validate_func(model)) + + # we now allow lists in non-ilb types + model.request_type = "image_label_area_select" + self.assertTrue(validate_func(model)) + + def test_restricted_audience(self): + """Test that restricted audience is in the Manifest""" + manifest = a_manifest() + + restricted_audience = { + "lang": [{"en-us": {"score": 0.9}}], + "confidence": [{"minimum_client_confidence": {"score": 0.9}}], + "min_difficulty": 2, + } + + manifest.restricted_audience = RestrictedAudience(**restricted_audience) + + validate_func(manifest)() + self.assertTrue("restricted_audience" in manifest.to_primitive()) + self.assertTrue( + "minimum_client_confidence" + in manifest.to_primitive()["restricted_audience"]["confidence"][0] + ) + self.assertEqual( + 0.9, + manifest.to_primitive()["restricted_audience"]["confidence"][0][ + "minimum_client_confidence" + ]["score"], + ) + self.assertTrue( + "en-us" in manifest.to_primitive()["restricted_audience"]["lang"][0] + ) + self.assertEqual( + 0.9, + manifest.to_primitive()["restricted_audience"]["lang"][0]["en-us"]["score"], + ) + self.assertEqual( + 2, manifest.to_primitive()["restricted_audience"]["min_difficulty"] + ) + + def test_parse_restricted_audience(self): + """Test None fields are skipped in restricted audience""" + restricted_audience = {"min_difficulty": 2} + + self.assertEqual( + RestrictedAudience(**restricted_audience).dict(), {"min_difficulty": 2} + ) + self.assertEqual( + RestrictedAudience(**restricted_audience).json(), '{"min_difficulty": 2}' + ) + + def test_restricted_audience_only(self): + def assert_raises(data): + with self.assertRaises(ValidationError): + RestrictedAudience(**data) + + for data in [ + {"lang": "us"}, + {"lang": [{"US": {"score": 1}}]}, + {"lang": [{"US": "US"}]}, + {"lang": [{"us": {"nonsense": 1}}]}, + {"lang": [{"us": {"score": -0.1}}]}, + ]: + assert_raises(data) + + for data in [ + {"country": "us"}, + {"country": [{"US": {"score": 1}}]}, + {"country": [{"US": "US"}]}, + {"country": [{"us": {"nonsense": 1}}]}, + {"country": [{"us": {"score": -0.1}}]}, + {"country": [{"us": {"score": -0.1}}]}, + ]: + assert_raises(data) + + for data in [ + {"browser": "desktop"}, + {"browser": [{"Desktop": {"score": 1}}]}, + {"browser": [{"desktop": "US"}]}, + {"browser": [{"desktop": {"nonsense": 1}}]}, + {"browser": [{"desktop": {"score": -0.1}}]}, + ]: + assert_raises(data) + + sitekey = "9d98b147-dc5a-4ea4-82cf-0ced5b2434d2" + for data in [ + {"sitekey": "sitekey"}, + {"sitekey": [{"9d98b147": {"score": 1}}]}, + {"sitekey": [{sitekey.upper(): {"score": 1}}]}, + {"sitekey": [{sitekey: 1}]}, + {"sitekey": [{sitekey: {"nonsense": 1}}]}, + {"sitekey": [{sitekey: {"score": -0.1}}]}, + ]: + assert_raises(data) + + for data in [ + {"serverdomain": "serverdomain"}, + {"serverdomain": [{"serverdomain": 1}]}, + {"serverdomain": [{"serverdomain": {"nonsense": 1}}]}, + {"serverdomain": [{"serverdomain": {"score": -0.1}}]}, + ]: + assert_raises(data) + + for data in [ + {"confidence": "confidence"}, + {"confidence": [{"MINIMUM_client_confidence": {"score": 1}}]}, + {"confidence": [{"minimum_client_confidence": 1}]}, + {"confidence": [{"minimum_client_confidence": {"nonsense": 1}}]}, + {"confidence": [{"minimum_client_confidence": {"score": -0.1}}]}, + ]: + assert_raises(data) + + for data in [ + {"min_difficulty": "min_difficulty"}, + {"min_difficulty": -1}, + {"min_difficulty": 5}, + {"min_difficulty": 1.1}, + ]: + assert_raises(data) + + for data in [ + {"min_user_score": "min_user_score"}, + {"min_user_score": -0.1}, + {"min_user_score": 1.1}, + ]: + assert_raises(data) + + for data in [ + {"max_user_score": "max_user_score"}, + {"max_user_score": -0.1}, + {"max_user_score": 1.1}, + ]: + assert_raises(data) + + for data in [ + {"launch_group_id": "launch_group_id"}, + {"launch_group_id": -3}, + {"launch_group_id": 1.1}, + ]: + assert_raises(data) + + data = { + "lang": [ + {"us": {"score": 0}}, + {"es": {"score": 0.5}}, + {"en-us": {"score": 1}}, + ], + "country": [ + {"us": {"score": 0}}, + {"es": {"score": 0.5}}, + {"it": {"score": 1}}, + ], + "browser": [ + {"tablet": {"score": 0.5}}, + {"desktop": {"score": 0}}, + {"mobile": {"score": 1}}, + {"modern_browser": {"score": 0.9}}, + ], + "sitekey": [ + {str(uuid4()): {"score": 0.5}}, + {str(uuid4()): {"score": 0}}, + {str(uuid4()): {"score": 1}}, + ], + "serverdomain": [ + {"1hcaptcha.com": {"score": 0.5}}, + {"2hcaptcha.com": {"score": 0}}, + {"3hcaptcha.com": {"score": 1}}, + ], + "confidence": [{"minimum_client_confidence": {"score": 0.5}}], + "min_difficulty": 2, + "min_user_score": 0, + "max_user_score": 0.3, + "launch_group_id": 101, + } + + RestrictedAudience(**data) + + def test_realistic_multi_challenge_example(self): + """validates a realistic multi_challenge manifest""" + obj = { + "job_mode": "batch", + "request_type": "image_label_area_select", + "unsafe_content": False, + "task_bid_price": 1, + "oracle_stake": 0.1, + "expiration_date": 0, + "minimum_trust_server": 0.1, + "minimum_trust_client": 0.1, + "requester_accuracy_target": 0.1, + "job_total_tasks": 1000, + "recording_oracle_addr": REC_ORACLE, + "reputation_oracle_addr": REP_ORACLE, + "reputation_agent_addr": REP_ORACLE, + "job_id": "c26c2e6a-41ab-4218-b39e-6314b760c45c", + "request_type": "multi_challenge", + "requester_question": { + "en": "Please draw a bow around the text shown, select the best corresponding labels, and enter the word depicted by the image." + }, + "multi_challenge_manifests": [ + { + "request_type": "image_label_area_select", + "job_id": "c26c2e6a-41ab-4218-b39e-6314b760c45c", + "requester_question": { + "en": "Please draw a bow around the text shown." + }, + "request_config": { + "shape_type": "polygon", + "min_points": 1, + "max_points": 4, + "min_shapes_per_image": 1, + "max_shapes_per_image": 4, + }, + }, + { + "request_type": "image_label_multiple_choice", + "job_id": "c26c2e6a-41ab-4218-b39e-6314b760c45c", + "requester_question": {"en": "Select the corresponding label."}, + "requester_restricted_answer_set": { + "print": {"en": "Print"}, + "hand-writing": {"en": "Hand Writing"}, + }, + "request_config": {"multiple_choice_max_choices": 1}, + }, + { + "request_type": "image_label_multiple_choice", + "job_id": "c26c2e6a-41ab-4218-b39e-6314b760c45c", + "requester_question": {"en": "Select the corresponding labels."}, + "requester_restricted_answer_set": { + "top-bottom": {"en": "Top to Bottom"}, + "bottom-top": {"en": "Bottom to Top"}, + "left-right": {"en": "Left to Right"}, + "right-left": {"en": "Right to Left"}, + }, + "request_config": {"multiple_choice_max_choices": 1}, + }, + { + "request_type": "image_label_text", + "job_id": "c26c2e6a-41ab-4218-b39e-6314b760c45c", + "requester_question": {"en": "Please enter the word in the image."}, + }, + ], + "taskdata": [ + { + "datapoint_hash": "sha1:5daf66c6031df7f8913bfa0b52e53e3bcd42aab3", + "datapoint_uri": "http://test.com/task.jpg", + "task_key": "2279daef-d10a-4b0f-85d1-0ccbf7c8906b", + } + ], + } + + model = create_manifest(obj) + # print(model.to_primitive()) + self.assertTrue(validate_func(model)() is None) + + def test_webhook(self): + """Test that webhook is correct""" + webhook = { + "webhook_id": "c26c2e6a-41ab-4218-b39e-6314b760c45c", + "job_completed": ["http://servicename:4000/api/webhook"], + } + + webhook_model = create_webhook(webhook) + validate_func(webhook_model)() + self.assertTrue("webhook_id" in webhook_model.to_primitive()) + + model = a_manifest() + model.webhook = webhook + validate_func(model)() + self.assertTrue("webhook" in model.to_primitive()) + + def test_invalid_example_images(self): + """validate that only certain types of request_types can specify example images""" + manifest = a_manifest().to_primitive() + manifest["request_type"] = "image_label_multiple_choice" + manifest["requester_question_example"] = ["a"] + + with self.assertRaises(ValidationError): + validate_func(create_manifest(manifest))() + + del manifest["requester_question_example"] + validate_func(create_manifest(manifest))() + + def test_default_only_sign_results(self): + """Test whether flag 'only_sign_results' is False by default.""" + manifest = a_manifest() + self.assertEqual(manifest.only_sign_results, False) + + def test_default_public_results(self): + """Test whether flag 'public_results' is False by default.""" + manifest = a_manifest() + self.assertEqual(manifest.public_results, False) + + +class ViaTest(unittest.TestCase): + def test_via_legacy_case(self): + """tests case with inner class_attributes""" + content = { + "datapoints": [ + { + "task_uri": "https://mydomain.com/image.jpg", + "metadata": {"filename": "image.jpg"}, + "class_attributes": { + "0": {"class_attributes": {"dog": False, "cat": False}} + }, + "regions": [ + { + "region_attributes": {"region_key": "region_value"}, + "shape_attributes": { + "coords": [1, 2, 3, 4, 5, 6, 7, 8.0], + "name": "shape_type", + }, + } + ], + } + ] + } + + # Also test the marshmallow model from the old package + parsed = basemodels.ViaDataManifest(**content).dict() + self.assertEqual(len(parsed["datapoints"]), 1) + self.assertEqual(parsed["version"], 1) + + def test_via_v1_case(self): + """tests case where we dont use the inner class_attributes""" + content = { + "datapoints": [ + { + "task_uri": "https://mydomain.com/image.jpg", + "metadata": {"filename": "image.jpg"}, + "class_attributes": {"dog": False, "cat": False}, + "regions": [ + { + "region_attributes": {"region_key": "region_value"}, + "shape_attributes": { + "coords": [1, 2, 3, 4, 5, 6, 7, 8.0], + "name": "shape_type", + }, + } + ], + } + ] + } + + # Also test the marshmallow model from the old package + parsed = basemodels.ViaDataManifest(**content).dict() + self.assertEqual(len(parsed["datapoints"]), 1) + self.assertEqual(parsed["version"], 1) + self.assertIn("dog", parsed["datapoints"][0]["class_attributes"]) + + +@httpretty.activate +class TestValidateManifestUris(unittest.TestCase): + def register_http_response( + self, + uri="https://uri.com", + manifest=None, + body=None, + method=httpretty.GET, + headers=None, + ): + headers = headers or {} + httpretty.register_uri(method, uri, body=json.dumps(body), **headers) + + def validate_groundtruth_response(self, request_type, body): + uri = "https://uri.com" + manifest = {"groundtruth_uri": uri, "request_type": request_type} + + self.register_http_response(uri, manifest, body) + + basemodels.validate_manifest_uris(manifest) + + def test_no_uris(self): + """should not raise if there are no uris to validate""" + manifest = {} + basemodels.validate_manifest_uris(manifest) + + def test_groundtruth_uri_ilb_valid(self): + groundtruth_uri = "https://domain.com/123/file1.jpeg" + body = { + groundtruth_uri: ["false", "false", "false"], + "https://domain.com/456/file2.jpeg": ["false", "true", "false"], + } + + self.register_http_response( + groundtruth_uri, + method=httpretty.HEAD, + headers={"Content-Type": "image/jpeg"}, + ) + self.validate_groundtruth_response("image_label_binary", body) + + def test_groundtruth_uri_ilb_invalid(self): + body = {"not_uri": ["false", "false", True]} + + with self.assertRaises(ValidationError): + self.validate_groundtruth_response("image_label_binary", body) + + def test_groundtruth_uri_ilb_invalid_format(self): + """should raise if groundtruth_uri contains array instead of object""" + body = [{"key": "value"}] + + with self.assertRaises(ValidationError): + self.validate_groundtruth_response("image_label_binary", body) + + def test_groundtruth_uri_ilmc_valid(self): + groundtruth_uri = "https://domain.com/file1.jpeg" + body = { + groundtruth_uri: [["cat"], ["cat"], ["cat"]], + "https://domain.com/file2.jpeg": [["dog"], ["dog"], ["dog"]], + } + + self.register_http_response( + groundtruth_uri, + method=httpretty.HEAD, + headers={"Content-Type": "image/jpeg"}, + ) + self.validate_groundtruth_response("image_label_multiple_choice", body) + + def test_groundtruth_uri_ilmc_invalid_key(self): + body = {"not_uri": [["cat"], ["cat"], ["cat"]]} + + with self.assertRaises(ValidationError): + self.validate_groundtruth_response("image_label_multiple_choice", body) + + def test_groundtruth_uri_ilmc_invalid_value(self): + body = { + "https://domain.com/file1.jpeg": [True, False], + } + + with self.assertRaises(ValidationError): + self.validate_groundtruth_response("image_label_multiple_choice", body) + + def test_groundtruth_uri_ilas_valid(self): + groundtruth_uri = "https://domain.com/file1.jpeg" + body = { + groundtruth_uri: [ + [ + { + "entity_name": 0, + "entity_type": "gate", + "entity_coords": [275, 184, 454, 183, 453, 366, 266, 367], + } + ] + ] + } + + self.register_http_response( + groundtruth_uri, + method=httpretty.HEAD, + headers={"Content-Type": "image/jpeg"}, + ) + self.validate_groundtruth_response("image_label_area_select", body) + + def test_groundtruth_uri_ilas_invalid_key(self): + body = { + "not_uri": [ + [ + { + "entity_name": 0, + "entity_type": "gate", + "entity_coords": [275, 184, 454, 183, 453, 366, 266, 367], + } + ] + ] + } + + with self.assertRaises(ValidationError): + self.validate_groundtruth_response("image_label_area_select", body) + + def test_groundtruth_uri_ilas_invalid_value(self): + body = {"https://domain.com/file1.jpeg": [[True]]} + + with self.assertRaises(ValidationError): + self.validate_groundtruth_response("image_label_area_select", body) + + def test_taskdata_empty(self): + """should raise if taskdata_uri contains no entries""" + uri = "https://uri.com" + manifest = {"taskdata_uri": uri} + body = [] + + self.register_http_response(uri, manifest, body) + + with self.assertRaises(ValidationError): + basemodels.validate_manifest_uris(manifest) + + def test_taskdata_invalid_format(self): + """should raise if taskdata_uri contains object instead of array""" + uri = "https://uri.com" + manifest = {"taskdata_uri": uri} + body = {"key": [1, 2, 3]} + + self.register_http_response(uri, manifest, body) + + with self.assertRaises(ValidationError): + basemodels.validate_manifest_uris(manifest) + + def test_taskdata_uri_valid(self): + uri = "https://uri.com" + manifest = {"taskdata_uri": uri} + body = [ + { + "task_key": "407fdd93-687a-46bb-b578-89eb96b4109d", + "datapoint_uri": "https://domain.com/file1.jpg", + "datapoint_hash": "f4acbe8562907183a484498ba901bfe5c5503aaa", + }, + { + "task_key": "20bd4f3e-4518-4602-b67a-1d8dfabcce0c", + "datapoint_uri": "https://domain.com/file2.jpg", + "datapoint_hash": "f4acbe8562907183a484498ba901bfe5c5503aaa", + }, + ] + + self.register_http_response(uri, manifest, body) + + basemodels.validate_manifest_uris(manifest) + + def test_taskdata_uri_invalid(self): + uri = "https://uri.com" + manifest = {"taskdata_uri": uri} + body = [{"task_key": "not_uuid", "datapoint_uri": "not_uri"}] + + self.register_http_response(uri, manifest, body) + + with self.assertRaises(ValidationError): + basemodels.validate_manifest_uris(manifest) + + def test_groundtruth_and_taskdata_valid(self): + taskdata_uri = "https://td.com" + groundtruth_uri = "https://gt.com" + manifest = { + "taskdata_uri": taskdata_uri, + "groundtruth_uri": groundtruth_uri, + "request_type": "image_label_binary", + } + datapoint_uri = "https://domain.com/file1.jpg" + taskdata = [ + { + "task_key": "407fdd93-687a-46bb-b578-89eb96b4109d", + "datapoint_uri": datapoint_uri, + "datapoint_hash": "f4acbe8562907183a484498ba901bfe5c5503aaa", + }, + { + "task_key": "20bd4f3e-4518-4602-b67a-1d8dfabcce0c", + "datapoint_uri": "https://domain.com/file2.jpg", + "datapoint_hash": "f4acbe8562907183a484498ba901bfe5c5503aaa", + }, + ] + groundtruth_image_uri = "https://domain.com/123/file1.jpeg" + groundtruth = { + groundtruth_image_uri: ["false", "false", "false"], + "https://domain.com/456/file2.jpeg": ["false", "true", "false"], + } + + self.register_http_response( + datapoint_uri, method=httpretty.HEAD, headers={"Content-Type": "image/jpeg"} + ) + self.register_http_response( + groundtruth_image_uri, + method=httpretty.HEAD, + headers={"Content-Type": "image/jpeg"}, + ) + self.register_http_response(taskdata_uri, manifest, taskdata) + self.register_http_response(groundtruth_uri, manifest, groundtruth) + + basemodels.validate_manifest_uris(manifest) + + def test_mitl_in_internal_config(self): + """Test that mitl config can be part of the internal configuration""" + model = a_manifest().to_primitive() + mitl_config = { + "n_gt": 200, + "min_tasks_in_job": 1000, + "n_gt_sample_min": 1, + "n_gt_sample_max": 3, + "task_max_repeats": 25, + "max_tasks_in_job": 36000, + "model_id": "ResNext50_32x4d", + "task_selection_id": "MinMargin", + "requester_min_repeats": 12, + "requester_max_repeats": 25, + "stop_n_active": 1000, + "requester_accuracy_target": 0.8, + "nested_config": {"value_a": 1, "value_b": 2}, + } + + model["internal_config"]["mitl"] = mitl_config + manifest = create_manifest(model) + validate_func(manifest)() + self.assertTrue(True) + + +class TaskEntryTest(unittest.TestCase): + def test_valid_entry_is_true(self): + taskdata = deepcopy(TASK) + TaskDataEntry(**taskdata) + + taskdata.get("metadata")["key_1"] = 1.1 + TaskDataEntry(**taskdata) + + taskdata.get("metadata")["key_1"] = None + TaskDataEntry(**taskdata) + + taskdata.get("metadata")["key_1"] = "" + TaskDataEntry(**taskdata) + + with self.assertRaises(ValidationError): + taskdata.get("metadata")["key_1"] += 1024 * "a" + TaskDataEntry(**taskdata) + + taskdata.pop("metadata") + TaskDataEntry(**taskdata) + + taskdata["datapoint_text"] = {"en": "Question to test with"} + TaskDataEntry(**taskdata) + + taskdata["datapoint_uri"] = "https://domain.com/file1.jpg" + TaskDataEntry(**taskdata) diff --git a/packages/sdk/python/human-protocol-basemodels/test/test_preprocess.py b/packages/sdk/python/human-protocol-basemodels/test/test_preprocess.py new file mode 100644 index 0000000000..0d0b610f36 --- /dev/null +++ b/packages/sdk/python/human-protocol-basemodels/test/test_preprocess.py @@ -0,0 +1,39 @@ +import unittest + +from pydantic.error_wrappers import ValidationError +from basemodels import Preprocess, Pipeline + + +class PipelineTest(unittest.TestCase): + def test_preprocess(self): + config = {} + p = Preprocess(pipeline=Pipeline.FaceBlurPipeline, config=config) + + self.assertEqual(p.pipeline, Pipeline.FaceBlurPipeline) + self.assertEqual(p.config, config) + + p = Preprocess(pipeline=Pipeline.FaceBlurPipeline) + + self.assertIsNone(p.config) + + def test_preprocess_raise(self): + with self.assertRaises(ValidationError): + Preprocess() + + with self.assertRaises(ValidationError): + Preprocess(pipeline="") + + with self.assertRaises(ValidationError): + Preprocess(pipeline=Pipeline.FaceBlurPipeline, config=1) + + def test_preprocess_to_dict(self): + config = {"radius": 3} + p = Preprocess(pipeline=Pipeline.FaceBlurPipeline, config=config) + + self.assertEqual( + p.to_dict(), {"pipeline": Pipeline.FaceBlurPipeline.value, "config": config} + ) + + p = Preprocess(pipeline=Pipeline.FaceBlurPipeline) + + self.assertEqual(p.to_dict(), {"pipeline": Pipeline.FaceBlurPipeline.value}) diff --git a/packages/sdk/python/.gitignore b/packages/sdk/python/human-protocol-sdk/.gitignore similarity index 100% rename from packages/sdk/python/.gitignore rename to packages/sdk/python/human-protocol-sdk/.gitignore diff --git a/packages/sdk/python/LICENSE b/packages/sdk/python/human-protocol-sdk/LICENSE similarity index 100% rename from packages/sdk/python/LICENSE rename to packages/sdk/python/human-protocol-sdk/LICENSE diff --git a/packages/sdk/python/MANIFEST.in b/packages/sdk/python/human-protocol-sdk/MANIFEST.in similarity index 100% rename from packages/sdk/python/MANIFEST.in rename to packages/sdk/python/human-protocol-sdk/MANIFEST.in diff --git a/packages/sdk/python/Makefile b/packages/sdk/python/human-protocol-sdk/Makefile similarity index 100% rename from packages/sdk/python/Makefile rename to packages/sdk/python/human-protocol-sdk/Makefile diff --git a/packages/sdk/python/Pipfile b/packages/sdk/python/human-protocol-sdk/Pipfile similarity index 100% rename from packages/sdk/python/Pipfile rename to packages/sdk/python/human-protocol-sdk/Pipfile diff --git a/packages/sdk/python/README.md b/packages/sdk/python/human-protocol-sdk/README.md similarity index 100% rename from packages/sdk/python/README.md rename to packages/sdk/python/human-protocol-sdk/README.md diff --git a/packages/sdk/python/docs/Makefile b/packages/sdk/python/human-protocol-sdk/docs/Makefile similarity index 100% rename from packages/sdk/python/docs/Makefile rename to packages/sdk/python/human-protocol-sdk/docs/Makefile diff --git a/packages/sdk/python/docs/README.md b/packages/sdk/python/human-protocol-sdk/docs/README.md similarity index 100% rename from packages/sdk/python/docs/README.md rename to packages/sdk/python/human-protocol-sdk/docs/README.md diff --git a/packages/sdk/python/docs/make.bat b/packages/sdk/python/human-protocol-sdk/docs/make.bat similarity index 100% rename from packages/sdk/python/docs/make.bat rename to packages/sdk/python/human-protocol-sdk/docs/make.bat diff --git a/packages/sdk/python/docs/source/conf.py b/packages/sdk/python/human-protocol-sdk/docs/source/conf.py similarity index 100% rename from packages/sdk/python/docs/source/conf.py rename to packages/sdk/python/human-protocol-sdk/docs/source/conf.py diff --git a/packages/sdk/python/docs/source/index.rst b/packages/sdk/python/human-protocol-sdk/docs/source/index.rst similarity index 100% rename from packages/sdk/python/docs/source/index.rst rename to packages/sdk/python/human-protocol-sdk/docs/source/index.rst diff --git a/packages/sdk/python/human_protocol_sdk/__init__.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/__init__.py similarity index 100% rename from packages/sdk/python/human_protocol_sdk/__init__.py rename to packages/sdk/python/human-protocol-sdk/human_protocol_sdk/__init__.py diff --git a/packages/sdk/python/human_protocol_sdk/crypto/__init__.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/crypto/__init__.py similarity index 100% rename from packages/sdk/python/human_protocol_sdk/crypto/__init__.py rename to packages/sdk/python/human-protocol-sdk/human_protocol_sdk/crypto/__init__.py diff --git a/packages/sdk/python/human_protocol_sdk/crypto/encryption.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/crypto/encryption.py similarity index 100% rename from packages/sdk/python/human_protocol_sdk/crypto/encryption.py rename to packages/sdk/python/human-protocol-sdk/human_protocol_sdk/crypto/encryption.py diff --git a/packages/sdk/python/human_protocol_sdk/crypto/exceptions.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/crypto/exceptions.py similarity index 100% rename from packages/sdk/python/human_protocol_sdk/crypto/exceptions.py rename to packages/sdk/python/human-protocol-sdk/human_protocol_sdk/crypto/exceptions.py diff --git a/packages/sdk/python/human_protocol_sdk/eth_bridge.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/eth_bridge.py similarity index 100% rename from packages/sdk/python/human_protocol_sdk/eth_bridge.py rename to packages/sdk/python/human-protocol-sdk/human_protocol_sdk/eth_bridge.py diff --git a/packages/sdk/python/human_protocol_sdk/job.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/job.py similarity index 100% rename from packages/sdk/python/human_protocol_sdk/job.py rename to packages/sdk/python/human-protocol-sdk/human_protocol_sdk/job.py diff --git a/packages/sdk/python/human_protocol_sdk/storage.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/storage.py similarity index 100% rename from packages/sdk/python/human_protocol_sdk/storage.py rename to packages/sdk/python/human-protocol-sdk/human_protocol_sdk/storage.py diff --git a/packages/sdk/python/human_protocol_sdk/utils.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/utils.py similarity index 100% rename from packages/sdk/python/human_protocol_sdk/utils.py rename to packages/sdk/python/human-protocol-sdk/human_protocol_sdk/utils.py diff --git a/packages/sdk/python/pyproject.toml b/packages/sdk/python/human-protocol-sdk/pyproject.toml similarity index 100% rename from packages/sdk/python/pyproject.toml rename to packages/sdk/python/human-protocol-sdk/pyproject.toml diff --git a/packages/sdk/python/human-protocol-sdk/pytest.ini b/packages/sdk/python/human-protocol-sdk/pytest.ini new file mode 100644 index 0000000000..1f03c72f4e --- /dev/null +++ b/packages/sdk/python/human-protocol-sdk/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +addopts = -p no:warnings --doctest-modules \ No newline at end of file diff --git a/packages/sdk/python/scripts/build-contracts.sh b/packages/sdk/python/human-protocol-sdk/scripts/build-contracts.sh similarity index 66% rename from packages/sdk/python/scripts/build-contracts.sh rename to packages/sdk/python/human-protocol-sdk/scripts/build-contracts.sh index 856de36ddf..4f70ccd99f 100755 --- a/packages/sdk/python/scripts/build-contracts.sh +++ b/packages/sdk/python/human-protocol-sdk/scripts/build-contracts.sh @@ -3,4 +3,4 @@ set -eux rm -rf contracts yarn workspace @human-protocol/core compile -cp -r ../../core/artifacts/contracts . +cp -r ../../../core/artifacts/contracts . diff --git a/packages/sdk/python/scripts/generate-docs.sh b/packages/sdk/python/human-protocol-sdk/scripts/generate-docs.sh similarity index 100% rename from packages/sdk/python/scripts/generate-docs.sh rename to packages/sdk/python/human-protocol-sdk/scripts/generate-docs.sh diff --git a/packages/sdk/python/scripts/run-test.sh b/packages/sdk/python/human-protocol-sdk/scripts/run-test.sh similarity index 100% rename from packages/sdk/python/scripts/run-test.sh rename to packages/sdk/python/human-protocol-sdk/scripts/run-test.sh diff --git a/packages/sdk/python/setup.py b/packages/sdk/python/human-protocol-sdk/setup.py similarity index 95% rename from packages/sdk/python/setup.py rename to packages/sdk/python/human-protocol-sdk/setup.py index d7ff6050d7..5cf03a6f9d 100644 --- a/packages/sdk/python/setup.py +++ b/packages/sdk/python/human-protocol-sdk/setup.py @@ -6,7 +6,7 @@ version="0.0.7", author="HUMAN Protocol", description="A python library to launch escrow contracts to the HUMAN network.", - url="https://github.com/humanprotocol/human-protocol/packages/sdk/python", + url="https://github.com/humanprotocol/human-protocol/packages/sdk/python/human-protocol-sdk", include_package_data=True, exclude_package_data={"contracts": ["*.dbg.json"]}, zip_safe=True, diff --git a/packages/sdk/python/test/human_protocol_sdk/crypto/__init__.py b/packages/sdk/python/human-protocol-sdk/test/__init__.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/crypto/__init__.py rename to packages/sdk/python/human-protocol-sdk/test/__init__.py diff --git a/packages/sdk/python/test/human_protocol_sdk/storage/__init__.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/__init__.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/storage/__init__.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/__init__.py diff --git a/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/crypto/__init__.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/crypto/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/sdk/python/test/human_protocol_sdk/crypto/test_crypto.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/crypto/test_crypto.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/crypto/test_crypto.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/crypto/test_crypto.py diff --git a/packages/sdk/python/test/human_protocol_sdk/crypto/test_encryption.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/crypto/test_encryption.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/crypto/test_encryption.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/crypto/test_encryption.py diff --git a/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/storage/__init__.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/storage/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/sdk/python/test/human_protocol_sdk/storage/test_bucket.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/storage/test_bucket.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/storage/test_bucket.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/storage/test_bucket.py diff --git a/packages/sdk/python/test/human_protocol_sdk/storage/test_storage.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/storage/test_storage.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/storage/test_storage.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/storage/test_storage.py diff --git a/packages/sdk/python/test/human_protocol_sdk/test_eth_bridge.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/test_eth_bridge.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/test_eth_bridge.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/test_eth_bridge.py diff --git a/packages/sdk/python/test/human_protocol_sdk/test_job.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/test_job.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/test_job.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/test_job.py diff --git a/packages/sdk/python/test/human_protocol_sdk/test_utils.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/test_utils.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/test_utils.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/test_utils.py diff --git a/packages/sdk/python/test/human_protocol_sdk/utils/__init__.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/utils/__init__.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/utils/__init__.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/utils/__init__.py diff --git a/packages/sdk/python/test/human_protocol_sdk/utils/job.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/utils/job.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/utils/job.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/utils/job.py diff --git a/packages/sdk/python/test/human_protocol_sdk/utils/manifest.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/utils/manifest.py similarity index 100% rename from packages/sdk/python/test/human_protocol_sdk/utils/manifest.py rename to packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/utils/manifest.py From c9205b0666c2788861ecb153866a59223297ce76 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 24 Jan 2023 12:36:38 +0100 Subject: [PATCH 082/216] escrow tests --- packages/core/hardhat.config.ts | 2 +- packages/core/package.json | 1 + .../fortune/launcher/server/package.json | 7 +- .../launcher/server/src/constants/networks.ts | 7 +- .../launcher/server/src/plugins/escrow.ts | 12 +- .../launcher/server/src/plugins/web3.ts | 14 +- .../launcher/server/src/routes/escrow.ts | 5 +- .../server/tests/plugins/escrow.test.ts | 63 + .../fortune/launcher/server/tests/utils.ts | 32 + yarn.lock | 1130 +++++++++++------ 10 files changed, 896 insertions(+), 377 deletions(-) create mode 100644 packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts create mode 100644 packages/examples/fortune/launcher/server/tests/utils.ts diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index d0ca690c8b..4a63495ed2 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -53,7 +53,7 @@ const config: HardhatUserConfig = { defaultNetwork: 'hardhat', networks: { localhost: { - url: 'http://127.0.0.1:8545', + url: `http://127.0.0.1:${process.env.RPC_PORT || '8545'}`, }, hardhat: { forking: process.env.FORKING_URL diff --git a/packages/core/package.json b/packages/core/package.json index e869decffd..2d1c7d7b05 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,6 +16,7 @@ "test": "hardhat test", "test:coverage": "hardhat coverage", "local": "concurrently --hide 0 \"hardhat node\" \"yarn deploy:local\"", + "local:port": "concurrently --hide 0 \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", "deploy": "hardhat run scripts/deploy.ts", "deploy:local": "yarn deploy --network localhost", "lint": "eslint .", diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index a1a7586552..cb2fdf84fd 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -15,10 +15,13 @@ "typescript": "^4.9.4" }, "devDependencies": { - "ts-node": "^10.9.1" + "pino-pretty": "^9.1.1", + "ts-node": "^10.9.1", + "vitest": "^0.28.1" }, "scripts": { "build": "tsc", - "start": "ts-node --esm ./src/index.ts" + "start": "ts-node --esm ./src/index.ts", + "test:unit": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 5 && vitest\"" } } diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 17e6fe6a7a..daa19bcd44 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -6,15 +6,14 @@ export enum ChainId { BSC_TESTNET = 97, POLYGON = 137, POLYGON_MUMBAI = 80001, - MOONBEAM = 1284, + MOONBEAM = 1284, + LOCALHOST = 1338 } export interface IEscrowNetwork { chainId: number; title: string; - scanUrl: string; rpcUrl: string; - subgraphUrl: string; hmtAddress: string; factoryAddress: string; } @@ -64,9 +63,7 @@ export const ESCROW_NETWORKS: { [ChainId.POLYGON_MUMBAI]: { chainId: ChainId.POLYGON_MUMBAI, title: 'Polygon Mumbai', - scanUrl: 'https://mumbai.polygonscan.com', rpcUrl: 'https://rpc-mumbai.maticvigil.com', - subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai', factoryAddress: '0x558cd800f9F0B02f3B149667bDe003284c867E94', hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', }, diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index cfe338e888..fde3c5bbb1 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -8,14 +8,14 @@ import Web3 from 'web3'; import { REC_ORACLE_ADDRESS, REC_ORACLE_PERCENTAGE_FEE, REP_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE } from "../constants/oracles.js"; class Escrow { - async setupEscrow (web3: Web3, escrowAddress: string, escrow: typeof escrowSchema.properties, url: string) { + async setupEscrow (web3: Web3, escrowAddress: string, url: string, fortunesRequested: number) { const escrowContract = new web3.eth.Contract(EscrowAbi as [], escrowAddress); const gas = await escrowContract.methods - .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url) + .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url, fortunesRequested) .estimateGas({ from: web3.eth.defaultAccount }); const gasPrice = await web3.eth.getGasPrice(); const result = await escrowContract.methods - .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url) + .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url, fortunesRequested) .send({ from: web3.eth.defaultAccount, gas, gasPrice }); } @@ -30,14 +30,14 @@ class Escrow { return allowance == fundAmount && balance >= fundAmount; } - async createEscrow (web3: Web3, factoryAddress: string, jobRequester: string) { + async createEscrow (web3: Web3, factoryAddress: string, token: string,jobRequester: string) { const escrowFactory = new web3.eth.Contract(EscrowFactoryAbi as [], factoryAddress); const gas = await escrowFactory.methods - .createEscrow([jobRequester]) + .createEscrow(token, [jobRequester]) .estimateGas({ from: web3.eth.defaultAccount }); const gasPrice = await web3.eth.getGasPrice(); var result = await escrowFactory.methods - .createEscrow([]) + .createEscrow(token, [jobRequester]) .send({ from: web3.eth.defaultAccount, gas, gasPrice }); return result.events.Launched.returnValues.escrow; } diff --git a/packages/examples/fortune/launcher/server/src/plugins/web3.ts b/packages/examples/fortune/launcher/server/src/plugins/web3.ts index d0b46ea358..cd9c518454 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/web3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/web3.ts @@ -27,13 +27,13 @@ class Web3Client { constructor() { } - createWeb3 (network: IEscrowNetwork) { - const ethHttpServer = network.rpcUrl as string; - const web3 = new Web3(ethHttpServer); - const account = web3.eth.accounts.privateKeyToAccount(`0x${this.privKey}`); - web3.eth.accounts.wallet.add(account); - web3.eth.defaultAccount = account.address; - return web3; + createWeb3 (network: IEscrowNetwork, privKey?: string) { + const ethHttpServer = network.rpcUrl as string; + const web3 = new Web3(ethHttpServer); + const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey || this.privKey}`); + web3.eth.accounts.wallet.add(account); + web3.eth.defaultAccount = account.address; + return web3; } } diff --git a/packages/examples/fortune/launcher/server/src/routes/escrow.ts b/packages/examples/fortune/launcher/server/src/routes/escrow.ts index 4dc64a874d..f48f3a6252 100644 --- a/packages/examples/fortune/launcher/server/src/routes/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/routes/escrow.ts @@ -39,13 +39,14 @@ export const createEscrow: FastifyPluginAsync = async (server) => { const jobRequester = escrowData.jobRequester as unknown as string; const token = escrowData.token as unknown as string; + const fortunesRequested = Number(escrowData.fortunesRequired); const fundAmount = web3Client.utils.toWei(Number(escrowData.fundAmount).toString(), 'ether'); if (await escrow.checkApproved(web3Client, token, jobRequester, fundAmount)) { - const escrowAddress = await escrow.createEscrow(web3Client, escrowNetwork.factoryAddress, jobRequester); + const escrowAddress = await escrow.createEscrow(web3Client, escrowNetwork.factoryAddress, token, jobRequester); await escrow.fundEscrow(web3Client, token, jobRequester, escrowAddress, fundAmount); const url = await s3.uploadManifest(escrowData, escrowAddress); - await escrow.setupEscrow(web3Client, escrowAddress, escrowData, url); + await escrow.setupEscrow(web3Client, escrowAddress, url, fortunesRequested); return escrowAddress; } diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts new file mode 100644 index 0000000000..6dd169a7b3 --- /dev/null +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -0,0 +1,63 @@ +import fastify from "fastify"; +import { describe, test, expect, beforeAll } from 'vitest'; +import { ChainId, IEscrowNetwork } from "../../src/constants/networks.js"; +import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; +import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; +import server from '../../src/server.js' +import { stake, approve } from '../utils.js' + +const privKey = 'df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e'; +const jobRequesterPrivKey = 'de9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0'; +const jobRequester = '0xdD2FD4581271e230360230F9337D5c0430Bf44C0'; + +describe('Escrow tests', () => { + const { escrow, web3 } = server; + const network: IEscrowNetwork = { + chainId: ChainId.LOCALHOST, + factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', + hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + rpcUrl: 'http://localhost:8546', + title: 'Localhost' + }; + const web3Client = web3.createWeb3(network, privKey); + const web3JobRequester = web3.createWeb3(network, jobRequesterPrivKey); + + beforeAll(async () => { + await stake(web3Client, network); + }); + + test('Should not be approved', async () => { + expect(await escrow.checkApproved(web3Client, network.hmtAddress, jobRequester, web3Client.utils.toWei('10', 'ether'))).eq(false); + }); + + test('Should be approved', async () => { + const amount = web3Client.utils.toWei('10', 'ether'); + await approve(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); + expect(await escrow.checkApproved(web3Client, network.hmtAddress, jobRequester, web3Client.utils.toWei('10', 'ether'))).eq(true); + }); + + test('Should create an escrow', async () => { + const escrowAddress = await escrow.createEscrow(web3Client, network.factoryAddress, network.hmtAddress, jobRequester); + const escrowContract = new web3Client.eth.Contract(EscrowAbi as [], escrowAddress); + expect(await escrowContract.methods.launcher().call()).eq(network.factoryAddress); + }); + + test('Should fund an escrow', async () => { + const escrowAddress = await escrow.createEscrow(web3Client, network.factoryAddress, network.hmtAddress, jobRequester); + const escrowContract = new web3Client.eth.Contract(EscrowAbi as [], escrowAddress); + const amount = web3Client.utils.toWei('10', 'ether'); + await escrow.fundEscrow(web3Client, network.hmtAddress, jobRequester, escrowAddress, amount); + const hmtContract = new web3Client.eth.Contract(HMTokenAbi as [], network.hmtAddress); + expect(await hmtContract.methods.balanceOf(escrowAddress).call()).eq(amount); + }); + + test('Should setup an escrow ', async () => { + const escrowAddress = await escrow.createEscrow(web3Client, network.factoryAddress, network.hmtAddress, jobRequester); + const escrowContract = new web3Client.eth.Contract(EscrowAbi as [], escrowAddress); + const url = 'http://test.com'; + await escrow.setupEscrow(web3Client, escrowAddress, url, 3); + expect(await escrowContract.methods.manifestUrl().call()).eq(url); + expect(Number(await escrowContract.methods.remainingFortunes().call())).eq(3); + }); + +}); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/tests/utils.ts b/packages/examples/fortune/launcher/server/tests/utils.ts new file mode 100644 index 0000000000..c5cda2eee7 --- /dev/null +++ b/packages/examples/fortune/launcher/server/tests/utils.ts @@ -0,0 +1,32 @@ +import Web3 from "web3"; +import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json' assert { type: "json" }; +import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; +import StakingAbi from '@human-protocol/core/abis/Staking.json' assert { type: "json" }; +import { IEscrowNetwork } from "../src/constants/networks.js"; + +export const stake = async (web3: Web3, network: IEscrowNetwork) => { + const escrowFactoryContract = new web3.eth.Contract(EscrowFactoryAbi as [], network.factoryAddress); + const stakingAddress = await escrowFactoryContract.methods.staking().call(); + const stakeAmount = web3.utils.toWei('10', 'ether'); + + await approve(web3, network, stakingAddress, stakeAmount) + + const stakingContract = new web3.eth.Contract(StakingAbi as [], stakingAddress); + const gas = await stakingContract.methods + .stake(stakeAmount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + await stakingContract.methods + .stake(stakeAmount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +}; +export const approve = async (web3: Web3, network: IEscrowNetwork, to: string, amount: string) => { + const hmtContract = new web3.eth.Contract(HMTokenAbi as [], network.hmtAddress); + let gas = await hmtContract.methods + .approve(to, amount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + await hmtContract.methods + .approve(to, amount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 98d66906cc..c0615d9660 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1379,6 +1379,116 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== +"@esbuild/android-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" + integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== + +"@esbuild/android-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" + integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== + +"@esbuild/android-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" + integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== + +"@esbuild/darwin-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" + integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== + +"@esbuild/darwin-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" + integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== + +"@esbuild/freebsd-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" + integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== + +"@esbuild/freebsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" + integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== + +"@esbuild/linux-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" + integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== + +"@esbuild/linux-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" + integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== + +"@esbuild/linux-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" + integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== + +"@esbuild/linux-loong64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" + integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== + +"@esbuild/linux-mips64el@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" + integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== + +"@esbuild/linux-ppc64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" + integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== + +"@esbuild/linux-riscv64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" + integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== + +"@esbuild/linux-s390x@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" + integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== + +"@esbuild/linux-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" + integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== + +"@esbuild/netbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" + integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== + +"@esbuild/openbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" + integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== + +"@esbuild/sunos-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" + integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== + +"@esbuild/win32-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" + integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== + +"@esbuild/win32-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" + integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== + +"@esbuild/win32-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" + integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== + "@eslint/eslintrc@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" @@ -2171,16 +2281,16 @@ jest-util "^28.1.3" slash "^3.0.0" -"@jest/console@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" - integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== +"@jest/console@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.0.tgz#ed2e5bc783791c4be75d0054d1bdf66a46deb163" + integrity sha512-xpXud7e/8zo4syxQlAMDz+EQiFsf8/zXDPslBYm+UaSJ5uGTKQHhbSHfECp7Fw1trQtopjYumeved0n3waijhQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.0" + jest-util "^29.4.0" slash "^3.0.0" "@jest/core@^27.5.1": @@ -2217,37 +2327,37 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/core@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" - integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== - dependencies: - "@jest/console" "^29.3.1" - "@jest/reporters" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" +"@jest/core@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.0.tgz#23cf275372c51d1191a8cd9f36f8d5a47a4e9041" + integrity sha512-E7oCMcENobBFwQXYjnN2IsuUSpRo5jSv7VYk6O9GyQ5kVAfVSS8819I4W5iCCYvqD6+1TzyzLpeEdZEik81kNw== + dependencies: + "@jest/console" "^29.4.0" + "@jest/reporters" "^29.4.0" + "@jest/test-result" "^29.4.0" + "@jest/transform" "^29.4.0" + "@jest/types" "^29.4.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.2.0" - jest-config "^29.3.1" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" + jest-changed-files "^29.4.0" + jest-config "^29.4.0" + jest-haste-map "^29.4.0" + jest-message-util "^29.4.0" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-resolve-dependencies "^29.3.1" - jest-runner "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - jest-watcher "^29.3.1" + jest-resolve "^29.4.0" + jest-resolve-dependencies "^29.4.0" + jest-runner "^29.4.0" + jest-runtime "^29.4.0" + jest-snapshot "^29.4.0" + jest-util "^29.4.0" + jest-validate "^29.4.0" + jest-watcher "^29.4.0" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.0" slash "^3.0.0" strip-ansi "^6.0.0" @@ -2261,30 +2371,30 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== +"@jest/environment@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.0.tgz#b15d7bfc873d6348dfd7323e50083d2c1e067750" + integrity sha512-ocl1VGDcZHfHnYLTqkBY7yXme1bF4x0BevJ9wb6y0sLOSyBCpp8L5fEASChB+wU53WMrIK6kBfGt+ZYoM2kcdw== dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/fake-timers" "^29.4.0" + "@jest/types" "^29.4.0" "@types/node" "*" - jest-mock "^29.3.1" + jest-mock "^29.4.0" -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== +"@jest/expect-utils@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.0.tgz#97819d0da7027792888d9d2f1a41443be0baef80" + integrity sha512-w/JzTYIqjmPFIM5OOQHF9CawFx2daw1256Nzj4ZqWX96qRKbCq9WYRVqdySBKHHzuvsXLyTDIF6y61FUyrhmwg== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== +"@jest/expect@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.0.tgz#3d47dbb1c650a0833b8263ca354818ca0665adbe" + integrity sha512-IiDZYQ/Oi94aBT0nKKKRvNsB5JTyHoGb+G3SiGoDxz90JfL7SLx/z5IjB0fzBRzy7aLFQOCbVJlaC2fIgU6Y9Q== dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" + expect "^29.4.0" + jest-snapshot "^29.4.0" "@jest/fake-timers@^27.5.1": version "27.5.1" @@ -2298,17 +2408,17 @@ jest-mock "^27.5.1" jest-util "^27.5.1" -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== +"@jest/fake-timers@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.0.tgz#9a2409cae63eb1d0122edc21783ef88c67e6face" + integrity sha512-8sitzN2QrhDwEwH3kKcMMgrv/UIkmm9AUgHixmn4L++GQ0CqVTIztm3YmaIQooLmW3O4GhizNTTCyq3iLbWcMw== dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" + "@jest/types" "^29.4.0" + "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.0" + jest-mock "^29.4.0" + jest-util "^29.4.0" "@jest/globals@^27.5.1": version "27.5.1" @@ -2319,15 +2429,15 @@ "@jest/types" "^27.5.1" expect "^27.5.1" -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== +"@jest/globals@^29.3.1", "@jest/globals@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.0.tgz#b3dd853af92bb6b6156e246475f46fb8f3831785" + integrity sha512-Q64ZRgGMVL40RcYTfD2GvyjK7vJLPSIvi8Yp3usGPNPQ3SCW+UCY9KEH6+sVtBo8LzhcjtCXuZEd7avnj/T0mQ== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" + "@jest/environment" "^29.4.0" + "@jest/expect" "^29.4.0" + "@jest/types" "^29.4.0" + jest-mock "^29.4.0" "@jest/reporters@^27.5.1": version "27.5.1" @@ -2360,16 +2470,16 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/reporters@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" - integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== +"@jest/reporters@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.0.tgz#ec17751cc687fb845fa1978c03fdbc69d34ac462" + integrity sha512-FjJwrD1XOQq/AXKrvnOSf0RgAs6ziUuGKx8+/R53Jscc629JIhg7/m241gf1shUm/fKKxoHd7aCexcg7kxvkWQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.0" + "@jest/test-result" "^29.4.0" + "@jest/transform" "^29.4.0" + "@jest/types" "^29.4.0" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -2382,9 +2492,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-message-util "^29.4.0" + jest-util "^29.4.0" + jest-worker "^29.4.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -2397,12 +2507,12 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== +"@jest/schemas@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.0.tgz#0d6ad358f295cc1deca0b643e6b4c86ebd539f17" + integrity sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ== dependencies: - "@sinclair/typebox" "^0.24.1" + "@sinclair/typebox" "^0.25.16" "@jest/source-map@^27.5.1": version "27.5.1" @@ -2442,13 +2552,13 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-result@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" - integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== +"@jest/test-result@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.0.tgz#64f7bd518d6d2a6662c40569e208e030a370f351" + integrity sha512-EtRklzjpddZU/aBVxJqqejfzfOcnehmjNXufs6u6qwd05kkhXpAPhZdt8bLlQd7cA2nD+JqZQ5Dx9NX5Jh6mjA== dependencies: - "@jest/console" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.0" + "@jest/types" "^29.4.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" @@ -2462,14 +2572,14 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" -"@jest/test-sequencer@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" - integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== +"@jest/test-sequencer@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.0.tgz#8041176fccae0f7b86055950461d158833a79b76" + integrity sha512-pEwIgdfvEgF2lBOYX3DVn3SrvsAZ9FXCHw7+C6Qz87HnoDGQwbAselhWLhpgbxDjs6RC9QUJpFnrLmM5uwZV+g== dependencies: - "@jest/test-result" "^29.3.1" + "@jest/test-result" "^29.4.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.0" slash "^3.0.0" "@jest/transform@^27.5.1": @@ -2493,26 +2603,26 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== +"@jest/transform@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.0.tgz#73ddd9bf8599d285af09e7e3fef730c17a2fd965" + integrity sha512-hDjw3jz4GnvbyLMgcFpC9/34QcUhVIzJkBqz7o+3AhgfhGRzGuQppuLf5r/q7lDAAyJ6jzL+SFG7JGsScHOcLQ== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.0" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.0" jest-regex-util "^29.2.0" - jest-util "^29.3.1" + jest-util "^29.4.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^4.0.1" + write-file-atomic "^5.0.0" "@jest/types@^27.5.1": version "27.5.1" @@ -2537,12 +2647,12 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== +"@jest/types@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.0.tgz#569115f2438cacf3cff92521c7d624fbb683de3d" + integrity sha512-1S2Dt5uQp7R0bGY/L2BpuwCSji7v12kY3o8zqwlkbYBmOY956SKk+zOWqmfhHSINegiAVqOXydAYuWpzX6TYsQ== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -3399,6 +3509,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== +"@sinclair/typebox@^0.25.16": + version "0.25.21" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" + integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== + "@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" @@ -3411,6 +3526,20 @@ dependencies: type-detect "4.0.8" +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" + integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== + dependencies: + "@sinonjs/commons" "^2.0.0" + "@sinonjs/fake-timers@^8.0.1": version "8.1.0" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" @@ -3418,13 +3547,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@solana/buffer-layout@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -3606,16 +3728,16 @@ "@tanstack/query-persist-client-core" "4.22.4" "@tanstack/react-query-persist-client@^4.0.10": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.22.4.tgz#8e4fad6f70ca922ef9e7be58c5bd14b010cff780" - integrity sha512-vnRD28T0BLsbDRlantC6W34eLCbjSoZEkYL4t2QYRyuEcmUya2Ddbn+DN+RfZHqxoMiSJNfMdmRXsMPpNHZ1QA== + version "4.23.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.23.0.tgz#9efd696279987f654c104b985eed7a5fab665d89" + integrity sha512-wYK0HQP2vS/tAf//oQwoiCmbjMBr+JcaLNex+BU+fbN3ul2uUi6v8Ek5yS9tT95MOc3zySwEDwY48fesbV7KgA== dependencies: "@tanstack/query-persist-client-core" "4.22.4" "@tanstack/react-query@^4.0.10": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.22.4.tgz#851581c645f1c9cfcd394448fedd980a39bbc3fe" - integrity sha512-e5j5Z88XUQGeEPMyz5XF1V0mMf6Da+6URXiTpZfUb9nuHs2nlNoA+EoIvnhccE5b9YT6Yg7kARhn2L7u94M/4A== + version "4.23.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.23.0.tgz#0b9e14269a48cf5a4ffe46c8525cdb9df2ebd9cf" + integrity sha512-cfQsrecZQjYYueiow4WcK8ItokXJnv+b2OrK8Lf5kF7lM9uCo1ilyygFB8wo4MfxchUBVM6Cs8wq4Ed7fouwkA== dependencies: "@tanstack/query-core" "4.22.4" use-sync-external-store "^1.2.0" @@ -3843,7 +3965,14 @@ dependencies: "@types/chai" "*" -"@types/chai@*", "@types/chai@^4.3.3": +"@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== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.3.3", "@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== @@ -4525,6 +4654,42 @@ json-schema-to-ts "1.6.4" ts-morph "12.0.0" +"@vitest/expect@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.1.tgz#75e81973c907fe7516b78bcfdc99c6f6c07bf714" + integrity sha512-BOvWjBoocKrrTTTC0opIvzOEa7WR/Ovx4++QYlbjYKjnQJfWRSEQkTpAIEfOURtZ/ICcaLk5jvsRshXvjarZew== + dependencies: + "@vitest/spy" "0.28.1" + "@vitest/utils" "0.28.1" + chai "^4.3.7" + +"@vitest/runner@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.1.tgz#f3c72befec05ef9a3565de7de9974b19f2ff7275" + integrity sha512-kOdmgiNe+mAxZhvj2eUTqKnjfvzzknmrcS+SZXV7j6VgJuWPFAMCv3TWOe03nF9dkqDfVLCDRw/hwFuCzmzlQg== + dependencies: + "@vitest/utils" "0.28.1" + p-limit "^4.0.0" + pathe "^1.1.0" + +"@vitest/spy@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.1.tgz#9efdce05273161cd9036f3f520d0e836602b926d" + integrity sha512-XGlD78cG3IxXNnGwEF121l0MfTNlHSdI25gS2ik0z6f/D9wWUOru849QkJbuNl4CMlZCtNkx3b5IS6MRwKGKuA== + dependencies: + tinyspy "^1.0.2" + +"@vitest/utils@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.1.tgz#01c347803dff8c02d7b097210f3749987e5b2ce6" + integrity sha512-a7cV1fs5MeU+W+8sn8gM9gV+q7V/wYz3/4y016w/icyJEKm9AMdSHnrzxTWaElJ07X40pwU6m5353Jlw6Rbd8w== + dependencies: + cli-truncate "^3.1.0" + diff "^5.1.0" + loupe "^2.3.6" + picocolors "^1.0.0" + pretty-format "^27.5.1" + "@wagmi/core@^0.5.8": version "0.5.8" resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.5.8.tgz#9e375c0dd31c3b22973d000694e1c2b06c05dbbc" @@ -5056,7 +5221,7 @@ acorn-walk@^7.0.0, acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.0.2, acorn-walk@^8.1.1: +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== @@ -5865,15 +6030,15 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" - integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== +babel-jest@^29.3.1, babel-jest@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.0.tgz#20b18b69a321125429ff67a383b94c6bf552d1ec" + integrity sha512-M61cGPg4JBashDvIzKoIV/y95mSF6x3ome7CMEaszUTHD4uo6dtC6Nln+fvRTspYNtwy8lDHl5lmoTBSNY/a+g== dependencies: - "@jest/transform" "^29.3.1" + "@jest/transform" "^29.4.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.2.0" + babel-preset-jest "^29.4.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -5923,10 +6088,10 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" - integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== +babel-plugin-jest-hoist@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz#3fd3dfcedf645932df6d0c9fc3d9a704dd860248" + integrity sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -6386,12 +6551,12 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" - integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== +babel-preset-jest@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz#c2b03c548b02dea0a18ae21d5759c136f9251ee4" + integrity sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA== dependencies: - babel-plugin-jest-hoist "^29.2.0" + babel-plugin-jest-hoist "^29.4.0" babel-preset-current-node-syntax "^1.0.0" babel-preset-react-app@^10.0.1: @@ -7059,6 +7224,11 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -7191,7 +7361,7 @@ chai-as-promised@^7.1.1: dependencies: check-error "^1.0.2" -chai@^4.3.6: +chai@^4.3.6, chai@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== @@ -7620,7 +7790,7 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^2.0.10, colorette@^2.0.19: +colorette@^2.0.10, colorette@^2.0.19, colorette@^2.0.7: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== @@ -8380,6 +8550,11 @@ date-fns@^2.29.1: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== +dateformat@^4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + dayjs@^1.11.6: version "1.11.7" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" @@ -8694,6 +8869,11 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -9405,6 +9585,34 @@ esbuild@0.14.47: esbuild-windows-64 "0.14.47" esbuild-windows-arm64 "0.14.47" +esbuild@^0.16.3: + version "0.16.17" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" + integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== + optionalDependencies: + "@esbuild/android-arm" "0.16.17" + "@esbuild/android-arm64" "0.16.17" + "@esbuild/android-x64" "0.16.17" + "@esbuild/darwin-arm64" "0.16.17" + "@esbuild/darwin-x64" "0.16.17" + "@esbuild/freebsd-arm64" "0.16.17" + "@esbuild/freebsd-x64" "0.16.17" + "@esbuild/linux-arm" "0.16.17" + "@esbuild/linux-arm64" "0.16.17" + "@esbuild/linux-ia32" "0.16.17" + "@esbuild/linux-loong64" "0.16.17" + "@esbuild/linux-mips64el" "0.16.17" + "@esbuild/linux-ppc64" "0.16.17" + "@esbuild/linux-riscv64" "0.16.17" + "@esbuild/linux-s390x" "0.16.17" + "@esbuild/linux-x64" "0.16.17" + "@esbuild/netbsd-x64" "0.16.17" + "@esbuild/openbsd-x64" "0.16.17" + "@esbuild/sunos-x64" "0.16.17" + "@esbuild/win32-arm64" "0.16.17" + "@esbuild/win32-ia32" "0.16.17" + "@esbuild/win32-x64" "0.16.17" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -10168,16 +10376,16 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -expect@^29.0.0, expect@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== +expect@^29.0.0, expect@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.0.tgz#e2d58a73bf46399deac7db6ec16842827525ce35" + integrity sha512-pzaAwjBgLEVxBh6ZHiqb9Wv3JYuv6m8ntgtY7a48nS+2KbX0EJkPS3FQlKiTZNcqzqJHNyQsfjqN60w1hPUBfQ== dependencies: - "@jest/expect-utils" "^29.3.1" + "@jest/expect-utils" "^29.4.0" jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-matcher-utils "^29.4.0" + jest-message-util "^29.4.0" + jest-util "^29.4.0" explain-error@^1.0.4: version "1.0.4" @@ -10258,6 +10466,11 @@ fast-content-type-parse@^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== +fast-copy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.0.tgz#875ebf33b13948ae012b6e51d33da5e6e7571ab8" + integrity sha512-4HzS+9pQ5Yxtv13Lhs1Z1unMXamBdn5nA4bEi1abYpDNSpSp7ODYQ1KPMF6nTatfEzgH6/zPvXKU1zvHiUjWlA== + 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" @@ -10328,7 +10541,7 @@ fast-redact@^3.1.1: resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== -fast-safe-stringify@^2.0.6: +fast-safe-stringify@^2.0.6, 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== @@ -11011,6 +11224,17 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.0: + 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-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -11515,6 +11739,14 @@ he@1.2.0, he@^1.2.0: resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== +help-me@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563" + integrity sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA== + dependencies: + glob "^8.0.0" + readable-stream "^3.6.0" + hi-base32@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" @@ -12853,10 +13085,10 @@ jest-changed-files@^27.5.1: execa "^5.0.0" throat "^6.0.1" -jest-changed-files@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" - integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== +jest-changed-files@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.0.tgz#ac2498bcd394228f7eddcadcf928b3583bf2779d" + integrity sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w== dependencies: execa "^5.0.0" p-limit "^3.1.0" @@ -12886,28 +13118,28 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-circus@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" - integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== +jest-circus@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.0.tgz#08fec87eb15632fba74e93cf069ef85559acd813" + integrity sha512-/pFBaCeLzCavRWyz14JwFgpZgPpEZdS6nPnREhczbHl2wy2UezvYcVp5akVFfUmBaA4ThAUp0I8cpgkbuNOm3g== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.0" + "@jest/expect" "^29.4.0" + "@jest/test-result" "^29.4.0" + "@jest/types" "^29.4.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-each "^29.4.0" + jest-matcher-utils "^29.4.0" + jest-message-util "^29.4.0" + jest-runtime "^29.4.0" + jest-snapshot "^29.4.0" + jest-util "^29.4.0" p-limit "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.0" slash "^3.0.0" stack-utils "^2.0.3" @@ -12929,21 +13161,21 @@ jest-cli@^27.5.1: prompts "^2.0.1" yargs "^16.2.0" -jest-cli@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" - integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== +jest-cli@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.0.tgz#63f34fc3b6f499a69337b2e5964661d22cead9e0" + integrity sha512-YUkICcxjUd864VOzbfQEi2qd2hIIOd9bRF7LJUNyhWb3Khh3YKrbY0LWwoZZ4WkvukiNdvQu0Z4s6zLsY4hYfg== dependencies: - "@jest/core" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.0" + "@jest/test-result" "^29.4.0" + "@jest/types" "^29.4.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-config "^29.4.0" + jest-util "^29.4.0" + jest-validate "^29.4.0" prompts "^2.0.1" yargs "^17.3.1" @@ -12977,31 +13209,31 @@ jest-config@^27.5.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-config@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" - integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== +jest-config@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.0.tgz#08065bcfc7c2ccfd3ca9f8bb412eb366d73fd5a2" + integrity sha512-jtgd72nN4Mob4Oego3N/pLRVfR2ui1hv+yO6xR/SUi5G7NtZ/grr95BJ1qRSDYZshuA0Jw57fnttZHZKb04+CA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.1" - "@jest/types" "^29.3.1" - babel-jest "^29.3.1" + "@jest/test-sequencer" "^29.4.0" + "@jest/types" "^29.4.0" + babel-jest "^29.4.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.3.1" - jest-environment-node "^29.3.1" + jest-circus "^29.4.0" + jest-environment-node "^29.4.0" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-runner "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-resolve "^29.4.0" + jest-runner "^29.4.0" + jest-util "^29.4.0" + jest-validate "^29.4.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.0" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -13015,15 +13247,15 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== +jest-diff@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.0.tgz#9c75dcef5872c8889bfcb78bc9571a0e4e9bd8f6" + integrity sha512-s8KNvFx8YgdQ4fn2YLDQ7N6kmVOP68dUDVJrCHNsTc3UM5jcmyyFeYKL8EPWBQbJ0o0VvDGbWp8oYQ1nsnqnWw== dependencies: chalk "^4.0.0" diff-sequences "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.0" jest-docblock@^27.5.1: version "27.5.1" @@ -13050,16 +13282,16 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" -jest-each@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" - integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== +jest-each@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.0.tgz#1b6f018529b26f52851123075df4fa297b5b859b" + integrity sha512-LTOvB8JDVFjrwXItyQiyLuDYy5PMApGLLzbfIYR79QLpeohS0bcS6j2HjlWuRGSM8QQQyp+ico59Blv+Jx3fMw== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.0" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.3.1" - pretty-format "^29.3.1" + jest-util "^29.4.0" + pretty-format "^29.4.0" jest-environment-jsdom@^27.5.1: version "27.5.1" @@ -13075,17 +13307,17 @@ jest-environment-jsdom@^27.5.1: jsdom "^16.6.0" jest-environment-jsdom@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639" - integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA== + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.0.tgz#81a03ca9cf3d9cf88f6aa7e528d921c21975471c" + integrity sha512-z1tB/qtReousDnU695K38ZzoR6B3dRXazwgyhTHzMviSC2T3KmVy0T722fZxR2q3x/Jvv85JxU/2xs8kwX394w== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.0" + "@jest/fake-timers" "^29.4.0" + "@jest/types" "^29.4.0" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.4.0" + jest-util "^29.4.0" jsdom "^20.0.0" jest-environment-node@^27.5.1: @@ -13100,17 +13332,17 @@ jest-environment-node@^27.5.1: jest-mock "^27.5.1" jest-util "^27.5.1" -jest-environment-node@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" - integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== +jest-environment-node@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.0.tgz#b19ae4cbf71199ed077a399de1e2cb0e52dbd936" + integrity sha512-WVveE3fYSH6FhDtZdvXhFKeLsDRItlQgnij+HQv6ZKxTdT1DB5O0sHXKCEC3K5mHraMs1Kzn4ch9jXC7H4L4wA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.0" + "@jest/fake-timers" "^29.4.0" + "@jest/types" "^29.4.0" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.4.0" + jest-util "^29.4.0" jest-get-type@^27.5.1: version "27.5.1" @@ -13142,20 +13374,20 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== +jest-haste-map@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.0.tgz#139d6bd262f3f74894f23933ee4046af7e770ab0" + integrity sha512-m/pIEfoK0HoJz4c9bkgS5F9CXN2AM22eaSmUcmqTpadRlNVBOJE2CwkgaUzbrNn5MuAqTV1IPVYwWwjHNnk8eA== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-util "^29.4.0" + jest-worker "^29.4.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -13192,13 +13424,13 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-leak-detector@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" - integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== +jest-leak-detector@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.0.tgz#5f1079556c244cf6f5f281f5c5134ea2a07ad28e" + integrity sha512-fEGHS6ijzgSv5exABkCecMHNmyHcV52+l39ZsxuwfxmQMp43KBWJn2/Fwg8/l4jTI9uOY9jv8z1dXGgL0PHFjA== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.0" jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: version "27.5.1" @@ -13210,15 +13442,15 @@ jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== +jest-matcher-utils@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.0.tgz#c2f804f95152216c8b80afbe73d82ae0ba89f652" + integrity sha512-pU4OjBn96rDdRIaPUImbPiO2ETyRVzkA1EZVu9AxBDv/XPDJ7JWfkb6IiDT5jwgicaPHMrB/fhVa6qjG6potfA== dependencies: chalk "^4.0.0" - jest-diff "^29.3.1" + jest-diff "^29.4.0" jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.0" jest-message-util@^27.5.1: version "27.5.1" @@ -13250,18 +13482,18 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== +jest-message-util@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.0.tgz#60d3f3dd6b5ef08ec9b698f434fbbafdb0af761d" + integrity sha512-0FvobqymmhE9pDEifvIcni9GeoKLol8eZspzH5u41g1wxYtLS60a9joT95dzzoCgrKRidNz64eaAXyzaULV8og== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.0" slash "^3.0.0" stack-utils "^2.0.3" @@ -13273,14 +13505,14 @@ jest-mock@^27.5.1: "@jest/types" "^27.5.1" "@types/node" "*" -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== +jest-mock@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.0.tgz#efb5d99da5e4548ea02d505c89aafdd06d899cb8" + integrity sha512-+ShT5i+hcu/OFQRV0f/V/YtwpdFcHg64JZ9A8b40JueP+X9HNrZAYGdkupGIzsUK8AucecxCt4wKauMchxubLQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.0" "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.4.0" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -13311,13 +13543,13 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve-dependencies@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" - integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== +jest-resolve-dependencies@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.0.tgz#d8c9dce9ad8b193375b4993c4a659adf2d379b84" + integrity sha512-hxfC84trREyULSj1Cm+fMjnudrrI2dVQ04COjZRcjCZ97boJlPtfJ+qrl/pN7YXS2fnu3wTHEc3LO094pngL6A== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.3.1" + jest-snapshot "^29.4.0" jest-resolve@^27.4.2, jest-resolve@^27.5.1: version "27.5.1" @@ -13335,19 +13567,19 @@ jest-resolve@^27.4.2, jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-resolve@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" - integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== +jest-resolve@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.0.tgz#dbf00b2fb992d37e4954feb7ee6b5391ca8fc6a9" + integrity sha512-g7k7l53T+uC9Dp1mbHyDNkcCt0PMku6Wcfpr1kcMLwOHmM3vucKjSM5+DSa1r4vlDZojh8XH039J3z4FKmtTSw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-util "^29.4.0" + jest-validate "^29.4.0" resolve "^1.20.0" - resolve.exports "^1.1.0" + resolve.exports "^2.0.0" slash "^3.0.0" jest-runner@^27.5.1: @@ -13377,30 +13609,30 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" -jest-runner@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" - integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== - dependencies: - "@jest/console" "^29.3.1" - "@jest/environment" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" +jest-runner@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.0.tgz#9f83f20e9e88d2c5e9b7db1526cef901c1c0fe98" + integrity sha512-4zpcv0NOiJleqT0NAs8YcVbK8MhVRc58CBBn9b0Exc8VPU9GKI+DbzDUZqJYdkJhJSZFy2862l/F6hAqIow1hg== + dependencies: + "@jest/console" "^29.4.0" + "@jest/environment" "^29.4.0" + "@jest/test-result" "^29.4.0" + "@jest/transform" "^29.4.0" + "@jest/types" "^29.4.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.3.1" - jest-haste-map "^29.3.1" - jest-leak-detector "^29.3.1" - jest-message-util "^29.3.1" - jest-resolve "^29.3.1" - jest-runtime "^29.3.1" - jest-util "^29.3.1" - jest-watcher "^29.3.1" - jest-worker "^29.3.1" + jest-environment-node "^29.4.0" + jest-haste-map "^29.4.0" + jest-leak-detector "^29.4.0" + jest-message-util "^29.4.0" + jest-resolve "^29.4.0" + jest-runtime "^29.4.0" + jest-util "^29.4.0" + jest-watcher "^29.4.0" + jest-worker "^29.4.0" p-limit "^3.1.0" source-map-support "0.5.13" @@ -13432,31 +13664,32 @@ jest-runtime@^27.5.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-runtime@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" - integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== +jest-runtime@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.0.tgz#d4f3300e65888ea8e045bc13c5a96edd01cf9f49" + integrity sha512-2zumwaGXsIuSF92Ui5Pn5hZV9r7AHMclfBLikrXSq87/lHea9anQ+mC+Cjz/DYTbf/JMjlK1sjZRh8K3yYNvWg== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/globals" "^29.3.1" + "@jest/environment" "^29.4.0" + "@jest/fake-timers" "^29.4.0" + "@jest/globals" "^29.4.0" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.0" + "@jest/transform" "^29.4.0" + "@jest/types" "^29.4.0" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" + jest-haste-map "^29.4.0" + jest-message-util "^29.4.0" + jest-mock "^29.4.0" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-resolve "^29.4.0" + jest-snapshot "^29.4.0" + jest-util "^29.4.0" + semver "^7.3.5" slash "^3.0.0" strip-bom "^4.0.0" @@ -13496,10 +13729,10 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== +jest-snapshot@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.0.tgz#c839f6b84d50b917691ddf6a3cef9f0852b3d0e7" + integrity sha512-UnK3MhdEWrQ2J6MnlKe51tvN5FjRUBQnO4m1LPlDx61or3w9+cP/U0x9eicutgunu/QzE4WC82jj6CiGIAFYzw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -13507,23 +13740,23 @@ jest-snapshot@^29.3.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/expect-utils" "^29.4.0" + "@jest/transform" "^29.4.0" + "@jest/types" "^29.4.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.3.1" + expect "^29.4.0" graceful-fs "^4.2.9" - jest-diff "^29.3.1" + jest-diff "^29.4.0" jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-haste-map "^29.4.0" + jest-matcher-utils "^29.4.0" + jest-message-util "^29.4.0" + jest-util "^29.4.0" natural-compare "^1.4.0" - pretty-format "^29.3.1" + pretty-format "^29.4.0" semver "^7.3.5" jest-util@^27.5.1: @@ -13550,12 +13783,12 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.0.0, jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== +jest-util@^29.0.0, jest-util@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.0.tgz#1f3743c3dda843049623501c7e6f8fa5efdc2c2f" + integrity sha512-lCCwlze7UEV8TpR9ArS8w0cTbcMry5tlBkg7QSc5og5kNyV59dnY2aKHu5fY2k5aDJMQpCUGpvL2w6ZU44lveA== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -13574,17 +13807,17 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-validate@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" - integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== +jest-validate@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.0.tgz#5090be16531051edc21bc0892553f7f7fab99bf0" + integrity sha512-EXS7u594nX3aAPBnARxBdJ1eZ1cByV6MWrK0Qpt9lt/BcY0p0yYGp/EGJ8GhdLDQh+RFf8qMt2wzbbVzpj5+Vg== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.0" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.0" jest-watch-typeahead@^1.0.0: version "1.1.0" @@ -13626,18 +13859,18 @@ jest-watcher@^28.0.0: jest-util "^28.1.3" string-length "^4.0.1" -jest-watcher@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" - integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== +jest-watcher@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.0.tgz#4f51e6fba4341d965279a5a646adde5104d414f0" + integrity sha512-PnnfLygNKelWOJwpAYlcsQjB+OxRRdckD0qiGmYng4Hkz1ZwK3jvCaJJYiywz2msQn4rBNLdriasJtv7YpWHpA== dependencies: - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.0" + "@jest/types" "^29.4.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.3.1" + jest-util "^29.4.0" string-length "^4.0.1" jest-worker@^26.2.1: @@ -13667,13 +13900,13 @@ jest-worker@^28.0.2: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== +jest-worker@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.0.tgz#fbf6d700c3366c555765938da75990c1e7fdcdcd" + integrity sha512-dICMQ+Q4W0QVMsaQzWlA1FVQhKNz7QcDCOGtbk1GCAd0Lai+wdkQvfmQwL4MjGumineh1xz+6M5oMj3rfWS02A== dependencies: "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.4.0" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -13687,20 +13920,25 @@ jest@^27.4.3: jest-cli "^27.5.1" jest@^29.2.2, jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" - integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.0.tgz#c476b3d0c58af77f276f53f81d4d97e16105ae37" + integrity sha512-Zfd4UzNxPkSoHRBkg225rBjQNa6pVqbh20MGniAzwaOzYLd+pQUcAwH+WPxSXxKFs+QWYfPYIq9hIVSmdVQmPA== dependencies: - "@jest/core" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.0" + "@jest/types" "^29.4.0" import-local "^3.0.2" - jest-cli "^29.3.1" + jest-cli "^29.4.0" jmespath@0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== +joycon@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + js-sdsl@^4.1.4: version "4.3.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" @@ -13934,6 +14172,11 @@ json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +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" @@ -14322,6 +14565,11 @@ loader-utils@^3.2.0: resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== +local-pkg@^0.4.2: + 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@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -14520,7 +14768,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -loupe@^2.3.1: +loupe@^2.3.1, loupe@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== @@ -14986,6 +15234,16 @@ mkdirp@^1.0.3, mkdirp@^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: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.1.0.tgz#9e23c5e675ef7b10cc47ee6281795cb1a7aa3aa2" + integrity sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ== + dependencies: + acorn "^8.8.1" + pathe "^1.0.0" + pkg-types "^1.0.1" + ufo "^1.0.1" + mnemonist@0.39.5: version "0.39.5" resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.39.5.tgz#5850d9b30d1b2bc57cc8787e5caa40f6c3420477" @@ -15885,6 +16143,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: 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" @@ -16084,6 +16349,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathe@^1.0.0, pathe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.0.tgz#e2e13f6c62b31a3289af4ba19886c230f295ec03" + integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== + pathval@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" @@ -16172,7 +16442,7 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pino-abstract-transport@v1.0.0: +pino-abstract-transport@^1.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== @@ -16180,6 +16450,26 @@ pino-abstract-transport@v1.0.0: readable-stream "^4.0.0" split2 "^4.0.0" +pino-pretty@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.1.1.tgz#e7d64c1db98266ca428ab56567b844ba780cd0e1" + integrity sha512-iJrnjgR4FWQIXZkUF48oNgoRI9BpyMhaEmihonHeCnZ6F50ZHAS4YGfGBT/ZVNsPmd+hzkIPGzjKdY08+/yAXw== + dependencies: + colorette "^2.0.7" + dateformat "^4.6.3" + fast-copy "^3.0.0" + fast-safe-stringify "^2.1.1" + help-me "^4.0.1" + joycon "^3.1.1" + minimist "^1.2.6" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.0.0" + pump "^3.0.0" + readable-stream "^4.0.0" + secure-json-parse "^2.4.0" + sonic-boom "^3.0.0" + strip-json-comments "^3.1.1" + pino-std-serializers@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz#307490fd426eefc95e06067e85d8558603e8e844" @@ -16214,6 +16504,15 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-types@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.1.tgz#25234407f9dc63409af45ced9407625ff446a761" + integrity sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.0.0" + pathe "^1.0.0" + pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -16789,7 +17088,7 @@ postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.4: +postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.20, postcss@^8.4.4: version "8.4.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== @@ -16876,12 +17175,12 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== +pretty-format@^29.0.0, pretty-format@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.0.tgz#766f071bb1c53f1ef8000c105bbeb649e86eb993" + integrity sha512-J+EVUPXIBHCdWAbvGBwXs0mk3ljGppoh/076g1S8qYS8nVG4u/yrhMvyTFHYYYKWnDdgRLExx0vA7pzxVGdlNw== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -18034,6 +18333,11 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== +resolve.exports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" + integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== + resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -18155,6 +18459,13 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" +rollup@^3.7.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.10.1.tgz#56278901ed11fc2898421e8e3e2c8155bc7b40b4" + integrity sha512-3Er+yel3bZbZX1g2kjVM+FW+RUWDxbG87fcqFM5/9HbPCTpbVp6JOLn7jlxnNlbu7s/N/uDA4EV/91E2gWnxzw== + optionalDependencies: + fsevents "~2.3.2" + rpc-websockets@^7.5.0: version "7.5.0" resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" @@ -18403,7 +18714,7 @@ secp256k1@^4.0.1, secp256k1@^4.0.3: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secure-json-parse@^2.5.0: +secure-json-parse@^2.4.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== @@ -18655,6 +18966,11 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + 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" @@ -18794,7 +19110,7 @@ solidity-coverage@^0.8.2: shelljs "^0.8.3" web3-utils "^1.3.6" -sonic-boom@^3.1.0: +sonic-boom@^3.0.0, sonic-boom@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.1.tgz#972ceab831b5840a08a002fa95a672008bda1c38" integrity sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A== @@ -18835,7 +19151,7 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.13, source-map-support@^0.5.20, source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@^0.5.13, source-map-support@^0.5.20, source-map-support@^0.5.21, source-map-support@^0.5.6, source-map-support@~0.5.20: 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== @@ -18995,6 +19311,11 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== + stackframe@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" @@ -19017,6 +19338,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.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.1.tgz#93a81835815e618c8aa75e7c8a4dc04f7c314e29" + integrity sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q== + stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" @@ -19287,6 +19613,13 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1. resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-literal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.0.tgz#0a484ed5a978cd9d2becf3cf8f4f2cb5ab0e1e74" + integrity sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ== + dependencies: + acorn "^8.8.1" + strnum@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" @@ -19763,6 +20096,21 @@ tiny-warning@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tinybench@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.3.1.tgz#14f64e6b77d7ef0b1f6ab850c7a808c6760b414d" + integrity sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA== + +tinypool@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.0.tgz#c405d8b743509fc28ea4ca358433190be654f819" + integrity sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ== + +tinyspy@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" + integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== + tmp-promise@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" @@ -20154,6 +20502,11 @@ typical@^5.2.0: resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== +ufo@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.0.1.tgz#64ed43b530706bda2e4892f911f568cf4cf67d29" + integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA== + uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -20497,6 +20850,62 @@ victory-vendor@^36.6.8: d3-time "^3.0.0" d3-timer "^3.0.1" +vite-node@0.28.1: + version "0.28.1" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.1.tgz#e2af53e112e57455a474e9f7a6478b1cdf79a6ab" + integrity sha512-Mmab+cIeElkVn4noScCRjy8nnQdh5LDIR4QCH/pVWtY15zv5Z1J7u6/471B9JZ2r8CEIs42vTbngaamOVkhPLA== + dependencies: + cac "^6.7.14" + debug "^4.3.4" + mlly "^1.1.0" + pathe "^1.1.0" + picocolors "^1.0.0" + source-map "^0.6.1" + source-map-support "^0.5.21" + vite "^3.0.0 || ^4.0.0" + +"vite@^3.0.0 || ^4.0.0": + version "4.0.4" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.4.tgz#4612ce0b47bbb233a887a54a4ae0c6e240a0da31" + integrity sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw== + dependencies: + esbuild "^0.16.3" + postcss "^8.4.20" + resolve "^1.22.1" + rollup "^3.7.0" + optionalDependencies: + fsevents "~2.3.2" + +vitest@^0.28.1: + version "0.28.1" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.1.tgz#a87656075e01436c887048efd83a5d32792ce890" + integrity sha512-F6wAO3K5+UqJCCGt0YAl3Ila2f+fpBrJhl9n7qWEhREwfzQeXlMkkCqGqGtzBxCSa8kv5QHrkshX8AaPTXYACQ== + dependencies: + "@types/chai" "^4.3.4" + "@types/chai-subset" "^1.3.3" + "@types/node" "*" + "@vitest/expect" "0.28.1" + "@vitest/runner" "0.28.1" + "@vitest/spy" "0.28.1" + "@vitest/utils" "0.28.1" + acorn "^8.8.1" + acorn-walk "^8.2.0" + cac "^6.7.14" + chai "^4.3.7" + debug "^4.3.4" + local-pkg "^0.4.2" + pathe "^1.1.0" + picocolors "^1.0.0" + source-map "^0.6.1" + std-env "^3.3.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.28.1" + why-is-node-running "^2.2.2" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -21134,6 +21543,14 @@ which@2.0.2, which@^2.0.0, which@^2.0.1: dependencies: isexe "^2.0.0" +why-is-node-running@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" + integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" + wide-align@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -21422,10 +21839,10 @@ write-file-atomic@^3.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== +write-file-atomic@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.0.tgz#54303f117e109bf3d540261125c8ea5a7320fab0" + integrity sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" @@ -21724,6 +22141,11 @@ yocto-queue@^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== + zksync-web3@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.8.1.tgz#db289d8f6caf61f4d5ddc471fa3448d93208dc14" From fa6deb675f2283f05b59236e4bd820f9823e23a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 24 Jan 2023 13:52:24 +0100 Subject: [PATCH 083/216] Add multichain reputation oracle --- .../src/constants/constants.ts | 20 +++++++++ .../fortune/reputation-oracle/src/index.ts | 43 ++++++++++++------- .../src/services/escrow.test.ts | 12 +++++- .../reputation-oracle/src/services/escrow.ts | 8 ++++ .../src/services/manifest.ts | 9 ++++ .../reputation-oracle/src/services/rewards.ts | 23 +++++++++- .../reputation-oracle/src/utils/url.ts | 6 +++ 7 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 packages/examples/fortune/reputation-oracle/src/constants/constants.ts create mode 100644 packages/examples/fortune/reputation-oracle/src/services/manifest.ts create mode 100644 packages/examples/fortune/reputation-oracle/src/utils/url.ts diff --git a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts new file mode 100644 index 0000000000..c826b9049d --- /dev/null +++ b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts @@ -0,0 +1,20 @@ +export interface NetworkSettings { + 1338: ReputationSettings; + 80001: ReputationSettings; +} + +export interface ReputationSettings { + httpServer: string; + reputation: string; +} + +export const networks: NetworkSettings = { + 1338: { + httpServer: 'http://127.0.0.1:8545', + reputation: '0x67d269191c92Caf3cD7723F116c85e6E9bf55933', + }, + 80001: { + httpServer: 'http://127.0.0.1:8545', + reputation: '0x67d269191c92Caf3cD7723F116c85e6E9bf55933', + }, +}; diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 6d5d6d5f3f..93ccb4f1fe 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -1,35 +1,39 @@ import express from 'express'; import bodyParser from 'body-parser'; import Web3 from 'web3'; -import { bulkPayOut, bulkPaid, getBalance } from './services/escrow'; +import { + bulkPayOut, + bulkPaid, + getBalance, + getEscrowManifestUrl, +} from './services/escrow'; import { filterAddressesToReward } from './services/rewards'; import { uploadResults } from './services/s3'; import { updateReputations, calculateRewardForWorker, } from './services/reputation'; +import getManifest from './services/manifest'; +import { networks, NetworkSettings } from './constants/constants'; const app = express(); const privKey = process.env.ETH_PRIVATE_KEY || '5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a'; -const ethHttpServer = process.env.ETH_HTTP_SERVER || 'http://127.0.0.1:8545'; const port = process.env.PORT || 3006; -const reputationAddress = - process.env.REPUTATION_ADDRESS || - '0x67d269191c92Caf3cD7723F116c85e6E9bf55933'; - -const web3 = new Web3(ethHttpServer); -const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); - -web3.eth.accounts.wallet.add(account); -web3.eth.defaultAccount = account.address; app.use(bodyParser.json()); app.post('/job/results', async (req, res) => { try { - const { fortunes, escrowAddress } = req.body; + const { fortunes, escrowAddress, chainId } = req.body; + + const web3 = new Web3( + networks[chainId as keyof NetworkSettings].httpServer + ); + const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); + web3.eth.accounts.wallet.add(account); + web3.eth.defaultAccount = account.address; if (!Array.isArray(fortunes) || fortunes.length === 0) { return res @@ -43,17 +47,26 @@ app.post('/job/results', async (req, res) => { .send({ message: 'Escrow address is empty or invalid' }); } + const manifestUrl = await getEscrowManifestUrl(web3, escrowAddress); + const { recording_oracle_address: recordingOracleAddress } = + await getManifest(manifestUrl); + const balance = await getBalance(web3, escrowAddress); const { workerAddresses, reputationValues } = filterAddressesToReward( web3, - fortunes + fortunes, + recordingOracleAddress ); - await updateReputations(web3, reputationAddress, reputationValues); + await updateReputations( + web3, + networks[chainId as keyof NetworkSettings].reputation, + reputationValues + ); const rewards = await calculateRewardForWorker( web3, - reputationAddress, + networks[chainId as keyof NetworkSettings].reputation, balance.toString(), workerAddresses ); diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts index 3c2d3fdc0b..b769beae86 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.test.ts @@ -1,5 +1,10 @@ import Web3 from 'web3'; -import { getBalance, bulkPayOut, bulkPaid } from './escrow'; +import { + getBalance, + bulkPayOut, + bulkPaid, + getEscrowManifestUrl, +} from './escrow'; import { describe, expect, it, beforeAll, beforeEach } from '@jest/globals'; import Escrow from '@human-protocol/core/artifacts/contracts/Escrow.sol/Escrow.json'; import HMToken from '@human-protocol/core/artifacts/contracts/HMToken.sol//HMToken.json'; @@ -120,6 +125,11 @@ describe('Fortune', () => { expect(balance).toBe(30000000000000000000); }); + it('Get manifest URL', async () => { + const manifest = await getEscrowManifestUrl(web3, escrowAddress); + expect(manifest).toBe('manifestUrl'); + }); + it('Bulk payout rewards, higher amount than balance', async () => { await bulkPayOut( web3, diff --git a/packages/examples/fortune/reputation-oracle/src/services/escrow.ts b/packages/examples/fortune/reputation-oracle/src/services/escrow.ts index 65686b6299..7a939a3b79 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/escrow.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/escrow.ts @@ -6,6 +6,14 @@ export async function getBalance(web3: Web3, escrowAddress: string) { return Number(await Escrow.methods.getBalance().call()); } +export async function getEscrowManifestUrl( + web3: Web3, + escrowAddress: string +): Promise { + const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); + return await Escrow.methods.manifestUrl().call(); +} + export async function bulkPayOut( web3: Web3, escrowAddress: string, diff --git a/packages/examples/fortune/reputation-oracle/src/services/manifest.ts b/packages/examples/fortune/reputation-oracle/src/services/manifest.ts new file mode 100644 index 0000000000..e3b5911e6c --- /dev/null +++ b/packages/examples/fortune/reputation-oracle/src/services/manifest.ts @@ -0,0 +1,9 @@ +import axios from 'axios'; +import { convertUrl } from '../utils/url'; + +export async function getManifest(manifestUrl: string) { + const manifestResponse = await axios.get(convertUrl(manifestUrl)); + return manifestResponse.data; +} + +export default getManifest; diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index de3200d587..b31f3fd23a 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -4,6 +4,7 @@ import { BAD_WORDS } from '../constants/badWords'; export interface FortuneEntry { worker: string; fortune: string; + result: boolean; } export interface ReputationEntry { @@ -13,17 +14,24 @@ export interface ReputationEntry { export function filterAddressesToReward( web3: Web3, - addressFortunesEntries: FortuneEntry[] + addressFortunesEntries: FortuneEntry[], + recordingOracleAddress: string ) { const filteredResults: FortuneEntry[] = []; const reputationValues: ReputationEntry[] = []; const tmpHashMap: Record = {}; + let errorRecordingOracle = false; addressFortunesEntries.forEach((fortuneEntry) => { - const { worker, fortune } = fortuneEntry; + const { worker, fortune, result } = fortuneEntry; if (tmpHashMap[fortune] || checkBadWords(fortune)) { reputationValues.push({ workerAddress: worker, reputation: -1 }); + if (!result) { + errorRecordingOracle = true; + } return; + } else if (!tmpHashMap[fortune] && !checkBadWords(fortune) && result) { + errorRecordingOracle = true; } tmpHashMap[fortune] = true; @@ -33,6 +41,17 @@ export function filterAddressesToReward( const workerAddresses = filteredResults .map((fortune: { worker: string }) => fortune.worker) .map(web3.utils.toChecksumAddress); + if (errorRecordingOracle) { + reputationValues.push({ + workerAddress: recordingOracleAddress, + reputation: -1, + }); + } else { + reputationValues.push({ + workerAddress: recordingOracleAddress, + reputation: 1, + }); + } return { workerAddresses, reputationValues }; } diff --git a/packages/examples/fortune/reputation-oracle/src/utils/url.ts b/packages/examples/fortune/reputation-oracle/src/utils/url.ts new file mode 100644 index 0000000000..376ab452ee --- /dev/null +++ b/packages/examples/fortune/reputation-oracle/src/utils/url.ts @@ -0,0 +1,6 @@ +export function convertUrl(url: string) { + if (process.env.DOCKER) { + return url.replace('localhost', 'host.docker.internal'); + } + return url; +} From e2f42952c68cbdbd3b933eb2fa5f4d47b3e83326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 24 Jan 2023 16:58:57 +0100 Subject: [PATCH 084/216] Change var name --- .../fortune/reputation-oracle/src/services/rewards.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index b31f3fd23a..33312bf945 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -4,7 +4,7 @@ import { BAD_WORDS } from '../constants/badWords'; export interface FortuneEntry { worker: string; fortune: string; - result: boolean; + score: boolean; } export interface ReputationEntry { @@ -23,14 +23,14 @@ export function filterAddressesToReward( let errorRecordingOracle = false; addressFortunesEntries.forEach((fortuneEntry) => { - const { worker, fortune, result } = fortuneEntry; + const { worker, fortune, score } = fortuneEntry; if (tmpHashMap[fortune] || checkBadWords(fortune)) { reputationValues.push({ workerAddress: worker, reputation: -1 }); - if (!result) { + if (!score) { errorRecordingOracle = true; } return; - } else if (!tmpHashMap[fortune] && !checkBadWords(fortune) && result) { + } else if (!tmpHashMap[fortune] && !checkBadWords(fortune) && score) { errorRecordingOracle = true; } From 43567299a1034b49575ef8cf57b9277efffb15c2 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 24 Jan 2023 17:16:15 +0100 Subject: [PATCH 085/216] job launcher server tests --- .../fortune/launcher/server/.env.test | 1 + .../fortune/launcher/server/package.json | 4 +- .../launcher/server/src/constants/networks.ts | 9 ++- .../launcher/server/src/plugins/escrow.ts | 2 +- .../launcher/server/src/plugins/web3.ts | 19 +++--- .../launcher/server/src/routes/escrow.ts | 2 +- .../server/tests/plugins/escrow.test.ts | 6 +- .../server/tests/plugins/web3.test.ts | 22 +++++++ .../server/tests/routes/escrow.test.ts | 58 +++++++++++++++++++ .../fortune/launcher/server/tests/setup.ts | 3 + .../fortune/launcher/server/tests/utils.ts | 2 +- .../fortune/launcher/server/vitest.config.ts | 8 +++ packages/examples/fortune/package.json | 3 +- .../examples/launcher/server/package.json | 2 +- yarn.lock | 4 +- 15 files changed, 121 insertions(+), 24 deletions(-) create mode 100644 packages/examples/fortune/launcher/server/.env.test create mode 100644 packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts create mode 100644 packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts create mode 100644 packages/examples/fortune/launcher/server/tests/setup.ts create mode 100644 packages/examples/fortune/launcher/server/vitest.config.ts diff --git a/packages/examples/fortune/launcher/server/.env.test b/packages/examples/fortune/launcher/server/.env.test new file mode 100644 index 0000000000..36d5d5345c --- /dev/null +++ b/packages/examples/fortune/launcher/server/.env.test @@ -0,0 +1 @@ +ETH_PRIVATE_KEY=df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index cb2fdf84fd..17d7ce5f44 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -1,5 +1,5 @@ { - "name": "server", + "name": "@human-protocol/job-launcher-server", "version": "1.0.0", "description": "Job Launcher Server", "main": "index.ts", @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test:unit": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 5 && vitest\"" + "test:unit": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 5s && vitest --run\"" } } diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index daa19bcd44..3f55aa4f3b 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -66,7 +66,14 @@ export const ESCROW_NETWORKS: { rpcUrl: 'https://rpc-mumbai.maticvigil.com', factoryAddress: '0x558cd800f9F0B02f3B149667bDe003284c867E94', hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', - }, + }, + [ChainId.LOCALHOST]: { + chainId: ChainId.LOCALHOST, + title: 'Localhost', + rpcUrl: 'http://localhost:8546', + factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', + hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + } // [ChainId.MOONBEAM]: { // chainId: ChainId.MOONBEAM, // title: 'Moonbeam', diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index fde3c5bbb1..ce5be8d241 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -27,7 +27,7 @@ class Escrow { const balance = await hmtoken.methods .balanceOf(jobRequester) .call(); - return allowance == fundAmount && balance >= fundAmount; + return allowance >= fundAmount && balance >= fundAmount; } async createEscrow (web3: Web3, factoryAddress: string, token: string,jobRequester: string) { diff --git a/packages/examples/fortune/launcher/server/src/plugins/web3.ts b/packages/examples/fortune/launcher/server/src/plugins/web3.ts index cd9c518454..698b309ee7 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/web3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/web3.ts @@ -1,7 +1,6 @@ import "dotenv/config"; import fp from "fastify-plugin"; import { FastifyPluginAsync } from "fastify"; -import * as Minio from 'minio'; import { Type } from "@sinclair/typebox"; import Ajv from "ajv"; import { IEscrowNetwork } from 'constants/networks'; @@ -38,15 +37,15 @@ class Web3Client { } const web3Plugin: FastifyPluginAsync = async (server) => { - const validate = ajv.compile(ConfigSchema); - const valid = validate(process.env); - if (!valid) { - throw new Error( - ".env file validation failed - " + - JSON.stringify(validate.errors, null, 2) - ); - } - server.decorate("web3", new Web3Client()); + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + ".env file validation failed - " + + JSON.stringify(validate.errors, null, 2) + ); + } + server.decorate("web3", new Web3Client()); }; declare module "fastify" { diff --git a/packages/examples/fortune/launcher/server/src/routes/escrow.ts b/packages/examples/fortune/launcher/server/src/routes/escrow.ts index f48f3a6252..252c6b083c 100644 --- a/packages/examples/fortune/launcher/server/src/routes/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/routes/escrow.ts @@ -50,6 +50,6 @@ export const createEscrow: FastifyPluginAsync = async (server) => { return escrowAddress; } - return 'Balance or allowance not enough for funding the escrow'; + return reply.status(400).send('Balance or allowance not enough for funding the escrow'); }); } \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts index 6dd169a7b3..f33ccb378e 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -1,4 +1,3 @@ -import fastify from "fastify"; import { describe, test, expect, beforeAll } from 'vitest'; import { ChainId, IEscrowNetwork } from "../../src/constants/networks.js"; import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; @@ -6,7 +5,6 @@ import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: " import server from '../../src/server.js' import { stake, approve } from '../utils.js' -const privKey = 'df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e'; const jobRequesterPrivKey = 'de9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0'; const jobRequester = '0xdD2FD4581271e230360230F9337D5c0430Bf44C0'; @@ -19,7 +17,7 @@ describe('Escrow tests', () => { rpcUrl: 'http://localhost:8546', title: 'Localhost' }; - const web3Client = web3.createWeb3(network, privKey); + const web3Client = web3.createWeb3(network); const web3JobRequester = web3.createWeb3(network, jobRequesterPrivKey); beforeAll(async () => { @@ -31,7 +29,7 @@ describe('Escrow tests', () => { }); test('Should be approved', async () => { - const amount = web3Client.utils.toWei('10', 'ether'); + const amount = web3JobRequester.utils.toWei('10', 'ether'); await approve(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); expect(await escrow.checkApproved(web3Client, network.hmtAddress, jobRequester, web3Client.utils.toWei('10', 'ether'))).eq(true); }); diff --git a/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts new file mode 100644 index 0000000000..004a593b14 --- /dev/null +++ b/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts @@ -0,0 +1,22 @@ +import { describe, test, expect, beforeAll } from 'vitest'; +import { ChainId, IEscrowNetwork } from "../../src/constants/networks.js"; +import server from '../../src/server.js' + +const privKey = 'df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e'; +const address = '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199'; + +describe('Web3 tests', () => { + const { web3 } = server; + const network: IEscrowNetwork = { + chainId: ChainId.LOCALHOST, + factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', + hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + rpcUrl: 'http://localhost:8546', + title: 'Localhost' + }; + test('Should initialize web3 client', async () => { + const web3Client = web3.createWeb3(network, privKey); + expect(web3Client.eth.defaultAccount).eq(address); + }); + +}); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts new file mode 100644 index 0000000000..9361e54d36 --- /dev/null +++ b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts @@ -0,0 +1,58 @@ +import { describe, test, expect, beforeAll } from 'vitest'; +import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from "../../src/constants/networks.js"; +import server from '../../src/server.js' +import { stake, approve } from '../utils.js' + +const jobRequesterPrivKey = '689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b061667b5a93e037fd'; +const jobRequester = '0xbDA5747bFD65F08deb54cb465eB87D40e51B197E'; + +describe('Escrow route tests', () => { + const { escrow, web3 } = server; + const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; + const web3Client = web3.createWeb3(network); + const web3JobRequester = web3.createWeb3(network, jobRequesterPrivKey); + beforeAll(async () => { + await stake(web3Client, network); + }) + + test('Should not allow to create an escrow', async () => { + const response = await server.inject({ + method: 'POST', + path: '/escrow', + payload: { + chainId: 1338, + title: "title 1", + description: "description 1", + fortunesRequired: 2, + token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", + fundAmount: 1, + jobRequester: jobRequester + } + }); + + expect(response.statusCode).eq(400); + expect(response.body).eq('Balance or allowance not enough for funding the escrow'); + }); + test('Should create an escrow', async () => { + const amount = web3JobRequester.utils.toWei('10', 'ether'); + await approve(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); + const response = await server.inject({ + method: 'POST', + path: '/escrow', + payload: { + chainId: 1338, + title: "title 1", + description: "description 1", + fortunesRequired: 2, + token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", + fundAmount: 1, + jobRequester: jobRequester + } + }); + + expect(response.statusCode).eq(200); + expect(response.body).contains('0x'); + }); + + +}); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/tests/setup.ts b/packages/examples/fortune/launcher/server/tests/setup.ts new file mode 100644 index 0000000000..279b5f6192 --- /dev/null +++ b/packages/examples/fortune/launcher/server/tests/setup.ts @@ -0,0 +1,3 @@ +import dotenv from 'dotenv'; + +dotenv.config({ path: './.env.test' }); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/tests/utils.ts b/packages/examples/fortune/launcher/server/tests/utils.ts index c5cda2eee7..f94a8db301 100644 --- a/packages/examples/fortune/launcher/server/tests/utils.ts +++ b/packages/examples/fortune/launcher/server/tests/utils.ts @@ -18,7 +18,7 @@ export const stake = async (web3: Web3, network: IEscrowNetwork) => { const gasPrice = await web3.eth.getGasPrice(); await stakingContract.methods .stake(stakeAmount) - .send({ from: web3.eth.defaultAccount, gas, gasPrice }); + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); }; export const approve = async (web3: Web3, network: IEscrowNetwork, to: string, amount: string) => { const hmtContract = new web3.eth.Contract(HMTokenAbi as [], network.hmtAddress); diff --git a/packages/examples/fortune/launcher/server/vitest.config.ts b/packages/examples/fortune/launcher/server/vitest.config.ts new file mode 100644 index 0000000000..8726070b35 --- /dev/null +++ b/packages/examples/fortune/launcher/server/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + setupFiles: ['./tests/setup.ts'], + threads: false + }, +}) \ No newline at end of file diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index ed70302664..266cc240fc 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -14,11 +14,12 @@ "deploy:contracts": "yarn workspace @human-protocol/core install && yarn workspace @human-protocol/core deploy:local", "local": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn exchange\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn deploy:contracts\" \"yarn minio\")", "local:test": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn minio\")", + "test:launcher-server": "yarn workspace @human-protocol/job-launcher-server test:unit", "test:exchange": "cd exchange && yarn test", "test:recording": "cd recording-oracle && yarn test", "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", - "test:unit": "concurrently -g \"yarn test:recording\" \"sleep 3 && yarn test:reputation\" \"yarn test:exchange\"", + "test:unit": "concurrently -g \"yarn test:launcher-server\" \"yarn test:recording\" \"sleep 3 && yarn test:reputation\" \"yarn test:exchange\"", "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", "lint": "eslint .", "lint:fix": "eslint . --fix" diff --git a/packages/examples/launcher/server/package.json b/packages/examples/launcher/server/package.json index 8a1ed5586a..b5b88866cd 100644 --- a/packages/examples/launcher/server/package.json +++ b/packages/examples/launcher/server/package.json @@ -1,6 +1,6 @@ { "private": "true", - "name": "@human-protocol/job-launcher-server", + "name": "@human-protocol/jl-server", "version": "1.0.0", "description": "Human Protocol Job Launcher Server", "license": "MIT" diff --git a/yarn.lock b/yarn.lock index c0615d9660..12da41b141 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11330,9 +11330,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" From 14320febe9fe5eb57b92ad32523dfd4fe7ca9773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 25 Jan 2023 09:57:44 +0100 Subject: [PATCH 086/216] Change fortune's name in protocol contracts --- packages/core/contracts/Escrow.sol | 12 +++++------ .../core/contracts/interfaces/IEscrow.sol | 2 +- packages/core/test/Escrow.ts | 20 +++++++++---------- .../human_protocol_sdk/job.py | 4 ++-- .../typescript/human-protocol-sdk/src/job.ts | 5 +++-- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/packages/core/contracts/Escrow.sol b/packages/core/contracts/Escrow.sol index 24a3f6c56b..be82de10cf 100644 --- a/packages/core/contracts/Escrow.sol +++ b/packages/core/contracts/Escrow.sol @@ -37,7 +37,7 @@ contract Escrow is IEscrow { string public manifestUrl; string public manifestHash; - uint256 public remainingFortunes; + uint256 public remainingSolutions; string public finalResultsUrl; string public finalResultsHash; @@ -95,7 +95,7 @@ contract Escrow is IEscrow { uint256 _recordingOracleStake, string memory _url, string memory _hash, - uint256 _fortunesRequested + uint256 _solutionsRequested ) public trusted notExpired { require( _reputationOracle != address(0), @@ -105,7 +105,7 @@ contract Escrow is IEscrow { _recordingOracle != address(0), 'Invalid or missing token spender' ); - require(_fortunesRequested > 0, 'Invalid or missing fortunes'); + require(_solutionsRequested > 0, 'Invalid or missing solutions'); uint256 totalStake = _reputationOracleStake.add(_recordingOracleStake); require(totalStake >= 0 && totalStake <= 100, 'Stake out of bounds'); require( @@ -123,7 +123,7 @@ contract Escrow is IEscrow { manifestUrl = _url; manifestHash = _hash; - remainingFortunes = _fortunesRequested; + remainingSolutions = _solutionsRequested; status = EscrowStatuses.Pending; emit Pending(manifestUrl, manifestHash); } @@ -220,12 +220,12 @@ contract Escrow is IEscrow { if (bulkPaid) { if (status == EscrowStatuses.Pending) { status = EscrowStatuses.Partial; - remainingFortunes = remainingFortunes.sub(_recipients.length); + remainingSolutions = remainingSolutions.sub(_recipients.length); } if ( balance > 0 && status == EscrowStatuses.Partial && - remainingFortunes == 0 + remainingSolutions == 0 ) { _safeTransfer(canceler, balance); status = EscrowStatuses.Paid; diff --git a/packages/core/contracts/interfaces/IEscrow.sol b/packages/core/contracts/interfaces/IEscrow.sol index af19aa206a..d1b7cce980 100644 --- a/packages/core/contracts/interfaces/IEscrow.sol +++ b/packages/core/contracts/interfaces/IEscrow.sol @@ -23,7 +23,7 @@ interface IEscrow { uint256 _recordingOracleStake, string memory _url, string memory _hash, - uint256 _fortunesRequested + uint256 _solutionsRequested ) external; function abort() external; diff --git a/packages/core/test/Escrow.ts b/packages/core/test/Escrow.ts index 2457e24acc..31619c81e1 100644 --- a/packages/core/test/Escrow.ts +++ b/packages/core/test/Escrow.ts @@ -6,7 +6,7 @@ import { Escrow, HMToken } from '../typechain-types'; const MOCK_URL = 'http://google.com/fake'; const MOCK_HASH = 'kGKmnj9BRf'; -const MOCK_FORTUNES = 3; +const MOCK_SOLUTIONS = 3; const BULK_MAX_COUNT = 100; enum Status { @@ -49,7 +49,7 @@ async function setupEscrow() { 10, MOCK_URL, MOCK_HASH, - MOCK_FORTUNES + MOCK_SOLUTIONS ); } @@ -265,7 +265,7 @@ describe('Escrow', function () { 10, MOCK_URL, MOCK_HASH, - MOCK_FORTUNES + MOCK_SOLUTIONS ) ).to.be.revertedWith('Address calling not trusted'); }); @@ -281,7 +281,7 @@ describe('Escrow', function () { 10, MOCK_URL, MOCK_HASH, - MOCK_FORTUNES + MOCK_SOLUTIONS ) ).to.be.revertedWith('Invalid or missing token spender'); }); @@ -297,12 +297,12 @@ describe('Escrow', function () { 10, MOCK_URL, MOCK_HASH, - MOCK_FORTUNES + MOCK_SOLUTIONS ) ).to.be.revertedWith('Invalid or missing token spender'); }); - it('Should revert with the right error if set invalid number of fortunes', async function () { + it('Should revert with the right error if set invalid number of solutions', async function () { await expect( escrow .connect(owner) @@ -315,7 +315,7 @@ describe('Escrow', function () { MOCK_HASH, 0 ) - ).to.be.revertedWith('Invalid or missing fortunes'); + ).to.be.revertedWith('Invalid or missing solutions'); }); it('Should revert with the right error if stake out of bounds and too high', async function () { @@ -329,7 +329,7 @@ describe('Escrow', function () { 500, MOCK_URL, MOCK_HASH, - MOCK_FORTUNES + MOCK_SOLUTIONS ) ).to.be.revertedWith('Stake out of bounds'); }); @@ -351,7 +351,7 @@ describe('Escrow', function () { 10, MOCK_URL, MOCK_HASH, - MOCK_FORTUNES + MOCK_SOLUTIONS ) ) .to.emit(escrow, 'Pending') @@ -375,7 +375,7 @@ describe('Escrow', function () { 10, MOCK_URL, MOCK_HASH, - MOCK_FORTUNES + MOCK_SOLUTIONS ); expect(await escrow.reputationOracle()).to.equal( diff --git a/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/job.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/job.py index 0d418c9212..6778b3ee35 100644 --- a/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/job.py +++ b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/job.py @@ -417,7 +417,7 @@ def setup(self, sender: str = None) -> bool: recording_oracle = str(self.serialized_manifest["recording_oracle_addr"]) hmt_amount = int(self.amount * 10**18) hmtoken_contract = get_hmtoken(self.hmtoken_addr, self.hmt_server_addr) - remaining_fortunes = int(self.serialized_manifest["job_total_tasks"]) + requested_solutions = int(self.serialized_manifest["job_total_tasks"]) tx_balance = None hmt_transferred = False @@ -482,7 +482,7 @@ def setup(self, sender: str = None) -> bool: recording_oracle_stake, self.manifest_url, self.manifest_hash, - remaining_fortunes, + requested_solutions, ] try: diff --git a/packages/sdk/typescript/human-protocol-sdk/src/job.ts b/packages/sdk/typescript/human-protocol-sdk/src/job.ts index cb647c2e01..d9cdd7ce64 100644 --- a/packages/sdk/typescript/human-protocol-sdk/src/job.ts +++ b/packages/sdk/typescript/human-protocol-sdk/src/job.ts @@ -385,7 +385,8 @@ export class Job { this.manifestData?.manifest?.reputation_oracle_addr || ''; const recordingOracleAddr = this.manifestData?.manifest?.recording_oracle_addr || ''; - const remainingFortunes = this.manifestData?.manifest?.job_total_tasks || 0; + const requestedSolutions = + this.manifestData?.manifest?.job_total_tasks || 0; this._logger.info( `Transferring ${this.amount} HMT to ${this.contractData.escrow.address}...` @@ -440,7 +441,7 @@ export class Job { recordingOracleStake, this.manifestData?.manifestlink?.url, this.manifestData?.manifestlink?.hash, - remainingFortunes + requestedSolutions ); if (!contractSetup) { From c54da39e5b99819c589a56bec33914c70b19cb90 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 12:59:47 +0100 Subject: [PATCH 087/216] add readme and cursewords --- packages/core/package.json | 2 +- .../fortune/launcher/server/.env.test | 10 + .../fortune/launcher/server/README.md | 35 ++ .../fortune/launcher/server/package.json | 2 +- .../server/src/constants/curseWords.ts | 452 ++++++++++++++++++ .../launcher/server/src/plugins/escrow.ts | 6 + .../launcher/server/src/routes/escrow.ts | 9 +- .../server/tests/plugins/escrow.test.ts | 9 +- .../server/tests/routes/escrow.test.ts | 89 ++-- .../fortune/launcher/server/tests/utils.ts | 11 + packages/examples/fortune/package.json | 2 +- yarn.lock | 146 +++--- 12 files changed, 668 insertions(+), 105 deletions(-) create mode 100644 packages/examples/fortune/launcher/server/README.md create mode 100644 packages/examples/fortune/launcher/server/src/constants/curseWords.ts diff --git a/packages/core/package.json b/packages/core/package.json index 2d1c7d7b05..6ed263743b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.37", + "version": "1.0.38", "files": [ "contracts/**/*.sol", "abis/**/*.json", diff --git a/packages/examples/fortune/launcher/server/.env.test b/packages/examples/fortune/launcher/server/.env.test index 36d5d5345c..e86268064e 100644 --- a/packages/examples/fortune/launcher/server/.env.test +++ b/packages/examples/fortune/launcher/server/.env.test @@ -1 +1,11 @@ +NODE_ENV='development' +LOG_LEVEL='debug' +API_HOST='localhost' +API_PORT='8080' +S3_HOST=localhost +S3_PORT=80 +S3_ACCESS_KEY=access-key +S3_SECRET_KEY=secret-key +S3_BUCKET_NAME=fortune-manifests +S3_BASE_URL=http://localhost ETH_PRIVATE_KEY=df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/README.md b/packages/examples/fortune/launcher/server/README.md new file mode 100644 index 0000000000..3a5bdb870c --- /dev/null +++ b/packages/examples/fortune/launcher/server/README.md @@ -0,0 +1,35 @@ +# Job Launcher server +Job Launcher server is an API that allows Human Protocol users to create jobs. +### Validations: +1. In order to accept the job creation the user needs to approve to the job launcher address, in the contract of the token selected, to spend the amount of tokens desired for funding the escrow. +2. Check for curse words in title and description. + +### Flow: +1. User approves the amount necessary +2. User submits the escrow data calling ```POST /escrow``` +3. Server passes validations +4. Server creates the escrow +5. Server funds the escrow +6. Server uploads manifest with the escrow data +7. Server sets the escrow up +8. Server returns escrow address + + +## Run locally +1. Create a copy of .env.test and call it .env: + +```bash +cp .env.test .env +```` + +2. Edit .env file with the required values. +3. Start the server: + +```bash +yarn start +``` + +## Tests +```bash +yarn test +``` \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 17d7ce5f44..d74b418fd8 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test:unit": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 5s && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 5s && vitest --run\"" } } diff --git a/packages/examples/fortune/launcher/server/src/constants/curseWords.ts b/packages/examples/fortune/launcher/server/src/constants/curseWords.ts new file mode 100644 index 0000000000..b5f7fea0de --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/constants/curseWords.ts @@ -0,0 +1,452 @@ +export const CURSE_WORDS = [ + '4r5e', + '5h1t', + '5hit', + 'a55', + 'anal', + 'anus', + 'ar5e', + 'arrse', + 'arse', + 'ass', + 'ass-fucker', + 'asses', + 'assfucker', + 'assfukka', + 'asshole', + 'assholes', + 'asswhole', + 'a_s_s', + 'b!tch', + 'b00bs', + 'b17ch', + 'b1tch', + 'ballbag', + 'balls', + 'ballsack', + 'bastard', + 'beastial', + 'beastiality', + 'bellend', + 'bestial', + 'bestiality', + 'bi+ch', + 'biatch', + 'bitch', + 'bitcher', + 'bitchers', + 'bitches', + 'bitchin', + 'bitching', + 'bloody', + 'blow job', + 'blowjob', + 'blowjobs', + 'boiolas', + 'bollock', + 'bollok', + 'boner', + 'boob', + 'boobs', + 'booobs', + 'boooobs', + 'booooobs', + 'booooooobs', + 'breasts', + 'buceta', + 'bugger', + 'bum', + 'bunny fucker', + 'butt', + 'butthole', + 'buttmuch', + 'buttplug', + 'c0ck', + 'c0cksucker', + 'carpet muncher', + 'cawk', + 'chink', + 'cipa', + 'cl1t', + 'clit', + 'clitoris', + 'clits', + 'cnut', + 'cock', + 'cock-sucker', + 'cockface', + 'cockhead', + 'cockmunch', + 'cockmuncher', + 'cocks', + 'cocksuck', + 'cocksucked', + 'cocksucker', + 'cocksucking', + 'cocksucks', + 'cocksuka', + 'cocksukka', + 'cok', + 'cokmuncher', + 'coksucka', + 'coon', + 'cox', + 'crap', + 'cum', + 'cummer', + 'cumming', + 'cums', + 'cumshot', + 'cunilingus', + 'cunillingus', + 'cunnilingus', + 'cunt', + 'cuntlick', + 'cuntlicker', + 'cuntlicking', + 'cunts', + 'cyalis', + 'cyberfuc', + 'cyberfuck', + 'cyberfucked', + 'cyberfucker', + 'cyberfuckers', + 'cyberfucking', + 'd1ck', + 'damn', + 'dick', + 'dickhead', + 'dildo', + 'dildos', + 'dink', + 'dinks', + 'dirsa', + 'dlck', + 'dog-fucker', + 'doggin', + 'dogging', + 'donkeyribber', + 'doosh', + 'duche', + 'dyke', + 'ejaculate', + 'ejaculated', + 'ejaculates', + 'ejaculating', + 'ejaculatings', + 'ejaculation', + 'ejakulate', + 'f u c k', + 'f u c k e r', + 'f4nny', + 'fag', + 'fagging', + 'faggitt', + 'faggot', + 'faggs', + 'fagot', + 'fagots', + 'fags', + 'fanny', + 'fannyflaps', + 'fannyfucker', + 'fanyy', + 'fatass', + 'fcuk', + 'fcuker', + 'fcuking', + 'feck', + 'fecker', + 'felching', + 'fellate', + 'fellatio', + 'fingerfuck', + 'fingerfucked', + 'fingerfucker', + 'fingerfuckers', + 'fingerfucking', + 'fingerfucks', + 'fistfuck', + 'fistfucked', + 'fistfucker', + 'fistfuckers', + 'fistfucking', + 'fistfuckings', + 'fistfucks', + 'flange', + 'fook', + 'fooker', + 'fuck', + 'fucka', + 'fucked', + 'fucker', + 'fuckers', + 'fuckhead', + 'fuckheads', + 'fuckin', + 'fucking', + 'fuckings', + 'fuckingshitmotherfucker', + 'fuckme', + 'fucks', + 'fuckwhit', + 'fuckwit', + 'fudge packer', + 'fudgepacker', + 'fuk', + 'fuker', + 'fukker', + 'fukkin', + 'fuks', + 'fukwhit', + 'fukwit', + 'fux', + 'fux0r', + 'f_u_c_k', + 'gangbang', + 'gangbanged', + 'gangbangs', + 'gaylord', + 'gaysex', + 'goatse', + 'God', + 'god-dam', + 'god-damned', + 'goddamn', + 'goddamned', + 'hardcoresex', + 'hell', + 'heshe', + 'hoar', + 'hoare', + 'hoer', + 'homo', + 'hore', + 'horniest', + 'horny', + 'hotsex', + 'jack-off', + 'jackoff', + 'jap', + 'jerk-off', + 'jism', + 'jiz', + 'jizm', + 'jizz', + 'kawk', + 'knob', + 'knobead', + 'knobed', + 'knobend', + 'knobhead', + 'knobjocky', + 'knobjokey', + 'kock', + 'kondum', + 'kondums', + 'kum', + 'kummer', + 'kumming', + 'kums', + 'kunilingus', + 'l3i+ch', + 'l3itch', + 'labia', + 'lust', + 'lusting', + 'm0f0', + 'm0fo', + 'm45terbate', + 'ma5terb8', + 'ma5terbate', + 'masochist', + 'master-bate', + 'masterb8', + 'masterbat*', + 'masterbat3', + 'masterbate', + 'masterbation', + 'masterbations', + 'masturbate', + 'mo-fo', + 'mof0', + 'mofo', + 'mothafuck', + 'mothafucka', + 'mothafuckas', + 'mothafuckaz', + 'mothafucked', + 'mothafucker', + 'mothafuckers', + 'mothafuckin', + 'mothafucking', + 'mothafuckings', + 'mothafucks', + 'mother fucker', + 'motherfuck', + 'motherfucked', + 'motherfucker', + 'motherfuckers', + 'motherfuckin', + 'motherfucking', + 'motherfuckings', + 'motherfuckka', + 'motherfucks', + 'muff', + 'mutha', + 'muthafecker', + 'muthafuckker', + 'muther', + 'mutherfucker', + 'n1gga', + 'n1gger', + 'nazi', + 'nigg3r', + 'nigg4h', + 'nigga', + 'niggah', + 'niggas', + 'niggaz', + 'nigger', + 'niggers', + 'nob', + 'nob jokey', + 'nobhead', + 'nobjocky', + 'nobjokey', + 'numbnuts', + 'nutsack', + 'orgasim', + 'orgasims', + 'orgasm', + 'orgasms', + 'p0rn', + 'pawn', + 'pecker', + 'penis', + 'penisfucker', + 'phonesex', + 'phuck', + 'phuk', + 'phuked', + 'phuking', + 'phukked', + 'phukking', + 'phuks', + 'phuq', + 'pigfucker', + 'pimpis', + 'piss', + 'pissed', + 'pisser', + 'pissers', + 'pisses', + 'pissflaps', + 'pissin', + 'pissing', + 'pissoff', + 'poop', + 'porn', + 'porno', + 'pornography', + 'pornos', + 'prick', + 'pricks', + 'pron', + 'pube', + 'pusse', + 'pussi', + 'pussies', + 'pussy', + 'pussys', + 'rectum', + 'retard', + 'rimjaw', + 'rimming', + 's hit', + 's.o.b.', + 'sadist', + 'schlong', + 'screwing', + 'scroat', + 'scrote', + 'scrotum', + 'semen', + 'sex', + 'sh!+', + 'sh!t', + 'sh1t', + 'shag', + 'shagger', + 'shaggin', + 'shagging', + 'shemale', + 'shi+', + 'shit', + 'shitdick', + 'shite', + 'shited', + 'shitey', + 'shitfuck', + 'shitfull', + 'shithead', + 'shiting', + 'shitings', + 'shits', + 'shitted', + 'shitter', + 'shitters', + 'shitting', + 'shittings', + 'shitty', + 'skank', + 'slut', + 'sluts', + 'smegma', + 'smut', + 'snatch', + 'son-of-a-bitch', + 'spac', + 'spunk', + 's_h_i_t', + 't1tt1e5', + 't1tties', + 'teets', + 'teez', + 'testical', + 'testicle', + 'tit', + 'titfuck', + 'tits', + 'titt', + 'tittie5', + 'tittiefucker', + 'titties', + 'tittyfuck', + 'tittywank', + 'titwank', + 'tosser', + 'turd', + 'tw4t', + 'twat', + 'twathead', + 'twatty', + 'twunt', + 'twunter', + 'v14gra', + 'v1gra', + 'vagina', + 'viagra', + 'vulva', + 'w00se', + 'wang', + 'wank', + 'wanker', + 'wanky', + 'whoar', + 'whore', + 'willies', + 'willy', + 'xrated', + 'xxx', + ]; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index ce5be8d241..29f68cf9bf 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -6,6 +6,7 @@ import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "js import { escrow as escrowSchema } from '../schemas/escrow.js'; import Web3 from 'web3'; import { REC_ORACLE_ADDRESS, REC_ORACLE_PERCENTAGE_FEE, REP_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE } from "../constants/oracles.js"; +import { CURSE_WORDS } from "../constants/curseWords.js"; class Escrow { async setupEscrow (web3: Web3, escrowAddress: string, url: string, fortunesRequested: number) { @@ -52,6 +53,11 @@ class Escrow { .transferFrom(jobRequester, escrowAddress, fundAmount) .send({ from: web3.eth.defaultAccount, gas, gasPrice }); } + + checkCurseWords(text: string): boolean { + const words = text.replace(/[^a-zA-Z0-9 ]/g, '').split(' '); + return CURSE_WORDS.some(w => words.includes(w)); + } } const escrowPlugin: FastifyPluginAsync = async (server) => { diff --git a/packages/examples/fortune/launcher/server/src/routes/escrow.ts b/packages/examples/fortune/launcher/server/src/routes/escrow.ts index 252c6b083c..ec1b0f7723 100644 --- a/packages/examples/fortune/launcher/server/src/routes/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/routes/escrow.ts @@ -39,17 +39,22 @@ export const createEscrow: FastifyPluginAsync = async (server) => { const jobRequester = escrowData.jobRequester as unknown as string; const token = escrowData.token as unknown as string; - const fortunesRequested = Number(escrowData.fortunesRequired); const fundAmount = web3Client.utils.toWei(Number(escrowData.fundAmount).toString(), 'ether'); if (await escrow.checkApproved(web3Client, token, jobRequester, fundAmount)) { + const description = escrowData.description as unknown as string; + const title = escrowData.title as unknown as string; + if (escrow.checkCurseWords(description) || escrow.checkCurseWords(title)) + return reply.status(400).send('Title or description contains curse words'); const escrowAddress = await escrow.createEscrow(web3Client, escrowNetwork.factoryAddress, token, jobRequester); await escrow.fundEscrow(web3Client, token, jobRequester, escrowAddress, fundAmount); const url = await s3.uploadManifest(escrowData, escrowAddress); + const fortunesRequested = Number(escrowData.fortunesRequired); await escrow.setupEscrow(web3Client, escrowAddress, url, fortunesRequested); return escrowAddress; } return reply.status(400).send('Balance or allowance not enough for funding the escrow'); }); - } \ No newline at end of file + } + diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts index f33ccb378e..518e161973 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -49,7 +49,7 @@ describe('Escrow tests', () => { expect(await hmtContract.methods.balanceOf(escrowAddress).call()).eq(amount); }); - test('Should setup an escrow ', async () => { + test('Should setup an escrow', async () => { const escrowAddress = await escrow.createEscrow(web3Client, network.factoryAddress, network.hmtAddress, jobRequester); const escrowContract = new web3Client.eth.Contract(EscrowAbi as [], escrowAddress); const url = 'http://test.com'; @@ -57,5 +57,12 @@ describe('Escrow tests', () => { expect(await escrowContract.methods.manifestUrl().call()).eq(url); expect(Number(await escrowContract.methods.remainingFortunes().call())).eq(3); }); + + test('Should not detect curse words', async () => { + expect(escrow.checkCurseWords("hello world")).eq(false); + }); + test('Should detect curse words', async () => { + expect(escrow.checkCurseWords("porn")).eq(true); + }); }); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts index 9361e54d36..072477d960 100644 --- a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts @@ -1,58 +1,81 @@ -import { describe, test, expect, beforeAll } from 'vitest'; +import { describe, test, expect, beforeAll, vi } from 'vitest'; import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from "../../src/constants/networks.js"; import server from '../../src/server.js' -import { stake, approve } from '../utils.js' +import { stake, approve, decreaseApproval } from '../utils.js' const jobRequesterPrivKey = '689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b061667b5a93e037fd'; const jobRequester = '0xbDA5747bFD65F08deb54cb465eB87D40e51B197E'; describe('Escrow route tests', () => { - const { escrow, web3 } = server; + const { escrow, web3, s3 } = server; + const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; const web3Client = web3.createWeb3(network); const web3JobRequester = web3.createWeb3(network, jobRequesterPrivKey); + beforeAll(async () => { + const spy = vi.spyOn(s3, 'uploadManifest') + spy.mockImplementation(async () => 'fileUrl') await stake(web3Client, network); }) - test('Should not allow to create an escrow', async () => { + test('Should not allow to create an escrow because of allowance or balance', async () => { const response = await server.inject({ - method: 'POST', - path: '/escrow', - payload: { - chainId: 1338, - title: "title 1", - description: "description 1", - fortunesRequired: 2, - token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", - fundAmount: 1, - jobRequester: jobRequester - } - }); + method: 'POST', + path: '/escrow', + payload: { + chainId: 1338, + title: "title 1", + description: "description 1", + fortunesRequired: 2, + token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", + fundAmount: 1, + jobRequester: jobRequester + } + }); expect(response.statusCode).eq(400); expect(response.body).eq('Balance or allowance not enough for funding the escrow'); - }); - test('Should create an escrow', async () => { + }); + test('Should not allow to create an escrow because curse words', async () => { const amount = web3JobRequester.utils.toWei('10', 'ether'); await approve(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); const response = await server.inject({ - method: 'POST', - path: '/escrow', - payload: { - chainId: 1338, - title: "title 1", - description: "description 1", - fortunesRequired: 2, - token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", - fundAmount: 1, - jobRequester: jobRequester - } - }); + method: 'POST', + path: '/escrow', + payload: { + chainId: 1338, + title: "porn", + description: "description 1", + fortunesRequired: 2, + token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", + fundAmount: 1, + jobRequester: jobRequester + } + }); + expect(response.statusCode).eq(400); + expect(response.body).eq('Title or description contains curse words'); + await decreaseApproval(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); + }); + test('Should create an escrow', async () => { + const amount = web3JobRequester.utils.toWei('10', 'ether'); + await approve(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); + const response = await server.inject({ + method: 'POST', + path: '/escrow', + payload: { + chainId: 1338, + title: "title 1", + description: "description 1", + fortunesRequired: 2, + token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", + fundAmount: 1, + jobRequester: jobRequester + } + }); + expect(response.statusCode).eq(200); expect(response.body).contains('0x'); - }); - - + }); }); \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/tests/utils.ts b/packages/examples/fortune/launcher/server/tests/utils.ts index f94a8db301..1962c206fa 100644 --- a/packages/examples/fortune/launcher/server/tests/utils.ts +++ b/packages/examples/fortune/launcher/server/tests/utils.ts @@ -29,4 +29,15 @@ export const approve = async (web3: Web3, network: IEscrowNetwork, to: string, a await hmtContract.methods .approve(to, amount) .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +}; + +export const decreaseApproval = async (web3: Web3, network: IEscrowNetwork, to: string, amount: string) => { + const hmtContract = new web3.eth.Contract(HMTokenAbi as [], network.hmtAddress); + let gas = await hmtContract.methods + .decreaseApproval(to, amount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + await hmtContract.methods + .decreaseApproval(to, amount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); } \ No newline at end of file diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index 266cc240fc..5e16386a47 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -14,7 +14,7 @@ "deploy:contracts": "yarn workspace @human-protocol/core install && yarn workspace @human-protocol/core deploy:local", "local": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn exchange\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn deploy:contracts\" \"yarn minio\")", "local:test": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn minio\")", - "test:launcher-server": "yarn workspace @human-protocol/job-launcher-server test:unit", + "test:launcher-server": "yarn workspace @human-protocol/job-launcher-server test", "test:exchange": "cd exchange && yarn test", "test:recording": "cd recording-oracle && yarn test", "test:reputation": "cd reputation-oracle && yarn test", diff --git a/yarn.lock b/yarn.lock index 12da41b141..88684733d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2186,9 +2186,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.37" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.37.tgz#df929d4235850b53818a02af9b4d79c1840bd335" - integrity sha512-5qsNupyJWJ3ckCoeGqgTYXOgVp/Y8tDRo4yFSLv2CNHKa+p2qhuqMDeM4WDlfrmtTsCgL3Xa/vxwK0xxT5mLuQ== + version "1.0.38" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.38.tgz#eeb8eb35145a923e84bee7bf6d7f83f9bf53307f" + integrity sha512-2pdk6KboKo030307DCpXhuGNJvayJSuKEdy4WoOQjnL2As22DTpLnMspN7/XQR3FAQqBwrBTWqOiSZ8Sd+TExA== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -2761,6 +2761,14 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== +"@morgan-stanley/ts-mocking-bird@^0.6.2": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz#2e4b60d42957bab3b50b67dbf14c3da2f62a39f7" + integrity sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA== + dependencies: + lodash "^4.17.16" + uuid "^7.0.3" + "@mui/base@5.0.0-alpha.115": version "5.0.0-alpha.115" resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.115.tgz#582b147fda56fe52d561fe9f64406e036d882338" @@ -3743,9 +3751,9 @@ use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.2.tgz#0a5a9df50e0430097c58fcb9ae6e40981bd4b2e9" - integrity sha512-qITow77BqF88lUCz+9OL5eanAdCNXRN/9IeU1GwtJ2NmR7e8o9qgz1XYTTQUVmtqnqcZzf3jT0nwlqKUGRimqw== + version "1.5.3" + resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.3.tgz#778926d8194e815a0159163aa28d8b40650b7dac" + integrity sha512-DuWp8Lm2lHQeDujM6szvMmE+wx1dE7PLILgtBnfGfhJy4Hv3SJHZDCOiP/V3X3InYPoKjMxNL/TN1jQbT+AXQA== dependencies: "@ethersproject/bignumber" "^5.7.0" "@nomiclabs/hardhat-ethers" "^2.1.1" @@ -4174,9 +4182,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*", "@types/jest@^29.2.3": - version "29.2.6" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.6.tgz#1d43c8e533463d0437edef30b2d45d5aa3d95b0a" - integrity sha512-XEUC/Tgw3uMh6Ho8GkUtQ2lPhY5Fmgyp3TdlkTJs1W9VgNxs+Ow/x3Elh8lHQKqCbZL0AubQuqWjHVT033Hhrw== + version "29.4.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.0.tgz#a8444ad1704493e84dbf07bb05990b275b3b9206" + integrity sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -4654,35 +4662,35 @@ json-schema-to-ts "1.6.4" ts-morph "12.0.0" -"@vitest/expect@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.1.tgz#75e81973c907fe7516b78bcfdc99c6f6c07bf714" - integrity sha512-BOvWjBoocKrrTTTC0opIvzOEa7WR/Ovx4++QYlbjYKjnQJfWRSEQkTpAIEfOURtZ/ICcaLk5jvsRshXvjarZew== +"@vitest/expect@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.2.tgz#375af32579b3d6b972a1fe0be0e0260ffb84bc7d" + integrity sha512-syEAK7I24/aGR2lXma98WNnvMwAJ+fMx32yPcj8eLdCEWjZI3SH8ozMaKQMy65B/xZCZAl6MXmfjtJb2CpWPMg== dependencies: - "@vitest/spy" "0.28.1" - "@vitest/utils" "0.28.1" + "@vitest/spy" "0.28.2" + "@vitest/utils" "0.28.2" chai "^4.3.7" -"@vitest/runner@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.1.tgz#f3c72befec05ef9a3565de7de9974b19f2ff7275" - integrity sha512-kOdmgiNe+mAxZhvj2eUTqKnjfvzzknmrcS+SZXV7j6VgJuWPFAMCv3TWOe03nF9dkqDfVLCDRw/hwFuCzmzlQg== +"@vitest/runner@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.2.tgz#671c8f489ceac2bcf1bc2d993f9920da10347d3f" + integrity sha512-BJ9CtfPwWM8uc5p7Ty0OprwApyh8RIaSK7QeQPhwfDYA59AAE009OytqA3aX0yj1Qy5+k/mYFJS8RJZgsueSGA== dependencies: - "@vitest/utils" "0.28.1" + "@vitest/utils" "0.28.2" p-limit "^4.0.0" pathe "^1.1.0" -"@vitest/spy@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.1.tgz#9efdce05273161cd9036f3f520d0e836602b926d" - integrity sha512-XGlD78cG3IxXNnGwEF121l0MfTNlHSdI25gS2ik0z6f/D9wWUOru849QkJbuNl4CMlZCtNkx3b5IS6MRwKGKuA== +"@vitest/spy@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.2.tgz#74d970601eebc41d48e685323b2853b2c88f8db4" + integrity sha512-KlLzTzi5E6tHcI12VT+brlY1Pdi7sUzLf9+YXgh80+CfLu9DqPZi38doBBAUhqEnW/emoLCMinPMMoJlNAQZXA== dependencies: tinyspy "^1.0.2" -"@vitest/utils@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.1.tgz#01c347803dff8c02d7b097210f3749987e5b2ce6" - integrity sha512-a7cV1fs5MeU+W+8sn8gM9gV+q7V/wYz3/4y016w/icyJEKm9AMdSHnrzxTWaElJ07X40pwU6m5353Jlw6Rbd8w== +"@vitest/utils@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.2.tgz#2d79de7afb44e821a2c7e692bafb40d2cf765bb7" + integrity sha512-wcVTNnVdr22IGxZHDgiXrxWYcXsNg0iX2iBuOH3tVs9eme6fXJ0wxjn0/gCpp0TofQSoUwo3tX8LNACFVseDuA== dependencies: cli-truncate "^3.1.0" diff "^5.1.0" @@ -5102,10 +5110,10 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@zeit/schemas@2.21.0": - version "2.21.0" - resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.21.0.tgz#cd242c6551ffb51830049d68d9743ab65b45b820" - integrity sha512-/J4WBTpWtQ4itN1rb3ao8LfClmVcmz2pO6oYb7Qd4h7VSqUhIbJIvrykz9Ew1WMg6eFWsKdsMHc5uPbFxqlCpg== +"@zeit/schemas@2.29.0": + version "2.29.0" + resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.29.0.tgz#a59ae6ebfdf4ddc66a876872dd736baa58b6696c" + integrity sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA== "@zxing/text-encoding@0.9.0": version "0.9.0" @@ -5775,9 +5783,9 @@ avvio@^8.2.0: fastq "^1.6.1" aws-sdk@^2.1255.0: - version "2.1300.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1300.0.tgz#40190f3ccea8693c3764edab7aa5bd26db350fa7" - integrity sha512-1pz/+Kot+kTiH0WDH5A8Ao06dwz73xX6oCIpTbGTt/AKdmGTC8aAkMbk+KXoQatJSsQyqqxrtWIeKIQUaeUYDw== + version "2.1301.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1301.0.tgz#fbe971fca51deccecc6729f2f01fc2b0ff41ba1f" + integrity sha512-AxCt0GfWV14AWC0yvN3+WEBr45JMu2X3FHb8r3H8EhZjJfHk3hWcDwu6vS5Qd8NFDATlFdWJfyQjPVU1YuaDfw== dependencies: buffer "4.9.2" events "1.1.1" @@ -5821,9 +5829,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.1.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.3.tgz#31a3d824c0ebf754a004b585e5f04a5f87e6c4ff" - integrity sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw== + version "1.2.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.4.tgz#6555dd955d2efa9b8f4cb4cb0b3371b7b243537a" + integrity sha512-lIQuCfBJvZB/Bv7+RWUqEJqNShGOVpk9v7P0ZWx5Ip0qY6u7JBAU6dzQPMLasU9vHL2uD8av/1FDJXj7n6c39w== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -7313,9 +7321,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001447" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001447.tgz#ef1f39ae38d839d7176713735a8e467a0a2523bd" - integrity sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw== + version "1.0.30001448" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz#ca7550b1587c92a392a2b377cd9c508b3b4395bf" + integrity sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA== carbites@^1.0.6: version "1.0.6" @@ -8334,9 +8342,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.4.0.tgz#5228c7c0960b67ca794f2f10967d7d9fce2b70f7" - integrity sha512-Y2Z2e3kBa9pael6hiDjxCK+whuMhBemQLVT20jM/lQjqAvtbUa1r6DHRagzegpUAusXRfiN6LvF9XI6JU1kg5w== + version "7.4.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.4.1.tgz#61d55c0173126689922a219e15e131e4b5caf422" + integrity sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ== cssesc@^3.0.0: version "3.0.0" @@ -11330,9 +11338,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -14705,7 +14713,7 @@ lodash.upperfirst@^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.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.16, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -18841,11 +18849,11 @@ serve-static@1.15.0: send "0.18.0" serve@^14.1.1: - version "14.1.2" - resolved "https://registry.yarnpkg.com/serve/-/serve-14.1.2.tgz#65d7a3cec5a0b876c46bb8927fabc27957c2e1e0" - integrity sha512-luwVfJwbeE7dhCKeRU0vIBpt4bXdbAfzwsWJIQ5eqrIW2e+4nLWXbSlZ0WzelSFHQq+FlueOW6dr90jEewS9zw== + version "14.2.0" + resolved "https://registry.yarnpkg.com/serve/-/serve-14.2.0.tgz#3d768e88fa13ad8644f2393599189707176e66b8" + integrity sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg== dependencies: - "@zeit/schemas" "2.21.0" + "@zeit/schemas" "2.29.0" ajv "8.11.0" arg "5.0.2" boxen "7.0.0" @@ -20249,10 +20257,11 @@ tryer@^1.0.1: integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== ts-command-line-args@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.3.1.tgz#b6188e42efc6cf7a8898e438a873fbb15505ddd6" - integrity sha512-FR3y7pLl/fuUNSmnPhfLArGqRrpojQgIEEOVzYx9DhTmfIN7C9RWSfpkJEF4J+Gk7aVx5pak8I7vWZsaN4N84g== + version "2.4.2" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz#b4815b23c35f8a0159d4e69e01012d95690bc448" + integrity sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ== dependencies: + "@morgan-stanley/ts-mocking-bird" "^0.6.2" chalk "^4.1.0" command-line-args "^5.1.1" command-line-usage "^6.1.0" @@ -20760,6 +20769,11 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -20850,10 +20864,10 @@ victory-vendor@^36.6.8: d3-time "^3.0.0" d3-timer "^3.0.1" -vite-node@0.28.1: - version "0.28.1" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.1.tgz#e2af53e112e57455a474e9f7a6478b1cdf79a6ab" - integrity sha512-Mmab+cIeElkVn4noScCRjy8nnQdh5LDIR4QCH/pVWtY15zv5Z1J7u6/471B9JZ2r8CEIs42vTbngaamOVkhPLA== +vite-node@0.28.2: + version "0.28.2" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.2.tgz#58b52fc638f86fee9bfe4990abaea7e4d74f6514" + integrity sha512-zyiJ3DLs9zXign4P2MD4PQk+7rdT+JkHukgmmS0KuImbCQ7WnCdea5imQVeT6OtUsBwsLztJxQODUsinVr91tg== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -20877,17 +20891,17 @@ vite-node@0.28.1: fsevents "~2.3.2" vitest@^0.28.1: - version "0.28.1" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.1.tgz#a87656075e01436c887048efd83a5d32792ce890" - integrity sha512-F6wAO3K5+UqJCCGt0YAl3Ila2f+fpBrJhl9n7qWEhREwfzQeXlMkkCqGqGtzBxCSa8kv5QHrkshX8AaPTXYACQ== + version "0.28.2" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.2.tgz#952e1ad83fbd04ee1bfce634b106a371a5973603" + integrity sha512-HJBlRla4Mng0OiZ8aWunCecJ6BzLDA4yuzuxiBuBU2MXjGB6I4zT7QgIBL/UrwGKlNxLwaDC5P/4OpeuTlW8yQ== dependencies: "@types/chai" "^4.3.4" "@types/chai-subset" "^1.3.3" "@types/node" "*" - "@vitest/expect" "0.28.1" - "@vitest/runner" "0.28.1" - "@vitest/spy" "0.28.1" - "@vitest/utils" "0.28.1" + "@vitest/expect" "0.28.2" + "@vitest/runner" "0.28.2" + "@vitest/spy" "0.28.2" + "@vitest/utils" "0.28.2" acorn "^8.8.1" acorn-walk "^8.2.0" cac "^6.7.14" @@ -20903,7 +20917,7 @@ vitest@^0.28.1: tinypool "^0.3.0" tinyspy "^1.0.2" vite "^3.0.0 || ^4.0.0" - vite-node "0.28.1" + vite-node "0.28.2" why-is-node-running "^2.2.2" w3c-hr-time@^1.0.2: From d7fcac586b08fc1d416346a66b54c9d50eb24bcd Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 14:53:21 +0100 Subject: [PATCH 088/216] fix upgraded jest --- .../fortune/launcher/server/package.json | 2 +- yarn.lock | 1048 ++++++++--------- 2 files changed, 509 insertions(+), 541 deletions(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index d74b418fd8..55a359ecbe 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 5s && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 10s && vitest --run\"" } } diff --git a/yarn.lock b/yarn.lock index 88684733d8..ef0e4f0ae8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -113,7 +113,7 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.12", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": version "7.20.12" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== @@ -283,12 +283,12 @@ "@babel/types" "^7.20.5" "@babel/helpers@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" - integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" + integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== dependencies: "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.13" + "@babel/traverse" "^7.20.7" "@babel/types" "^7.20.7" "@babel/highlight@^7.18.6": @@ -300,10 +300,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088" - integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -349,11 +349,11 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.13.tgz#b6bea3b18e88443688fa7ed2cc06d2c60da9f4a7" - integrity sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.7.tgz#05d37453c2ce818f3e47bbeda9468c8de947eecc" + integrity sha512-JB45hbUweYpwAGjkiM7uCyXMENH2lG+9r3G2E+ttc2PRXAoEkpfd/KW5jDg4j8RS6tLtTG1jZi9LbHZVSfs1/A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.12" + "@babel/helper-create-class-features-plugin" "^7.20.7" "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-split-export-declaration" "^7.18.6" @@ -823,9 +823,9 @@ "@babel/plugin-transform-react-jsx" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz#f950f0b0c36377503d29a712f16287cedf886cbb" - integrity sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz#025d85a1935fd7e19dfdcb1b1d4df34d4da484f7" + integrity sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" @@ -905,11 +905,11 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz#e3581b356b8694f6ff450211fe6774eaff8d25ab" - integrity sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.7.tgz#673f49499cd810ae32a1ea5f3f8fab370987e055" + integrity sha512-m3wVKEvf6SoszD8pu4NZz3PvfKRCMgk6D6d0Qi9hNnlM5M6CFS92EgF4EiHVLKbU0r/r7ty1hg7NPZwE7WRbYw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.12" + "@babel/helper-create-class-features-plugin" "^7.20.7" "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-typescript" "^7.20.0" @@ -1049,9 +1049,9 @@ regenerator-runtime "^0.12.0" "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" + integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== dependencies: regenerator-runtime "^0.13.11" @@ -1064,10 +1064,10 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.16.8", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" - integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== +"@babel/traverse@^7.16.8", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5" + integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ== dependencies: "@babel/code-frame" "^7.18.6" "@babel/generator" "^7.20.7" @@ -1075,7 +1075,7 @@ "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.13" + "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" @@ -2281,16 +2281,16 @@ jest-util "^28.1.3" slash "^3.0.0" -"@jest/console@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.0.tgz#ed2e5bc783791c4be75d0054d1bdf66a46deb163" - integrity sha512-xpXud7e/8zo4syxQlAMDz+EQiFsf8/zXDPslBYm+UaSJ5uGTKQHhbSHfECp7Fw1trQtopjYumeved0n3waijhQ== +"@jest/console@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" + integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== dependencies: - "@jest/types" "^29.4.0" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.4.0" - jest-util "^29.4.0" + jest-message-util "^29.3.1" + jest-util "^29.3.1" slash "^3.0.0" "@jest/core@^27.5.1": @@ -2327,37 +2327,37 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/core@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.0.tgz#23cf275372c51d1191a8cd9f36f8d5a47a4e9041" - integrity sha512-E7oCMcENobBFwQXYjnN2IsuUSpRo5jSv7VYk6O9GyQ5kVAfVSS8819I4W5iCCYvqD6+1TzyzLpeEdZEik81kNw== - dependencies: - "@jest/console" "^29.4.0" - "@jest/reporters" "^29.4.0" - "@jest/test-result" "^29.4.0" - "@jest/transform" "^29.4.0" - "@jest/types" "^29.4.0" +"@jest/core@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" + integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== + dependencies: + "@jest/console" "^29.3.1" + "@jest/reporters" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.4.0" - jest-config "^29.4.0" - jest-haste-map "^29.4.0" - jest-message-util "^29.4.0" + jest-changed-files "^29.2.0" + jest-config "^29.3.1" + jest-haste-map "^29.3.1" + jest-message-util "^29.3.1" jest-regex-util "^29.2.0" - jest-resolve "^29.4.0" - jest-resolve-dependencies "^29.4.0" - jest-runner "^29.4.0" - jest-runtime "^29.4.0" - jest-snapshot "^29.4.0" - jest-util "^29.4.0" - jest-validate "^29.4.0" - jest-watcher "^29.4.0" + jest-resolve "^29.3.1" + jest-resolve-dependencies "^29.3.1" + jest-runner "^29.3.1" + jest-runtime "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" + jest-watcher "^29.3.1" micromatch "^4.0.4" - pretty-format "^29.4.0" + pretty-format "^29.3.1" slash "^3.0.0" strip-ansi "^6.0.0" @@ -2371,30 +2371,30 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/environment@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.0.tgz#b15d7bfc873d6348dfd7323e50083d2c1e067750" - integrity sha512-ocl1VGDcZHfHnYLTqkBY7yXme1bF4x0BevJ9wb6y0sLOSyBCpp8L5fEASChB+wU53WMrIK6kBfGt+ZYoM2kcdw== +"@jest/environment@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" + integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== dependencies: - "@jest/fake-timers" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/fake-timers" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-mock "^29.4.0" + jest-mock "^29.3.1" -"@jest/expect-utils@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.0.tgz#97819d0da7027792888d9d2f1a41443be0baef80" - integrity sha512-w/JzTYIqjmPFIM5OOQHF9CawFx2daw1256Nzj4ZqWX96qRKbCq9WYRVqdySBKHHzuvsXLyTDIF6y61FUyrhmwg== +"@jest/expect-utils@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" + integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.0.tgz#3d47dbb1c650a0833b8263ca354818ca0665adbe" - integrity sha512-IiDZYQ/Oi94aBT0nKKKRvNsB5JTyHoGb+G3SiGoDxz90JfL7SLx/z5IjB0fzBRzy7aLFQOCbVJlaC2fIgU6Y9Q== +"@jest/expect@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" + integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== dependencies: - expect "^29.4.0" - jest-snapshot "^29.4.0" + expect "^29.3.1" + jest-snapshot "^29.3.1" "@jest/fake-timers@^27.5.1": version "27.5.1" @@ -2408,17 +2408,17 @@ jest-mock "^27.5.1" jest-util "^27.5.1" -"@jest/fake-timers@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.0.tgz#9a2409cae63eb1d0122edc21783ef88c67e6face" - integrity sha512-8sitzN2QrhDwEwH3kKcMMgrv/UIkmm9AUgHixmn4L++GQ0CqVTIztm3YmaIQooLmW3O4GhizNTTCyq3iLbWcMw== +"@jest/fake-timers@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" + integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== dependencies: - "@jest/types" "^29.4.0" - "@sinonjs/fake-timers" "^10.0.2" + "@jest/types" "^29.3.1" + "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.4.0" - jest-mock "^29.4.0" - jest-util "^29.4.0" + jest-message-util "^29.3.1" + jest-mock "^29.3.1" + jest-util "^29.3.1" "@jest/globals@^27.5.1": version "27.5.1" @@ -2429,15 +2429,15 @@ "@jest/types" "^27.5.1" expect "^27.5.1" -"@jest/globals@^29.3.1", "@jest/globals@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.0.tgz#b3dd853af92bb6b6156e246475f46fb8f3831785" - integrity sha512-Q64ZRgGMVL40RcYTfD2GvyjK7vJLPSIvi8Yp3usGPNPQ3SCW+UCY9KEH6+sVtBo8LzhcjtCXuZEd7avnj/T0mQ== +"@jest/globals@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" + integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== dependencies: - "@jest/environment" "^29.4.0" - "@jest/expect" "^29.4.0" - "@jest/types" "^29.4.0" - jest-mock "^29.4.0" + "@jest/environment" "^29.3.1" + "@jest/expect" "^29.3.1" + "@jest/types" "^29.3.1" + jest-mock "^29.3.1" "@jest/reporters@^27.5.1": version "27.5.1" @@ -2470,16 +2470,16 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/reporters@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.0.tgz#ec17751cc687fb845fa1978c03fdbc69d34ac462" - integrity sha512-FjJwrD1XOQq/AXKrvnOSf0RgAs6ziUuGKx8+/R53Jscc629JIhg7/m241gf1shUm/fKKxoHd7aCexcg7kxvkWQ== +"@jest/reporters@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" + integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.4.0" - "@jest/test-result" "^29.4.0" - "@jest/transform" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/console" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -2492,9 +2492,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.4.0" - jest-util "^29.4.0" - jest-worker "^29.4.0" + jest-message-util "^29.3.1" + jest-util "^29.3.1" + jest-worker "^29.3.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -2507,12 +2507,12 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/schemas@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.0.tgz#0d6ad358f295cc1deca0b643e6b4c86ebd539f17" - integrity sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ== +"@jest/schemas@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" + integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== dependencies: - "@sinclair/typebox" "^0.25.16" + "@sinclair/typebox" "^0.24.1" "@jest/source-map@^27.5.1": version "27.5.1" @@ -2552,13 +2552,13 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-result@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.0.tgz#64f7bd518d6d2a6662c40569e208e030a370f351" - integrity sha512-EtRklzjpddZU/aBVxJqqejfzfOcnehmjNXufs6u6qwd05kkhXpAPhZdt8bLlQd7cA2nD+JqZQ5Dx9NX5Jh6mjA== +"@jest/test-result@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" + integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== dependencies: - "@jest/console" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/console" "^29.3.1" + "@jest/types" "^29.3.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" @@ -2572,14 +2572,14 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" -"@jest/test-sequencer@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.0.tgz#8041176fccae0f7b86055950461d158833a79b76" - integrity sha512-pEwIgdfvEgF2lBOYX3DVn3SrvsAZ9FXCHw7+C6Qz87HnoDGQwbAselhWLhpgbxDjs6RC9QUJpFnrLmM5uwZV+g== +"@jest/test-sequencer@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" + integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== dependencies: - "@jest/test-result" "^29.4.0" + "@jest/test-result" "^29.3.1" graceful-fs "^4.2.9" - jest-haste-map "^29.4.0" + jest-haste-map "^29.3.1" slash "^3.0.0" "@jest/transform@^27.5.1": @@ -2603,26 +2603,26 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.0.tgz#73ddd9bf8599d285af09e7e3fef730c17a2fd965" - integrity sha512-hDjw3jz4GnvbyLMgcFpC9/34QcUhVIzJkBqz7o+3AhgfhGRzGuQppuLf5r/q7lDAAyJ6jzL+SFG7JGsScHOcLQ== +"@jest/transform@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" + integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.4.0" + "@jest/types" "^29.3.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.0" + jest-haste-map "^29.3.1" jest-regex-util "^29.2.0" - jest-util "^29.4.0" + jest-util "^29.3.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^5.0.0" + write-file-atomic "^4.0.1" "@jest/types@^27.5.1": version "27.5.1" @@ -2647,12 +2647,12 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.0.tgz#569115f2438cacf3cff92521c7d624fbb683de3d" - integrity sha512-1S2Dt5uQp7R0bGY/L2BpuwCSji7v12kY3o8zqwlkbYBmOY956SKk+zOWqmfhHSINegiAVqOXydAYuWpzX6TYsQ== +"@jest/types@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" + integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== dependencies: - "@jest/schemas" "^29.4.0" + "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -2761,18 +2761,10 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@morgan-stanley/ts-mocking-bird@^0.6.2": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz#2e4b60d42957bab3b50b67dbf14c3da2f62a39f7" - integrity sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA== - dependencies: - lodash "^4.17.16" - uuid "^7.0.3" - -"@mui/base@5.0.0-alpha.115": - version "5.0.0-alpha.115" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.115.tgz#582b147fda56fe52d561fe9f64406e036d882338" - integrity sha512-OGQ84whT/yNYd6xKCGGS6MxqEfjVjk5esXM7HP6bB2Rim7QICUapxZt4nm8q39fpT08rNDkv3xPVqDDwRdRg1g== +"@mui/base@5.0.0-alpha.114": + version "5.0.0-alpha.114" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.114.tgz#19125f28b7d09d1cc60550872440ecba699d8374" + integrity sha512-ZpsG2I+zTOAnVTj3Un7TxD2zKRA2OhEPGMcWs/9ylPlS6VuGQSXowPooZiqarjT7TZ0+1bOe8titk/t8dLFiGw== dependencies: "@babel/runtime" "^7.20.7" "@emotion/is-prop-valid" "^1.2.0" @@ -2783,10 +2775,10 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.11.6": - version "5.11.6" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.6.tgz#79a60c0d95a08859cccd62a8d9a5336ef477a840" - integrity sha512-lbD3qdafBOf2dlqKhOcVRxaPAujX+9UlPC6v8iMugMeAXe0TCgU3QbGXY3zrJsu6ex64WYDpH4y1+WOOBmWMuA== +"@mui/core-downloads-tracker@^5.11.5": + version "5.11.5" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz#473c9b918d974f03acc07d29ce467bb91eba13c6" + integrity sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig== "@mui/icons-material@^5.10.14", "@mui/icons-material@^5.10.6": version "5.11.0" @@ -2796,13 +2788,13 @@ "@babel/runtime" "^7.20.6" "@mui/material@^5.10.14", "@mui/material@^5.10.7": - version "5.11.6" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.6.tgz#0055e7bdf5f89bb7f2a5cf0a3252dadfc9122c50" - integrity sha512-MzkkL5KC2PCkFiv8cLpkzgLUPXSrAtnvJBR0emV7mLVWbkwV3n5832vjBx154B6R032fHjFTziTh7YEb50nK6Q== + version "5.11.5" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.5.tgz#b4867b4a6f3289e41f70b4393c075a799be8d24b" + integrity sha512-5fzjBbRYaB5MoEpvA32oalAWltOZ3/kSyuovuVmPc6UF6AG42lTtbdMLpdCygurFSGUMZYTg4Cjij52fKlDDgg== dependencies: "@babel/runtime" "^7.20.7" - "@mui/base" "5.0.0-alpha.115" - "@mui/core-downloads-tracker" "^5.11.6" + "@mui/base" "5.0.0-alpha.114" + "@mui/core-downloads-tracker" "^5.11.5" "@mui/system" "^5.11.5" "@mui/types" "^7.2.3" "@mui/utils" "^5.11.2" @@ -3517,11 +3509,6 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== -"@sinclair/typebox@^0.25.16": - version "0.25.21" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" - integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== - "@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" @@ -3534,20 +3521,6 @@ dependencies: type-detect "4.0.8" -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers@^8.0.1": version "8.1.0" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" @@ -3555,6 +3528,13 @@ dependencies: "@sinonjs/commons" "^1.7.0" +"@sinonjs/fake-timers@^9.1.2": + version "9.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@solana/buffer-layout@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -3718,42 +3698,42 @@ dependencies: defer-to-connect "^2.0.1" -"@tanstack/query-core@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.22.4.tgz#aca622d2f8800a147ece5520d956a076ab92f0ea" - integrity sha512-t79CMwlbBnj+yL82tEcmRN93bL4U3pae2ota4t5NN2z3cIeWw74pzdWrKRwOfTvLcd+b30tC+ciDlfYOKFPGUw== +"@tanstack/query-core@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.22.0.tgz#7a786fcea64e229ed5d4308093dd644cdfaa895e" + integrity sha512-OeLyBKBQoT265f5G9biReijeP8mBxNFwY7ZUu1dKL+YzqpG5q5z7J/N1eT8aWyKuhyDTiUHuKm5l+oIVzbtrjw== -"@tanstack/query-persist-client-core@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.22.4.tgz#a8ed136a8234b9cbd12ae3df857425330c6200db" - integrity sha512-F5rCLczSw8RjFlwWASD3oRR7D4oyG90QbBFaOqBCjGbvE3bcD+m/E4GGCp1qfACoLuH4KtxhdwdOFfE+e0TRZQ== +"@tanstack/query-persist-client-core@4.22.0": + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.22.0.tgz#cb0677cb0ab36c626bfb18bd681426f661ef4a85" + integrity sha512-O5Qh4HycMWPD67qoGs9zwNJuCpQnbgAgpWmg/M5+jpWaobGGtdIW6SHuvVogQM53uTaWT8b30ymi4BKds4GxIA== "@tanstack/query-sync-storage-persister@^4.0.10": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.22.4.tgz#b5719233bdc7ca6ed5a6808d6582a676ed6cecb6" - integrity sha512-U558Ev0jgzSab7H47t2ZGfqDni1O51HlHqEgowHT0Zg2CDM/NOlbKIt5W3Cq4focmVh5ghIeN+j8CHigHSH3ug== + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.22.0.tgz#114545d7957f72d71abd70790dfe8bd6177bd9ec" + integrity sha512-NtsekSPrJC+qMFncs0cqzyqFWW3rZU6EwGwgqM+u7PnjYQBiOyrD7yB8V6rJEIDVvSpakS1jPyzKDxpexrUk8g== dependencies: - "@tanstack/query-persist-client-core" "4.22.4" + "@tanstack/query-persist-client-core" "4.22.0" "@tanstack/react-query-persist-client@^4.0.10": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.23.0.tgz#9efd696279987f654c104b985eed7a5fab665d89" - integrity sha512-wYK0HQP2vS/tAf//oQwoiCmbjMBr+JcaLNex+BU+fbN3ul2uUi6v8Ek5yS9tT95MOc3zySwEDwY48fesbV7KgA== + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.22.0.tgz#29dd5542b96a0a83a58e32f2c815874cd90a729d" + integrity sha512-E9eAstffzr+PMsKcgTI6AfMMYtUjV6w3VKCa/0v9wGWdGEJYKcjNJWyYiPF0Z0ccwAaDCeOuQCFId8y0BKCK8g== dependencies: - "@tanstack/query-persist-client-core" "4.22.4" + "@tanstack/query-persist-client-core" "4.22.0" "@tanstack/react-query@^4.0.10": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.23.0.tgz#0b9e14269a48cf5a4ffe46c8525cdb9df2ebd9cf" - integrity sha512-cfQsrecZQjYYueiow4WcK8ItokXJnv+b2OrK8Lf5kF7lM9uCo1ilyygFB8wo4MfxchUBVM6Cs8wq4Ed7fouwkA== + version "4.22.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.22.0.tgz#aaa4b41a6d306be6958018c74a8a3bb3e9f1924c" + integrity sha512-P9o+HjG42uB/xHR6dMsJaPhtZydSe4v0xdG5G/cEj1oHZAXelMlm67/rYJNQGKgBamKElKogj+HYGF+NY2yHYg== dependencies: - "@tanstack/query-core" "4.22.4" + "@tanstack/query-core" "4.22.0" use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.3.tgz#778926d8194e815a0159163aa28d8b40650b7dac" - integrity sha512-DuWp8Lm2lHQeDujM6szvMmE+wx1dE7PLILgtBnfGfhJy4Hv3SJHZDCOiP/V3X3InYPoKjMxNL/TN1jQbT+AXQA== + version "1.5.2" + resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.2.tgz#0a5a9df50e0430097c58fcb9ae6e40981bd4b2e9" + integrity sha512-qITow77BqF88lUCz+9OL5eanAdCNXRN/9IeU1GwtJ2NmR7e8o9qgz1XYTTQUVmtqnqcZzf3jT0nwlqKUGRimqw== dependencies: "@ethersproject/bignumber" "^5.7.0" "@nomiclabs/hardhat-ethers" "^2.1.1" @@ -4097,18 +4077,18 @@ integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31", "@types/express-serve-static-core@^4.17.9": - version "4.17.33" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" - integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== + version "4.17.32" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82" + integrity sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14": - version "4.17.16" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.16.tgz#986caf0b4b850611254505355daa24e1b8323de8" - integrity sha512-LkKpqRZ7zqXJuvoELakaFYuETHjZkSol8EV6cNnyishutDBCCdv6+dsKPbKkCcIk57qRphOLY5sEgClw1bO3gA== + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.31" @@ -4182,9 +4162,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*", "@types/jest@^29.2.3": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.0.tgz#a8444ad1704493e84dbf07bb05990b275b3b9206" - integrity sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ== + version "29.2.6" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.6.tgz#1d43c8e533463d0437edef30b2d45d5aa3d95b0a" + integrity sha512-XEUC/Tgw3uMh6Ho8GkUtQ2lPhY5Fmgyp3TdlkTJs1W9VgNxs+Ow/x3Elh8lHQKqCbZL0AubQuqWjHVT033Hhrw== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -4503,13 +4483,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.43.0", "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz#d0b4556f0792194bf0c2fb297897efa321492389" - integrity sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q== + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz#112e6ae1e23a1dc8333ce82bb9c65c2608b4d8a3" + integrity sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg== dependencies: - "@typescript-eslint/scope-manager" "5.49.0" - "@typescript-eslint/type-utils" "5.49.0" - "@typescript-eslint/utils" "5.49.0" + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/type-utils" "5.48.2" + "@typescript-eslint/utils" "5.48.2" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -4518,78 +4498,78 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.49.0.tgz#7962b4611eb0c8be0e330d6caf4da7f8261c8203" - integrity sha512-veLpCJLYn44Fru7mSvi2doxQMzMCOFSDYdMUQhAzaH1vFYq2RVNpecZ8d18Wh6UMv07yahXkiv/aShWE48iE9Q== + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.2.tgz#04057cd6e96d225a6ed10e6881086add6c230781" + integrity sha512-Iwx8De8dwl6qPaPZWIaEfP1feN/YFlA5FlCxF3zUIm+2AG92C5Tefkugj2L9ytOFrmTYkTE/CqvJFZbYoVZQMg== dependencies: - "@typescript-eslint/utils" "5.49.0" + "@typescript-eslint/utils" "5.48.2" "@typescript-eslint/parser@^5.43.0", "@typescript-eslint/parser@^5.5.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.49.0.tgz#d699734b2f20e16351e117417d34a2bc9d7c4b90" - integrity sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg== + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3" + integrity sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw== dependencies: - "@typescript-eslint/scope-manager" "5.49.0" - "@typescript-eslint/types" "5.49.0" - "@typescript-eslint/typescript-estree" "5.49.0" + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/typescript-estree" "5.48.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.49.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz#81b5d899cdae446c26ddf18bd47a2f5484a8af3e" - integrity sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ== +"@typescript-eslint/scope-manager@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc" + integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw== dependencies: - "@typescript-eslint/types" "5.49.0" - "@typescript-eslint/visitor-keys" "5.49.0" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/visitor-keys" "5.48.2" -"@typescript-eslint/type-utils@5.49.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz#8d5dcc8d422881e2ccf4ebdc6b1d4cc61aa64125" - integrity sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA== +"@typescript-eslint/type-utils@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7" + integrity sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew== dependencies: - "@typescript-eslint/typescript-estree" "5.49.0" - "@typescript-eslint/utils" "5.49.0" + "@typescript-eslint/typescript-estree" "5.48.2" + "@typescript-eslint/utils" "5.48.2" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.49.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.49.0.tgz#ad66766cb36ca1c89fcb6ac8b87ec2e6dac435c3" - integrity sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg== +"@typescript-eslint/types@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e" + integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA== -"@typescript-eslint/typescript-estree@5.49.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz#ebd6294c0ea97891fce6af536048181e23d729c8" - integrity sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA== +"@typescript-eslint/typescript-estree@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0" + integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg== dependencies: - "@typescript-eslint/types" "5.49.0" - "@typescript-eslint/visitor-keys" "5.49.0" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/visitor-keys" "5.48.2" 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.49.0", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.42.1", "@typescript-eslint/utils@^5.43.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.49.0.tgz#1c07923bc55ff7834dfcde487fff8d8624a87b32" - integrity sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ== +"@typescript-eslint/utils@5.48.2", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3" + integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.49.0" - "@typescript-eslint/types" "5.49.0" - "@typescript-eslint/typescript-estree" "5.49.0" + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/typescript-estree" "5.48.2" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.49.0": - version "5.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz#2561c4da3f235f5c852759bf6c5faec7524f90fe" - integrity sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg== +"@typescript-eslint/visitor-keys@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060" + integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ== dependencies: - "@typescript-eslint/types" "5.49.0" + "@typescript-eslint/types" "5.48.2" eslint-visitor-keys "^3.3.0" "@vanilla-extract/css@1.9.1": @@ -4637,9 +4617,9 @@ integrity sha512-0DQzF5pdyP+xd5f1Ss2fAO+9xIvzUhngRAPazwg4XHZE9iLkv2L+A1u3L8NYi4hoUlAAZQ5GF3txlm/oBn4tNw== "@vercel/node@^2.5.26": - version "2.8.15" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.15.tgz#27880d9c20243e42b35d2dd13b225579fbc4f735" - integrity sha512-pS445kGQGi4xN2vd/95mp5E86WrVEV7VH/u7f2G0Q5jCbcw590czJv1U+FLlW5OrznuuGT0LbNRKA0TBAUrbfA== + version "2.8.14" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.14.tgz#573c1403e69ea2c7b370cdf9c47bd562e71efd52" + integrity sha512-ty4/FUgEpfQlqNm3j5HEaMhAHPJipRBzm6WVOs7Lvf5INx6OqLxbLBw3p/xcA18EWL0D8e5V41B7F8iQ3tBkqA== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" @@ -5110,10 +5090,10 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@zeit/schemas@2.29.0": - version "2.29.0" - resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.29.0.tgz#a59ae6ebfdf4ddc66a876872dd736baa58b6696c" - integrity sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA== +"@zeit/schemas@2.21.0": + version "2.21.0" + resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.21.0.tgz#cd242c6551ffb51830049d68d9743ab65b45b820" + integrity sha512-/J4WBTpWtQ4itN1rb3ao8LfClmVcmz2pO6oYb7Qd4h7VSqUhIbJIvrykz9Ew1WMg6eFWsKdsMHc5uPbFxqlCpg== "@zxing/text-encoding@0.9.0": version "0.9.0" @@ -5240,9 +5220,9 @@ acorn@^7.0.0, acorn@^7.1.1: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== address@^1.0.1, address@^1.1.2: version "1.2.2" @@ -5783,9 +5763,9 @@ avvio@^8.2.0: fastq "^1.6.1" aws-sdk@^2.1255.0: - version "2.1301.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1301.0.tgz#fbe971fca51deccecc6729f2f01fc2b0ff41ba1f" - integrity sha512-AxCt0GfWV14AWC0yvN3+WEBr45JMu2X3FHb8r3H8EhZjJfHk3hWcDwu6vS5Qd8NFDATlFdWJfyQjPVU1YuaDfw== + version "2.1298.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1298.0.tgz#cc11aaaf18c7b9b6c37bc060e0646d7abdc8f0af" + integrity sha512-UMaQe1Rohqguwl4V8e47SHrerboP5QpD7bx6mVZIoV2+AQ5xf8CyXjYXB95u5yvPyjIvpoRxiPKKOtnHL77q4A== dependencies: buffer "4.9.2" events "1.1.1" @@ -5809,9 +5789,9 @@ aws4@^1.8.0: integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axe-core@^4.6.2: - version "4.6.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" - integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== + version "4.6.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.2.tgz#6e566ab2a3d29e415f5115bc0fd2597a5eb3e5e3" + integrity sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg== axios@^0.21.0, axios@^0.21.1, axios@^0.21.2: version "0.21.4" @@ -5829,9 +5809,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.1.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.4.tgz#6555dd955d2efa9b8f4cb4cb0b3371b7b243537a" - integrity sha512-lIQuCfBJvZB/Bv7+RWUqEJqNShGOVpk9v7P0ZWx5Ip0qY6u7JBAU6dzQPMLasU9vHL2uD8av/1FDJXj7n6c39w== + version "1.2.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.3.tgz#31a3d824c0ebf754a004b585e5f04a5f87e6c4ff" + integrity sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -6038,15 +6018,15 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.3.1, babel-jest@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.0.tgz#20b18b69a321125429ff67a383b94c6bf552d1ec" - integrity sha512-M61cGPg4JBashDvIzKoIV/y95mSF6x3ome7CMEaszUTHD4uo6dtC6Nln+fvRTspYNtwy8lDHl5lmoTBSNY/a+g== +babel-jest@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" + integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== dependencies: - "@jest/transform" "^29.4.0" + "@jest/transform" "^29.3.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.4.0" + babel-preset-jest "^29.2.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -6096,10 +6076,10 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz#3fd3dfcedf645932df6d0c9fc3d9a704dd860248" - integrity sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg== +babel-plugin-jest-hoist@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" + integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -6559,12 +6539,12 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz#c2b03c548b02dea0a18ae21d5759c136f9251ee4" - integrity sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA== +babel-preset-jest@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" + integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== dependencies: - babel-plugin-jest-hoist "^29.4.0" + babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" babel-preset-react-app@^10.0.1: @@ -7321,9 +7301,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001448" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz#ca7550b1587c92a392a2b377cd9c508b3b4395bf" - integrity sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA== + version "1.0.30001446" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz#6d4ba828ab19f49f9bcd14a8430d30feebf1e0c5" + integrity sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw== carbites@^1.0.6: version "1.0.6" @@ -8342,9 +8322,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.4.1.tgz#61d55c0173126689922a219e15e131e4b5caf422" - integrity sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.3.0.tgz#b1d4580a21da34f792047ad0556fbb4b53617ead" + integrity sha512-9YymIstaCsXo9qQSxrXzOv27bXJmb/q/LkbORepKzKjHE0TS6Pn3ewoazoBDGvODUvPO0pMG2O4YzVGmVGYK5A== cssesc@^3.0.0: version "3.0.0" @@ -9842,11 +9822,11 @@ eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.10: string.prototype.matchall "^4.0.8" eslint-plugin-testing-library@^5.0.1: - version "5.10.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.0.tgz#7fc5fec639ae7f84f434562560cf26cfc0ab329d" - integrity sha512-aTOsCAEI9trrX3TLOnsskfhe57DmsjP/yMKLPqg4ftdRvfR4qut2PGWUa8TwP7whZbwMzJjh98tgAPcE8vdHow== + version "5.9.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.9.1.tgz#12e4bd34c48683ee98af4df2e3318ec9f51dcf8a" + integrity sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ== dependencies: - "@typescript-eslint/utils" "^5.43.0" + "@typescript-eslint/utils" "^5.13.0" eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" @@ -10384,16 +10364,16 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -expect@^29.0.0, expect@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.0.tgz#e2d58a73bf46399deac7db6ec16842827525ce35" - integrity sha512-pzaAwjBgLEVxBh6ZHiqb9Wv3JYuv6m8ntgtY7a48nS+2KbX0EJkPS3FQlKiTZNcqzqJHNyQsfjqN60w1hPUBfQ== +expect@^29.0.0, expect@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" + integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== dependencies: - "@jest/expect-utils" "^29.4.0" + "@jest/expect-utils" "^29.3.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.4.0" - jest-message-util "^29.4.0" - jest-util "^29.4.0" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" explain-error@^1.0.4: version "1.0.4" @@ -11338,9 +11318,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -13093,10 +13073,10 @@ jest-changed-files@^27.5.1: execa "^5.0.0" throat "^6.0.1" -jest-changed-files@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.0.tgz#ac2498bcd394228f7eddcadcf928b3583bf2779d" - integrity sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w== +jest-changed-files@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" + integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== dependencies: execa "^5.0.0" p-limit "^3.1.0" @@ -13126,28 +13106,28 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-circus@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.0.tgz#08fec87eb15632fba74e93cf069ef85559acd813" - integrity sha512-/pFBaCeLzCavRWyz14JwFgpZgPpEZdS6nPnREhczbHl2wy2UezvYcVp5akVFfUmBaA4ThAUp0I8cpgkbuNOm3g== +jest-circus@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" + integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== dependencies: - "@jest/environment" "^29.4.0" - "@jest/expect" "^29.4.0" - "@jest/test-result" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/environment" "^29.3.1" + "@jest/expect" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.4.0" - jest-matcher-utils "^29.4.0" - jest-message-util "^29.4.0" - jest-runtime "^29.4.0" - jest-snapshot "^29.4.0" - jest-util "^29.4.0" + jest-each "^29.3.1" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-runtime "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" p-limit "^3.1.0" - pretty-format "^29.4.0" + pretty-format "^29.3.1" slash "^3.0.0" stack-utils "^2.0.3" @@ -13169,21 +13149,21 @@ jest-cli@^27.5.1: prompts "^2.0.1" yargs "^16.2.0" -jest-cli@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.0.tgz#63f34fc3b6f499a69337b2e5964661d22cead9e0" - integrity sha512-YUkICcxjUd864VOzbfQEi2qd2hIIOd9bRF7LJUNyhWb3Khh3YKrbY0LWwoZZ4WkvukiNdvQu0Z4s6zLsY4hYfg== +jest-cli@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" + integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== dependencies: - "@jest/core" "^29.4.0" - "@jest/test-result" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/core" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.4.0" - jest-util "^29.4.0" - jest-validate "^29.4.0" + jest-config "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" prompts "^2.0.1" yargs "^17.3.1" @@ -13217,31 +13197,31 @@ jest-config@^27.5.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-config@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.0.tgz#08065bcfc7c2ccfd3ca9f8bb412eb366d73fd5a2" - integrity sha512-jtgd72nN4Mob4Oego3N/pLRVfR2ui1hv+yO6xR/SUi5G7NtZ/grr95BJ1qRSDYZshuA0Jw57fnttZHZKb04+CA== +jest-config@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" + integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.4.0" - "@jest/types" "^29.4.0" - babel-jest "^29.4.0" + "@jest/test-sequencer" "^29.3.1" + "@jest/types" "^29.3.1" + babel-jest "^29.3.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.4.0" - jest-environment-node "^29.4.0" + jest-circus "^29.3.1" + jest-environment-node "^29.3.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.4.0" - jest-runner "^29.4.0" - jest-util "^29.4.0" - jest-validate "^29.4.0" + jest-resolve "^29.3.1" + jest-runner "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.4.0" + pretty-format "^29.3.1" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -13255,15 +13235,15 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.0.tgz#9c75dcef5872c8889bfcb78bc9571a0e4e9bd8f6" - integrity sha512-s8KNvFx8YgdQ4fn2YLDQ7N6kmVOP68dUDVJrCHNsTc3UM5jcmyyFeYKL8EPWBQbJ0o0VvDGbWp8oYQ1nsnqnWw== +jest-diff@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" + integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== dependencies: chalk "^4.0.0" diff-sequences "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.4.0" + pretty-format "^29.3.1" jest-docblock@^27.5.1: version "27.5.1" @@ -13290,16 +13270,16 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" -jest-each@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.0.tgz#1b6f018529b26f52851123075df4fa297b5b859b" - integrity sha512-LTOvB8JDVFjrwXItyQiyLuDYy5PMApGLLzbfIYR79QLpeohS0bcS6j2HjlWuRGSM8QQQyp+ico59Blv+Jx3fMw== +jest-each@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" + integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== dependencies: - "@jest/types" "^29.4.0" + "@jest/types" "^29.3.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.4.0" - pretty-format "^29.4.0" + jest-util "^29.3.1" + pretty-format "^29.3.1" jest-environment-jsdom@^27.5.1: version "27.5.1" @@ -13315,17 +13295,17 @@ jest-environment-jsdom@^27.5.1: jsdom "^16.6.0" jest-environment-jsdom@^29.3.1: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.0.tgz#81a03ca9cf3d9cf88f6aa7e528d921c21975471c" - integrity sha512-z1tB/qtReousDnU695K38ZzoR6B3dRXazwgyhTHzMviSC2T3KmVy0T722fZxR2q3x/Jvv85JxU/2xs8kwX394w== + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639" + integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA== dependencies: - "@jest/environment" "^29.4.0" - "@jest/fake-timers" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/environment" "^29.3.1" + "@jest/fake-timers" "^29.3.1" + "@jest/types" "^29.3.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.4.0" - jest-util "^29.4.0" + jest-mock "^29.3.1" + jest-util "^29.3.1" jsdom "^20.0.0" jest-environment-node@^27.5.1: @@ -13340,17 +13320,17 @@ jest-environment-node@^27.5.1: jest-mock "^27.5.1" jest-util "^27.5.1" -jest-environment-node@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.0.tgz#b19ae4cbf71199ed077a399de1e2cb0e52dbd936" - integrity sha512-WVveE3fYSH6FhDtZdvXhFKeLsDRItlQgnij+HQv6ZKxTdT1DB5O0sHXKCEC3K5mHraMs1Kzn4ch9jXC7H4L4wA== +jest-environment-node@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" + integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== dependencies: - "@jest/environment" "^29.4.0" - "@jest/fake-timers" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/environment" "^29.3.1" + "@jest/fake-timers" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-mock "^29.4.0" - jest-util "^29.4.0" + jest-mock "^29.3.1" + jest-util "^29.3.1" jest-get-type@^27.5.1: version "27.5.1" @@ -13382,20 +13362,20 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.0.tgz#139d6bd262f3f74894f23933ee4046af7e770ab0" - integrity sha512-m/pIEfoK0HoJz4c9bkgS5F9CXN2AM22eaSmUcmqTpadRlNVBOJE2CwkgaUzbrNn5MuAqTV1IPVYwWwjHNnk8eA== +jest-haste-map@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" + integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== dependencies: - "@jest/types" "^29.4.0" + "@jest/types" "^29.3.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.4.0" - jest-worker "^29.4.0" + jest-util "^29.3.1" + jest-worker "^29.3.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -13432,13 +13412,13 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-leak-detector@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.0.tgz#5f1079556c244cf6f5f281f5c5134ea2a07ad28e" - integrity sha512-fEGHS6ijzgSv5exABkCecMHNmyHcV52+l39ZsxuwfxmQMp43KBWJn2/Fwg8/l4jTI9uOY9jv8z1dXGgL0PHFjA== +jest-leak-detector@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" + integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.4.0" + pretty-format "^29.3.1" jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: version "27.5.1" @@ -13450,15 +13430,15 @@ jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.0.tgz#c2f804f95152216c8b80afbe73d82ae0ba89f652" - integrity sha512-pU4OjBn96rDdRIaPUImbPiO2ETyRVzkA1EZVu9AxBDv/XPDJ7JWfkb6IiDT5jwgicaPHMrB/fhVa6qjG6potfA== +jest-matcher-utils@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" + integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== dependencies: chalk "^4.0.0" - jest-diff "^29.4.0" + jest-diff "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.4.0" + pretty-format "^29.3.1" jest-message-util@^27.5.1: version "27.5.1" @@ -13490,18 +13470,18 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.0.tgz#60d3f3dd6b5ef08ec9b698f434fbbafdb0af761d" - integrity sha512-0FvobqymmhE9pDEifvIcni9GeoKLol8eZspzH5u41g1wxYtLS60a9joT95dzzoCgrKRidNz64eaAXyzaULV8og== +jest-message-util@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" + integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.4.0" + "@jest/types" "^29.3.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.4.0" + pretty-format "^29.3.1" slash "^3.0.0" stack-utils "^2.0.3" @@ -13513,14 +13493,14 @@ jest-mock@^27.5.1: "@jest/types" "^27.5.1" "@types/node" "*" -jest-mock@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.0.tgz#efb5d99da5e4548ea02d505c89aafdd06d899cb8" - integrity sha512-+ShT5i+hcu/OFQRV0f/V/YtwpdFcHg64JZ9A8b40JueP+X9HNrZAYGdkupGIzsUK8AucecxCt4wKauMchxubLQ== +jest-mock@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" + integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== dependencies: - "@jest/types" "^29.4.0" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-util "^29.4.0" + jest-util "^29.3.1" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -13551,13 +13531,13 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve-dependencies@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.0.tgz#d8c9dce9ad8b193375b4993c4a659adf2d379b84" - integrity sha512-hxfC84trREyULSj1Cm+fMjnudrrI2dVQ04COjZRcjCZ97boJlPtfJ+qrl/pN7YXS2fnu3wTHEc3LO094pngL6A== +jest-resolve-dependencies@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" + integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.4.0" + jest-snapshot "^29.3.1" jest-resolve@^27.4.2, jest-resolve@^27.5.1: version "27.5.1" @@ -13575,19 +13555,19 @@ jest-resolve@^27.4.2, jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-resolve@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.0.tgz#dbf00b2fb992d37e4954feb7ee6b5391ca8fc6a9" - integrity sha512-g7k7l53T+uC9Dp1mbHyDNkcCt0PMku6Wcfpr1kcMLwOHmM3vucKjSM5+DSa1r4vlDZojh8XH039J3z4FKmtTSw== +jest-resolve@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" + integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.0" + jest-haste-map "^29.3.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.4.0" - jest-validate "^29.4.0" + jest-util "^29.3.1" + jest-validate "^29.3.1" resolve "^1.20.0" - resolve.exports "^2.0.0" + resolve.exports "^1.1.0" slash "^3.0.0" jest-runner@^27.5.1: @@ -13617,30 +13597,30 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" -jest-runner@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.0.tgz#9f83f20e9e88d2c5e9b7db1526cef901c1c0fe98" - integrity sha512-4zpcv0NOiJleqT0NAs8YcVbK8MhVRc58CBBn9b0Exc8VPU9GKI+DbzDUZqJYdkJhJSZFy2862l/F6hAqIow1hg== - dependencies: - "@jest/console" "^29.4.0" - "@jest/environment" "^29.4.0" - "@jest/test-result" "^29.4.0" - "@jest/transform" "^29.4.0" - "@jest/types" "^29.4.0" +jest-runner@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" + integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== + dependencies: + "@jest/console" "^29.3.1" + "@jest/environment" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.4.0" - jest-haste-map "^29.4.0" - jest-leak-detector "^29.4.0" - jest-message-util "^29.4.0" - jest-resolve "^29.4.0" - jest-runtime "^29.4.0" - jest-util "^29.4.0" - jest-watcher "^29.4.0" - jest-worker "^29.4.0" + jest-environment-node "^29.3.1" + jest-haste-map "^29.3.1" + jest-leak-detector "^29.3.1" + jest-message-util "^29.3.1" + jest-resolve "^29.3.1" + jest-runtime "^29.3.1" + jest-util "^29.3.1" + jest-watcher "^29.3.1" + jest-worker "^29.3.1" p-limit "^3.1.0" source-map-support "0.5.13" @@ -13672,32 +13652,31 @@ jest-runtime@^27.5.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-runtime@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.0.tgz#d4f3300e65888ea8e045bc13c5a96edd01cf9f49" - integrity sha512-2zumwaGXsIuSF92Ui5Pn5hZV9r7AHMclfBLikrXSq87/lHea9anQ+mC+Cjz/DYTbf/JMjlK1sjZRh8K3yYNvWg== +jest-runtime@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" + integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== dependencies: - "@jest/environment" "^29.4.0" - "@jest/fake-timers" "^29.4.0" - "@jest/globals" "^29.4.0" + "@jest/environment" "^29.3.1" + "@jest/fake-timers" "^29.3.1" + "@jest/globals" "^29.3.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.4.0" - "@jest/transform" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.4.0" - jest-message-util "^29.4.0" - jest-mock "^29.4.0" + jest-haste-map "^29.3.1" + jest-message-util "^29.3.1" + jest-mock "^29.3.1" jest-regex-util "^29.2.0" - jest-resolve "^29.4.0" - jest-snapshot "^29.4.0" - jest-util "^29.4.0" - semver "^7.3.5" + jest-resolve "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" slash "^3.0.0" strip-bom "^4.0.0" @@ -13737,10 +13716,10 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" -jest-snapshot@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.0.tgz#c839f6b84d50b917691ddf6a3cef9f0852b3d0e7" - integrity sha512-UnK3MhdEWrQ2J6MnlKe51tvN5FjRUBQnO4m1LPlDx61or3w9+cP/U0x9eicutgunu/QzE4WC82jj6CiGIAFYzw== +jest-snapshot@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" + integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -13748,23 +13727,23 @@ jest-snapshot@^29.4.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.4.0" - "@jest/transform" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/expect-utils" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.4.0" + expect "^29.3.1" graceful-fs "^4.2.9" - jest-diff "^29.4.0" + jest-diff "^29.3.1" jest-get-type "^29.2.0" - jest-haste-map "^29.4.0" - jest-matcher-utils "^29.4.0" - jest-message-util "^29.4.0" - jest-util "^29.4.0" + jest-haste-map "^29.3.1" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" natural-compare "^1.4.0" - pretty-format "^29.4.0" + pretty-format "^29.3.1" semver "^7.3.5" jest-util@^27.5.1: @@ -13791,12 +13770,12 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.0.0, jest-util@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.0.tgz#1f3743c3dda843049623501c7e6f8fa5efdc2c2f" - integrity sha512-lCCwlze7UEV8TpR9ArS8w0cTbcMry5tlBkg7QSc5og5kNyV59dnY2aKHu5fY2k5aDJMQpCUGpvL2w6ZU44lveA== +jest-util@^29.0.0, jest-util@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" + integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== dependencies: - "@jest/types" "^29.4.0" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -13815,17 +13794,17 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-validate@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.0.tgz#5090be16531051edc21bc0892553f7f7fab99bf0" - integrity sha512-EXS7u594nX3aAPBnARxBdJ1eZ1cByV6MWrK0Qpt9lt/BcY0p0yYGp/EGJ8GhdLDQh+RFf8qMt2wzbbVzpj5+Vg== +jest-validate@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" + integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== dependencies: - "@jest/types" "^29.4.0" + "@jest/types" "^29.3.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.4.0" + pretty-format "^29.3.1" jest-watch-typeahead@^1.0.0: version "1.1.0" @@ -13867,18 +13846,18 @@ jest-watcher@^28.0.0: jest-util "^28.1.3" string-length "^4.0.1" -jest-watcher@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.0.tgz#4f51e6fba4341d965279a5a646adde5104d414f0" - integrity sha512-PnnfLygNKelWOJwpAYlcsQjB+OxRRdckD0qiGmYng4Hkz1ZwK3jvCaJJYiywz2msQn4rBNLdriasJtv7YpWHpA== +jest-watcher@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" + integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== dependencies: - "@jest/test-result" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.4.0" + jest-util "^29.3.1" string-length "^4.0.1" jest-worker@^26.2.1: @@ -13908,13 +13887,13 @@ jest-worker@^28.0.2: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.0.tgz#fbf6d700c3366c555765938da75990c1e7fdcdcd" - integrity sha512-dICMQ+Q4W0QVMsaQzWlA1FVQhKNz7QcDCOGtbk1GCAd0Lai+wdkQvfmQwL4MjGumineh1xz+6M5oMj3rfWS02A== +jest-worker@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" + integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== dependencies: "@types/node" "*" - jest-util "^29.4.0" + jest-util "^29.3.1" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -13928,14 +13907,14 @@ jest@^27.4.3: jest-cli "^27.5.1" jest@^29.2.2, jest@^29.3.1: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.0.tgz#c476b3d0c58af77f276f53f81d4d97e16105ae37" - integrity sha512-Zfd4UzNxPkSoHRBkg225rBjQNa6pVqbh20MGniAzwaOzYLd+pQUcAwH+WPxSXxKFs+QWYfPYIq9hIVSmdVQmPA== + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" + integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== dependencies: - "@jest/core" "^29.4.0" - "@jest/types" "^29.4.0" + "@jest/core" "^29.3.1" + "@jest/types" "^29.3.1" import-local "^3.0.2" - jest-cli "^29.4.0" + jest-cli "^29.3.1" jmespath@0.16.0: version "0.16.0" @@ -14713,7 +14692,7 @@ lodash.upperfirst@^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.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.16, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -17183,12 +17162,12 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.0.tgz#766f071bb1c53f1ef8000c105bbeb649e86eb993" - integrity sha512-J+EVUPXIBHCdWAbvGBwXs0mk3ljGppoh/076g1S8qYS8nVG4u/yrhMvyTFHYYYKWnDdgRLExx0vA7pzxVGdlNw== +pretty-format@^29.0.0, pretty-format@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" + integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== dependencies: - "@jest/schemas" "^29.4.0" + "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -18341,11 +18320,6 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve.exports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" - integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== - resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -18849,11 +18823,11 @@ serve-static@1.15.0: send "0.18.0" serve@^14.1.1: - version "14.2.0" - resolved "https://registry.yarnpkg.com/serve/-/serve-14.2.0.tgz#3d768e88fa13ad8644f2393599189707176e66b8" - integrity sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg== + version "14.1.2" + resolved "https://registry.yarnpkg.com/serve/-/serve-14.1.2.tgz#65d7a3cec5a0b876c46bb8927fabc27957c2e1e0" + integrity sha512-luwVfJwbeE7dhCKeRU0vIBpt4bXdbAfzwsWJIQ5eqrIW2e+4nLWXbSlZ0WzelSFHQq+FlueOW6dr90jEewS9zw== dependencies: - "@zeit/schemas" "2.29.0" + "@zeit/schemas" "2.21.0" ajv "8.11.0" arg "5.0.2" boxen "7.0.0" @@ -19083,9 +19057,9 @@ solc@0.7.3: tmp "0.0.33" solidity-ast@^0.4.15: - version "0.4.43" - resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.43.tgz#f2e14344bd4a1a327ece12d6af99455971e921e1" - integrity sha512-rKfMl9Wm0hHL9bezSx+Ct7wimme0eogm+Follr3dm9VhbDgLgNGR9zxhESi0v7sqt3ZFjGObN3cWOYOQERJZtA== + version "0.4.40" + resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.40.tgz#182709271b4e55efb34e2da934dfaa96ee0cf40b" + integrity sha512-M8uLBT2jgFB7B0iVAC5a2l71J8vim7aEm03AZkaHbDqyrl1pE+i5PriMEw6WlwGfHp3/Ym7cn9BqvVLQgRk+Yw== solidity-comments-extractor@^0.0.7: version "0.0.7" @@ -20257,11 +20231,10 @@ tryer@^1.0.1: integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== ts-command-line-args@^2.2.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz#b4815b23c35f8a0159d4e69e01012d95690bc448" - integrity sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ== + version "2.3.1" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.3.1.tgz#b6188e42efc6cf7a8898e438a873fbb15505ddd6" + integrity sha512-FR3y7pLl/fuUNSmnPhfLArGqRrpojQgIEEOVzYx9DhTmfIN7C9RWSfpkJEF4J+Gk7aVx5pak8I7vWZsaN4N84g== dependencies: - "@morgan-stanley/ts-mocking-bird" "^0.6.2" chalk "^4.1.0" command-line-args "^5.1.1" command-line-usage "^6.1.0" @@ -20544,9 +20517,9 @@ unbox-primitive@^1.0.2: which-boxed-primitive "^1.0.2" undici@^5.12.0, undici@^5.14.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.16.0.tgz#6b64f9b890de85489ac6332bd45ca67e4f7d9943" - integrity sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ== + version "5.15.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.15.1.tgz#5292454b1441da486a80c0f3ada1e88f1765ff8d" + integrity sha512-XLk8g0WAngdvFqTI+VKfBtM4YWXgdxkf1WezC771Es0Dd+Pm1KmNx8t93WTC+Hh9tnghmVxkclU1HN+j+CvIUA== dependencies: busboy "^1.6.0" @@ -20769,11 +20742,6 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" - integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== - uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -21830,9 +21798,9 @@ wrap-ansi@^7.0.0: strip-ansi "^6.0.0" wrap-ansi@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + version "8.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3" + integrity sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g== dependencies: ansi-styles "^6.1.0" string-width "^5.0.1" @@ -21853,10 +21821,10 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.0.tgz#54303f117e109bf3d540261125c8ea5a7320fab0" - integrity sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w== +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" From 93f8ae6a18665ee628180f1766581a635952f747 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 15:02:19 +0100 Subject: [PATCH 089/216] test fortune ci --- packages/examples/fortune/launcher/server/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 55a359ecbe..67c170fdf4 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 10s && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 15s && vitest --run\"" } } From af1740a381292431c5f52cacee3b88e5c7494de1 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 15:17:54 +0100 Subject: [PATCH 090/216] remove hide logs --- packages/core/package.json | 2 +- packages/examples/fortune/launcher/server/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 6ed263743b..5ced1e95c1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,7 +16,7 @@ "test": "hardhat test", "test:coverage": "hardhat coverage", "local": "concurrently --hide 0 \"hardhat node\" \"yarn deploy:local\"", - "local:port": "concurrently --hide 0 \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", + "local:port": "concurrently \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", "deploy": "hardhat run scripts/deploy.ts", "deploy:local": "yarn deploy --network localhost", "lint": "eslint .", diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 67c170fdf4..ebf180a8c0 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 15s && vitest --run\"" + "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 15s && vitest --run\"" } } From c7f8cf43b1859a1e9b73f32d8aef31ee77adac85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 25 Jan 2023 15:23:11 +0100 Subject: [PATCH 091/216] Adjust new recording format --- .../fortune/reputation-oracle/src/index.ts | 128 ++++++++++-------- .../reputation-oracle/src/services/rewards.ts | 19 ++- 2 files changed, 82 insertions(+), 65 deletions(-) diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 93ccb4f1fe..f5b409295c 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -24,73 +24,93 @@ const port = process.env.PORT || 3006; app.use(bodyParser.json()); -app.post('/job/results', async (req, res) => { +app.post('/send-fortunes', async (req, res) => { try { - const { fortunes, escrowAddress, chainId } = req.body; + const errorMessage: string[] = []; + Object.keys(req.body).forEach((escrowAddress) => { + const { fortunes, chainId } = req.body[escrowAddress]; + if (!Array.isArray(fortunes) || fortunes.length === 0) { + errorMessage.push( + `Fortunes of ${escrowAddress} are not specified or empty` + ); + } - const web3 = new Web3( - networks[chainId as keyof NetworkSettings].httpServer - ); - const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); - web3.eth.accounts.wallet.add(account); - web3.eth.defaultAccount = account.address; + if (!Web3.utils.isAddress(escrowAddress)) { + errorMessage.push( + `Escrow address ${escrowAddress} is empty or invalid` + ); + } - if (!Array.isArray(fortunes) || fortunes.length === 0) { - return res - .status(400) - .send({ message: 'Fortunes are not specified or empty' }); - } + if (!networks[chainId as keyof NetworkSettings]) { + errorMessage.push(`ChainId ${chainId} is empty or invalid`); + } + }); - if (!web3.utils.isAddress(escrowAddress)) { - return res - .status(400) - .send({ message: 'Escrow address is empty or invalid' }); + if (errorMessage.length > 0) { + return res.status(400).send({ + message: JSON.stringify(errorMessage), + }); } - const manifestUrl = await getEscrowManifestUrl(web3, escrowAddress); - const { recording_oracle_address: recordingOracleAddress } = - await getManifest(manifestUrl); + for (const escrowAddress of Object.keys(req.body)) { + const { fortunes, chainId } = req.body[escrowAddress]; + const web3 = new Web3( + networks[chainId as keyof NetworkSettings].httpServer + ); + const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); + web3.eth.accounts.wallet.add(account); + web3.eth.defaultAccount = account.address; + + const manifestUrl = await getEscrowManifestUrl(web3, escrowAddress); + const { recording_oracle_address: recordingOracleAddress } = + await getManifest(manifestUrl); - const balance = await getBalance(web3, escrowAddress); + const balance = await getBalance(web3, escrowAddress); - const { workerAddresses, reputationValues } = filterAddressesToReward( - web3, - fortunes, - recordingOracleAddress - ); + const { workerAddresses, reputationValues } = filterAddressesToReward( + web3, + fortunes, + recordingOracleAddress + ); - await updateReputations( - web3, - networks[chainId as keyof NetworkSettings].reputation, - reputationValues - ); - const rewards = await calculateRewardForWorker( - web3, - networks[chainId as keyof NetworkSettings].reputation, - balance.toString(), - workerAddresses - ); + await updateReputations( + web3, + networks[chainId as keyof NetworkSettings].reputation, + reputationValues + ); + const rewards = await calculateRewardForWorker( + web3, + networks[chainId as keyof NetworkSettings].reputation, + balance.toString(), + workerAddresses + ); - // TODO calculate the URL hash(?) - const resultsUrl = await uploadResults( - fortunes.map(({ fortune }) => fortune), - escrowAddress - ); - const resultHash = resultsUrl; - await bulkPayOut( - web3, - escrowAddress, - workerAddresses, - rewards, - resultsUrl, - resultHash - ); + // TODO calculate the URL hash(?) + const resultsUrl = await uploadResults( + Object.keys(fortunes), + escrowAddress + ); + const resultHash = resultsUrl; + await bulkPayOut( + web3, + escrowAddress, + workerAddresses, + rewards, + resultsUrl, + resultHash + ); - if (!(await bulkPaid(web3, escrowAddress))) { - return res.status(400).send({ message: "Payout couldn't be done" }); + if (!(await bulkPaid(web3, escrowAddress))) { + errorMessage.push(`Escrow ${escrowAddress} payout couldn't be done`); + } + } + if (errorMessage.length > 0) { + return res.status(400).send({ + message: JSON.stringify(errorMessage), + }); } - return res.status(200).send({ message: 'Escrow has been completed' }); + return res.status(200).send({ message: 'Escrows have been completed' }); } catch (err) { return res.status(500).send({ message: err }); } diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index 33312bf945..bcd0e90f06 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -2,7 +2,6 @@ import Web3 from 'web3'; import { BAD_WORDS } from '../constants/badWords'; export interface FortuneEntry { - worker: string; fortune: string; score: boolean; } @@ -14,18 +13,18 @@ export interface ReputationEntry { export function filterAddressesToReward( web3: Web3, - addressFortunesEntries: FortuneEntry[], + fortunesEntries: { [key: string]: FortuneEntry }, recordingOracleAddress: string ) { - const filteredResults: FortuneEntry[] = []; + const filteredWorkers: string[] = []; const reputationValues: ReputationEntry[] = []; const tmpHashMap: Record = {}; let errorRecordingOracle = false; - addressFortunesEntries.forEach((fortuneEntry) => { - const { worker, fortune, score } = fortuneEntry; + Object.keys(fortunesEntries).forEach((workerAddress) => { + const { fortune, score } = fortunesEntries[workerAddress]; if (tmpHashMap[fortune] || checkBadWords(fortune)) { - reputationValues.push({ workerAddress: worker, reputation: -1 }); + reputationValues.push({ workerAddress, reputation: -1 }); if (!score) { errorRecordingOracle = true; } @@ -35,12 +34,10 @@ export function filterAddressesToReward( } tmpHashMap[fortune] = true; - filteredResults.push(fortuneEntry); - reputationValues.push({ workerAddress: worker, reputation: 1 }); + filteredWorkers.push(workerAddress); + reputationValues.push({ workerAddress, reputation: 1 }); }); - const workerAddresses = filteredResults - .map((fortune: { worker: string }) => fortune.worker) - .map(web3.utils.toChecksumAddress); + const workerAddresses = filteredWorkers.map(web3.utils.toChecksumAddress); if (errorRecordingOracle) { reputationValues.push({ workerAddress: recordingOracleAddress, From 15922931c08ea4dd1d3c4c178fbc7a761eac5ed0 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 15:26:35 +0100 Subject: [PATCH 092/216] test fortune ci --- packages/core/package.json | 2 +- packages/examples/fortune/launcher/server/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 5ced1e95c1..6ed263743b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,7 +16,7 @@ "test": "hardhat test", "test:coverage": "hardhat coverage", "local": "concurrently --hide 0 \"hardhat node\" \"yarn deploy:local\"", - "local:port": "concurrently \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", + "local:port": "concurrently --hide 0 \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", "deploy": "hardhat run scripts/deploy.ts", "deploy:local": "yarn deploy --network localhost", "lint": "eslint .", diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index ebf180a8c0..f232e04f0b 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 15s && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 30s && vitest --run\"" } } From 2ab980f50059c6bd8677b5f4598f2249db381d6f Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 16:06:47 +0100 Subject: [PATCH 093/216] test fortune ci --- packages/core/package.json | 2 +- packages/examples/fortune/launcher/server/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 6ed263743b..5ced1e95c1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,7 +16,7 @@ "test": "hardhat test", "test:coverage": "hardhat coverage", "local": "concurrently --hide 0 \"hardhat node\" \"yarn deploy:local\"", - "local:port": "concurrently --hide 0 \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", + "local:port": "concurrently \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", "deploy": "hardhat run scripts/deploy.ts", "deploy:local": "yarn deploy --network localhost", "lint": "eslint .", diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index f232e04f0b..83e5e1e603 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 30s && vitest --run\"" + "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 30s && vitest --run\"" } } From 31daf7a74b9d3bfa69bd8192cee4bc87ae9318ff Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 16:57:10 +0100 Subject: [PATCH 094/216] fix fortune ci --- packages/core/package.json | 2 +- .../examples/fortune/launcher/server/package.json | 2 +- .../launcher/server/src/constants/networks.ts | 2 +- .../launcher/server/tests/plugins/escrow.test.ts | 10 ++-------- .../launcher/server/tests/plugins/web3.test.ts | 12 +++--------- .../launcher/server/tests/routes/escrow.test.ts | 4 ++-- 6 files changed, 10 insertions(+), 22 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 5ced1e95c1..6ed263743b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,7 +16,7 @@ "test": "hardhat test", "test:coverage": "hardhat coverage", "local": "concurrently --hide 0 \"hardhat node\" \"yarn deploy:local\"", - "local:port": "concurrently \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", + "local:port": "concurrently --hide 0 \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", "deploy": "hardhat run scripts/deploy.ts", "deploy:local": "yarn deploy --network localhost", "lint": "eslint .", diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 83e5e1e603..55a359ecbe 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 30s && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 10s && vitest --run\"" } } diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 3f55aa4f3b..7844b722f7 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -70,7 +70,7 @@ export const ESCROW_NETWORKS: { [ChainId.LOCALHOST]: { chainId: ChainId.LOCALHOST, title: 'Localhost', - rpcUrl: 'http://localhost:8546', + rpcUrl: 'http://127.0.0.1:8546', factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', } diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts index 518e161973..e042e250ef 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -1,5 +1,5 @@ import { describe, test, expect, beforeAll } from 'vitest'; -import { ChainId, IEscrowNetwork } from "../../src/constants/networks.js"; +import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from "../../src/constants/networks.js"; import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; import server from '../../src/server.js' @@ -10,13 +10,7 @@ const jobRequester = '0xdD2FD4581271e230360230F9337D5c0430Bf44C0'; describe('Escrow tests', () => { const { escrow, web3 } = server; - const network: IEscrowNetwork = { - chainId: ChainId.LOCALHOST, - factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', - hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', - rpcUrl: 'http://localhost:8546', - title: 'Localhost' - }; + const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; const web3Client = web3.createWeb3(network); const web3JobRequester = web3.createWeb3(network, jobRequesterPrivKey); diff --git a/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts index 004a593b14..b3bc58ba06 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts @@ -1,5 +1,5 @@ -import { describe, test, expect, beforeAll } from 'vitest'; -import { ChainId, IEscrowNetwork } from "../../src/constants/networks.js"; +import { describe, test, expect } from 'vitest'; +import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from "../../src/constants/networks.js"; import server from '../../src/server.js' const privKey = 'df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e'; @@ -7,13 +7,7 @@ const address = '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199'; describe('Web3 tests', () => { const { web3 } = server; - const network: IEscrowNetwork = { - chainId: ChainId.LOCALHOST, - factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', - hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', - rpcUrl: 'http://localhost:8546', - title: 'Localhost' - }; + const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; test('Should initialize web3 client', async () => { const web3Client = web3.createWeb3(network, privKey); expect(web3Client.eth.defaultAccount).eq(address); diff --git a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts index 072477d960..c1238cc3bc 100644 --- a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts @@ -7,7 +7,7 @@ const jobRequesterPrivKey = '689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b0616 const jobRequester = '0xbDA5747bFD65F08deb54cb465eB87D40e51B197E'; describe('Escrow route tests', () => { - const { escrow, web3, s3 } = server; + const { web3, s3 } = server; const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; const web3Client = web3.createWeb3(network); @@ -74,7 +74,7 @@ describe('Escrow route tests', () => { jobRequester: jobRequester } }); - + expect(response.statusCode).eq(200); expect(response.body).contains('0x'); }); From cf8a88b975922e7250e0642fef14c761024a9207 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 17:11:31 +0100 Subject: [PATCH 095/216] test fortune ci --- packages/core/package.json | 2 +- packages/examples/fortune/launcher/server/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 6ed263743b..5ced1e95c1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,7 +16,7 @@ "test": "hardhat test", "test:coverage": "hardhat coverage", "local": "concurrently --hide 0 \"hardhat node\" \"yarn deploy:local\"", - "local:port": "concurrently --hide 0 \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", + "local:port": "concurrently \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", "deploy": "hardhat run scripts/deploy.ts", "deploy:local": "yarn deploy --network localhost", "lint": "eslint .", diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 55a359ecbe..07adff9b2a 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 10s && vitest --run\"" + "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 15 && vitest --run\"" } } From d64e950e7a2e09a33290029ff4ac79fda7cfc95a Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 17:36:02 +0100 Subject: [PATCH 096/216] fortune ci test --- packages/examples/fortune/launcher/server/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 07adff9b2a..e896f96574 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 15 && vitest --run\"" + "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 60 && vitest --run\"" } } From e89b7e9a464f67f1b87f5ba49c6210e2688210d5 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 18:39:46 +0100 Subject: [PATCH 097/216] fortune ci test --- packages/examples/fortune/launcher/server/package.json | 2 +- packages/examples/fortune/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index e896f96574..a99931342a 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 60 && vitest --run\"" + "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 10 && vitest --run\"" } } diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index 5e16386a47..05d976b41f 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -20,7 +20,7 @@ "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", "test:unit": "concurrently -g \"yarn test:launcher-server\" \"yarn test:recording\" \"sleep 3 && yarn test:reputation\" \"yarn test:exchange\"", - "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", + "test": "yarn test:launcher-server", "lint": "eslint .", "lint:fix": "eslint . --fix" }, From 250880739f1c72d3f7f93dde3d08eac9e1e1c7e8 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 25 Jan 2023 19:36:39 +0100 Subject: [PATCH 098/216] fix fortune ci --- .github/workflows/ci-test-fortune.yaml | 3 --- packages/core/package.json | 1 - packages/examples/fortune/launcher/server/package.json | 2 +- packages/examples/fortune/package.json | 3 +-- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-test-fortune.yaml b/.github/workflows/ci-test-fortune.yaml index d2009e2dda..6c2e374092 100644 --- a/.github/workflows/ci-test-fortune.yaml +++ b/.github/workflows/ci-test-fortune.yaml @@ -18,8 +18,5 @@ jobs: node-version: 18 - run: npm install --global yarn && yarn --ignore-scripts name: npm Install dependencies - - run: yarn && yarn install:all - working-directory: ./packages/examples/fortune - name: npm Install Fortune dependencies - run: yarn fortune:test name: Run fortune test diff --git a/packages/core/package.json b/packages/core/package.json index 5ced1e95c1..5bb1658b61 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,7 +16,6 @@ "test": "hardhat test", "test:coverage": "hardhat coverage", "local": "concurrently --hide 0 \"hardhat node\" \"yarn deploy:local\"", - "local:port": "concurrently \"hardhat node --port $RPC_PORT\" \"yarn deploy:local\"", "deploy": "hardhat run scripts/deploy.ts", "deploy:local": "yarn deploy --network localhost", "lint": "eslint .", diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index a99931342a..ecc8649026 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first \"cross-env RPC_PORT=8546 yarn workspace @human-protocol/core local:port\" \"sleep 10 && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" } } diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index 05d976b41f..40d5ff9aae 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -5,7 +5,6 @@ "description": "Human Protocol Fortune Exchange Oracle", "license": "MIT", "scripts": { - "install:all": "cd exchange && yarn && cd ../launcher && yarn && cd ../recording-oracle && yarn && cd ../reputation-oracle && yarn", "exchange": "cd exchange && yarn && yarn start", "launcher": "cd launcher && yarn && yarn start", "recording-oracle": "cd recording-oracle && yarn start", @@ -20,7 +19,7 @@ "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", "test:unit": "concurrently -g \"yarn test:launcher-server\" \"yarn test:recording\" \"sleep 3 && yarn test:reputation\" \"yarn test:exchange\"", - "test": "yarn test:launcher-server", + "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", "lint": "eslint .", "lint:fix": "eslint . --fix" }, From 3453a332bd39ce99797b71e9df71bfdbdfeb87bf Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 26 Jan 2023 09:28:57 +0100 Subject: [PATCH 099/216] fortune ci test --- packages/examples/fortune/launcher/server/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index ecc8649026..5bad9dcff2 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + "test": "concurrently -k -s first \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" } } From 5ea3a0c3d379fa09aa44442cc00e71f2b82d1913 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 26 Jan 2023 10:00:46 +0100 Subject: [PATCH 100/216] update core version --- packages/core/package.json | 2 +- .../fortune/launcher/server/tests/plugins/escrow.test.ts | 2 +- yarn.lock | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 5bb1658b61..66c358434b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@human-protocol/core", "description": "Human Protocol Core Smart Contracts", - "version": "1.0.38", + "version": "1.0.39", "files": [ "contracts/**/*.sol", "abis/**/*.json", diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts index e042e250ef..4eb06b0c9a 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -49,7 +49,7 @@ describe('Escrow tests', () => { const url = 'http://test.com'; await escrow.setupEscrow(web3Client, escrowAddress, url, 3); expect(await escrowContract.methods.manifestUrl().call()).eq(url); - expect(Number(await escrowContract.methods.remainingFortunes().call())).eq(3); + expect(Number(await escrowContract.methods.remainingSolutions().call())).eq(3); }); test('Should not detect curse words', async () => { diff --git a/yarn.lock b/yarn.lock index ef0e4f0ae8..0552e63216 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2186,9 +2186,9 @@ integrity sha512-oANinraKrMEwLwQU3lrE52K7aFKY2BL/6rbWImQDIIcSYGcSGPGayfV4lBHCdboKWvmXMamXSXY1IsHE+GEELw== "@human-protocol/core@workspace:*": - version "1.0.38" - resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.38.tgz#eeb8eb35145a923e84bee7bf6d7f83f9bf53307f" - integrity sha512-2pdk6KboKo030307DCpXhuGNJvayJSuKEdy4WoOQjnL2As22DTpLnMspN7/XQR3FAQqBwrBTWqOiSZ8Sd+TExA== + version "1.0.39" + resolved "https://registry.yarnpkg.com/@human-protocol/core/-/core-1.0.39.tgz#d0aa0addcd6f7042bb026f6b58bc2f828875f3b8" + integrity sha512-3fidYS0kzXN1OF3RstNYEhP8a7T0or4OTBWltWHJpfyMzFqaAV+VmPnB3+S/FzqQ30ALjVnq9eewrB0l8Or03g== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" From f64b3cc0f7d3021829a98eba030055a9e496d056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 26 Jan 2023 10:19:14 +0100 Subject: [PATCH 101/216] Fix reputation oracle unit tests --- .../src/services/rewards.test.ts | 98 +++++++++++++++++-- .../reputation-oracle/src/services/rewards.ts | 4 +- yarn.lock | 4 +- 3 files changed, 92 insertions(+), 14 deletions(-) diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts index c6b1c73d71..d52f7e71ae 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.test.ts @@ -4,26 +4,104 @@ const { filterAddressesToReward } = require('./rewards'); const worker1 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; const worker2 = '0xcd3B766CCDd6AE721141F452C550Ca635964ce71'; const worker3 = '0x146D35a6485DbAFF357fB48B3BbA31fCF9E9c787'; +const recOracle = '0x634316ea0ee79c701c6f67c53a4c54cbafd2316d'; +const fortunes = {}; describe('Rewards', () => { it('Filter duplicated fortune', async () => { - const result = filterAddressesToReward(new Web3(), [ - { worker: worker1, fortune: 'fortune' }, - { worker: worker2, fortune: 'fortune' }, - { worker: worker3, fortune: 'fortune1' }, - ]); + fortunes[worker1] = { + score: true, + fortune: 'fortune', + }; + fortunes[worker2] = { + score: false, + fortune: 'fortune', + }; + fortunes[worker3] = { + score: true, + fortune: 'fortune1', + }; + const result = filterAddressesToReward(new Web3(), fortunes, recOracle); expect(result.workerAddresses).toStrictEqual([worker1, worker3]); }); it('Check fortune bad words', async () => { - const result = filterAddressesToReward(new Web3(), [ - { worker: worker1, fortune: 'damn' }, - { worker: worker2, fortune: 'fortune' }, - { worker: worker3, fortune: 'shit should be blocked' }, - ]); + fortunes[worker1] = { + score: false, + fortune: 'damn', + }; + fortunes[worker2] = { + score: true, + fortune: 'fortune', + }; + fortunes[worker3] = { + score: false, + fortune: 'shit should be blocked', + }; + const result = filterAddressesToReward(new Web3(), fortunes, recOracle); expect(result.workerAddresses).toStrictEqual([worker2]); expect(result.reputationValues[0].reputation).toStrictEqual(-1); + expect(result.reputationValues[1].reputation).toStrictEqual(1); expect(result.reputationValues[2].reputation).toStrictEqual(-1); + expect(result.reputationValues[3].workerAddress).toStrictEqual(recOracle); + expect(result.reputationValues[3].reputation).toStrictEqual(1); + }); + + it('Check recording oracle reputation', async () => { + fortunes[worker1] = { + score: true, + fortune: 'fortune', + }; + fortunes[worker2] = { + score: false, + fortune: 'fortune', + }; + fortunes[worker3] = { + score: false, + fortune: 'shit should be blocked', + }; + let result = filterAddressesToReward(new Web3(), fortunes, recOracle); + expect(result.reputationValues[0].reputation).toStrictEqual(1); + expect(result.reputationValues[1].reputation).toStrictEqual(-1); + expect(result.reputationValues[2].reputation).toStrictEqual(-1); + expect(result.reputationValues[3].workerAddress).toStrictEqual(recOracle); + expect(result.reputationValues[3].reputation).toStrictEqual(1); + + fortunes[worker1] = { + score: true, + fortune: 'fortune', + }; + fortunes[worker2] = { + score: false, + fortune: 'fortune', + }; + fortunes[worker3] = { + score: true, + fortune: 'shit should be blocked', + }; + result = filterAddressesToReward(new Web3(), fortunes, recOracle); + expect(result.reputationValues[0].reputation).toStrictEqual(1); + expect(result.reputationValues[1].reputation).toStrictEqual(-1); + expect(result.reputationValues[2].reputation).toStrictEqual(-1); + expect(result.reputationValues[3].reputation).toStrictEqual(-1); + + fortunes[worker1] = { + score: false, + fortune: 'fortune', + }; + fortunes[worker2] = { + score: false, + fortune: 'fortune', + }; + fortunes[worker3] = { + score: false, + fortune: 'shit should be blocked', + }; + result = filterAddressesToReward(new Web3(), fortunes, recOracle); + expect(result.reputationValues[0].reputation).toStrictEqual(1); + expect(result.reputationValues[1].reputation).toStrictEqual(-1); + expect(result.reputationValues[2].reputation).toStrictEqual(-1); + expect(result.reputationValues[3].reputation).toStrictEqual(-1); }); }); diff --git a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts index bcd0e90f06..618eee0f69 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/rewards.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/rewards.ts @@ -25,11 +25,11 @@ export function filterAddressesToReward( const { fortune, score } = fortunesEntries[workerAddress]; if (tmpHashMap[fortune] || checkBadWords(fortune)) { reputationValues.push({ workerAddress, reputation: -1 }); - if (!score) { + if (score) { errorRecordingOracle = true; } return; - } else if (!tmpHashMap[fortune] && !checkBadWords(fortune) && score) { + } else if (!tmpHashMap[fortune] && !checkBadWords(fortune) && !score) { errorRecordingOracle = true; } diff --git a/yarn.lock b/yarn.lock index bf6b24c373..8cfb02a248 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10974,9 +10974,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" From 4a49b87cee73cf602b6c7bc3207be5576ee189da Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 26 Jan 2023 10:46:33 +0100 Subject: [PATCH 102/216] add oracles to manifest --- .../fortune/launcher/server/package.json | 2 +- .../launcher/server/src/constants/oracles.ts | 5 +++- .../launcher/server/src/plugins/escrow.ts | 13 ++++++++- .../fortune/launcher/server/src/plugins/s3.ts | 28 +++++++++---------- .../launcher/server/src/routes/escrow.ts | 3 +- .../server/tests/plugins/escrow.test.ts | 27 ++++++++++++++++-- 6 files changed, 58 insertions(+), 20 deletions(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 5bad9dcff2..ecc8649026 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -22,6 +22,6 @@ "scripts": { "build": "tsc", "start": "ts-node --esm ./src/index.ts", - "test": "concurrently -k -s first \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" } } diff --git a/packages/examples/fortune/launcher/server/src/constants/oracles.ts b/packages/examples/fortune/launcher/server/src/constants/oracles.ts index 31ed1d61aa..cb19288ee6 100644 --- a/packages/examples/fortune/launcher/server/src/constants/oracles.ts +++ b/packages/examples/fortune/launcher/server/src/constants/oracles.ts @@ -1,6 +1,9 @@ export const REC_ORACLE_ADDRESS = '0x670bCc966ddc4fE7136c8793617a2C4D22849827'; export const REP_ORACLE_ADDRESS = '0x6aC0881d52B08a9FF766b9Ac51FD9F488D761d98'; -export const EX_ORACLE_ADDRESS = ''; +export const EX_ORACLE_ADDRESS = '0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec'; +export const REC_ORACLE_URL = 'http://localhost'; +export const REP_ORACLE_URL = 'http://localhost'; +export const EX_ORACLE_URL = 'http://localhost'; export const REC_ORACLE_PERCENTAGE_FEE = 10; export const REP_ORACLE_PERCENTAGE_FEE = 10; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index 29f68cf9bf..c7ad68bd21 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -5,7 +5,7 @@ import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: " import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; import { escrow as escrowSchema } from '../schemas/escrow.js'; import Web3 from 'web3'; -import { REC_ORACLE_ADDRESS, REC_ORACLE_PERCENTAGE_FEE, REP_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE } from "../constants/oracles.js"; +import { EX_ORACLE_ADDRESS, EX_ORACLE_URL, REC_ORACLE_ADDRESS, REC_ORACLE_PERCENTAGE_FEE, REC_ORACLE_URL, REP_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REP_ORACLE_URL } from "../constants/oracles.js"; import { CURSE_WORDS } from "../constants/curseWords.js"; class Escrow { @@ -58,6 +58,17 @@ class Escrow { const words = text.replace(/[^a-zA-Z0-9 ]/g, '').split(' '); return CURSE_WORDS.some(w => words.includes(w)); } + + addOraclesData(escrow: typeof escrowSchema.properties) { + const data = escrow as any; + data.recordingOracleAddress = REC_ORACLE_ADDRESS; + data.reputationOracleAddress = REP_ORACLE_ADDRESS; + data.exchangeOracleAddress = EX_ORACLE_ADDRESS; + data.recordingOracleUrl = REC_ORACLE_URL; + data.reputationOracleUrl = REP_ORACLE_URL; + data.exchangeOracleUrl = EX_ORACLE_URL; + return data; + } } const escrowPlugin: FastifyPluginAsync = async (server) => { diff --git a/packages/examples/fortune/launcher/server/src/plugins/s3.ts b/packages/examples/fortune/launcher/server/src/plugins/s3.ts index 20fbdf3b8d..d491d7971f 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/s3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/s3.ts @@ -5,6 +5,7 @@ import * as Minio from 'minio'; import { escrow as escrowSchema } from '../schemas/escrow.js'; import { Type } from "@sinclair/typebox"; import Ajv from "ajv"; +import { EX_ORACLE_ADDRESS, EX_ORACLE_URL, REC_ORACLE_ADDRESS, REC_ORACLE_URL, REP_ORACLE_ADDRESS, REP_ORACLE_URL } from "../constants/oracles.js"; const ConfigSchema = Type.Strict( Type.Object({ @@ -44,21 +45,20 @@ class S3Client { }); } - async uploadManifest(escrow: typeof escrowSchema.properties, escrowAddress: string) { - const fileName = `${escrowAddress}-manifest.json`; - - const bucketExists = await this.s3Client.bucketExists(this.s3BucketName); - if (!bucketExists) { - await this.s3Client.makeBucket(process.env.S3_BUCKET_NAME as string, ''); + async uploadManifest(escrowData: any, escrowAddress: string) { + const fileName = `${escrowAddress}-manifest.json`; + const bucketExists = await this.s3Client.bucketExists(this.s3BucketName); + if (!bucketExists) { + await this.s3Client.makeBucket(process.env.S3_BUCKET_NAME as string, ''); + } + await this.s3Client.putObject( + this.s3BucketName, + fileName, + JSON.stringify(escrowData), + { 'Content-Type': 'application/json' } + ); + return `${this.s3BaseUrl}${fileName}` } - await this.s3Client.putObject( - this.s3BucketName, - fileName, - JSON.stringify(escrow), - { 'Content-Type': 'application/json' } - ); - return `${this.s3BaseUrl}${fileName}` -} } const s3Plugin: FastifyPluginAsync = async (server) => { diff --git a/packages/examples/fortune/launcher/server/src/routes/escrow.ts b/packages/examples/fortune/launcher/server/src/routes/escrow.ts index ec1b0f7723..6cc49d2f60 100644 --- a/packages/examples/fortune/launcher/server/src/routes/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/routes/escrow.ts @@ -48,7 +48,8 @@ export const createEscrow: FastifyPluginAsync = async (server) => { return reply.status(400).send('Title or description contains curse words'); const escrowAddress = await escrow.createEscrow(web3Client, escrowNetwork.factoryAddress, token, jobRequester); await escrow.fundEscrow(web3Client, token, jobRequester, escrowAddress, fundAmount); - const url = await s3.uploadManifest(escrowData, escrowAddress); + const data = escrow.addOraclesData(escrowData); + const url = await s3.uploadManifest(data, escrowAddress); const fortunesRequested = Number(escrowData.fortunesRequired); await escrow.setupEscrow(web3Client, escrowAddress, url, fortunesRequested); return escrowAddress; diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts index 4eb06b0c9a..59612a0dca 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -4,6 +4,8 @@ import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "js import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; import server from '../../src/server.js' import { stake, approve } from '../utils.js' +import { escrow as escrowSchema } from '../../src/schemas/escrow.js'; +import { EX_ORACLE_ADDRESS, EX_ORACLE_URL, REC_ORACLE_ADDRESS, REC_ORACLE_URL, REP_ORACLE_ADDRESS, REP_ORACLE_URL } from '../../src/constants/oracles.js'; const jobRequesterPrivKey = 'de9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0'; const jobRequester = '0xdD2FD4581271e230360230F9337D5c0430Bf44C0'; @@ -52,11 +54,32 @@ describe('Escrow tests', () => { expect(Number(await escrowContract.methods.remainingSolutions().call())).eq(3); }); - test('Should not detect curse words', async () => { + test('Should not detect curse words', () => { expect(escrow.checkCurseWords("hello world")).eq(false); }); - test('Should detect curse words', async () => { + test('Should detect curse words', () => { expect(escrow.checkCurseWords("porn")).eq(true); }); + + test('Should add oracles info', () => { + const escrowData = { + chainId: 1338, + title: "title 1", + description: "description 1", + fortunesRequired: 2, + token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", + fundAmount: 1, + jobRequester: jobRequester + }; + const result = escrow.addOraclesData(escrowData as unknown as typeof escrowSchema.properties); + + expect(result.recordingOracleAddress).eq(REC_ORACLE_ADDRESS); + expect(result.reputationOracleAddress).eq(REP_ORACLE_ADDRESS); + expect(result.exchangeOracleAddress).eq(EX_ORACLE_ADDRESS); + expect(result.recordingOracleUrl).eq(REC_ORACLE_URL); + expect(result.recordingOracleUrl).eq(REP_ORACLE_URL); + expect(result.recordingOracleUrl).eq(EX_ORACLE_URL); + + }); }); \ No newline at end of file From 473c2a3d99a27f48e42291be89c8754775b0e01d Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 26 Jan 2023 13:03:35 +0100 Subject: [PATCH 103/216] use .env for oracles config --- .../fortune/launcher/server/.env.test | 10 +++- .../launcher/server/src/constants/oracles.ts | 9 --- .../launcher/server/src/plugins/config.ts | 8 +++ .../launcher/server/src/plugins/escrow.ts | 59 +++++++++++++++---- .../fortune/launcher/server/src/plugins/s3.ts | 2 - .../server/tests/plugins/escrow.test.ts | 13 ++-- 6 files changed, 72 insertions(+), 29 deletions(-) delete mode 100644 packages/examples/fortune/launcher/server/src/constants/oracles.ts diff --git a/packages/examples/fortune/launcher/server/.env.test b/packages/examples/fortune/launcher/server/.env.test index e86268064e..a889ee25e0 100644 --- a/packages/examples/fortune/launcher/server/.env.test +++ b/packages/examples/fortune/launcher/server/.env.test @@ -8,4 +8,12 @@ S3_ACCESS_KEY=access-key S3_SECRET_KEY=secret-key S3_BUCKET_NAME=fortune-manifests S3_BASE_URL=http://localhost -ETH_PRIVATE_KEY=df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e \ No newline at end of file +ETH_PRIVATE_KEY=df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e +REC_ORACLE_ADDRESS=0x670bCc966ddc4fE7136c8793617a2C4D22849827 +REP_ORACLE_ADDRESS=0x6aC0881d52B08a9FF766b9Ac51FD9F488D761d98 +EX_ORACLE_ADDRESS=0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec +REC_ORACLE_URL=http://localhost +REP_ORACLE_URL=http://localhost +EX_ORACLE_URL=http://localhost +REC_ORACLE_PERCENTAGE_FEE=10 +REP_ORACLE_PERCENTAGE_FEE=10 \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/constants/oracles.ts b/packages/examples/fortune/launcher/server/src/constants/oracles.ts deleted file mode 100644 index cb19288ee6..0000000000 --- a/packages/examples/fortune/launcher/server/src/constants/oracles.ts +++ /dev/null @@ -1,9 +0,0 @@ -export const REC_ORACLE_ADDRESS = '0x670bCc966ddc4fE7136c8793617a2C4D22849827'; -export const REP_ORACLE_ADDRESS = '0x6aC0881d52B08a9FF766b9Ac51FD9F488D761d98'; -export const EX_ORACLE_ADDRESS = '0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec'; -export const REC_ORACLE_URL = 'http://localhost'; -export const REP_ORACLE_URL = 'http://localhost'; -export const EX_ORACLE_URL = 'http://localhost'; - -export const REC_ORACLE_PERCENTAGE_FEE = 10; -export const REP_ORACLE_PERCENTAGE_FEE = 10; \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/src/plugins/config.ts b/packages/examples/fortune/launcher/server/src/plugins/config.ts index 08d0577e01..c920a90d14 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/config.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/config.ts @@ -16,6 +16,14 @@ const ConfigSchema = Type.Strict( LOG_LEVEL: Type.String(), API_HOST: Type.String(), API_PORT: Type.String(), + REC_ORACLE_ADDRESS: Type.String(), + REP_ORACLE_ADDRESS: Type.String(), + EX_ORACLE_ADDRESS: Type.String(), + REC_ORACLE_URL: Type.String(), + REP_ORACLE_URL: Type.String(), + EX_ORACLE_URL: Type.String(), + REC_ORACLE_PERCENTAGE_FEE: Type.Number(), + REP_ORACLE_PERCENTAGE_FEE: Type.Number(), }) ); diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index c7ad68bd21..60ef34a546 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -5,18 +5,49 @@ import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: " import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; import { escrow as escrowSchema } from '../schemas/escrow.js'; import Web3 from 'web3'; -import { EX_ORACLE_ADDRESS, EX_ORACLE_URL, REC_ORACLE_ADDRESS, REC_ORACLE_PERCENTAGE_FEE, REC_ORACLE_URL, REP_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REP_ORACLE_URL } from "../constants/oracles.js"; import { CURSE_WORDS } from "../constants/curseWords.js"; +import server from '../server.js'; +import { Type } from "@sinclair/typebox"; +import Ajv from "ajv"; +const ConfigSchema = Type.Strict( + Type.Object({ + REC_ORACLE_ADDRESS: Type.String(), + REP_ORACLE_ADDRESS: Type.String(), + EX_ORACLE_ADDRESS: Type.String(), + REC_ORACLE_URL: Type.String(), + REP_ORACLE_URL: Type.String(), + EX_ORACLE_URL: Type.String(), + REC_ORACLE_PERCENTAGE_FEE: Type.Number(), + REP_ORACLE_PERCENTAGE_FEE: Type.Number(), + }) +); + +const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, +}); + class Escrow { + private recOracleAddress = process.env.REC_ORACLE_ADDRESS as string; + private repOracleAddress = process.env.REP_ORACLE_ADDRESS as string; + private exOracleAddress = process.env.EX_ORACLE_ADDRESS as string; + private recOracleUrl = process.env.REC_ORACLE_URL as string; + private repOracleUrl = process.env.REP_ORACLE_URL as string; + private exOracleUrl = process.env.EX_ORACLE_URL as string; + private recOracleFee = Number(process.env.REC_ORACLE_PERCENTAGE_FEE); + private repOracleFee = Number(process.env.REP_ORACLE_PERCENTAGE_FEE); async setupEscrow (web3: Web3, escrowAddress: string, url: string, fortunesRequested: number) { const escrowContract = new web3.eth.Contract(EscrowAbi as [], escrowAddress); const gas = await escrowContract.methods - .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url, fortunesRequested) + .setup(this.repOracleAddress, this.recOracleAddress, this.repOracleFee, this.recOracleFee, url, url, fortunesRequested) .estimateGas({ from: web3.eth.defaultAccount }); const gasPrice = await web3.eth.getGasPrice(); const result = await escrowContract.methods - .setup(REP_ORACLE_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_PERCENTAGE_FEE, REC_ORACLE_PERCENTAGE_FEE, url, url, fortunesRequested) + .setup(this.repOracleAddress, this.recOracleAddress, this.repOracleFee, this.recOracleFee, url, url, fortunesRequested) .send({ from: web3.eth.defaultAccount, gas, gasPrice }); } @@ -61,18 +92,26 @@ class Escrow { addOraclesData(escrow: typeof escrowSchema.properties) { const data = escrow as any; - data.recordingOracleAddress = REC_ORACLE_ADDRESS; - data.reputationOracleAddress = REP_ORACLE_ADDRESS; - data.exchangeOracleAddress = EX_ORACLE_ADDRESS; - data.recordingOracleUrl = REC_ORACLE_URL; - data.reputationOracleUrl = REP_ORACLE_URL; - data.exchangeOracleUrl = EX_ORACLE_URL; + data.recordingOracleAddress = this.recOracleAddress; + data.reputationOracleAddress = this.repOracleAddress; + data.exchangeOracleAddress = this.exOracleAddress; + data.recordingOracleUrl = this.recOracleUrl; + data.reputationOracleUrl = this.repOracleUrl; + data.exchangeOracleUrl = this.exOracleUrl; return data; } } const escrowPlugin: FastifyPluginAsync = async (server) => { - server.decorate("escrow", new Escrow()); + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + ".env file validation failed - " + + JSON.stringify(validate.errors, null, 2) + ); + } + server.decorate("escrow", new Escrow()); }; declare module "fastify" { diff --git a/packages/examples/fortune/launcher/server/src/plugins/s3.ts b/packages/examples/fortune/launcher/server/src/plugins/s3.ts index d491d7971f..47afcd1639 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/s3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/s3.ts @@ -2,10 +2,8 @@ import "dotenv/config"; import fp from "fastify-plugin"; import { FastifyPluginAsync } from "fastify"; import * as Minio from 'minio'; -import { escrow as escrowSchema } from '../schemas/escrow.js'; import { Type } from "@sinclair/typebox"; import Ajv from "ajv"; -import { EX_ORACLE_ADDRESS, EX_ORACLE_URL, REC_ORACLE_ADDRESS, REC_ORACLE_URL, REP_ORACLE_ADDRESS, REP_ORACLE_URL } from "../constants/oracles.js"; const ConfigSchema = Type.Strict( Type.Object({ diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts index 59612a0dca..7faac03515 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -5,7 +5,6 @@ import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: " import server from '../../src/server.js' import { stake, approve } from '../utils.js' import { escrow as escrowSchema } from '../../src/schemas/escrow.js'; -import { EX_ORACLE_ADDRESS, EX_ORACLE_URL, REC_ORACLE_ADDRESS, REC_ORACLE_URL, REP_ORACLE_ADDRESS, REP_ORACLE_URL } from '../../src/constants/oracles.js'; const jobRequesterPrivKey = 'de9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0'; const jobRequester = '0xdD2FD4581271e230360230F9337D5c0430Bf44C0'; @@ -74,12 +73,12 @@ describe('Escrow tests', () => { }; const result = escrow.addOraclesData(escrowData as unknown as typeof escrowSchema.properties); - expect(result.recordingOracleAddress).eq(REC_ORACLE_ADDRESS); - expect(result.reputationOracleAddress).eq(REP_ORACLE_ADDRESS); - expect(result.exchangeOracleAddress).eq(EX_ORACLE_ADDRESS); - expect(result.recordingOracleUrl).eq(REC_ORACLE_URL); - expect(result.recordingOracleUrl).eq(REP_ORACLE_URL); - expect(result.recordingOracleUrl).eq(EX_ORACLE_URL); + expect(result.recordingOracleAddress).eq(process.env.REC_ORACLE_ADDRESS); + expect(result.reputationOracleAddress).eq(process.env.REP_ORACLE_ADDRESS); + expect(result.exchangeOracleAddress).eq(process.env.EX_ORACLE_ADDRESS); + expect(result.recordingOracleUrl).eq(process.env.REC_ORACLE_URL); + expect(result.reputationOracleUrl).eq(process.env.REP_ORACLE_URL); + expect(result.exchangeOracleUrl).eq(process.env.EX_ORACLE_URL); }); }); \ No newline at end of file From 9452711359807242c2f15624ea8b16092a8b7551 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 26 Jan 2023 20:54:04 +0100 Subject: [PATCH 104/216] proxy contracts deployment --- CONTRACTS_LIST.md | 117 +++++++++++++++++++++--- packages/core/README.md | 24 +++++ packages/core/hardhat.config.ts | 2 +- packages/core/package.json | 1 + packages/core/scripts/deploy-proxies.ts | 79 ++++++++++++++++ packages/core/scripts/deploy.ts | 1 - 6 files changed, 210 insertions(+), 14 deletions(-) create mode 100644 packages/core/scripts/deploy-proxies.ts diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 7b66787487..38b8b58a75 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -1,14 +1,107 @@ # Contract addresses by network -| | Network Type | Status | HMTToken | Proxy | EscrowFactory | Staking | KVStore | -|---------------------|--------------|------------|--------------------------------------------|-------|--------------------------------------------|---------|--------------------------------------------| -| Polygon | Mainnet | Active | 0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF | | 0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794 | | 0x6334dB76037bb6d4bc21901433E870b22ACa1F9a | -| Mumbai | Testnet | Active | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | -| Goerli | Testnet | Active | 0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317 | | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | | -| Rinkeby | Testnet | Deprecated | 0x4dCf5ac4509888714dd43A5cCc46d7ab389D9c23 | | 0x925B24444511c86F4d4E63141D8Be0A025E2dca4 | | | -| Binance Smart Chain | Mainnet | Active | 0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7 | | 0xc88bC422cAAb2ac8812de03176402dbcA09533f4 | | 0x8340412Ed68BcF53a7Da72BFFc1E2E74CfdE74D0 | -| Binance Smart Chain | Testnet | Active | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | -| Moonbeam | Mainnet | Active | 0x3b25BC1dC591D24d60560d0135D6750A561D4764 | | 0x98108c28B7767a52BE38B4860832dd4e11A7ecad | | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | -| Moonbeam Alpha | Testnet | Active | 0xe4C8eC5d057EacF40060b2174627a4941a5c8127 | | 0x3Cd0B117Be4CC1e31c8d7d1eD8b32208a2820902 | | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | -| Avalanche | Mainnet | Active | 0x12365293cb6477d4fc2686e46bb97e3fb64f1550 | | 0x9767a578ba7a5FA1563c8229943cB01cd8446BB4 | | 0x4B79eaD28F52eD5686bf0e379717e85fc7aD10Df | -| Avalanche Fuji | Testnet | Active | 0x9406d5c635AD22b0d76c75E52De57A2177919ca3 | | 0xfb4469201951C3B9a7F1996c477cb7BDBEcE0A88 | | 0xd232c1426CF0653cE8a71DC98bCfDf10c471c114 | + +| Polygon (Mainnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF | N/A | +| | EscrowFactory | 0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794 | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | 0x6334dB76037bb6d4bc21901433E870b22ACa1F9a | N/A | +| | RewardPool | | | + +| Polygon Mumbai (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | +| | EscrowFactory | 0xd319e761b632E39234E68247D307818a20158890 | 0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d | +| | Staking | 0x19Fc3e859C1813ac9427a7a78BeB9ae102CE96d3 | 0x7Fd3dF914E7b6Bd96B4c744Df32183b51368Bfac | +| | RewardPool | 0x295514FC4C812Db24C3277d6D3175956AdEA273C | 0xf0145eD99AC3c4f877aDa7dA4D1E059ec9116BAE | +| | EthKVStore | 0xD7F61E812e139a5a02eDae9Dfec146E1b8eA3807 | N/A | +| | RewardPool | 0x7B9f9Dc6c157899C1Eb1c6B86f94855cC2F537dF | 0xC522463d36f76b881bE66484e3068F11e7038Ace | + +| Goerli (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317 | N/A | +| | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | | N/A | +| | RewardPool | | | + +| Rinkeby (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0x4dCf5ac4509888714dd43A5cCc46d7ab389D9c23 | N/A | +| | EscrowFactory | 0x925B24444511c86F4d4E63141D8Be0A025E2dca4 | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | | N/A | +| | RewardPool | | | + +| Binance SC (Mainnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7 | N/A | +| | EscrowFactory | 0xc88bC422cAAb2ac8812de03176402dbcA09533f4 | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | 0x8340412Ed68BcF53a7Da72BFFc1E2E74CfdE74D0 | N/A | +| | RewardPool | | | + +| Binance SC (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | N/A | +| | EscrowFactory | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | +| | RewardPool | | | + +| Moonbeam (Mainnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0x3b25BC1dC591D24d60560d0135D6750A561D4764 | N/A | +| | EscrowFactory | 0x98108c28B7767a52BE38B4860832dd4e11A7ecad | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | +| | RewardPool | | | + +| Moonbeam Alpha (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0xe4C8eC5d057EacF40060b2174627a4941a5c8127 | N/A | +| | EscrowFactory | 0x3Cd0B117Be4CC1e31c8d7d1eD8b32208a2820902 | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | N/A | +| | RewardPool | | | + +| Avalanche (Mainnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0x12365293cb6477d4fc2686e46bb97e3fb64f1550 | N/A | +| | EscrowFactory | 0x9767a578ba7a5FA1563c8229943cB01cd8446BB4 | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | 0x4B79eaD28F52eD5686bf0e379717e85fc7aD10Df | N/A | +| | RewardPool | | | + +| Avalanche Fuji (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0x9406d5c635AD22b0d76c75E52De57A2177919ca3 | N/A | +| | EscrowFactory | 0xfb4469201951C3B9a7F1996c477cb7BDBEcE0A88 | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | 0xd232c1426CF0653cE8a71DC98bCfDf10c471c114 | N/A | +| | RewardPool | | | + + + + +# Old contracts + +## Outdated since 2023/01/26 +| Polygon Mumbai (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +| | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | +| | EscrowFactory | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | +| | RewardPool | | | \ No newline at end of file diff --git a/packages/core/README.md b/packages/core/README.md index 7af89160dd..c08207c94a 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -3,3 +3,27 @@ - Escrow - EscrowFactory + + +# Deploy contracts with proxy to a live network + +1. Create a .env file in the root folder of core package, with the following variables(this is an example for Polygon Mumbai, for other networks `check hardhat.config.ts`): + +```bash +ETH_POLYGON_MUMBAI_URL= +PRIVATE_KEY= +HMT_ADDRESS= +POLYGONSCAN_API_KEY= +``` +2. Open `./scripts/deploy-proxies.ts` and check if you actually need to deploy all the contracts this script deploys. + +3. Deploy the contracts runing this ([NETWORK_NAME] = network name from `hardhat.config.ts`): + +```bash +yarn deploy:proxy --network [NETWORK_NAME] +``` +4. Verify every contract runing the following line for each contract address(have in mind that for contract with proxy, first you need to validate the implementation): +```bash +npx hardhat verify [CONTRACT_ADDRESS] --network [NETWORK_NAME] +``` +5. Update the file `CONTRACTS_LIST.md` in the root of this monorepo. \ No newline at end of file diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 4a63495ed2..7b5016e442 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -48,7 +48,7 @@ task( const config: HardhatUserConfig = { solidity: { version: '0.8.9', - settings: { optimizer: { enabled: true, runs: 4294967295 } }, + settings: { optimizer: { enabled: true, runs: 1000000 } }, }, defaultNetwork: 'hardhat', networks: { diff --git a/packages/core/package.json b/packages/core/package.json index 66c358434b..d1da61301a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -18,6 +18,7 @@ "local": "concurrently --hide 0 \"hardhat node\" \"yarn deploy:local\"", "deploy": "hardhat run scripts/deploy.ts", "deploy:local": "yarn deploy --network localhost", + "deploy:proxy": "hardhat run scripts/deploy-proxies.ts", "lint": "eslint .", "lint:fix": "eslint . --fix", "format:contracts": "prettier --write '**/*.sol'", diff --git a/packages/core/scripts/deploy-proxies.ts b/packages/core/scripts/deploy-proxies.ts new file mode 100644 index 0000000000..e7e84bbca3 --- /dev/null +++ b/packages/core/scripts/deploy-proxies.ts @@ -0,0 +1,79 @@ +/* eslint-disable no-console */ +import { Console } from 'console'; +import { ethers, upgrades } from 'hardhat'; + +async function main() { + const hmtAddress = process.env.HMT_ADDRESS; + if (!hmtAddress) { + console.error('HMT_ADDRESS env variable missing'); + return; + } + + const Staking = await ethers.getContractFactory('Staking'); + const stakingContract = await upgrades.deployProxy( + Staking, + [hmtAddress, 1, 1], + { initializer: 'initialize', kind: 'uups' } + ); + await stakingContract.deployed(); + console.log('Staking Proxy Address: ', stakingContract.address); + console.log( + 'Staking Implementation Address: ', + await upgrades.erc1967.getImplementationAddress(stakingContract.address) + ); + + const EscrowFactory = await ethers.getContractFactory('EscrowFactory'); + const escrowFactoryContract = await upgrades.deployProxy( + EscrowFactory, + [stakingContract.address], + { initializer: 'initialize', kind: 'uups' } + ); + await escrowFactoryContract.deployed(); + console.log('Escrow Factory Proxy Address: ', escrowFactoryContract.address); + console.log( + 'Escrow Factory Implementation Address: ', + await upgrades.erc1967.getImplementationAddress( + escrowFactoryContract.address + ) + ); + + const KVStore = await ethers.getContractFactory('KVStore'); + const kvStoreContract = await KVStore.deploy(); + await kvStoreContract.deployed(); + + console.log('KVStore Address: ', kvStoreContract.address); + + const RewardPool = await ethers.getContractFactory('RewardPool'); + const rewardPoolContract = await upgrades.deployProxy( + RewardPool, + [hmtAddress, stakingContract.address, 1], + { initializer: 'initialize', kind: 'uups' } + ); + await rewardPoolContract.deployed(); + console.log('Reward Pool Proxy Address: ', rewardPoolContract.address); + console.log( + 'Reward Pool Implementation Address: ', + await upgrades.erc1967.getImplementationAddress(rewardPoolContract.address) + ); + + // Configure RewardPool in Staking + await stakingContract.setRewardPool(rewardPoolContract.address); + + const Reputation = await ethers.getContractFactory('Reputation'); + const reputationContract = await upgrades.deployProxy( + Reputation, + [stakingContract.address, 1], + { initializer: 'initialize', kind: 'uups' } + ); + await reputationContract.deployed(); + console.log('Reputation Proxy Address: ', reputationContract.address); + console.log( + 'Reputation Implementation Address: ', + await upgrades.erc1967.getImplementationAddress(reputationContract.address) + ); +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/packages/core/scripts/deploy.ts b/packages/core/scripts/deploy.ts index 439b6b2fd5..f56230c412 100644 --- a/packages/core/scripts/deploy.ts +++ b/packages/core/scripts/deploy.ts @@ -54,7 +54,6 @@ async function main() { { initializer: 'initialize', kind: 'uups' } ); await rewardPoolContract.deployed(); - console.log('Reward Pool Contract Address:', rewardPoolContract.address); console.log('Reward Pool Proxy Address: ', rewardPoolContract.address); console.log( 'Reward Pool Implementation Address: ', From 5be2e3038a8c915c6b8d48d2e1c96591a7de123f Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 27 Jan 2023 09:15:19 +0100 Subject: [PATCH 105/216] add date of contract deployment --- CONTRACTS_LIST.md | 70 +++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 38b8b58a75..8cc20fdde3 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -3,26 +3,26 @@ | Polygon (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF | N/A | -| | EscrowFactory | 0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794 | | +|2021/10/13 | HMToken | 0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF | N/A | +|2022/02/28 | EscrowFactory | 0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794 | | | | Staking | | | | | RewardPool | | | -| | EthKVStore | 0x6334dB76037bb6d4bc21901433E870b22ACa1F9a | N/A | +|2022/03/01 | EthKVStore | 0x6334dB76037bb6d4bc21901433E870b22ACa1F9a | N/A | | | RewardPool | | | | Polygon Mumbai (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | -| | EscrowFactory | 0xd319e761b632E39234E68247D307818a20158890 | 0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d | -| | Staking | 0x19Fc3e859C1813ac9427a7a78BeB9ae102CE96d3 | 0x7Fd3dF914E7b6Bd96B4c744Df32183b51368Bfac | -| | RewardPool | 0x295514FC4C812Db24C3277d6D3175956AdEA273C | 0xf0145eD99AC3c4f877aDa7dA4D1E059ec9116BAE | -| | EthKVStore | 0xD7F61E812e139a5a02eDae9Dfec146E1b8eA3807 | N/A | -| | RewardPool | 0x7B9f9Dc6c157899C1Eb1c6B86f94855cC2F537dF | 0xC522463d36f76b881bE66484e3068F11e7038Ace | +|2022/04/25 | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | +|2023/01/26 | EscrowFactory | 0xd319e761b632E39234E68247D307818a20158890 | 0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d | +|2023/01/26 | Staking | 0x19Fc3e859C1813ac9427a7a78BeB9ae102CE96d3 | 0x7Fd3dF914E7b6Bd96B4c744Df32183b51368Bfac | +|2023/01/26 | RewardPool | 0x295514FC4C812Db24C3277d6D3175956AdEA273C | 0xf0145eD99AC3c4f877aDa7dA4D1E059ec9116BAE | +|2023/01/26 | EthKVStore | 0xD7F61E812e139a5a02eDae9Dfec146E1b8eA3807 | N/A | +|2023/01/26 | RewardPool | 0x7B9f9Dc6c157899C1Eb1c6B86f94855cC2F537dF | 0xC522463d36f76b881bE66484e3068F11e7038Ace | | Goerli (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317 | N/A | -| | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | +|2022/10/12 | HMToken | 0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317 | N/A | +|2022/10/12 | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | | | Staking | | | | | RewardPool | | | | | EthKVStore | | N/A | @@ -30,8 +30,8 @@ | Rinkeby (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0x4dCf5ac4509888714dd43A5cCc46d7ab389D9c23 | N/A | -| | EscrowFactory | 0x925B24444511c86F4d4E63141D8Be0A025E2dca4 | | +|2020/09/15 | HMToken | 0x4dCf5ac4509888714dd43A5cCc46d7ab389D9c23 | N/A | +|2021/03/05 | EscrowFactory | 0x925B24444511c86F4d4E63141D8Be0A025E2dca4 | | | | Staking | | | | | RewardPool | | | | | EthKVStore | | N/A | @@ -39,56 +39,56 @@ | Binance SC (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7 | N/A | -| | EscrowFactory | 0xc88bC422cAAb2ac8812de03176402dbcA09533f4 | | +|2022/08/18 | HMToken | 0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7 | N/A | +|2022/08/23 | EscrowFactory | 0xc88bC422cAAb2ac8812de03176402dbcA09533f4 | | | | Staking | | | | | RewardPool | | | -| | EthKVStore | 0x8340412Ed68BcF53a7Da72BFFc1E2E74CfdE74D0 | N/A | +|2022/08/23 | EthKVStore | 0x8340412Ed68BcF53a7Da72BFFc1E2E74CfdE74D0 | N/A | | | RewardPool | | | | Binance SC (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | N/A | -| | EscrowFactory | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | +|2022/10/12 | HMToken | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | N/A | +|2022/10/12 | EscrowFactory | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | | | Staking | | | | | RewardPool | | | -| | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | +|2022/08/12 | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | | | RewardPool | | | | Moonbeam (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0x3b25BC1dC591D24d60560d0135D6750A561D4764 | N/A | -| | EscrowFactory | 0x98108c28B7767a52BE38B4860832dd4e11A7ecad | | +|2022/05/26 | HMToken | 0x3b25BC1dC591D24d60560d0135D6750A561D4764 | N/A | +|2022/06/01 | EscrowFactory | 0x98108c28B7767a52BE38B4860832dd4e11A7ecad | | | | Staking | | | | | RewardPool | | | -| | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | +|2022/06/01 | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | | | RewardPool | | | | Moonbeam Alpha (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0xe4C8eC5d057EacF40060b2174627a4941a5c8127 | N/A | -| | EscrowFactory | 0x3Cd0B117Be4CC1e31c8d7d1eD8b32208a2820902 | | +|2022/05/31 | HMToken | 0xe4C8eC5d057EacF40060b2174627a4941a5c8127 | N/A | +|2022/05/31 | EscrowFactory | 0x3Cd0B117Be4CC1e31c8d7d1eD8b32208a2820902 | | | | Staking | | | | | RewardPool | | | -| | EthKVStore | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | N/A | +|2022/05/31 | EthKVStore | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | N/A | | | RewardPool | | | | Avalanche (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0x12365293cb6477d4fc2686e46bb97e3fb64f1550 | N/A | -| | EscrowFactory | 0x9767a578ba7a5FA1563c8229943cB01cd8446BB4 | | +|2022/09/29 | HMToken | 0x12365293cb6477d4fc2686e46bb97e3fb64f1550 | N/A | +|2022/12/03 | EscrowFactory | 0x9767a578ba7a5FA1563c8229943cB01cd8446BB4 | | | | Staking | | | | | RewardPool | | | -| | EthKVStore | 0x4B79eaD28F52eD5686bf0e379717e85fc7aD10Df | N/A | +|2022/11/17 | EthKVStore | 0x4B79eaD28F52eD5686bf0e379717e85fc7aD10Df | N/A | | | RewardPool | | | | Avalanche Fuji (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0x9406d5c635AD22b0d76c75E52De57A2177919ca3 | N/A | -| | EscrowFactory | 0xfb4469201951C3B9a7F1996c477cb7BDBEcE0A88 | | +|2022/10/23 | HMToken | 0x9406d5c635AD22b0d76c75E52De57A2177919ca3 | N/A | +|2022/10/24 | EscrowFactory | 0xfb4469201951C3B9a7F1996c477cb7BDBEcE0A88 | | | | Staking | | | | | RewardPool | | | -| | EthKVStore | 0xd232c1426CF0653cE8a71DC98bCfDf10c471c114 | N/A | +|2022/10/24 | EthKVStore | 0xd232c1426CF0653cE8a71DC98bCfDf10c471c114 | N/A | | | RewardPool | | | @@ -96,12 +96,12 @@ # Old contracts -## Outdated since 2023/01/26 + | Polygon Mumbai (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -| | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | -| | EscrowFactory | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | +|2022/04/25 | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | +|2022/04/25 | EscrowFactory | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | | | Staking | | | | | RewardPool | | | -| | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | +|2022/04/29 | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | | | RewardPool | | | \ No newline at end of file From 7ad5f80949adb062969531f935dfd911c2302f29 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 27 Jan 2023 09:49:25 +0100 Subject: [PATCH 106/216] fix wording --- CONTRACTS_LIST.md | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 8cc20fdde3..1f83f8322c 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -8,7 +8,7 @@ | | Staking | | | | | RewardPool | | | |2022/03/01 | EthKVStore | 0x6334dB76037bb6d4bc21901433E870b22ACa1F9a | N/A | -| | RewardPool | | | +| | Reputation | | | | Polygon Mumbai (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -17,7 +17,7 @@ |2023/01/26 | Staking | 0x19Fc3e859C1813ac9427a7a78BeB9ae102CE96d3 | 0x7Fd3dF914E7b6Bd96B4c744Df32183b51368Bfac | |2023/01/26 | RewardPool | 0x295514FC4C812Db24C3277d6D3175956AdEA273C | 0xf0145eD99AC3c4f877aDa7dA4D1E059ec9116BAE | |2023/01/26 | EthKVStore | 0xD7F61E812e139a5a02eDae9Dfec146E1b8eA3807 | N/A | -|2023/01/26 | RewardPool | 0x7B9f9Dc6c157899C1Eb1c6B86f94855cC2F537dF | 0xC522463d36f76b881bE66484e3068F11e7038Ace | +|2023/01/26 | Reputation | 0x7B9f9Dc6c157899C1Eb1c6B86f94855cC2F537dF | 0xC522463d36f76b881bE66484e3068F11e7038Ace | | Goerli (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -26,7 +26,7 @@ | | Staking | | | | | RewardPool | | | | | EthKVStore | | N/A | -| | RewardPool | | | +| | Reputation | | | | Rinkeby (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -35,7 +35,7 @@ | | Staking | | | | | RewardPool | | | | | EthKVStore | | N/A | -| | RewardPool | | | +| | Reputation | | | | Binance SC (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -44,7 +44,7 @@ | | Staking | | | | | RewardPool | | | |2022/08/23 | EthKVStore | 0x8340412Ed68BcF53a7Da72BFFc1E2E74CfdE74D0 | N/A | -| | RewardPool | | | +| | Reputation | | | | Binance SC (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -53,7 +53,7 @@ | | Staking | | | | | RewardPool | | | |2022/08/12 | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | -| | RewardPool | | | +| | Reputation | | | | Moonbeam (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -62,7 +62,7 @@ | | Staking | | | | | RewardPool | | | |2022/06/01 | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | -| | RewardPool | | | +| | Reputation | | | | Moonbeam Alpha (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -71,7 +71,7 @@ | | Staking | | | | | RewardPool | | | |2022/05/31 | EthKVStore | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | N/A | -| | RewardPool | | | +| | Reputation | | | | Avalanche (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -80,7 +80,7 @@ | | Staking | | | | | RewardPool | | | |2022/11/17 | EthKVStore | 0x4B79eaD28F52eD5686bf0e379717e85fc7aD10Df | N/A | -| | RewardPool | | | +| | Reputation | | | | Avalanche Fuji (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -89,7 +89,7 @@ | | Staking | | | | | RewardPool | | | |2022/10/24 | EthKVStore | 0xd232c1426CF0653cE8a71DC98bCfDf10c471c114 | N/A | -| | RewardPool | | | +| | Reputation | | | @@ -101,7 +101,4 @@ |--------------------------|----------------|--------------------------------------------|--------------------------------------------| |2022/04/25 | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | |2022/04/25 | EscrowFactory | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | -| | Staking | | | -| | RewardPool | | | -|2022/04/29 | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | -| | RewardPool | | | \ No newline at end of file +|2022/04/29 | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | \ No newline at end of file From dd285c60a5ff3d08195255fc07bfbf0b6cf6e8f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Fri, 27 Jan 2023 10:23:29 +0100 Subject: [PATCH 107/216] Change constants format --- .../src/constants/constants.ts | 83 ++++++++++++++++--- .../fortune/reputation-oracle/src/index.ts | 31 ++++--- 2 files changed, 89 insertions(+), 25 deletions(-) diff --git a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts index c826b9049d..ca4ab7fa4e 100644 --- a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts +++ b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts @@ -1,20 +1,77 @@ -export interface NetworkSettings { - 1338: ReputationSettings; - 80001: ReputationSettings; +export enum ChainId { + MAINNET = 1, + GOERLI = 5, + BSC_MAINNET = 56, + BSC_TESTNET = 97, + POLYGON = 137, + POLYGON_MUMBAI = 80001, + MOONBEAM = 1284, + LOCALHOST = 1338, } -export interface ReputationSettings { - httpServer: string; - reputation: string; +export interface IReputationNetwork { + chainId: number; + title: string; + rpcUrl: string; + reputationAddress: string; } -export const networks: NetworkSettings = { - 1338: { - httpServer: 'http://127.0.0.1:8545', - reputation: '0x67d269191c92Caf3cD7723F116c85e6E9bf55933', +export const REPUTATION_NETWORKS: { + [chainId in ChainId]?: IReputationNetwork; +} = { + // [ChainId.GOERLI]: { + // chainId: ChainId.GOERLI, + // title: 'Ethereum Goerli', + // scanUrl: 'https://goerli.etherscan.io', + // rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', + // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', + // reputationAddress: '0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F', + // }, + // [ChainId.BSC_MAINNET]: { + // chainId: ChainId.BSC_MAINNET, + // title: 'Binance Smart Chain', + // scanUrl: 'https://bscscan.com', + // rpcUrl: 'https://bsc-dataseed1.binance.org/', + // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', + // reputationAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + // }, + // [ChainId.BSC_TESTNET]: { + // chainId: ChainId.BSC_TESTNET, + // title: 'Binance Smart Chain (Testnet)', + // scanUrl: 'https://testnet.bscscan.com', + // rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', + // reputationAddress: '0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f', + // }, + // [ChainId.POLYGON]: { + // chainId: ChainId.POLYGON, + // title: 'Polygon', + // scanUrl: 'https://polygonscan.com', + // rpcUrl: 'https://polygon-rpc.com/', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', + // reputationAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', + // }, + [ChainId.POLYGON_MUMBAI]: { + chainId: ChainId.POLYGON_MUMBAI, + title: 'Polygon Mumbai', + rpcUrl: 'https://rpc-mumbai.maticvigil.com', + reputationAddress: '0xC522463d36f76b881bE66484e3068F11e7038Ace', }, - 80001: { - httpServer: 'http://127.0.0.1:8545', - reputation: '0x67d269191c92Caf3cD7723F116c85e6E9bf55933', + [ChainId.LOCALHOST]: { + chainId: ChainId.LOCALHOST, + title: 'Localhost', + rpcUrl: 'http://127.0.0.1:8545', + reputationAddress: '0x67d269191c92Caf3cD7723F116c85e6E9bf55933', }, + // [ChainId.MOONBEAM]: { + // chainId: ChainId.MOONBEAM, + // title: 'Moonbeam', + // scanUrl: 'https://moonbeam.moonscan.io', + // rpcUrl: 'https://rpc.api.moonbeam.network', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', + // reputationAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + // }, }; diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index f5b409295c..21d65985b1 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -14,7 +14,7 @@ import { calculateRewardForWorker, } from './services/reputation'; import getManifest from './services/manifest'; -import { networks, NetworkSettings } from './constants/constants'; +import { ChainId, REPUTATION_NETWORKS } from './constants/constants'; const app = express(); const privKey = @@ -28,7 +28,17 @@ app.post('/send-fortunes', async (req, res) => { try { const errorMessage: string[] = []; Object.keys(req.body).forEach((escrowAddress) => { - const { fortunes, chainId } = req.body[escrowAddress]; + const fortunes = req.body[escrowAddress].fortunes; + const chainId = Number(req.body[escrowAddress].chainId) as ChainId; + + if (!chainId) { + errorMessage.push(`ChainId is empty or invalid`); + } + const network = REPUTATION_NETWORKS[chainId]; + if (!network) { + errorMessage.push('ChainId not supported'); + } + if (!Array.isArray(fortunes) || fortunes.length === 0) { errorMessage.push( `Fortunes of ${escrowAddress} are not specified or empty` @@ -40,10 +50,6 @@ app.post('/send-fortunes', async (req, res) => { `Escrow address ${escrowAddress} is empty or invalid` ); } - - if (!networks[chainId as keyof NetworkSettings]) { - errorMessage.push(`ChainId ${chainId} is empty or invalid`); - } }); if (errorMessage.length > 0) { @@ -53,10 +59,11 @@ app.post('/send-fortunes', async (req, res) => { } for (const escrowAddress of Object.keys(req.body)) { - const { fortunes, chainId } = req.body[escrowAddress]; - const web3 = new Web3( - networks[chainId as keyof NetworkSettings].httpServer - ); + const fortunes = req.body[escrowAddress].fortunes; + const chainId = Number(req.body[escrowAddress].chainId) as ChainId; + const network = REPUTATION_NETWORKS[chainId]; + if (!network) throw new Error('ChainId not supported'); + const web3 = new Web3(network.reputationAddress); const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); web3.eth.accounts.wallet.add(account); web3.eth.defaultAccount = account.address; @@ -75,12 +82,12 @@ app.post('/send-fortunes', async (req, res) => { await updateReputations( web3, - networks[chainId as keyof NetworkSettings].reputation, + network.reputationAddress, reputationValues ); const rewards = await calculateRewardForWorker( web3, - networks[chainId as keyof NetworkSettings].reputation, + network.reputationAddress, balance.toString(), workerAddresses ); From 4470e0759e5dd9548ba5a3765d3e5889df47282d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Fri, 27 Jan 2023 10:29:13 +0100 Subject: [PATCH 108/216] Remove e2e tests until integration is complete --- packages/examples/fortune/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index ed70302664..ea52195227 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -18,8 +18,8 @@ "test:recording": "cd recording-oracle && yarn test", "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", - "test:unit": "concurrently -g \"yarn test:recording\" \"sleep 3 && yarn test:reputation\" \"yarn test:exchange\"", - "test": "concurrently -g \"yarn test:e2e\" \"yarn test:unit\"", + "test:unit": "(concurrently -g \"yarn test:recording\" \"yarn test:reputation\" \"yarn test:exchange\") && docker compose down", + "test": "concurrently -g \"yarn minio\" \"yarn test:unit\"", "lint": "eslint .", "lint:fix": "eslint . --fix" }, From 927fc4d3664cb0c41f1515e44d39ca5ff7bc7212 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 27 Jan 2023 14:35:58 +0100 Subject: [PATCH 109/216] update addresses and create new subgraph version --- CONTRACTS_LIST.md | 4 ++- .../escrow-dashboard/src/constants/index.ts | 5 +-- .../launcher/server/src/constants/networks.ts | 2 +- packages/sdk/typescript/subgraph/README.md | 32 ++++++++++--------- .../config/{mumbai.json => mumbai-v1.json} | 12 +++---- 5 files changed, 30 insertions(+), 25 deletions(-) rename packages/sdk/typescript/subgraph/config/{mumbai.json => mumbai-v1.json} (69%) diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 1f83f8322c..423914ee39 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -101,4 +101,6 @@ |--------------------------|----------------|--------------------------------------------|--------------------------------------------| |2022/04/25 | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | |2022/04/25 | EscrowFactory | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | -|2022/04/29 | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | \ No newline at end of file +|2022/04/29 | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | +|2023/01/17 | Staking | 0x76E2EF2E177097E0b296E1e305d69Fe8Bae5f774 | 0xf421fD3eB97982C205966ebB514Ab2E435c6d5B7 | +|2023/01/17 | EthKVStore | 0x459EE403d060B84b5014605D6739cCFed32AFb96 | N/A | \ No newline at end of file diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index 0b50c0d1c1..2c488cd993 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -85,8 +85,9 @@ export const ESCROW_NETWORKS: { title: 'Polygon Mumbai', scanUrl: 'https://mumbai.polygonscan.com', rpcUrl: 'https://rpc-mumbai.maticvigil.com', - subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai', - factoryAddress: '0x558cd800f9F0B02f3B149667bDe003284c867E94', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai-v1', + factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', }, [ChainId.MOONBEAM]: { diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 7844b722f7..b2341ee68d 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -64,7 +64,7 @@ export const ESCROW_NETWORKS: { chainId: ChainId.POLYGON_MUMBAI, title: 'Polygon Mumbai', rpcUrl: 'https://rpc-mumbai.maticvigil.com', - factoryAddress: '0x558cd800f9F0B02f3B149667bDe003284c867E94', + factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', }, [ChainId.LOCALHOST]: { diff --git a/packages/sdk/typescript/subgraph/README.md b/packages/sdk/typescript/subgraph/README.md index bf043be41e..d32f3275d5 100644 --- a/packages/sdk/typescript/subgraph/README.md +++ b/packages/sdk/typescript/subgraph/README.md @@ -32,7 +32,6 @@ You can access it on `http://localhost:8020/` The deployment of the graph on each network is automatically triggered by the github CI when mofications are made on the subgraph. - ### Tests To run tests next commands should be executed: @@ -53,21 +52,24 @@ Following networks are supported : - Goerli - Polygon Mumbai (testnet) -### Add a new network +# Add a new network You can find networks configuration in the directory `config`. Each JSON file is use to generate the `subgraph.yaml` file for each network. 1. Add your network configuration as `config/NETWORK.json` -2. On the `package.json` file add the command `npm run quickstart:{NETWORK}` -3. On the `./.github/workflows/deploy.yaml` file add these 3command at the end of the file - - run: node ./scripts/generatenetworkssubgraphs.js {yourNetworkName} - - run: npm run codegen - - run: graph deploy --product hosted-service humanprotocol/{yourNetworkName} - -Currently deploying to: - -- main branch -> https://thegraph.com/hosted-service/subgraph/humanprotocol/polygon - -- goerli branch -> https://thegraph.com/hosted-service/subgraph/humanprotocol/goerli - -- mumbai branch -> https://thegraph.com/hosted-service/subgraph/humanprotocol/mumbai +2. Run authentication command: `npx graph auth --product hosted-service [AUTH_TOKEN]` +3. Generate `cross-env NETWORK=[NETWORK] yarn generate` +4. Go to you hosted [service dashboard](https://thegraph.com/hosted-service/dashboard) and create the new subgraph +5. Deploy the subgraph `npx graph deploy --product hosted-service humanprotocol/[SUBGRAPH_NAME]` +6. On the `./.github/workflows/cd-subgraph.yaml` add your network name and graph name. + +# Existing subgraphs + +- https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai-v1 +- https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai +- https://api.thegraph.com/subgraphs/name/humanprotocol/polygon +- https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam +- https://api.thegraph.com/subgraphs/name/humanprotocol/rinkeby +- https://api.thegraph.com/subgraphs/name/humanprotocol/goerli +- https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest +- https://api.thegraph.com/subgraphs/name/humanprotocol/bsc diff --git a/packages/sdk/typescript/subgraph/config/mumbai.json b/packages/sdk/typescript/subgraph/config/mumbai-v1.json similarity index 69% rename from packages/sdk/typescript/subgraph/config/mumbai.json rename to packages/sdk/typescript/subgraph/config/mumbai-v1.json index fb2517d478..fc2d844bff 100644 --- a/packages/sdk/typescript/subgraph/config/mumbai.json +++ b/packages/sdk/typescript/subgraph/config/mumbai-v1.json @@ -2,8 +2,8 @@ "network": "mumbai", "description": "Human subgraph on Polygon Mumbai testnet", "EscrowFactory": { - "address": "0x558cd800f9F0B02f3B149667bDe003284c867E94", - "startBlock": 26086172, + "address": "0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d", + "startBlock": 31433945, "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" }, "HMToken": { @@ -15,13 +15,13 @@ "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" }, "Staking": { - "address": "0xf421fD3eB97982C205966ebB514Ab2E435c6d5B7", - "startBlock": 31060831, + "address": "0x7Fd3dF914E7b6Bd96B4c744Df32183b51368Bfac", + "startBlock": 31433938, "abi": "./node_modules/@human-protocol/core/abis/Staking.json" }, "KVStore": { - "address": "0x459EE403d060B84b5014605D6739cCFed32AFb96", - "startBlock": 31059244, + "address": "0xD7F61E812e139a5a02eDae9Dfec146E1b8eA3807", + "startBlock": 31433948, "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" } } From 2815e9c25a62da9af45a07f9f12868d577103812 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 27 Jan 2023 16:03:35 +0100 Subject: [PATCH 110/216] deploy new version of contracts to bsc testnet --- .github/workflows/cd-subgraph.yaml | 4 +-- CONTRACTS_LIST.md | 20 +++++++++----- packages/core/README.md | 2 +- packages/core/hardhat.config.ts | 7 +++++ .../launcher/server/src/constants/networks.ts | 17 +++++------- packages/sdk/typescript/subgraph/README.md | 2 +- .../subgraph/config/bsctest-v1.json | 27 +++++++++++++++++++ .../typescript/subgraph/config/chapel.json | 17 ------------ 8 files changed, 58 insertions(+), 38 deletions(-) create mode 100644 packages/sdk/typescript/subgraph/config/bsctest-v1.json delete mode 100644 packages/sdk/typescript/subgraph/config/chapel.json diff --git a/.github/workflows/cd-subgraph.yaml b/.github/workflows/cd-subgraph.yaml index e2914cc1bf..1a7fc5ca26 100644 --- a/.github/workflows/cd-subgraph.yaml +++ b/.github/workflows/cd-subgraph.yaml @@ -23,9 +23,9 @@ jobs: - name: bsc graph: bsc - name: chapel - graph: bsctest + graph: bsctest-v1 - name: mumbai - graph: mumbai + graph: mumbai-v1 fail-fast: true max-parallel: 3 steps: diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 423914ee39..c27e03311d 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -48,12 +48,12 @@ | Binance SC (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/10/12 | HMToken | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | N/A | -|2022/10/12 | EscrowFactory | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | -| | Staking | | | -| | RewardPool | | | -|2022/08/12 | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | -| | Reputation | | | +|2023/01/27 | HMToken | 0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d | N/A | +|2023/01/27 | EscrowFactory | 0xD8c35adC3b386d092846a93015220b7Fe8efD938 | 0x2bfA592DBDaF434DDcbb893B1916120d181DAD18 | +|2023/01/27 | Staking | 0x854EC65E9e5e973C458FC2c92F6E0CbD403f5b95 | 0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18 | +|2023/01/27 | RewardPool | 0xF09f451eC04cAb1b1FAe98C86F45291B00E52b03 | 0xB0A0500103eCEc431b73F6BAd923F0a2774E6e29 | +|2023/01/27 | EthKVStore | 0x3aD4B091E054f192a822D1406f4535eAd38580e4 | N/A | +|2023/01/27 | Reputation | 0x4DCB3906A65B77f6a588087652E6Dd9685d1F67f | 0xb8F62639aA3DD51A39d6AACD969363e7F87dcc98 | | Moonbeam (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -103,4 +103,10 @@ |2022/04/25 | EscrowFactory | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | |2022/04/29 | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | |2023/01/17 | Staking | 0x76E2EF2E177097E0b296E1e305d69Fe8Bae5f774 | 0xf421fD3eB97982C205966ebB514Ab2E435c6d5B7 | -|2023/01/17 | EthKVStore | 0x459EE403d060B84b5014605D6739cCFed32AFb96 | N/A | \ No newline at end of file +|2023/01/17 | EthKVStore | 0x459EE403d060B84b5014605D6739cCFed32AFb96 | N/A | + +| Binance SC (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/10/12 | HMToken | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | N/A | +|2022/10/12 | EscrowFactory | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | +|2022/08/12 | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | \ No newline at end of file diff --git a/packages/core/README.md b/packages/core/README.md index c08207c94a..bffd286e25 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -22,7 +22,7 @@ POLYGONSCAN_API_KEY= ```bash yarn deploy:proxy --network [NETWORK_NAME] ``` -4. Verify every contract runing the following line for each contract address(have in mind that for contract with proxy, first you need to validate the implementation): +4. Verify every contract runing the following line for each contract address(for those that use a proxy just verifyin the proxy will verify the implementation too): ```bash npx hardhat verify [CONTRACT_ADDRESS] --network [NETWORK_NAME] ``` diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 7b5016e442..9291b47197 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -78,6 +78,12 @@ const config: HardhatUserConfig = { accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, + bscTestnet: { + chainId: 97, + url: process.env.ETH_BSC_TESTNET_URL || '', + accounts: + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], + }, }, gasReporter: { enabled: process.env.REPORT_GAS !== undefined, @@ -106,6 +112,7 @@ const config: HardhatUserConfig = { mainnet: process.env.ETHERSCAN_API_KEY || '', goerli: process.env.ETHERSCAN_API_KEY || '', polygonMumbai: process.env.POLYGONSCAN_API_KEY || '', + bscTestnet: process.env.BSC_TESTNET_API_KEY || '', }, }, mocha: { diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index b2341ee68d..4d7e73a90e 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -40,16 +40,13 @@ export const ESCROW_NETWORKS: { // factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', // hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', // }, - // [ChainId.BSC_TESTNET]: { - // chainId: ChainId.BSC_TESTNET, - // title: 'Binance Smart Chain (Testnet)', - // scanUrl: 'https://testnet.bscscan.com', - // rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', - // subgraphUrl: - // 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', - // factoryAddress: '0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f', - // hmtAddress: '0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317', - // }, + [ChainId.BSC_TESTNET]: { + chainId: ChainId.BSC_TESTNET, + title: 'Binance Smart Chain (Testnet)', + rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', + factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', + hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', + }, // [ChainId.POLYGON]: { // chainId: ChainId.POLYGON, // title: 'Polygon', diff --git a/packages/sdk/typescript/subgraph/README.md b/packages/sdk/typescript/subgraph/README.md index d32f3275d5..8046fae02f 100644 --- a/packages/sdk/typescript/subgraph/README.md +++ b/packages/sdk/typescript/subgraph/README.md @@ -58,7 +58,7 @@ You can find networks configuration in the directory `config`. Each JSON file is 1. Add your network configuration as `config/NETWORK.json` 2. Run authentication command: `npx graph auth --product hosted-service [AUTH_TOKEN]` -3. Generate `cross-env NETWORK=[NETWORK] yarn generate` +3. Generate `npx cross-env NETWORK=[NETWORK] yarn generate` 4. Go to you hosted [service dashboard](https://thegraph.com/hosted-service/dashboard) and create the new subgraph 5. Deploy the subgraph `npx graph deploy --product hosted-service humanprotocol/[SUBGRAPH_NAME]` 6. On the `./.github/workflows/cd-subgraph.yaml` add your network name and graph name. diff --git a/packages/sdk/typescript/subgraph/config/bsctest-v1.json b/packages/sdk/typescript/subgraph/config/bsctest-v1.json new file mode 100644 index 0000000000..2fec931a36 --- /dev/null +++ b/packages/sdk/typescript/subgraph/config/bsctest-v1.json @@ -0,0 +1,27 @@ +{ + "network": "chapel", + "description": "Human subgraph on Binance Smart Chain testnet", + "EscrowFactory": { + "address": "0x2bfA592DBDaF434DDcbb893B1916120d181DAD18", + "startBlock": 26716359, + "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" + }, + "HMToken": { + "address": "0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d", + "startBlock": 26716354, + "abi": "./node_modules/@human-protocol/core/abis/HMToken.json" + }, + "Escrow": { + "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" + }, + "Staking": { + "address": "0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18", + "startBlock": 26716357, + "abi": "./node_modules/@human-protocol/core/abis/Staking.json" + }, + "KVStore": { + "address": "0x3aD4B091E054f192a822D1406f4535eAd38580e4", + "startBlock": 26716360, + "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" + } +} diff --git a/packages/sdk/typescript/subgraph/config/chapel.json b/packages/sdk/typescript/subgraph/config/chapel.json deleted file mode 100644 index 4205033d1e..0000000000 --- a/packages/sdk/typescript/subgraph/config/chapel.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "network": "chapel", - "description": "Human subgraph on Binance Smart Chain testnet", - "EscrowFactory": { - "address": "0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f", - "startBlock": 23632686, - "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" - }, - "HMToken": { - "address": "0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317", - "startBlock": 23632621, - "abi": "./node_modules/@human-protocol/core/abis/HMToken.json" - }, - "Escrow": { - "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" - } -} From 809fcba660ac77379cb983f5015e49a5a38062ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Mon, 30 Jan 2023 15:10:47 +0100 Subject: [PATCH 111/216] Add WalletConnect v2 --- .../examples/fortune/exchange/package.json | 2 + .../examples/fortune/exchange/src/App.tsx | 70 ++++--- .../exchange/src/components/Escrow/Escrow.tsx | 116 ++++++++---- .../fortune/exchange/src/connectors/chains.ts | 20 ++ .../exchange/src/connectors/connectors.ts | 26 +++ .../examples/fortune/exchange/src/index.tsx | 9 +- .../RecordingOracle/RecordingClient.ts | 29 +-- .../fortune/exchange/src/utils/web3.ts | 10 - .../fortune/launcher/.env.development | 2 +- .../launcher/src/components/escrow/create.tsx | 4 +- .../launcher/src/components/escrow/view.tsx | 173 +++++++++++++----- .../launcher/src/constants/constants.ts | 2 +- 12 files changed, 306 insertions(+), 157 deletions(-) create mode 100644 packages/examples/fortune/exchange/src/connectors/chains.ts create mode 100644 packages/examples/fortune/exchange/src/connectors/connectors.ts delete mode 100644 packages/examples/fortune/exchange/src/utils/web3.ts diff --git a/packages/examples/fortune/exchange/package.json b/packages/examples/fortune/exchange/package.json index 049a7682c9..5ed9de7a5f 100644 --- a/packages/examples/fortune/exchange/package.json +++ b/packages/examples/fortune/exchange/package.json @@ -13,12 +13,14 @@ "@types/react": "^18.0.25", "@types/react-dom": "^18.0.9", "axios": "^1.1.3", + "ethers": "^5.7.2", "identity-obj-proxy": "^3.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^5.0.1", "remove": "^0.1.5", "typescript": "^4.9.3", + "wagmi": "^0.11.0", "web-vitals": "^3.1.0", "web3": "^1.8.1" }, diff --git a/packages/examples/fortune/exchange/src/App.tsx b/packages/examples/fortune/exchange/src/App.tsx index 3e5d21453d..4cefb48241 100644 --- a/packages/examples/fortune/exchange/src/App.tsx +++ b/packages/examples/fortune/exchange/src/App.tsx @@ -1,47 +1,39 @@ -import React, { useState, useEffect } from 'react'; -import getWeb3 from './utils/web3'; -import { Escrow } from './components/Escrow'; +import { useAccount, useConnect } from 'wagmi'; import './App.css'; +import { Escrow } from './components/Escrow'; function App() { - const web3 = getWeb3(); - const [isMetamaskInstalled, setIsMetamaskInstalled] = useState(false); - const [isMetamaskConnected, setIsMetamaskConnected] = useState(false); - - useEffect(() => { - (async function () { - const { ethereum } = window; - if (typeof ethereum !== 'undefined' && ethereum.isMetaMask) { - setIsMetamaskInstalled(true); - const accounts = await web3.eth.getAccounts(); - if (accounts.length > 0) { - setIsMetamaskConnected(true); - } - } - })(); - }, [web3.eth]); - - const connect = async () => { - await window.ethereum.request({ method: 'eth_requestAccounts' }); - setIsMetamaskConnected(true); - } + const { connector: activeConnector, isConnected } = useAccount(); + const { connect, connectors, isLoading, error, pendingConnector, data } = + useConnect(); return ( -
-
- {!isMetamaskInstalled && - (

Metamask not installed

) - } - {!isMetamaskConnected && - () - } - { - isMetamaskConnected && - () - } -
-
- ) + <> +
+ {isConnected &&
Connected to {activeConnector?.name}
} + {isConnected &&
Address: {data?.account}
} +
+ <> + {!isConnected && + connectors.map((connector) => ( + + ))} + {isConnected && } + {error &&
{error.message}
} + +
+
+ + ); } export default App; diff --git a/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx b/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx index fc9a87a6e5..741989528e 100644 --- a/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx +++ b/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx @@ -1,14 +1,23 @@ -import React, { useState, useEffect, useCallback } from 'react'; -import axios from 'axios'; import EscrowABI from '@human-protocol/core/abis/Escrow.json'; -import getWeb3 from '../../utils/web3'; +import { getContract, getProvider } from '@wagmi/core'; +import axios from 'axios'; +import { ethers } from 'ethers'; +import { useCallback, useEffect, useState } from 'react'; +import { useAccount } from 'wagmi'; import sendFortune from '../../services/RecordingOracle/RecordingClient'; import './Escrow.css'; -const statusesMap = ['Launched', 'Pending', 'Partial', 'Paid', 'Complete', 'Cancelled']; +const statusesMap = [ + 'Launched', + 'Pending', + 'Partial', + 'Paid', + 'Complete', + 'Cancelled', +]; function parseQuery(qs: any) { - const result : string[] = []; + const result: string[] = []; if (qs.length === 0) { return {}; } @@ -17,7 +26,6 @@ function parseQuery(qs: any) { qs = qs.slice(1); } - const kvs = qs.split('&'); for (let kv of kvs) { @@ -36,64 +44,96 @@ function parseQuery(qs: any) { return result; } export const Escrow = () => { - const web3 = getWeb3(); + const { address } = useAccount(); + const provider = getProvider(); const [escrow, setEscrow] = useState(''); const [fortune, setFortune] = useState(''); const [escrowStatus, setEscrowStatus] = useState(''); const [balance, setBalance] = useState(''); const [recordingOracleUrl, setRecordingOracleUrl] = useState(''); - const setMainEscrow = useCallback(async (address: string) => { - setEscrow(address); - const Escrow = new web3.eth.Contract(EscrowABI as [], address); + const setMainEscrow = useCallback( + async (address: string) => { + setEscrow(address); + const Escrow = getContract({ + address, + abi: EscrowABI, + signerOrProvider: provider, + }); - const escrowSt = await Escrow.methods.status().call(); - setEscrowStatus(statusesMap[escrowSt]); + const escrowSt = await Escrow.status(); + setEscrowStatus(statusesMap[escrowSt]); - const balance = await Escrow.methods.getBalance().call(); - setBalance(web3.utils.fromWei(balance, 'ether')); + const balance = await Escrow.getBalance(); + setBalance(ethers.utils.formatEther(balance)); - const manifestUrl = await Escrow.methods.manifestUrl().call(); - if (manifestUrl) { - const manifestContent = (await axios.get(manifestUrl)).data; + const manifestUrl = await Escrow.manifestUrl(); + if (manifestUrl) { + const manifestContent = (await axios.get(manifestUrl)).data; - setRecordingOracleUrl(manifestContent.recording_oracle_url); - } - return; - }, [web3.eth.Contract, web3.utils]) + setRecordingOracleUrl(manifestContent.recording_oracle_url); + } + return; + }, + [provider] + ); useEffect(() => { const qs: any = parseQuery(window.location.search); const address = qs.address; - if (web3.utils.isAddress(address)) { - setMainEscrow(web3.utils.toChecksumAddress(address)); + if (ethers.utils.isAddress(address)) { + setMainEscrow(ethers.utils.getAddress(address)); } - }, [setMainEscrow, web3.utils]); - + }, [setMainEscrow]); + const send = async () => { - await sendFortune(escrow, fortune, recordingOracleUrl); + await sendFortune(escrow, fortune, recordingOracleUrl, address as string); alert('Your fortune has been submitted'); setFortune(''); return; - } - + }; return (
- setEscrow(e.target.value)} value={escrow} data-testid="escrowAddress"/> - + setEscrow(e.target.value)} + value={escrow} + data-testid="escrowAddress" + /> +
- Fill the exchange address to pass the fortune to the recording oracle - Address: {escrow} - Status: {escrowStatus} - Balance: {balance} + + {' '} + Fill the exchange address to pass the fortune to the recording oracle + + + {' '} + Address: {escrow}{' '} + + + {' '} + Status: {escrowStatus} + + + {' '} + Balance: {balance} +
- setFortune(e.target.value)}/> - + setFortune(e.target.value)} /> +
- ) -} + ); +}; diff --git a/packages/examples/fortune/exchange/src/connectors/chains.ts b/packages/examples/fortune/exchange/src/connectors/chains.ts new file mode 100644 index 0000000000..73e25b146d --- /dev/null +++ b/packages/examples/fortune/exchange/src/connectors/chains.ts @@ -0,0 +1,20 @@ +import { Chain } from 'wagmi'; + +export const fortune: Chain = { + id: 1338, + name: 'Localhost', + network: 'localhost', + nativeCurrency: { + decimals: 18, + name: 'Ether', + symbol: 'ETH', + }, + rpcUrls: { + default: { + http: ['http://127.0.0.1:8545'], + }, + public: { + http: ['http://127.0.0.1:8545'], + }, + }, +}; diff --git a/packages/examples/fortune/exchange/src/connectors/connectors.ts b/packages/examples/fortune/exchange/src/connectors/connectors.ts new file mode 100644 index 0000000000..94fbd56abf --- /dev/null +++ b/packages/examples/fortune/exchange/src/connectors/connectors.ts @@ -0,0 +1,26 @@ +import { goerli, mainnet, polygon, polygonMumbai } from '@wagmi/core/chains'; +import { configureChains, createClient } from 'wagmi'; +import { InjectedConnector } from 'wagmi/connectors/injected'; +import { WalletConnectConnector } from 'wagmi/connectors/walletConnect'; +import { publicProvider } from 'wagmi/providers/public'; +import { fortune } from './chains'; + +const { chains, provider } = configureChains( + [mainnet, polygon, goerli, polygonMumbai, fortune], + [publicProvider()] +); + +export const wagmiClient = createClient({ + connectors: [ + new InjectedConnector({ chains }), + new WalletConnectConnector({ + chains, + options: { + qrcode: true, + version: '2', + projectId: '68415bedd1597a33e8e83cc53e52071b', + }, + }), + ], + provider, +}); diff --git a/packages/examples/fortune/exchange/src/index.tsx b/packages/examples/fortune/exchange/src/index.tsx index 032464fb6e..4945784961 100644 --- a/packages/examples/fortune/exchange/src/index.tsx +++ b/packages/examples/fortune/exchange/src/index.tsx @@ -1,15 +1,20 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; -import './index.css'; +import { WagmiConfig } from 'wagmi'; import App from './App'; +import { wagmiClient } from './connectors/connectors'; +import './index.css'; import reportWebVitals from './reportWebVitals'; const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement ); + root.render( - + + + ); diff --git a/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts b/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts index 5a38c05730..3869386b2e 100644 --- a/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts +++ b/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts @@ -1,17 +1,18 @@ import axios from 'axios'; -import getWeb3 from '../../utils/web3'; -const web3 = getWeb3(); +const sendFortune = async ( + escrow: string, + fortune: string, + recordingOracleUrl: string, + workerAddress: string +) => { + const body = { + workerAddress, + escrowAddress: escrow, + fortune, + }; + await axios.post(recordingOracleUrl, body); + return; +}; -const sendFortune = async ( escrow: string, fortune: string, recordingOracleUrl: string) => { - const account = (await web3.eth.getAccounts())[0]; - const body = { - workerAddress: account, - escrowAddress: escrow, - fortune - }; - await axios.post(recordingOracleUrl, body); - return; -} - -export default sendFortune; \ No newline at end of file +export default sendFortune; diff --git a/packages/examples/fortune/exchange/src/utils/web3.ts b/packages/examples/fortune/exchange/src/utils/web3.ts deleted file mode 100644 index 9ab2095ae8..0000000000 --- a/packages/examples/fortune/exchange/src/utils/web3.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Web3 from 'web3'; - -let web3; - - -export default function getWeb3() { - web3 = new Web3(window.ethereum); - - return web3; -} \ No newline at end of file diff --git a/packages/examples/fortune/launcher/.env.development b/packages/examples/fortune/launcher/.env.development index bb11e20c86..935b3ebf21 100644 --- a/packages/examples/fortune/launcher/.env.development +++ b/packages/examples/fortune/launcher/.env.development @@ -1,6 +1,6 @@ REACT_APP_PUBLIC_URL=/ REACT_APP_HMT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 -REACT_APP_ESCROW_FACTORY_ADDRESS=0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 +REACT_APP_ESCROW_FACTORY_ADDRESS=0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9 REACT_APP_REC_ORACLE_ADDRESS=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 REACT_APP_REP_ORACLE_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC REACT_APP_EXCHANGE_ORACLE_ADDRESS=0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809 diff --git a/packages/examples/fortune/launcher/src/components/escrow/create.tsx b/packages/examples/fortune/launcher/src/components/escrow/create.tsx index 5ff46b607b..79b3adc897 100644 --- a/packages/examples/fortune/launcher/src/components/escrow/create.tsx +++ b/packages/examples/fortune/launcher/src/components/escrow/create.tsx @@ -1,7 +1,7 @@ import React, { useState, useEffect } from 'react'; import getWeb3 from '../../utils/web3'; import factoryAbi from '@human-protocol/core/abis/EscrowFactory.json'; -import { ESCROW_FACTORY_ADDRESS } from '../../constants/constants'; +import { ESCROW_FACTORY_ADDRESS, HMT_ADDRESS } from '../../constants/constants'; export default function CreateEscrow() { const [escrow, setEscrow] = useState(''); @@ -25,7 +25,7 @@ export default function CreateEscrow() { const mainAccount = accounts[0]; const createdEscrow = await escrowFactory.methods - .createEscrow([mainAccount]) + .createEscrow(HMT_ADDRESS, [mainAccount]) .send({ from: mainAccount }); setEscrow(createdEscrow.events.Launched.returnValues.escrow); }; diff --git a/packages/examples/fortune/launcher/src/components/escrow/view.tsx b/packages/examples/fortune/launcher/src/components/escrow/view.tsx index 488cef1371..eaaa95ab6a 100644 --- a/packages/examples/fortune/launcher/src/components/escrow/view.tsx +++ b/packages/examples/fortune/launcher/src/components/escrow/view.tsx @@ -3,12 +3,22 @@ import axios from 'axios'; import EscrowABI from '@human-protocol/core/abis/Escrow.json'; import HMTokenABI from '@human-protocol/core/abis/HMToken.json'; import getWeb3 from '../../utils/web3'; -import {HMT_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_ADDRESS} from '../../constants/constants'; - -const statusesMap = ['Launched', 'Pending', 'Partial', 'Paid', 'Complete', 'Cancelled']; +import { + HMT_ADDRESS, + REC_ORACLE_ADDRESS, + REP_ORACLE_ADDRESS, +} from '../../constants/constants'; + +const statusesMap = [ + 'Launched', + 'Pending', + 'Partial', + 'Paid', + 'Complete', + 'Cancelled', +]; export default function Escrow() { - const web3 = getWeb3(); const [escrow, setEscrow] = useState(''); @@ -52,53 +62,99 @@ export default function Escrow() { setManifestUrl(manifest); if (manifest) { - const exchangeOracleUrl = (await axios.get(manifest)).data.exchange_oracle_url; + const exchangeOracleUrl = (await axios.get(manifest)).data + .exchange_oracle_url; setExchangeUrl(`${exchangeOracleUrl}?address=${address}`); } - const balance = await Escrow.methods.getBalance().call(); setBalance(web3.utils.fromWei(balance, 'ether')); - } - + }; return (
- ) + ); } - -function EscrowControls({escrowAddr, onUpdate}: any) { - const [recOracleAddr, setRecOracleAddr] = useState(REC_ORACLE_ADDRESS) - const [recOracleStake, setRecOracleStake] = useState(10) - const [repOracleAddr, setRepOracleAddr] = useState(REP_ORACLE_ADDRESS) - const [repOracleStake, setRepOracleStake] = useState(10) - const [manifestUrl, setManifestUrl] = useState('') +function EscrowControls({ escrowAddr, onUpdate }: any) { + const [recOracleAddr, setRecOracleAddr] = useState(REC_ORACLE_ADDRESS); + const [recOracleStake, setRecOracleStake] = useState(10); + const [repOracleAddr, setRepOracleAddr] = useState(REP_ORACLE_ADDRESS); + const [repOracleStake, setRepOracleStake] = useState(10); + const [manifestUrl, setManifestUrl] = useState(''); const [hmt, setHmt] = useState(0); const web3 = getWeb3(); @@ -112,26 +168,28 @@ function EscrowControls({escrowAddr, onUpdate}: any) { const accounts = await web3.eth.getAccounts(); const value = web3.utils.toWei(hmt.toString(), 'ether'); - await Token.methods.transfer(escrowAddr, value).send({from: accounts[0]}); + await Token.methods.transfer(escrowAddr, value).send({ from: accounts[0] }); onUpdate(); - } + }; const setupEscrow = async () => { const accounts = await web3.eth.getAccounts(); - await Escrow.methods.setup( - repOracleAddr, - recOracleAddr, - repOracleStake, - recOracleStake, - manifestUrl, - manifestUrl - ).send({from: accounts[0]}) + await Escrow.methods + .setup( + repOracleAddr, + recOracleAddr, + repOracleStake, + recOracleStake, + manifestUrl, + manifestUrl, + 2 + ) + .send({ from: accounts[0] }); onUpdate(); - } - + }; return ( <> @@ -143,26 +201,41 @@ function EscrowControls({escrowAddr, onUpdate}: any) {

Recording Oracle

- setRecOracleAddr(e.target.value)} value={recOracleAddr} /> + setRecOracleAddr(e.target.value)} + value={recOracleAddr} + />

Recording Oracle Stake

- setRecOracleStake(Number(e.target.value))} value={recOracleStake} /> + setRecOracleStake(Number(e.target.value))} + value={recOracleStake} + />

Reputation Oracle

- setRepOracleAddr(e.target.value)} value={repOracleAddr} /> + setRepOracleAddr(e.target.value)} + value={repOracleAddr} + />

Reputation Oracle Stake

- setRepOracleStake(Number(e.target.value))} value={repOracleStake} /> + setRepOracleStake(Number(e.target.value))} + value={repOracleStake} + />

Manifest URL

- setManifestUrl(e.target.value)} value={manifestUrl} /> + setManifestUrl(e.target.value)} + value={manifestUrl} + />
- +
diff --git a/packages/examples/fortune/launcher/src/constants/constants.ts b/packages/examples/fortune/launcher/src/constants/constants.ts index 7bcdf24d26..49d34a096d 100644 --- a/packages/examples/fortune/launcher/src/constants/constants.ts +++ b/packages/examples/fortune/launcher/src/constants/constants.ts @@ -3,7 +3,7 @@ export const HMT_ADDRESS = '0x5FbDB2315678afecb367f032d93F642f64180aa3'; export const ESCROW_FACTORY_ADDRESS = process.env.REACT_APP_ESCROW_FACTORY_ADDRESS || - '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9'; + '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9'; export const REC_ORACLE_ADDRESS = process.env.REACT_APP_REC_ORACLE_ADDRESS || '0x61F9F0B31eacB420553da8BCC59DC617279731Ac'; From afa0a7af459fecc0bb8c1ca9cdf3e4cc599a2302 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 30 Jan 2023 15:15:36 +0100 Subject: [PATCH 112/216] deploy proxy contracts goerli --- .github/workflows/cd-subgraph.yaml | 2 +- CONTRACTS_LIST.md | 16 ++++++++++------ .../apps/escrow-dashboard/src/constants/index.ts | 6 +++--- .../launcher/server/src/constants/networks.ts | 16 +++++++--------- .../config/{goerli.json => goerli-v1.json} | 12 ++++++------ 5 files changed, 27 insertions(+), 25 deletions(-) rename packages/sdk/typescript/subgraph/config/{goerli.json => goerli-v1.json} (69%) diff --git a/.github/workflows/cd-subgraph.yaml b/.github/workflows/cd-subgraph.yaml index 1a7fc5ca26..8c661c24b1 100644 --- a/.github/workflows/cd-subgraph.yaml +++ b/.github/workflows/cd-subgraph.yaml @@ -17,7 +17,7 @@ jobs: - name: matic graph: polygon - name: goerli - graph: goerli + graph: goerli-v1 - name: moonbeam graph: moonbeam - name: bsc diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index c27e03311d..85b54f31b7 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -22,11 +22,11 @@ | Goerli (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| |2022/10/12 | HMToken | 0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317 | N/A | -|2022/10/12 | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | -| | Staking | | | -| | RewardPool | | | -| | EthKVStore | | N/A | -| | Reputation | | | +|2022/10/12 | EscrowFactory | 0x5D65C42cF4a140863744889BAd07f246C0211754 | 0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c | +| | Staking | 0x5e622FF522D81aa426f082bDD95210BC25fCA7Ed | 0xf46B45Df3d956369726d8Bd93Ba33963Ab692920 | +| | RewardPool | 0x6478312bE22FeE34a366d8e945d4dBd97388a306 | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | +| | EthKVStore | 0xc9Fe39c4b6e1d7A2991355Af159956982DADf842 | N/A | +| | Reputation | 0x1BA4F1d2dA691fF0445345436b9306B29eEd3913 | 0x6B220A6306D8D86C9878A1FBb3F49707b3E2b405 | | Rinkeby (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -109,4 +109,8 @@ |--------------------------|----------------|--------------------------------------------|--------------------------------------------| |2022/10/12 | HMToken | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | N/A | |2022/10/12 | EscrowFactory | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | -|2022/08/12 | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | \ No newline at end of file +|2022/08/12 | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | + +| Goerli (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/10/12 | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | \ No newline at end of file diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index 2c488cd993..9191d0da75 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -48,7 +48,7 @@ export const ESCROW_NETWORKS: { scanUrl: 'https://goerli.etherscan.io', rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', - factoryAddress: '0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F', + factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', }, [ChainId.BSC_MAINNET]: { @@ -67,8 +67,8 @@ export const ESCROW_NETWORKS: { rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', - factoryAddress: '0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f', - hmtAddress: '0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317', + factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', + hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', }, [ChainId.POLYGON]: { chainId: ChainId.POLYGON, diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 4d7e73a90e..4061e0a579 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -22,15 +22,13 @@ export enum ChainId { export const ESCROW_NETWORKS: { [chainId in ChainId]?: IEscrowNetwork; } = { - // [ChainId.GOERLI]: { - // chainId: ChainId.GOERLI, - // title: 'Ethereum Goerli', - // scanUrl: 'https://goerli.etherscan.io', - // rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', - // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', - // factoryAddress: '0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F', - // hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', - // }, + [ChainId.GOERLI]: { + chainId: ChainId.GOERLI, + title: 'Ethereum Goerli', + rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', + factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', + hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', + }, // [ChainId.BSC_MAINNET]: { // chainId: ChainId.BSC_MAINNET, // title: 'Binance Smart Chain', diff --git a/packages/sdk/typescript/subgraph/config/goerli.json b/packages/sdk/typescript/subgraph/config/goerli-v1.json similarity index 69% rename from packages/sdk/typescript/subgraph/config/goerli.json rename to packages/sdk/typescript/subgraph/config/goerli-v1.json index 00056207f8..ab02d4551a 100644 --- a/packages/sdk/typescript/subgraph/config/goerli.json +++ b/packages/sdk/typescript/subgraph/config/goerli-v1.json @@ -2,8 +2,8 @@ "network": "goerli", "description": "Human subgraph on goerli network", "EscrowFactory": { - "address": "0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F", - "startBlock": 7755458, + "address": "0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c", + "startBlock": 8403038, "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" }, "HMToken": { @@ -15,13 +15,13 @@ "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" }, "Staking": { - "address": "0x115df71Eb07F44Ab0019E98B1383768B8742dB18", - "startBlock": 8326533, + "address": "0xf46B45Df3d956369726d8Bd93Ba33963Ab692920", + "startBlock": 8403036, "abi": "./node_modules/@human-protocol/core/abis/Staking.json" }, "KVStore": { - "address": "0x4e0cF75c0840c8E9664b257c32BFB760b5ed6ef5", - "startBlock": 8326276, + "address": "0xc9Fe39c4b6e1d7A2991355Af159956982DADf842", + "startBlock": 8403040, "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" } } From 257c64d3041344b39b5e2c9cca9887f26a44ea43 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 30 Jan 2023 16:40:05 +0100 Subject: [PATCH 113/216] fix subgraph tests --- packages/sdk/typescript/subgraph/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/typescript/subgraph/package.json b/packages/sdk/typescript/subgraph/package.json index 33833a3a08..8423f0038d 100644 --- a/packages/sdk/typescript/subgraph/package.json +++ b/packages/sdk/typescript/subgraph/package.json @@ -9,7 +9,7 @@ "generate": "mustache ./config/$NETWORK.json template.yaml > subgraph.yaml && graph codegen", "codegen": "graph codegen", "build": "graph build", - "pretest": "NETWORK=goerli yarn generate", + "pretest": "NETWORK=goerli-v1 yarn generate", "test": "graph test", "deploy": "graph deploy --node https://api.thegraph.com/deploy/ posix4e/humansubgraph", "quickstart:matic": "NETWORK=matic yarn generate && graph create --node http://localhost:8020/ posix4e/humansubgraph", From 3432dcc21c21fea45a0678844804b75f6cbb8d93 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 30 Jan 2023 16:44:47 +0100 Subject: [PATCH 114/216] add contracts date --- CONTRACTS_LIST.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 85b54f31b7..9541c6d26e 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -22,11 +22,11 @@ | Goerli (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| |2022/10/12 | HMToken | 0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317 | N/A | -|2022/10/12 | EscrowFactory | 0x5D65C42cF4a140863744889BAd07f246C0211754 | 0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c | -| | Staking | 0x5e622FF522D81aa426f082bDD95210BC25fCA7Ed | 0xf46B45Df3d956369726d8Bd93Ba33963Ab692920 | -| | RewardPool | 0x6478312bE22FeE34a366d8e945d4dBd97388a306 | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | -| | EthKVStore | 0xc9Fe39c4b6e1d7A2991355Af159956982DADf842 | N/A | -| | Reputation | 0x1BA4F1d2dA691fF0445345436b9306B29eEd3913 | 0x6B220A6306D8D86C9878A1FBb3F49707b3E2b405 | +|2023/01/30 | EscrowFactory | 0x5D65C42cF4a140863744889BAd07f246C0211754 | 0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c | +|2023/01/30 | Staking | 0x5e622FF522D81aa426f082bDD95210BC25fCA7Ed | 0xf46B45Df3d956369726d8Bd93Ba33963Ab692920 | +|2023/01/30 | RewardPool | 0x6478312bE22FeE34a366d8e945d4dBd97388a306 | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | +|2023/01/30 | EthKVStore | 0xc9Fe39c4b6e1d7A2991355Af159956982DADf842 | N/A | +|2023/01/30 | Reputation | 0x1BA4F1d2dA691fF0445345436b9306B29eEd3913 | 0x6B220A6306D8D86C9878A1FBb3F49707b3E2b405 | | Rinkeby (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| From 87ebd41cf8c5929f3f2fa6377283ce4bdf692d07 Mon Sep 17 00:00:00 2001 From: m00n620 Date: Tue, 31 Jan 2023 00:17:45 -0500 Subject: [PATCH 115/216] wallet connection, job request form --- packages/apps/escrow-dashboard/package.json | 2 + .../public/images/fortune-crypto.png | Bin 0 -> 24041 bytes .../public/images/fortune-fiat.png | Bin 0 -> 8856 bytes .../escrow-dashboard/src/assets/coinbase.svg | 9 + .../escrow-dashboard/src/assets/metamask.svg | 9 + .../src/assets/walletconnect.svg | 9 + .../src/components/Fortune/FortuneStages.tsx | 69 ++ .../src/components/Fortune/FundingMethod.tsx | 90 +++ .../src/components/Fortune/JobRequest.tsx | 189 +++++ .../src/components/Fortune/Launch.tsx | 5 + .../src/components/Fortune/RoundedBox.tsx | 23 + .../src/components/Fortune/index.ts | 4 + .../src/components/Fortune/types.ts | 17 + .../src/components/WalletModal/index.tsx | 112 +++ packages/apps/escrow-dashboard/src/index.tsx | 42 +- .../src/pages/Fortune/index.tsx | 110 +++ .../apps/escrow-dashboard/src/pages/index.ts | 1 + .../escrow-dashboard/src/routes/routes.ts | 9 +- yarn.lock | 703 +++++++++++++++++- 19 files changed, 1383 insertions(+), 20 deletions(-) create mode 100644 packages/apps/escrow-dashboard/public/images/fortune-crypto.png create mode 100644 packages/apps/escrow-dashboard/public/images/fortune-fiat.png create mode 100644 packages/apps/escrow-dashboard/src/assets/coinbase.svg create mode 100644 packages/apps/escrow-dashboard/src/assets/metamask.svg create mode 100644 packages/apps/escrow-dashboard/src/assets/walletconnect.svg create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/FortuneStages.tsx create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/FundingMethod.tsx create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/JobRequest.tsx create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/RoundedBox.tsx create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/index.ts create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/types.ts create mode 100644 packages/apps/escrow-dashboard/src/components/WalletModal/index.tsx create mode 100644 packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx diff --git a/packages/apps/escrow-dashboard/package.json b/packages/apps/escrow-dashboard/package.json index 0bc533d3ef..8e2e451abc 100644 --- a/packages/apps/escrow-dashboard/package.json +++ b/packages/apps/escrow-dashboard/package.json @@ -19,6 +19,7 @@ "@types/react": "^18.0.25", "@types/react-dom": "^18.0.9", "bignumber.js": "^9.1.0", + "buffer": "^6.0.3", "classnames": "^2.3.2", "dayjs": "^1.11.6", "ethers": "^5.7.2", @@ -36,6 +37,7 @@ "swr": "^1.3.0", "ts-node": "^10.9.1", "typescript": "^4.9.3", + "wagmi": "^0.11.2", "web-vitals": "^3.1.0" }, "devDependencies": { diff --git a/packages/apps/escrow-dashboard/public/images/fortune-crypto.png b/packages/apps/escrow-dashboard/public/images/fortune-crypto.png new file mode 100644 index 0000000000000000000000000000000000000000..188364629fde159d1148d0c8bfd30c396bba7d48 GIT binary patch literal 24041 zcmV(B;nDI%Y}1pIFjbC(5Lh(tM2mp6niZPVR^N6dr^p(@~^9T6LvC zkWLa5wN6tOQ{G?W0u|6P<-JcPnSjC+@d-rnlz#+Ty})G#^(-0_&e+dLk>tfB_qgnnbxaF%7kL?OM~g zYuAPz%nb;zmXE-;ZQW|ciZ!~sJCw7h2lTdW8_fQiHEaAa+R|~le%(6I*Ict9>gnmx zAQ&t%x94*h-h8pu2m6`+E&+!2eeCbl81taKHxd>}*byuebLhZ1`^I?;qFn zcR16H*N*FO-H?V=_=f=3wrzdd5sd%|B?A;we6xojS+{O2OP@b$kQ_^JD5FtWQQ}#G zYj(qi4MM-6R@wkP9UaQFAvWTkJlwmJnp0PXF&T=|ybZwI{SMQ1P0=kvP0 zIkN~VRTvwCokK&14}ao^n+BdaccFRI-o3ljT>KkvhixctR^Ya?^LR~wS+&aHBPv~NMOPU|3Z{_KEqOu#{mA$19+?e&!ZdSVDr#0-=?I{*Pn@Bk>eNU@=OEw~;@KIK6k!0{@UA$H@2XVd>pt?4+is-A(qpY`YLm){h z)PD{@IVy0l=P@Xr)*NJ}AV9F?fjS1PSivHs&*&Rgd=wP1L_e~`VB-Px4;P%baL%0E zRhf)>COm+cx90GS!EsDFOo(PU!B7y1|N&hp~sQ zZ0poJcOFExIH*P%^6GtWSpB&uf>%uAnNX>aNYMBLh+~eAXy9&4`^Y?4xLDzq{)XwK zQYHTI6<7W8icSPbFYdRDluUzKy`(QD6N{{yWy^;2_U+AT*|IY=SvMhvHO9l%Vj-rz3VV1_t*4X_1hry26>L1PnG! zr4>@eN*@`@sQS7A^|n_&{oVO&^zJF1g$)b{23vDOhl_B-w|n4$ZGEui*N?*9-Ghni zm!8}Ka~HP2GoQBv&NzF%p1Yt$xnP|!ud`VzcC53)7F#L~ba-H3^n$Cd`t@xM4b6IN ztfHf+IUX4)>%%Q26gP;pox!>}GUh|qWUf$4< z`|RY;0mBx=5WTw&!&m;}H*nie9yBa*+B4?El2bZhNp}Y{x7I;ZYu*55@1ujTV_4o% z1WH2_qO@-)?nFH)pC5`5Cvfmi3zVfxm!f{M83D3J_qJ_QoyMgftR0T;^sGTJtxvuy z)ni&Q`BSuhrUeeBLrR2x8zkEpJe>%RlN~Ss79)+I7^w_J^}{(uzHme}rQ5h@v++Y32=We^WrL_0DQ?WQPl;|uIn+!m@JEHczHU?6u%!n*w( zk=rW2{lQh6;rmzKX++Ky-*^FZqSzro&^Zz_l038>OAJ{(v1N%mdsAy~{z`_$}A}Evxhca6QhkA$LLzn&ta@hzzcJ0Nm z=!6-THSm|s@c0c!JFYCq9=reJ)4zRsrIM}Y^08J?9vgnx{0}XKxKyg@LY)Q6-hBsj zTU#3{H7J61mvsjgw+}BH9xdsmEi?59vdW;>SLSO1iFpVrBCA%diOmp$RbYT(bd$Aa z#EJGT5+cH&Z7+pCMmoY%18bN#$p$;X##kmON(dP3O$AjM?u)AE!`KINp(7rO^o+Vl z9~z5vb3Xd#*PZ$4d@gfIt=x-6D@tDdtZ$(eQiM-^|HXhxrD?o<2gl*zJtOeImc6j~ zXAi;MzuFDs!==RijV*aNZPg-p#sy1Z#Z$Yiei22c*B#t53?IDohvp5h{OKhycW$G( zCyMM(r=rGm;9&pwzkKPNo2~(si=iI#M}U+ou`Uk`YSr8x=L@kem8-gx%cwkVRaADE5j58sa1f?|~<&Pm| zYJwx}{bTcttrG(bwoEXB3Z>>qDxV|Sa;7+1$y|K?$qQF5pS7vhGsxT|6ZK0Uy&b;% z@2F?od8q*g^^!-hVYhDC58wURZ{VS=`(Vjwb70Bob73j|W_2|IjUVhs26^m(L$LLi zyWsv!d*O^{EreJ6>(gQO{AR->1ONiax>sEf$1k4+@BRF9p$)-A_eL3hQCIa2DaCU2 zw;#XicYh1TN}SE*?ZNt7T&c#oeykEJm5)bFt(D`(rY0y?$E&nUf@^4~6hkWk-h!pM zQdcED869oMeD$97K@VNHL0>&hbR>kG5>(aDzgS<4gbgb0Z2adDq!`$?3BdiIvEU5ak%a{=NOqz3|2N-vXn^EbsW_ zb6~~Oy1e)F-rx5cfV}yNXTfvUoCK}SdBZI1SY>dqq^V((aJXcc zfke;21IQ|5`52F^HIdtgER#rpP$DMb=rHRbVo2j36d;p`6*=Y;M64mO204n1$vTKi zV~5ouv< zitV?r{>Htx4Z{!=%GqkM4w6BW)phSAcj(hsxPP9zkdiiQPq^dFK`yM`QfI$`UhL8U>G&o>Hku^gN8)PE=wGZ72 zxBqAda0HOh(bQUiH+=9M)IB=k<8QqY#)eAf2D;#-Z#)x5aR27-Z#O1zxnlh(#9*i9~BDa z%-CQ#v#`*b>8;d7d#c!>P#n|1CJOw~P=>B^>uhJ;U^^o!{(dyQWe)Ft|AT0#6Tl(E z@l>d7ew?RG^b$tT0E$B#wBiJ<5@L)z0wb5H%aq0sXWD1vPpS1lGF|CKuR(K@%*=D1 ze}Z||?tLTb_8&iBbcxp^V>F;OLiz!nyXBf57#}IKpF(ZDWfy$so6wvX)kkWBJDq#hbierfKY}C+@ zT`|>z@4W3%IOqHm%-^W+8SCVxZ`=)kao+JTv(qY_3QPCP4fn!#KlOWfaLYccOyZBM zlTj2Szxv@0(}$2*G@Gi;tp)w!e>wwh`N4J=MYhmxZ0iMocQV|A`o}1GT=98|6oR_C zi~+?Hl_CO3OW{**e${E8e!+PsE*{TTGJpU<_k2e8)kWkB>OdAba9}V)ObmzVt?QK&EAWR%wU}eV9Fi3s4#lWSFExI^1whuxa9yXOo=_M^_hVd)a%kd} zi&O#S2z?AS!9jFRuJ2y-U#xom64T=k43yx$J9-Ukob%%4M%iR0nAz2A{wAf9L<)(R z<$uv>^15$RuN607L2X>*$SkWbUS|9tw_JBWD5py-UOv-+?RUr?t<5=TZp{6`Dmjnh z=Cl=^|NGLvS-CP7jpne9v-w%243K_?EJEx{Vum_hGqMPELQ?qc-5aCs6nl#>z!Ulc zX>b^?9F3vm0~B>#1*@&I3zZLwv^F;GL)Mt5#zqDdjrk>iMyW{NCG3Xv_$y>1GzV(R zY-$ez2BoDdJB)*8-@!5HeW)MmoANMkX`5jJRz6QWbFR7e_8;$n$95c49;}^F6{7tVu=cUNF(Kwp=q>m6lD3;TN^;t!L&_F11D$;=HZuCAggOJ5Y zKR@UwF&XQLNm;qWCafI#M``=^O{%-C&Wz7MBLj9IYcv&FBYH8=0};dx$QpT-MFpT- zEu$AIk8P_aQRtKjtWiP{V8#JpkPG%c*bnoTv^nL|S`!2uvRdXZYlla-_rv;^|G>*T zI=AWOoyM4>4bPVJ!^dw4npz&dK1FtY}psFVPQjHOVrkym4-gt4EE3!tgz0R;uRVg^!XNokC9 zgDyoB!YCknpff3B?5;^@n`{Uh^8gq@KT@piu>X3Dr9@6VI4jhE<^A8h2;O$?H&I_G zp%bhb{^Hq-On{BR@xPzD6Q2Kfr+90|y$CcSQyknoVs^<`Z9_3bqGYPXED^?z6wPpf z2hg$_87dmaqjIBytCnJvn11v(T}wbB79nutaxkUHYH6xl{|_%e^U*JSYtv8iZJFxG zNJSMI5VV7J(16Ab45HJlr5W7>$RIrkkUg6)f&*&Jnl=pJ*$(UG)x-elq0h%IWzz?& zf=_8Jy2>|@nqd+-Y-s#vXMeLQ*JIoS18U!)()A<1dOeCjD``=SQAR8|K)sm-X-1e{J&kn zSt)ezp&MPRsYa#EnpOXa^PatI+fQ$LbXQ}e@wOs{$6yFsM8%Eq$Vgtdw2(#E7j<>D z#e4SjYZ5Q0oN8gb$kAoTJY{PfbM9O_LruEMEB!OnU^PcBCn$_&)VL{JF(M5-m#wH6 zMGEL#l-GI+a@Ei@!_W>^@Hl#^!6=FiO$D?__FJ(MSxdz*2>#PCugTtu`y@sfK&viV z1~+_j8+`Z5%_g>Dud$t|uXk84I%%e&KwB&NOD0Ry+nFtHMNs_rWw#iGnZ}U33%#wh zwQhZTeQflQ81BDozhRYMeD^;1@SA^Th8kS@&a>3{FEb!fXhK@8GQlvnQj}NORW4@w=QX0qJ5@ChVu&YW` z!e6mey}y>iL?}OTs&nNBv~)ZgdMdT!4PW4%cjY4Se!@Ycw%J$NXk}7(KTX z1iTCNp1U6yfbF}6AUCrCx>qlTw|(Zh@bA~Z1Wv&C&*g9W8UB7s%wjZT0vtVKGQ}|) zMcr?H-O6`lGx$XB!AF&LrD=W6f9?!OOeXv2o&WgO92oBhSnMMl$vq7-e)3xC!GtMNg0LB z=<6WMf!JaJDxIivz{YFt^~_-7BN2`3fLRC-df=Vt08`HM+5MDGXvBPGBM8P^#Fie> zhakG|&VBIg3r@fgeeJrVvQT`7SmIKQ3X=%A{A(8?C|(S6ke$dEf{r=ZdVjy#@#r8N zLNP)Do<&|LqcY%q-3M2}>+$z{6oG$#&NmfXWRzI3t(BS^3zwer^aYE`rJ;<`+Xjp1 z8px=+y4l9T*jgxN%&2`gOoZB_qr>|@)MSH&jzvn;98(iDF%JVIq#pDWn#ru3W&Wa9 zAJ*jC7*`dvTr=dVgi4gD*zMSOxtH@zm!2wg6*k;0KY9Sr2kQ~+s+$G z;di2B)Ky8zBi{xomb>mh2qBCO@R4gSHa{GLmH4z&^igG31d9_n8KKbUK!nObPTi9Yi zD!_vOor7ZTeP6i{fu-T~=U)R4VIG_&GkGzOmQzoe{WfBcEV4&7Tg{NOj9l(C^Z|Jj zuj+#1j+@~fWHj+yu32K;>&M<>nt?>6dDpq>>+3=7xKZ76Pir*x=wa1{ehxi5ujTIi*;C~dD%NH_S(Z-6o>Vv<6 zSG@I1IF0p?RI0ex%DeyWIv5$GaU^SuUO{P3-xzG|IRH2P&o=m<%Ws9>T)zW``p01I zqE-}b1@nx@b{v9VU^#z{9@;Sk(jqK(0bTF}lI9t8=wn$7w_qISwjVzT=f1QX3OVHz zK)(yZ|LnAC~X@#v@x4@=N59!sb zd(^epUMmJLuZLrqL{Y=Q9*)4$*w8K)fknhdW|UX8J}RL5mtqCEVtpptf+(+Q8Zeh_ z&gZiuC6&u(alcZ|UG|n|+=TDioES(eMuERz#TRMRI9$5!9N6DKZou#xWRowiyA>{a z!x`|xe>~k=EL^eSr@VE;FVeSX2rmD}pPDhJU%m0AHC^Kb3Sx~ffAlx-rGLL2zPj-h zX5<;YI}I1OYwLda;=lgf=sxGXxEofjSx(jp(ib9LSWx86C2;)e`W@z--u|h-hU1pc z^5=JL@7M2t#ShdAUVRF@@}Hk($C5ZUtd#}^i=Vpk%bPzDWzdzRDsfdelvNhB{J~O8 zgPx;kB&IPT+3Y|}<5YQWFNgMB)b^MziZ`M5*i51a(}?neW){3n9r#}zny{>IN*{`NMw^xw`hz6wf@?H|P+ zxgY-fAAf9=-?x9^0yyv0ry6l*2}}g|BCBUy{Dw2(Jzu&2^`R#C(5ruFL>`|%Zh5p`W-U=+`yLEOQ$ zz6RE%ma;mQNz|b7)U;+zSkz?Z+=aTuIeLbN(OvGuD8>tr(~+Xfq;HfEOD{PQm`qu2)4FpC%d;~DVscbOJuG=Y9u% z`Gf7~sxNsYSgS;v9!p-(&#%1|E`R+EMlrqo8yCXD<7zMCL99W)FC$}6I{y+I{wbDX z*t~h48DK;~KN>DDtFzfF#mWJfl-~Zm!;ZDAH*_|Fg!GK3{MBOk09rc-kiDz}PXV%q zBIWjf{_74iOn}D3PUio?s+;%pGv+O<48@r&0wmYktV;P&HK_9u92zqt`OSrk7DIcx zZ4WXS)@;}ixsd)b*E>8oWX1##)`-!?Z>9+L_U-{|!VdZC$b`*ii@0xH($$J_ESo&Z zfButO9^8tq@h$cN{yAnFyIE;#uRPD}e;j=U+z3?p&wJ&`aK(3D2+PqTx$?cggx8$) zb@|#k0ul zh0nfwqfw?=^u6HHQ{m^=-iM}k(SUF==Ag9lq&epzD@UZ@XEA_Dk?uliRJFDOQ1qLo zd$jcT8q=27II+%#wW5ZPoj<)M_fmj|7i%N8Iia=j_(iIItYQim5EnSZl)rE@Q$G-hHsO0s-r;$NukWSKNq_rT5nd%tI#=e*=3Bbsj9aKEtzi9IIsdmsS1i`cpJST-WjLI8ord^DD;W+?hi zVx4?Vi(oN?HPP4?1w6m#n3=ZOkaI95NXgl@t=q4_LshbK3xR*mdeX9$9q{=ZUIPDe$q(SN zmwXQ{`^p9A32g$N+eltfvL>GO!e!pk6{1Q0+ zdd*4Z9J$_~@!aF!_MbikFZzd5m7T|1+vQ!Ck50-&C|0m0vEyKEHdJ$^l0qLG6wsG9 zTsNSG8%NYm7&4>r?zyK~q052RHZyF0tX=6stnhfzwT3x(_7cdfvC;yPw@` z%+la&3b7YAIBX$a_E?XtE9(i}9q`~i2i(3gevq1tkx}!= zfk+Cz9;@IJOHmn>epFV?n3=KN6xz=#@|u!Qtn1u|)Vb##@5XzqeIgZ7JBO29vt-KB z@&h!_f>z=27xj}4LVpZn1Q9oNV?ePMO4!KQbtgXL{)hVZ?|Ss`)iyrrRa3CNUK@av zP-2ni^!lFH!at)G^J_E_-+b=3;dAe~1@5@%5m(t(5#&lBzbtt}Z@9V#KKxHVgO9xV zMi?J0!&Hex$}+T2D6aujFpDFkWRAcoXD>9M$VA`=8=d$Ub}Y$PKX5C2`(wX>kN(4t zj0>L!k{1m5fvymjk(v>jN|r?+oE9=&qA)L`3k z-FRRyiYee$7*cs%FmRv=Ke=i_mnfu3v9#E_q_dfd!kl%K$!T4tkbI;!T-S5m-@WA2 zIdeK1FEqm|lpk(yl~i(PYw`mC{OudhfK|^w0e*ecF1QARY8!vB-CReqo3#JNR*JKX z!02cRt(dZ*?!Q>Q5H5c0N_g5iHK*e`%C+EVZY7G-Ffvv#v*;+%U}n!6%330)uUZ7R z|L_6Wz5NjC89j;oKKQC1!n&_tXv7FBrbdjk+A{9P7!Whck`>lmW)plWrSz#QJLmoW z?!7y+D5{G^rLqya)KM{2Ev2}=oHeTzjP%WnVG)9`=l8H`RR`RHtU(L>nhDy+kUa!A zl4g)yhr;dbd;~^NoOD!X=%Jx;9XD0+4J$B8^@{IV$mcZ;0-`D}q5_gvIyPajN*Q7r z)kTrRI1As}um6Zu;(B= za_>Pic$nn<$>{wg@93fv+hNgCjLS6TK*!VTHq?NW2plYs3C=ls^^w7nAHK*9whv=8WFaX?j?tC&1^Sm!FDWb1 z=QG(@<;n$BF~uc4uVk<6q~$Go)u6E@SD2CNYt|h57>iIy?LZ&iCu^m%Q(TFWlHvLR zW45ZH5=E|~1~joWt+<1~EOKQv&ZAXcLbZd2lxm&LWi_7HCRU3rN09o?^*#UbvWvRc zp@O=&_7D}CE}&d2LPH)E%oXUtT!J7NKmT|WE{`44SUnWMW&9Vh3%}Qna&hBzp(5J5 z%l7IL=0&D2r9Eh|@Hi1a;0S*dL!tC?o=rz_p^KLpaNPX8`{5GQF$iqz+o0d@;gVr9 zW(t}XLCIW4)r<&CD378ZZvWk`eL3>Qsw|Yye^e&ZZ)7||FBwI;HBjs-gPv+ARA~|4 ztFQi*>grks>2V&%A|?DB#_xb0HM?t%^ho zZ82VOe6&9aY-OPV~QD4+4~$s*WRJER8cb&J3d0LXNuv8#vB zx#gp+nWTk6>0s}WSB_79+B_rTh#d$ZcHD^t)4snpGR`SKZd3W|OU{pw9wy*&fHTk|OBM?~ zi@-$p(iqjdZ{3}Uu(BI`(MeXp+;r1UKV5>ZBeR;)Hc~vrJ!Gj+BDXxV&x6|z8c;SH zaYk0ZR>AQTwv}q!o6F@e_z)>{qAM7;;*V5*8o*61yEgm}MLx8mD}9HV3E-B(;3_hm z{MdL(Jvi(@S*0f(A0R|bU0p@z>l$=EU$0RnYU&r2kue%{tFwrT5)h5X7%XxiiHJiZ zWPVk}H>bL(5|do}gP#Ar_WGWGMS4Gwew=l+yRy|fm-qwR)J9}7>1^S1+P@>5h-U2e zyZX#1wEBV_F7W)$p?!txx<8o`ZT4i4}0*xb21q(IYE#6Ni2+UW1sjRIc`x%hjklj=(69JD_9-P+@9p zLYt667Hy~kQW%5MjvW);^$GEF$V8D}{+5X;1O1bq8Mm~|qS@wt$$@;Ksw??elfIG7 zq79=mHhNKxF@l)I_KM?d4n+)h1Of@tBgSrHno&gY!z#gi*RG-cpT6oh|91Di`@iBr zBDq#1W8Lr{l3v(%LY4rDA!ZL@IP;nutI(55J@`i$@FPzufq<0GnHZP(;TN_Drgk=177CltG)!BnL~W4_fF9XG?=G4l*N^N>cRL#nFa7^IruAjO71 za6`*3E+u%N#nOxajWyYV(b^RGLW4%6Yg*5uh`$Qy99a}18RI#PE69@-<10lLA-1TZ z>PSD_SM-aBK~Pgw+3JlOAHMCApa0!^x7@S$Yh&Z(N7>Qkry_{A_Dg+o%PV)rT{|{j z5$CnjWh_w0jD7ygSHRVuy%XA7avlV)e*f8KDTnK>+U!{%ayrI;-}o~4%uO#tAI7W@ zh!YMl0?U51M6O(S8=Qx%F?T_;cYtlV{V^j_2prz4tJDPiQyCxHHMAv)vN}^Gv7&Va z_0j^*q#)`*&*(Vn9K%Bc33>=CMFSi|@A*X0Zohy47DH@pM>q z(TTp{Et6=o%oGoLmI1jj461$LwLdY6=zo6qVl&`}&XbjL+28-jEJ5{_51-?FJ62E1 zsDNwQq6c~Sb6?#2DvVwtvZGR^TC8A~D&up}bEIk1Vzq+*5euWKi>w>Pd93R3akL0@ z#{6uA%O>oY`pPRWeguvcIFgZBu`nF1`_)uXH+=eMZTkBLFb&{iN5P8I$zy!24tYR$|1H?(K8YP>0KDv_9S(C-iqe%CN$}LF>@;XBSOBJKtkgLW;5}mF9yve% z4!-Qk^8f)*$?DeOUmbv9_q8`-SR{ru#kHghMV1iMMrllwKwo4PMbosT$w(Ln&f10_%fH*69F{uqP8UFw~F zDX-Tl|afO8A z;hOYu_Ndye_*;vz`<|_Z+OI>yYMvG-1*_0)l=ix`KcteEdp6KvUQ3*4Wbpcw*Q?_2 z4!ke_CNFWizG+4wEpbtXwzt0Zx=+B-g2NVy-fXSe9UdKcKW6$jsQ{rzOj;V>~A$3ps*~(wwZ}#lt_kp)6QB27a zK4)2r8#Udx{mZ{xzZ#B^ zQp{n9$}D63@|S=4ILz>s31-Fqp1{Fq^JwmsG1@%iDE5u5`M7zON;sunyl4DWjS^FRsiqg zvCKlu9#<`s5c5~H`U)H&r6)D{mm43C&Ow@5Y}cTO1x*L#NQr-C7Yh{*sm4+1-6R-% zMk(;6@|BMZkEq2S^0-Ri#U!0Npp-95;<{Q7m@{iuqd7loR)g8joY`Q;gtX7J`|a)Z$!%M` zxxdY96|^)L%wlmZ7_z5WOA`j+&`V>s=(@4{v~3JqQtlcWb7s_9LqpyK{TeVJNK-Ex z@ZD*@9)p9FKfN8q9IKRWJjOo9&Exqy4wG)|vA&%(zY3 zuQw)ION-raZnoQ|CL1bmYP7S{nwssxbB&F8bG*LZF89>fXuYEi?l=LQ-isQWo?BmU z2meqb)0P^QuCrS_UYB>rv*x%N@lJvCLe}USg`9QGQ|F=U2zV-TTLq@E$&#QU3B(=* zJf$KRNOW6#zwopBc9EFK1sx-EKNXzXn%;3{dxITEE0tgOFS|g3wG%CdDN;>NBY(#W zU-*@HU|J5@ z;1+wcl^#1&QN>ir_U{M;WipLLT=4+BMkncJytcUkGAQ>DRFGpZ+F8f<&EXAJ>-t z-JwR~P6r%`8>QfJ?6K^`4n(I)=plT8Q2aqE*`PurvT5i#neDw?u}X=@icCaaI&iYf zPt`6cJFFD=-UQ|3Eu%^RNN~n+ z5;)+11~r(3MHLwYvfQ%AYd8`#rVuN>p?!shv}1dpkzM?Tp^AMuf+dz{vt&O0KG7K3 z-K<18ya?ee-Nj1E8UH{n%5NK+F{j)Mu^!`}!g;Zb0s-Vm)i!ApFW|0sJtEeuA31

++hAk5I!c|XZsAQ(X#nWi)LZ}UY>h%J!o@^MujIyC4B*fGZxcm*->tI;YFw+beD41zY{6hg52fp198mm6sk zAZwSGq-3qbvpr4gq#sDqcMv5y2?R)kLP2n=3&j+)c#eApGm?Ln%OeK&ZM#UYi(n2d zZk!@b${gOE;#TSp{GegGVU7$~BX!6z*@AEGbH>(r|O7)Ao96DX72@EK4PD{4=ya5DSD!2H~$bxKo}Pq#gqa z@M*8S+x^JRYEniS^}q)qWg!WssnVp(Asz{-E(Ir^)M1=Xyzi#!P*S9m zc)mQY6eM{-&I#3l1bnFjj1sUGnQAXyAR+#e#nBV~^zF+3X`L*qd)?%D?HjThhX$67 zo=`Yl{<0-`KPa{Gz4$U_2yMgk`6!vU%yZ()PDoieVw%`{?!Qm!9P&~Dgv4z@&IgI3 zA?*-PND*;VLC8``QJ`2%giaeMK*mIDMOt5kc$y<2Efk#zZ_9M;bQ0^Y5c-u@l)~eQ zMQkzMRgPhN149yIvXzs{rDO{MD1IkadQrDf5QTTARSe5Emcj+op44=r!%UTq42~Mi zO3X1dScK7$VxqERon+#KmLMAtz&o`hmORs`q@Kcpi!V~qL~vOqh$g5e1fWRJ0_!yi zs$d0GyF7p!O^CTfVObm~CP`Z^22pHpm647Re&DimgS#VwnY6rKC(lvhFn%I8caoH0 zdS5%2M||v1t5Cl#--+Y&lW7W_WAb$W{e9@R&4QkwMF@yGDIFJ+^IZf^%^%?S!P~9h;I2+yS zh8ofEHL71lCDPOx*P&!#IzL)=|>kV)` zDQJJa_V>H#iy*5bDP};hfha(-3ZXVrxF&>P?Lb253AeB&usc;#A9rOx@>wA`^05iAb_A` zdnJLP6H16U9t%*hcIB?I<9tP)0*uA? zs6nf)u>PCNZv8FU$rDMjL7ZfygpObv;UYQNF4Sd^hIGq|88LSg5*yf6rMpqH4rZ@oatVte(U@A)5 zaesKwd8D`&c9CA2W3X6!ui|{&ZEW*LqOn7C6M&Uzmx;|Hfen>l1OM*6n+TAK>o_bg zMURdFq*P+2(eePuMolvcgdSz|4Qnc8GI^(S1cfy)lVFf3(lkt2UrM)8aPPf)%^(vk zaG78aZd{h_k@Rk+{{mn0R`dqF#b4{$!Bs>QDBH)PRR9KGlJuA=Pvr)?Q54Ey{z6REtK_&Mg8dFmRsCG{B6aLtd`@bWOQZLFR}8 z*ua{(UT=Z_gDIO#Nr-i$&T$w+_9G+xt~B5&Px;=TTAU;;8f32Sd<2q2f?XbQXB5Yj zYYY(A+XiI|LOI|#s&@di4a5y<#T}W43WNv(`#y>p$-G$bbOdEHSOCmS+EGEc&J{uj z^OfJhdQBlb15EVQsJ}kG0uCT?00~_KW}1NZ`Pc{APq7ob=FwoFk$J@u&8DPp=7GvX z#;pC4P;jS6k4qu#>Dgz7qItqnvf6?SmOYUhEjEoU&=R^m1Vs|8_fvfEDX@Xt2Pc}8 z9ogd*OLq2{`y-IZwAm?NF#8P7FVH^|iEl`sA9zoxFO&mV7>;0^P};>$lP3FwwjDI3_?x$GoQ8H|Obin3IF4A^DI|C;iybjC%$77(E&ysjrWjd0WV~25 zKblQILm;P0Q$}SuY0nO}04r9^g^t-xp_f5&Y==%&xIE6FVLWNKOG3akyJ-G>HfYs+l6 zh8f)Qntn96`I%*_G!N>o#(u=V(rzM{n}cGcNo-fevB#@nLX%@0#bu;53=EiD`RST+ zxdQ$DBk=IU2WMP#(N`7&JYI0`22YcUA7wCHhOeuoTw+nV!Aw1#+4 zve80Le%u9HB+LpR8a5OQk_sI+W^lc0uQ!NiixKxe#P8n1GqQU-o+0OzKkE5a?Z6Xz zP@(0Z?dYypS@(C$`h@pMnZTR@2x!M54w1wZ7F8^Ah)!%aT08M%^0#=16Epsptz>!V zS1MO$l&jU7Cj-cl!67wiw>8Ys(FC5dg)R`}Uy?Nf^N6)6w5Ohg2&~0I-292CWg;Jz z+gjWdDhNce*xCr9SIBmLC2o8v@5Oiw`xqNxqbUkh@922av^JVqyv_}sq+`aUG)vh4 zFBhS0F9uzuwQOR`818|}Hl%fR`Uy#nbv*kpqd3u``5uM3Scy?I95Y;e-~ArQ~_>WMeMIAvY~hrnOK6 z{k~2XkOOUTQfV|wppFG#14w8@w;R8yVs2O`{s=7iUe*VbbsRd>YGjYq=^8yEI1<*Ns~uvF z*@iiiCj$|L%H={OMHBaQU)#Rmae_9$%ZT9cQDU$Rhz10w^n#~RA>~r#aRAcbDVAAB z#|{Kc!@iu(6z0m;+OJ%!9UB-%poP!OMDy5-7z-Q-AhHt14=iSpVi&04vY4)*Vs3r+ z61EzcL1Q+Tl&eE+%jnf?#mA&xC1W&ZV{B*rHb|u-TPx`vij{HCJ$voQW-VC4`@$7p z<`{wh)qy?~3nK_J-#sj1Z)Bon6{JUbaRbuUSe&sN8|P4<9Ed0YvWW{I#F`m`rYxf}7;OF)Of+7>mdn(u3U$x#WHD!$W>u=C zr)RAMwbB;s9WW&fbn*_x>t@qtaMb6c8*9^QQ`fB znad9ftisPX>=0{5Cd^*3eNM!TBP;Cv>!{yYAit-pR;5li2q!WvC%` zr3y|l7MjY>hI8$pm8c7?L+226Ak(x)f+g<5os&`L7#J9b;o)McNw`_;F{8}eS_Jl3 zDk*5Rn34d=E%kzocTsa+cey*iL)zVH8ci6_N(9V;1?2ZHwZY2gYF=RvR%uzWVh z*dawMP_fLR*l`8U*Fmgu+G+DlS-$nHE!suwRP1^>cz;Ojd-J}1L*{$FXaD7K0mL0U z;_BAh9`Yi}g3#86=7AeD1I_5Ov0~>J3v=Jm95NVO_6jQ=O*K-PQ(_xn3b7Kbhlvev zH|iYt0?DhHra*%qBt-akFUsR_#TTXDjP3u}-nr0meGJyg$QvO~Jnth+pzuX@|aU zt;M2&N1iLI0#K~72C(v!PB?UE6owx<=$B1$u<+u+)4KyNz(mKBQKkLRKkZ%MzPG#Q zTU88vSN1+Dt&=_5`6q#cYTAt$Q^|K?h19N5A6dl}CWlZupLX=Cy;qZaW-Qk>V^(lImz-f| zJ#7&JW8CCjwWe-xnd{&WG465)wrXsBBC(^*p`kHFV%#pP;FMhV9#!i+Gor-Tl@&jH ztyE-vJ^A^|LLuk6lW7_=-au5oz5SF^x?s-Srtm;V;r>1@93<)5NlQ=lPJapn0IY2b z^!P%kaJ>T*`vwAdBuFJ?3gEd5nE+KB{2nY;h|;YR3OcSbNGu3Qif_7e zH;R-#EmubJ_r}guu6dF*cyS`d6#?*fzkgKIfMM$)b-$ox8>N)2B3tLd;l;mL2TyU; zgITA}(-NcWoQW_EaB%JUn2Aew-L(hy?i~j1zB=8Zd0#dd2p~c7ctStWG7kYb&>(w6 zK)Mc$#Xmt!0ifLAsooSP8AURKja9gYjBS7~j@<|=?)g<}m}-cNRIP%FA#?q_=bmI0 zR>KsrF>6^Dag3qN{RU962af}dkLc0@F>~j(c-8>x15qAm+QygJ(U#~e0wrAkyyYnl z+`+bO+vYWh>45{14N7SxGRItE4hBpRQ&!HY(BM)8_yT#bFr$daKwy->EQ0?0#me;* z<{Q>$z;`R|`M&2!8U@Q3Ag)Wivb@JhC`-EY zY{07XM=%hr5~*U(P5^ExPL^VrR|yXEjR@<88CY3|uE9`MaVKG=HUK_&UPBy4`}Sbw z+^}JVmcWXp283vFkt}lzxy!_wP~zcCIV=Js#Y^-8=!xNQuY-h!^j3{dp7Z-b%TIv9 zvyuZ$%;4d*EVL9aT#?~xP*Og}ZkbJfCss(SCV=L}feDV~^EpjkPqvg;7a`i`5POw% z7p=V`%{Hn9oQbbE(bLve?;UAUR{1Sz95zj1M2zp{W^|7od%^4xla)e^tz6sL zhK!B<5C-YEK|9(}fp`7|)>N4&qYn>`d*xVbXPvl#HuQWsO+xB?y!;efWWFOQJLt-K z;O(`mR~xe6Q9^o}?(<~Yde>uyIc!h%cBT1A1vF55?9M?_g!l?d_EJ8^_cL8e^hx?N zP3nEdIw5yCpV;LSyF!>_vG#PED0k}qIOX{abS(zhfQ^Mzt#YbIMoX%tr68iTv0_#T zN+E4{AdVfg;Y63N#zJYt_M$bu561y;VHlVsj_JS}wB5LITcUp-h0YNY zdHjenExMi1^VbRQobTB|3HH50yg;Jyb@CeDpyFk;V2oJg1)`EPuxN?B(<}~S7$B{v z`5>3jOM;efbM%U-0HF!6#<64;HwsLf#r8U8HTVXzkz4RF814KbY&P@q-EDcku5nJCW6s(g2rbU%h$-eZoy2S?BN%nRsl=mdBvi=^Wm~)Q~6) z*FC6YPqfvn1A}m5b3=mwgnLQ$mjoaIByMgGJI}()Yl^mcht@3|UTQ zhJpTZy$qwUjSU6u8$+;$V}j75W42^SZ?UY>+L~ANQG%*uM9`t36P+ah+yfqx45%d_ zGz77!$y(`iJ`(FIIqD@C2vo!zej!we2}Xif{=^J2G0@jkf8=Jnn^+N;Fekgt?YIgJ zc6y%%P+~YeqgAmU>&~0!gpuHMFHej#R|ZYih{B1}7@b0AR5I~ef>lg5RdEHVLoH}q|BvHON*2xAj z@1^~DS#BE~^s{JvAkocxGN6d~bC>419qy~v);ICE6w=dApKn$y=J67q!ocmvyzfp( zlh&16`{nUMPhfunGXhssEb?P22MsCZ47~FyA!6ddG_l`TkW^MJJ8;>38MPJ+6NCH| zhs!3QNPDA4$(~F&=|%BUELC7`XOr^dJX}NDVS~m|rme^c^IS`KkMHgLZV;X+N5Atz zEkR`3m+<}q|WG$466)28Zbs?WsG*^U{p+=_`OJ5#$p=f*weIeU?@Tg+H zRKaY@!38M><;1`+cP7jha8((|Uxl;GuH1QPL)HpLW_>$P%YDw-bN$k2rmoIbSJA>V z$&I6v4k+%q;2NCEq~$^+AW$!?3C%q~Y!k>AJ;UZ7CoCbU2l!~DhJ^eL@>>gqRVQV0 z9N3AipGu|T+Qt4Gi3qTA3yOG9V-GlZXvC~2Jd9QhE$B}l5}>u!=tBatW;K~S>_?BP z1{hrZGP3NK;P!38543+rJWo0O6FwwUV%Gr^%SS*TS}W_g8K6EY5WCQz>GD9$K9JuUOi~Rt;C{kNjqZf?6LVi?EFrC_` zL9z5H3_)1tD($HQ!ru@qkXSH){{aYb1A!S>p7MARE#)a!gPz!k%rJ4l3O|GI3rrxH zC}`~=N~?Xjt3DW~eM6LrB@Y&64*s@^`Raj+?B_`xT&zsu3`1*{y-tI^4d%5D7R(Abz<3<~qWk-jCNzz3Ze_7L46NbcB z6Nv82AlW4yX1*njRiN*_(YM2@!uAg+4LyKAj+d?&OUf#7kML#1nDt|9qzpz=R0TW51lv`&iPlAb?v@D!N4=0=x_j|Whr&FxU9bZ#}9AZxY4Qq zppSZL0+qcJnS*5GefJf^%Yb|-@Z!Rfwh|PsCrSWb#|l`xlOYe@VTDZDm_Xo!M1yM< zLH3rQE!5ai2{NA&$ypxjeK|KIldbuUrYrr7~9XI0o7Z_H`pWf!m0~IK+^Y zXGxV5gCNIy3K7RLoJkg7Vnd|fAt5!LC}(y6-}xM?Fi=QIiQ~(Mhkw7bQdx$@yjgRH zeq5u^d-n_(=5QT9U25P_=KhW3$|sJnl5kO87qJwllD*2kdCb?*zVVI7Ywg7m`&hVQ zdA2?Tu@id$YByGx8AXe&tx-8T3>2jPw)>-_qlP&Og*sE&*5Ls*&=|4V9Om}23GIs= zN(ademqVx2CAvDfV1?`?j4SRSAQ_xRlmiKt`-;bQ-}K?OwmN8T-mZhf_Bfqj^og!< zRHW`7+CTAv1PB5syfZ8k(L;AVw~2XW?cw5jF?g||LpO#n&^lC*6$9XFhKsF&I8ou8 zOkTfI!h~h@Q2<7H(oBeQ)?b>N^Skcc^ph(NU~qlU9)LA#I<8tpE>u-y;+_)IhL064V62KjFla1cTQ8*}P() z2Zo1e$kr>(uFP>z7!m;ChT%G(p?o95LwKCNzebCv*iU>}wh1%&IC}|H`8o-o5rFq{ zGK0$IP&(N>1_VaGuwbDzIlNBizEnluz@yKVH8qFkU$SIa_4Pf?RhR9&k4vn~L*^J8 zt6-#Xe{FduQW79K(F;5|PEa3YZK-fS_Y!4gI4=y#V9?G~i@m4_4lv0GMt@<47uTp~ zH~@CtgY$}7Fzb+?$SY1oLT&aHv+NR2?M$c#64L-eXOs5_|B6yDA=)bIitCZykS!Db zARz(Z;fD{Kv!r;E`xEVp&1?QClpwI2!6*@FHC9-wD7EEi|>3aCrxJ0S}Z20Cn~0=Go9Xq$49m zf4!{-ZVT|TPN@R^G2fgg4=IK0`IV+6R??&}&*>aPM(0Rfu9G#U1dRqM>PZ@ec3_Y4 z0<*qT(;qCrRVsfL2VSXgx3Vi9z&q+R=O%g~=O9F#u7;c~ox9_4U_o9Kj;$Z_3?0~$ zM~q2^QSSY%i8jWKV<_54}Q5 z`7Xw5a%K1cow%RnHao4n6HWBCa2@wH5G*7H%=mol1&Ps8rVwFxAf!ZuVI39??%gd@ zx!4Ri16T_Wth=x3fX1Qu*arZ0f+6FC&cn0zY`wGCC2>ZseVVSyi{E-+YDf_NoH=vg zkw<9Fm520-6*Rzjtv<@Y8-T2Z`SV)Q?Tb#Z!Tr9V$?GP{7LLJKoH>^`qek-?+W?WX zLV_w1`n!U_61Jy-*XhmwtY1h?Ev(ES^pBtj+Ddf{!q>(@zlgoabFmxI_-u1gqw=@v zIcn=`!z??r7%Pc67+_Kf20xyI zkI6_Z_)65ik+~6K0YF=P-rDz%ePgKrcI#LO9Rb7$EC_jfkcS5ITP6OM3b+KkPK?zE z^_xZJXl|-=b*%)5!*eY|)a$ysItJgHo%Q6w9nmJfuVtNr@md@g*O%^&e4;beyuu%AU6Wzg!3&TMv~ zzzaSHN~Kd{Omq-M{sqM(bXOqXi0pc|We8$5_J|7p8UtWEbi~aex8Hc9xL6$XyQ{!9 znqypaPm^wL9y8-OP~S*Y*^!rEsF8>@Nbi`C^rSoDu&5nIv+NOCCmBNr>gV%vtVpuw zI3|h(mFn~ujpRLYxIeQ{5IauqFnR=A7f!rDXmHzLuBU?)JyxM~in(@T2Be~{yjYQ4 zj2FD~--Pj4R}lNb+(H*|m8FG9p+lK0GDmZrc)q<}203kc`r?fnJ2Z{)aTA(+n&#)q zU30oyN#__FE&Br2PLm%G`Wg2Ct`JsSoyIR?9^CENY?bSeY4G}n*KHh&ctcBv-p;*8 ztBG$MvIryBVr~IeT)~deik*JJH^r{utVE$>5$Lc&AOyXE%LD$Iw)ZDZaIP;;o{SVX zCL`v-pbGp)gE)Ws#v4tI&<@?ofyBO7RW$b0-k(rV9phl*lQ(om zYXdM_fQ-mS+|daLW`3-9naec2S@x+$eGFqOk3Kp8zK?llhXjP0I#ZCK6TQj5sBCQ4 zh@b+1-^Wq0h}em;({BT ziPPqm*j?9F@^-wtvc+D42SozSC?taBvuGKusJ zW)A-Y4Pm5HlsxAV8wQ;uhpvG*E+40oWzmVv#A7;GGrkfvBpFUY0(ACXmOIJ=6B4!M zKGne`ad~rhU_gV^AG8XhQRoj^6eNrafkZro^9)u{lKH$o#X5&*D6T{LYQl`R21qs_ zUt<-2@}^P*mfItpre4`6U8^q9QbfJ@^TW=>)(%$-L)3W1{wNZIOvEw2RVsO(QvNFm z>|By#AN>e02c}2>F7&R%2KXdv>Jr4h(nLjtPl9OA21+!5;&=Csw~&{H01W#aJ8V!v zcs4(SqPW22fykG^kJ{q$MXaa>ok6+$Bmc{owjh7aATo!1KOs(hkHJ_9kNldDvPS}j z1PK2*fBp=!@_tXxe)Pm?-vj+(XSPONy(&=YuJ7tQ2|hMtYl$YED1dDw?I@UER?1A3 zC@)te)X3SRNeM1cfu_?PgvX=!bH>aCC)S*@9ZOFLuei+5AOOVPs^RNQJqfX4a-+J9 zT{%R(`TEikbAc%rEzWPok)n@-BCjpY1=zW>UjSYO;6=&}dYZ@>oF)f{AJ`gtELRw@ z28|Qo56tm3>1l^kC0AY3NK{R!uhaU5R6Y~_(j$Om2>?iLAPh3n$?Jgg1yd8e*key(NgU(bB!l^e0bhP$Liu}jY6~?=?azw~SvRoKLOx0Ke8w3o*^Y5M zYdFTSOl02|SUJtw>)7;XaZKNPA#h~T$3bH`=m!rRNa=f!7|lLaniL$QtYq*(=9dZj z1Bnf?RxCm@V29yX&G*E-Imj;z$%^^Erc^b9pp77og!~s9hpXgu5ZFF>gVu@GPEfj- zKa(g~>Nr13%c5$L59kSswe+%zO^qt#5?e2GqyjkTm&--YLplzk1{@$Fe;xg%N|S>l zn{g-%88PB$#?}j7a5DV-7uyYRFgol9nZ!Os9O~Gzu51bJA+n!a(Ls;Ife_jr9otm2J6UYpZFu02c$qek;ixr zN)##IUY(uIuzh=N9vpm5`wzdl|@c0SF27qzFlZMd~|AwosyiQ%Ozu1Ewb2 zbkgE2?EYkgDY4=?Mu#q<-TTO~lUg!``%41F&q;~EOlq3ZRuBCHW3Ye!u(u>hNu>^- z&+{*v_%?8@H0jy1&bs7n!8v(MY2-O^+!n$1tM&F7hIY__xnl0A-Fd@gM} z{kFy2M@uu7%Q4KI(`@!>-P8(hXU}dj$7j#6+xGSbQ-L#D>&=!{(V+@%!EI!=_ITKL z+m<>zg1aTT-_q=kH`kjlHPSw@Yf}>+=ly~a-4r>ceRCYUsy!b;6IvS7+i6RkuemvI zCL)>paKEuBXBwQ2o9pp-0ULZ)M-#S3(Xa;9Gg&ayxoNq|y1JYnTS}9;>+AAc?zrQc zuT6%5NqGfPwS_XPcfY#&tb0Hf3Wbb`_+5A1Jtjg+pjfo1-JFwKno+)RVH@6Ww{(1Y z_iQstd--zS&N15)PwFt+lTNh9Pdu^1SVSi-v-?Yz+Ve}7;c?t9Su)G)FEPhs+_&2k zPM9UORXG0mnP&g^<7OH;e4N=?q7EJJr zK$mggqvI_t1q;F!3t9_01WRK9Mln*pf8P+?eRr?vV9XE<3^H%ckJ=M|*p6FaiZm&E zzT;o6ds}g={E4CAabptEU{(48HBCvd(;s6u;8ss$Pz^`R%TK0bnAoah>xDqVtkHxZ zYDP9{ZXu@0J?lUJ^TLgjafbLjdfuL4{IZY5=9Zs6Y6<>tQ4^c)6W5f zz1dQy2&SC722yxRU88H|ol@ZRguI2a3rVGTLYc(<-un&{RfqJm)6a(*^-$|QCp!i( zv0v4!TX!btBjF+m4pKacJ%}*~9F0z-Ae%h$AOAi%Fept5j&tl6+msDT~PfJ zMR;btPI^VtJqVz751pz&dWwCR=DDfz=QQ0iO*hZ~YkvQias=jc zF)8OUr4G$vg>(SLqEK=-R9m@GMEI9Ugsg6-2P3M|g&q@&YWXEB0ohW_36iZVHz9Sub zyeW~FlF@JL;U;Gnf?@!{vi`Em{`$YBo9|JT?}{sKUR>4Xbr{ZDg`}}KjK{P^3|dF1 z@gQw=>cO?tGDz-=ikFJ!L`@*%%DRe5ok_=hrLxL%anmJF<|s>ETa&6Sv_fe@*+Tw0 zm9spiQW{S3I#C9%M5}~C>f&Qt@XsHV%h~^0x9(X3a1`lrgLmD!n`aaX<1^sN^e3B& g#kzr`1%yohA8f^9+vy@+2LJ#707*qoM6N<$f+<6g9{>OV literal 0 HcmV?d00001 diff --git a/packages/apps/escrow-dashboard/public/images/fortune-fiat.png b/packages/apps/escrow-dashboard/public/images/fortune-fiat.png new file mode 100644 index 0000000000000000000000000000000000000000..27c2f9dad688b39ae6881e4819d0cca864cd4e75 GIT binary patch literal 8856 zcmV;JB4^!+P)rJ)^>vJC41M}E&XhDS^IZ&Y{bs4 z)OuVUt-Q+pbxh29rsuqz)c@V}wCGH&%=`~860Z5nacTy5s@L4k#kS}yHWq8OeY;2J zemt_@O@H;^gTMXvSsS~i-+lLouAiQr-FJF=cKz&ZqVu&vZi+TIgcHAvWdqc%1JBM) zbkz}{M6hk0(*^a8E$bJa%wXKtL)&70?Rc79IN zRL#|O#%&O*;kv2}P)VP# zH4QcZmRiiww|SVyr6t|-}no^N1y)G#~xlJD|p`g=8wGX?Cku(8#m8Z;LPV# zUDnhZhCPSwmVv{Dp^3w*uuVG zBCF8Z1T1QsTWo>2!68}>p8a7#LmN7wJLOar-D9l}c4Wdv3of{ZFy|E?*Y3Ududgo~ zp0{dDGqJG^a~>nK?$~^l+?A9vnlaJTV+q$Cz&aFV)4Gq=gqQH@YOkzMLA5%`|78jh%yOQ7E&&O*L zG@)PRu7-Z1JK^T+9jR7E*X3~ev|VLbN5xY~F*PoP;^J%x@=BuS(yCX-)^Cy zC9gBZMnvp)WiI4!h1eY#b-}HHX~K8TK=MR10M$X4hD_zzFDO#V2<_UpMFy&*>YWjY0eWq& z^p1F0T~l*G4Ca_rhOUuX8L;3$lHL3h&3N;H*~0<}hbej#Z(rGkgCWT)b^`=emgC;< z<)Ldw`39fLF$!f|DtAc(0H%fdQrNW}9ZKl@%UGou;}&JEn(cW6HxL=Xmhr7e8(MQ$ z#Q~7i1~QJ!Fzd{bXP;WAcUepw7&?j~FSFekhjM7E*0s06g0zZIo=>2;fygq{FZ&^~ zn9}Y1K-X=5vit$x_1Yyp9cg!fiuhu7Z8G{V8V|7pC+dZo&@};YA`{uQxfzC|vIUvG z+K=@B6DdGjdyR3JkZksD6gZ64Mk*uWCQy9Y-hq?@HcO7@qpDt^_Bxj4~*-yH$skKFl%_E7>}6>+s+5Gen9fq+1 z!}x%qZA-j@GFgO0V;0r4%vEk6D$p*~E8Z%*#cmVTyRCstuNjDjJzJ3nh(ZED)wjhy z+^9?#aSv(~C*o+Aa%2(~U}v#xXqN%&fQoBRNwSt+7d7QTAi!aAfoo|+NaQ872?{W* zHRp-k%I)DPfi?5w+YEhDFi1BDnFIhtfmNV>K!qTW^d>NqI|_Tbyk!T;E$D~-E{8pI zJ^(=7m~T%br&fgo=^ z-)call6C_3W;9c_(cnZ0&p0?Ux$mL0()dKSlwgfWkUo9joP%7Of0Y6I`g^l{1o6Su^A9v=P- zS6M;-2D8jS9i@Sj*(~^GRhj+U%61jXWO$*tG6xhf0ia@bbM4p(fg|llcSn(xBJil` z7IU}+?r!;5%ro>)Nm@F4_>LP4Pua*VV9HM{k&jcNR$HS)REu z8AymIZvXAMSY=cX%GxL&^RTj0e}>g1b}S;vuU)v zbgS;yLUGbER*td6@idm`_Ojd}NO>c#j8vPD{rwkKfCU?E(Fh4~2QngitH~^R!T7vLTVaqyaOontbgHQnDyro|>(z zxi4ILl;G&%E@)`a3~;zMW(~`tKpku`%_?b=hfxeR03#kdC+G{ix@!yp0`5ma{sGSs zuKO6sF%hFq4=9ln0FE+n1?CYuIrC_L#@s_R0ulE)4taHAQvZT!%=R`J%?@{X@<1tg z!)CRGk&=KF9bi%SCBYGrP$6@F)m^m-2oORL)iy#KI2$)O<9MEdhCLI-bB;lE0*WYS z^5=wg6$6~M_0U#*kkCY-&6g&I<%1{b@@sRL>;_w}>3D!i-HF6FwgU$ikyk<$5t4^C z*?=bZX*ySCt;hQ~vh%k9n+Hp<@2`R~00!HK3?uRs6jCMuPAA8F`LK;+uV3r&cbJ)m z9ULVb%3~9*f5!sNVtf*0bI#O1?FSZ+V6znG(L|>Ru-2jo2D051lft#`Dt(r&vMB>UA+@5W^6X4?FYmDPve>-ak(n%CF zL4O@^u-^!pCh#%~dd+PGfH3tgi+Tnk2gc5+~*mlivWiD@s0UKM>01j zEFz;;Vu0#RbvQ3#zD_=PkcI`D^a62CajeAT0xQ=k>=T5@3os^$wJ3B?=!UJVo(G^v z5e5j#lBd8bqQ{cWfr%iVAx>Qoqx~RP!Y8}eLml&k#9>ABX>0PO#u8K-D41ZgmB%yH zOa@9XtCLM_l8M|CO{M_U##7;|3>caCb0&8uS#1%4bE^O?ZOjm7uKyh1=LZ)Ehtm5z z?H_;5PR{J*7T*{kh>&GSfz!uAHV#HQ>^}K@9&8|GF$x7|fy3j0kOjLrdyK)z=u$u` zY+(~i>h+4z45d%N30)pJH&p=!auDzb4*!Q-6+1g@G-fwUpsAQ&kM0PC0lGT=T<8pogkmNv0I@ijMK zrR;uPlb6OlY|O&QR^5`285bZ`nQ>Tat!C$sBXrc5!#zYBRd%`oAkYT{PXrA`_CeiD zk9otL*<7%zSK7h(`#ju>s2`Ei%ewnGVIsnIgA?u&==L^*PilGdQ~=ZfOl3Vlz5|@H z4Ahl<{Q+IxT19CudlBeq>l#Q9NYDT`t`n9D;2{T?dNiQ&PVN+Im3A zE3~)+6P>|s%lFs1Q*v2ShD%&mJ=n7Mctyan;v)+&=(yO$zc;KvY+zzw4|AnxAEOv_ zUD&FY<8BVNoUnG}x)u`qeL{vIG8bgsvfju)$S!j5fZAXiJkMMi07vhO1zTdr+*Tj} zL1ULn9P)lR(D8LFf;$;983%^3m<27j^2!=kh7&ml)=*%%8-KFnYE2=XLh9U?4h}hH z(H<*+xF3?fJCv!_6AvOEwQ zxCgEkbO0*(rU#!zD}N<}qY#EF z$zz}Xq^BIy7CW-OjDanTj&ffb)gHEqJUL^L&j2o{_58VEzl#!fN<+SZ4`mQM<7kEpUspOx6#RlHAhhg zmL}v>#*pW)(`|cTn+TQ|2Ql0C+LU#q9lZIaKi|=0^KGq0_u|G2*oRH0&btAv1o)8z zKylj*ZVK>49xw=~=7w6HmV-8<qOQ#`XTrFd^fx2LvSV!iXq& zWi&=Va>e2n3zmc4s%wMpYA4y&3}udrjsy-_+X6T=j}L&!fyID`AW?QXz&<*v0!9QE z51*=UEt3G03{;%!_`Alf;qJ9i@*rZf(lHJNMrtt-P9KEwO^~SWS`f+ z@fGx{*Sw6bT-np*E8DSnmLB`g)AaabPtoT;^A&pfshfl^b4AAK9xt?pAhT4L#1wa4 z2uBf>1`LB)SU_z6N?|{dNVH))XssX$n1Bmw59Ui96v{fl5HN)m>Hvbw(t(C3cULT9 z#EyBmXP!X+WxzaS6XEW3%ma1(SMQ=b?zl=1|J}dRcfS1;o!&fKC;Rn3e{I!#0+7k*a9B{?X)>Z-v3FYxd1L?yvW|6#QlNMs`^keHqYK;|NRtw@*n<#?tarx)2m+l z(wTw2N(A{jr84P88I*!4xD4-HrEO84LK$>-XsFm=6|)d6g(1unhkTd-W~d#R2zNpV zumON50S4-OCSt93>BsuB%L<GN~7xyi(qx0FFFMmFL?vbxRZ!xe%_-?l9-CmlFl|( za)tmP9LBagzT*{X!(`b1whC=A?C>jV+bo}@&H_kE*@$H-sOp?0D_$lOFw^(1Ao7i9$mjOT3D_`Bo^2e}GFEcQ!IGHre8)zW8t7 zpwEByt3)wihI7j!dfCgKN3VG0OGsVa;O=nxOp1x@=TS^v=eoe)TQnnj+I}()vu@)U z1u(kN@u^S`7*3S6)+j@8pbE#JnW32n+!G;Ci29wDo!4u4L;=56pWY;t`#c$NWGSv$ z1@5~xgX&VqUVpf88nvy4 zEr@rl%TyrV(UxUsffLcp0Mm)!!~vs?uc|O;ZGZ_uJ}^TIOv$mx;9Bj}j>N|j(hj^Mlg>!j<_NTQE(lO;bq*?a5EhR~`}eU~bA0&- zT=F)q)cJ4kklI4iR{`v>oObO0=(c=0u)-kth#2)d$I@=coH9|ox=%7uo8|V9b}mi z8{zmKVxnEsS!DVrCaIp^9(cHpx%kq^F4E0c&v%`d`#?1nJ(SGmEWC30(!Aq3ReKnr z(2#|Qe1t*dAsi}kfwcz>R-@LsYiPrPxTjBkbupIWU?YG<+G>CZK#_CM&Ep)%%i^LY zTcOU)bF4D1Kg!88`iYgp-6v=$EI-m|fEUld{i?v(zKr{tWh%oupl0I;&=smtC?+JaFt}n|-!ehZFXxnau+MXb^C< zj){>VXs}h6g|zi}qT`D;%ng+mC>!%U`9I&IuYKh)yYt+N*`H!8?s`cJc*t$Z?O&@G zXPsz!#_W2{jc%*i*C*>xRK6cpDC%#lH-_eZspz!Y(+GC6;F*F8=);)pb}5fj(vMm9k+>nSyn^;CQNlKzRo! z-T+W{?U^Q(t-9e&!pVqYm-hlek^=_Q7e4njdhK0z(#wDR1y+&ktX*Toj=FOFoFBPL zuY1E!(m#LtOKw}(ovS_eo$Icf-qikvI1$Ay=lYrY^19L>PyST6?m#B$@~3b#Loq%^b_$YzLrCN4$o5Oj_>aeEegd zrr&(~&(RaJi&{PcyBGcF9qaLqJATNODdM~Ioapi#D8FEica{gDPd@Rz0NWAEjNF#x zA=e2dpo=mx3NN%1@T5_RuF5XJzChY!8zNv9I?OmtXNzSvs7jdvlRbev@uWl z^|yS4zx&;r^z_p=>6!1H(vA7K(#@OoZ>vw!#X)Ukm#+e4yRqo@YPSy&i*C9{JLbC{3XXUYxgfdFg7C&!}A_4&2W~USKWOAL14}!_X zG-NhWhz~qf zx4-0a8wmj9e~LoR3lX!c*H&!;EV6C8vIPP|xE9$(bajFQkWdb6gMC1MhEwm@s6#|L z9EreBxEt<MXw#AI>0!VFa-b!b)Xr>JR)m$mp|G( zwH+b>^APg|UPIkX$*5{Fitm4YBAjO|ge;Yo3-!APYZ>Ek2R5$*V1%dZu8cQ86k0J% zym6_(@Tf9I0f;dGF6e9lCYMtR8kMcjC)#(|+Aa&;=NU~nZ;ZeONVXEL9Q?X38RK{s zA{u>JFY=h$SxpHF*tw|=NKE7(j#^o6HBbPRT4Su2^6;(eK4(HaxPEY_!(N{~D>-05 zehjD&?zljwKHK7U&qsh&%N_rX(WrD#wvpH-hqZhTkb~!3Lcj{_(y^Ac7k5_`N6mS; zSjpOJccuMZAjd{T+w5Y-s0)ZgfesX!A6O%m@j;fM0UNnsTFp1T$u}nbai@#Bty@Ug zj*f*^VLgZ4Pt6`NQF7gMm0$uRDc+(xQ$U$r+qQQcaj^t_aq#g6y-4F7$0oGNJ~1Bh zyD8e;k-Gfa4K>E#x0FWlD`n(bE z1Us>rM|N}LGG`(7ETZ|yOq{Tf7C~0YS!Se%z}%fcn?j%c4_Y=0rCel$ZWTCCHms`9 zAaa4QGDrqCU#fWRkrKZM!Qg6JwkR5|@t% zq~g60`;%n1wJvWe7a5(S6U@dS+YO|)hXFK6o?0HeF{?QS*PyE?f*K-5we;;%52tDz z=cosUUIsv=vTc^ZYoC(9FEWn{j)Cg8;~u6#R7uV4ILxfN_^N3 zkC-T2yB(6xHy~jd(J0MbvA3uvC0H7`E8B>n@hUE z-4qFbmxXysLsE5B<){Z+qlv#rxI31C+%wEbc6{={kq6pBG-cP^*7Diy$ewz`CwE`B;<85R0%aqJ6c7L; zG>2PtEjPHM%r(z}iVipNLi54tsnP)_`Wdrq%X``FCIyjTr4i14H$S}C&B!TbN5Vn{ z-nn7diqRzB4sb^DGQRFscx0b}+)xtC9^PRoxZrRwan_DpCoYNzt~}lugXs8_&#S&~ z-aZRpDpuy}cHA#7`kb6BCuM!J{0qNB2b8)M&&TXRRT!tvN5fOZWZ_F2JG*0;n?_9k2abaJvpns_FY7EWp>4aw`o1_%NgCM)p8=Md4Q`?7c zA6Z_{I7Ad!$GKC&G4WuKadIYI1;yWVFJ4|6+ngwH>iL3~{rYy{{-j>a$4i&a>Fn%; z&d=q^sUWG|u(N|s-`=U*i-AA2S;HN9NZ&RxMo zlkWprAD#QH-`8D>E$_xSKthsoRb_jz_I*X>=*QReNm)IPx#(2Z5%4U4+0l%T^>gX+ ze7wA$NoEDmqx(yjc8{E2-d{UCTV8tK*C(gVb?nOdEZfn<9zg%EQ%7my`icu`z3(dY zetiZ#$p%298$vY)0ML3@V#pL`ZZu0OwmKpp*0$Vv{?2Q+F*7KIO47r zwz+zBzkYM#Y6H%N@*_DT`T)uhVZ2Wn|hPovnIz2mIzk;*GKvQEReRy{CXgtel zWcyazbgTAI=OX>Rl``Mg0kyQc%mQ2SCC+Kgvj9c_G_%m7fAYt_^U(gGhwgd&o$vgM z_g*dZ(e(yUi>&wiC3rqxnP)m@_btT3o%?=`{0};9wQ&&q+?LH}D;-)9dA{3WEuR)7 zquaW2Wr=^v`w1<)>s^0-{~Y(c=jP3GIz2s`KhyjdVOg_Uw8b4Mbql%t*ob&eRh?3PKYCY+0{QhiypfF{(Bye a`u_`FC+gVf0T|!_0000 + + + + + + + + diff --git a/packages/apps/escrow-dashboard/src/assets/metamask.svg b/packages/apps/escrow-dashboard/src/assets/metamask.svg new file mode 100644 index 0000000000..f893c15924 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/assets/metamask.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/packages/apps/escrow-dashboard/src/assets/walletconnect.svg b/packages/apps/escrow-dashboard/src/assets/walletconnect.svg new file mode 100644 index 0000000000..3ef58a4155 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/assets/walletconnect.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/FortuneStages.tsx b/packages/apps/escrow-dashboard/src/components/Fortune/FortuneStages.tsx new file mode 100644 index 0000000000..ad0ffb2d9f --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/FortuneStages.tsx @@ -0,0 +1,69 @@ +import { Box, Typography } from '@mui/material'; +import React, { useState } from 'react'; +import { RoundedBox } from './RoundedBox'; +import { FortuneStageStatus } from './types'; + +const STAGES = [ + { status: FortuneStageStatus.FUNDING_METHOD, title: 'Funding Method' }, + { status: FortuneStageStatus.JOB_REQUEST, title: 'Job Request' }, + { status: FortuneStageStatus.LAUNCH, title: 'Launch' }, +]; + +const Stage = ({ + index, + selected, + title, +}: { + index: number; + selected: boolean; + title: string; +}) => { + return ( + + + + {index} + + + + {title} + + + ); +}; + +type FortuneStagesProps = { + status: FortuneStageStatus; +}; + +export const FortuneStages = ({ status }: FortuneStagesProps) => { + return ( + + {STAGES.map((stage, i) => ( + + ))} + + ); +}; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/FundingMethod.tsx b/packages/apps/escrow-dashboard/src/components/Fortune/FundingMethod.tsx new file mode 100644 index 0000000000..fc5104d994 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/FundingMethod.tsx @@ -0,0 +1,90 @@ +import { Box, Button, Typography } from '@mui/material'; +import React, { useEffect, useState } from 'react'; +import { useAccount } from 'wagmi'; +import WalletModal from '../WalletModal'; +import { RoundedBox } from './RoundedBox'; +import { FundingMethodType } from './types'; + +type FundingMethodProps = { + onChange: (arg: FundingMethodType) => void; +}; + +export const FundingMethod = ({ onChange }: FundingMethodProps) => { + const [walletModalOpen, setWalletModalOpen] = useState(false); + const { isConnected } = useAccount(); + const handleClickCrypto = () => { + if (isConnected) { + onChange('crypto'); + } else { + setWalletModalOpen(true); + } + }; + + useEffect(() => { + if (isConnected && walletModalOpen) { + setWalletModalOpen(false); + onChange('crypto'); + } + }, [isConnected]); + + return ( + <> + + + crypto + + Click to connect your wallet + + + + + fiat + + Click to fund with credit card + + + + + setWalletModalOpen(false)} + /> + + ); +}; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/JobRequest.tsx b/packages/apps/escrow-dashboard/src/components/Fortune/JobRequest.tsx new file mode 100644 index 0000000000..f2c6d61fbf --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/JobRequest.tsx @@ -0,0 +1,189 @@ +import { + Box, + Button, + FormControl, + Grid, + InputLabel, + MenuItem, + Select, + TextField, + Typography, +} from '@mui/material'; +import { SUPPORTED_CHAIN_IDS, ESCROW_NETWORKS, ChainId } from 'src/constants'; +import React, { useState } from 'react'; +import { useAccount } from 'wagmi'; +import { RoundedBox } from './RoundedBox'; +import { FortuneJobRequestType, FundingMethodType } from './types'; + +type JobRequestProps = { + fundingMethod: FundingMethodType; + onBack: () => void; + onLaunch: (data: any) => void; +}; + +export const JobRequest = ({ + fundingMethod, + onBack, + onLaunch, +}: JobRequestProps) => { + const { address } = useAccount(); + const [jobRequest, setJobRequest] = useState({ + chainId: 80001, + title: '', + description: '', + fortunesRequired: 0, + token: '', + fundAmount: 0, + jobRequester: '', + }); + + const handleJobRequestFormFieldChange = ( + fieldName: string, + fieldValue: any + ) => { + setJobRequest({ ...jobRequest, [fieldName]: fieldValue }); + }; + + return ( + + + Job Details + + + + + Network + + + + + + + handleJobRequestFormFieldChange('title', e.target.value) + } + /> + + + + + + handleJobRequestFormFieldChange( + 'fortunesRequired', + Number(e.target.value) + ) + } + /> + + + + + + handleJobRequestFormFieldChange('description', e.target.value) + } + /> + + + + + Funds + + + + Token + + + + {ESCROW_NETWORKS[jobRequest.chainId as ChainId]?.hmtAddress} + + + + {/* + Token + + */} + + + handleJobRequestFormFieldChange( + 'fundAmount', + Number(e.target.value) + ) + } + /> + + + + + + + + + ); +}; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx b/packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx new file mode 100644 index 0000000000..c7bcf04892 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export const Launch = () => { + return <>; +}; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/RoundedBox.tsx b/packages/apps/escrow-dashboard/src/components/Fortune/RoundedBox.tsx new file mode 100644 index 0000000000..91b390ea20 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/RoundedBox.tsx @@ -0,0 +1,23 @@ +import { Box as MuiBox, SxProps } from '@mui/material'; +import React from 'react'; + +type BoxProps = { + sx?: SxProps; + children?: any; +}; + +export const RoundedBox = ({ children, sx = {} }: BoxProps) => { + return ( + + {children} + + ); +}; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/index.ts b/packages/apps/escrow-dashboard/src/components/Fortune/index.ts new file mode 100644 index 0000000000..eba958776f --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/index.ts @@ -0,0 +1,4 @@ +export { FortuneStages } from './FortuneStages'; +export { FundingMethod as FortuneFundingMethod } from './FundingMethod'; +export { JobRequest as FortuneJobRequest } from './JobRequest'; +export { Launch as FortuneLaunch } from './Launch'; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/types.ts b/packages/apps/escrow-dashboard/src/components/Fortune/types.ts new file mode 100644 index 0000000000..cfd1578d49 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/types.ts @@ -0,0 +1,17 @@ +export enum FortuneStageStatus { + FUNDING_METHOD, + JOB_REQUEST, + LAUNCH, +} + +export type FundingMethodType = 'crypto' | 'fiat'; + +export type FortuneJobRequestType = { + chainId: number; + title: string; + description: string; + fortunesRequired: number; + token: string; + fundAmount: number; + jobRequester: string; +}; diff --git a/packages/apps/escrow-dashboard/src/components/WalletModal/index.tsx b/packages/apps/escrow-dashboard/src/components/WalletModal/index.tsx new file mode 100644 index 0000000000..3720bc47c4 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/WalletModal/index.tsx @@ -0,0 +1,112 @@ +import { + Box, + Button, + Dialog, + IconButton, + Typography, + useTheme, +} from '@mui/material'; +import CloseIcon from '@mui/icons-material/Close'; +import React from 'react'; +import { useConnect } from 'wagmi'; + +import metaMaskSvg from 'src/assets/metamask.svg'; +import coinbaseSvg from 'src/assets/coinbase.svg'; +import walletConnectSvg from 'src/assets/walletconnect.svg'; + +const WALLET_ICONS: Record = { + metaMask: metaMaskSvg, + coinbaseWallet: coinbaseSvg, + walletConnect: walletConnectSvg, +}; + +export default function WalletModal({ + open, + onClose, +}: { + open: boolean; + onClose: () => void; +}) { + const { connect, connectors, error, isLoading, pendingConnector } = + useConnect(); + + const theme = useTheme(); + + return ( +

+ + + + Connect +
your wallet +
+ + By connecting a wallet, you agree to HUMAN Protocol Terms of Service + and consent to its Privacy Policy. + +
+ + + + + + {connectors.map((connector) => ( + + ))} + + + {error &&
{error.message}
} +
+
+
+ ); +} diff --git a/packages/apps/escrow-dashboard/src/index.tsx b/packages/apps/escrow-dashboard/src/index.tsx index f3ef28b1bf..9bf321067e 100644 --- a/packages/apps/escrow-dashboard/src/index.tsx +++ b/packages/apps/escrow-dashboard/src/index.tsx @@ -1,15 +1,55 @@ import React from 'react'; import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; +import { WagmiConfig, createClient, configureChains, mainnet } from 'wagmi'; +import { alchemyProvider } from 'wagmi/providers/alchemy'; +import { publicProvider } from 'wagmi/providers/public'; +import { CoinbaseWalletConnector } from 'wagmi/connectors/coinbaseWallet'; +import { MetaMaskConnector } from 'wagmi/connectors/metaMask'; +import { WalletConnectConnector } from 'wagmi/connectors/walletConnect'; + import './index.css'; import { App } from './components'; import reportWebVitals from './reportWebVitals'; import store from './state'; +window.Buffer = window.Buffer || require('buffer').Buffer; + +// Configure chains & providers with the Alchemy provider. +// Two popular providers are Alchemy (alchemy.com) and Infura (infura.io) +const { chains, provider, webSocketProvider } = configureChains( + [mainnet], + [publicProvider()] +); + +// Set up client +const client = createClient({ + autoConnect: true, + connectors: [ + new MetaMaskConnector({ chains }), + new CoinbaseWalletConnector({ + chains, + options: { + appName: 'wagmi', + }, + }), + new WalletConnectConnector({ + chains, + options: { + qrcode: true, + }, + }), + ], + provider, + webSocketProvider, +}); + ReactDOM.render( - + + + , document.getElementById('root') diff --git a/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx b/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx new file mode 100644 index 0000000000..7e1305de7b --- /dev/null +++ b/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx @@ -0,0 +1,110 @@ +import React, { useState } from 'react'; +import Box from '@mui/material/Box'; +import { Grid, Link, Typography } from '@mui/material'; +import { + FortuneStages, + FortuneFundingMethod, + FortuneJobRequest, + FortuneLaunch, +} from 'src/components/Fortune'; +import { + FortuneJobRequestType, + FortuneStageStatus, + FundingMethodType, +} from 'src/components/Fortune/types'; + +export const FortunePage: React.FC = (): React.ReactElement => { + const [status, setStatus] = useState( + FortuneStageStatus.FUNDING_METHOD + ); + const [fundingMethod, setFundingMethod] = + useState('crypto'); + + const handleChangeFundingMethod = (method: FundingMethodType) => { + setFundingMethod(method); + setStatus(FortuneStageStatus.JOB_REQUEST); + }; + + const handleBack = () => { + setFundingMethod('crypto'); + setStatus(FortuneStageStatus.JOB_REQUEST); + }; + + const handleLaunch = (data: FortuneJobRequestType) => { + console.log(data); + // setStatus(FortuneStageStatus.LAUNCH); + }; + + return ( + + + + {status === FortuneStageStatus.FUNDING_METHOD && ( + + + Fortune + + + HUMAN Protocol basic functionality demo + + + Based on an old Unix program in which a pseudorandom message is + displayed from a database of quotations, created by the + community. We're adopting this basic idea, and + decentralizing it, placing the basic ask-and-receive + functionality on-chain. + + + + Blog Article + + + + )} + + + + {status === FortuneStageStatus.FUNDING_METHOD && ( + + )} + {status === FortuneStageStatus.JOB_REQUEST && ( + + )} + {status === FortuneStageStatus.LAUNCH && } + + + + + + ); +}; diff --git a/packages/apps/escrow-dashboard/src/pages/index.ts b/packages/apps/escrow-dashboard/src/pages/index.ts index 0f48c7c034..2a01fab84f 100644 --- a/packages/apps/escrow-dashboard/src/pages/index.ts +++ b/packages/apps/escrow-dashboard/src/pages/index.ts @@ -1,2 +1,3 @@ export { Main } from './Main'; export { LeaderboardPage as Leaderboard } from './Leaderboard'; +export { FortunePage as Fortune } from './Fortune'; diff --git a/packages/apps/escrow-dashboard/src/routes/routes.ts b/packages/apps/escrow-dashboard/src/routes/routes.ts index 698096fd08..9b4be1d604 100644 --- a/packages/apps/escrow-dashboard/src/routes/routes.ts +++ b/packages/apps/escrow-dashboard/src/routes/routes.ts @@ -1,5 +1,5 @@ import { FC } from 'react'; -import { Main, Leaderboard } from 'src/pages'; +import { Main, Leaderboard, Fortune } from 'src/pages'; interface Route { key: string; @@ -24,4 +24,11 @@ export const routes: Array = [ enabled: true, component: Leaderboard, }, + { + key: 'fortune-route', + title: 'Fortune', + path: '/fortune', + enabled: true, + component: Fortune, + }, ]; diff --git a/yarn.lock b/yarn.lock index 0552e63216..1facf635fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1094,7 +1094,7 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@coinbase/wallet-sdk@^3.3.0": +"@coinbase/wallet-sdk@^3.3.0", "@coinbase/wallet-sdk@^3.5.4": version "3.6.3" resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.3.tgz#fd96f6f19d5a0090520c1b014ad4737bbc8e1267" integrity sha512-XUR4poOJE+dKzwBTdlM693CdLFitr046oZOVY3iDnbFcRrrQswhbDji7q4CmUcD4HxbfViX7PFoIwl79YQcukg== @@ -2740,11 +2740,28 @@ "@json-rpc-tools/types" "^1.7.6" "@pedrouid/environment" "^1.0.1" +"@ledgerhq/connect-kit-loader@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.0.2.tgz#8554e16943f86cc2a5f6348a14dfe6e5bd0c572a" + integrity sha512-TQ21IjcZOw/scqypaVFY3jHVqI7X7Hta3qN/us6FvTol3AY06UmrhhXGww0E9xHmAbdX241ddwXEiMBSQZFr9g== + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== +"@lit-labs/ssr-dom-shim@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz#427e19a2765681fd83411cd72c55ba80a01e0523" + integrity sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw== + +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.1.tgz#0d958b6d479d0e3db5fc1132ecc4fa84be3f0b93" + integrity sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.0.0" + "@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" @@ -2761,6 +2778,75 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== +"@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== + dependencies: + "@motionone/easing" "^10.15.1" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + tslib "^2.3.1" + +"@motionone/dom@^10.15.5": + version "10.15.5" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.15.5.tgz#4af18f8136d85c2fc997cac98121c969f6731802" + integrity sha512-Xc5avlgyh3xukU9tydh9+8mB8+2zAq+WlLsC3eEIp7Ax7DnXgY7Bj/iv0a4X2R9z9ZFZiaXK3BO0xMYHKbAAdA== + dependencies: + "@motionone/animation" "^10.15.1" + "@motionone/generators" "^10.15.1" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + 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== + dependencies: + "@motionone/utils" "^10.15.1" + 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== + dependencies: + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + tslib "^2.3.1" + +"@motionone/svelte@^10.15.5": + version "10.15.5" + resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.15.5.tgz#f36b40101ec1db122820598089f42e831f6cf5f5" + integrity sha512-Xyxtgp7BlVnSBwcoFmXGHUVnpNktzeXsEifu2NJJWc7VGuxutDsBZxNdz80qvpLIC5MeBa1wh7GGegZzTm1msg== + dependencies: + "@motionone/dom" "^10.15.5" + 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/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== + dependencies: + "@motionone/types" "^10.15.1" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/vue@^10.15.5": + version "10.15.5" + resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.15.5.tgz#3101c62b2fce06b3f3072b9ff0f551213eb02476" + integrity sha512-cUENrLYAolUacHvCgU+8wF9OgSlVutfWbHMLERI/bElCJ+e2YVQvG/CpGhIM5fYOOJzuvg2T2wHmLLmvJoavEw== + dependencies: + "@motionone/dom" "^10.15.5" + tslib "^2.3.1" + "@mui/base@5.0.0-alpha.114": version "5.0.0-alpha.114" resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.114.tgz#19125f28b7d09d1cc60550872440ecba699d8374" @@ -3571,6 +3657,140 @@ 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" + "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" @@ -3703,11 +3923,23 @@ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.22.0.tgz#7a786fcea64e229ed5d4308093dd644cdfaa895e" integrity sha512-OeLyBKBQoT265f5G9biReijeP8mBxNFwY7ZUu1dKL+YzqpG5q5z7J/N1eT8aWyKuhyDTiUHuKm5l+oIVzbtrjw== +"@tanstack/query-core@4.24.4": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.24.4.tgz#6fe78777286fdd805ac319c7c743df4935e18ee2" + integrity sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA== + "@tanstack/query-persist-client-core@4.22.0": version "4.22.0" resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.22.0.tgz#cb0677cb0ab36c626bfb18bd681426f661ef4a85" integrity sha512-O5Qh4HycMWPD67qoGs9zwNJuCpQnbgAgpWmg/M5+jpWaobGGtdIW6SHuvVogQM53uTaWT8b30ymi4BKds4GxIA== +"@tanstack/query-persist-client-core@4.24.4": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.24.4.tgz#e806e0985ddf11880fe81906059d9463d924f584" + integrity sha512-t4BR/th3tu2tkfF0Tcl5z+MbglDjTdIbsLZYlly7l2M6EhGXRjOLbvVUA5Kcx7E2a81Vup0zx0z0wlx+RPGfmg== + dependencies: + "@tanstack/query-core" "4.24.4" + "@tanstack/query-sync-storage-persister@^4.0.10": version "4.22.0" resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.22.0.tgz#114545d7957f72d71abd70790dfe8bd6177bd9ec" @@ -3715,6 +3947,13 @@ dependencies: "@tanstack/query-persist-client-core" "4.22.0" +"@tanstack/query-sync-storage-persister@^4.14.5": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.24.4.tgz#7d7230b0d911ade3648bdaa0f87b30b086f734e0" + integrity sha512-0wffVqoOydMc1TDjOiATv/TM8wJfMpRcM82Cr19TuepListopTsuZ3RzSzLKBCo8WRl/0zCR1Ti9t1zn+Oai/A== + dependencies: + "@tanstack/query-persist-client-core" "4.24.4" + "@tanstack/react-query-persist-client@^4.0.10": version "4.22.0" resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.22.0.tgz#29dd5542b96a0a83a58e32f2c815874cd90a729d" @@ -3722,6 +3961,13 @@ dependencies: "@tanstack/query-persist-client-core" "4.22.0" +"@tanstack/react-query-persist-client@^4.14.5": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.24.4.tgz#9e7f4854cd06605fc3481137645661ec5bf0a276" + integrity sha512-vQ10ghQrmk+VMrv8BtD1WgvdcGlL7z8QLC9oGryYPORLueOmVvW8nB3GL7aWp84pkLLXPLR32WopXMfseHWukw== + dependencies: + "@tanstack/query-persist-client-core" "4.24.4" + "@tanstack/react-query@^4.0.10": version "4.22.0" resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.22.0.tgz#aaa4b41a6d306be6958018c74a8a3bb3e9f1924c" @@ -3730,6 +3976,14 @@ "@tanstack/query-core" "4.22.0" use-sync-external-store "^1.2.0" +"@tanstack/react-query@^4.14.5": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.24.4.tgz#79e892edac33d8aa394795390c0f79e4a8c9be4d" + integrity sha512-RpaS/3T/a3pHuZJbIAzAYRu+1nkp+/enr9hfRXDS/mojwx567UiMksoqW4wUFWlwIvWTXyhot2nbIipTKEg55Q== + dependencies: + "@tanstack/query-core" "4.24.4" + use-sync-external-store "^1.2.0" + "@tenderly/hardhat-tenderly@^1.1.6": version "1.5.2" resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.2.tgz#0a5a9df50e0430097c58fcb9ae6e40981bd4b2e9" @@ -4678,6 +4932,35 @@ picocolors "^1.0.0" pretty-format "^27.5.1" +"@wagmi/chains@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-0.2.4.tgz#7f90e64f42e614d9d324b5be2a6a49dfb0d39264" + integrity sha512-c2mJED5H9zHzpam2JSD76ln1UmrQShas5BAHA98FjSAHlqU41zWvUhOfm9mHMh8j2NCFJ+pGdQIlXFGs8Qe8cg== + +"@wagmi/connectors@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-0.2.2.tgz#13ffa65e2f93b5c83fe2ea5eb7e0480114979edc" + integrity sha512-Mbk0WVRpA5mLP5K2dSTzsCmBCRwTKg9I4TCRKQpXnUtw5+3waw+BVUPTm0aiWV/lEzzW+1F8gtUhlvK7I2Gj3Q== + dependencies: + "@coinbase/wallet-sdk" "^3.5.4" + "@ledgerhq/connect-kit-loader" "^1.0.1" + "@walletconnect/ethereum-provider" "^1.8.0" + "@walletconnect/universal-provider" "^2.3.2" + "@web3modal/standalone" "^2.0.0" + abitype "^0.3.0" + eventemitter3 "^4.0.7" + +"@wagmi/core@0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.9.2.tgz#36b699ac974c3a216124c8544b313df18bffbae1" + integrity sha512-2WMuLtvtj484PlRlqKIiXOYneBLBn2pFES/7ku/9OboH1a3WkaISo03vPmNlh1bHIxJBtCLF5oJRRVbXeg90DA== + dependencies: + "@wagmi/chains" "0.2.4" + "@wagmi/connectors" "0.2.2" + abitype "^0.3.0" + eventemitter3 "^4.0.7" + zustand "^4.3.1" + "@wagmi/core@^0.5.8": version "0.5.8" resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.5.8.tgz#9e375c0dd31c3b22973d000694e1c2b06c05dbbc" @@ -4707,6 +4990,28 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" +"@walletconnect/core@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.3.2.tgz#0a726de894834e882d0561a245c9a2077fc5c4a8" + integrity sha512-ZqdTVFe/lsaLIizYlW2C3LI1Q6m1269vjrGuYZT0HL/G2y9IKqBoUo9x11Omw56/evZNSpttZgL4oY6G+E7XrQ== + dependencies: + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/jsonrpc-ws-connection" "^1.0.6" + "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/relay-api" "^1.0.7" + "@walletconnect/relay-auth" "^1.0.4" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.3.2" + "@walletconnect/utils" "2.3.2" + events "^3.3.0" + lodash.isequal "4.5.0" + pino "7.11.0" + uint8arrays "3.1.0" + "@walletconnect/core@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" @@ -4744,7 +5049,7 @@ dependencies: tslib "1.14.1" -"@walletconnect/ethereum-provider@^1.7.8": +"@walletconnect/ethereum-provider@^1.7.8", "@walletconnect/ethereum-provider@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-1.8.0.tgz#ed1dbf9cecc3b818758a060d2f9017c50bde1d32" integrity sha512-Nq9m+oo5P0F+njsROHw9KMWdoc/8iGHYzQdkjJN/1C7DtsqFRg5k5a3hd9rzCLpbPsOC1q8Z5lRs6JQgDvPm6Q== @@ -4758,6 +5063,26 @@ eip1193-provider "1.0.1" eventemitter3 "4.0.7" +"@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.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.0.tgz#1e87dd234cb72b0587b84f95c4f942f2b4bd0c79" + integrity sha512-0vbzTa/ARrpmMmOD+bQMxPvFYKtOLQZObgZakrYr0aODiMOO71CmPVNV2eAqXnw9rMmcP+z91OybLeIFlwTjjA== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/time" "^1.0.2" + chai "^4.3.7" + mocha "^10.2.0" + ts-node "^10.9.1" + tslib "1.14.1" + "@walletconnect/iso-crypto@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" @@ -4767,7 +5092,7 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" -"@walletconnect/jsonrpc-http-connection@^1.0.2": +"@walletconnect/jsonrpc-http-connection@^1.0.2", "@walletconnect/jsonrpc-http-connection@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.4.tgz#aeb0f7eae6565dd031f01d650ee73d358d760ee2" integrity sha512-ji79pspdBhmIbTwve383tMaDu5Le9plW+oj5GE2aqzxIl3ib8JvRBZRn5lGEBGqVCvqB3MBJL7gBlEwpyRtoxQ== @@ -4777,7 +5102,7 @@ cross-fetch "^3.1.4" tslib "1.14.1" -"@walletconnect/jsonrpc-provider@^1.0.5": +"@walletconnect/jsonrpc-provider@^1.0.5", "@walletconnect/jsonrpc-provider@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.6.tgz#e91321ef523f1904e6634e7866a0f3c6f056d2cd" integrity sha512-f5vQxr53vUVQ51/9mRLb1OiNciT/546XZ68Byn9OYnDBGeGJXK2kQWDHp8sPWZbN5x0p7B6asdCWMVFJ6danlw== @@ -4803,6 +5128,33 @@ "@walletconnect/jsonrpc-types" "^1.0.2" tslib "1.14.1" +"@walletconnect/jsonrpc-ws-connection@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.6.tgz#8ef6747ddf9347f4b61c136d06fcdae6c7efad39" + integrity sha512-WFu8uTXbIDgxFfyax9uNcqFYtexUq/OdCA3SBsOqIipsnJFbjXK8OaR8WCoec4tkJbDRQO9mrr1KpA0ZlIcnCQ== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/safe-json" "^1.0.1" + events "^3.3.0" + tslib "1.14.1" + 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== + dependencies: + safe-json-utils "^1.1.1" + tslib "1.14.1" + +"@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/mobile-registry@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5" @@ -4830,6 +5182,26 @@ randombytes "^2.1.0" tslib "1.14.1" +"@walletconnect/relay-api@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.7.tgz#e7aed03cbaff99ecdf2c8d32280c0b5d673bb419" + integrity sha512-Mf/Ql7Z0waZzAuondHS9bbUi12Kyvl95ihxVDM7mPO8o7Ke7S1ffpujCUhXbSacSKcw9aV2+7bKADlsBjQLR5Q== + 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.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" @@ -4842,6 +5214,23 @@ dependencies: tslib "1.14.1" +"@walletconnect/sign-client@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.3.2.tgz#e1d6597aaeacd1e2e0f0f1659d5b2f69b680ea4c" + integrity sha512-j40KzTVjxBYSMbU8fvqua38aWt+uW9XTYvIIQ+uxoXhhq18cIZe84nA+bcdtkUakua3V5XjlRsqJI7vMNHajwQ== + dependencies: + "@walletconnect/core" "2.3.2" + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.3.2" + "@walletconnect/utils" "2.3.2" + events "^3.3.0" + pino "7.11.0" + "@walletconnect/signer-connection@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz#6cdf490df770e504cc1a550bdb5bac7696b130bc" @@ -4863,11 +5252,68 @@ "@walletconnect/utils" "^1.8.0" ws "7.5.3" +"@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.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.3.2.tgz#fcced7a2b7a75f67a652ecfc9047e36b787b414c" + integrity sha512-j4KL1P46omZPr5DNUrzE8l+MMFNfQZ5UYQ6G7xoRfKxZThGA88MPY/SwOu32NOiWYoUSCnfQA1f/B6Z1ie0v/g== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + "@walletconnect/types@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== +"@walletconnect/universal-provider@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.3.2.tgz#ea85c55cdda4e8896ed11ec35816838aee3bf14f" + integrity sha512-x/tA3U16prAuRi208dRaGN9vop2r/u+entWFcwUX2iagG0Bth+2KPIk8lpz85jUOg8t4n2lF6NVJ8bpDmZkElw== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.4" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/sign-client" "2.3.2" + "@walletconnect/types" "2.3.2" + "@walletconnect/utils" "2.3.2" + eip1193-provider "1.0.1" + events "^3.3.0" + pino "7.11.0" + +"@walletconnect/utils@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.3.2.tgz#a1faf622515dd3d558766fe76020d0d88d5bbc36" + integrity sha512-eyYzJelFD7OhWJIylAiZ4/pH6zLLJDN5QvidkbgXKK3fIIRLqCwAQIK38PqOyC+I5/Hi8UQHY0iU2yQJAsFbdA== + 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/jsonrpc-utils" "^1.0.4" + "@walletconnect/relay-api" "^1.0.7" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.3.2" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" + query-string "7.1.1" + uint8arrays "3.1.0" + "@walletconnect/utils@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" @@ -4886,7 +5332,7 @@ resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== -"@walletconnect/window-getters@^1.0.0": +"@walletconnect/window-getters@^1.0.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== @@ -4900,6 +5346,14 @@ dependencies: "@walletconnect/window-getters" "^1.0.0" +"@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" + "@web-std/blob@^3.0.1", "@web-std/blob@^3.0.3": version "3.0.4" resolved "https://registry.yarnpkg.com/@web-std/blob/-/blob-3.0.4.tgz#dd67a685547331915428d69e723c7da2015c3fc5" @@ -4944,6 +5398,32 @@ resolved "https://registry.yarnpkg.com/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz#6b69dc2a32a5b207ba43e556c25cc136a56659c4" integrity sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw== +"@web3modal/core@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-2.0.0.tgz#151bc60702fb5e8367a06a97a8fe39a81226409d" + integrity sha512-ZoM3U5DndBAVnnkBJ3hIkOKO81VtWfyda458D1vdN/T6q8IoWzWZR5QHZNc1qNKqm7ecXfEpsPj2YMS3bgOY2A== + dependencies: + buffer "6.0.3" + valtio "1.9.0" + +"@web3modal/standalone@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@web3modal/standalone/-/standalone-2.0.0.tgz#359aa42e31020bf3d608d8668329ab4e2fdbcaf6" + integrity sha512-/YcAWgnVtTFeVFrHlhYemS1NU9ds9nbMuV1njjbS9+yDirOXfUenPORi6X1AGs5pUrDnR4IwDgQzdd5wqg6kZw== + dependencies: + "@web3modal/core" "2.0.0" + "@web3modal/ui" "2.0.0" + +"@web3modal/ui@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-2.0.0.tgz#a06127bc09bb0da2a914f51f91bd54b636b4ff88" + integrity sha512-kNSXD/YI+Sl92hxMzsjkRWUj8H+CyV89WDS0Ywy2YV9HxVzC6MzntnsYZ4rti5//IzeDlxPhTKKaiBWE68Gwzw== + dependencies: + "@web3modal/core" "2.0.0" + lit "2.6.1" + motion "10.15.5" + qrcode "1.5.1" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -5131,6 +5611,11 @@ abbrev@1.0.x: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== +abitype@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.3.0.tgz#75150e337d88cc0b2423ed0d3fc36935f139d04c" + integrity sha512-0YokyAV4hKMcy97Pl+6QgZBlBdZJN2llslOs7kiFY+cu7kMlVXDBpxMExfv0krzBCQt2t7hNovpQ3y/zvEm18A== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -7162,6 +7647,14 @@ buffer@6.0.1: base64-js "^1.3.1" ieee754 "^1.2.1" +buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3, 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@^5.0.5, buffer@^5.2.1, buffer@^5.4.2, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -7170,14 +7663,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, 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" @@ -8780,6 +9265,11 @@ detect-browser@5.2.0: resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== +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" @@ -9108,6 +9598,16 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +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" @@ -10524,7 +11024,7 @@ fast-querystring@^1.0.0: dependencies: fast-decode-uri-component "^1.0.1" -fast-redact@^3.1.1: +fast-redact@^3.0.0, fast-redact@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== @@ -11735,6 +12235,11 @@ help-me@^4.0.1: glob "^8.0.0" readable-stream "^3.6.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== + hi-base32@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" @@ -14533,6 +15038,30 @@ listr2@^5.0.5: through "^2.3.8" wrap-ansi "^7.0.0" +lit-element@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.2.2.tgz#d148ab6bf4c53a33f707a5168e087725499e5f2b" + integrity sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ== + dependencies: + "@lit/reactive-element" "^1.3.0" + lit-html "^2.2.0" + +lit-html@^2.2.0, lit-html@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.6.1.tgz#eb29f0b0c2ab54ea77379db11fc011b0c71f1cda" + integrity sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw== + dependencies: + "@types/trusted-types" "^2.0.2" + +lit@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.6.1.tgz#5951a2098b9bde5b328c73b55c15fdc0eefd96d7" + integrity sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw== + dependencies: + "@lit/reactive-element" "^1.6.0" + lit-element "^3.2.0" + lit-html "^2.6.0" + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -14597,6 +15126,11 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +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.kebabcase@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" @@ -15275,7 +15809,7 @@ mocha@7.1.2: yargs-parser "13.1.2" yargs-unparser "1.6.0" -mocha@^10.0.0: +mocha@^10.0.0, mocha@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== @@ -15342,6 +15876,18 @@ module-error@^1.0.1, module-error@^1.0.2: resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== +motion@10.15.5: + version "10.15.5" + resolved "https://registry.yarnpkg.com/motion/-/motion-10.15.5.tgz#d336ddbdd37bc28bb99fbb243fe309df6c685ad6" + integrity sha512-ejP6KioN4pigTGxL93APzOnvtLklParL59UQB2T3HWXQBxFcIp5/7YXFmkgiA6pNKKzjvnLhnonRBN5iSFMnNw== + dependencies: + "@motionone/animation" "^10.15.1" + "@motionone/dom" "^10.15.5" + "@motionone/svelte" "^10.15.5" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + "@motionone/vue" "^10.15.5" + move-file@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/move-file/-/move-file-2.1.0.tgz#3bec9d34fbe4832df6865f112cda4492b56e8507" @@ -15955,6 +16501,11 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +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.0" resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" @@ -16437,6 +16988,14 @@ pino-abstract-transport@^1.0.0, pino-abstract-transport@v1.0.0: readable-stream "^4.0.0" split2 "^4.0.0" +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-pretty@^9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.1.1.tgz#e7d64c1db98266ca428ab56567b844ba780cd0e1" @@ -16457,11 +17016,33 @@ pino-pretty@^9.1.1: sonic-boom "^3.0.0" strip-json-comments "^3.1.1" +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.1.0" resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz#307490fd426eefc95e06067e85d8558603e8e844" integrity sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g== +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.8.0" resolved "https://registry.yarnpkg.com/pino/-/pino-8.8.0.tgz#1f0d6695a224aa06afc7ad60f2ccc4772d3b9233" @@ -17188,6 +17769,11 @@ 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-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.1.0" resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.1.0.tgz#1e60e3bfe8183033bbc1e702c2da74f099422d1a" @@ -17290,6 +17876,11 @@ proxy-addr@^2.0.7, proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-compare@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.4.0.tgz#90f6abffe734ef86d8e37428c5026268606a9c1b" + integrity sha512-FD8KmQUQD6Mfpd0hywCOzcon/dbkFP8XBd9F1ycbKtvVsfv6TsFUKJ2eC0Iz2y+KzlkdT1Z8SY6ZSgm07zOyqg== + 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" @@ -17410,6 +18001,16 @@ qrcode@1.5.0: pngjs "^5.0.0" yargs "^15.3.1" +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== + dependencies: + dijkstrajs "^1.0.1" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" + qs@6.11.0, qs@^6.10.3, qs@^6.4.0, qs@^6.5.2, qs@^6.7.0, qs@^6.9.4: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -17431,6 +18032,16 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +query-string@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" + integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== + dependencies: + decode-uri-component "^0.2.0" + 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" @@ -17953,6 +18564,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +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" @@ -18552,7 +19168,7 @@ safe-regex2@^2.0.0: dependencies: ret "~0.2.0" -safe-stable-stringify@^2.3.1: +safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: version "2.4.2" resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== @@ -19092,6 +19708,13 @@ solidity-coverage@^0.8.2: shelljs "^0.8.3" web3-utils "^1.3.6" +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.0.0, sonic-boom@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.1.tgz#972ceab831b5840a08a002fa95a672008bda1c38" @@ -19345,6 +19968,11 @@ stream-browserify@^3.0.0: inherits "~2.0.4" readable-stream "^3.5.0" +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.2, stream-to-it@^0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" @@ -20005,6 +20633,13 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.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.3.0" resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.3.0.tgz#4fc07fb39eff32ae7bad803cb7dd9598349fed33" @@ -20311,6 +20946,11 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.4.1, tslib@~2.4 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== +tslib@^2.3.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + tslog@^4.3.1, tslog@^4.4.0: version "4.7.1" resolved "https://registry.yarnpkg.com/tslog/-/tslog-4.7.1.tgz#c439a5d900bfa020da5f04b0719acb064a7bee4e" @@ -20494,6 +21134,13 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== +uint8arrays@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" + integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== + dependencies: + multiformats "^9.4.2" + uint8arrays@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" @@ -20783,6 +21430,14 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +valtio@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.9.0.tgz#d5d9f664319eaf18dd98f758d50495eca28eb0b8" + integrity sha512-mQLFsAlKbYascZygFQh6lXuDjU5WHLoeZ8He4HqMnWfasM96V6rDbeFkw1XeG54xycmDonr/Jb4xgviHtuySrA== + dependencies: + proxy-compare "2.4.0" + use-sync-external-store "1.2.0" + value-or-promise@1.0.12, value-or-promise@^1.0.11: version "1.0.12" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" @@ -20914,6 +21569,18 @@ wabt@1.0.24: resolved "https://registry.yarnpkg.com/wabt/-/wabt-1.0.24.tgz#c02e0b5b4503b94feaf4a30a426ef01c1bea7c6c" integrity sha512-8l7sIOd3i5GWfTWciPL0+ff/FK/deVK2Q6FN+MPz4vfUcD78i2M/49XJTwF6aml91uIiuXJEsLKWMB2cw/mtKg== +wagmi@^0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.11.2.tgz#fee24b0861bd06fd62cf1c43414d149e4f1cfa97" + integrity sha512-Chjhk3Q38ex01Caz91rI43gG4sMKs6G6kN5uEyxkupwXw9pzKxCoDAm53ZDtuo1CxqiD4Df39Gv8Qx+APvKNDg== + dependencies: + "@tanstack/query-sync-storage-persister" "^4.14.5" + "@tanstack/react-query" "^4.14.5" + "@tanstack/react-query-persist-client" "^4.14.5" + "@wagmi/core" "0.9.2" + abitype "^0.3.0" + use-sync-external-store "^1.2.0" + wagmi@^0.6.7: version "0.6.8" resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.6.8.tgz#bfc65686ec08cf1c508b1dbf5fbefbbe828653cd" @@ -21853,7 +22520,7 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^7.4.0, ws@^7.4.5, ws@^7.4.6: +ws@^7.4.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== @@ -22133,7 +22800,7 @@ zksync-web3@^0.8.1: resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.8.1.tgz#db289d8f6caf61f4d5ddc471fa3448d93208dc14" integrity sha512-1A4aHPQ3MyuGjpv5X/8pVEN+MdZqMjfVmiweQSRjOlklXYu65wT9BGEOtCmMs5d3gIvLp4ssfTeuR5OCKOD2kw== -zustand@^4.0.0: +zustand@^4.0.0, zustand@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.2.tgz#bb121fcad84c5a569e94bd1a2695e1a93ba85d39" integrity sha512-rd4haDmlwMTVWVqwvgy00ny8rtti/klRoZjFbL/MAcDnmD5qSw/RZc+Vddstdv90M5Lv6RPgWvm1Hivyn0QgJw== From 15f16180191ac1e7952e64f8af35766e72757295 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 31 Jan 2023 09:40:45 +0100 Subject: [PATCH 116/216] deploy contracts to moonbase alpha --- CONTRACTS_LIST.md | 19 +++++---- .../escrow-dashboard/src/constants/index.ts | 18 +++++++- packages/core/hardhat.config.ts | 8 ++++ .../launcher/server/src/constants/networks.ts | 42 +++++++++++-------- .../src/constants/constants.ts | 36 ++++++++-------- .../subgraph/config/moonbase-alpha-v1.json | 27 ++++++++++++ 6 files changed, 107 insertions(+), 43 deletions(-) create mode 100644 packages/sdk/typescript/subgraph/config/moonbase-alpha-v1.json diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 9541c6d26e..d5bd511d9e 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -64,14 +64,14 @@ |2022/06/01 | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | | | Reputation | | | -| Moonbeam Alpha (Testnet) | Contract | Address | Proxy | +| Moonbase Alpha (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| |2022/05/31 | HMToken | 0xe4C8eC5d057EacF40060b2174627a4941a5c8127 | N/A | -|2022/05/31 | EscrowFactory | 0x3Cd0B117Be4CC1e31c8d7d1eD8b32208a2820902 | | -| | Staking | | | -| | RewardPool | | | -|2022/05/31 | EthKVStore | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | N/A | -| | Reputation | | | +|2023/01/30 | EscrowFactory | 0xD8c35adC3b386d092846a93015220b7Fe8efD938 | 0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB | +|2023/01/30 | Staking | 0x854EC65E9e5e973C458FC2c92F6E0CbD403f5b95 | 0x56C2ba540726ED4f46E7a134b6b9Ee9C867FcF92 | +|2023/01/30 | RewardPool | 0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18 | 0x2bfA592DBDaF434DDcbb893B1916120d181DAD18 | +|2023/01/30 | EthKVStore | 0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d | N/A | +|2023/01/30 | Reputation | 0xF09f451eC04cAb1b1FAe98C86F45291B00E52b03 | 0xB0A0500103eCEc431b73F6BAd923F0a2774E6e29 | | Avalanche (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -113,4 +113,9 @@ | Goerli (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/10/12 | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | \ No newline at end of file +|2022/10/12 | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | + +| Moonbase Alpha (Testnet) | Contract | Address | Proxy | +|--------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/05/31 | EscrowFactory | 0x3Cd0B117Be4CC1e31c8d7d1eD8b32208a2820902 | | +|2022/05/31 | EthKVStore | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | N/A | \ No newline at end of file diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index 9191d0da75..096a3fb8f6 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -7,6 +7,7 @@ export enum ChainId { POLYGON = 137, POLYGON_MUMBAI = 80001, MOONBEAM = 1284, + MOONBASE_ALPHA = 1287, } export const HMT_ADDRESSES: { [chainId in ChainId]?: string } = { @@ -31,12 +32,14 @@ export const SUPPORTED_CHAIN_IDS = [ ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.MOONBEAM, + ChainId.MOONBASE_ALPHA, ]; export const TESTNET_CHAIN_IDS = [ ChainId.GOERLI, ChainId.BSC_TESTNET, ChainId.POLYGON_MUMBAI, + ChainId.MOONBASE_ALPHA, ]; export const ESCROW_NETWORKS: { @@ -47,7 +50,8 @@ export const ESCROW_NETWORKS: { title: 'Ethereum Goerli', scanUrl: 'https://goerli.etherscan.io', rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', - subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli-v1', factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', }, @@ -66,7 +70,7 @@ export const ESCROW_NETWORKS: { scanUrl: 'https://testnet.bscscan.com', rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', + 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest-v1', factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', }, @@ -100,6 +104,16 @@ export const ESCROW_NETWORKS: { factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', }, + [ChainId.MOONBASE_ALPHA]: { + chainId: ChainId.MOONBASE_ALPHA, + title: 'Moonbase Alpha', + scanUrl: 'https://moonbase.moonscan.io/', + rpcUrl: 'https://rpc.api.moonbase.moonbeam.network', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbase-alpha-v1', + factoryAddress: '0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB', + hmtAddress: '0xe4C8eC5d057EacF40060b2174627a4941a5c8127', + }, }; export const FAST_INTERVAL = 10_000; diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 9291b47197..22740509af 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -84,6 +84,13 @@ const config: HardhatUserConfig = { accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, + moonbaseAlpha: { + chainId: 1287, + timeout: 1000000000, + url: process.env.ETH_MOONBASE_ALPHA_URL || '', + accounts: + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], + }, }, gasReporter: { enabled: process.env.REPORT_GAS !== undefined, @@ -113,6 +120,7 @@ const config: HardhatUserConfig = { goerli: process.env.ETHERSCAN_API_KEY || '', polygonMumbai: process.env.POLYGONSCAN_API_KEY || '', bscTestnet: process.env.BSC_TESTNET_API_KEY || '', + moonbaseAlpha: process.env.MOONSCAN_API_KEY || '', }, }, mocha: { diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 4061e0a579..30113ce0c8 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -1,22 +1,23 @@ export enum ChainId { - ALL = -1, - MAINNET = 1, - GOERLI = 5, - BSC_MAINNET = 56, - BSC_TESTNET = 97, - POLYGON = 137, - POLYGON_MUMBAI = 80001, + ALL = -1, + MAINNET = 1, + GOERLI = 5, + BSC_MAINNET = 56, + BSC_TESTNET = 97, + POLYGON = 137, + POLYGON_MUMBAI = 80001, MOONBEAM = 1284, - LOCALHOST = 1338 - } + MOONBASE_ALPHA=1287, + LOCALHOST = 1338, +} - export interface IEscrowNetwork { - chainId: number; - title: string; - rpcUrl: string; - hmtAddress: string; - factoryAddress: string; - } +export interface IEscrowNetwork { + chainId: number; + title: string; + rpcUrl: string; + hmtAddress: string; + factoryAddress: string; +} export const ESCROW_NETWORKS: { @@ -68,7 +69,7 @@ export const ESCROW_NETWORKS: { rpcUrl: 'http://127.0.0.1:8546', factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', - } + }, // [ChainId.MOONBEAM]: { // chainId: ChainId.MOONBEAM, // title: 'Moonbeam', @@ -79,4 +80,11 @@ export const ESCROW_NETWORKS: { // factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', // hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', // }, + [ChainId.MOONBASE_ALPHA]: { + chainId: ChainId.MOONBASE_ALPHA, + title: 'Moonbase Alpha', + rpcUrl: 'https://rpc.api.moonbase.moonbeam.network', + factoryAddress: '0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB', + hmtAddress: '0xe4C8eC5d057EacF40060b2174627a4941a5c8127', + }, }; \ No newline at end of file diff --git a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts index ca4ab7fa4e..684d719786 100644 --- a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts +++ b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts @@ -6,6 +6,7 @@ export enum ChainId { POLYGON = 137, POLYGON_MUMBAI = 80001, MOONBEAM = 1284, + MOONBASE_ALPHA=1287, LOCALHOST = 1338, } @@ -19,14 +20,12 @@ export interface IReputationNetwork { export const REPUTATION_NETWORKS: { [chainId in ChainId]?: IReputationNetwork; } = { - // [ChainId.GOERLI]: { - // chainId: ChainId.GOERLI, - // title: 'Ethereum Goerli', - // scanUrl: 'https://goerli.etherscan.io', - // rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', - // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', - // reputationAddress: '0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F', - // }, + [ChainId.GOERLI]: { + chainId: ChainId.GOERLI, + title: 'Ethereum Goerli', + rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', + reputationAddress: '0x6B220A6306D8D86C9878A1FBb3F49707b3E2b405', + }, // [ChainId.BSC_MAINNET]: { // chainId: ChainId.BSC_MAINNET, // title: 'Binance Smart Chain', @@ -35,15 +34,12 @@ export const REPUTATION_NETWORKS: { // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', // reputationAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', // }, - // [ChainId.BSC_TESTNET]: { - // chainId: ChainId.BSC_TESTNET, - // title: 'Binance Smart Chain (Testnet)', - // scanUrl: 'https://testnet.bscscan.com', - // rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', - // subgraphUrl: - // 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', - // reputationAddress: '0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f', - // }, + [ChainId.BSC_TESTNET]: { + chainId: ChainId.BSC_TESTNET, + title: 'Binance Smart Chain (Testnet)', + rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', + reputationAddress: '0xb8F62639aA3DD51A39d6AACD969363e7F87dcc98', + }, // [ChainId.POLYGON]: { // chainId: ChainId.POLYGON, // title: 'Polygon', @@ -74,4 +70,10 @@ export const REPUTATION_NETWORKS: { // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', // reputationAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', // }, + [ChainId.MOONBASE_ALPHA]: { + chainId: ChainId.MOONBASE_ALPHA, + title: 'Moonbase Alpha', + rpcUrl: 'https://rpc.api.moonbase.moonbeam.network', + reputationAddress: '0xB0A0500103eCEc431b73F6BAd923F0a2774E6e29', + }, }; diff --git a/packages/sdk/typescript/subgraph/config/moonbase-alpha-v1.json b/packages/sdk/typescript/subgraph/config/moonbase-alpha-v1.json new file mode 100644 index 0000000000..5ba94b7b0b --- /dev/null +++ b/packages/sdk/typescript/subgraph/config/moonbase-alpha-v1.json @@ -0,0 +1,27 @@ +{ + "network": "mbase", + "description": "Human subgraph on Moonbase Alpha network", + "EscrowFactory": { + "address": "0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB", + "startBlock": 3648028, + "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" + }, + "HMToken": { + "address": "0xe4C8eC5d057EacF40060b2174627a4941a5c8127", + "startBlock": 2238347, + "abi": "./node_modules/@human-protocol/core/abis/HMToken.json" + }, + "Escrow": { + "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" + }, + "Staking": { + "address": "0x56C2ba540726ED4f46E7a134b6b9Ee9C867FcF92", + "startBlock": 3648026, + "abi": "./node_modules/@human-protocol/core/abis/Staking.json" + }, + "KVStore": { + "address": "0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d", + "startBlock": 3648030, + "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" + } +} From 7816d6e15c9720c69944b7d5d9d3c747b03ad67a Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 31 Jan 2023 09:48:48 +0100 Subject: [PATCH 117/216] add moonbase to subgraph cd --- .github/workflows/cd-subgraph.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cd-subgraph.yaml b/.github/workflows/cd-subgraph.yaml index 8c661c24b1..cd23a621c1 100644 --- a/.github/workflows/cd-subgraph.yaml +++ b/.github/workflows/cd-subgraph.yaml @@ -26,6 +26,8 @@ jobs: graph: bsctest-v1 - name: mumbai graph: mumbai-v1 + - name: mbase + graph: moonbase-alpha-v1 fail-fast: true max-parallel: 3 steps: From 358c2a71f559b7056476e6f63bcc5c5049c6d7e8 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 31 Jan 2023 10:31:34 +0100 Subject: [PATCH 118/216] lint code --- package.json | 2 +- packages/core/scripts/deploy-proxies.ts | 1 - .../server/src/constants/curseWords.ts | 902 +++++++++--------- .../launcher/server/src/constants/networks.ts | 123 ++- .../fortune/launcher/server/src/index.ts | 32 +- .../launcher/server/src/plugins/config.ts | 24 +- .../launcher/server/src/plugins/escrow.ts | 5 +- .../fortune/launcher/server/src/plugins/s3.ts | 131 ++- .../launcher/server/src/plugins/web3.ts | 73 +- .../launcher/server/src/routes/escrow.ts | 75 +- .../launcher/server/src/routes/payments.ts | 19 +- .../launcher/server/src/schemas/escrow.ts | 34 +- .../fortune/launcher/server/src/server.ts | 10 +- .../server/tests/plugins/escrow.test.ts | 122 ++- .../server/tests/plugins/web3.test.ts | 20 +- .../server/tests/routes/escrow.test.ts | 160 ++-- .../fortune/launcher/server/tests/setup.ts | 2 +- .../fortune/launcher/server/tests/utils.ts | 88 +- .../fortune/launcher/server/tsconfig.json | 4 +- .../fortune/launcher/server/vitest.config.ts | 12 +- .../src/constants/constants.ts | 2 +- 21 files changed, 993 insertions(+), 848 deletions(-) diff --git a/package.json b/package.json index cfbadf3ebf..9d76bae9e3 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "escrow-dashboard:lint": "yarn workspace @human-protocol/escrow-dashboard lint", "eth-kvstore:lint": "yarn workspace @human-protocol/eth-kvstore-gui lint", "fortune:test": "yarn workspace @human-protocol/fortune test", - "fortune:lint": "yarn workspace @human-protocol/fortune lint", + "fortune:lint": "yarn workspace @human-protocol/fortune lint && yarn workspace @human-protocol/fortune lint", "sdk:test": "yarn workspace @human-protocol/sdk test", "sdk:lint": "yarn workspace @human-protocol/sdk lint", "test": "concurrently npm:core:test npm:subgraph:test npm:escrow-dashboard:test npm:fortune:test npm:sdk:test", diff --git a/packages/core/scripts/deploy-proxies.ts b/packages/core/scripts/deploy-proxies.ts index e7e84bbca3..620e3cfc8a 100644 --- a/packages/core/scripts/deploy-proxies.ts +++ b/packages/core/scripts/deploy-proxies.ts @@ -1,5 +1,4 @@ /* eslint-disable no-console */ -import { Console } from 'console'; import { ethers, upgrades } from 'hardhat'; async function main() { diff --git a/packages/examples/fortune/launcher/server/src/constants/curseWords.ts b/packages/examples/fortune/launcher/server/src/constants/curseWords.ts index b5f7fea0de..aaf5c4d634 100644 --- a/packages/examples/fortune/launcher/server/src/constants/curseWords.ts +++ b/packages/examples/fortune/launcher/server/src/constants/curseWords.ts @@ -1,452 +1,452 @@ export const CURSE_WORDS = [ - '4r5e', - '5h1t', - '5hit', - 'a55', - 'anal', - 'anus', - 'ar5e', - 'arrse', - 'arse', - 'ass', - 'ass-fucker', - 'asses', - 'assfucker', - 'assfukka', - 'asshole', - 'assholes', - 'asswhole', - 'a_s_s', - 'b!tch', - 'b00bs', - 'b17ch', - 'b1tch', - 'ballbag', - 'balls', - 'ballsack', - 'bastard', - 'beastial', - 'beastiality', - 'bellend', - 'bestial', - 'bestiality', - 'bi+ch', - 'biatch', - 'bitch', - 'bitcher', - 'bitchers', - 'bitches', - 'bitchin', - 'bitching', - 'bloody', - 'blow job', - 'blowjob', - 'blowjobs', - 'boiolas', - 'bollock', - 'bollok', - 'boner', - 'boob', - 'boobs', - 'booobs', - 'boooobs', - 'booooobs', - 'booooooobs', - 'breasts', - 'buceta', - 'bugger', - 'bum', - 'bunny fucker', - 'butt', - 'butthole', - 'buttmuch', - 'buttplug', - 'c0ck', - 'c0cksucker', - 'carpet muncher', - 'cawk', - 'chink', - 'cipa', - 'cl1t', - 'clit', - 'clitoris', - 'clits', - 'cnut', - 'cock', - 'cock-sucker', - 'cockface', - 'cockhead', - 'cockmunch', - 'cockmuncher', - 'cocks', - 'cocksuck', - 'cocksucked', - 'cocksucker', - 'cocksucking', - 'cocksucks', - 'cocksuka', - 'cocksukka', - 'cok', - 'cokmuncher', - 'coksucka', - 'coon', - 'cox', - 'crap', - 'cum', - 'cummer', - 'cumming', - 'cums', - 'cumshot', - 'cunilingus', - 'cunillingus', - 'cunnilingus', - 'cunt', - 'cuntlick', - 'cuntlicker', - 'cuntlicking', - 'cunts', - 'cyalis', - 'cyberfuc', - 'cyberfuck', - 'cyberfucked', - 'cyberfucker', - 'cyberfuckers', - 'cyberfucking', - 'd1ck', - 'damn', - 'dick', - 'dickhead', - 'dildo', - 'dildos', - 'dink', - 'dinks', - 'dirsa', - 'dlck', - 'dog-fucker', - 'doggin', - 'dogging', - 'donkeyribber', - 'doosh', - 'duche', - 'dyke', - 'ejaculate', - 'ejaculated', - 'ejaculates', - 'ejaculating', - 'ejaculatings', - 'ejaculation', - 'ejakulate', - 'f u c k', - 'f u c k e r', - 'f4nny', - 'fag', - 'fagging', - 'faggitt', - 'faggot', - 'faggs', - 'fagot', - 'fagots', - 'fags', - 'fanny', - 'fannyflaps', - 'fannyfucker', - 'fanyy', - 'fatass', - 'fcuk', - 'fcuker', - 'fcuking', - 'feck', - 'fecker', - 'felching', - 'fellate', - 'fellatio', - 'fingerfuck', - 'fingerfucked', - 'fingerfucker', - 'fingerfuckers', - 'fingerfucking', - 'fingerfucks', - 'fistfuck', - 'fistfucked', - 'fistfucker', - 'fistfuckers', - 'fistfucking', - 'fistfuckings', - 'fistfucks', - 'flange', - 'fook', - 'fooker', - 'fuck', - 'fucka', - 'fucked', - 'fucker', - 'fuckers', - 'fuckhead', - 'fuckheads', - 'fuckin', - 'fucking', - 'fuckings', - 'fuckingshitmotherfucker', - 'fuckme', - 'fucks', - 'fuckwhit', - 'fuckwit', - 'fudge packer', - 'fudgepacker', - 'fuk', - 'fuker', - 'fukker', - 'fukkin', - 'fuks', - 'fukwhit', - 'fukwit', - 'fux', - 'fux0r', - 'f_u_c_k', - 'gangbang', - 'gangbanged', - 'gangbangs', - 'gaylord', - 'gaysex', - 'goatse', - 'God', - 'god-dam', - 'god-damned', - 'goddamn', - 'goddamned', - 'hardcoresex', - 'hell', - 'heshe', - 'hoar', - 'hoare', - 'hoer', - 'homo', - 'hore', - 'horniest', - 'horny', - 'hotsex', - 'jack-off', - 'jackoff', - 'jap', - 'jerk-off', - 'jism', - 'jiz', - 'jizm', - 'jizz', - 'kawk', - 'knob', - 'knobead', - 'knobed', - 'knobend', - 'knobhead', - 'knobjocky', - 'knobjokey', - 'kock', - 'kondum', - 'kondums', - 'kum', - 'kummer', - 'kumming', - 'kums', - 'kunilingus', - 'l3i+ch', - 'l3itch', - 'labia', - 'lust', - 'lusting', - 'm0f0', - 'm0fo', - 'm45terbate', - 'ma5terb8', - 'ma5terbate', - 'masochist', - 'master-bate', - 'masterb8', - 'masterbat*', - 'masterbat3', - 'masterbate', - 'masterbation', - 'masterbations', - 'masturbate', - 'mo-fo', - 'mof0', - 'mofo', - 'mothafuck', - 'mothafucka', - 'mothafuckas', - 'mothafuckaz', - 'mothafucked', - 'mothafucker', - 'mothafuckers', - 'mothafuckin', - 'mothafucking', - 'mothafuckings', - 'mothafucks', - 'mother fucker', - 'motherfuck', - 'motherfucked', - 'motherfucker', - 'motherfuckers', - 'motherfuckin', - 'motherfucking', - 'motherfuckings', - 'motherfuckka', - 'motherfucks', - 'muff', - 'mutha', - 'muthafecker', - 'muthafuckker', - 'muther', - 'mutherfucker', - 'n1gga', - 'n1gger', - 'nazi', - 'nigg3r', - 'nigg4h', - 'nigga', - 'niggah', - 'niggas', - 'niggaz', - 'nigger', - 'niggers', - 'nob', - 'nob jokey', - 'nobhead', - 'nobjocky', - 'nobjokey', - 'numbnuts', - 'nutsack', - 'orgasim', - 'orgasims', - 'orgasm', - 'orgasms', - 'p0rn', - 'pawn', - 'pecker', - 'penis', - 'penisfucker', - 'phonesex', - 'phuck', - 'phuk', - 'phuked', - 'phuking', - 'phukked', - 'phukking', - 'phuks', - 'phuq', - 'pigfucker', - 'pimpis', - 'piss', - 'pissed', - 'pisser', - 'pissers', - 'pisses', - 'pissflaps', - 'pissin', - 'pissing', - 'pissoff', - 'poop', - 'porn', - 'porno', - 'pornography', - 'pornos', - 'prick', - 'pricks', - 'pron', - 'pube', - 'pusse', - 'pussi', - 'pussies', - 'pussy', - 'pussys', - 'rectum', - 'retard', - 'rimjaw', - 'rimming', - 's hit', - 's.o.b.', - 'sadist', - 'schlong', - 'screwing', - 'scroat', - 'scrote', - 'scrotum', - 'semen', - 'sex', - 'sh!+', - 'sh!t', - 'sh1t', - 'shag', - 'shagger', - 'shaggin', - 'shagging', - 'shemale', - 'shi+', - 'shit', - 'shitdick', - 'shite', - 'shited', - 'shitey', - 'shitfuck', - 'shitfull', - 'shithead', - 'shiting', - 'shitings', - 'shits', - 'shitted', - 'shitter', - 'shitters', - 'shitting', - 'shittings', - 'shitty', - 'skank', - 'slut', - 'sluts', - 'smegma', - 'smut', - 'snatch', - 'son-of-a-bitch', - 'spac', - 'spunk', - 's_h_i_t', - 't1tt1e5', - 't1tties', - 'teets', - 'teez', - 'testical', - 'testicle', - 'tit', - 'titfuck', - 'tits', - 'titt', - 'tittie5', - 'tittiefucker', - 'titties', - 'tittyfuck', - 'tittywank', - 'titwank', - 'tosser', - 'turd', - 'tw4t', - 'twat', - 'twathead', - 'twatty', - 'twunt', - 'twunter', - 'v14gra', - 'v1gra', - 'vagina', - 'viagra', - 'vulva', - 'w00se', - 'wang', - 'wank', - 'wanker', - 'wanky', - 'whoar', - 'whore', - 'willies', - 'willy', - 'xrated', - 'xxx', - ]; \ No newline at end of file + '4r5e', + '5h1t', + '5hit', + 'a55', + 'anal', + 'anus', + 'ar5e', + 'arrse', + 'arse', + 'ass', + 'ass-fucker', + 'asses', + 'assfucker', + 'assfukka', + 'asshole', + 'assholes', + 'asswhole', + 'a_s_s', + 'b!tch', + 'b00bs', + 'b17ch', + 'b1tch', + 'ballbag', + 'balls', + 'ballsack', + 'bastard', + 'beastial', + 'beastiality', + 'bellend', + 'bestial', + 'bestiality', + 'bi+ch', + 'biatch', + 'bitch', + 'bitcher', + 'bitchers', + 'bitches', + 'bitchin', + 'bitching', + 'bloody', + 'blow job', + 'blowjob', + 'blowjobs', + 'boiolas', + 'bollock', + 'bollok', + 'boner', + 'boob', + 'boobs', + 'booobs', + 'boooobs', + 'booooobs', + 'booooooobs', + 'breasts', + 'buceta', + 'bugger', + 'bum', + 'bunny fucker', + 'butt', + 'butthole', + 'buttmuch', + 'buttplug', + 'c0ck', + 'c0cksucker', + 'carpet muncher', + 'cawk', + 'chink', + 'cipa', + 'cl1t', + 'clit', + 'clitoris', + 'clits', + 'cnut', + 'cock', + 'cock-sucker', + 'cockface', + 'cockhead', + 'cockmunch', + 'cockmuncher', + 'cocks', + 'cocksuck', + 'cocksucked', + 'cocksucker', + 'cocksucking', + 'cocksucks', + 'cocksuka', + 'cocksukka', + 'cok', + 'cokmuncher', + 'coksucka', + 'coon', + 'cox', + 'crap', + 'cum', + 'cummer', + 'cumming', + 'cums', + 'cumshot', + 'cunilingus', + 'cunillingus', + 'cunnilingus', + 'cunt', + 'cuntlick', + 'cuntlicker', + 'cuntlicking', + 'cunts', + 'cyalis', + 'cyberfuc', + 'cyberfuck', + 'cyberfucked', + 'cyberfucker', + 'cyberfuckers', + 'cyberfucking', + 'd1ck', + 'damn', + 'dick', + 'dickhead', + 'dildo', + 'dildos', + 'dink', + 'dinks', + 'dirsa', + 'dlck', + 'dog-fucker', + 'doggin', + 'dogging', + 'donkeyribber', + 'doosh', + 'duche', + 'dyke', + 'ejaculate', + 'ejaculated', + 'ejaculates', + 'ejaculating', + 'ejaculatings', + 'ejaculation', + 'ejakulate', + 'f u c k', + 'f u c k e r', + 'f4nny', + 'fag', + 'fagging', + 'faggitt', + 'faggot', + 'faggs', + 'fagot', + 'fagots', + 'fags', + 'fanny', + 'fannyflaps', + 'fannyfucker', + 'fanyy', + 'fatass', + 'fcuk', + 'fcuker', + 'fcuking', + 'feck', + 'fecker', + 'felching', + 'fellate', + 'fellatio', + 'fingerfuck', + 'fingerfucked', + 'fingerfucker', + 'fingerfuckers', + 'fingerfucking', + 'fingerfucks', + 'fistfuck', + 'fistfucked', + 'fistfucker', + 'fistfuckers', + 'fistfucking', + 'fistfuckings', + 'fistfucks', + 'flange', + 'fook', + 'fooker', + 'fuck', + 'fucka', + 'fucked', + 'fucker', + 'fuckers', + 'fuckhead', + 'fuckheads', + 'fuckin', + 'fucking', + 'fuckings', + 'fuckingshitmotherfucker', + 'fuckme', + 'fucks', + 'fuckwhit', + 'fuckwit', + 'fudge packer', + 'fudgepacker', + 'fuk', + 'fuker', + 'fukker', + 'fukkin', + 'fuks', + 'fukwhit', + 'fukwit', + 'fux', + 'fux0r', + 'f_u_c_k', + 'gangbang', + 'gangbanged', + 'gangbangs', + 'gaylord', + 'gaysex', + 'goatse', + 'God', + 'god-dam', + 'god-damned', + 'goddamn', + 'goddamned', + 'hardcoresex', + 'hell', + 'heshe', + 'hoar', + 'hoare', + 'hoer', + 'homo', + 'hore', + 'horniest', + 'horny', + 'hotsex', + 'jack-off', + 'jackoff', + 'jap', + 'jerk-off', + 'jism', + 'jiz', + 'jizm', + 'jizz', + 'kawk', + 'knob', + 'knobead', + 'knobed', + 'knobend', + 'knobhead', + 'knobjocky', + 'knobjokey', + 'kock', + 'kondum', + 'kondums', + 'kum', + 'kummer', + 'kumming', + 'kums', + 'kunilingus', + 'l3i+ch', + 'l3itch', + 'labia', + 'lust', + 'lusting', + 'm0f0', + 'm0fo', + 'm45terbate', + 'ma5terb8', + 'ma5terbate', + 'masochist', + 'master-bate', + 'masterb8', + 'masterbat*', + 'masterbat3', + 'masterbate', + 'masterbation', + 'masterbations', + 'masturbate', + 'mo-fo', + 'mof0', + 'mofo', + 'mothafuck', + 'mothafucka', + 'mothafuckas', + 'mothafuckaz', + 'mothafucked', + 'mothafucker', + 'mothafuckers', + 'mothafuckin', + 'mothafucking', + 'mothafuckings', + 'mothafucks', + 'mother fucker', + 'motherfuck', + 'motherfucked', + 'motherfucker', + 'motherfuckers', + 'motherfuckin', + 'motherfucking', + 'motherfuckings', + 'motherfuckka', + 'motherfucks', + 'muff', + 'mutha', + 'muthafecker', + 'muthafuckker', + 'muther', + 'mutherfucker', + 'n1gga', + 'n1gger', + 'nazi', + 'nigg3r', + 'nigg4h', + 'nigga', + 'niggah', + 'niggas', + 'niggaz', + 'nigger', + 'niggers', + 'nob', + 'nob jokey', + 'nobhead', + 'nobjocky', + 'nobjokey', + 'numbnuts', + 'nutsack', + 'orgasim', + 'orgasims', + 'orgasm', + 'orgasms', + 'p0rn', + 'pawn', + 'pecker', + 'penis', + 'penisfucker', + 'phonesex', + 'phuck', + 'phuk', + 'phuked', + 'phuking', + 'phukked', + 'phukking', + 'phuks', + 'phuq', + 'pigfucker', + 'pimpis', + 'piss', + 'pissed', + 'pisser', + 'pissers', + 'pisses', + 'pissflaps', + 'pissin', + 'pissing', + 'pissoff', + 'poop', + 'porn', + 'porno', + 'pornography', + 'pornos', + 'prick', + 'pricks', + 'pron', + 'pube', + 'pusse', + 'pussi', + 'pussies', + 'pussy', + 'pussys', + 'rectum', + 'retard', + 'rimjaw', + 'rimming', + 's hit', + 's.o.b.', + 'sadist', + 'schlong', + 'screwing', + 'scroat', + 'scrote', + 'scrotum', + 'semen', + 'sex', + 'sh!+', + 'sh!t', + 'sh1t', + 'shag', + 'shagger', + 'shaggin', + 'shagging', + 'shemale', + 'shi+', + 'shit', + 'shitdick', + 'shite', + 'shited', + 'shitey', + 'shitfuck', + 'shitfull', + 'shithead', + 'shiting', + 'shitings', + 'shits', + 'shitted', + 'shitter', + 'shitters', + 'shitting', + 'shittings', + 'shitty', + 'skank', + 'slut', + 'sluts', + 'smegma', + 'smut', + 'snatch', + 'son-of-a-bitch', + 'spac', + 'spunk', + 's_h_i_t', + 't1tt1e5', + 't1tties', + 'teets', + 'teez', + 'testical', + 'testicle', + 'tit', + 'titfuck', + 'tits', + 'titt', + 'tittie5', + 'tittiefucker', + 'titties', + 'tittyfuck', + 'tittywank', + 'titwank', + 'tosser', + 'turd', + 'tw4t', + 'twat', + 'twathead', + 'twatty', + 'twunt', + 'twunter', + 'v14gra', + 'v1gra', + 'vagina', + 'viagra', + 'vulva', + 'w00se', + 'wang', + 'wank', + 'wanker', + 'wanky', + 'whoar', + 'whore', + 'willies', + 'willy', + 'xrated', + 'xxx', +]; diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 30113ce0c8..98004b6373 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -7,10 +7,10 @@ export enum ChainId { POLYGON = 137, POLYGON_MUMBAI = 80001, MOONBEAM = 1284, - MOONBASE_ALPHA=1287, + MOONBASE_ALPHA = 1287, LOCALHOST = 1338, } - + export interface IEscrowNetwork { chainId: number; title: string; @@ -19,49 +19,48 @@ export interface IEscrowNetwork { factoryAddress: string; } - export const ESCROW_NETWORKS: { - [chainId in ChainId]?: IEscrowNetwork; - } = { - [ChainId.GOERLI]: { - chainId: ChainId.GOERLI, - title: 'Ethereum Goerli', - rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', - factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', - hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', - }, - // [ChainId.BSC_MAINNET]: { - // chainId: ChainId.BSC_MAINNET, - // title: 'Binance Smart Chain', - // scanUrl: 'https://bscscan.com', - // rpcUrl: 'https://bsc-dataseed1.binance.org/', - // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', - // factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', - // hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', - // }, - [ChainId.BSC_TESTNET]: { - chainId: ChainId.BSC_TESTNET, - title: 'Binance Smart Chain (Testnet)', - rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', - factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', - hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', - }, - // [ChainId.POLYGON]: { - // chainId: ChainId.POLYGON, - // title: 'Polygon', - // scanUrl: 'https://polygonscan.com', - // rpcUrl: 'https://polygon-rpc.com/', - // subgraphUrl: - // 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', - // factoryAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', - // hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', - // }, - [ChainId.POLYGON_MUMBAI]: { - chainId: ChainId.POLYGON_MUMBAI, - title: 'Polygon Mumbai', - rpcUrl: 'https://rpc-mumbai.maticvigil.com', - factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', - hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', + [chainId in ChainId]?: IEscrowNetwork; +} = { + [ChainId.GOERLI]: { + chainId: ChainId.GOERLI, + title: 'Ethereum Goerli', + rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', + factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', + hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', + }, + // [ChainId.BSC_MAINNET]: { + // chainId: ChainId.BSC_MAINNET, + // title: 'Binance Smart Chain', + // scanUrl: 'https://bscscan.com', + // rpcUrl: 'https://bsc-dataseed1.binance.org/', + // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', + // factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + // hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', + // }, + [ChainId.BSC_TESTNET]: { + chainId: ChainId.BSC_TESTNET, + title: 'Binance Smart Chain (Testnet)', + rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', + factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', + hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', + }, + // [ChainId.POLYGON]: { + // chainId: ChainId.POLYGON, + // title: 'Polygon', + // scanUrl: 'https://polygonscan.com', + // rpcUrl: 'https://polygon-rpc.com/', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', + // factoryAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', + // hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', + // }, + [ChainId.POLYGON_MUMBAI]: { + chainId: ChainId.POLYGON_MUMBAI, + title: 'Polygon Mumbai', + rpcUrl: 'https://rpc-mumbai.maticvigil.com', + factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', + hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', }, [ChainId.LOCALHOST]: { chainId: ChainId.LOCALHOST, @@ -70,21 +69,21 @@ export const ESCROW_NETWORKS: { factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', }, - // [ChainId.MOONBEAM]: { - // chainId: ChainId.MOONBEAM, - // title: 'Moonbeam', - // scanUrl: 'https://moonbeam.moonscan.io', - // rpcUrl: 'https://rpc.api.moonbeam.network', - // subgraphUrl: - // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', - // factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', - // hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', - // }, - [ChainId.MOONBASE_ALPHA]: { - chainId: ChainId.MOONBASE_ALPHA, - title: 'Moonbase Alpha', - rpcUrl: 'https://rpc.api.moonbase.moonbeam.network', - factoryAddress: '0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB', - hmtAddress: '0xe4C8eC5d057EacF40060b2174627a4941a5c8127', - }, - }; \ No newline at end of file + // [ChainId.MOONBEAM]: { + // chainId: ChainId.MOONBEAM, + // title: 'Moonbeam', + // scanUrl: 'https://moonbeam.moonscan.io', + // rpcUrl: 'https://rpc.api.moonbeam.network', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', + // factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + // hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', + // }, + [ChainId.MOONBASE_ALPHA]: { + chainId: ChainId.MOONBASE_ALPHA, + title: 'Moonbase Alpha', + rpcUrl: 'https://rpc.api.moonbase.moonbeam.network', + factoryAddress: '0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB', + hmtAddress: '0xe4C8eC5d057EacF40060b2174627a4941a5c8127', + }, +}; diff --git a/packages/examples/fortune/launcher/server/src/index.ts b/packages/examples/fortune/launcher/server/src/index.ts index 32e69b08dc..a11321644c 100644 --- a/packages/examples/fortune/launcher/server/src/index.ts +++ b/packages/examples/fortune/launcher/server/src/index.ts @@ -1,19 +1,19 @@ import server from './server.js'; process.on('unhandledRejection', (err) => { - console.error(err); - process.exit(1); - }); - - const port = +server.config.API_PORT; - const host = server.config.API_HOST; - await server.listen({ host, port }); - - for (const signal of ['SIGINT', 'SIGTERM']) { - process.on(signal, () => - server.close().then((err) => { - console.log(`close application on ${signal}`); - process.exit(err ? 1 : 0); - }), - ); - } \ No newline at end of file + console.error(err); + process.exit(1); +}); + +const port = +server.config.API_PORT; +const host = server.config.API_HOST; +await server.listen({ host, port }); + +for (const signal of ['SIGINT', 'SIGTERM']) { + process.on(signal, () => + server.close().then((err) => { + console.log(`close application on ${signal}`); + process.exit(err ? 1 : 0); + }) + ); +} diff --git a/packages/examples/fortune/launcher/server/src/plugins/config.ts b/packages/examples/fortune/launcher/server/src/plugins/config.ts index c920a90d14..cf7b23abf6 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/config.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/config.ts @@ -1,13 +1,13 @@ -import "dotenv/config"; -import fp from "fastify-plugin"; -import { FastifyPluginAsync } from "fastify"; -import { Static, Type } from "@sinclair/typebox"; -import Ajv from "ajv"; +import 'dotenv/config'; +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; +import { Static, Type } from '@sinclair/typebox'; +import Ajv from 'ajv'; export enum NodeEnv { - development = "development", - test = "test", - production = "production", + development = 'development', + test = 'test', + production = 'production', } const ConfigSchema = Type.Strict( @@ -42,17 +42,17 @@ const configPlugin: FastifyPluginAsync = async (server) => { const valid = validate(process.env); if (!valid) { throw new Error( - ".env file validation failed - " + + '.env file validation failed - ' + JSON.stringify(validate.errors, null, 2) ); } - server.decorate("config", process.env); + server.decorate('config', process.env); }; -declare module "fastify" { +declare module 'fastify' { interface FastifyInstance { config: Config; } } -export default fp(configPlugin); \ No newline at end of file +export default fp(configPlugin); diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index 60ef34a546..881ec88113 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -6,7 +6,6 @@ import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "js import { escrow as escrowSchema } from '../schemas/escrow.js'; import Web3 from 'web3'; import { CURSE_WORDS } from "../constants/curseWords.js"; -import server from '../server.js'; import { Type } from "@sinclair/typebox"; import Ajv from "ajv"; @@ -46,7 +45,7 @@ class Escrow { .setup(this.repOracleAddress, this.recOracleAddress, this.repOracleFee, this.recOracleFee, url, url, fortunesRequested) .estimateGas({ from: web3.eth.defaultAccount }); const gasPrice = await web3.eth.getGasPrice(); - const result = await escrowContract.methods + await escrowContract.methods .setup(this.repOracleAddress, this.recOracleAddress, this.repOracleFee, this.recOracleFee, url, url, fortunesRequested) .send({ from: web3.eth.defaultAccount, gas, gasPrice }); } @@ -80,7 +79,7 @@ class Escrow { .transferFrom(jobRequester, escrowAddress, fundAmount) .estimateGas({ from: web3.eth.defaultAccount }); const gasPrice = await web3.eth.getGasPrice(); - var result = await hmtoken.methods + await hmtoken.methods .transferFrom(jobRequester, escrowAddress, fundAmount) .send({ from: web3.eth.defaultAccount, gas, gasPrice }); } diff --git a/packages/examples/fortune/launcher/server/src/plugins/s3.ts b/packages/examples/fortune/launcher/server/src/plugins/s3.ts index 47afcd1639..bb3084598d 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/s3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/s3.ts @@ -1,80 +1,79 @@ -import "dotenv/config"; -import fp from "fastify-plugin"; -import { FastifyPluginAsync } from "fastify"; +import 'dotenv/config'; +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; import * as Minio from 'minio'; -import { Type } from "@sinclair/typebox"; -import Ajv from "ajv"; +import { Type } from '@sinclair/typebox'; +import Ajv from 'ajv'; const ConfigSchema = Type.Strict( - Type.Object({ - S3_HOST: Type.String(), - S3_PORT: Type.Number(), - S3_ACCESS_KEY: Type.String(), - S3_SECRET_KEY: Type.String(), - S3_BUCKET_NAME: Type.String(), - S3_BASE_URL: Type.String() - }) - ); - - const ajv = new Ajv({ - allErrors: true, - removeAdditional: true, - useDefaults: true, - coerceTypes: true, - allowUnionTypes: true, - }); + Type.Object({ + S3_HOST: Type.String(), + S3_PORT: Type.Number(), + S3_ACCESS_KEY: Type.String(), + S3_SECRET_KEY: Type.String(), + S3_BUCKET_NAME: Type.String(), + S3_BASE_URL: Type.String(), + }) +); +const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, +}); class S3Client { - private s3Client: Minio.Client; - private s3Host = process.env.S3_HOST as string; - private s3Port = Number(process.env.S3_PORT); - private s3AccessKey = process.env.S3_ACCESS_KEY as string; - private s3SecretKey = process.env.S3_SECRET_KEY as string; - private s3BucketName = process.env.S3_BUCKET_NAME as string; - private s3BaseUrl = process.env.S3_BASE_URL as string; - constructor() { - this.s3Client = new Minio.Client({ - endPoint: this.s3Host, - port: this.s3Port, - accessKey: this.s3AccessKey, - secretKey: this.s3SecretKey, - useSSL: false, - }); - } - - async uploadManifest(escrowData: any, escrowAddress: string) { - const fileName = `${escrowAddress}-manifest.json`; - const bucketExists = await this.s3Client.bucketExists(this.s3BucketName); - if (!bucketExists) { + private s3Client: Minio.Client; + private s3Host = process.env.S3_HOST as string; + private s3Port = Number(process.env.S3_PORT); + private s3AccessKey = process.env.S3_ACCESS_KEY as string; + private s3SecretKey = process.env.S3_SECRET_KEY as string; + private s3BucketName = process.env.S3_BUCKET_NAME as string; + private s3BaseUrl = process.env.S3_BASE_URL as string; + constructor() { + this.s3Client = new Minio.Client({ + endPoint: this.s3Host, + port: this.s3Port, + accessKey: this.s3AccessKey, + secretKey: this.s3SecretKey, + useSSL: false, + }); + } + + async uploadManifest(escrowData: any, escrowAddress: string) { + const fileName = `${escrowAddress}-manifest.json`; + const bucketExists = await this.s3Client.bucketExists(this.s3BucketName); + if (!bucketExists) { await this.s3Client.makeBucket(process.env.S3_BUCKET_NAME as string, ''); - } - await this.s3Client.putObject( - this.s3BucketName, - fileName, - JSON.stringify(escrowData), - { 'Content-Type': 'application/json' } - ); - return `${this.s3BaseUrl}${fileName}` } + await this.s3Client.putObject( + this.s3BucketName, + fileName, + JSON.stringify(escrowData), + { 'Content-Type': 'application/json' } + ); + return `${this.s3BaseUrl}${fileName}`; } +} const s3Plugin: FastifyPluginAsync = async (server) => { - const validate = ajv.compile(ConfigSchema); - const valid = validate(process.env); - if (!valid) { - throw new Error( - ".env file validation failed - " + - JSON.stringify(validate.errors, null, 2) - ); - } - server.decorate("s3", new S3Client()); + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + '.env file validation failed - ' + + JSON.stringify(validate.errors, null, 2) + ); + } + server.decorate('s3', new S3Client()); }; - -declare module "fastify" { - interface FastifyInstance { - s3: S3Client; - } + +declare module 'fastify' { + interface FastifyInstance { + s3: S3Client; + } } -export default fp(s3Plugin); \ No newline at end of file +export default fp(s3Plugin); diff --git a/packages/examples/fortune/launcher/server/src/plugins/web3.ts b/packages/examples/fortune/launcher/server/src/plugins/web3.ts index 698b309ee7..544997c80d 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/web3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/web3.ts @@ -1,57 +1,56 @@ -import "dotenv/config"; -import fp from "fastify-plugin"; -import { FastifyPluginAsync } from "fastify"; -import { Type } from "@sinclair/typebox"; -import Ajv from "ajv"; +import 'dotenv/config'; +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; +import { Type } from '@sinclair/typebox'; +import Ajv from 'ajv'; import { IEscrowNetwork } from 'constants/networks'; import Web3 from 'web3'; const ConfigSchema = Type.Strict( - Type.Object({ - ETH_PRIVATE_KEY: Type.String() - }) - ); - - const ajv = new Ajv({ - allErrors: true, - removeAdditional: true, - useDefaults: true, - coerceTypes: true, - allowUnionTypes: true, - }); + Type.Object({ + ETH_PRIVATE_KEY: Type.String(), + }) +); +const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, +}); class Web3Client { - private privKey = process.env.ETH_PRIVATE_KEY as string; - constructor() { - } - - createWeb3 (network: IEscrowNetwork, privKey?: string) { - const ethHttpServer = network.rpcUrl as string; - const web3 = new Web3(ethHttpServer); - const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey || this.privKey}`); - web3.eth.accounts.wallet.add(account); - web3.eth.defaultAccount = account.address; - return web3; - } + private privKey = process.env.ETH_PRIVATE_KEY as string; + + createWeb3(network: IEscrowNetwork, privKey?: string) { + const ethHttpServer = network.rpcUrl as string; + const web3 = new Web3(ethHttpServer); + const account = web3.eth.accounts.privateKeyToAccount( + `0x${privKey || this.privKey}` + ); + web3.eth.accounts.wallet.add(account); + web3.eth.defaultAccount = account.address; + return web3; } +} const web3Plugin: FastifyPluginAsync = async (server) => { const validate = ajv.compile(ConfigSchema); const valid = validate(process.env); if (!valid) { throw new Error( - ".env file validation failed - " + + '.env file validation failed - ' + JSON.stringify(validate.errors, null, 2) ); } - server.decorate("web3", new Web3Client()); + server.decorate('web3', new Web3Client()); }; - -declare module "fastify" { - interface FastifyInstance { - web3: Web3Client; - } + +declare module 'fastify' { + interface FastifyInstance { + web3: Web3Client; + } } -export default fp(web3Plugin); \ No newline at end of file +export default fp(web3Plugin); diff --git a/packages/examples/fortune/launcher/server/src/routes/escrow.ts b/packages/examples/fortune/launcher/server/src/routes/escrow.ts index 6cc49d2f60..280696d3a5 100644 --- a/packages/examples/fortune/launcher/server/src/routes/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/routes/escrow.ts @@ -1,36 +1,37 @@ import { Type } from '@sinclair/typebox'; import { FastifyPluginAsync } from 'fastify'; import { escrow as escrowSchema } from '../schemas/escrow.js'; -import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from '../constants/networks.js'; +import { + ChainId, + ESCROW_NETWORKS, + IEscrowNetwork, +} from '../constants/networks.js'; export const createEscrow: FastifyPluginAsync = async (server) => { - let escrowNetwork: IEscrowNetwork; let escrowData: typeof escrowSchema.properties; - server.post('/escrow', + server.post( + '/escrow', { preValidation: (request, reply, done) => { escrowData = request.body as typeof escrowSchema.properties; const chainId = Number(escrowData.chainId) as ChainId; - if (!chainId) - return new Error('Invalid chain Id'); - + if (!chainId) return new Error('Invalid chain Id'); + const network = ESCROW_NETWORKS[chainId]; - if(network){ + if (network) { escrowNetwork = network; done(undefined); - } - else - done(new Error('Chain Id not supported')); + } else done(new Error('Chain Id not supported')); }, schema: { body: escrowSchema, response: { 200: Type.Object({ - response: Type.String() + response: Type.String(), }), }, - }, + }, }, async function (request, reply) { const { escrow, s3, web3 } = server; @@ -39,23 +40,51 @@ export const createEscrow: FastifyPluginAsync = async (server) => { const jobRequester = escrowData.jobRequester as unknown as string; const token = escrowData.token as unknown as string; - const fundAmount = web3Client.utils.toWei(Number(escrowData.fundAmount).toString(), 'ether'); + const fundAmount = web3Client.utils.toWei( + Number(escrowData.fundAmount).toString(), + 'ether' + ); - if (await escrow.checkApproved(web3Client, token, jobRequester, fundAmount)) { + if ( + await escrow.checkApproved(web3Client, token, jobRequester, fundAmount) + ) { const description = escrowData.description as unknown as string; const title = escrowData.title as unknown as string; - if (escrow.checkCurseWords(description) || escrow.checkCurseWords(title)) - return reply.status(400).send('Title or description contains curse words'); - const escrowAddress = await escrow.createEscrow(web3Client, escrowNetwork.factoryAddress, token, jobRequester); - await escrow.fundEscrow(web3Client, token, jobRequester, escrowAddress, fundAmount); + if ( + escrow.checkCurseWords(description) || + escrow.checkCurseWords(title) + ) + return reply + .status(400) + .send('Title or description contains curse words'); + const escrowAddress = await escrow.createEscrow( + web3Client, + escrowNetwork.factoryAddress, + token, + jobRequester + ); + await escrow.fundEscrow( + web3Client, + token, + jobRequester, + escrowAddress, + fundAmount + ); const data = escrow.addOraclesData(escrowData); const url = await s3.uploadManifest(data, escrowAddress); const fortunesRequested = Number(escrowData.fortunesRequired); - await escrow.setupEscrow(web3Client, escrowAddress, url, fortunesRequested); + await escrow.setupEscrow( + web3Client, + escrowAddress, + url, + fortunesRequested + ); return escrowAddress; } - return reply.status(400).send('Balance or allowance not enough for funding the escrow'); - }); - } - + return reply + .status(400) + .send('Balance or allowance not enough for funding the escrow'); + } + ); +}; diff --git a/packages/examples/fortune/launcher/server/src/routes/payments.ts b/packages/examples/fortune/launcher/server/src/routes/payments.ts index aa1dda03ce..394ad02e5c 100644 --- a/packages/examples/fortune/launcher/server/src/routes/payments.ts +++ b/packages/examples/fortune/launcher/server/src/routes/payments.ts @@ -1,18 +1,19 @@ import { FastifyPluginAsync } from 'fastify'; export const cryptoPayment: FastifyPluginAsync = async (server) => { - server.post('/payment', + server.post( + '/payment', { schema: { - body: {type: 'string'} - }, + body: { type: 'string' }, + }, }, - async function (request, reply) { - + async function (request, reply) { const txHash = request.body; - + console.log(txHash); - + return true; - }); - } \ No newline at end of file + } + ); +}; diff --git a/packages/examples/fortune/launcher/server/src/schemas/escrow.ts b/packages/examples/fortune/launcher/server/src/schemas/escrow.ts index eba725b6c6..817b300d55 100644 --- a/packages/examples/fortune/launcher/server/src/schemas/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/schemas/escrow.ts @@ -1,13 +1,25 @@ export const escrow = { - type: 'object', - properties: { - chainId: { type: 'number' }, - title: { type: 'string' }, - description: { type: 'string' }, - fortunesRequired: { type: 'number' }, - token: { type: 'string', minLength: 2, pattern: '^0x[a-fA-F0-9]{40}$' }, - fundAmount: { type: 'number' }, - jobRequester: { type: 'string', minLength: 2, pattern: '^0x[a-fA-F0-9]{40}$' } + type: 'object', + properties: { + chainId: { type: 'number' }, + title: { type: 'string' }, + description: { type: 'string' }, + fortunesRequired: { type: 'number' }, + token: { type: 'string', minLength: 2, pattern: '^0x[a-fA-F0-9]{40}$' }, + fundAmount: { type: 'number' }, + jobRequester: { + type: 'string', + minLength: 2, + pattern: '^0x[a-fA-F0-9]{40}$', }, - required: ['chainId', 'title', 'description', 'fortunesRequired', 'token', 'fundAmount', 'jobRequester'] -} \ No newline at end of file + }, + required: [ + 'chainId', + 'title', + 'description', + 'fortunesRequired', + 'token', + 'fundAmount', + 'jobRequester', + ], +}; diff --git a/packages/examples/fortune/launcher/server/src/server.ts b/packages/examples/fortune/launcher/server/src/server.ts index 2841ea7a57..bb60b3bbfe 100644 --- a/packages/examples/fortune/launcher/server/src/server.ts +++ b/packages/examples/fortune/launcher/server/src/server.ts @@ -1,18 +1,18 @@ import fastify from 'fastify'; import config from './plugins/config.js'; -import s3 from './plugins/s3.js' +import s3 from './plugins/s3.js'; import routes from './routes/index.js'; -import cors from '@fastify/cors' +import cors from '@fastify/cors'; import escrow from './plugins/escrow.js'; import web3 from './plugins/web3.js'; const server = fastify({ ajv: { customOptions: { - removeAdditional: "all", + removeAdditional: 'all', coerceTypes: true, useDefaults: true, - } + }, }, logger: { level: process.env.LOG_LEVEL, @@ -28,4 +28,4 @@ await server .register(web3) .ready(); -export default server; \ No newline at end of file +export default server; diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts index 7faac03515..5780550cc1 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -1,12 +1,17 @@ import { describe, test, expect, beforeAll } from 'vitest'; -import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from "../../src/constants/networks.js"; -import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; -import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; -import server from '../../src/server.js' -import { stake, approve } from '../utils.js' +import { + ChainId, + ESCROW_NETWORKS, + IEscrowNetwork, +} from '../../src/constants/networks.js'; +import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: 'json' }; +import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: 'json' }; +import server from '../../src/server.js'; +import { stake, approve } from '../utils.js'; import { escrow as escrowSchema } from '../../src/schemas/escrow.js'; -const jobRequesterPrivKey = 'de9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0'; +const jobRequesterPrivKey = + 'de9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0'; const jobRequester = '0xdD2FD4581271e230360230F9337D5c0430Bf44C0'; describe('Escrow tests', () => { @@ -14,64 +19,120 @@ describe('Escrow tests', () => { const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; const web3Client = web3.createWeb3(network); const web3JobRequester = web3.createWeb3(network, jobRequesterPrivKey); - + beforeAll(async () => { await stake(web3Client, network); }); test('Should not be approved', async () => { - expect(await escrow.checkApproved(web3Client, network.hmtAddress, jobRequester, web3Client.utils.toWei('10', 'ether'))).eq(false); + expect( + await escrow.checkApproved( + web3Client, + network.hmtAddress, + jobRequester, + web3Client.utils.toWei('10', 'ether') + ) + ).eq(false); }); test('Should be approved', async () => { const amount = web3JobRequester.utils.toWei('10', 'ether'); - await approve(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); - expect(await escrow.checkApproved(web3Client, network.hmtAddress, jobRequester, web3Client.utils.toWei('10', 'ether'))).eq(true); + await approve( + web3JobRequester, + network, + web3Client.eth.defaultAccount as string, + amount + ); + expect( + await escrow.checkApproved( + web3Client, + network.hmtAddress, + jobRequester, + web3Client.utils.toWei('10', 'ether') + ) + ).eq(true); }); test('Should create an escrow', async () => { - const escrowAddress = await escrow.createEscrow(web3Client, network.factoryAddress, network.hmtAddress, jobRequester); - const escrowContract = new web3Client.eth.Contract(EscrowAbi as [], escrowAddress); - expect(await escrowContract.methods.launcher().call()).eq(network.factoryAddress); + const escrowAddress = await escrow.createEscrow( + web3Client, + network.factoryAddress, + network.hmtAddress, + jobRequester + ); + const escrowContract = new web3Client.eth.Contract( + EscrowAbi as [], + escrowAddress + ); + expect(await escrowContract.methods.launcher().call()).eq( + network.factoryAddress + ); }); test('Should fund an escrow', async () => { - const escrowAddress = await escrow.createEscrow(web3Client, network.factoryAddress, network.hmtAddress, jobRequester); - const escrowContract = new web3Client.eth.Contract(EscrowAbi as [], escrowAddress); + const escrowAddress = await escrow.createEscrow( + web3Client, + network.factoryAddress, + network.hmtAddress, + jobRequester + ); const amount = web3Client.utils.toWei('10', 'ether'); - await escrow.fundEscrow(web3Client, network.hmtAddress, jobRequester, escrowAddress, amount); - const hmtContract = new web3Client.eth.Contract(HMTokenAbi as [], network.hmtAddress); - expect(await hmtContract.methods.balanceOf(escrowAddress).call()).eq(amount); + await escrow.fundEscrow( + web3Client, + network.hmtAddress, + jobRequester, + escrowAddress, + amount + ); + const hmtContract = new web3Client.eth.Contract( + HMTokenAbi as [], + network.hmtAddress + ); + expect(await hmtContract.methods.balanceOf(escrowAddress).call()).eq( + amount + ); }); test('Should setup an escrow', async () => { - const escrowAddress = await escrow.createEscrow(web3Client, network.factoryAddress, network.hmtAddress, jobRequester); - const escrowContract = new web3Client.eth.Contract(EscrowAbi as [], escrowAddress); + const escrowAddress = await escrow.createEscrow( + web3Client, + network.factoryAddress, + network.hmtAddress, + jobRequester + ); + const escrowContract = new web3Client.eth.Contract( + EscrowAbi as [], + escrowAddress + ); const url = 'http://test.com'; await escrow.setupEscrow(web3Client, escrowAddress, url, 3); expect(await escrowContract.methods.manifestUrl().call()).eq(url); - expect(Number(await escrowContract.methods.remainingSolutions().call())).eq(3); + expect(Number(await escrowContract.methods.remainingSolutions().call())).eq( + 3 + ); }); test('Should not detect curse words', () => { - expect(escrow.checkCurseWords("hello world")).eq(false); + expect(escrow.checkCurseWords('hello world')).eq(false); }); - + test('Should detect curse words', () => { - expect(escrow.checkCurseWords("porn")).eq(true); + expect(escrow.checkCurseWords('porn')).eq(true); }); test('Should add oracles info', () => { const escrowData = { chainId: 1338, - title: "title 1", - description: "description 1", + title: 'title 1', + description: 'description 1', fortunesRequired: 2, - token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", + token: '0x5FbDB2315678afecb367f032d93F642f64180aa3', fundAmount: 1, - jobRequester: jobRequester + jobRequester: jobRequester, }; - const result = escrow.addOraclesData(escrowData as unknown as typeof escrowSchema.properties); + const result = escrow.addOraclesData( + escrowData as unknown as typeof escrowSchema.properties + ); expect(result.recordingOracleAddress).eq(process.env.REC_ORACLE_ADDRESS); expect(result.reputationOracleAddress).eq(process.env.REP_ORACLE_ADDRESS); @@ -79,6 +140,5 @@ describe('Escrow tests', () => { expect(result.recordingOracleUrl).eq(process.env.REC_ORACLE_URL); expect(result.reputationOracleUrl).eq(process.env.REP_ORACLE_URL); expect(result.exchangeOracleUrl).eq(process.env.EX_ORACLE_URL); - }); -}); \ No newline at end of file +}); diff --git a/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts index b3bc58ba06..cd0f00b6fc 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts @@ -1,16 +1,20 @@ import { describe, test, expect } from 'vitest'; -import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from "../../src/constants/networks.js"; -import server from '../../src/server.js' +import { + ChainId, + ESCROW_NETWORKS, + IEscrowNetwork, +} from '../../src/constants/networks.js'; +import server from '../../src/server.js'; -const privKey = 'df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e'; +const privKey = + 'df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e'; const address = '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199'; describe('Web3 tests', () => { - const { web3 } = server; + const { web3 } = server; const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; test('Should initialize web3 client', async () => { - const web3Client = web3.createWeb3(network, privKey); - expect(web3Client.eth.defaultAccount).eq(address); + const web3Client = web3.createWeb3(network, privKey); + expect(web3Client.eth.defaultAccount).eq(address); }); - -}); \ No newline at end of file +}); diff --git a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts index c1238cc3bc..ba4c2b64d2 100644 --- a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts @@ -1,81 +1,103 @@ import { describe, test, expect, beforeAll, vi } from 'vitest'; -import { ChainId, ESCROW_NETWORKS, IEscrowNetwork } from "../../src/constants/networks.js"; -import server from '../../src/server.js' -import { stake, approve, decreaseApproval } from '../utils.js' +import { + ChainId, + ESCROW_NETWORKS, + IEscrowNetwork, +} from '../../src/constants/networks.js'; +import server from '../../src/server.js'; +import { stake, approve, decreaseApproval } from '../utils.js'; -const jobRequesterPrivKey = '689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b061667b5a93e037fd'; +const jobRequesterPrivKey = + '689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b061667b5a93e037fd'; const jobRequester = '0xbDA5747bFD65F08deb54cb465eB87D40e51B197E'; describe('Escrow route tests', () => { - const { web3, s3 } = server; + const { web3, s3 } = server; - const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; - const web3Client = web3.createWeb3(network); - const web3JobRequester = web3.createWeb3(network, jobRequesterPrivKey); + const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; + const web3Client = web3.createWeb3(network); + const web3JobRequester = web3.createWeb3(network, jobRequesterPrivKey); - beforeAll(async () => { - const spy = vi.spyOn(s3, 'uploadManifest') - spy.mockImplementation(async () => 'fileUrl') - await stake(web3Client, network); - }) + beforeAll(async () => { + const spy = vi.spyOn(s3, 'uploadManifest'); + spy.mockImplementation(async () => 'fileUrl'); + await stake(web3Client, network); + }); - test('Should not allow to create an escrow because of allowance or balance', async () => { - const response = await server.inject({ - method: 'POST', - path: '/escrow', - payload: { - chainId: 1338, - title: "title 1", - description: "description 1", - fortunesRequired: 2, - token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", - fundAmount: 1, - jobRequester: jobRequester - } - }); - - expect(response.statusCode).eq(400); - expect(response.body).eq('Balance or allowance not enough for funding the escrow'); + test('Should not allow to create an escrow because of allowance or balance', async () => { + const response = await server.inject({ + method: 'POST', + path: '/escrow', + payload: { + chainId: 1338, + title: 'title 1', + description: 'description 1', + fortunesRequired: 2, + token: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + fundAmount: 1, + jobRequester: jobRequester, + }, }); - test('Should not allow to create an escrow because curse words', async () => { - const amount = web3JobRequester.utils.toWei('10', 'ether'); - await approve(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); - const response = await server.inject({ - method: 'POST', - path: '/escrow', - payload: { - chainId: 1338, - title: "porn", - description: "description 1", - fortunesRequired: 2, - token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", - fundAmount: 1, - jobRequester: jobRequester - } - }); - - expect(response.statusCode).eq(400); - expect(response.body).eq('Title or description contains curse words'); - await decreaseApproval(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); + + expect(response.statusCode).eq(400); + expect(response.body).eq( + 'Balance or allowance not enough for funding the escrow' + ); + }); + test('Should not allow to create an escrow because curse words', async () => { + const amount = web3JobRequester.utils.toWei('10', 'ether'); + await approve( + web3JobRequester, + network, + web3Client.eth.defaultAccount as string, + amount + ); + const response = await server.inject({ + method: 'POST', + path: '/escrow', + payload: { + chainId: 1338, + title: 'porn', + description: 'description 1', + fortunesRequired: 2, + token: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + fundAmount: 1, + jobRequester: jobRequester, + }, }); - test('Should create an escrow', async () => { - const amount = web3JobRequester.utils.toWei('10', 'ether'); - await approve(web3JobRequester, network, web3Client.eth.defaultAccount as string, amount); - const response = await server.inject({ - method: 'POST', - path: '/escrow', - payload: { - chainId: 1338, - title: "title 1", - description: "description 1", - fortunesRequired: 2, - token: "0x5FbDB2315678afecb367f032d93F642f64180aa3", - fundAmount: 1, - jobRequester: jobRequester - } - }); - expect(response.statusCode).eq(200); - expect(response.body).contains('0x'); + expect(response.statusCode).eq(400); + expect(response.body).eq('Title or description contains curse words'); + await decreaseApproval( + web3JobRequester, + network, + web3Client.eth.defaultAccount as string, + amount + ); + }); + test('Should create an escrow', async () => { + const amount = web3JobRequester.utils.toWei('10', 'ether'); + await approve( + web3JobRequester, + network, + web3Client.eth.defaultAccount as string, + amount + ); + const response = await server.inject({ + method: 'POST', + path: '/escrow', + payload: { + chainId: 1338, + title: 'title 1', + description: 'description 1', + fortunesRequired: 2, + token: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + fundAmount: 1, + jobRequester: jobRequester, + }, }); -}); \ No newline at end of file + + expect(response.statusCode).eq(200); + expect(response.body).contains('0x'); + }); +}); diff --git a/packages/examples/fortune/launcher/server/tests/setup.ts b/packages/examples/fortune/launcher/server/tests/setup.ts index 279b5f6192..35e0e2ab42 100644 --- a/packages/examples/fortune/launcher/server/tests/setup.ts +++ b/packages/examples/fortune/launcher/server/tests/setup.ts @@ -1,3 +1,3 @@ import dotenv from 'dotenv'; -dotenv.config({ path: './.env.test' }); \ No newline at end of file +dotenv.config({ path: './.env.test' }); diff --git a/packages/examples/fortune/launcher/server/tests/utils.ts b/packages/examples/fortune/launcher/server/tests/utils.ts index 1962c206fa..35a9dd8127 100644 --- a/packages/examples/fortune/launcher/server/tests/utils.ts +++ b/packages/examples/fortune/launcher/server/tests/utils.ts @@ -1,43 +1,65 @@ -import Web3 from "web3"; -import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json' assert { type: "json" }; -import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; -import StakingAbi from '@human-protocol/core/abis/Staking.json' assert { type: "json" }; -import { IEscrowNetwork } from "../src/constants/networks.js"; +import Web3 from 'web3'; +import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json' assert { type: 'json' }; +import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: 'json' }; +import StakingAbi from '@human-protocol/core/abis/Staking.json' assert { type: 'json' }; +import { IEscrowNetwork } from '../src/constants/networks.js'; export const stake = async (web3: Web3, network: IEscrowNetwork) => { - const escrowFactoryContract = new web3.eth.Contract(EscrowFactoryAbi as [], network.factoryAddress); - const stakingAddress = await escrowFactoryContract.methods.staking().call(); - const stakeAmount = web3.utils.toWei('10', 'ether'); + const escrowFactoryContract = new web3.eth.Contract( + EscrowFactoryAbi as [], + network.factoryAddress + ); + const stakingAddress = await escrowFactoryContract.methods.staking().call(); + const stakeAmount = web3.utils.toWei('10', 'ether'); - await approve(web3, network, stakingAddress, stakeAmount) + await approve(web3, network, stakingAddress, stakeAmount); - const stakingContract = new web3.eth.Contract(StakingAbi as [], stakingAddress); - const gas = await stakingContract.methods - .stake(stakeAmount) - .estimateGas({ from: web3.eth.defaultAccount }); - const gasPrice = await web3.eth.getGasPrice(); - await stakingContract.methods - .stake(stakeAmount) - .send({ from: web3.eth.defaultAccount, gas, gasPrice }); + const stakingContract = new web3.eth.Contract( + StakingAbi as [], + stakingAddress + ); + const gas = await stakingContract.methods + .stake(stakeAmount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + await stakingContract.methods + .stake(stakeAmount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); }; -export const approve = async (web3: Web3, network: IEscrowNetwork, to: string, amount: string) => { - const hmtContract = new web3.eth.Contract(HMTokenAbi as [], network.hmtAddress); - let gas = await hmtContract.methods - .approve(to, amount) - .estimateGas({ from: web3.eth.defaultAccount }); - const gasPrice = await web3.eth.getGasPrice(); - await hmtContract.methods - .approve(to, amount) - .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +export const approve = async ( + web3: Web3, + network: IEscrowNetwork, + to: string, + amount: string +) => { + const hmtContract = new web3.eth.Contract( + HMTokenAbi as [], + network.hmtAddress + ); + let gas = await hmtContract.methods + .approve(to, amount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + await hmtContract.methods + .approve(to, amount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); }; -export const decreaseApproval = async (web3: Web3, network: IEscrowNetwork, to: string, amount: string) => { - const hmtContract = new web3.eth.Contract(HMTokenAbi as [], network.hmtAddress); +export const decreaseApproval = async ( + web3: Web3, + network: IEscrowNetwork, + to: string, + amount: string +) => { + const hmtContract = new web3.eth.Contract( + HMTokenAbi as [], + network.hmtAddress + ); let gas = await hmtContract.methods - .decreaseApproval(to, amount) - .estimateGas({ from: web3.eth.defaultAccount }); + .decreaseApproval(to, amount) + .estimateGas({ from: web3.eth.defaultAccount }); const gasPrice = await web3.eth.getGasPrice(); await hmtContract.methods - .decreaseApproval(to, amount) - .send({ from: web3.eth.defaultAccount, gas, gasPrice }); -} \ No newline at end of file + .decreaseApproval(to, amount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +}; diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index b1ea41e692..0c9dcf3a27 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -11,8 +11,8 @@ "baseUrl": "src", "skipLibCheck": true, "strict": true, - "resolveJsonModule": true, + "resolveJsonModule": true }, "include": ["src/**/*.ts", "tests/**/*.ts"], "exclude": ["node_modules"] -} \ No newline at end of file +} diff --git a/packages/examples/fortune/launcher/server/vitest.config.ts b/packages/examples/fortune/launcher/server/vitest.config.ts index 8726070b35..f695e24746 100644 --- a/packages/examples/fortune/launcher/server/vitest.config.ts +++ b/packages/examples/fortune/launcher/server/vitest.config.ts @@ -1,8 +1,8 @@ -import { defineConfig } from 'vitest/config' +import { defineConfig } from 'vitest/config'; export default defineConfig({ - test: { - setupFiles: ['./tests/setup.ts'], - threads: false - }, -}) \ No newline at end of file + test: { + setupFiles: ['./tests/setup.ts'], + threads: false, + }, +}); diff --git a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts index 684d719786..5b4c96b53e 100644 --- a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts +++ b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts @@ -6,7 +6,7 @@ export enum ChainId { POLYGON = 137, POLYGON_MUMBAI = 80001, MOONBEAM = 1284, - MOONBASE_ALPHA=1287, + MOONBASE_ALPHA = 1287, LOCALHOST = 1338, } From 2669c86f6e9da0ce2153afc0a7a8b75420fb1e0b Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 31 Jan 2023 10:32:31 +0100 Subject: [PATCH 119/216] fix package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9d76bae9e3..cfbadf3ebf 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "escrow-dashboard:lint": "yarn workspace @human-protocol/escrow-dashboard lint", "eth-kvstore:lint": "yarn workspace @human-protocol/eth-kvstore-gui lint", "fortune:test": "yarn workspace @human-protocol/fortune test", - "fortune:lint": "yarn workspace @human-protocol/fortune lint && yarn workspace @human-protocol/fortune lint", + "fortune:lint": "yarn workspace @human-protocol/fortune lint", "sdk:test": "yarn workspace @human-protocol/sdk test", "sdk:lint": "yarn workspace @human-protocol/sdk lint", "test": "concurrently npm:core:test npm:subgraph:test npm:escrow-dashboard:test npm:fortune:test npm:sdk:test", From 4433a1c92c32674c1f0f6e115e11f43a84f006a7 Mon Sep 17 00:00:00 2001 From: m00n620 Date: Tue, 31 Jan 2023 08:24:13 -0500 Subject: [PATCH 120/216] approve token, integrate backend API --- packages/apps/escrow-dashboard/.env.example | 1 + .../src/components/Fortune/Launch.tsx | 31 +++++++++++++- .../src/components/Fortune/LaunchFail.tsx | 27 ++++++++++++ .../src/components/Fortune/LaunchSuccess.tsx | 19 +++++++++ .../src/components/Fortune/index.ts | 2 + .../src/components/Fortune/types.ts | 2 + .../src/pages/Fortune/index.tsx | 41 +++++++++++++++++-- 7 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/LaunchFail.tsx create mode 100644 packages/apps/escrow-dashboard/src/components/Fortune/LaunchSuccess.tsx diff --git a/packages/apps/escrow-dashboard/.env.example b/packages/apps/escrow-dashboard/.env.example index f79a6cfa46..102f3778d4 100644 --- a/packages/apps/escrow-dashboard/.env.example +++ b/packages/apps/escrow-dashboard/.env.example @@ -1 +1,2 @@ PORT=3002 +REACT_APP_JOB_LAUNCHER_SERVER_URL=http://localhost:3000 \ No newline at end of file diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx b/packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx index c7bcf04892..507a917f7a 100644 --- a/packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx +++ b/packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx @@ -1,5 +1,34 @@ +import { Box, Typography } from '@mui/material'; import React from 'react'; +import { RoundedBox } from './RoundedBox'; export const Launch = () => { - return <>; + return ( + + + + Creating Job + + + Setting Up Escrow + + + Founding Escrow + + + Setting Up Trusted Handler + + + + ); }; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/LaunchFail.tsx b/packages/apps/escrow-dashboard/src/components/Fortune/LaunchFail.tsx new file mode 100644 index 0000000000..046166e1d9 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/LaunchFail.tsx @@ -0,0 +1,27 @@ +import { Button, Typography } from '@mui/material'; +import React from 'react'; +import { RoundedBox } from './RoundedBox'; + +type LaunchFailProps = { + onBack: () => void; +}; + +export const LaunchFail = ({ onBack }: LaunchFailProps) => { + return ( + + + Fail! + + + Fail message here. + + + + ); +}; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/LaunchSuccess.tsx b/packages/apps/escrow-dashboard/src/components/Fortune/LaunchSuccess.tsx new file mode 100644 index 0000000000..907188fe37 --- /dev/null +++ b/packages/apps/escrow-dashboard/src/components/Fortune/LaunchSuccess.tsx @@ -0,0 +1,19 @@ +import { Button, Typography } from '@mui/material'; +import React from 'react'; +import { RoundedBox } from './RoundedBox'; + +export const LaunchSuccess = () => { + return ( + + + Success! + + + Success message here. Next call to action call. + + + + ); +}; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/index.ts b/packages/apps/escrow-dashboard/src/components/Fortune/index.ts index eba958776f..4a4dbadac4 100644 --- a/packages/apps/escrow-dashboard/src/components/Fortune/index.ts +++ b/packages/apps/escrow-dashboard/src/components/Fortune/index.ts @@ -2,3 +2,5 @@ export { FortuneStages } from './FortuneStages'; export { FundingMethod as FortuneFundingMethod } from './FundingMethod'; export { JobRequest as FortuneJobRequest } from './JobRequest'; export { Launch as FortuneLaunch } from './Launch'; +export { LaunchFail as FortuneLaunchFail } from './LaunchFail'; +export { LaunchSuccess as FortuneLaunchSuccess } from './LaunchSuccess'; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/types.ts b/packages/apps/escrow-dashboard/src/components/Fortune/types.ts index cfd1578d49..1a0a025e00 100644 --- a/packages/apps/escrow-dashboard/src/components/Fortune/types.ts +++ b/packages/apps/escrow-dashboard/src/components/Fortune/types.ts @@ -2,6 +2,8 @@ export enum FortuneStageStatus { FUNDING_METHOD, JOB_REQUEST, LAUNCH, + LAUNCH_SUCCESS, + LAUNCH_FAIL, } export type FundingMethodType = 'crypto' | 'fiat'; diff --git a/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx b/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx index 7e1305de7b..4282bca4b8 100644 --- a/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx +++ b/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx @@ -1,19 +1,27 @@ -import React, { useState } from 'react'; +import HMTokenABI from '@human-protocol/core/abis/HMToken.json'; import Box from '@mui/material/Box'; import { Grid, Link, Typography } from '@mui/material'; +import axios from 'axios'; +import React, { useState } from 'react'; import { FortuneStages, FortuneFundingMethod, FortuneJobRequest, FortuneLaunch, + FortuneLaunchSuccess, + FortuneLaunchFail, } from 'src/components/Fortune'; import { FortuneJobRequestType, FortuneStageStatus, FundingMethodType, } from 'src/components/Fortune/types'; +import { ethers } from 'ethers'; +import { useSigner } from 'wagmi'; +import { ChainId, ESCROW_NETWORKS, HM_TOKEN_DECIMALS } from 'src/constants'; export const FortunePage: React.FC = (): React.ReactElement => { + const { data: signer } = useSigner(); const [status, setStatus] = useState( FortuneStageStatus.FUNDING_METHOD ); @@ -30,9 +38,26 @@ export const FortunePage: React.FC = (): React.ReactElement => { setStatus(FortuneStageStatus.JOB_REQUEST); }; - const handleLaunch = (data: FortuneJobRequestType) => { - console.log(data); - // setStatus(FortuneStageStatus.LAUNCH); + const handleLaunch = async (data: FortuneJobRequestType) => { + if (!signer) return; + try { + const contract = new ethers.Contract(data.token, HMTokenABI, signer); + const escrowFactoryAddress = + ESCROW_NETWORKS[data.chainId as ChainId]?.factoryAddress; + + await contract.approve( + escrowFactoryAddress, + ethers.utils.parseUnits(data.fundAmount.toString(), HM_TOKEN_DECIMALS) + ); + + const baseUrl = process.env.REACT_APP_JOB_LAUNCHER_SERVER_URL; + setStatus(FortuneStageStatus.LAUNCH); + await axios.post(`${baseUrl}/escrow`, data); + setStatus(FortuneStageStatus.LAUNCH_SUCCESS); + } catch (err) { + console.log(err); + setStatus(FortuneStageStatus.LAUNCH_FAIL); + } }; return ( @@ -101,6 +126,14 @@ export const FortunePage: React.FC = (): React.ReactElement => { /> )} {status === FortuneStageStatus.LAUNCH && } + {status === FortuneStageStatus.LAUNCH_SUCCESS && ( + + )} + {status === FortuneStageStatus.LAUNCH_FAIL && ( + setStatus(FortuneStageStatus.JOB_REQUEST)} + /> + )} From 7f950f55a2770e8bc68f272358391707dbef4c85 Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Tue, 31 Jan 2023 22:11:48 +0800 Subject: [PATCH 121/216] Fix audit report (#194) * fix audit report * fix oz contract import * fix core test failing * update core package version * fix eslint * fix jest cli version * fix dependency * revert yarn.lock --- packages/core/contracts/Escrow.sol | 72 ++++++++++++++----- packages/core/contracts/HMToken.sol | 33 +++++---- packages/core/contracts/RewardPool.sol | 6 +- packages/core/contracts/Staking.sol | 13 ++-- packages/core/test/EscrowFactory.ts | 8 ++- packages/core/test/RewardPool.ts | 12 ++-- packages/core/test/Staking.ts | 30 +++++--- .../human-protocol-sdk/package.json | 5 +- .../sdk/typescript/subgraph/.eslintignore | 1 + 9 files changed, 121 insertions(+), 59 deletions(-) diff --git a/packages/core/contracts/Escrow.sol b/packages/core/contracts/Escrow.sol index be82de10cf..d2c14a1911 100644 --- a/packages/core/contracts/Escrow.sol +++ b/packages/core/contracts/Escrow.sol @@ -4,12 +4,13 @@ pragma solidity >=0.6.2; import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; +import '@openzeppelin/contracts/security/ReentrancyGuard.sol'; import './interfaces/IRewardPool.sol'; import './interfaces/IEscrow.sol'; import './utils/SafeMath.sol'; -contract Escrow is IEscrow { +contract Escrow is IEscrow, ReentrancyGuard { using SafeMath for uint256; bytes4 private constant FUNC_SELECTOR_BALANCE_OF = @@ -17,9 +18,14 @@ contract Escrow is IEscrow { bytes4 private constant FUNC_SELECTOR_TRANSFER = bytes4(keccak256('transfer(address,uint256)')); + string constant ERROR_ZERO_ADDRESS = 'Escrow: zero address'; + + event TrustedHandlerAdded(address _handler); event IntermediateStorage(string _url, string _hash); event Pending(string manifest, string hash); event BulkTransfer(uint256 indexed _txId, uint256 _bulkCount); + event Cancelled(); + event Completed(); EscrowStatuses public override status; @@ -30,7 +36,7 @@ contract Escrow is IEscrow { uint256 public reputationOracleStake; uint256 public recordingOracleStake; - uint256 private constant BULK_MAX_VALUE = 1000000000 * (10 ** 18); + uint256 private constant BULK_MAX_VALUE = 1e9 * (10 ** 18); uint32 private constant BULK_MAX_COUNT = 100; address public token; @@ -55,6 +61,9 @@ contract Escrow is IEscrow { uint256 _duration, address[] memory _handlers ) { + require(_token != address(0), ERROR_ZERO_ADDRESS); + require(_canceler != address(0), ERROR_ZERO_ADDRESS); + token = _token; status = EscrowStatuses.Launched; duration = _duration.add(block.timestamp); // solhint-disable-line not-rely-on-time @@ -81,7 +90,9 @@ contract Escrow is IEscrow { 'Address calling cannot add trusted handlers' ); for (uint256 i = 0; i < _handlers.length; i++) { + require(_handlers[i] != address(0), ERROR_ZERO_ADDRESS); areTrustedHandlers[_handlers[i]] = true; + emit TrustedHandlerAdded(_handlers[i]); } } @@ -96,7 +107,7 @@ contract Escrow is IEscrow { string memory _url, string memory _hash, uint256 _solutionsRequested - ) public trusted notExpired { + ) external trusted notExpired { require( _reputationOracle != address(0), 'Invalid or missing token spender' @@ -107,7 +118,7 @@ contract Escrow is IEscrow { ); require(_solutionsRequested > 0, 'Invalid or missing solutions'); uint256 totalStake = _reputationOracleStake.add(_recordingOracleStake); - require(totalStake >= 0 && totalStake <= 100, 'Stake out of bounds'); + require(totalStake <= 100, 'Stake out of bounds'); require( status == EscrowStatuses.Launched, 'Escrow not in Launched status state' @@ -128,7 +139,7 @@ contract Escrow is IEscrow { emit Pending(manifestUrl, manifestHash); } - function abort() public trusted notComplete notPaid { + function abort() external trusted notComplete notPaid { if (getBalance() != 0) { cancel(); } @@ -141,31 +152,35 @@ contract Escrow is IEscrow { notBroke notComplete notPaid + nonReentrant returns (bool) { _safeTransfer(canceler, getBalance()); status = EscrowStatuses.Cancelled; + emit Cancelled(); return true; } - function complete() public notExpired { + function complete() external notExpired { require( - msg.sender == reputationOracle || areTrustedHandlers[msg.sender], + areTrustedHandlers[msg.sender], 'Address calling is not trusted' ); require(status == EscrowStatuses.Paid, 'Escrow not in Paid state'); status = EscrowStatuses.Complete; + emit Completed(); } function storeResults( string memory _url, string memory _hash - ) public trusted notExpired { + ) external trusted notExpired { require( status == EscrowStatuses.Pending || status == EscrowStatuses.Partial, 'Escrow not in Pending or Partial status state' ); + _storeResult(_url, _hash); emit IntermediateStorage(_url, _hash); } @@ -175,18 +190,32 @@ contract Escrow is IEscrow { string memory _url, string memory _hash, uint256 _txId - ) public trusted notBroke notLaunched notPaid notExpired returns (bool) { + ) + external + trusted + notBroke + notLaunched + notPaid + notExpired + nonReentrant + returns (bool) + { require( _recipients.length == _amounts.length, "Amount of recipients and values don't match" ); require(_recipients.length < BULK_MAX_COUNT, 'Too many recipients'); + require( + status != EscrowStatuses.Complete && + status != EscrowStatuses.Cancelled, + 'Invalid status' + ); uint256 balance = getBalance(); bulkPaid = false; uint256 aggregatedBulkAmount = 0; for (uint256 i; i < _amounts.length; i++) { - aggregatedBulkAmount += _amounts[i]; + aggregatedBulkAmount = aggregatedBulkAmount.add(_amounts[i]); } require(aggregatedBulkAmount < BULK_MAX_VALUE, 'Bulk value too high'); @@ -194,12 +223,7 @@ contract Escrow is IEscrow { return bulkPaid; } - bool writeOnchain = bytes(_hash).length != 0 || bytes(_url).length != 0; - if (writeOnchain) { - // Be sure they are both zero if one of them is - finalResultsUrl = _url; - finalResultsHash = _hash; - } + _storeResult(_url, _hash); ( uint256 reputationOracleFee, @@ -207,7 +231,12 @@ contract Escrow is IEscrow { ) = finalizePayouts(_amounts); for (uint256 i = 0; i < _recipients.length; ++i) { - _safeTransfer(_recipients[i], finalAmounts[i]); + uint256 amount = finalAmounts[i]; + if (amount == 0) { + continue; + } + finalAmounts[i] = 0; + _safeTransfer(_recipients[i], amount); } delete finalAmounts; @@ -268,6 +297,15 @@ contract Escrow is IEscrow { SafeERC20.safeTransfer(IERC20(token), to, value); } + function _storeResult(string memory _url, string memory _hash) internal { + bool writeOnchain = bytes(_hash).length != 0 || bytes(_url).length != 0; + if (writeOnchain) { + // Be sure both of them are not zero + finalResultsUrl = _url; + finalResultsHash = _hash; + } + } + modifier trusted() { require(areTrustedHandlers[msg.sender], 'Address calling not trusted'); _; diff --git a/packages/core/contracts/HMToken.sol b/packages/core/contracts/HMToken.sol index 598e9a4fe1..25a3abbdcf 100644 --- a/packages/core/contracts/HMToken.sol +++ b/packages/core/contracts/HMToken.sol @@ -52,7 +52,7 @@ contract HMToken is HMTokenInterface, Ownable { function transfer( address _to, uint256 _value - ) public override returns (bool success) { + ) external override returns (bool success) { success = transferQuiet(_to, _value); require(success, "Transfer didn't succeed"); return success; @@ -62,7 +62,11 @@ contract HMToken is HMTokenInterface, Ownable { address _spender, address _to, uint256 _value - ) public override returns (bool success) { + ) external override returns (bool success) { + require( + _spender != address(0), + "Can't send tokens to uninitialized address" + ); uint256 _allowance = allowed[_spender][msg.sender]; require(_allowance >= _value, 'Spender allowance too low'); require( @@ -89,14 +93,14 @@ contract HMToken is HMTokenInterface, Ownable { function balanceOf( address _owner - ) public view override returns (uint256 balance) { + ) external view override returns (uint256 balance) { return balances[_owner]; } function approve( address _spender, uint256 _value - ) public override returns (bool success) { + ) external override returns (bool success) { require( _spender != address(0), 'Token spender is an uninitialized address' @@ -118,8 +122,7 @@ contract HMToken is HMTokenInterface, Ownable { uint256 _oldValue = allowed[msg.sender][_spender]; if ( - _oldValue.add(_delta) < _oldValue || - _oldValue.add(_delta) >= MAX_UINT256 + _oldValue + _delta < _oldValue || _oldValue + _delta == MAX_UINT256 ) { // Truncate upon overflow. allowed[msg.sender][_spender] = MAX_UINT256.sub(1); @@ -135,7 +138,7 @@ contract HMToken is HMTokenInterface, Ownable { function decreaseApproval( address _spender, uint256 _delta - ) public returns (bool success) { + ) external returns (bool success) { require( _spender != address(0), 'Token spender is an uninitialized address' @@ -157,7 +160,7 @@ contract HMToken is HMTokenInterface, Ownable { function allowance( address _owner, address _spender - ) public view override returns (uint256 remaining) { + ) external view override returns (uint256 remaining) { return allowed[_owner][_spender]; } @@ -165,7 +168,7 @@ contract HMToken is HMTokenInterface, Ownable { address[] memory _tos, uint256[] memory _values, uint256 _txId - ) public override returns (uint256 _bulkCount) { + ) external override returns (uint256 _bulkCount) { require( _tos.length == _values.length, "Amount of recipients and values don't match" @@ -189,11 +192,11 @@ contract HMToken is HMTokenInterface, Ownable { return _bulkCount; } - function approveBulk( + function increaseApprovalBulk( address[] memory _spenders, uint256[] memory _values, uint256 _txId - ) public returns (uint256 _bulkCount) { + ) external returns (uint256 _bulkCount) { require( _spenders.length == _values.length, "Amount of spenders and values don't match" @@ -222,9 +225,11 @@ contract HMToken is HMTokenInterface, Ownable { address _to, uint256 _value ) internal returns (bool success) { - if (_to == address(0)) return false; // Preclude burning tokens to uninitialized address. - if (_to == address(this)) return false; // Preclude sending tokens to the contract. - if (balances[msg.sender] < _value) return false; + if ( + _to == address(0) || + _to == address(this) || + balances[msg.sender] < _value + ) return false; // Preclude burning tokens to uninitialized address, or sending tokens to the contract. balances[msg.sender] = balances[msg.sender] - _value; balances[_to] = balances[_to].add(_value); diff --git a/packages/core/contracts/RewardPool.sol b/packages/core/contracts/RewardPool.sol index f58f1331ab..3bfb9fc3fc 100644 --- a/packages/core/contracts/RewardPool.sol +++ b/packages/core/contracts/RewardPool.sol @@ -2,8 +2,8 @@ pragma solidity >=0.6.2; -import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; -import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; +import '@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol'; +import '@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol'; import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; @@ -118,7 +118,7 @@ contract RewardPool is IRewardPool, OwnableUpgradeable, UUPSUpgradeable { } function _safeTransfer(address to, uint256 value) internal { - SafeERC20.safeTransfer(IERC20(token), to, value); + SafeERC20Upgradeable.safeTransfer(IERC20Upgradeable(token), to, value); } modifier onlyStaking() { diff --git a/packages/core/contracts/Staking.sol b/packages/core/contracts/Staking.sol index b8092c67c5..f6658dfe81 100644 --- a/packages/core/contracts/Staking.sol +++ b/packages/core/contracts/Staking.sol @@ -2,8 +2,8 @@ pragma solidity >=0.6.2; -import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; -import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; +import '@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol'; +import '@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol'; import '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol'; import '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol'; @@ -548,7 +548,7 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { } function _safeTransfer(address to, uint256 value) internal { - SafeERC20.safeTransfer(IERC20(token), to, value); + SafeERC20Upgradeable.safeTransfer(IERC20Upgradeable(token), to, value); } function _safeTransferFrom( @@ -556,7 +556,12 @@ contract Staking is IStaking, OwnableUpgradeable, UUPSUpgradeable { address to, uint256 value ) internal { - SafeERC20.safeTransferFrom(IERC20(token), from, to, value); + SafeERC20Upgradeable.safeTransferFrom( + IERC20Upgradeable(token), + from, + to, + value + ); } modifier onlyStaker(address _staker) { diff --git a/packages/core/test/EscrowFactory.ts b/packages/core/test/EscrowFactory.ts index e85b6ef57d..492ef3fc2f 100644 --- a/packages/core/test/EscrowFactory.ts +++ b/packages/core/test/EscrowFactory.ts @@ -24,7 +24,9 @@ describe('EscrowFactory', function () { .connect(operator) .createEscrow(token.address, trustedHandlers) ).wait(); - const event = result.events?.[0].args; + const event = result.events?.find(({ topics }) => + topics.includes(ethers.utils.id('Launched(address,address)')) + )?.args; return event; } @@ -85,7 +87,7 @@ describe('EscrowFactory', function () { await expect( escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await reputationOracle.getAddress()]) ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); }); @@ -141,7 +143,7 @@ describe('EscrowFactory', function () { await expect( escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await reputationOracle.getAddress()]) ).to.be.revertedWith('Needs to stake HMT tokens to create an escrow.'); }); diff --git a/packages/core/test/RewardPool.ts b/packages/core/test/RewardPool.ts index 8ebbf84c83..8bac0c9150 100644 --- a/packages/core/test/RewardPool.ts +++ b/packages/core/test/RewardPool.ts @@ -127,9 +127,11 @@ describe('RewardPool', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await validator.getAddress()]) ).wait(); - const event = result.events?.[0].args; + const event = result.events?.find(({ topics }) => + topics.includes(ethers.utils.id('Launched(address,address)')) + )?.args; expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; @@ -213,9 +215,11 @@ describe('RewardPool', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await validator.getAddress()]) ).wait(); - const event = result.events?.[0].args; + const event = result.events?.find(({ topics }) => + topics.includes(ethers.utils.id('Launched(address,address)')) + )?.args; expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; diff --git a/packages/core/test/Staking.ts b/packages/core/test/Staking.ts index f4059b14ec..73ae0f89d5 100644 --- a/packages/core/test/Staking.ts +++ b/packages/core/test/Staking.ts @@ -231,9 +231,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await validator.getAddress()]) ).wait(); - const event = result.events?.[0].args; + const event = result.events?.find(({ topics }) => + topics.includes(ethers.utils.id('Launched(address,address)')) + )?.args; expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; @@ -327,9 +329,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await validator.getAddress()]) ).wait(); - const event = result.events?.[0].args; + const event = result.events?.find(({ topics }) => + topics.includes(ethers.utils.id('Launched(address,address)')) + )?.args; expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; @@ -517,9 +521,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await validator.getAddress()]) ).wait(); - const event = result.events?.[0].args; + const event = result.events?.find(({ topics }) => + topics.includes(ethers.utils.id('Launched(address,address)')) + )?.args; expect(event?.token).to.equal( token.address, @@ -581,9 +587,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await validator.getAddress()]) ).wait(); - const event = result.events?.[0].args; + const event = result.events?.find(({ topics }) => + topics.includes(ethers.utils.id('Launched(address,address)')) + )?.args; expect(event?.token).to.equal( token.address, @@ -638,9 +646,11 @@ describe('Staking', function () { const result = await ( await escrowFactory .connect(operator) - .createEscrow(token.address, [ethers.constants.AddressZero]) + .createEscrow(token.address, [await validator.getAddress()]) ).wait(); - const event = result.events?.[0].args; + const event = result.events?.find(({ topics }) => + topics.includes(ethers.utils.id('Launched(address,address)')) + )?.args; expect(event?.token).to.equal(token.address, 'token address is correct'); expect(event?.escrow).to.not.be.null; diff --git a/packages/sdk/typescript/human-protocol-sdk/package.json b/packages/sdk/typescript/human-protocol-sdk/package.json index 13794e6b68..fb2e1b4c96 100644 --- a/packages/sdk/typescript/human-protocol-sdk/package.json +++ b/packages/sdk/typescript/human-protocol-sdk/package.json @@ -14,7 +14,7 @@ "clean": "rm -rf ./dist", "build": "npm run clean && tsc", "prepublish": "npm run build", - "test": "concurrently -k -s first -g --hide 0 \"yarn workspace @human-protocol/core local\" \"sleep 5 && jest --runInBand\"", + "test": "concurrently -k -s first -g --hide 0 \"yarn workspace @human-protocol/core local\" \"sleep 10 && jest --runInBand\"", "lint": "eslint .", "lint:fix": "eslint . --fix", "format": "prettier --write '**/*.{ts,json}'" @@ -45,8 +45,5 @@ "ethers": "^5.7.2", "secp256k1": "^4.0.3", "winston": "^3.8.2" - }, - "peerDependencies": { - "@human-protocol/core": "^1.0.12" } } diff --git a/packages/sdk/typescript/subgraph/.eslintignore b/packages/sdk/typescript/subgraph/.eslintignore index 86d4c2dd38..7bbdc897ae 100644 --- a/packages/sdk/typescript/subgraph/.eslintignore +++ b/packages/sdk/typescript/subgraph/.eslintignore @@ -1 +1,2 @@ generated +schema.graphql From 8529ccc9b2db73bc1ce2acdfb8a48ec06cca772e Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 31 Jan 2023 21:00:39 +0100 Subject: [PATCH 122/216] add vercel config --- .../examples/fortune/launcher/server/vercel.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 packages/examples/fortune/launcher/server/vercel.json diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json new file mode 100644 index 0000000000..a6e05184e2 --- /dev/null +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "builds": [ + { + "src": "src/index.ts", + "use": "@vercel/node" + } + ], + "routes": [ + { + "src": "/(.*)", + "dest": "src/index.ts" + } + ] +} \ No newline at end of file From bbdd977449581d4099116bfcb4aa5c2098954f56 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 09:30:36 +0100 Subject: [PATCH 123/216] remove vercel config --- .../examples/fortune/launcher/server/vercel.json | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 packages/examples/fortune/launcher/server/vercel.json diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json deleted file mode 100644 index a6e05184e2..0000000000 --- a/packages/examples/fortune/launcher/server/vercel.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": 2, - "builds": [ - { - "src": "src/index.ts", - "use": "@vercel/node" - } - ], - "routes": [ - { - "src": "/(.*)", - "dest": "src/index.ts" - } - ] -} \ No newline at end of file From 55ca67f844ca9b70a20f9477fdb8c2e7e15ae463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 1 Feb 2023 10:31:38 +0100 Subject: [PATCH 124/216] v1.0.2 --- packages/examples/fortune/exchange/package.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/examples/fortune/exchange/package.json b/packages/examples/fortune/exchange/package.json index 5ed9de7a5f..c4a4951430 100644 --- a/packages/examples/fortune/exchange/package.json +++ b/packages/examples/fortune/exchange/package.json @@ -1,6 +1,6 @@ { "name": "exchange", - "version": "0.1.0", + "version": "1.0.2", "license": "MIT", "private": false, "dependencies": { @@ -12,6 +12,8 @@ "@types/node": "^18.11.9", "@types/react": "^18.0.25", "@types/react-dom": "^18.0.9", + "@web3modal/ethereum": "2.0.0", + "@web3modal/react": "2.0.0", "axios": "^1.1.3", "ethers": "^5.7.2", "identity-obj-proxy": "^3.0.0", @@ -20,7 +22,7 @@ "react-scripts": "^5.0.1", "remove": "^0.1.5", "typescript": "^4.9.3", - "wagmi": "^0.11.0", + "wagmi": "0.10.11", "web-vitals": "^3.1.0", "web3": "^1.8.1" }, From b329179ab92db24119017c186535bb66eb6264c2 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 10:57:31 +0100 Subject: [PATCH 125/216] add packages to server to try to fix vercel deploy --- .../examples/fortune/launcher/server/package.json | 6 +++++- yarn.lock | 13 +++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index ecc8649026..2bf743fcad 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -9,9 +9,13 @@ "dependencies": { "@fastify/cors": "^8.2.0", "@human-protocol/core": "workspace:*", + "@sinclair/typebox": "^0.25.21", + "@types/minio": "^7.0.15", "@types/node": "^18.11.18", + "ajv": "^8.12.0", "bn.js": "^5.2.1", - "fastify": "^4.11.0", + "fastify": "^4.12.0", + "fastify-plugin": "^4.5.0", "typescript": "^4.9.4" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 0552e63216..ac954ac9ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3509,6 +3509,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== +"@sinclair/typebox@^0.25.21": + version "0.25.21" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" + integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== + "@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" @@ -4238,7 +4243,7 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/minio@^7.0.14": +"@types/minio@^7.0.14", "@types/minio@^7.0.15": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/minio/-/minio-7.0.15.tgz#6fbf2e17aeae172cbf181ea52b1faa05a601ce42" integrity sha512-1VR05lWJDuxkn/C7d87MPAJs0p+onKnkUN3nyQ0xrrtaziZQmONy/nxXRaAVWheEyIb6sl0TTi77I/GAQDN5Lw== @@ -5330,7 +5335,7 @@ ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: 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.6.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.12.0, ajv@^8.6.0, ajv@^8.8.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -10558,12 +10563,12 @@ fast-xml-parser@^3.17.5: dependencies: strnum "^1.0.4" -fastify-plugin@^4.0.0: +fastify-plugin@^4.0.0, fastify-plugin@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.0.tgz#8b853923a0bba6ab6921bb8f35b81224e6988d91" integrity sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg== -fastify@^4.11.0: +fastify@^4.12.0: version "4.12.0" resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.12.0.tgz#e5330215d95702336693b38b2e66d34ee8300d3e" integrity sha512-Hh2GCsOCqnOuewWSvqXlpq5V/9VA+/JkVoooQWUhrU6gryO9+/UGOoF/dprGcKSDxkM/9TkMXSffYp8eA/YhYQ== From ebf81233ee5bf4cf2f0989beca49d890512669aa Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 11:06:55 +0100 Subject: [PATCH 126/216] exlcude tests from build --- packages/examples/fortune/launcher/server/tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index 0c9dcf3a27..1a47262d19 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -13,6 +13,6 @@ "strict": true, "resolveJsonModule": true }, - "include": ["src/**/*.ts", "tests/**/*.ts"], - "exclude": ["node_modules"] + "include": ["src/**/*.ts"], + "exclude": ["node_modules", "tests"] } From dede2563d9dc3eb46d0a12e48eea6cea50d754e8 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 11:50:08 +0100 Subject: [PATCH 127/216] add vercel config --- packages/examples/fortune/launcher/server/vercel.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 packages/examples/fortune/launcher/server/vercel.json diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json new file mode 100644 index 0000000000..88330c7cd9 --- /dev/null +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -0,0 +1,8 @@ +{ + "rewrites": [ + { + "source": "/(.*)", + "destination": "/index.js" + } + ] +} \ No newline at end of file From 0965ddc80e5f41351fb329e43b94a3a7b7043ad3 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 12:03:47 +0100 Subject: [PATCH 128/216] change vercel config --- .../examples/fortune/launcher/server/vercel.json | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 88330c7cd9..5896e12c62 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -1,8 +1,15 @@ { - "rewrites": [ + "version": 2, + "builds": [ { - "source": "/(.*)", - "destination": "/index.js" + "src": "src/index.ts", + "use": "@vercel/node" + } + ], + "routes": [ + { + "src": "/(.*)", + "dest": "src/index.ts" } ] -} \ No newline at end of file + } \ No newline at end of file From b54b3671dfb5f4a366211d9a8d8ae0fd349ea884 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 12:20:02 +0100 Subject: [PATCH 129/216] fix ts config --- packages/examples/fortune/launcher/server/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index 1a47262d19..822df9c9a6 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -14,5 +14,5 @@ "resolveJsonModule": true }, "include": ["src/**/*.ts"], - "exclude": ["node_modules", "tests"] + "exclude": ["tests"] } From bae126077cbb614a5a4bcc8d6da4a5a7f3b1036b Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 12:45:20 +0100 Subject: [PATCH 130/216] fix vercel deployment --- .../examples/fortune/launcher/server/tsconfig.json | 2 +- packages/examples/fortune/launcher/server/vercel.json | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index 822df9c9a6..564c3cd59b 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -13,6 +13,6 @@ "strict": true, "resolveJsonModule": true }, - "include": ["src/**/*.ts"], + "include": ["src/**/*.ts", "node_modules"], "exclude": ["tests"] } diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 5896e12c62..876bd41b5d 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -1,15 +1,12 @@ { - "version": 2, + "framework": "other", + "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", + "outputDirectory": "build", + "installCommand": "yarn workspace @human-protocol/job-launcher-server install", "builds": [ { "src": "src/index.ts", "use": "@vercel/node" } - ], - "routes": [ - { - "src": "/(.*)", - "dest": "src/index.ts" - } ] } \ No newline at end of file From cb5ab323ec5dda31a3e4d3874d4ce33d3688786f Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 13:03:48 +0100 Subject: [PATCH 131/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 876bd41b5d..dce3224b6b 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -9,4 +9,5 @@ "use": "@vercel/node" } ] + } \ No newline at end of file From 51d7ffd7d9d29f8f2ab4000be6db046150f0e690 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 13:11:10 +0100 Subject: [PATCH 132/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index dce3224b6b..876bd41b5d 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -9,5 +9,4 @@ "use": "@vercel/node" } ] - } \ No newline at end of file From 76aa8895e85f0dce39c4ea54568ee7a2cedec312 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 13:54:26 +0100 Subject: [PATCH 133/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 876bd41b5d..2740455e07 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -1,5 +1,4 @@ { - "framework": "other", "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", "outputDirectory": "build", "installCommand": "yarn workspace @human-protocol/job-launcher-server install", From a1ac55655070ba03d2212c8640f96cce83d0f777 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 14:07:47 +0100 Subject: [PATCH 134/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 2740455e07..a95eb4dbad 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -7,5 +7,11 @@ "src": "src/index.ts", "use": "@vercel/node" } + ], + "routes": [ + { + "src": "/(.*)", + "dest": "src/index.ts" + } ] } \ No newline at end of file From 9e0ff1e20a98d672d9392d294740e1618425b997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 1 Feb 2023 14:11:39 +0100 Subject: [PATCH 135/216] Add WalletConnect network switch --- .../examples/eth-kvstore-gui/package.json | 2 +- packages/examples/fortune/README.md | 75 +- .../fortune/exchange/.env.development | 3 +- .../examples/fortune/exchange/package.json | 2 +- .../examples/fortune/exchange/src/App.css | 12 + .../examples/fortune/exchange/src/App.tsx | 50 +- .../exchange/src/connectors/connectors.ts | 62 +- yarn.lock | 2557 ++++++++++------- 8 files changed, 1708 insertions(+), 1055 deletions(-) diff --git a/packages/examples/eth-kvstore-gui/package.json b/packages/examples/eth-kvstore-gui/package.json index d858f327a2..0a7a838773 100644 --- a/packages/examples/eth-kvstore-gui/package.json +++ b/packages/examples/eth-kvstore-gui/package.json @@ -28,7 +28,7 @@ "react-scripts": "5.0.1", "react-swipeable-views": "^0.14.0", "typescript": "^4.8.4", - "wagmi": "^0.6.7", + "wagmi": "^0.11.2", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/packages/examples/fortune/README.md b/packages/examples/fortune/README.md index d3104fcdaf..6aab5c53ab 100644 --- a/packages/examples/fortune/README.md +++ b/packages/examples/fortune/README.md @@ -1,54 +1,29 @@ # Fortune - - Welcome to Fortune, an example HUMAN application that demonstrates how to create and fulfill job requests using the HUMAN protocol. - ## How it works - - In this specific usecase a job requester is requesting a fortune prediction from a group of workers (Fortune Tellers). Each Fortune Teller will provide their answers, which will then be verified and settled by a group of Oracles. - - ## High Level Overview - - At a very high level this project consists of 4 main components (smart contracts): - - **Launcher (Job Launcher)** - The Job Launcher is factory which creates new escrow contracts. A job requester can then add Job details (as a mainfest) and fund the escrow. - - **Exchange Oracle** - An Ethereum Oracle that interacts with people or bots to fufill the job. - - **Recording Oracle** - An Ethereum Oracle which records the task output and who does what. In this case, the Recording Oracle will receive responses from the Exchange Oracle. - - **Reptutation Oracle** - An Ethereum Oracle which pays workers for the jobs performed, based on their reputation within the oracle network. In this case, the Reputation Oracle collects all the responses from the Recording Oracle and pays out the Worker and the Recording Oracle. - - ### User Persona's in this demo - - **Job Creator/Requester** - The entity/person who wants some work performed. - - **Worker (Fortune Teller)** - The entity/person who performs the actual work. - - ## Process Flow ### Job Submission and Routing @@ -57,37 +32,28 @@ At a very high level this project consists of 4 main components (smart contracts 2. Once the job is registered on-chain the Exchange Oracle picks up the job and routes it to workers. - - ![Diagram for steps 1 and 2](assets/fortuneflow1.jpg) - - ### Job Fulfillment and Answer Quality 3. Workers perform the task and submit their responses (answers) back to the Exchange Oracle. 4. The Exchange Oracle passes the responses to the Recording Oracle, which then checks the quality of answers. If the quality is acceptable the answers are then routed to the Reputation Oracle. - - ![Diagram for steps 3 and 4](assets/fortuneflow2.jpg) - - ### Settlement 5. The Reputation Oracle calculates a threshold based on certain job request parameters. If the answers pass the threshold it pays workers and updates the reputation scores for each worker. - ![Diagram for steps 4 and 5](assets/fortuneflow3.jpg) - # Usage Instructions There are three options to run the example, use our deployed playground example and run the example locally using node. ## Deployed Playground + To use the deployed (hosted) example all you need is a metmask wallet with the Fortune Ethereum Testnet configured. Download and install Metamask from www.metamask.io. ### Metamask Configuration for Deployed Playground @@ -102,7 +68,6 @@ To configure Metamask for the deployed playground example: - Currency Symbol - ETH - 2. Next we will need 3 accounts to represent each person in this example (Job requester, Worker 1 and Worker 2). In Metamask, click on your account icon in the top right and select Import Account. From this screen you can enter a private key to add an account. Repeat this process for each of the keys below: #### Job Requester @@ -119,12 +84,8 @@ To configure Metamask for the deployed playground example: (In case you are wondering where these private keys are from, they correspond to the standard accounts from a Ganache setup and are pre-funded with testnet HMT). - - 3. The final step in configuring Metamask is to import the HMT Token for each of the accounts above. Click on 'Import tokens', located at the bottom of the 'Assets' tab on your wallet homepage and add the following Token Contract Address for the HMT Token: `0x444c45937D2202118a0FF9c48d491cef527b59dF` Repeat this process for each of the 3 accounts. Congratulations we have successfully configured Metamask and can proceed to interact with the Job Launcher to create new Jobs! - - ### Creating a Job (Deployed Playground) In Metamask, switch to the Job Requester account that you imported above @@ -150,10 +111,13 @@ In Metamask, switch to the Job Requester account that you imported above The job creation is now complete! ### Viewing Jobs + The job has now been created and is available for exchanges to pick up. To view the job status navigate to http://ec2-3-15-230-238.us-east-2.compute.amazonaws.com:3001 and paste in the Escrow contract address. The status should be 'Pending'. Jobs in a pending status are picked up by the exchange and forwarded to workers. ### Fulfilling a job + To fulfil this job we require answers (fortunes in our case) from 2 workers. + 1. In your Metamask wallet switch to the Worker 1 account that we imported above. Navigate to http://ec2-3-15-230-238.us-east-2.compute.amazonaws.com:3001 and enter a fortune prediction (any text). 2. Now switch to Worker 2 and enter a fortune prediction (it should be different from Worker 1). @@ -163,14 +127,14 @@ You should see account balance for Worker 1 and 2 has increased by the relevant ## Running Locally with Node -First we must create and environment variables file. To do so execute the command below in the root folder of Fortune: -``` -cp .env.development .env -``` +First we must get a new WalletConnect projectID. To do so go to https://cloud.walletconnect.com and register a new project. Once we get that, go to Exchange directory and complete the environment variables file with the projectId obtained. + Then execute the following command: + ``` yarn && yarn local ``` + At this point we have a Local Testnet running with our contracts deployed to a Hardhat testnet node. The next step is to configure Metamask to work with our Local Testnet. Go to this section to see [local network usage.](#local-network-usage) @@ -178,9 +142,11 @@ Go to this section to see [local network usage.](#local-network-usage) # Local network usage ### Metamask Configuration for Local Testnet + To configure Metamask for the Local Testnet example: 1. Open your Metamask wallet and click on the account icon in the top right. Select Settings > Networks > Add Network. Enter the details below: + - Network Name - any name. We are using `Fortune` for this example - New RPC URL - http://localhost:8545 - Chain ID - `1338` (you may get a warning here that this ID is already in use, it is safe to ignore) @@ -189,22 +155,21 @@ To configure Metamask for the Local Testnet example: 2. Next we will need 3 accounts to represent each person in this example (Job requester, Worker 1 and Worker 2). In Metamask, click on your account icon in the top right and select Import Account. From this screen you can enter a private key to add an account. Repeat this process for each of the keys below: | | Node (Hardhat) | -| ------------- |------------------------------------------------------------------| +| ------------- | ---------------------------------------------------------------- | | Job Requester | ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 | | Worker 1 | 7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6 | | Worker 2 | 47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a | - (In case you are wondering where these private keys are from, they correspond to the standard accounts from a Ganache setup and are pre-funded with testnet HMT). 3. The final step in configuring Metamask is to import the HMT Token for each of the accounts above. Click on 'Import tokens', located at the bottom of the 'Assets' tab on your wallet homepage and add the following Token Contract Address for the HMT Token: - - **HMT**: `0x5FbDB2315678afecb367f032d93F642f64180aa3` - - Repeat this process for each of the 3 accounts. Congratulations we have successfully configured Metamask and can proceed to interact with the Job Launcher to create new Jobs! + - **HMT**: `0x5FbDB2315678afecb367f032d93F642f64180aa3` + Repeat this process for each of the 3 accounts. Congratulations we have successfully configured Metamask and can proceed to interact with the Job Launcher to create new Jobs! ### Creating a Job (Local Testnet) + 1. In Metamask, switch to the Job Requester account that you imported above. 2. Ensure that you are connected to Fortune local network under Networks in Metamask. 3. Navigate to http://localhost:3000 to access the Job Launcher. @@ -215,39 +180,47 @@ To configure Metamask for the Local Testnet example: 8. To complete the job creation process we must add the manifest URL. This URL points to the manifest.json file, which contains job specific data. For this example the data has already been created for you and stored in a local datastore (minio) which can be accessed at http://localhost:9001 (To login you must use the default username: 'dev' and password 'devdevdev') 9. Once you are logged into the minio dashboard, click on the 'Manage' button, you will be taken to a Summary page for the manifest bucket. From this screen change the 'Access Policy' to 'public' and click 'Set' to confirm changes. We can now exit the minio dashboard and return to the Job creation process. 10. Navigate back to the job launcher, enter the manifest URL into the form and hit 'Setup Escrow': - - **Manifest**: http://localhost:9000/manifests/manifest.json + - **Manifest**: http://localhost:9000/manifests/manifest.json The job creation is now complete! ### Viewing Jobs + The job has now been created and is available for exchanges to pick up. To view the job status navigate to the exchange service (http://localhost:3001) and paste in the Escrow contract address. The status should be 'Pending'. Jobs in a pending status are picked up by the exchange and forwarded to workers. ### Fulfilling a job + To fulfil this job we require answers (fortunes in our case) from 2 workers: 1. In your Metamask wallet switch to the Worker 1 account that we imported above. Navigate to exchange service (http://localhost:3001) and enter a fortune prediction (any text). 2. Now switch to Worker 2 and enter a fortune prediction (it should be different from Worker 1). We have now provided 2 predictions from 2 Workers. Lets check the status of the job again by navigating to the exchange service . You should also see that the account balances for Worker 1 and 2 have increased by the relevant amount. The final results URL can be found by navigating to the Job Launcher (http://localhost:3000) and entering the Escrow contract address into the searchbar. + # Tests + ## Unit tests + ``` yarn && yarn test:unit ``` + ## End to end tests + ### Using Hardhat + ``` yarn && yarn test:e2e ``` ## Unit & e2e tests + ``` yarn && yarn test ``` - # Troubleshooting Error: The tx doesn't have the correct nonce or the transaction freezes. diff --git a/packages/examples/fortune/exchange/.env.development b/packages/examples/fortune/exchange/.env.development index 4384b6090d..0603bc8776 100644 --- a/packages/examples/fortune/exchange/.env.development +++ b/packages/examples/fortune/exchange/.env.development @@ -1,2 +1,3 @@ PORT=3001 -PUBLIC_URL=/ \ No newline at end of file +PUBLIC_URL=/ +REACT_APP_WALLETCONNECT_PROJECT_ID= \ No newline at end of file diff --git a/packages/examples/fortune/exchange/package.json b/packages/examples/fortune/exchange/package.json index c4a4951430..7e6473d094 100644 --- a/packages/examples/fortune/exchange/package.json +++ b/packages/examples/fortune/exchange/package.json @@ -22,7 +22,7 @@ "react-scripts": "^5.0.1", "remove": "^0.1.5", "typescript": "^4.9.3", - "wagmi": "0.10.11", + "wagmi": "0.11.2", "web-vitals": "^3.1.0", "web3": "^1.8.1" }, diff --git a/packages/examples/fortune/exchange/src/App.css b/packages/examples/fortune/exchange/src/App.css index 9c91f89cff..534c74c077 100644 --- a/packages/examples/fortune/exchange/src/App.css +++ b/packages/examples/fortune/exchange/src/App.css @@ -10,6 +10,18 @@ } .App-header { + background-color: #fafcff; + display: flex; + align-items: right; + justify-content: right; + padding: 10px; +} + +.App-body h1 { + font-size: calc(10px + 2vmin); +} + +.App-body { background-color: #fafcff; min-height: 100vh; display: flex; diff --git a/packages/examples/fortune/exchange/src/App.tsx b/packages/examples/fortune/exchange/src/App.tsx index 4cefb48241..f0e4bc98f8 100644 --- a/packages/examples/fortune/exchange/src/App.tsx +++ b/packages/examples/fortune/exchange/src/App.tsx @@ -1,37 +1,41 @@ -import { useAccount, useConnect } from 'wagmi'; +import { + useWeb3ModalTheme, + Web3Button, + Web3Modal, + Web3NetworkSwitch, +} from '@web3modal/react'; +import { useAccount } from 'wagmi'; import './App.css'; import { Escrow } from './components/Escrow'; +import { ethereumClient, projectId } from './connectors/connectors'; function App() { - const { connector: activeConnector, isConnected } = useAccount(); - const { connect, connectors, isLoading, error, pendingConnector, data } = - useConnect(); + const { setTheme } = useWeb3ModalTheme(); + const { isConnected } = useAccount(); + + setTheme({ + themeColor: 'purple', + themeMode: 'light', + themeBackground: 'themeColor', + }); return ( <>
- {isConnected &&
Connected to {activeConnector?.name}
} - {isConnected &&
Address: {data?.account}
}
- <> - {!isConnected && - connectors.map((connector) => ( - - ))} - {isConnected && } - {error &&
{error.message}
} - + {isConnected && }
+
+ {!isConnected && ( + <> +

Select Network

+ + + )} + {isConnected && } +
+ ); } diff --git a/packages/examples/fortune/exchange/src/connectors/connectors.ts b/packages/examples/fortune/exchange/src/connectors/connectors.ts index 94fbd56abf..ed0225cb02 100644 --- a/packages/examples/fortune/exchange/src/connectors/connectors.ts +++ b/packages/examples/fortune/exchange/src/connectors/connectors.ts @@ -1,26 +1,50 @@ -import { goerli, mainnet, polygon, polygonMumbai } from '@wagmi/core/chains'; +import { + goerli, + mainnet, + polygon, + polygonMumbai, + bsc, + bscTestnet, +} from 'wagmi/chains'; +import { + EthereumClient, + modalConnectors, + walletConnectProvider, +} from '@web3modal/ethereum'; import { configureChains, createClient } from 'wagmi'; -import { InjectedConnector } from 'wagmi/connectors/injected'; -import { WalletConnectConnector } from 'wagmi/connectors/walletConnect'; -import { publicProvider } from 'wagmi/providers/public'; import { fortune } from './chains'; -const { chains, provider } = configureChains( - [mainnet, polygon, goerli, polygonMumbai, fortune], - [publicProvider()] -); +// 1. Get projectID at https://cloud.walletconnect.com +if (!process.env.REACT_APP_WALLETCONNECT_PROJECT_ID) { + const message = + 'You need to provide REACT_APP_WALLETCONNECT_PROJECT_ID env variable'; + alert(message); + throw new Error(message); +} +export const projectId = process.env.REACT_APP_WALLETCONNECT_PROJECT_ID; + +// 2. Configure wagmi client +const chains = [ + mainnet, + polygon, + bsc, + goerli, + polygonMumbai, + bscTestnet, + fortune, +]; +const { provider } = configureChains(chains, [ + walletConnectProvider({ projectId }), +]); export const wagmiClient = createClient({ - connectors: [ - new InjectedConnector({ chains }), - new WalletConnectConnector({ - chains, - options: { - qrcode: true, - version: '2', - projectId: '68415bedd1597a33e8e83cc53e52071b', - }, - }), - ], + autoConnect: true, + connectors: modalConnectors({ + appName: 'web3Modal', + chains, + }), provider, }); + +// 3. Configure modal ethereum client +export const ethereumClient = new EthereumClient(wagmiClient, chains); diff --git a/yarn.lock b/yarn.lock index 0552e63216..74a1092955 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,9 +3,9 @@ "@adobe/css-tools@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.2.tgz#bd7d13543a186c3ff3eabb44bec2b22e8fb18ee0" - integrity sha512-Fx6tYjk2wKUgLi8uMANZr8GNZx05u44ArIJldn9VxLvolzlJVgHbTUCbwhMd6bcYky178+WUSxPHO3DAtGLWpw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.1.0.tgz#417fef4a143f4396ad0b3b4351fee21323f15aa8" + integrity sha512-mMVJ/j/GbZ/De4ZHWbQAQO1J6iVnjtZLc9WEdkUQb8S/Bu2cAF2bETXUgMAdvMG3/ngtKmcNBe+Zms9bg6jnQQ== "@ampproject/remapping@^2.1.0": version "2.2.0" @@ -44,9 +44,9 @@ "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": - version "7.20.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" - integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== + version "7.20.14" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" + integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.20.2", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.20.12" @@ -79,9 +79,9 @@ semver "^6.3.0" "@babel/generator@^7.20.7", "@babel/generator@^7.7.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" - integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== + version "7.20.14" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" + integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== dependencies: "@babel/types" "^7.20.7" "@jridgewell/gen-mapping" "^0.3.2" @@ -113,7 +113,7 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.12", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": version "7.20.12" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== @@ -283,12 +283,12 @@ "@babel/types" "^7.20.5" "@babel/helpers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" - integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" + integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== dependencies: "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" + "@babel/traverse" "^7.20.13" "@babel/types" "^7.20.7" "@babel/highlight@^7.18.6": @@ -300,10 +300,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" - integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088" + integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -349,11 +349,11 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.7.tgz#05d37453c2ce818f3e47bbeda9468c8de947eecc" - integrity sha512-JB45hbUweYpwAGjkiM7uCyXMENH2lG+9r3G2E+ttc2PRXAoEkpfd/KW5jDg4j8RS6tLtTG1jZi9LbHZVSfs1/A== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.13.tgz#b6bea3b18e88443688fa7ed2cc06d2c60da9f4a7" + integrity sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.7" + "@babel/helper-create-class-features-plugin" "^7.20.12" "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-split-export-declaration" "^7.18.6" @@ -632,9 +632,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz#9f5a3424bd112a3f32fe0cf9364fbb155cff262a" - integrity sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw== + version "7.20.14" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.14.tgz#2f5025f01713ba739daf737997308e0d29d1dd75" + integrity sha512-sMPepQtsOs5fM1bwNvuJJHvaCfOEQfmc01FGw0ELlTpTJj5Ql/zuNRRldYhAPys4ghXdBIQJbRVYi44/7QflQQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -823,9 +823,9 @@ "@babel/plugin-transform-react-jsx" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz#025d85a1935fd7e19dfdcb1b1d4df34d4da484f7" - integrity sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz#f950f0b0c36377503d29a712f16287cedf886cbb" + integrity sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" @@ -905,11 +905,11 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.7.tgz#673f49499cd810ae32a1ea5f3f8fab370987e055" - integrity sha512-m3wVKEvf6SoszD8pu4NZz3PvfKRCMgk6D6d0Qi9hNnlM5M6CFS92EgF4EiHVLKbU0r/r7ty1hg7NPZwE7WRbYw== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz#e3581b356b8694f6ff450211fe6774eaff8d25ab" + integrity sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.7" + "@babel/helper-create-class-features-plugin" "^7.20.12" "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-typescript" "^7.20.0" @@ -1049,9 +1049,9 @@ regenerator-runtime "^0.12.0" "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" - integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" + integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== dependencies: regenerator-runtime "^0.13.11" @@ -1064,10 +1064,10 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.16.8", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5" - integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ== +"@babel/traverse@^7.16.8", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" + integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== dependencies: "@babel/code-frame" "^7.18.6" "@babel/generator" "^7.20.7" @@ -1075,7 +1075,7 @@ "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.7" + "@babel/parser" "^7.20.13" "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" @@ -1094,7 +1094,7 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@coinbase/wallet-sdk@^3.3.0": +"@coinbase/wallet-sdk@^3.5.4": version "3.6.3" resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.3.tgz#fd96f6f19d5a0090520c1b014ad4737bbc8e1267" integrity sha512-XUR4poOJE+dKzwBTdlM693CdLFitr046oZOVY3iDnbFcRrrQswhbDji7q4CmUcD4HxbfViX7PFoIwl79YQcukg== @@ -1236,9 +1236,9 @@ integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== "@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.0.tgz#923ebf8ba47e854863ae72510d9cbf7b44d525ea" - integrity sha512-zJ6hb3FDgBbO8d2e83vg6zq7tNvDqSq9RwdwfzJ8tdm9JHNvANq2fqwyRn6mlpUb7CwTs5ILdUrGwi9Gk4vY5w== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz#c9c61d9fe5ca5ac664e1153bb0aa0eba1c6d6308" + integrity sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw== "@dabh/diagnostics@^2.0.2": version "2.0.3" @@ -1969,9 +1969,9 @@ assemblyscript "0.19.10" "@graphql-eslint/eslint-plugin@^3.13.0": - version "3.14.3" - resolved "https://registry.yarnpkg.com/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.14.3.tgz#ca9d5f2499a4a0c09404ad1ac9a0bfc5a4c767e3" - integrity sha512-Ey4LocCSYLNXYWDfNh67ZzbCTNx1liqhZbQthidvoGtoVUo0sKsnR5pn2dVCRB8NbvQ4skob9r2dFBcUYhVbgQ== + version "3.15.0" + resolved "https://registry.yarnpkg.com/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.15.0.tgz#9d2db9a69836a24e608165ae9c8dafb34e73d431" + integrity sha512-0sCHsbD07sCAHLKr/89i0ZcKasAbPps9OcWcvBtBoyuyvINWQlTrG0eqIwo4n5pOdNLw1yCfk+R7AwRYJ8m+MQ== dependencies: "@babel/code-frame" "^7.18.6" "@graphql-tools/code-file-loader" "^7.3.6" @@ -1996,9 +1996,9 @@ value-or-promise "1.0.12" "@graphql-tools/code-file-loader@^7.3.6": - version "7.3.16" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.16.tgz#58aa85c250175cebe0ea4309214357768d550f93" - integrity sha512-109UFvQjZEntHwjPaHpWvgUudHenGngbXvSImabPc2fdrtgja5KC0h7thCg379Yw6IORHGrF2XbJwS1hAGPPWw== + version "7.3.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.17.tgz#bfe854c2d61f429a62ca0976fbd0f12045142abc" + integrity sha512-LqJgYJCau1/uIOZmnFixl8yJT99jTjQlNhUP3Vj0oQ0HODdPUKUjWA87SkwZR1TJzX19iKf/iGzfbLCAAhFRbA== dependencies: "@graphql-tools/graphql-tag-pluck" "7.4.3" "@graphql-tools/utils" "9.1.4" @@ -2006,17 +2006,17 @@ tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/delegate@9.0.22": - version "9.0.22" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.22.tgz#12f27ef76c5add456fa8797a496bb7dc82071771" - integrity sha512-dWJGMN8V7KORtbI8eDAjHYTWiMyis/md27M6pPhrlYVlcsDk3U0jbNdgkswBBUEBvqumPRCv8pVOxKcLS4caKA== +"@graphql-tools/delegate@9.0.24": + version "9.0.24" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.24.tgz#69ae776175f41696f16a9a1c9074af525be4152b" + integrity sha512-8+ircuaz51+yLip2qBBYenNlV8xiP7i44C+H+kO82ARmo2h47/q488K38DMbOL5//7G2Qt0GEZwTEF4h8ICGJQ== dependencies: "@graphql-tools/batch-execute" "8.5.15" "@graphql-tools/executor" "0.0.12" - "@graphql-tools/schema" "9.0.13" + "@graphql-tools/schema" "9.0.14" "@graphql-tools/utils" "9.1.4" dataloader "2.1.0" - tslib "~2.4.0" + tslib "~2.5.0" value-or-promise "1.0.12" "@graphql-tools/executor-graphql-ws@0.0.7": @@ -2032,14 +2032,14 @@ tslib "^2.4.0" ws "8.12.0" -"@graphql-tools/executor-http@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.1.tgz#9c4a43811d36d1be2319fd241d5538e2fac45bce" - integrity sha512-bFE6StI7CJEIYGRkAnTYxutSV4OtC1c4MQU3nStOYZZO7KmzIgEQZ4ygPSPrRb+jtRsMCBEqPqlYOD4Rq02aMw== +"@graphql-tools/executor-http@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.3.tgz#6a9dd9c0a6984ea7d0a57569c7cabbf9f3df75ca" + integrity sha512-Bv4OqEbE4z5FG7dVrVKWvwkL0QKASWgEz3524ll3qDtHEUyE1lrItA+qVBxj0mcAV5tP0C8TNglZe8Ib/iTNzA== dependencies: "@graphql-tools/utils" "9.1.4" "@repeaterjs/repeater" "3.0.4" - "@whatwg-node/fetch" "0.6.2" + "@whatwg-node/fetch" "0.6.5" dset "3.1.2" extract-files "^11.0.0" meros "1.2.1" @@ -2111,45 +2111,45 @@ unixify "^1.0.0" "@graphql-tools/load@^7.5.5": - version "7.8.9" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.9.tgz#5f4e523095b6154bac43e6a01acb6b043e9afaca" - integrity sha512-/eHRv6OCTI/Ir5XcbtSx0XbW3zOQVscp2MZQFGZKDzqCcGD+NVy4mLCoBwR/OsOUpvWAwMnc+Llb4SDKAYGmjQ== + version "7.8.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.10.tgz#c62ccc850e6f846e8214f1ae05e675a864d79b80" + integrity sha512-Mc1p7ZSxrW5yGG3BLQnhiL8RPG0HdxFVoHV7fpx2adp4o1V7BzDjKRSbCnAxShA1wA4n8wbA+n7NTC0edi4eNA== dependencies: - "@graphql-tools/schema" "9.0.13" + "@graphql-tools/schema" "9.0.14" "@graphql-tools/utils" "9.1.4" p-limit "3.1.0" tslib "^2.4.0" -"@graphql-tools/merge@8.3.15", "@graphql-tools/merge@^8.2.6": - version "8.3.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.15.tgz#9b24ee5e9c36074684515c7d1587cd3e200c8a8f" - integrity sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA== +"@graphql-tools/merge@8.3.16", "@graphql-tools/merge@^8.2.6": + version "8.3.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.16.tgz#fede610687b148e34ff861e8b038dcd71e20039b" + integrity sha512-In0kcOZcPIpYOKaqdrJ3thdLPE7TutFnL9tbrHUy2zCinR2O/blpRC48jPckcs0HHrUQ0pGT4HqvzMkZUeEBAw== dependencies: "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" -"@graphql-tools/schema@9.0.13": - version "9.0.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.13.tgz#56b994777df29ac36586a3200fb6397abf7b9d83" - integrity sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg== +"@graphql-tools/schema@9.0.14": + version "9.0.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.14.tgz#9a658ab82d5a7d4db73f68a44900d4c88a98f0bc" + integrity sha512-U6k+HY3Git+dsOEhq+dtWQwYg2CAgue8qBvnBXoKu5eEeH284wymMUoNm0e4IycOgMCJANVhClGEBIkLRu3FQQ== dependencies: - "@graphql-tools/merge" "8.3.15" + "@graphql-tools/merge" "8.3.16" "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" value-or-promise "1.0.12" "@graphql-tools/url-loader@^7.9.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.3.tgz#5c3270208e5cb039f65d7ef390af93bbc5c76408" - integrity sha512-NY/NQpuf29gjt19XExjRyTj3z44Ohc2OwQZIR/RqHYn+cbdMeXIgJqV5vbPOCN8Umjmm5yVb7kP6oKNGjyeBvw== + version "7.17.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.7.tgz#90efce39672e8d98c748afe793f347b2f6f04d88" + integrity sha512-SulOTzmUenj2+wt7XzFh2xakeYUuuzX7nDrjSlgmn/gKD4ydhzCkDz+WXXyvvEq2YmBd7x/iJMeL4N3wAZWk3w== dependencies: "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/delegate" "9.0.22" + "@graphql-tools/delegate" "9.0.24" "@graphql-tools/executor-graphql-ws" "0.0.7" - "@graphql-tools/executor-http" "0.1.1" + "@graphql-tools/executor-http" "0.1.3" "@graphql-tools/executor-legacy-ws" "0.0.6" "@graphql-tools/utils" "9.1.4" - "@graphql-tools/wrap" "9.3.1" + "@graphql-tools/wrap" "9.3.3" "@types/ws" "^8.0.0" "@whatwg-node/fetch" "^0.6.0" isomorphic-ws "5.0.0" @@ -2164,13 +2164,13 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/wrap@9.3.1": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.1.tgz#d0718d87080e7a54655d629a78b08c9d39f314ea" - integrity sha512-uzY1HKc7qMErWL3ybv8bFG3hI1rTJPVYQ8WeJkCF/r/+aHEkUj0Bo2PYZrZTX1UIr3Tb4P5GyhqYBgZOXraZjw== +"@graphql-tools/wrap@9.3.3": + version "9.3.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.3.tgz#d69a21f9d13ccff89bc95cc479b45ab23683e55b" + integrity sha512-KN+mWFXqUAZVYWotp396lAestMZx7SYwvCWwi6D9HNy89PLK2XYBfXKlvTUYZ5zEC5s2Qhc/DbnHJ3hSFyX7Gg== dependencies: - "@graphql-tools/delegate" "9.0.22" - "@graphql-tools/schema" "9.0.13" + "@graphql-tools/delegate" "9.0.24" + "@graphql-tools/schema" "9.0.14" "@graphql-tools/utils" "9.1.4" tslib "^2.4.0" value-or-promise "1.0.12" @@ -2281,16 +2281,16 @@ jest-util "^28.1.3" slash "^3.0.0" -"@jest/console@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" - integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== +"@jest/console@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.1.tgz#cbc31d73f6329f693b3d34b365124de797704fff" + integrity sha512-m+XpwKSi3PPM9znm5NGS8bBReeAJJpSkL1OuFCqaMaJL2YX9YXLkkI+MBchMPwu+ZuM2rynL51sgfkQteQ1CKQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" slash "^3.0.0" "@jest/core@^27.5.1": @@ -2327,37 +2327,37 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/core@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" - integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== - dependencies: - "@jest/console" "^29.3.1" - "@jest/reporters" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" +"@jest/core@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.1.tgz#91371179b5959951e211dfaeea4277a01dcca14f" + integrity sha512-RXFTohpBqpaTebNdg5l3I5yadnKo9zLBajMT0I38D0tDhreVBYv3fA8kywthI00sWxPztWLD3yjiUkewwu/wKA== + dependencies: + "@jest/console" "^29.4.1" + "@jest/reporters" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.2.0" - jest-config "^29.3.1" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" + jest-changed-files "^29.4.0" + jest-config "^29.4.1" + jest-haste-map "^29.4.1" + jest-message-util "^29.4.1" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-resolve-dependencies "^29.3.1" - jest-runner "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - jest-watcher "^29.3.1" + jest-resolve "^29.4.1" + jest-resolve-dependencies "^29.4.1" + jest-runner "^29.4.1" + jest-runtime "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" + jest-watcher "^29.4.1" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" strip-ansi "^6.0.0" @@ -2371,30 +2371,30 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== +"@jest/environment@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.1.tgz#52d232a85cdc995b407a940c89c86568f5a88ffe" + integrity sha512-pJ14dHGSQke7Q3mkL/UZR9ZtTOxqskZaC91NzamEH4dlKRt42W+maRBXiw/LWkdJe+P0f/zDR37+SPMplMRlPg== dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/fake-timers" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" - jest-mock "^29.3.1" + jest-mock "^29.4.1" -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== +"@jest/expect-utils@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.1.tgz#105b9f3e2c48101f09cae2f0a4d79a1b3a419cbb" + integrity sha512-w6YJMn5DlzmxjO00i9wu2YSozUYRBhIoJ6nQwpMYcBMtiqMGJm1QBzOf6DDgRao8dbtpDoaqLg6iiQTvv0UHhQ== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== +"@jest/expect@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.1.tgz#3338fa20f547bb6e550c4be37d6f82711cc13c38" + integrity sha512-ZxKJP5DTUNF2XkpJeZIzvnzF1KkfrhEF6Rz0HGG69fHl6Bgx5/GoU3XyaeFYEjuuKSOOsbqD/k72wFvFxc3iTw== dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" + expect "^29.4.1" + jest-snapshot "^29.4.1" "@jest/fake-timers@^27.5.1": version "27.5.1" @@ -2408,17 +2408,17 @@ jest-mock "^27.5.1" jest-util "^27.5.1" -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== +"@jest/fake-timers@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.1.tgz#7b673131e8ea2a2045858f08241cace5d518b42b" + integrity sha512-/1joI6rfHFmmm39JxNfmNAO3Nwm6Y0VoL5fJDy7H1AtWrD1CgRtqJbN9Ld6rhAkGO76qqp4cwhhxJ9o9kYjQMw== dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" + "@jest/types" "^29.4.1" + "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.1" + jest-mock "^29.4.1" + jest-util "^29.4.1" "@jest/globals@^27.5.1": version "27.5.1" @@ -2429,15 +2429,15 @@ "@jest/types" "^27.5.1" expect "^27.5.1" -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== +"@jest/globals@^29.3.1", "@jest/globals@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.1.tgz#3cd78c5567ab0249f09fbd81bf9f37a7328f4713" + integrity sha512-znoK2EuFytbHH0ZSf2mQK2K1xtIgmaw4Da21R2C/NE/+NnItm5mPEFQmn8gmF3f0rfOlmZ3Y3bIf7bFj7DHxAA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/expect" "^29.4.1" + "@jest/types" "^29.4.1" + jest-mock "^29.4.1" "@jest/reporters@^27.5.1": version "27.5.1" @@ -2470,16 +2470,16 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/reporters@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" - integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== +"@jest/reporters@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.1.tgz#50d509c08575c75e3cd2176d72ec3786419d5e04" + integrity sha512-AISY5xpt2Xpxj9R6y0RF1+O6GRy9JsGa8+vK23Lmzdy1AYcpQn5ItX79wJSsTmfzPKSAcsY1LNt/8Y5Xe5LOSg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -2492,9 +2492,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" + jest-worker "^29.4.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -2507,12 +2507,12 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== +"@jest/schemas@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.0.tgz#0d6ad358f295cc1deca0b643e6b4c86ebd539f17" + integrity sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ== dependencies: - "@sinclair/typebox" "^0.24.1" + "@sinclair/typebox" "^0.25.16" "@jest/source-map@^27.5.1": version "27.5.1" @@ -2552,13 +2552,13 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-result@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" - integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== +"@jest/test-result@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.1.tgz#997f19695e13b34779ceb3c288a416bd26c3238d" + integrity sha512-WRt29Lwt+hEgfN8QDrXqXGgCTidq1rLyFqmZ4lmJOpVArC8daXrZWkWjiaijQvgd3aOUj2fM8INclKHsQW9YyQ== dependencies: - "@jest/console" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.1" + "@jest/types" "^29.4.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" @@ -2572,14 +2572,14 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" -"@jest/test-sequencer@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" - integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== +"@jest/test-sequencer@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.1.tgz#f7a006ec7058b194a10cf833c88282ef86d578fd" + integrity sha512-v5qLBNSsM0eHzWLXsQ5fiB65xi49A3ILPSFQKPXzGL4Vyux0DPZAIN7NAFJa9b4BiTDP9MBF/Zqc/QA1vuiJ0w== dependencies: - "@jest/test-result" "^29.3.1" + "@jest/test-result" "^29.4.1" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.1" slash "^3.0.0" "@jest/transform@^27.5.1": @@ -2603,26 +2603,26 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== +"@jest/transform@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.1.tgz#e4f517841bb795c7dcdee1ba896275e2c2d26d4a" + integrity sha512-5w6YJrVAtiAgr0phzKjYd83UPbCXsBRTeYI4BXokv9Er9CcrH9hfXL/crCvP2d2nGOcovPUnlYiLPFLZrkG5Hg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.1" jest-regex-util "^29.2.0" - jest-util "^29.3.1" + jest-util "^29.4.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^4.0.1" + write-file-atomic "^5.0.0" "@jest/types@^27.5.1": version "27.5.1" @@ -2647,12 +2647,12 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== +"@jest/types@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.1.tgz#f9f83d0916f50696661da72766132729dcb82ecb" + integrity sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -2740,11 +2740,28 @@ "@json-rpc-tools/types" "^1.7.6" "@pedrouid/environment" "^1.0.1" +"@ledgerhq/connect-kit-loader@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.0.2.tgz#8554e16943f86cc2a5f6348a14dfe6e5bd0c572a" + integrity sha512-TQ21IjcZOw/scqypaVFY3jHVqI7X7Hta3qN/us6FvTol3AY06UmrhhXGww0E9xHmAbdX241ddwXEiMBSQZFr9g== + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== +"@lit-labs/ssr-dom-shim@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz#427e19a2765681fd83411cd72c55ba80a01e0523" + integrity sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw== + +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.1.tgz#0d958b6d479d0e3db5fc1132ecc4fa84be3f0b93" + integrity sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.0.0" + "@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" @@ -2761,24 +2778,101 @@ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@mui/base@5.0.0-alpha.114": - version "5.0.0-alpha.114" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.114.tgz#19125f28b7d09d1cc60550872440ecba699d8374" - integrity sha512-ZpsG2I+zTOAnVTj3Un7TxD2zKRA2OhEPGMcWs/9ylPlS6VuGQSXowPooZiqarjT7TZ0+1bOe8titk/t8dLFiGw== +"@morgan-stanley/ts-mocking-bird@^0.6.2": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz#2e4b60d42957bab3b50b67dbf14c3da2f62a39f7" + integrity sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA== + dependencies: + lodash "^4.17.16" + uuid "^7.0.3" + +"@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== + dependencies: + "@motionone/easing" "^10.15.1" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + tslib "^2.3.1" + +"@motionone/dom@^10.15.5": + version "10.15.5" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.15.5.tgz#4af18f8136d85c2fc997cac98121c969f6731802" + integrity sha512-Xc5avlgyh3xukU9tydh9+8mB8+2zAq+WlLsC3eEIp7Ax7DnXgY7Bj/iv0a4X2R9z9ZFZiaXK3BO0xMYHKbAAdA== + dependencies: + "@motionone/animation" "^10.15.1" + "@motionone/generators" "^10.15.1" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + 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== + dependencies: + "@motionone/utils" "^10.15.1" + 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== + dependencies: + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + tslib "^2.3.1" + +"@motionone/svelte@^10.15.5": + version "10.15.5" + resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.15.5.tgz#f36b40101ec1db122820598089f42e831f6cf5f5" + integrity sha512-Xyxtgp7BlVnSBwcoFmXGHUVnpNktzeXsEifu2NJJWc7VGuxutDsBZxNdz80qvpLIC5MeBa1wh7GGegZzTm1msg== + dependencies: + "@motionone/dom" "^10.15.5" + 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/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== + dependencies: + "@motionone/types" "^10.15.1" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/vue@^10.15.5": + version "10.15.5" + resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.15.5.tgz#3101c62b2fce06b3f3072b9ff0f551213eb02476" + integrity sha512-cUENrLYAolUacHvCgU+8wF9OgSlVutfWbHMLERI/bElCJ+e2YVQvG/CpGhIM5fYOOJzuvg2T2wHmLLmvJoavEw== + dependencies: + "@motionone/dom" "^10.15.5" + tslib "^2.3.1" + +"@mui/base@5.0.0-alpha.116": + version "5.0.0-alpha.116" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.116.tgz#c167a66b7232088b4bcd97ba36096a357c6e4fb9" + integrity sha512-VwhifWdrfHc4/ZdqRZ4Gf+7P39sovNN24By1YVZdvJ9fvp0Sr8sNftGUCjYXXz+xCXVBQDXvhfxMwZrj2MvJvA== dependencies: "@babel/runtime" "^7.20.7" "@emotion/is-prop-valid" "^1.2.0" "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.2" + "@mui/utils" "^5.11.7" "@popperjs/core" "^2.11.6" clsx "^1.2.1" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.11.5": - version "5.11.5" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz#473c9b918d974f03acc07d29ce467bb91eba13c6" - integrity sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig== +"@mui/core-downloads-tracker@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.7.tgz#b3a3aad64c6b69f6165d7a00c0d9cfeacbe357a2" + integrity sha512-lZgX7XQTk0zVcpwEa80r+T4y09dosnUxWvFPSikU/2Hh5wnyNOek8WfJwGCNsaRiXJHMi5eHY+z8oku4u5lgNw== "@mui/icons-material@^5.10.14", "@mui/icons-material@^5.10.6": version "5.11.0" @@ -2788,16 +2882,16 @@ "@babel/runtime" "^7.20.6" "@mui/material@^5.10.14", "@mui/material@^5.10.7": - version "5.11.5" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.5.tgz#b4867b4a6f3289e41f70b4393c075a799be8d24b" - integrity sha512-5fzjBbRYaB5MoEpvA32oalAWltOZ3/kSyuovuVmPc6UF6AG42lTtbdMLpdCygurFSGUMZYTg4Cjij52fKlDDgg== + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.7.tgz#d460c7239013a57cc2aa3d2bbe14ba875b29d7cb" + integrity sha512-wDv7Pc6kMe9jeWkmCLt4JChd1lPc2u23JQHpB35L2VwQowpNFoDfIwqi0sYCnZTMKlRc7lza8LqwSwHl2G52Rw== dependencies: "@babel/runtime" "^7.20.7" - "@mui/base" "5.0.0-alpha.114" - "@mui/core-downloads-tracker" "^5.11.5" - "@mui/system" "^5.11.5" + "@mui/base" "5.0.0-alpha.116" + "@mui/core-downloads-tracker" "^5.11.7" + "@mui/system" "^5.11.7" "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.2" + "@mui/utils" "^5.11.7" "@types/react-transition-group" "^4.4.5" clsx "^1.2.1" csstype "^3.1.1" @@ -2805,13 +2899,13 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.11.2": - version "5.11.2" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.2.tgz#93eafb317070888a988efa8d6a9ec1f69183a606" - integrity sha512-qZwMaqRFPwlYmqwVKblKBGKtIjJRAj3nsvX93pOmatsXyorW7N/0IPE/swPgz1VwChXhHO75DwBEx8tB+aRMNg== +"@mui/private-theming@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.7.tgz#e92b87d6ea68ae5a23d0f0d9d248361b889a98db" + integrity sha512-XzRTSZdc8bhuUdjablTNv3kFkZ/XIMlKkOqqJCU0G8W3tWGXpau2DXkafPd1ddjPhF9zF3qLKNGgKCChYItjgA== dependencies: "@babel/runtime" "^7.20.7" - "@mui/utils" "^5.11.2" + "@mui/utils" "^5.11.7" prop-types "^15.8.1" "@mui/styled-engine@^5.11.0": @@ -2825,15 +2919,15 @@ prop-types "^15.8.1" "@mui/styles@^5.10.14": - version "5.11.2" - resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.11.2.tgz#8616272389051f0287e1e3b24d2bae937757552e" - integrity sha512-Yg6+PMPV4Mx1UJHow2e/nND2bQNWS1H38zrkJxlucXfaR0+aglO6u8R/OXmVspDj+Z5YW5B27lxRDvxCQN9nGw== + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.11.7.tgz#e933d2f5320e1590eaf4ebf8a8e0d07ac2a24b39" + integrity sha512-J8YZGy8Dg9Ge7IFzYzoisnf1Q8clLQf0qMIDFfRhqLIFOGtPZWd7Y2rpULN1kh/qaTvoJxylrROnOFb04rHDUA== dependencies: "@babel/runtime" "^7.20.7" "@emotion/hash" "^0.9.0" - "@mui/private-theming" "^5.11.2" + "@mui/private-theming" "^5.11.7" "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.2" + "@mui/utils" "^5.11.7" clsx "^1.2.1" csstype "^3.1.1" hoist-non-react-statics "^3.3.2" @@ -2847,16 +2941,16 @@ jss-plugin-vendor-prefixer "^10.9.2" prop-types "^15.8.1" -"@mui/system@^5.11.5": - version "5.11.5" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.5.tgz#c880199634708c866063396f88d3fdd4c1dfcb48" - integrity sha512-KNVsJ0sgRRp2XBqhh4wPS5aacteqjwxgiYTVwVnll2fgkgunZKo3DsDiGMrFlCg25ZHA3Ax58txWGE9w58zp0w== +"@mui/system@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.7.tgz#5e550c621733a18cd437678f11dcd1c3468129d0" + integrity sha512-uGB6hBxGlAdlmbLdTtUZYNPXkgQGGnKxHdkRATqsu7UlCxNsc/yS5NCEWy/3c4pnelD1LDLD39WrntP9mwhfkQ== dependencies: "@babel/runtime" "^7.20.7" - "@mui/private-theming" "^5.11.2" + "@mui/private-theming" "^5.11.7" "@mui/styled-engine" "^5.11.0" "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.2" + "@mui/utils" "^5.11.7" clsx "^1.2.1" csstype "^3.1.1" prop-types "^15.8.1" @@ -2866,10 +2960,10 @@ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.3.tgz#06faae1c0e2f3a31c86af6f28b3a4a42143670b9" integrity sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw== -"@mui/utils@^5.10.3", "@mui/utils@^5.11.2": - version "5.11.2" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.11.2.tgz#29764311acb99425159b159b1cb382153ad9be1f" - integrity sha512-AyizuHHlGdAtH5hOOXBW3kriuIwUIKUIgg0P7LzMvzf6jPhoQbENYqY6zJqfoZ7fAWMNNYT8mgN5EftNGzwE2w== +"@mui/utils@^5.10.3", "@mui/utils@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.11.7.tgz#a343a5d375b4140c875bf4c96825c1a148994800" + integrity sha512-8uyNDeVHZA804Ego20Erv8TpxlbqTe/EbhTI2H1UYr4/RiIbBprat8W4Qqr2UQIsC/b3DLz+0RQ6R/E5BxEcLA== dependencies: "@babel/runtime" "^7.20.7" "@types/prop-types" "^15.7.5" @@ -2878,9 +2972,9 @@ react-is "^18.2.0" "@mui/x-data-grid@^5.17.4": - version "5.17.20" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.20.tgz#ab50eadc330f10cdc056910598229ebcdcd3b062" - integrity sha512-khOe5l2deUBxUCkY9qKzevjIcg0l2rab2GjVwRfpJ/FUlV9cEsTvA9fSv4ylo6BsPfENBH6GPjZwxkr5GsXYgw== + version "5.17.21" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.21.tgz#43ffdf8d64d8ea998a5ee17c9a9529dcbcf79a20" + integrity sha512-dgYYk1H3BEyGg7/RDet+ZBiTZQ9ZEIHE5QhVZ1glopVDRgWJmtcqPUQakkHQzxerEsKVwZ5QEEfueKuoX8oebg== dependencies: "@babel/runtime" "^7.18.9" "@mui/utils" "^5.10.3" @@ -3206,9 +3300,9 @@ proper-lockfile "^4.1.1" "@openzeppelin/upgrades-core@^1.20.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.21.0.tgz#e53439548ac1d7c3949ddcc0f5b14e335471411c" - integrity sha512-Eoi1N7fx0f7iWixd59AbWL3XyOtgRvHMboCK0p7Ep97shGeRimX8RXmJllDTRDdjtPeG8Q1icFnSMIfs8dxb/A== + version "1.22.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.22.0.tgz#41ffda6a9161845fc6b82bd945e530529feefa00" + integrity sha512-TcTabzRbYOzWJnwiToj0LRzje25d9QbDPe2dOT9eHlLDRhOMiep39FDibJjkYd5IdF3s8M9IcK+YSnf49renEg== dependencies: cbor "^8.0.0" chalk "^4.1.0" @@ -3348,19 +3442,19 @@ react-remove-scroll "2.5.4" "@reduxjs/toolkit@^1.9.0": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.1.tgz#4c34dc4ddcec161535288c60da5c19c3ef15180e" - integrity sha512-HikrdY+IDgRfRYlCTGUQaiCxxDDgM1mQrRbZ6S1HFZX5ZYuJ4o8EstNmhTwHdPl2rTmLxzwSu0b3AyeyTlR+RA== + version "1.9.2" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.2.tgz#4cd153491118038e2eebcb63b2264e42a8a2d74c" + integrity sha512-5ZAZ7hwAKWSii5T6NTPmgIBUqyVdlDs+6JjThz6J6dmHLDm6zCzv2OjHIFAi3Vvs1qjmXU0bm6eBojukYXjVMQ== dependencies: immer "^9.0.16" redux "^4.2.0" redux-thunk "^2.4.2" reselect "^4.1.7" -"@remix-run/router@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.3.0.tgz#b6ee542c7f087b73b3d8215b9bf799f648be71cb" - integrity sha512-nwQoYb3m4DDpHTeOwpJEuDt8lWVcujhYYSFGLluC+9es2PyLjm+jjq3IeRBQbwBtPLJE/lkuHuGHr8uQLgmJRA== +"@remix-run/router@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.3.1.tgz#3bb0b6ddc0a276e8dc1138d08f63035e4e23e8bf" + integrity sha512-+eun1Wtf72RNRSqgU7qM2AMX/oHp+dnx7BHk1qhK5ZHzdHTUU4LA1mGG1vT+jMc8sbhG3orvsfOmryjzx2PzQw== "@repeaterjs/repeater@3.0.4": version "3.0.4" @@ -3509,6 +3603,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== +"@sinclair/typebox@^0.25.16": + version "0.25.21" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" + integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== + "@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" @@ -3521,6 +3620,20 @@ dependencies: type-detect "4.0.8" +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" + integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== + dependencies: + "@sinonjs/commons" "^2.0.0" + "@sinonjs/fake-timers@^8.0.1": version "8.1.0" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" @@ -3528,13 +3641,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@solana/buffer-layout@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -3543,9 +3649,9 @@ buffer "~6.0.3" "@solana/web3.js@^1.70.1": - version "1.73.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.73.0.tgz#c65f9f954ac80fca6952765c931dd72e57e1b572" - integrity sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw== + version "1.73.2" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.73.2.tgz#4b30cd402b35733dae3a7d0b638be26a7742b395" + integrity sha512-9WACF8W4Nstj7xiDw3Oom22QmrhBh0VyZyZ7JvvG3gOxLWLlX3hvm5nPVJOGcCE/9fFavBbCUb5A6CIuvMGdoA== dependencies: "@babel/runtime" "^7.12.5" "@noble/ed25519" "^1.7.0" @@ -3571,6 +3677,140 @@ 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" + "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" @@ -3698,42 +3938,44 @@ dependencies: defer-to-connect "^2.0.1" -"@tanstack/query-core@4.22.0": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.22.0.tgz#7a786fcea64e229ed5d4308093dd644cdfaa895e" - integrity sha512-OeLyBKBQoT265f5G9biReijeP8mBxNFwY7ZUu1dKL+YzqpG5q5z7J/N1eT8aWyKuhyDTiUHuKm5l+oIVzbtrjw== +"@tanstack/query-core@4.24.4": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.24.4.tgz#6fe78777286fdd805ac319c7c743df4935e18ee2" + integrity sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA== -"@tanstack/query-persist-client-core@4.22.0": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.22.0.tgz#cb0677cb0ab36c626bfb18bd681426f661ef4a85" - integrity sha512-O5Qh4HycMWPD67qoGs9zwNJuCpQnbgAgpWmg/M5+jpWaobGGtdIW6SHuvVogQM53uTaWT8b30ymi4BKds4GxIA== +"@tanstack/query-persist-client-core@4.24.4": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.24.4.tgz#e806e0985ddf11880fe81906059d9463d924f584" + integrity sha512-t4BR/th3tu2tkfF0Tcl5z+MbglDjTdIbsLZYlly7l2M6EhGXRjOLbvVUA5Kcx7E2a81Vup0zx0z0wlx+RPGfmg== + dependencies: + "@tanstack/query-core" "4.24.4" -"@tanstack/query-sync-storage-persister@^4.0.10": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.22.0.tgz#114545d7957f72d71abd70790dfe8bd6177bd9ec" - integrity sha512-NtsekSPrJC+qMFncs0cqzyqFWW3rZU6EwGwgqM+u7PnjYQBiOyrD7yB8V6rJEIDVvSpakS1jPyzKDxpexrUk8g== +"@tanstack/query-sync-storage-persister@^4.14.5": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.24.4.tgz#7d7230b0d911ade3648bdaa0f87b30b086f734e0" + integrity sha512-0wffVqoOydMc1TDjOiATv/TM8wJfMpRcM82Cr19TuepListopTsuZ3RzSzLKBCo8WRl/0zCR1Ti9t1zn+Oai/A== dependencies: - "@tanstack/query-persist-client-core" "4.22.0" + "@tanstack/query-persist-client-core" "4.24.4" -"@tanstack/react-query-persist-client@^4.0.10": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.22.0.tgz#29dd5542b96a0a83a58e32f2c815874cd90a729d" - integrity sha512-E9eAstffzr+PMsKcgTI6AfMMYtUjV6w3VKCa/0v9wGWdGEJYKcjNJWyYiPF0Z0ccwAaDCeOuQCFId8y0BKCK8g== +"@tanstack/react-query-persist-client@^4.14.5": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.24.4.tgz#9e7f4854cd06605fc3481137645661ec5bf0a276" + integrity sha512-vQ10ghQrmk+VMrv8BtD1WgvdcGlL7z8QLC9oGryYPORLueOmVvW8nB3GL7aWp84pkLLXPLR32WopXMfseHWukw== dependencies: - "@tanstack/query-persist-client-core" "4.22.0" + "@tanstack/query-persist-client-core" "4.24.4" -"@tanstack/react-query@^4.0.10": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.22.0.tgz#aaa4b41a6d306be6958018c74a8a3bb3e9f1924c" - integrity sha512-P9o+HjG42uB/xHR6dMsJaPhtZydSe4v0xdG5G/cEj1oHZAXelMlm67/rYJNQGKgBamKElKogj+HYGF+NY2yHYg== +"@tanstack/react-query@^4.14.5": + version "4.24.4" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.24.4.tgz#79e892edac33d8aa394795390c0f79e4a8c9be4d" + integrity sha512-RpaS/3T/a3pHuZJbIAzAYRu+1nkp+/enr9hfRXDS/mojwx567UiMksoqW4wUFWlwIvWTXyhot2nbIipTKEg55Q== dependencies: - "@tanstack/query-core" "4.22.0" + "@tanstack/query-core" "4.24.4" use-sync-external-store "^1.2.0" "@tenderly/hardhat-tenderly@^1.1.6": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.2.tgz#0a5a9df50e0430097c58fcb9ae6e40981bd4b2e9" - integrity sha512-qITow77BqF88lUCz+9OL5eanAdCNXRN/9IeU1GwtJ2NmR7e8o9qgz1XYTTQUVmtqnqcZzf3jT0nwlqKUGRimqw== + version "1.5.3" + resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.3.tgz#778926d8194e815a0159163aa28d8b40650b7dac" + integrity sha512-DuWp8Lm2lHQeDujM6szvMmE+wx1dE7PLILgtBnfGfhJy4Hv3SJHZDCOiP/V3X3InYPoKjMxNL/TN1jQbT+AXQA== dependencies: "@ethersproject/bignumber" "^5.7.0" "@nomiclabs/hardhat-ethers" "^2.1.1" @@ -4077,18 +4319,18 @@ integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31", "@types/express-serve-static-core@^4.17.9": - version "4.17.32" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82" - integrity sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA== + version "4.17.33" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" + integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14": - version "4.17.15" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" - integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== + version "4.17.16" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.16.tgz#986caf0b4b850611254505355daa24e1b8323de8" + integrity sha512-LkKpqRZ7zqXJuvoELakaFYuETHjZkSol8EV6cNnyishutDBCCdv6+dsKPbKkCcIk57qRphOLY5sEgClw1bO3gA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.31" @@ -4162,9 +4404,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*", "@types/jest@^29.2.3": - version "29.2.6" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.6.tgz#1d43c8e533463d0437edef30b2d45d5aa3d95b0a" - integrity sha512-XEUC/Tgw3uMh6Ho8GkUtQ2lPhY5Fmgyp3TdlkTJs1W9VgNxs+Ow/x3Elh8lHQKqCbZL0AubQuqWjHVT033Hhrw== + version "29.4.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.0.tgz#a8444ad1704493e84dbf07bb05990b275b3b9206" + integrity sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -4476,21 +4718,22 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.20" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.20.tgz#107f0fcc13bd4a524e352b41c49fe88aab5c54d5" - integrity sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A== + version "17.0.22" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" + integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== dependencies: "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.43.0", "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz#112e6ae1e23a1dc8333ce82bb9c65c2608b4d8a3" - integrity sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg== + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz#fb48c31cadc853ffc1dc35373f56b5e2a8908fe9" + integrity sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ== dependencies: - "@typescript-eslint/scope-manager" "5.48.2" - "@typescript-eslint/type-utils" "5.48.2" - "@typescript-eslint/utils" "5.48.2" + "@typescript-eslint/scope-manager" "5.50.0" + "@typescript-eslint/type-utils" "5.50.0" + "@typescript-eslint/utils" "5.50.0" debug "^4.3.4" + grapheme-splitter "^1.0.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" regexpp "^3.2.0" @@ -4498,78 +4741,78 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.2.tgz#04057cd6e96d225a6ed10e6881086add6c230781" - integrity sha512-Iwx8De8dwl6qPaPZWIaEfP1feN/YFlA5FlCxF3zUIm+2AG92C5Tefkugj2L9ytOFrmTYkTE/CqvJFZbYoVZQMg== + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.50.0.tgz#d33160ef610cdcdfc376e3cb086cabd2c83e70c8" + integrity sha512-gZIhzNRivy0RVqcxjKnQ+ipGc0qolilhBeNmvH+Dvu7Vymug+IfiYxTj2zM7mIlHsw6Q5aH7L7WmuTE3tZyzag== dependencies: - "@typescript-eslint/utils" "5.48.2" + "@typescript-eslint/utils" "5.50.0" "@typescript-eslint/parser@^5.43.0", "@typescript-eslint/parser@^5.5.0": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3" - integrity sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw== + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.50.0.tgz#a33f44b2cc83d1b7176ec854fbecd55605b0b032" + integrity sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ== dependencies: - "@typescript-eslint/scope-manager" "5.48.2" - "@typescript-eslint/types" "5.48.2" - "@typescript-eslint/typescript-estree" "5.48.2" + "@typescript-eslint/scope-manager" "5.50.0" + "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/typescript-estree" "5.50.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc" - integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw== +"@typescript-eslint/scope-manager@5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz#90b8a3b337ad2c52bbfe4eac38f9164614e40584" + integrity sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg== dependencies: - "@typescript-eslint/types" "5.48.2" - "@typescript-eslint/visitor-keys" "5.48.2" + "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/visitor-keys" "5.50.0" -"@typescript-eslint/type-utils@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7" - integrity sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew== +"@typescript-eslint/type-utils@5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz#509d5cc9728d520008f7157b116a42c5460e7341" + integrity sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ== dependencies: - "@typescript-eslint/typescript-estree" "5.48.2" - "@typescript-eslint/utils" "5.48.2" + "@typescript-eslint/typescript-estree" "5.50.0" + "@typescript-eslint/utils" "5.50.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e" - integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA== +"@typescript-eslint/types@5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.50.0.tgz#c461d3671a6bec6c2f41f38ed60bd87aa8a30093" + integrity sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w== -"@typescript-eslint/typescript-estree@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0" - integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg== +"@typescript-eslint/typescript-estree@5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz#0b9b82975bdfa40db9a81fdabc7f93396867ea97" + integrity sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow== dependencies: - "@typescript-eslint/types" "5.48.2" - "@typescript-eslint/visitor-keys" "5.48.2" + "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/visitor-keys" "5.50.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.48.2", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.13.0", "@typescript-eslint/utils@^5.42.1": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3" - integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow== +"@typescript-eslint/utils@5.50.0", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.42.1", "@typescript-eslint/utils@^5.43.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.50.0.tgz#807105f5ffb860644d30d201eefad7017b020816" + integrity sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.48.2" - "@typescript-eslint/types" "5.48.2" - "@typescript-eslint/typescript-estree" "5.48.2" + "@typescript-eslint/scope-manager" "5.50.0" + "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/typescript-estree" "5.50.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060" - integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ== +"@typescript-eslint/visitor-keys@5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz#b752ffc143841f3d7bc57d6dd01ac5c40f8c4903" + integrity sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg== dependencies: - "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/types" "5.50.0" eslint-visitor-keys "^3.3.0" "@vanilla-extract/css@1.9.1": @@ -4606,10 +4849,10 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@5.9.0": - version "5.9.0" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.9.0.tgz#54b91e5b369c852d4a0d1bcba98d4c352d290643" - integrity sha512-LJRhd/ritLGHH+YvZ+DC7AW3Jr87UZHFHz2h2ENULDZ8qAo5LJH+y+Cg11uxfXkhQKK2f/AZQJXyKVyu1BBwdQ== +"@vercel/build-utils@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-6.0.1.tgz#8770345de898ac00d8f9a7641d7baf1098ad32b5" + integrity sha512-dODPwcsYDfptshwSmnW7VN7V8G8NHBuTyshOzazde3MAvvOJoG5SdqZ+Mdayhgv16I3UV93j/JNsbamQcqE3VQ== "@vercel/node-bridge@3.1.10": version "3.1.10" @@ -4617,13 +4860,13 @@ integrity sha512-0DQzF5pdyP+xd5f1Ss2fAO+9xIvzUhngRAPazwg4XHZE9iLkv2L+A1u3L8NYi4hoUlAAZQ5GF3txlm/oBn4tNw== "@vercel/node@^2.5.26": - version "2.8.14" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.14.tgz#573c1403e69ea2c7b370cdf9c47bd562e71efd52" - integrity sha512-ty4/FUgEpfQlqNm3j5HEaMhAHPJipRBzm6WVOs7Lvf5INx6OqLxbLBw3p/xcA18EWL0D8e5V41B7F8iQ3tBkqA== + version "2.8.17" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.17.tgz#ed2ca3c8c872819a44f89a49a02cf1dbdc7b757c" + integrity sha512-szlW6MQ0hok3oeGexB2JwGkOFXluvkWMUA5L4uxkx8xYhd0rBoSi3rWgO84V3SyS8g8SSIZmxKoOT5plm8mO9w== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "5.9.0" + "@vercel/build-utils" "6.0.1" "@vercel/node-bridge" "3.1.10" "@vercel/static-config" "2.0.11" edge-runtime "2.0.0" @@ -4642,35 +4885,35 @@ json-schema-to-ts "1.6.4" ts-morph "12.0.0" -"@vitest/expect@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.2.tgz#375af32579b3d6b972a1fe0be0e0260ffb84bc7d" - integrity sha512-syEAK7I24/aGR2lXma98WNnvMwAJ+fMx32yPcj8eLdCEWjZI3SH8ozMaKQMy65B/xZCZAl6MXmfjtJb2CpWPMg== +"@vitest/expect@0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.3.tgz#8cd570b662e709f56ba29835879890c87429a194" + integrity sha512-dnxllhfln88DOvpAK1fuI7/xHwRgTgR4wdxHldPaoTaBu6Rh9zK5b//v/cjTkhOfNP/AJ8evbNO8H7c3biwd1g== dependencies: - "@vitest/spy" "0.28.2" - "@vitest/utils" "0.28.2" + "@vitest/spy" "0.28.3" + "@vitest/utils" "0.28.3" chai "^4.3.7" -"@vitest/runner@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.2.tgz#671c8f489ceac2bcf1bc2d993f9920da10347d3f" - integrity sha512-BJ9CtfPwWM8uc5p7Ty0OprwApyh8RIaSK7QeQPhwfDYA59AAE009OytqA3aX0yj1Qy5+k/mYFJS8RJZgsueSGA== +"@vitest/runner@0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.3.tgz#a59bc7a1457957291b6bf1964831284768168314" + integrity sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ== dependencies: - "@vitest/utils" "0.28.2" + "@vitest/utils" "0.28.3" p-limit "^4.0.0" pathe "^1.1.0" -"@vitest/spy@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.2.tgz#74d970601eebc41d48e685323b2853b2c88f8db4" - integrity sha512-KlLzTzi5E6tHcI12VT+brlY1Pdi7sUzLf9+YXgh80+CfLu9DqPZi38doBBAUhqEnW/emoLCMinPMMoJlNAQZXA== +"@vitest/spy@0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.3.tgz#6f6f7ecdeefecb023a96e69b6083e0314ea6f04c" + integrity sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w== dependencies: tinyspy "^1.0.2" -"@vitest/utils@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.2.tgz#2d79de7afb44e821a2c7e692bafb40d2cf765bb7" - integrity sha512-wcVTNnVdr22IGxZHDgiXrxWYcXsNg0iX2iBuOH3tVs9eme6fXJ0wxjn0/gCpp0TofQSoUwo3tX8LNACFVseDuA== +"@vitest/utils@0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.3.tgz#75c076d4fdde5c48ee5de2808c83d615fc74d4ef" + integrity sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ== dependencies: cli-truncate "^3.1.0" diff "^5.1.0" @@ -4678,13 +4921,34 @@ picocolors "^1.0.0" pretty-format "^27.5.1" -"@wagmi/core@^0.5.8": - version "0.5.8" - resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.5.8.tgz#9e375c0dd31c3b22973d000694e1c2b06c05dbbc" - integrity sha512-1mABf1bXyn3AOHyQkios4FTGqoARa8y1tf7GMH6t1c7q0nAMSbpXoTDdjEidUHy8qhWoG0y3Ez4PjCi8WQnmMg== +"@wagmi/chains@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-0.2.4.tgz#7f90e64f42e614d9d324b5be2a6a49dfb0d39264" + integrity sha512-c2mJED5H9zHzpam2JSD76ln1UmrQShas5BAHA98FjSAHlqU41zWvUhOfm9mHMh8j2NCFJ+pGdQIlXFGs8Qe8cg== + +"@wagmi/connectors@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-0.2.2.tgz#13ffa65e2f93b5c83fe2ea5eb7e0480114979edc" + integrity sha512-Mbk0WVRpA5mLP5K2dSTzsCmBCRwTKg9I4TCRKQpXnUtw5+3waw+BVUPTm0aiWV/lEzzW+1F8gtUhlvK7I2Gj3Q== + dependencies: + "@coinbase/wallet-sdk" "^3.5.4" + "@ledgerhq/connect-kit-loader" "^1.0.1" + "@walletconnect/ethereum-provider" "^1.8.0" + "@walletconnect/universal-provider" "^2.3.2" + "@web3modal/standalone" "^2.0.0" + abitype "^0.3.0" + eventemitter3 "^4.0.7" + +"@wagmi/core@0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.9.2.tgz#36b699ac974c3a216124c8544b313df18bffbae1" + integrity sha512-2WMuLtvtj484PlRlqKIiXOYneBLBn2pFES/7ku/9OboH1a3WkaISo03vPmNlh1bHIxJBtCLF5oJRRVbXeg90DA== dependencies: + "@wagmi/chains" "0.2.4" + "@wagmi/connectors" "0.2.2" + abitype "^0.3.0" eventemitter3 "^4.0.7" - zustand "^4.0.0" + zustand "^4.3.1" "@walletconnect/browser-utils@^1.8.0": version "1.8.0" @@ -4707,6 +4971,28 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" +"@walletconnect/core@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.3.2.tgz#0a726de894834e882d0561a245c9a2077fc5c4a8" + integrity sha512-ZqdTVFe/lsaLIizYlW2C3LI1Q6m1269vjrGuYZT0HL/G2y9IKqBoUo9x11Omw56/evZNSpttZgL4oY6G+E7XrQ== + dependencies: + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/jsonrpc-ws-connection" "^1.0.6" + "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/relay-api" "^1.0.7" + "@walletconnect/relay-auth" "^1.0.4" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.3.2" + "@walletconnect/utils" "2.3.2" + events "^3.3.0" + lodash.isequal "4.5.0" + pino "7.11.0" + uint8arrays "3.1.0" + "@walletconnect/core@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" @@ -4744,7 +5030,7 @@ dependencies: tslib "1.14.1" -"@walletconnect/ethereum-provider@^1.7.8": +"@walletconnect/ethereum-provider@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-1.8.0.tgz#ed1dbf9cecc3b818758a060d2f9017c50bde1d32" integrity sha512-Nq9m+oo5P0F+njsROHw9KMWdoc/8iGHYzQdkjJN/1C7DtsqFRg5k5a3hd9rzCLpbPsOC1q8Z5lRs6JQgDvPm6Q== @@ -4758,6 +5044,26 @@ eip1193-provider "1.0.1" eventemitter3 "4.0.7" +"@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.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.0.tgz#1e87dd234cb72b0587b84f95c4f942f2b4bd0c79" + integrity sha512-0vbzTa/ARrpmMmOD+bQMxPvFYKtOLQZObgZakrYr0aODiMOO71CmPVNV2eAqXnw9rMmcP+z91OybLeIFlwTjjA== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/time" "^1.0.2" + chai "^4.3.7" + mocha "^10.2.0" + ts-node "^10.9.1" + tslib "1.14.1" + "@walletconnect/iso-crypto@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" @@ -4767,7 +5073,7 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" -"@walletconnect/jsonrpc-http-connection@^1.0.2": +"@walletconnect/jsonrpc-http-connection@^1.0.2", "@walletconnect/jsonrpc-http-connection@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.4.tgz#aeb0f7eae6565dd031f01d650ee73d358d760ee2" integrity sha512-ji79pspdBhmIbTwve383tMaDu5Le9plW+oj5GE2aqzxIl3ib8JvRBZRn5lGEBGqVCvqB3MBJL7gBlEwpyRtoxQ== @@ -4777,7 +5083,7 @@ cross-fetch "^3.1.4" tslib "1.14.1" -"@walletconnect/jsonrpc-provider@^1.0.5": +"@walletconnect/jsonrpc-provider@^1.0.5", "@walletconnect/jsonrpc-provider@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.6.tgz#e91321ef523f1904e6634e7866a0f3c6f056d2cd" integrity sha512-f5vQxr53vUVQ51/9mRLb1OiNciT/546XZ68Byn9OYnDBGeGJXK2kQWDHp8sPWZbN5x0p7B6asdCWMVFJ6danlw== @@ -4803,6 +5109,33 @@ "@walletconnect/jsonrpc-types" "^1.0.2" tslib "1.14.1" +"@walletconnect/jsonrpc-ws-connection@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.6.tgz#8ef6747ddf9347f4b61c136d06fcdae6c7efad39" + integrity sha512-WFu8uTXbIDgxFfyax9uNcqFYtexUq/OdCA3SBsOqIipsnJFbjXK8OaR8WCoec4tkJbDRQO9mrr1KpA0ZlIcnCQ== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/safe-json" "^1.0.1" + events "^3.3.0" + tslib "1.14.1" + 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== + dependencies: + safe-json-utils "^1.1.1" + tslib "1.14.1" + +"@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/mobile-registry@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5" @@ -4830,6 +5163,26 @@ randombytes "^2.1.0" tslib "1.14.1" +"@walletconnect/relay-api@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.7.tgz#e7aed03cbaff99ecdf2c8d32280c0b5d673bb419" + integrity sha512-Mf/Ql7Z0waZzAuondHS9bbUi12Kyvl95ihxVDM7mPO8o7Ke7S1ffpujCUhXbSacSKcw9aV2+7bKADlsBjQLR5Q== + 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.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" @@ -4842,6 +5195,23 @@ dependencies: tslib "1.14.1" +"@walletconnect/sign-client@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.3.2.tgz#e1d6597aaeacd1e2e0f0f1659d5b2f69b680ea4c" + integrity sha512-j40KzTVjxBYSMbU8fvqua38aWt+uW9XTYvIIQ+uxoXhhq18cIZe84nA+bcdtkUakua3V5XjlRsqJI7vMNHajwQ== + dependencies: + "@walletconnect/core" "2.3.2" + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.3.2" + "@walletconnect/utils" "2.3.2" + events "^3.3.0" + pino "7.11.0" + "@walletconnect/signer-connection@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz#6cdf490df770e504cc1a550bdb5bac7696b130bc" @@ -4863,11 +5233,68 @@ "@walletconnect/utils" "^1.8.0" ws "7.5.3" +"@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.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.3.2.tgz#fcced7a2b7a75f67a652ecfc9047e36b787b414c" + integrity sha512-j4KL1P46omZPr5DNUrzE8l+MMFNfQZ5UYQ6G7xoRfKxZThGA88MPY/SwOu32NOiWYoUSCnfQA1f/B6Z1ie0v/g== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + "@walletconnect/types@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== +"@walletconnect/universal-provider@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.3.2.tgz#ea85c55cdda4e8896ed11ec35816838aee3bf14f" + integrity sha512-x/tA3U16prAuRi208dRaGN9vop2r/u+entWFcwUX2iagG0Bth+2KPIk8lpz85jUOg8t4n2lF6NVJ8bpDmZkElw== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.4" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/sign-client" "2.3.2" + "@walletconnect/types" "2.3.2" + "@walletconnect/utils" "2.3.2" + eip1193-provider "1.0.1" + events "^3.3.0" + pino "7.11.0" + +"@walletconnect/utils@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.3.2.tgz#a1faf622515dd3d558766fe76020d0d88d5bbc36" + integrity sha512-eyYzJelFD7OhWJIylAiZ4/pH6zLLJDN5QvidkbgXKK3fIIRLqCwAQIK38PqOyC+I5/Hi8UQHY0iU2yQJAsFbdA== + 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/jsonrpc-utils" "^1.0.4" + "@walletconnect/relay-api" "^1.0.7" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.3.2" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" + query-string "7.1.1" + uint8arrays "3.1.0" + "@walletconnect/utils@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" @@ -4886,7 +5313,7 @@ resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== -"@walletconnect/window-getters@^1.0.0": +"@walletconnect/window-getters@^1.0.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== @@ -4900,6 +5327,14 @@ dependencies: "@walletconnect/window-getters" "^1.0.0" +"@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" + "@web-std/blob@^3.0.1", "@web-std/blob@^3.0.3": version "3.0.4" resolved "https://registry.yarnpkg.com/@web-std/blob/-/blob-3.0.4.tgz#dd67a685547331915428d69e723c7da2015c3fc5" @@ -4944,6 +5379,45 @@ resolved "https://registry.yarnpkg.com/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz#6b69dc2a32a5b207ba43e556c25cc136a56659c4" integrity sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw== +"@web3modal/core@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-2.0.0.tgz#151bc60702fb5e8367a06a97a8fe39a81226409d" + integrity sha512-ZoM3U5DndBAVnnkBJ3hIkOKO81VtWfyda458D1vdN/T6q8IoWzWZR5QHZNc1qNKqm7ecXfEpsPj2YMS3bgOY2A== + dependencies: + buffer "6.0.3" + valtio "1.9.0" + +"@web3modal/ethereum@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@web3modal/ethereum/-/ethereum-2.0.0.tgz#d8e14c1857447c673567519aac5487b88cfc384d" + integrity sha512-Zz+/3Q/1ovZXXKVGbWzdtoZt8X6YD42km4J8L3tPNkkBJZlj0I/xERLeeJg/w4BDcbDmOQ4qqT1TXZ37ol1D0w== + +"@web3modal/react@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@web3modal/react/-/react-2.0.0.tgz#5100eda2ad80ae875ab41c1ebdda80e02a0d2991" + integrity sha512-tpzfywUmibfr7lquLBSmD8AFIHoqqpeOHlYWIM8gIk801IkbnFa8h6chghCwEtL8xq/ihNrV0v/+5+gj+wLs8Q== + dependencies: + "@web3modal/core" "2.0.0" + "@web3modal/ui" "2.0.0" + +"@web3modal/standalone@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@web3modal/standalone/-/standalone-2.0.0.tgz#359aa42e31020bf3d608d8668329ab4e2fdbcaf6" + integrity sha512-/YcAWgnVtTFeVFrHlhYemS1NU9ds9nbMuV1njjbS9+yDirOXfUenPORi6X1AGs5pUrDnR4IwDgQzdd5wqg6kZw== + dependencies: + "@web3modal/core" "2.0.0" + "@web3modal/ui" "2.0.0" + +"@web3modal/ui@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-2.0.0.tgz#a06127bc09bb0da2a914f51f91bd54b636b4ff88" + integrity sha512-kNSXD/YI+Sl92hxMzsjkRWUj8H+CyV89WDS0Ywy2YV9HxVzC6MzntnsYZ4rti5//IzeDlxPhTKKaiBWE68Gwzw== + dependencies: + "@web3modal/core" "2.0.0" + lit "2.6.1" + motion "10.15.5" + qrcode "1.5.1" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -5065,20 +5539,30 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@whatwg-node/fetch@0.6.2", "@whatwg-node/fetch@^0.6.0": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.2.tgz#fe4837505f6fc91bcfd6e12cdcec66f4aecfeecc" - integrity sha512-fCUycF1W+bI6XzwJFnbdDuxIldfKM3w8+AzVCLGlucm0D+AQ8ZMm2j84hdcIhfV6ZdE4Y1HFVrHosAxdDZ+nPw== +"@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/fetch@0.6.5", "@whatwg-node/fetch@^0.6.0": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.5.tgz#ff96288e9a6295faafac79f13e3b3fd831cad11f" + integrity sha512-3XQ78RAMX8Az0LlUqMoGM3jbT+FE0S+IKr4yiTiqzQ5S/pNxD52K/kFLcLQiEbL+3rkk/glCHqjxF1QI5155Ig== dependencies: "@peculiar/webcrypto" "^1.4.0" - abort-controller "^3.0.0" + "@whatwg-node/node-fetch" "0.0.1" busboy "^1.6.0" - form-data-encoder "^1.7.1" - formdata-node "^4.3.1" - node-fetch "^2.6.7" - undici "^5.12.0" urlpattern-polyfill "^6.0.2" - web-streams-polyfill "^3.2.0" + web-streams-polyfill "^3.2.1" + +"@whatwg-node/node-fetch@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.0.1.tgz#ffad65f3f8b73d6d2c2e8b179d557a5863b0db13" + integrity sha512-dMbh604yf2jl37IzvYGA6z3heQg3dMzlqoNsiNToe46SVmKusfJXGf4KYIuiJTzh9mEEu/uVF//QakUfsLJpwA== + dependencies: + "@whatwg-node/events" "0.0.2" + busboy "1.6.0" + tslib "^2.3.1" "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -5090,10 +5574,10 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@zeit/schemas@2.21.0": - version "2.21.0" - resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.21.0.tgz#cd242c6551ffb51830049d68d9743ab65b45b820" - integrity sha512-/J4WBTpWtQ4itN1rb3ao8LfClmVcmz2pO6oYb7Qd4h7VSqUhIbJIvrykz9Ew1WMg6eFWsKdsMHc5uPbFxqlCpg== +"@zeit/schemas@2.29.0": + version "2.29.0" + resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.29.0.tgz#a59ae6ebfdf4ddc66a876872dd736baa58b6696c" + integrity sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA== "@zxing/text-encoding@0.9.0": version "0.9.0" @@ -5131,6 +5615,11 @@ abbrev@1.0.x: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== +abitype@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.3.0.tgz#75150e337d88cc0b2423ed0d3fc36935f139d04c" + integrity sha512-0YokyAV4hKMcy97Pl+6QgZBlBdZJN2llslOs7kiFY+cu7kMlVXDBpxMExfv0krzBCQt2t7hNovpQ3y/zvEm18A== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -5220,9 +5709,9 @@ acorn@^7.0.0, acorn@^7.1.1: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== address@^1.0.1, address@^1.1.2: version "1.2.2" @@ -5763,9 +6252,9 @@ avvio@^8.2.0: fastq "^1.6.1" aws-sdk@^2.1255.0: - version "2.1298.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1298.0.tgz#cc11aaaf18c7b9b6c37bc060e0646d7abdc8f0af" - integrity sha512-UMaQe1Rohqguwl4V8e47SHrerboP5QpD7bx6mVZIoV2+AQ5xf8CyXjYXB95u5yvPyjIvpoRxiPKKOtnHL77q4A== + version "2.1306.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1306.0.tgz#33a5f8d732c2bfb8bb0d8dd946163814f294242d" + integrity sha512-t3M04Nx+uHVYcRGZXoI0Dr24I722oslwkwGT/gFPR2+Aub5dQ88+BetCPBvg24sZDg2RNWNxepYk5YHuKV5Hrg== dependencies: buffer "4.9.2" events "1.1.1" @@ -5789,9 +6278,9 @@ aws4@^1.8.0: integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axe-core@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.2.tgz#6e566ab2a3d29e415f5115bc0fd2597a5eb3e5e3" - integrity sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg== + version "4.6.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" + integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== axios@^0.21.0, axios@^0.21.1, axios@^0.21.2: version "0.21.4" @@ -5809,9 +6298,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.1.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.3.tgz#31a3d824c0ebf754a004b585e5f04a5f87e6c4ff" - integrity sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw== + version "1.3.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.0.tgz#4cb0d72213989dec08d4b10129e42063bcb3dc78" + integrity sha512-oCye5nHhTypzkdLIvF9SaHfr8UAquqCn1KY3j8vsrjeol8yohAdGxIpRPbF1bOLsx33HOAatdfMX1yzsj2cHwg== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -6018,15 +6507,15 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" - integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== +babel-jest@^29.3.1, babel-jest@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.1.tgz#01fa167e27470b35c2d4a1b841d9586b1764da19" + integrity sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg== dependencies: - "@jest/transform" "^29.3.1" + "@jest/transform" "^29.4.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.2.0" + babel-preset-jest "^29.4.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -6076,10 +6565,10 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" - integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== +babel-plugin-jest-hoist@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz#3fd3dfcedf645932df6d0c9fc3d9a704dd860248" + integrity sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -6539,12 +7028,12 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" - integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== +babel-preset-jest@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz#c2b03c548b02dea0a18ae21d5759c136f9251ee4" + integrity sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA== dependencies: - babel-plugin-jest-hoist "^29.2.0" + babel-plugin-jest-hoist "^29.4.0" babel-preset-current-node-syntax "^1.0.0" babel-preset-react-app@^10.0.1: @@ -7063,14 +7552,14 @@ browserify-sign@^4.0.0: safe-buffer "^5.2.0" browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" bs-logger@0.x: version "0.2.6" @@ -7162,6 +7651,14 @@ buffer@6.0.1: base64-js "^1.3.1" ieee754 "^1.2.1" +buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3, 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@^5.0.5, buffer@^5.2.1, buffer@^5.4.2, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -7170,14 +7667,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, 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" @@ -7195,7 +7684,7 @@ builtin-status-codes@^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== -busboy@^1.6.0: +busboy@1.6.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== @@ -7300,10 +7789,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: - version "1.0.30001446" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz#6d4ba828ab19f49f9bcd14a8430d30feebf1e0c5" - integrity sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001449: + version "1.0.30001450" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz#022225b91200589196b814b51b1bbe45144cf74f" + integrity sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew== carbites@^1.0.6: version "1.0.6" @@ -7967,9 +8456,9 @@ content-hash@^2.5.2: multihashes "^0.4.15" content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== convert-hrtime@^3.0.0: version "3.0.0" @@ -8169,7 +8658,7 @@ cross-var@^1.1.0: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== -crypto-browserify@3.12.0, crypto-browserify@^3.12.0: +crypto-browserify@^3.12.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== @@ -8322,9 +8811,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.3.0.tgz#b1d4580a21da34f792047ad0556fbb4b53617ead" - integrity sha512-9YymIstaCsXo9qQSxrXzOv27bXJmb/q/LkbORepKzKjHE0TS6Pn3ewoazoBDGvODUvPO0pMG2O4YzVGmVGYK5A== + version "7.4.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.4.1.tgz#61d55c0173126689922a219e15e131e4b5caf422" + integrity sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ== cssesc@^3.0.0: version "3.0.0" @@ -8686,9 +9175,9 @@ deep-object-diff@^1.1.0: integrity sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA== deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + version "4.3.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" + integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== default-gateway@^6.0.3: version "6.0.3" @@ -8780,6 +9269,11 @@ detect-browser@5.2.0: resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== +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" @@ -9108,6 +9602,16 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +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" @@ -9167,7 +9671,7 @@ electron-fetch@^1.7.2: dependencies: encoding "^0.1.13" -electron-to-chromium@^1.4.251: +electron-to-chromium@^1.4.284: version "1.4.284" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== @@ -9801,9 +10305,9 @@ eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.6.0: integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.10: - version "7.32.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200" - integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www== + version "7.32.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -9822,11 +10326,11 @@ eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.10: string.prototype.matchall "^4.0.8" eslint-plugin-testing-library@^5.0.1: - version "5.9.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.9.1.tgz#12e4bd34c48683ee98af4df2e3318ec9f51dcf8a" - integrity sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ== + version "5.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.0.tgz#7fc5fec639ae7f84f434562560cf26cfc0ab329d" + integrity sha512-aTOsCAEI9trrX3TLOnsskfhe57DmsjP/yMKLPqg4ftdRvfR4qut2PGWUa8TwP7whZbwMzJjh98tgAPcE8vdHow== dependencies: - "@typescript-eslint/utils" "^5.13.0" + "@typescript-eslint/utils" "^5.43.0" eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" @@ -9873,9 +10377,9 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.27.0, eslint@^8.3.0: - version "8.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861" - integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ== + version "8.33.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7" + integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== dependencies: "@eslint/eslintrc" "^1.4.1" "@humanwhocodes/config-array" "^0.11.8" @@ -10187,7 +10691,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -10364,16 +10868,16 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -expect@^29.0.0, expect@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== +expect@^29.0.0, expect@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.1.tgz#58cfeea9cbf479b64ed081fd1e074ac8beb5a1fe" + integrity sha512-OKrGESHOaMxK3b6zxIq9SOW8kEXztKff/Dvg88j4xIJxur1hspEbedVkR3GpHe5LO+WB2Qw7OWN0RMTdp6as5A== dependencies: - "@jest/expect-utils" "^29.3.1" + "@jest/expect-utils" "^29.4.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" explain-error@^1.0.4: version "1.0.4" @@ -10524,7 +11028,7 @@ fast-querystring@^1.0.0: dependencies: fast-decode-uri-component "^1.0.1" -fast-redact@^3.1.1: +fast-redact@^3.0.0, fast-redact@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== @@ -10815,11 +11319,6 @@ form-data-encoder@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@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" - integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== - form-data@^2.2.0: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" @@ -10856,14 +11355,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -formdata-node@^4.3.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" - integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== - dependencies: - node-domexception "1.0.0" - web-streams-polyfill "4.0.0-beta.3" - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -11253,9 +11744,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.19.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" @@ -11318,9 +11809,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -11735,6 +12226,11 @@ help-me@^4.0.1: glob "^8.0.0" readable-stream "^3.6.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== + hi-base32@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" @@ -11860,9 +12356,9 @@ http-basic@^8.1.1: parse-cache-control "^1.0.1" http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + 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-deceiver@^1.2.7: version "1.2.7" @@ -12086,9 +12582,9 @@ immediate@~3.0.5: integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== immer@^9.0.16, immer@^9.0.7: - version "9.0.18" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.18.tgz#d2faee58fd0e34f017f329b98cdab37826fa31b8" - integrity sha512-eAPNpsj7Ax1q6Y/3lm2PmlwRcFzpON7HSNQ3ru5WQH1/PSpnyed/HpNOELl2CxLKoj4r+bAHgdyKqW5gc2Se1A== + version "9.0.19" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.19.tgz#67fb97310555690b5f9cd8380d38fc0aabb6b38b" + integrity sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ== immutable@3.8.2: version "3.8.2" @@ -13073,10 +13569,10 @@ jest-changed-files@^27.5.1: execa "^5.0.0" throat "^6.0.1" -jest-changed-files@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" - integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== +jest-changed-files@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.0.tgz#ac2498bcd394228f7eddcadcf928b3583bf2779d" + integrity sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w== dependencies: execa "^5.0.0" p-limit "^3.1.0" @@ -13106,28 +13602,28 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-circus@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" - integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== +jest-circus@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.1.tgz#ff1b63eb04c3b111cefea9489e8dbadd23ce49bd" + integrity sha512-v02NuL5crMNY4CGPHBEflLzl4v91NFb85a+dH9a1pUNx6Xjggrd8l9pPy4LZ1VYNRXlb+f65+7O/MSIbLir6pA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/expect" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-each "^29.4.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-runtime "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" p-limit "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" stack-utils "^2.0.3" @@ -13149,21 +13645,21 @@ jest-cli@^27.5.1: prompts "^2.0.1" yargs "^16.2.0" -jest-cli@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" - integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== +jest-cli@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.1.tgz#7abef96944f300feb9b76f68b1eb2d68774fe553" + integrity sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ== dependencies: - "@jest/core" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-config "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" prompts "^2.0.1" yargs "^17.3.1" @@ -13197,31 +13693,31 @@ jest-config@^27.5.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-config@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" - integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== +jest-config@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.1.tgz#e62670c6c980ec21d75941806ec4d0c0c6402728" + integrity sha512-g7p3q4NuXiM4hrS4XFATTkd+2z0Ml2RhFmFPM8c3WyKwVDNszbl4E7cV7WIx1YZeqqCtqbtTtZhGZWJlJqngzg== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.1" - "@jest/types" "^29.3.1" - babel-jest "^29.3.1" + "@jest/test-sequencer" "^29.4.1" + "@jest/types" "^29.4.1" + babel-jest "^29.4.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.3.1" - jest-environment-node "^29.3.1" + jest-circus "^29.4.1" + jest-environment-node "^29.4.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-runner "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-resolve "^29.4.1" + jest-runner "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -13235,15 +13731,15 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== +jest-diff@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.1.tgz#9a6dc715037e1fa7a8a44554e7d272088c4029bd" + integrity sha512-uazdl2g331iY56CEyfbNA0Ut7Mn2ulAG5vUaEHXycf1L6IPyuImIxSz4F0VYBKi7LYIuxOwTZzK3wh5jHzASMw== dependencies: chalk "^4.0.0" diff-sequences "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" jest-docblock@^27.5.1: version "27.5.1" @@ -13270,16 +13766,16 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" -jest-each@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" - integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== +jest-each@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.1.tgz#05ce9979e7486dbd0f5d41895f49ccfdd0afce01" + integrity sha512-QlYFiX3llJMWUV0BtWht/esGEz9w+0i7BHwODKCze7YzZzizgExB9MOfiivF/vVT0GSQ8wXLhvHXh3x2fVD4QQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.3.1" - pretty-format "^29.3.1" + jest-util "^29.4.1" + pretty-format "^29.4.1" jest-environment-jsdom@^27.5.1: version "27.5.1" @@ -13295,17 +13791,17 @@ jest-environment-jsdom@^27.5.1: jsdom "^16.6.0" jest-environment-jsdom@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639" - integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA== + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.1.tgz#34d491244ddd6fe3d666da603b576bd0ae6aef78" + integrity sha512-+KfYmRTl5CBHQst9hIz77TiiriHYvuWoLjMT855gx2AMxhHxpk1vtKvag1DQfyWCPVTWV/AG7SIqVh5WI1O/uw== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/fake-timers" "^29.4.1" + "@jest/types" "^29.4.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.4.1" + jest-util "^29.4.1" jsdom "^20.0.0" jest-environment-node@^27.5.1: @@ -13320,17 +13816,17 @@ jest-environment-node@^27.5.1: jest-mock "^27.5.1" jest-util "^27.5.1" -jest-environment-node@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" - integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== +jest-environment-node@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.1.tgz#22550b7d0f8f0b16228639c9f88ca04bbf3c1974" + integrity sha512-x/H2kdVgxSkxWAIlIh9MfMuBa0hZySmfsC5lCsWmWr6tZySP44ediRKDUiNggX/eHLH7Cd5ZN10Rw+XF5tXsqg== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/fake-timers" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.4.1" + jest-util "^29.4.1" jest-get-type@^27.5.1: version "27.5.1" @@ -13362,20 +13858,20 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== +jest-haste-map@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.1.tgz#b0579dc82d94b40ed9041af56ad25c2f80bedaeb" + integrity sha512-imTjcgfVVTvg02khXL11NNLTx9ZaofbAWhilrMg/G8dIkp+HYCswhxf0xxJwBkfhWb3e8dwbjuWburvxmcr58w== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-util "^29.4.1" + jest-worker "^29.4.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -13412,13 +13908,13 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-leak-detector@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" - integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== +jest-leak-detector@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.1.tgz#632186c546e084da2b490b7496fee1a1c9929637" + integrity sha512-akpZv7TPyGMnH2RimOCgy+hPmWZf55EyFUvymQ4LMsQP8xSPlZumCPtXGoDhFNhUE2039RApZkTQDKU79p/FiQ== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: version "27.5.1" @@ -13430,15 +13926,15 @@ jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== +jest-matcher-utils@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.1.tgz#73d834e305909c3b43285fbc76f78bf0ad7e1954" + integrity sha512-k5h0u8V4nAEy6lSACepxL/rw78FLDkBnXhZVgFneVpnJONhb2DhZj/Gv4eNe+1XqQ5IhgUcqj745UwH0HJmMnA== dependencies: chalk "^4.0.0" - jest-diff "^29.3.1" + jest-diff "^29.4.1" jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" jest-message-util@^27.5.1: version "27.5.1" @@ -13470,18 +13966,18 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== +jest-message-util@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.1.tgz#522623aa1df9a36ebfdffb06495c7d9d19e8a845" + integrity sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" stack-utils "^2.0.3" @@ -13493,14 +13989,14 @@ jest-mock@^27.5.1: "@jest/types" "^27.5.1" "@types/node" "*" -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== +jest-mock@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.1.tgz#a218a2abf45c99c501d4665207748a6b9e29afbd" + integrity sha512-MwA4hQ7zBOcgVCVnsM8TzaFLVUD/pFWTfbkY953Y81L5ret3GFRZtmPmRFAjKQSdCKoJvvqOu6Bvfpqlwwb0dQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.4.1" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -13531,13 +14027,13 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve-dependencies@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" - integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== +jest-resolve-dependencies@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.1.tgz#02420a2e055da105e5fca8218c471d8b9553c904" + integrity sha512-Y3QG3M1ncAMxfjbYgtqNXC5B595zmB6e//p/qpA/58JkQXu/IpLDoLeOa8YoYfsSglBKQQzNUqtfGJJT/qLmJg== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.3.1" + jest-snapshot "^29.4.1" jest-resolve@^27.4.2, jest-resolve@^27.5.1: version "27.5.1" @@ -13555,19 +14051,19 @@ jest-resolve@^27.4.2, jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-resolve@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" - integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== +jest-resolve@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.1.tgz#4c6bf71a07b8f0b79c5fdf4f2a2cf47317694c5e" + integrity sha512-j/ZFNV2lm9IJ2wmlq1uYK0Y/1PiyDq9g4HEGsNTNr3viRbJdV+8Lf1SXIiLZXFvyiisu0qUyIXGBnw+OKWkJwQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" resolve "^1.20.0" - resolve.exports "^1.1.0" + resolve.exports "^2.0.0" slash "^3.0.0" jest-runner@^27.5.1: @@ -13597,30 +14093,30 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" -jest-runner@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" - integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== - dependencies: - "@jest/console" "^29.3.1" - "@jest/environment" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" +jest-runner@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.1.tgz#57460d9ebb0eea2e27eeddca1816cf8537469661" + integrity sha512-8d6XXXi7GtHmsHrnaqBKWxjKb166Eyj/ksSaUYdcBK09VbjPwIgWov1VwSmtupCIz8q1Xv4Qkzt/BTo3ZqiCeg== + dependencies: + "@jest/console" "^29.4.1" + "@jest/environment" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.3.1" - jest-haste-map "^29.3.1" - jest-leak-detector "^29.3.1" - jest-message-util "^29.3.1" - jest-resolve "^29.3.1" - jest-runtime "^29.3.1" - jest-util "^29.3.1" - jest-watcher "^29.3.1" - jest-worker "^29.3.1" + jest-environment-node "^29.4.1" + jest-haste-map "^29.4.1" + jest-leak-detector "^29.4.1" + jest-message-util "^29.4.1" + jest-resolve "^29.4.1" + jest-runtime "^29.4.1" + jest-util "^29.4.1" + jest-watcher "^29.4.1" + jest-worker "^29.4.1" p-limit "^3.1.0" source-map-support "0.5.13" @@ -13652,31 +14148,32 @@ jest-runtime@^27.5.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-runtime@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" - integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== +jest-runtime@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.1.tgz#9a50f9c69d3a391690897c01b0bfa8dc5dd45808" + integrity sha512-UXTMU9uKu2GjYwTtoAw5rn4STxWw/nadOfW7v1sx6LaJYa3V/iymdCLQM6xy3+7C6mY8GfX22vKpgxY171UIoA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/globals" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/fake-timers" "^29.4.1" + "@jest/globals" "^29.4.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" + jest-haste-map "^29.4.1" + jest-message-util "^29.4.1" + jest-mock "^29.4.1" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-resolve "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" + semver "^7.3.5" slash "^3.0.0" strip-bom "^4.0.0" @@ -13716,10 +14213,10 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== +jest-snapshot@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.1.tgz#5692210b3690c94f19317913d4082b123bd83dd9" + integrity sha512-l4iV8EjGgQWVz3ee/LR9sULDk2pCkqb71bjvlqn+qp90lFwpnulHj4ZBT8nm1hA1C5wowXLc7MGnw321u0tsYA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -13727,23 +14224,23 @@ jest-snapshot@^29.3.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/expect-utils" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.3.1" + expect "^29.4.1" graceful-fs "^4.2.9" - jest-diff "^29.3.1" + jest-diff "^29.4.1" jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-haste-map "^29.4.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" natural-compare "^1.4.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" semver "^7.3.5" jest-util@^27.5.1: @@ -13770,12 +14267,12 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.0.0, jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== +jest-util@^29.0.0, jest-util@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.1.tgz#2eeed98ff4563b441b5a656ed1a786e3abc3e4c4" + integrity sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -13794,17 +14291,17 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-validate@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" - integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== +jest-validate@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.1.tgz#0d5174510415083ec329d4f981bf6779211f17e9" + integrity sha512-qNZXcZQdIQx4SfUB/atWnI4/I2HUvhz8ajOSYUu40CSmf9U5emil8EDHgE7M+3j9/pavtk3knlZBDsgFvv/SWw== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" jest-watch-typeahead@^1.0.0: version "1.1.0" @@ -13846,18 +14343,18 @@ jest-watcher@^28.0.0: jest-util "^28.1.3" string-length "^4.0.1" -jest-watcher@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" - integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== +jest-watcher@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.1.tgz#6e3e2486918bd778849d4d6e67fd77b814f3e6ed" + integrity sha512-vFOzflGFs27nU6h8dpnVRER3O2rFtL+VMEwnG0H3KLHcllLsU8y9DchSh0AL/Rg5nN1/wSiQ+P4ByMGpuybaVw== dependencies: - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.3.1" + jest-util "^29.4.1" string-length "^4.0.1" jest-worker@^26.2.1: @@ -13887,13 +14384,13 @@ jest-worker@^28.0.2: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== +jest-worker@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.1.tgz#7cb4a99a38975679600305650f86f4807460aab1" + integrity sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ== dependencies: "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.4.1" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -13907,14 +14404,14 @@ jest@^27.4.3: jest-cli "^27.5.1" jest@^29.2.2, jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" - integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.1.tgz#bb34baca8e05901b49c02c62f1183a6182ea1785" + integrity sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg== dependencies: - "@jest/core" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.1" + "@jest/types" "^29.4.1" import-local "^3.0.2" - jest-cli "^29.3.1" + jest-cli "^29.4.1" jmespath@0.16.0: version "0.16.0" @@ -14533,6 +15030,30 @@ listr2@^5.0.5: through "^2.3.8" wrap-ansi "^7.0.0" +lit-element@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.2.2.tgz#d148ab6bf4c53a33f707a5168e087725499e5f2b" + integrity sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ== + dependencies: + "@lit/reactive-element" "^1.3.0" + lit-html "^2.2.0" + +lit-html@^2.2.0, lit-html@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.6.1.tgz#eb29f0b0c2ab54ea77379db11fc011b0c71f1cda" + integrity sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw== + dependencies: + "@types/trusted-types" "^2.0.2" + +lit@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.6.1.tgz#5951a2098b9bde5b328c73b55c15fdc0eefd96d7" + integrity sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw== + dependencies: + "@lit/reactive-element" "^1.6.0" + lit-element "^3.2.0" + lit-html "^2.6.0" + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -14597,6 +15118,11 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +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.kebabcase@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" @@ -14692,7 +15218,7 @@ lodash.upperfirst@^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.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.16, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -15169,11 +15695,9 @@ minipass@^3.0.0: yallist "^4.0.0" minipass@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" - integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== - dependencies: - yallist "^4.0.0" + version "4.0.1" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.1.tgz#2b9408c6e81bb8b338d600fb3685e375a370a057" + integrity sha512-V9esFpNbK0arbN3fm2sxDKqMYgIp7XtVdE4Esj+PE4Qaaxdg1wIw48ITQIOn1sc8xXSmUviVL3cyjMqPlrVkiA== minizlib@^1.3.3: version "1.3.3" @@ -15275,7 +15799,7 @@ mocha@7.1.2: yargs-parser "13.1.2" yargs-unparser "1.6.0" -mocha@^10.0.0: +mocha@^10.0.0, mocha@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== @@ -15342,6 +15866,18 @@ module-error@^1.0.1, module-error@^1.0.2: resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== +motion@10.15.5: + version "10.15.5" + resolved "https://registry.yarnpkg.com/motion/-/motion-10.15.5.tgz#d336ddbdd37bc28bb99fbb243fe309df6c685ad6" + integrity sha512-ejP6KioN4pigTGxL93APzOnvtLklParL59UQB2T3HWXQBxFcIp5/7YXFmkgiA6pNKKzjvnLhnonRBN5iSFMnNw== + dependencies: + "@motionone/animation" "^10.15.1" + "@motionone/dom" "^10.15.5" + "@motionone/svelte" "^10.15.5" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + "@motionone/vue" "^10.15.5" + move-file@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/move-file/-/move-file-2.1.0.tgz#3bec9d34fbe4832df6865f112cda4492b56e8507" @@ -15663,11 +16199,6 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -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-emoji@^1.10.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -15683,10 +16214,10 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-fetch@2, node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@^2.6.8: - version "2.6.8" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" - integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg== +node-fetch@2, node-fetch@^2.3.0, node-fetch@^2.6.1, 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== dependencies: whatwg-url "^5.0.0" @@ -15722,10 +16253,10 @@ node-int64@^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.6: - version "2.0.8" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" - integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== +node-releases@^2.0.8: + version "2.0.9" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.9.tgz#fe66405285382b0c4ac6bcfbfbe7e8a510650b4d" + integrity sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA== nodeify@^1.0.1: version "1.0.1" @@ -15955,6 +16486,11 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +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.0" resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" @@ -16437,6 +16973,14 @@ pino-abstract-transport@^1.0.0, pino-abstract-transport@v1.0.0: readable-stream "^4.0.0" split2 "^4.0.0" +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-pretty@^9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.1.1.tgz#e7d64c1db98266ca428ab56567b844ba780cd0e1" @@ -16457,11 +17001,33 @@ pino-pretty@^9.1.1: sonic-boom "^3.0.0" strip-json-comments "^3.1.1" +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.1.0" resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz#307490fd426eefc95e06067e85d8558603e8e844" integrity sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g== +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.8.0" resolved "https://registry.yarnpkg.com/pino/-/pino-8.8.0.tgz#1f0d6695a224aa06afc7ad60f2ccc4772d3b9233" @@ -17162,12 +17728,12 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== +pretty-format@^29.0.0, pretty-format@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.1.tgz#0da99b532559097b8254298da7c75a0785b1751c" + integrity sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -17188,6 +17754,11 @@ 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-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.1.0" resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.1.0.tgz#1e60e3bfe8183033bbc1e702c2da74f099422d1a" @@ -17290,6 +17861,11 @@ proxy-addr@^2.0.7, proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-compare@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.4.0.tgz#90f6abffe734ef86d8e37428c5026268606a9c1b" + integrity sha512-FD8KmQUQD6Mfpd0hywCOzcon/dbkFP8XBd9F1ycbKtvVsfv6TsFUKJ2eC0Iz2y+KzlkdT1Z8SY6ZSgm07zOyqg== + 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" @@ -17410,6 +17986,16 @@ qrcode@1.5.0: pngjs "^5.0.0" yargs "^15.3.1" +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== + dependencies: + dijkstrajs "^1.0.1" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" + qs@6.11.0, qs@^6.10.3, qs@^6.4.0, qs@^6.5.2, qs@^6.7.0, qs@^6.9.4: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -17431,6 +18017,16 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +query-string@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" + integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== + dependencies: + decode-uri-component "^0.2.0" + 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" @@ -17703,19 +18299,19 @@ react-resize-detector@^7.1.2: lodash "^4.17.21" react-router-dom@^6.4.3: - version "6.7.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.7.0.tgz#0249f4ca4eb704562b8b0ff29caeb928c3a6ed38" - integrity sha512-jQtXUJyhso3kFw430+0SPCbmCmY1/kJv8iRffGHwHy3CkoomGxeYzMkmeSPYo6Egzh3FKJZRAL22yg5p2tXtfg== + version "6.8.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.8.0.tgz#5e5f4c4b15fdec3965d2ad9d7460d0c61971e744" + integrity sha512-hQouduSTywGJndE86CXJ2h7YEy4HYC6C/uh19etM+79FfQ6cFFFHnHyDlzO4Pq0eBUI96E4qVE5yUjA00yJZGQ== dependencies: - "@remix-run/router" "1.3.0" - react-router "6.7.0" + "@remix-run/router" "1.3.1" + react-router "6.8.0" -react-router@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.7.0.tgz#db262684c13b5c2970694084ae9e8531718a0681" - integrity sha512-KNWlG622ddq29MAM159uUsNMdbX8USruoKnwMMQcs/QWZgFUayICSn2oB7reHce1zPj6CG18kfkZIunSSRyGHg== +react-router@6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.8.0.tgz#dd61fd1ec44daa2cceaef8e6baa00f99a01a650f" + integrity sha512-760bk7y3QwabduExtudhWbd88IBbuD1YfwzpuDUAlJUJ7laIIcqhMvdhSVh1Fur1PE8cGl84L0dxhR3/gvHF7A== dependencies: - "@remix-run/router" "1.3.0" + "@remix-run/router" "1.3.1" react-scripts@5.0.1, react-scripts@^5.0.1: version "5.0.1" @@ -17953,6 +18549,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +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" @@ -18028,9 +18629,9 @@ redux-thunk@^2.4.2: integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== redux@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13" - integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA== + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== dependencies: "@babel/runtime" "^7.9.2" @@ -18320,6 +18921,11 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== +resolve.exports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" + integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== + resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -18442,9 +19048,9 @@ rollup@^2.43.1: fsevents "~2.3.2" rollup@^3.7.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.10.1.tgz#56278901ed11fc2898421e8e3e2c8155bc7b40b4" - integrity sha512-3Er+yel3bZbZX1g2kjVM+FW+RUWDxbG87fcqFM5/9HbPCTpbVp6JOLn7jlxnNlbu7s/N/uDA4EV/91E2gWnxzw== + version "3.12.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.12.1.tgz#2975b97713e4af98c15e7024b88292d7fddb3853" + integrity sha512-t9elERrz2i4UU9z7AwISj3CQcXP39cWxgRWLdf4Tm6aKm1eYrqHIgjzXBgb67GNY1sZckTFFi0oMozh3/S++Ig== optionalDependencies: fsevents "~2.3.2" @@ -18552,7 +19158,7 @@ safe-regex2@^2.0.0: dependencies: ret "~0.2.0" -safe-stable-stringify@^2.3.1: +safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: version "2.4.2" resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== @@ -18823,11 +19429,11 @@ serve-static@1.15.0: send "0.18.0" serve@^14.1.1: - version "14.1.2" - resolved "https://registry.yarnpkg.com/serve/-/serve-14.1.2.tgz#65d7a3cec5a0b876c46bb8927fabc27957c2e1e0" - integrity sha512-luwVfJwbeE7dhCKeRU0vIBpt4bXdbAfzwsWJIQ5eqrIW2e+4nLWXbSlZ0WzelSFHQq+FlueOW6dr90jEewS9zw== + version "14.2.0" + resolved "https://registry.yarnpkg.com/serve/-/serve-14.2.0.tgz#3d768e88fa13ad8644f2393599189707176e66b8" + integrity sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg== dependencies: - "@zeit/schemas" "2.21.0" + "@zeit/schemas" "2.29.0" ajv "8.11.0" arg "5.0.2" boxen "7.0.0" @@ -18926,9 +19532,9 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.7.3: - version "1.7.4" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" - integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== + version "1.8.0" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" + integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== shelljs@^0.8.3: version "0.8.5" @@ -19057,9 +19663,9 @@ solc@0.7.3: tmp "0.0.33" solidity-ast@^0.4.15: - version "0.4.40" - resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.40.tgz#182709271b4e55efb34e2da934dfaa96ee0cf40b" - integrity sha512-M8uLBT2jgFB7B0iVAC5a2l71J8vim7aEm03AZkaHbDqyrl1pE+i5PriMEw6WlwGfHp3/Ym7cn9BqvVLQgRk+Yw== + version "0.4.44" + resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.44.tgz#dd6732bd65bb1d01777fc537de99cbb3d4e0089d" + integrity sha512-Ct3ppqWS0uTWNYxM2cgruUeWYzqYmeikANsCHgGBnMjAMsqONgqnYrlpifQxNFwXOPHD3vZQLmCjaYnQ+i3eQA== solidity-comments-extractor@^0.0.7: version "0.0.7" @@ -19092,6 +19698,13 @@ solidity-coverage@^0.8.2: shelljs "^0.8.3" web3-utils "^1.3.6" +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.0.0, sonic-boom@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.1.tgz#972ceab831b5840a08a002fa95a672008bda1c38" @@ -19345,6 +19958,11 @@ stream-browserify@^3.0.0: inherits "~2.0.4" readable-stream "^3.5.0" +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.2, stream-to-it@^0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" @@ -19764,12 +20382,12 @@ sync-rpc@^1.2.1: get-port "^3.1.0" synckit@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.4.tgz#0e6b392b73fafdafcde56692e3352500261d64ec" - integrity sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw== + version "0.8.5" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" + integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== dependencies: "@pkgr/utils" "^2.3.1" - tslib "^2.4.0" + tslib "^2.5.0" table-layout@^1.0.2: version "1.0.2" @@ -19955,9 +20573,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: terser "^5.14.1" terser@^5.0.0, terser@^5.10.0, terser@^5.14.1: - version "5.16.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" - integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== + version "5.16.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.2.tgz#8f495819439e8b5c150e7530fc434a6e70ea18b2" + integrity sha512-JKuM+KvvWVqT7muHVyrwv7FVRPnmHDwF6XwoIxdbF5Witi0vu99RYpxDexpJndXt3jbZZmmWr2/mQa6HvSNdSg== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -20005,6 +20623,13 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.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.3.0" resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.3.0.tgz#4fc07fb39eff32ae7bad803cb7dd9598349fed33" @@ -20083,10 +20708,10 @@ tinybench@^2.3.1: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.3.1.tgz#14f64e6b77d7ef0b1f6ab850c7a808c6760b414d" integrity sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA== -tinypool@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.0.tgz#c405d8b743509fc28ea4ca358433190be654f819" - integrity sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ== +tinypool@^0.3.1: + 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.0.2" @@ -20231,10 +20856,11 @@ tryer@^1.0.1: integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== ts-command-line-args@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.3.1.tgz#b6188e42efc6cf7a8898e438a873fbb15505ddd6" - integrity sha512-FR3y7pLl/fuUNSmnPhfLArGqRrpojQgIEEOVzYx9DhTmfIN7C9RWSfpkJEF4J+Gk7aVx5pak8I7vWZsaN4N84g== + version "2.4.2" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz#b4815b23c35f8a0159d4e69e01012d95690bc448" + integrity sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ== dependencies: + "@morgan-stanley/ts-mocking-bird" "^0.6.2" chalk "^4.1.0" command-line-args "^5.1.1" command-line-usage "^6.1.0" @@ -20306,10 +20932,10 @@ 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.4.0, tslib@^2.4.1, 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.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, 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== tslog@^4.3.1, tslog@^4.4.0: version "4.7.1" @@ -20470,9 +21096,9 @@ typescript@4.3.4: integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew== typescript@^4.8.4, typescript@^4.9.3, typescript@^4.9.4: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typical@^4.0.0: version "4.0.0" @@ -20494,6 +21120,13 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== +uint8arrays@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" + integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== + dependencies: + multiformats "^9.4.2" + uint8arrays@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" @@ -20516,10 +21149,10 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici@^5.12.0, undici@^5.14.0: - version "5.15.1" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.15.1.tgz#5292454b1441da486a80c0f3ada1e88f1765ff8d" - integrity sha512-XLk8g0WAngdvFqTI+VKfBtM4YWXgdxkf1WezC771Es0Dd+Pm1KmNx8t93WTC+Hh9tnghmVxkclU1HN+j+CvIUA== +undici@^5.14.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.16.0.tgz#6b64f9b890de85489ac6332bd45ca67e4f7d9943" + integrity sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ== dependencies: busboy "^1.6.0" @@ -20600,7 +21233,7 @@ upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.9: +update-browserslist-db@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== @@ -20706,7 +21339,7 @@ util.promisify@~1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" -util@^0.12.0, util@^0.12.3, util@^0.12.4: +util@^0.12.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" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -20742,6 +21375,11 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -20783,6 +21421,14 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +valtio@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.9.0.tgz#d5d9f664319eaf18dd98f758d50495eca28eb0b8" + integrity sha512-mQLFsAlKbYascZygFQh6lXuDjU5WHLoeZ8He4HqMnWfasM96V6rDbeFkw1XeG54xycmDonr/Jb4xgviHtuySrA== + dependencies: + proxy-compare "2.4.0" + use-sync-external-store "1.2.0" + value-or-promise@1.0.12, value-or-promise@^1.0.11: version "1.0.12" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" @@ -20832,10 +21478,10 @@ victory-vendor@^36.6.8: d3-time "^3.0.0" d3-timer "^3.0.1" -vite-node@0.28.2: - version "0.28.2" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.2.tgz#58b52fc638f86fee9bfe4990abaea7e4d74f6514" - integrity sha512-zyiJ3DLs9zXign4P2MD4PQk+7rdT+JkHukgmmS0KuImbCQ7WnCdea5imQVeT6OtUsBwsLztJxQODUsinVr91tg== +vite-node@0.28.3: + version "0.28.3" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.3.tgz#5d693c237d5467f167f81d158a56d3408fea899c" + integrity sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -20859,17 +21505,17 @@ vite-node@0.28.2: fsevents "~2.3.2" vitest@^0.28.1: - version "0.28.2" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.2.tgz#952e1ad83fbd04ee1bfce634b106a371a5973603" - integrity sha512-HJBlRla4Mng0OiZ8aWunCecJ6BzLDA4yuzuxiBuBU2MXjGB6I4zT7QgIBL/UrwGKlNxLwaDC5P/4OpeuTlW8yQ== + version "0.28.3" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.3.tgz#58322a5ae64854d4cdb75451817b9fb795f9102e" + integrity sha512-N41VPNf3VGJlWQizGvl1P5MGyv3ZZA2Zvh+2V8L6tYBAAuqqDK4zExunT1Cdb6dGfZ4gr+IMrnG8d4Z6j9ctPw== dependencies: "@types/chai" "^4.3.4" "@types/chai-subset" "^1.3.3" "@types/node" "*" - "@vitest/expect" "0.28.2" - "@vitest/runner" "0.28.2" - "@vitest/spy" "0.28.2" - "@vitest/utils" "0.28.2" + "@vitest/expect" "0.28.3" + "@vitest/runner" "0.28.3" + "@vitest/spy" "0.28.3" + "@vitest/utils" "0.28.3" acorn "^8.8.1" acorn-walk "^8.2.0" cac "^6.7.14" @@ -20882,10 +21528,10 @@ vitest@^0.28.1: std-env "^3.3.1" strip-literal "^1.0.0" tinybench "^2.3.1" - tinypool "^0.3.0" + tinypool "^0.3.1" tinyspy "^1.0.2" vite "^3.0.0 || ^4.0.0" - vite-node "0.28.2" + vite-node "0.28.3" why-is-node-running "^2.2.2" w3c-hr-time@^1.0.2: @@ -20914,17 +21560,16 @@ wabt@1.0.24: resolved "https://registry.yarnpkg.com/wabt/-/wabt-1.0.24.tgz#c02e0b5b4503b94feaf4a30a426ef01c1bea7c6c" integrity sha512-8l7sIOd3i5GWfTWciPL0+ff/FK/deVK2Q6FN+MPz4vfUcD78i2M/49XJTwF6aml91uIiuXJEsLKWMB2cw/mtKg== -wagmi@^0.6.7: - version "0.6.8" - resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.6.8.tgz#bfc65686ec08cf1c508b1dbf5fbefbbe828653cd" - integrity sha512-pIOn7I56KPfdPQ1WRIWzWnpC8eJZm1V25Rcn5fbgOJ2eV3kjGNchnIub/ERY1VMKywxkCAfgXfn2D/tqwCJsWw== - dependencies: - "@coinbase/wallet-sdk" "^3.3.0" - "@tanstack/query-sync-storage-persister" "^4.0.10" - "@tanstack/react-query" "^4.0.10" - "@tanstack/react-query-persist-client" "^4.0.10" - "@wagmi/core" "^0.5.8" - "@walletconnect/ethereum-provider" "^1.7.8" +wagmi@0.11.2, wagmi@^0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.11.2.tgz#fee24b0861bd06fd62cf1c43414d149e4f1cfa97" + integrity sha512-Chjhk3Q38ex01Caz91rI43gG4sMKs6G6kN5uEyxkupwXw9pzKxCoDAm53ZDtuo1CxqiD4Df39Gv8Qx+APvKNDg== + dependencies: + "@tanstack/query-sync-storage-persister" "^4.14.5" + "@tanstack/react-query" "^4.14.5" + "@tanstack/react-query-persist-client" "^4.14.5" + "@wagmi/core" "0.9.2" + abitype "^0.3.0" use-sync-external-store "^1.2.0" walker@^1.0.7, walker@^1.0.8: @@ -20972,12 +21617,7 @@ web-encoding@1.1.5, web-encoding@^1.1.5: optionalDependencies: "@zxing/text-encoding" "0.9.0" -web-streams-polyfill@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" - integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== - -web-streams-polyfill@^3.1.1, web-streams-polyfill@^3.2.0: +web-streams-polyfill@^3.1.1, 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== @@ -20992,72 +21632,72 @@ web-vitals@^3.1.0: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.1.1.tgz#bb124a03df7a135617f495c5bb7dbc30ecf2cce3" integrity sha512-qvllU+ZeQChqzBhZ1oyXmWsjJ8a2jHYpH8AMaVuf29yscOPZfTQTjQFRX6+eADTdsDE8IanOZ0cetweHMs8/2A== -web3-bzz@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.1.tgz#81397be5ce262d03d82b92e9d8acc11f8a609ea1" - integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== +web3-bzz@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.2.tgz#67ea1c775874056250eece551ded22905ed08784" + integrity sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w== dependencies: "@types/node" "^12.12.6" got "12.1.0" swarm-js "^0.1.40" -web3-core-helpers@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz#7904747b23fd0afa4f2c86ed98ea9418ccad7672" - integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== +web3-core-helpers@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz#82066560f8085e6c7b93bcc8e88b441289ea9f9f" + integrity sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw== dependencies: - web3-eth-iban "1.8.1" - web3-utils "1.8.1" + web3-eth-iban "1.8.2" + web3-utils "1.8.2" -web3-core-method@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.1.tgz#0fc5a433a9fc784c447522f141c0a8e0163c7790" - integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== +web3-core-method@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.2.tgz#ba5ec68084e903f0516415010477618be017eac2" + integrity sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA== dependencies: "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-utils "1.8.1" + web3-core-helpers "1.8.2" + web3-core-promievent "1.8.2" + web3-core-subscriptions "1.8.2" + web3-utils "1.8.2" -web3-core-promievent@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz#f334c8b2ceac6c2228f06d2a515f6d103157f036" - integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== +web3-core-promievent@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz#e670d6b4453632e6ecfd9ad82da44f77ac1585c9" + integrity sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg== dependencies: eventemitter3 "4.0.4" -web3-core-requestmanager@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz#272ffa55b7b568ecbc8e4a257ca080355c31c60e" - integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== +web3-core-requestmanager@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz#dda95e83ca4808949612a41e54ecea557f78ef26" + integrity sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g== dependencies: - util "^0.12.0" - web3-core-helpers "1.8.1" - web3-providers-http "1.8.1" - web3-providers-ipc "1.8.1" - web3-providers-ws "1.8.1" + util "^0.12.5" + web3-core-helpers "1.8.2" + web3-providers-http "1.8.2" + web3-providers-ipc "1.8.2" + web3-providers-ws "1.8.2" -web3-core-subscriptions@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz#f5ae1380e92746eadfab6475b8a70ef5a1be6bbf" - integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== +web3-core-subscriptions@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz#0c8bd49439d83c6f0a03c70f00b24a915a70a5ed" + integrity sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" + web3-core-helpers "1.8.2" -web3-core@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.1.tgz#050b1c408d1f9b7ae539e90f7f7d1b7a7d10578b" - integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== +web3-core@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.2.tgz#333e93d7872b1a36efe758ed8b89a7acbdd962c2" + integrity sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ== dependencies: "@types/bn.js" "^5.1.0" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-requestmanager "1.8.1" - web3-utils "1.8.1" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-core-requestmanager "1.8.2" + web3-utils "1.8.2" web3-eth-abi@1.7.0: version "1.7.0" @@ -21067,142 +21707,141 @@ web3-eth-abi@1.7.0: "@ethersproject/abi" "5.0.7" web3-utils "1.7.0" -web3-eth-abi@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz#47455d6513217c4b0866fea6f97b1c4afa0b6535" - integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== +web3-eth-abi@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz#16e1e9be40e2527404f041a4745111211488f31a" + integrity sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og== dependencies: "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.1" + web3-utils "1.8.2" -web3-eth-accounts@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz#1ce7387721f118aeb0376291e4d8bbe2ac323406" - integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== +web3-eth-accounts@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz#b894f5d5158fcae429da42de75d96520d0712971" + integrity sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA== dependencies: "@ethereumjs/common" "2.5.0" "@ethereumjs/tx" "3.3.2" - crypto-browserify "3.12.0" eth-lib "0.2.8" - ethereumjs-util "^7.0.10" + ethereumjs-util "^7.1.5" scrypt-js "^3.0.1" uuid "^9.0.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-utils "1.8.2" -web3-eth-contract@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz#bdf3e33bbcb79a1b6144dffd6a0deefd2e459272" - integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== +web3-eth-contract@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz#5388b7130923d2b790c09a420391a81312a867fb" + integrity sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA== dependencies: "@types/bn.js" "^5.1.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-utils "1.8.1" - -web3-eth-ens@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz#e78a9651fea8282abe8565b001819e2d645e5929" - integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-core-promievent "1.8.2" + web3-core-subscriptions "1.8.2" + web3-eth-abi "1.8.2" + web3-utils "1.8.2" + +web3-eth-ens@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz#0a086ad4d919102e28b9fd3036df246add9df22a" + integrity sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-contract "1.8.1" - web3-utils "1.8.1" - -web3-eth-iban@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz#c6484e5d68ca644aa78431301e7acd5df24598d1" - integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-promievent "1.8.2" + web3-eth-abi "1.8.2" + web3-eth-contract "1.8.2" + web3-utils "1.8.2" + +web3-eth-iban@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz#5cb3022234b13986f086353b53f0379a881feeaf" + integrity sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ== dependencies: bn.js "^5.2.1" - web3-utils "1.8.1" + web3-utils "1.8.2" -web3-eth-personal@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz#00b5ff1898b62044d25ed5fddd8486168d4827cf" - integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== +web3-eth-personal@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz#3526c1ebaa4e7bf3a0a8ec77e34f067cc9a750b2" + integrity sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw== dependencies: "@types/node" "^12.12.6" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-net "1.8.2" + web3-utils "1.8.2" -web3-eth@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.1.tgz#395f6cd56edaac5dbb23e8cec9886c3fd32c430e" - integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== - dependencies: - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-accounts "1.8.1" - web3-eth-contract "1.8.1" - web3-eth-ens "1.8.1" - web3-eth-iban "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - -web3-net@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.1.tgz#2bed4d4b93166724129ec33d0e5dea98880285f4" - integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== +web3-eth@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.2.tgz#8562287ae1803c30eb54dc7d832092e5739ce06a" + integrity sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ== + dependencies: + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-core-subscriptions "1.8.2" + web3-eth-abi "1.8.2" + web3-eth-accounts "1.8.2" + web3-eth-contract "1.8.2" + web3-eth-ens "1.8.2" + web3-eth-iban "1.8.2" + web3-eth-personal "1.8.2" + web3-net "1.8.2" + web3-utils "1.8.2" + +web3-net@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.2.tgz#97e1e0015fabc4cda31017813e98d0b5468dd04f" + integrity sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag== dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" + web3-core "1.8.2" + web3-core-method "1.8.2" + web3-utils "1.8.2" -web3-providers-http@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.1.tgz#8aa89c11a9272f11ddb74b871273c92225faa28d" - integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== +web3-providers-http@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.2.tgz#fbda3a3bbc8db004af36e91bec35f80273b37885" + integrity sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ== dependencies: abortcontroller-polyfill "^1.7.3" cross-fetch "^3.1.4" es6-promise "^4.2.8" - web3-core-helpers "1.8.1" + web3-core-helpers "1.8.2" -web3-providers-ipc@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz#6128a3a3a824d06bf0efcfe86325401f8691a5ca" - integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== +web3-providers-ipc@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz#e52a7250f40c83b99a2482ec5b4cf2728377ae5c" + integrity sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w== dependencies: oboe "2.1.5" - web3-core-helpers "1.8.1" + web3-core-helpers "1.8.2" -web3-providers-ws@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz#5e5370e07eb8c615ed298ebc8602b283c7b7d649" - integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== +web3-providers-ws@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz#56a2b701387011aca9154ca4bc06ea4b5f27e4ef" + integrity sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" + web3-core-helpers "1.8.2" websocket "^1.0.32" -web3-shh@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.1.tgz#028a95cf9d3a36020380938b9a127610efbb9be7" - integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== +web3-shh@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.2.tgz#217a417f0d6e243dd4d441848ffc2bd164cea8a0" + integrity sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw== dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-net "1.8.1" + web3-core "1.8.2" + web3-core-method "1.8.2" + web3-core-subscriptions "1.8.2" + web3-net "1.8.2" web3-utils@1.7.0: version "1.7.0" @@ -21217,10 +21856,10 @@ web3-utils@1.7.0: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.8.1, web3-utils@^1.3.6: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.1.tgz#f2f7ca7eb65e6feb9f3d61056d0de6bbd57125ff" - integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== +web3-utils@1.8.2, web3-utils@^1.3.6: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.2.tgz#c32dec5e9b955acbab220eefd7715bc540b75cc9" + integrity sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA== dependencies: bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" @@ -21231,17 +21870,17 @@ web3-utils@1.8.1, web3-utils@^1.3.6: utf8 "3.0.0" web3@^1.8.0, web3@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.1.tgz#8ea67215ef5f3a6f6d3381800b527242ea22885a" - integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.2.tgz#95a4e5398fd0f01325264bf8e5e8cdc69a7afe86" + integrity sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw== dependencies: - web3-bzz "1.8.1" - web3-core "1.8.1" - web3-eth "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-shh "1.8.1" - web3-utils "1.8.1" + web3-bzz "1.8.2" + web3-core "1.8.2" + web3-eth "1.8.2" + web3-eth-personal "1.8.2" + web3-net "1.8.2" + web3-shh "1.8.2" + web3-utils "1.8.2" webcrypto-core@^1.7.4: version "1.7.5" @@ -21798,9 +22437,9 @@ wrap-ansi@^7.0.0: strip-ansi "^6.0.0" wrap-ansi@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3" - integrity sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g== + 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" @@ -21821,10 +22460,10 @@ write-file-atomic@^3.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== +write-file-atomic@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.0.tgz#54303f117e109bf3d540261125c8ea5a7320fab0" + integrity sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" @@ -21853,7 +22492,7 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^7.4.0, ws@^7.4.5, ws@^7.4.6: +ws@^7.4.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== @@ -22133,7 +22772,7 @@ zksync-web3@^0.8.1: resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.8.1.tgz#db289d8f6caf61f4d5ddc471fa3448d93208dc14" integrity sha512-1A4aHPQ3MyuGjpv5X/8pVEN+MdZqMjfVmiweQSRjOlklXYu65wT9BGEOtCmMs5d3gIvLp4ssfTeuR5OCKOD2kw== -zustand@^4.0.0: +zustand@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.2.tgz#bb121fcad84c5a569e94bd1a2695e1a93ba85d39" integrity sha512-rd4haDmlwMTVWVqwvgy00ny8rtti/klRoZjFbL/MAcDnmD5qSw/RZc+Vddstdv90M5Lv6RPgWvm1Hivyn0QgJw== From 7018a30e9e842018bc6a021f94bdeaf5d951cb02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 1 Feb 2023 14:15:38 +0100 Subject: [PATCH 136/216] 0.1.0 --- packages/examples/fortune/exchange/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/exchange/package.json b/packages/examples/fortune/exchange/package.json index 7e6473d094..563151e7e9 100644 --- a/packages/examples/fortune/exchange/package.json +++ b/packages/examples/fortune/exchange/package.json @@ -1,6 +1,6 @@ { "name": "exchange", - "version": "1.0.2", + "version": "0.1.0", "license": "MIT", "private": false, "dependencies": { From 53985fbfcad6672510249a3ca1a235eee9d0a7b4 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 15:32:46 +0100 Subject: [PATCH 137/216] vercel --- packages/examples/fortune/launcher/server/tsconfig.json | 4 ++-- packages/examples/fortune/launcher/server/vercel.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index 564c3cd59b..8dc1f48fd9 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -13,6 +13,6 @@ "strict": true, "resolveJsonModule": true }, - "include": ["src/**/*.ts", "node_modules"], - "exclude": ["tests"] + "include": ["src/**/*.ts"], + "exclude": ["tests", "node_modules"] } diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index a95eb4dbad..f51cc42799 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -4,14 +4,14 @@ "installCommand": "yarn workspace @human-protocol/job-launcher-server install", "builds": [ { - "src": "src/index.ts", + "src": "index.ts", "use": "@vercel/node" } ], "routes": [ { "src": "/(.*)", - "dest": "src/index.ts" + "dest": "index.ts" } ] } \ No newline at end of file From 88fec573f981a4246b3386b1dba91f7a751638ba Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 16:28:13 +0100 Subject: [PATCH 138/216] vercel --- .../fortune/launcher/server/vercel.json | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index f51cc42799..973ed7bb3d 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -1,17 +1,11 @@ { - "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", - "outputDirectory": "build", - "installCommand": "yarn workspace @human-protocol/job-launcher-server install", - "builds": [ - { - "src": "index.ts", - "use": "@vercel/node" - } - ], - "routes": [ - { - "src": "/(.*)", - "dest": "index.ts" - } - ] - } \ No newline at end of file + "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", + "outputDirectory": "build", + "installCommand": "yarn workspace @human-protocol/job-launcher-server install", + "functions": { + "src/index.ts": { + "memory": 3008, + "maxDuration": 60 + } + } +} From 7d5ae44c4aaeae31bf4e4224436ac2cfb8f87712 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 16:31:44 +0100 Subject: [PATCH 139/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 973ed7bb3d..6a6d9b1956 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -1,7 +1,7 @@ { "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", - "outputDirectory": "build", - "installCommand": "yarn workspace @human-protocol/job-launcher-server install", + "outputDirectory": "packages/examples/fortune/launcher/server/build", + "installCommand": "yarn install", "functions": { "src/index.ts": { "memory": 3008, From 32c5c734a9be2626a2ce1594669ac72fd1174d2a Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 16:51:44 +0100 Subject: [PATCH 140/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 6a6d9b1956..f1b55acd7d 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -2,10 +2,10 @@ "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", "outputDirectory": "packages/examples/fortune/launcher/server/build", "installCommand": "yarn install", - "functions": { - "src/index.ts": { - "memory": 3008, - "maxDuration": 60 + "rewrites": [ + { + "source": "/(.*)", + "destination": "/src/index.ts" } - } + ] } From cd2d3ec61da84e0758a38140087c7730f2f15708 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 17:03:13 +0100 Subject: [PATCH 141/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index f1b55acd7d..7f1550cde9 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -1,11 +1,11 @@ { "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", - "outputDirectory": "packages/examples/fortune/launcher/server/build", + "outputDirectory": "build", "installCommand": "yarn install", "rewrites": [ { "source": "/(.*)", - "destination": "/src/index.ts" + "destination": "src/index.ts" } ] } From 8a3cb1e9c7c4f1966b63beb9510f44b01741234f Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 17:39:48 +0100 Subject: [PATCH 142/216] vercel --- .../fortune/launcher/server/src/serverless.ts | 15 +++++++++++++++ .../examples/fortune/launcher/server/vercel.json | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 packages/examples/fortune/launcher/server/src/serverless.ts diff --git a/packages/examples/fortune/launcher/server/src/serverless.ts b/packages/examples/fortune/launcher/server/src/serverless.ts new file mode 100644 index 0000000000..c15a7a3e55 --- /dev/null +++ b/packages/examples/fortune/launcher/server/src/serverless.ts @@ -0,0 +1,15 @@ +'use strict'; + +// Read the .env file. +import * as dotenv from 'dotenv'; +import server from './server.js'; +dotenv.config(); + +// Require the framework +import Fastify from 'fastify'; + + +export default async (req: any, res: any) => { + await server.ready(); + server.server.emit('request', req, res); +}; diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 7f1550cde9..3b7297d0a4 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -5,7 +5,7 @@ "rewrites": [ { "source": "/(.*)", - "destination": "src/index.ts" + "destination": "src/serverless.ts" } ] } From 00d5d62d0f4467780d92cb061e712fb493b8baee Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 17:50:03 +0100 Subject: [PATCH 143/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 3b7297d0a4..21beabd18e 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -5,7 +5,7 @@ "rewrites": [ { "source": "/(.*)", - "destination": "src/serverless.ts" + "destination": "index.js" } ] } From f5c50a327f0e186c6a53b42617fc886433238351 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 17:56:18 +0100 Subject: [PATCH 144/216] vercel --- packages/examples/fortune/launcher/server/vercel.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 21beabd18e..c159a83207 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -7,5 +7,11 @@ "source": "/(.*)", "destination": "index.js" } - ] + ], + "functions": { + "index.js": { + "memory": 3008, + "maxDuration": 30 + } + } } From 8350abaf1f1c351545a797403258b10cc9d2d351 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 18:08:46 +0100 Subject: [PATCH 145/216] vercel --- .../fortune/launcher/server/{src => api}/serverless.ts | 6 +----- .../examples/fortune/launcher/server/tsconfig.json | 2 +- packages/examples/fortune/launcher/server/vercel.json | 10 ++-------- 3 files changed, 4 insertions(+), 14 deletions(-) rename packages/examples/fortune/launcher/server/{src => api}/serverless.ts (69%) diff --git a/packages/examples/fortune/launcher/server/src/serverless.ts b/packages/examples/fortune/launcher/server/api/serverless.ts similarity index 69% rename from packages/examples/fortune/launcher/server/src/serverless.ts rename to packages/examples/fortune/launcher/server/api/serverless.ts index c15a7a3e55..313a9b05ad 100644 --- a/packages/examples/fortune/launcher/server/src/serverless.ts +++ b/packages/examples/fortune/launcher/server/api/serverless.ts @@ -2,13 +2,9 @@ // Read the .env file. import * as dotenv from 'dotenv'; -import server from './server.js'; +import server from '../src/server.js'; dotenv.config(); -// Require the framework -import Fastify from 'fastify'; - - export default async (req: any, res: any) => { await server.ready(); server.server.emit('request', req, res); diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index 8dc1f48fd9..ac799fde5d 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -13,6 +13,6 @@ "strict": true, "resolveJsonModule": true }, - "include": ["src/**/*.ts"], + "include": ["src/**/*.ts", "api/serverless.ts"], "exclude": ["tests", "node_modules"] } diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index c159a83207..8a9e9c9db3 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -5,13 +5,7 @@ "rewrites": [ { "source": "/(.*)", - "destination": "index.js" + "destination": "/api/serverless.js" } - ], - "functions": { - "index.js": { - "memory": 3008, - "maxDuration": 30 - } - } + ] } From 402bab2785f5390627961462f33077168e52ac89 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 18:49:17 +0100 Subject: [PATCH 146/216] vercel --- packages/examples/fortune/launcher/server/api/serverless.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/examples/fortune/launcher/server/api/serverless.ts b/packages/examples/fortune/launcher/server/api/serverless.ts index 313a9b05ad..4917976405 100644 --- a/packages/examples/fortune/launcher/server/api/serverless.ts +++ b/packages/examples/fortune/launcher/server/api/serverless.ts @@ -5,6 +5,11 @@ import * as dotenv from 'dotenv'; import server from '../src/server.js'; dotenv.config(); +server.listen({ port: 3000 }, (err) => { + if (err) console.error(err); + console.log('server listening on 3000'); +}); + export default async (req: any, res: any) => { await server.ready(); server.server.emit('request', req, res); From e6f8b0cbaac3887e0ee828fa5095ae91f1775186 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 18:56:19 +0100 Subject: [PATCH 147/216] vercel test --- packages/examples/fortune/launcher/server/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 2bf743fcad..7b1e5e21fb 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -8,7 +8,7 @@ "type": "module", "dependencies": { "@fastify/cors": "^8.2.0", - "@human-protocol/core": "workspace:*", + "@human-protocol/core": "1.0.39", "@sinclair/typebox": "^0.25.21", "@types/minio": "^7.0.15", "@types/node": "^18.11.18", From e35eaf072176c1bd3fc312d920b4fc6a742191ef Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 19:08:42 +0100 Subject: [PATCH 148/216] vercel tests --- packages/examples/fortune/launcher/server/package.json | 2 +- packages/examples/fortune/launcher/server/tsconfig.json | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 7b1e5e21fb..2bf743fcad 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -8,7 +8,7 @@ "type": "module", "dependencies": { "@fastify/cors": "^8.2.0", - "@human-protocol/core": "1.0.39", + "@human-protocol/core": "workspace:*", "@sinclair/typebox": "^0.25.21", "@types/minio": "^7.0.15", "@types/node": "^18.11.18", diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index ac799fde5d..4dfe19f4f9 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -5,6 +5,7 @@ "moduleResolution": "Node", "lib": ["esnext"], "esModuleInterop": true, + "rootDir": ".", "allowSyntheticDefaultImports": true, "sourceMap": true, "outDir": "build", @@ -13,6 +14,6 @@ "strict": true, "resolveJsonModule": true }, - "include": ["src/**/*.ts", "api/serverless.ts"], - "exclude": ["tests", "node_modules"] + "include": ["src/**/*", "api/serverless.ts", "node_modules/@human-protocol/core/abis/*.json"], + "exclude": ["tests"] } From d1bdb95562a5bd8c896b36f701be9e423b2130b5 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 19:42:18 +0100 Subject: [PATCH 149/216] vercel --- packages/examples/fortune/launcher/server/tsconfig.json | 2 +- packages/examples/fortune/launcher/server/vercel.json | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index 4dfe19f4f9..ca78a82116 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -14,6 +14,6 @@ "strict": true, "resolveJsonModule": true }, - "include": ["src/**/*", "api/serverless.ts", "node_modules/@human-protocol/core/abis/*.json"], + "include": ["src/**/*", "api/serverless.ts"], "exclude": ["tests"] } diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 8a9e9c9db3..a879cca251 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -1,11 +1,10 @@ { "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", - "outputDirectory": "build", "installCommand": "yarn install", "rewrites": [ { "source": "/(.*)", - "destination": "/api/serverless.js" + "destination": "build/api/serverless.js" } ] } From 0580988c933c3abb314a9167b53edcc417c5801e Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 20:06:55 +0100 Subject: [PATCH 150/216] vercel --- .../examples/fortune/launcher/server/vercel.json | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index a879cca251..5cb92ece10 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -1,10 +1,17 @@ { "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", "installCommand": "yarn install", - "rewrites": [ + "outputDirectory": "build", + "builds": [ { - "source": "/(.*)", - "destination": "build/api/serverless.js" + "src": "src/index.ts", + "use": "@vercel/node" + } + ], + "routes": [ + { + "src": "/(.*)", + "dest": "src/index.ts" } ] } From 07ae1a92cd13dbd13cf6c785618ecb8bcdf4d099 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 1 Feb 2023 21:57:33 +0100 Subject: [PATCH 151/216] modify job launcher server to deploy on vercel --- .../fortune/launcher/server/api/serverless.ts | 16 ------ .../fortune/launcher/server/package.json | 4 +- .../fortune/launcher/server/src/index.ts | 30 ++++++----- .../launcher/server/src/plugins/escrow.ts | 11 ++-- .../launcher/server/src/plugins/web3.ts | 2 +- .../launcher/server/src/routes/escrow.ts | 4 +- .../launcher/server/src/routes/index.ts | 4 +- .../fortune/launcher/server/src/server.ts | 53 ++++++++++--------- .../server/tests/plugins/escrow.test.ts | 11 ++-- .../server/tests/plugins/web3.test.ts | 7 +-- .../server/tests/routes/escrow.test.ts | 5 +- .../fortune/launcher/server/tsconfig.json | 27 +++++----- 12 files changed, 87 insertions(+), 87 deletions(-) delete mode 100644 packages/examples/fortune/launcher/server/api/serverless.ts diff --git a/packages/examples/fortune/launcher/server/api/serverless.ts b/packages/examples/fortune/launcher/server/api/serverless.ts deleted file mode 100644 index 4917976405..0000000000 --- a/packages/examples/fortune/launcher/server/api/serverless.ts +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -// Read the .env file. -import * as dotenv from 'dotenv'; -import server from '../src/server.js'; -dotenv.config(); - -server.listen({ port: 3000 }, (err) => { - if (err) console.error(err); - console.log('server listening on 3000'); -}); - -export default async (req: any, res: any) => { - await server.ready(); - server.server.emit('request', req, res); -}; diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 2bf743fcad..1ae9f091ba 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -5,7 +5,6 @@ "main": "index.ts", "license": "MIT", "private": false, - "type": "module", "dependencies": { "@fastify/cors": "^8.2.0", "@human-protocol/core": "workspace:*", @@ -25,7 +24,8 @@ }, "scripts": { "build": "tsc", - "start": "ts-node --esm ./src/index.ts", + "start:prod": "ts-node build/src/index.js", + "start": "ts-node ./src/index.ts", "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" } } diff --git a/packages/examples/fortune/launcher/server/src/index.ts b/packages/examples/fortune/launcher/server/src/index.ts index a11321644c..861194c8cb 100644 --- a/packages/examples/fortune/launcher/server/src/index.ts +++ b/packages/examples/fortune/launcher/server/src/index.ts @@ -1,19 +1,25 @@ -import server from './server.js'; +import getServer from './server'; process.on('unhandledRejection', (err) => { console.error(err); process.exit(1); }); -const port = +server.config.API_PORT; -const host = server.config.API_HOST; -await server.listen({ host, port }); -for (const signal of ['SIGINT', 'SIGTERM']) { - process.on(signal, () => - server.close().then((err) => { - console.log(`close application on ${signal}`); - process.exit(err ? 1 : 0); - }) - ); -} +const startServer = async () => { + const server = await getServer(); + const port = +server.config.API_PORT; + const host = server.config.API_HOST; + await server.listen({ host, port }); + + for (const signal of ['SIGINT', 'SIGTERM']) { + process.on(signal, () => + server.close().then((err) => { + console.log(`close application on ${signal}`); + process.exit(err ? 1 : 0); + }) + ); + } +}; + +startServer(); diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index 881ec88113..1131bf7ba8 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -1,11 +1,12 @@ +import 'dotenv/config'; import fp from "fastify-plugin"; import { FastifyPluginAsync } from "fastify"; -import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json' assert { type: "json" }; -import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: "json" }; -import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: "json" }; -import { escrow as escrowSchema } from '../schemas/escrow.js'; +import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json'; +import HMTokenAbi from '@human-protocol/core/abis/HMToken.json'; +import EscrowAbi from '@human-protocol/core/abis/Escrow.json'; +import { escrow as escrowSchema } from '../schemas/escrow'; import Web3 from 'web3'; -import { CURSE_WORDS } from "../constants/curseWords.js"; +import { CURSE_WORDS } from "../constants/curseWords"; import { Type } from "@sinclair/typebox"; import Ajv from "ajv"; diff --git a/packages/examples/fortune/launcher/server/src/plugins/web3.ts b/packages/examples/fortune/launcher/server/src/plugins/web3.ts index 544997c80d..b70783bf85 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/web3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/web3.ts @@ -3,7 +3,7 @@ import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; import { Type } from '@sinclair/typebox'; import Ajv from 'ajv'; -import { IEscrowNetwork } from 'constants/networks'; +import { IEscrowNetwork } from '../constants/networks'; import Web3 from 'web3'; const ConfigSchema = Type.Strict( diff --git a/packages/examples/fortune/launcher/server/src/routes/escrow.ts b/packages/examples/fortune/launcher/server/src/routes/escrow.ts index 280696d3a5..ff03c2988d 100644 --- a/packages/examples/fortune/launcher/server/src/routes/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/routes/escrow.ts @@ -1,11 +1,11 @@ import { Type } from '@sinclair/typebox'; import { FastifyPluginAsync } from 'fastify'; -import { escrow as escrowSchema } from '../schemas/escrow.js'; +import { escrow as escrowSchema } from '../schemas/escrow'; import { ChainId, ESCROW_NETWORKS, IEscrowNetwork, -} from '../constants/networks.js'; +} from '../constants/networks'; export const createEscrow: FastifyPluginAsync = async (server) => { let escrowNetwork: IEscrowNetwork; diff --git a/packages/examples/fortune/launcher/server/src/routes/index.ts b/packages/examples/fortune/launcher/server/src/routes/index.ts index 83781831fc..c8d3ff54e7 100644 --- a/packages/examples/fortune/launcher/server/src/routes/index.ts +++ b/packages/examples/fortune/launcher/server/src/routes/index.ts @@ -1,6 +1,6 @@ import { FastifyInstance } from 'fastify'; -import { createEscrow } from './escrow.js'; -import { cryptoPayment } from './payments.js'; +import { createEscrow } from './escrow'; +import { cryptoPayment } from './payments'; export default async function routes(fastify: FastifyInstance) { fastify.register(createEscrow); diff --git a/packages/examples/fortune/launcher/server/src/server.ts b/packages/examples/fortune/launcher/server/src/server.ts index bb60b3bbfe..d2e975c109 100644 --- a/packages/examples/fortune/launcher/server/src/server.ts +++ b/packages/examples/fortune/launcher/server/src/server.ts @@ -1,31 +1,34 @@ import fastify from 'fastify'; -import config from './plugins/config.js'; -import s3 from './plugins/s3.js'; -import routes from './routes/index.js'; +import config from './plugins/config'; +import s3 from './plugins/s3'; +import routes from './routes/index'; import cors from '@fastify/cors'; -import escrow from './plugins/escrow.js'; -import web3 from './plugins/web3.js'; +import escrow from './plugins/escrow'; +import web3 from './plugins/web3'; -const server = fastify({ - ajv: { - customOptions: { - removeAdditional: 'all', - coerceTypes: true, - useDefaults: true, +const getServer = async () => { + const server = fastify({ + ajv: { + customOptions: { + removeAdditional: 'all', + coerceTypes: true, + useDefaults: true, + }, }, - }, - logger: { - level: process.env.LOG_LEVEL, - }, -}); + logger: { + level: process.env.LOG_LEVEL, + }, + }); -await server - .register(config) - .register(s3) - .register(cors) - .register(routes) - .register(escrow) - .register(web3) - .ready(); + await server + .register(config) + .register(s3) + .register(cors) + .register(routes) + .register(escrow) + .register(web3) + .ready(); -export default server; + return server; +}; +export default getServer; diff --git a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts index 5780550cc1..69bf645b61 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/escrow.test.ts @@ -3,18 +3,19 @@ import { ChainId, ESCROW_NETWORKS, IEscrowNetwork, -} from '../../src/constants/networks.js'; +} from '../../src/constants/networks'; import EscrowAbi from '@human-protocol/core/abis/Escrow.json' assert { type: 'json' }; import HMTokenAbi from '@human-protocol/core/abis/HMToken.json' assert { type: 'json' }; -import server from '../../src/server.js'; -import { stake, approve } from '../utils.js'; -import { escrow as escrowSchema } from '../../src/schemas/escrow.js'; +import getServer from '../../src/server'; +import { stake, approve } from '../utils'; +import { escrow as escrowSchema } from '../../src/schemas/escrow'; const jobRequesterPrivKey = 'de9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0'; const jobRequester = '0xdD2FD4581271e230360230F9337D5c0430Bf44C0'; -describe('Escrow tests', () => { +describe('Escrow tests', async () => { + const server = await getServer(); const { escrow, web3 } = server; const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; const web3Client = web3.createWeb3(network); diff --git a/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts b/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts index cd0f00b6fc..34d222ab20 100644 --- a/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts +++ b/packages/examples/fortune/launcher/server/tests/plugins/web3.test.ts @@ -3,14 +3,15 @@ import { ChainId, ESCROW_NETWORKS, IEscrowNetwork, -} from '../../src/constants/networks.js'; -import server from '../../src/server.js'; +} from '../../src/constants/networks'; +import getServer from '../../src/server'; const privKey = 'df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e'; const address = '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199'; -describe('Web3 tests', () => { +describe('Web3 tests', async () => { + const server = await getServer(); const { web3 } = server; const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; test('Should initialize web3 client', async () => { diff --git a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts index ba4c2b64d2..6eda8923ff 100644 --- a/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts +++ b/packages/examples/fortune/launcher/server/tests/routes/escrow.test.ts @@ -4,14 +4,15 @@ import { ESCROW_NETWORKS, IEscrowNetwork, } from '../../src/constants/networks.js'; -import server from '../../src/server.js'; +import getServer from '../../src/server.js'; import { stake, approve, decreaseApproval } from '../utils.js'; const jobRequesterPrivKey = '689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b061667b5a93e037fd'; const jobRequester = '0xbDA5747bFD65F08deb54cb465eB87D40e51B197E'; -describe('Escrow route tests', () => { +describe('Escrow route tests', async () => { + const server = await getServer(); const { web3, s3 } = server; const network = ESCROW_NETWORKS[ChainId.LOCALHOST] as IEscrowNetwork; diff --git a/packages/examples/fortune/launcher/server/tsconfig.json b/packages/examples/fortune/launcher/server/tsconfig.json index ca78a82116..2f3a053b26 100644 --- a/packages/examples/fortune/launcher/server/tsconfig.json +++ b/packages/examples/fortune/launcher/server/tsconfig.json @@ -1,19 +1,22 @@ { "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "Node", - "lib": ["esnext"], + "target": "es2020", + "module": "commonjs", + "moduleResolution": "node", + "pretty": true, + "noEmitOnError": true, + "strict": true, + "resolveJsonModule": true, + "removeComments": true, + "noUnusedLocals": true, + "noFallthroughCasesInSwitch": true, + "useDefineForClassFields": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, "esModuleInterop": true, - "rootDir": ".", - "allowSyntheticDefaultImports": true, - "sourceMap": true, "outDir": "build", - "baseUrl": "src", - "skipLibCheck": true, - "strict": true, - "resolveJsonModule": true + "lib": ["es2020"] }, - "include": ["src/**/*", "api/serverless.ts"], + "include": ["src/**/*"], "exclude": ["tests"] } From 037f80b75725f24dcb2fe11c829e8b35fbbff2f0 Mon Sep 17 00:00:00 2001 From: m00n620 Date: Wed, 1 Feb 2023 21:27:03 -0500 Subject: [PATCH 152/216] move fortune code from dashboard --- packages/apps/escrow-dashboard/.env.example | 3 +- packages/apps/escrow-dashboard/package.json | 2 - packages/apps/escrow-dashboard/src/index.tsx | 42 +---- .../src/pages/Fortune/index.tsx | 143 --------------- .../apps/escrow-dashboard/src/pages/index.ts | 1 - .../escrow-dashboard/src/routes/routes.ts | 9 +- .../fortune/launcher/.env.development | 7 +- packages/examples/fortune/launcher/Dockerfile | 14 +- .../examples/fortune/launcher/package.json | 5 + .../public/images/fortune-crypto.png | Bin .../launcher}/public/images/fortune-fiat.png | Bin .../fortune/launcher/public/index.html | 4 + .../examples/fortune/launcher/src/App.css | 52 ------ .../fortune/launcher/src/App.test.tsx | 9 - .../examples/fortune/launcher/src/App.tsx | 150 +++++++++++----- .../fortune/launcher}/src/assets/coinbase.svg | 0 .../fortune/launcher}/src/assets/metamask.svg | 0 .../launcher}/src/assets/walletconnect.svg | 0 .../src/components}/FortuneStages.tsx | 0 .../src/components}/FundingMethod.tsx | 2 +- .../launcher/src/components}/JobRequest.tsx | 91 +++++++--- .../launcher/src/components}/Launch.tsx | 0 .../launcher/src/components}/LaunchFail.tsx | 0 .../src/components}/LaunchSuccess.tsx | 0 .../launcher/src/components}/RoundedBox.tsx | 0 .../launcher/src/components/WalletModal.tsx} | 0 .../launcher/src/components/escrow/create.tsx | 41 ----- .../launcher/src/components/escrow/index.css | 27 --- .../launcher/src/components/escrow/index.tsx | 14 -- .../launcher/src/components/escrow/view.tsx | 170 ------------------ .../fortune/launcher/src/components}/index.ts | 0 .../src/components/staking/approve.tsx | 29 --- .../launcher/src/components/staking/index.css | 0 .../launcher/src/components/staking/index.tsx | 14 -- .../launcher/src/components/staking/stake.tsx | 34 ---- .../fortune/launcher/src/components}/types.ts | 4 +- .../launcher/src/constants/constants.ts | 15 -- .../fortune/launcher/src/constants/index.ts | 94 ++++++++++ .../examples/fortune/launcher/src/index.css | 17 -- .../examples/fortune/launcher/src/index.tsx | 57 +++++- .../examples/fortune/launcher/src/logo.svg | 1 - .../examples/fortune/launcher/src/theme.ts | 62 +++++++ yarn.lock | 71 ++++++++ 43 files changed, 471 insertions(+), 713 deletions(-) delete mode 100644 packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx rename packages/{apps/escrow-dashboard => examples/fortune/launcher}/public/images/fortune-crypto.png (100%) rename packages/{apps/escrow-dashboard => examples/fortune/launcher}/public/images/fortune-fiat.png (100%) delete mode 100644 packages/examples/fortune/launcher/src/App.css delete mode 100644 packages/examples/fortune/launcher/src/App.test.tsx rename packages/{apps/escrow-dashboard => examples/fortune/launcher}/src/assets/coinbase.svg (100%) rename packages/{apps/escrow-dashboard => examples/fortune/launcher}/src/assets/metamask.svg (100%) rename packages/{apps/escrow-dashboard => examples/fortune/launcher}/src/assets/walletconnect.svg (100%) rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/FortuneStages.tsx (100%) rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/FundingMethod.tsx (98%) rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/JobRequest.tsx (70%) rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/Launch.tsx (100%) rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/LaunchFail.tsx (100%) rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/LaunchSuccess.tsx (100%) rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/RoundedBox.tsx (100%) rename packages/{apps/escrow-dashboard/src/components/WalletModal/index.tsx => examples/fortune/launcher/src/components/WalletModal.tsx} (100%) delete mode 100644 packages/examples/fortune/launcher/src/components/escrow/create.tsx delete mode 100644 packages/examples/fortune/launcher/src/components/escrow/index.css delete mode 100644 packages/examples/fortune/launcher/src/components/escrow/index.tsx delete mode 100644 packages/examples/fortune/launcher/src/components/escrow/view.tsx rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/index.ts (100%) delete mode 100644 packages/examples/fortune/launcher/src/components/staking/approve.tsx delete mode 100644 packages/examples/fortune/launcher/src/components/staking/index.css delete mode 100644 packages/examples/fortune/launcher/src/components/staking/index.tsx delete mode 100644 packages/examples/fortune/launcher/src/components/staking/stake.tsx rename packages/{apps/escrow-dashboard/src/components/Fortune => examples/fortune/launcher/src/components}/types.ts (85%) delete mode 100644 packages/examples/fortune/launcher/src/constants/constants.ts create mode 100644 packages/examples/fortune/launcher/src/constants/index.ts delete mode 100644 packages/examples/fortune/launcher/src/index.css delete mode 100644 packages/examples/fortune/launcher/src/logo.svg create mode 100644 packages/examples/fortune/launcher/src/theme.ts diff --git a/packages/apps/escrow-dashboard/.env.example b/packages/apps/escrow-dashboard/.env.example index 102f3778d4..3c65c8708f 100644 --- a/packages/apps/escrow-dashboard/.env.example +++ b/packages/apps/escrow-dashboard/.env.example @@ -1,2 +1 @@ -PORT=3002 -REACT_APP_JOB_LAUNCHER_SERVER_URL=http://localhost:3000 \ No newline at end of file +PORT=3002 \ No newline at end of file diff --git a/packages/apps/escrow-dashboard/package.json b/packages/apps/escrow-dashboard/package.json index 8e2e451abc..0bc533d3ef 100644 --- a/packages/apps/escrow-dashboard/package.json +++ b/packages/apps/escrow-dashboard/package.json @@ -19,7 +19,6 @@ "@types/react": "^18.0.25", "@types/react-dom": "^18.0.9", "bignumber.js": "^9.1.0", - "buffer": "^6.0.3", "classnames": "^2.3.2", "dayjs": "^1.11.6", "ethers": "^5.7.2", @@ -37,7 +36,6 @@ "swr": "^1.3.0", "ts-node": "^10.9.1", "typescript": "^4.9.3", - "wagmi": "^0.11.2", "web-vitals": "^3.1.0" }, "devDependencies": { diff --git a/packages/apps/escrow-dashboard/src/index.tsx b/packages/apps/escrow-dashboard/src/index.tsx index 9bf321067e..f3ef28b1bf 100644 --- a/packages/apps/escrow-dashboard/src/index.tsx +++ b/packages/apps/escrow-dashboard/src/index.tsx @@ -1,55 +1,15 @@ import React from 'react'; import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; -import { WagmiConfig, createClient, configureChains, mainnet } from 'wagmi'; -import { alchemyProvider } from 'wagmi/providers/alchemy'; -import { publicProvider } from 'wagmi/providers/public'; -import { CoinbaseWalletConnector } from 'wagmi/connectors/coinbaseWallet'; -import { MetaMaskConnector } from 'wagmi/connectors/metaMask'; -import { WalletConnectConnector } from 'wagmi/connectors/walletConnect'; - import './index.css'; import { App } from './components'; import reportWebVitals from './reportWebVitals'; import store from './state'; -window.Buffer = window.Buffer || require('buffer').Buffer; - -// Configure chains & providers with the Alchemy provider. -// Two popular providers are Alchemy (alchemy.com) and Infura (infura.io) -const { chains, provider, webSocketProvider } = configureChains( - [mainnet], - [publicProvider()] -); - -// Set up client -const client = createClient({ - autoConnect: true, - connectors: [ - new MetaMaskConnector({ chains }), - new CoinbaseWalletConnector({ - chains, - options: { - appName: 'wagmi', - }, - }), - new WalletConnectConnector({ - chains, - options: { - qrcode: true, - }, - }), - ], - provider, - webSocketProvider, -}); - ReactDOM.render( - - - + , document.getElementById('root') diff --git a/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx b/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx deleted file mode 100644 index 4282bca4b8..0000000000 --- a/packages/apps/escrow-dashboard/src/pages/Fortune/index.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import HMTokenABI from '@human-protocol/core/abis/HMToken.json'; -import Box from '@mui/material/Box'; -import { Grid, Link, Typography } from '@mui/material'; -import axios from 'axios'; -import React, { useState } from 'react'; -import { - FortuneStages, - FortuneFundingMethod, - FortuneJobRequest, - FortuneLaunch, - FortuneLaunchSuccess, - FortuneLaunchFail, -} from 'src/components/Fortune'; -import { - FortuneJobRequestType, - FortuneStageStatus, - FundingMethodType, -} from 'src/components/Fortune/types'; -import { ethers } from 'ethers'; -import { useSigner } from 'wagmi'; -import { ChainId, ESCROW_NETWORKS, HM_TOKEN_DECIMALS } from 'src/constants'; - -export const FortunePage: React.FC = (): React.ReactElement => { - const { data: signer } = useSigner(); - const [status, setStatus] = useState( - FortuneStageStatus.FUNDING_METHOD - ); - const [fundingMethod, setFundingMethod] = - useState('crypto'); - - const handleChangeFundingMethod = (method: FundingMethodType) => { - setFundingMethod(method); - setStatus(FortuneStageStatus.JOB_REQUEST); - }; - - const handleBack = () => { - setFundingMethod('crypto'); - setStatus(FortuneStageStatus.JOB_REQUEST); - }; - - const handleLaunch = async (data: FortuneJobRequestType) => { - if (!signer) return; - try { - const contract = new ethers.Contract(data.token, HMTokenABI, signer); - const escrowFactoryAddress = - ESCROW_NETWORKS[data.chainId as ChainId]?.factoryAddress; - - await contract.approve( - escrowFactoryAddress, - ethers.utils.parseUnits(data.fundAmount.toString(), HM_TOKEN_DECIMALS) - ); - - const baseUrl = process.env.REACT_APP_JOB_LAUNCHER_SERVER_URL; - setStatus(FortuneStageStatus.LAUNCH); - await axios.post(`${baseUrl}/escrow`, data); - setStatus(FortuneStageStatus.LAUNCH_SUCCESS); - } catch (err) { - console.log(err); - setStatus(FortuneStageStatus.LAUNCH_FAIL); - } - }; - - return ( - - - - {status === FortuneStageStatus.FUNDING_METHOD && ( - - - Fortune - - - HUMAN Protocol basic functionality demo - - - Based on an old Unix program in which a pseudorandom message is - displayed from a database of quotations, created by the - community. We're adopting this basic idea, and - decentralizing it, placing the basic ask-and-receive - functionality on-chain. - - - - Blog Article - - - - )} - - - - {status === FortuneStageStatus.FUNDING_METHOD && ( - - )} - {status === FortuneStageStatus.JOB_REQUEST && ( - - )} - {status === FortuneStageStatus.LAUNCH && } - {status === FortuneStageStatus.LAUNCH_SUCCESS && ( - - )} - {status === FortuneStageStatus.LAUNCH_FAIL && ( - setStatus(FortuneStageStatus.JOB_REQUEST)} - /> - )} - - - - - - ); -}; diff --git a/packages/apps/escrow-dashboard/src/pages/index.ts b/packages/apps/escrow-dashboard/src/pages/index.ts index 2a01fab84f..0f48c7c034 100644 --- a/packages/apps/escrow-dashboard/src/pages/index.ts +++ b/packages/apps/escrow-dashboard/src/pages/index.ts @@ -1,3 +1,2 @@ export { Main } from './Main'; export { LeaderboardPage as Leaderboard } from './Leaderboard'; -export { FortunePage as Fortune } from './Fortune'; diff --git a/packages/apps/escrow-dashboard/src/routes/routes.ts b/packages/apps/escrow-dashboard/src/routes/routes.ts index 9b4be1d604..698096fd08 100644 --- a/packages/apps/escrow-dashboard/src/routes/routes.ts +++ b/packages/apps/escrow-dashboard/src/routes/routes.ts @@ -1,5 +1,5 @@ import { FC } from 'react'; -import { Main, Leaderboard, Fortune } from 'src/pages'; +import { Main, Leaderboard } from 'src/pages'; interface Route { key: string; @@ -24,11 +24,4 @@ export const routes: Array = [ enabled: true, component: Leaderboard, }, - { - key: 'fortune-route', - title: 'Fortune', - path: '/fortune', - enabled: true, - component: Fortune, - }, ]; diff --git a/packages/examples/fortune/launcher/.env.development b/packages/examples/fortune/launcher/.env.development index bb11e20c86..bffd2c3c19 100644 --- a/packages/examples/fortune/launcher/.env.development +++ b/packages/examples/fortune/launcher/.env.development @@ -1,6 +1 @@ -REACT_APP_PUBLIC_URL=/ -REACT_APP_HMT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 -REACT_APP_ESCROW_FACTORY_ADDRESS=0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 -REACT_APP_REC_ORACLE_ADDRESS=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 -REACT_APP_REP_ORACLE_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC -REACT_APP_EXCHANGE_ORACLE_ADDRESS=0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809 +REACT_APP_JOB_LAUNCHER_SERVER_URL=https://job-launcher-server.vercel.app \ No newline at end of file diff --git a/packages/examples/fortune/launcher/Dockerfile b/packages/examples/fortune/launcher/Dockerfile index a4c53b87d1..ae3a3b3c14 100644 --- a/packages/examples/fortune/launcher/Dockerfile +++ b/packages/examples/fortune/launcher/Dockerfile @@ -1,11 +1,6 @@ FROM node:16.13-buster -ARG PUBLIC_URL -ARG HMT_ADDRESS -ARG ESCROW_FACTORY_ADDRESS -ARG REC_ORACLE_ADDRESS -ARG REP_ORACLE_ADDRESS -ARG EXCHANGE_ORACLE_ADDRESS +ARG JOB_LAUNCHER_SERVER_URL WORKDIR /usr/src/app @@ -16,10 +11,5 @@ RUN yarn COPY ./public ./public COPY ./src ./src -RUN PUBLIC_URL=$PUBLIC_URL \ - REACT_APP_HMT_ADDRESS=$HMT_ADDRESS \ - REACT_APP_ESCROW_FACTORY_ADDRESS=$ESCROW_FACTORY_ADDRESS \ - REACT_APP_REC_ORACLE_ADDRESS=$REC_ORACLE_ADDRESS \ - REACT_APP_REP_ORACLE_ADDRESS=$REP_ORACLE_ADDRESS \ - REACT_APP_EXCHANGE_ORACLE_ADDRESS=$EXCHANGE_ORACLE_ADDRESS \ +RUN REACT_APP_JOB_LAUNCHER_SERVER_URL=$JOB_LAUNCHER_SERVER_URL \ yarn build \ No newline at end of file diff --git a/packages/examples/fortune/launcher/package.json b/packages/examples/fortune/launcher/package.json index ac2cf71cec..4d87ac8cb4 100644 --- a/packages/examples/fortune/launcher/package.json +++ b/packages/examples/fortune/launcher/package.json @@ -3,7 +3,10 @@ "version": "0.1.0", "private": true, "dependencies": { + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", "@human-protocol/core": "workspace:*", + "@mui/material": "^5.11.7", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -12,10 +15,12 @@ "@types/react": "^18.0.25", "@types/react-dom": "^18.0.9", "axios": "^1.1.3", + "buffer": "^6.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", "typescript": "^4.9.3", + "wagmi": "^0.11.2", "web-vitals": "^2.1.4", "web3": "^1.8.1" }, diff --git a/packages/apps/escrow-dashboard/public/images/fortune-crypto.png b/packages/examples/fortune/launcher/public/images/fortune-crypto.png similarity index 100% rename from packages/apps/escrow-dashboard/public/images/fortune-crypto.png rename to packages/examples/fortune/launcher/public/images/fortune-crypto.png diff --git a/packages/apps/escrow-dashboard/public/images/fortune-fiat.png b/packages/examples/fortune/launcher/public/images/fortune-fiat.png similarity index 100% rename from packages/apps/escrow-dashboard/public/images/fortune-fiat.png rename to packages/examples/fortune/launcher/public/images/fortune-fiat.png diff --git a/packages/examples/fortune/launcher/public/index.html b/packages/examples/fortune/launcher/public/index.html index aa069f27cb..65fee46bc0 100644 --- a/packages/examples/fortune/launcher/public/index.html +++ b/packages/examples/fortune/launcher/public/index.html @@ -24,6 +24,10 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> + React App diff --git a/packages/examples/fortune/launcher/src/App.css b/packages/examples/fortune/launcher/src/App.css deleted file mode 100644 index 9c91f89cff..0000000000 --- a/packages/examples/fortune/launcher/src/App.css +++ /dev/null @@ -1,52 +0,0 @@ -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #fafcff; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: rgb(0, 0, 0); -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -input { - width: 400px; - height: 30px; -} - -button { - height: 40px; - min-width: 100px; - border-radius: 10px; - background-color: #fafcff; - font-size: 14px; - letter-spacing: .1px; -} - -button:hover { - background-color: rgb(221, 221, 221); -} diff --git a/packages/examples/fortune/launcher/src/App.test.tsx b/packages/examples/fortune/launcher/src/App.test.tsx deleted file mode 100644 index 2a68616d98..0000000000 --- a/packages/examples/fortune/launcher/src/App.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/packages/examples/fortune/launcher/src/App.tsx b/packages/examples/fortune/launcher/src/App.tsx index a0ca422c40..2420b4f550 100644 --- a/packages/examples/fortune/launcher/src/App.tsx +++ b/packages/examples/fortune/launcher/src/App.tsx @@ -1,53 +1,115 @@ -import React, { useState, useEffect } from 'react'; -import getWeb3 from './utils/web3'; -import Escrow from './components/escrow'; -import Staking from './components/staking'; -import './App.css'; - +import Box from '@mui/material/Box'; +import { Grid, Link, Typography } from '@mui/material'; +import React, { useState } from 'react'; +import { + FortuneStages, + FortuneFundingMethod, + FortuneJobRequest, + FortuneLaunch, + FortuneLaunchSuccess, + FortuneLaunchFail, +} from 'src/components'; +import { FortuneStageStatus, FundingMethodType } from 'src/components/types'; function App() { - const web3 = getWeb3(); - const [isMetamaskInstalled, setIsMetamaskInstalled] = useState(false); - const [isMetamaskConnected, setIsMetamaskConnected] = useState(false); + const [status, setStatus] = useState( + FortuneStageStatus.FUNDING_METHOD + ); + const [fundingMethod, setFundingMethod] = + useState('crypto'); - useEffect(() => { - (async function () { - const { ethereum } = window; - if (typeof ethereum !== 'undefined' && ethereum.isMetaMask) { - setIsMetamaskInstalled(true); - const accounts = await web3.eth.getAccounts(); - if (accounts.length > 0) { - setIsMetamaskConnected(true); - } - } - })(); - }, [web3.eth]); + const handleChangeFundingMethod = (method: FundingMethodType) => { + setFundingMethod(method); + setStatus(FortuneStageStatus.JOB_REQUEST); + }; - const connect = async () => { - await window.ethereum.request({ method: 'eth_requestAccounts' }); - setIsMetamaskConnected(true); - } + const handleBack = () => { + setFundingMethod('crypto'); + setStatus(FortuneStageStatus.JOB_REQUEST); + }; return ( -
-
- {!isMetamaskInstalled && - (

Metamask not installed

) - } - {!isMetamaskConnected && - () - } - { - isMetamaskConnected && - () - } - { - isMetamaskConnected && - () - } -
-
+ + + + {status === FortuneStageStatus.FUNDING_METHOD && ( + + + Fortune + + + HUMAN Protocol basic functionality demo + + + Based on an old Unix program in which a pseudorandom message is + displayed from a database of quotations, created by the + community. We're adopting this basic idea, and + decentralizing it, placing the basic ask-and-receive + functionality on-chain. + + + + Blog Article + + + + )} + + + + {status === FortuneStageStatus.FUNDING_METHOD && ( + + )} + {status === FortuneStageStatus.JOB_REQUEST && ( + setStatus(FortuneStageStatus.LAUNCH)} + onSuccess={() => setStatus(FortuneStageStatus.LAUNCH_SUCCESS)} + onFail={() => setStatus(FortuneStageStatus.LAUNCH_FAIL)} + /> + )} + {status === FortuneStageStatus.LAUNCH && } + {status === FortuneStageStatus.LAUNCH_SUCCESS && ( + + )} + {status === FortuneStageStatus.LAUNCH_FAIL && ( + setStatus(FortuneStageStatus.JOB_REQUEST)} + /> + )} + + + + + ); } -export default App; \ No newline at end of file +export default App; diff --git a/packages/apps/escrow-dashboard/src/assets/coinbase.svg b/packages/examples/fortune/launcher/src/assets/coinbase.svg similarity index 100% rename from packages/apps/escrow-dashboard/src/assets/coinbase.svg rename to packages/examples/fortune/launcher/src/assets/coinbase.svg diff --git a/packages/apps/escrow-dashboard/src/assets/metamask.svg b/packages/examples/fortune/launcher/src/assets/metamask.svg similarity index 100% rename from packages/apps/escrow-dashboard/src/assets/metamask.svg rename to packages/examples/fortune/launcher/src/assets/metamask.svg diff --git a/packages/apps/escrow-dashboard/src/assets/walletconnect.svg b/packages/examples/fortune/launcher/src/assets/walletconnect.svg similarity index 100% rename from packages/apps/escrow-dashboard/src/assets/walletconnect.svg rename to packages/examples/fortune/launcher/src/assets/walletconnect.svg diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/FortuneStages.tsx b/packages/examples/fortune/launcher/src/components/FortuneStages.tsx similarity index 100% rename from packages/apps/escrow-dashboard/src/components/Fortune/FortuneStages.tsx rename to packages/examples/fortune/launcher/src/components/FortuneStages.tsx diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/FundingMethod.tsx b/packages/examples/fortune/launcher/src/components/FundingMethod.tsx similarity index 98% rename from packages/apps/escrow-dashboard/src/components/Fortune/FundingMethod.tsx rename to packages/examples/fortune/launcher/src/components/FundingMethod.tsx index fc5104d994..331c04142f 100644 --- a/packages/apps/escrow-dashboard/src/components/Fortune/FundingMethod.tsx +++ b/packages/examples/fortune/launcher/src/components/FundingMethod.tsx @@ -1,9 +1,9 @@ import { Box, Button, Typography } from '@mui/material'; import React, { useEffect, useState } from 'react'; import { useAccount } from 'wagmi'; -import WalletModal from '../WalletModal'; import { RoundedBox } from './RoundedBox'; import { FundingMethodType } from './types'; +import WalletModal from './WalletModal'; type FundingMethodProps = { onChange: (arg: FundingMethodType) => void; diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/JobRequest.tsx b/packages/examples/fortune/launcher/src/components/JobRequest.tsx similarity index 70% rename from packages/apps/escrow-dashboard/src/components/Fortune/JobRequest.tsx rename to packages/examples/fortune/launcher/src/components/JobRequest.tsx index f2c6d61fbf..d1e1abcc0b 100644 --- a/packages/apps/escrow-dashboard/src/components/Fortune/JobRequest.tsx +++ b/packages/examples/fortune/launcher/src/components/JobRequest.tsx @@ -1,6 +1,8 @@ +import HMTokenABI from '@human-protocol/core/abis/HMToken.json'; import { Box, Button, + CircularProgress, FormControl, Grid, InputLabel, @@ -9,33 +11,48 @@ import { TextField, Typography, } from '@mui/material'; -import { SUPPORTED_CHAIN_IDS, ESCROW_NETWORKS, ChainId } from 'src/constants'; +import axios from 'axios'; +import { ethers } from 'ethers'; +import { + SUPPORTED_CHAIN_IDS, + ESCROW_NETWORKS, + ChainId, + HM_TOKEN_DECIMALS, +} from 'src/constants'; import React, { useState } from 'react'; -import { useAccount } from 'wagmi'; +import { useAccount, useChainId, useSigner, useSwitchNetwork } from 'wagmi'; import { RoundedBox } from './RoundedBox'; import { FortuneJobRequestType, FundingMethodType } from './types'; type JobRequestProps = { fundingMethod: FundingMethodType; onBack: () => void; - onLaunch: (data: any) => void; + onLaunch: () => void; + onSuccess: () => void; + onFail: () => void; }; export const JobRequest = ({ fundingMethod, onBack, onLaunch, + onSuccess, + onFail, }: JobRequestProps) => { const { address } = useAccount(); + const { data: signer } = useSigner(); + const chainId = useChainId(); + const { switchNetwork } = useSwitchNetwork(); const [jobRequest, setJobRequest] = useState({ chainId: 80001, title: '', description: '', - fortunesRequired: 0, + fortunesRequired: '', token: '', - fundAmount: 0, + fundAmount: '', jobRequester: '', }); + const [isLoading, setIsLoading] = useState(false); const handleJobRequestFormFieldChange = ( fieldName: string, @@ -44,6 +61,43 @@ export const JobRequest = ({ setJobRequest({ ...jobRequest, [fieldName]: fieldValue }); }; + const handleLaunch = async () => { + if (!signer || !address) return; + + if (chainId !== jobRequest.chainId) { + switchNetwork?.(jobRequest.chainId); + return; + } + + setIsLoading(true); + const data: FortuneJobRequestType = { + ...jobRequest, + jobRequester: address, + token: ESCROW_NETWORKS[jobRequest.chainId as ChainId]?.hmtAddress!, + }; + try { + const contract = new ethers.Contract(data.token, HMTokenABI, signer); + const escrowFactoryAddress = + ESCROW_NETWORKS[data.chainId as ChainId]?.factoryAddress; + const tx = await contract.approve( + escrowFactoryAddress, + ethers.utils.parseUnits(data.fundAmount, HM_TOKEN_DECIMALS) + ); + const receipt = await tx.wait(); + console.log(receipt); + + const baseUrl = process.env.REACT_APP_JOB_LAUNCHER_SERVER_URL; + onLaunch(); + await axios.post(`${baseUrl}/escrow`, data); + onSuccess(); + } catch (err) { + console.log(err); + onFail(); + } + + setIsLoading(false); + }; + return ( @@ -99,7 +153,7 @@ export const JobRequest = ({ onChange={(e) => handleJobRequestFormFieldChange( 'fortunesRequired', - Number(e.target.value) + e.target.value ) } /> @@ -140,23 +194,12 @@ export const JobRequest = ({ - {/* - Token - - */} - handleJobRequestFormFieldChange( - 'fundAmount', - Number(e.target.value) - ) + handleJobRequestFormFieldChange('fundAmount', e.target.value) } /> @@ -173,15 +216,11 @@ export const JobRequest = ({ diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx b/packages/examples/fortune/launcher/src/components/Launch.tsx similarity index 100% rename from packages/apps/escrow-dashboard/src/components/Fortune/Launch.tsx rename to packages/examples/fortune/launcher/src/components/Launch.tsx diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/LaunchFail.tsx b/packages/examples/fortune/launcher/src/components/LaunchFail.tsx similarity index 100% rename from packages/apps/escrow-dashboard/src/components/Fortune/LaunchFail.tsx rename to packages/examples/fortune/launcher/src/components/LaunchFail.tsx diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/LaunchSuccess.tsx b/packages/examples/fortune/launcher/src/components/LaunchSuccess.tsx similarity index 100% rename from packages/apps/escrow-dashboard/src/components/Fortune/LaunchSuccess.tsx rename to packages/examples/fortune/launcher/src/components/LaunchSuccess.tsx diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/RoundedBox.tsx b/packages/examples/fortune/launcher/src/components/RoundedBox.tsx similarity index 100% rename from packages/apps/escrow-dashboard/src/components/Fortune/RoundedBox.tsx rename to packages/examples/fortune/launcher/src/components/RoundedBox.tsx diff --git a/packages/apps/escrow-dashboard/src/components/WalletModal/index.tsx b/packages/examples/fortune/launcher/src/components/WalletModal.tsx similarity index 100% rename from packages/apps/escrow-dashboard/src/components/WalletModal/index.tsx rename to packages/examples/fortune/launcher/src/components/WalletModal.tsx diff --git a/packages/examples/fortune/launcher/src/components/escrow/create.tsx b/packages/examples/fortune/launcher/src/components/escrow/create.tsx deleted file mode 100644 index 5ff46b607b..0000000000 --- a/packages/examples/fortune/launcher/src/components/escrow/create.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import getWeb3 from '../../utils/web3'; -import factoryAbi from '@human-protocol/core/abis/EscrowFactory.json'; -import { ESCROW_FACTORY_ADDRESS } from '../../constants/constants'; - -export default function CreateEscrow() { - const [escrow, setEscrow] = useState(''); - const [lastEscrow, setLastEscrow] = useState(''); - const web3 = getWeb3(); - const escrowFactory = new web3.eth.Contract( - factoryAbi as [], - ESCROW_FACTORY_ADDRESS - ); - - useEffect(() => { - (async function () { - const lastEscrowAddr = await escrowFactory.methods.lastEscrow().call(); - - setLastEscrow(lastEscrowAddr); - })(); - }, [escrowFactory.methods]); - - const create = async () => { - const accounts = await web3.eth.getAccounts(); - const mainAccount = accounts[0]; - - const createdEscrow = await escrowFactory.methods - .createEscrow([mainAccount]) - .send({ from: mainAccount }); - setEscrow(createdEscrow.events.Launched.returnValues.escrow); - }; - - return ( -
- Factory address {ESCROW_FACTORY_ADDRESS} - Last escrow created {lastEscrow} - Escrow created: {escrow} - -
- ); -} diff --git a/packages/examples/fortune/launcher/src/components/escrow/index.css b/packages/examples/fortune/launcher/src/components/escrow/index.css deleted file mode 100644 index 6acd0fecdd..0000000000 --- a/packages/examples/fortune/launcher/src/components/escrow/index.css +++ /dev/null @@ -1,27 +0,0 @@ -.escrow-container { - display: flex; - flex-direction: row; -} - -.escrow-container-item { - margin-left: 40px; - padding: 30px 30px 30px 30px; -} - -.escrow-create { - display: flex; - flex-direction: column; -} - -.escrow-create span{ - margin-bottom: 10px; -} - -.escrow-view span{ - margin-bottom: 10px; -} - -.escrow-view { - display: flex; - flex-direction: column; -} diff --git a/packages/examples/fortune/launcher/src/components/escrow/index.tsx b/packages/examples/fortune/launcher/src/components/escrow/index.tsx deleted file mode 100644 index 3df8d36d3e..0000000000 --- a/packages/examples/fortune/launcher/src/components/escrow/index.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import Create from './create'; -import View from './view'; - -import './index.css'; - -export default function Escrow() { - return ( -
-
-
-
- ) -} diff --git a/packages/examples/fortune/launcher/src/components/escrow/view.tsx b/packages/examples/fortune/launcher/src/components/escrow/view.tsx deleted file mode 100644 index 488cef1371..0000000000 --- a/packages/examples/fortune/launcher/src/components/escrow/view.tsx +++ /dev/null @@ -1,170 +0,0 @@ -import React, { useState } from 'react'; -import axios from 'axios'; -import EscrowABI from '@human-protocol/core/abis/Escrow.json'; -import HMTokenABI from '@human-protocol/core/abis/HMToken.json'; -import getWeb3 from '../../utils/web3'; -import {HMT_ADDRESS, REC_ORACLE_ADDRESS, REP_ORACLE_ADDRESS} from '../../constants/constants'; - -const statusesMap = ['Launched', 'Pending', 'Partial', 'Paid', 'Complete', 'Cancelled']; - -export default function Escrow() { - - const web3 = getWeb3(); - const [escrow, setEscrow] = useState(''); - - const [escrowStatus, setEscrowStatus] = useState(''); - - const [reputationOracle, setReputationOracle] = useState(''); - const [reputationOracleStake, setReputationOracleStake] = useState(''); - - const [recordingOracle, setRecordingOracle] = useState(''); - const [recordingOracleStake, setRecordingOracleStake] = useState(''); - - const [manifestUrl, setManifestUrl] = useState(''); - const [finalResultsUrl, setFinalResultsUrl] = useState(''); - const [balance, setBalance] = useState(''); - - const [exchangeUrl, setExchangeUrl] = useState(''); - - const setMainEscrow = async (address: string) => { - setEscrow(address); - const Escrow = new web3.eth.Contract(EscrowABI as [], address); - - const escrowSt = await Escrow.methods.status().call(); - setEscrowStatus(statusesMap[escrowSt]); - - const recOracleAddr = await Escrow.methods.recordingOracle().call(); - setRecordingOracle(recOracleAddr); - - const recOracleStake = await Escrow.methods.recordingOracleStake().call(); - setRecordingOracleStake(recOracleStake); - - const repOracleAddr = await Escrow.methods.reputationOracle().call(); - setReputationOracle(repOracleAddr); - - const repOracleStake = await Escrow.methods.reputationOracleStake().call(); - setReputationOracleStake(repOracleStake); - - const finalResults = await Escrow.methods.finalResultsUrl().call(); - setFinalResultsUrl(finalResults); - - const manifest = await Escrow.methods.manifestUrl().call(); - setManifestUrl(manifest); - - if (manifest) { - const exchangeOracleUrl = (await axios.get(manifest)).data.exchange_oracle_url; - setExchangeUrl(`${exchangeOracleUrl}?address=${address}`); - } - - - const balance = await Escrow.methods.getBalance().call(); - setBalance(web3.utils.fromWei(balance, 'ether')); - } - - - return ( -
-
- setEscrow(e.target.value)} value={escrow} /> - -
- Paste either the address from the "Escrow created" field or a new one - Address: {escrow} - Status: {escrowStatus} - Balance: {balance} - Recording Oracle: {recordingOracle} - Recording Oracle Stake: {recordingOracleStake}% - Reputation Oracle: {reputationOracle} - Reputation Oracle Stake: {reputationOracleStake}% - {exchangeUrl && Exchange } - - {!manifestUrl && Manifest } - {manifestUrl && Manifest URL } - - - {!finalResultsUrl && Final Results } - {finalResultsUrl && Final Results } - - { escrowStatus === 'Launched' && ( - setMainEscrow(escrow)} /> - )} -
- ) -} - - -function EscrowControls({escrowAddr, onUpdate}: any) { - const [recOracleAddr, setRecOracleAddr] = useState(REC_ORACLE_ADDRESS) - const [recOracleStake, setRecOracleStake] = useState(10) - const [repOracleAddr, setRepOracleAddr] = useState(REP_ORACLE_ADDRESS) - const [repOracleStake, setRepOracleStake] = useState(10) - const [manifestUrl, setManifestUrl] = useState('') - const [hmt, setHmt] = useState(0); - - const web3 = getWeb3(); - const Escrow = new web3.eth.Contract(EscrowABI as [], escrowAddr); - const Token = new web3.eth.Contract(HMTokenABI as [], HMT_ADDRESS); - - const fundEscrow = async () => { - if (hmt <= 0) { - return; - } - const accounts = await web3.eth.getAccounts(); - - const value = web3.utils.toWei(hmt.toString(), 'ether'); - await Token.methods.transfer(escrowAddr, value).send({from: accounts[0]}); - - onUpdate(); - } - - const setupEscrow = async () => { - const accounts = await web3.eth.getAccounts(); - - await Escrow.methods.setup( - repOracleAddr, - recOracleAddr, - repOracleStake, - recOracleStake, - manifestUrl, - manifestUrl - ).send({from: accounts[0]}) - - onUpdate(); - } - - - return ( - <> -
-

Fund the escrow:

- setHmt(Number(e.target.value))} /> - -
-
-
-

Recording Oracle

- setRecOracleAddr(e.target.value)} value={recOracleAddr} /> -
-
-

Recording Oracle Stake

- setRecOracleStake(Number(e.target.value))} value={recOracleStake} /> -
-
-

Reputation Oracle

- setRepOracleAddr(e.target.value)} value={repOracleAddr} /> -
-
-

Reputation Oracle Stake

- setRepOracleStake(Number(e.target.value))} value={repOracleStake} /> -
-
-

Manifest URL

- setManifestUrl(e.target.value)} value={manifestUrl} /> -
-
- -
-
- - ); -} diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/index.ts b/packages/examples/fortune/launcher/src/components/index.ts similarity index 100% rename from packages/apps/escrow-dashboard/src/components/Fortune/index.ts rename to packages/examples/fortune/launcher/src/components/index.ts diff --git a/packages/examples/fortune/launcher/src/components/staking/approve.tsx b/packages/examples/fortune/launcher/src/components/staking/approve.tsx deleted file mode 100644 index 2f55280f07..0000000000 --- a/packages/examples/fortune/launcher/src/components/staking/approve.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React, { useState } from 'react'; -import getWeb3 from '../../utils/web3'; -import factoryAbi from "@human-protocol/core/abis/EscrowFactory.json"; -import hmTokenAbi from '@human-protocol/core/abis/HMToken.json'; -import { ESCROW_FACTORY_ADDRESS, HMT_ADDRESS } from "../../constants/constants"; - -export default function Approve() { - const web3 = getWeb3(); - const [approveAmount, setApprove] = useState(0); - const hmToken = new web3.eth.Contract(hmTokenAbi as [], HMT_ADDRESS); - const factory = new web3.eth.Contract(factoryAbi as [], ESCROW_FACTORY_ADDRESS); - async function approve(){ - const stakingAddress = await factory.methods.staking().call(); - if (approveAmount <= 0) { - return; - } - const accounts = await web3.eth.getAccounts(); - - const value = web3.utils.toWei(approveAmount.toString(), 'ether'); - await hmToken.methods.approve(stakingAddress, value).send({from: accounts[0]}); - } - return ( -
-

Approve HMT for staking contract:

- setApprove(Number(e.target.value))} /> - -
- ); -} \ No newline at end of file diff --git a/packages/examples/fortune/launcher/src/components/staking/index.css b/packages/examples/fortune/launcher/src/components/staking/index.css deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/examples/fortune/launcher/src/components/staking/index.tsx b/packages/examples/fortune/launcher/src/components/staking/index.tsx deleted file mode 100644 index f1ec7b3108..0000000000 --- a/packages/examples/fortune/launcher/src/components/staking/index.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import Stake from './stake'; -import Approve from './approve'; - -import './index.css'; - -export default function Staking() { - return ( -
-
-
-
- ) -} diff --git a/packages/examples/fortune/launcher/src/components/staking/stake.tsx b/packages/examples/fortune/launcher/src/components/staking/stake.tsx deleted file mode 100644 index 9d02e7ad08..0000000000 --- a/packages/examples/fortune/launcher/src/components/staking/stake.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React, { useState } from 'react'; -import getWeb3 from '../../utils/web3'; -import { Contract } from 'web3-eth-contract'; -import stakingAbi from '@human-protocol/core/abis/Staking.json'; -import factoryAbi from "@human-protocol/core/abis/EscrowFactory.json"; -import { ESCROW_FACTORY_ADDRESS } from "../../constants/constants"; - -export default function Stake() { - const web3 = getWeb3(); - const [stakeAmount, setStake] = useState(0); - const factory = new web3.eth.Contract(factoryAbi as [], ESCROW_FACTORY_ADDRESS); - let staking: Contract; - - async function stake(){ - const stakingAddress = await factory.methods.staking().call(); - if(!staking){ - staking = new web3.eth.Contract(stakingAbi as [], stakingAddress); - } - if (stakeAmount <= 0) { - return; - } - const accounts = await web3.eth.getAccounts(); - - const value = web3.utils.toWei(stakeAmount.toString(), 'ether'); - await staking.methods.stake(value).send({from: accounts[0]}); - } - return ( -
-

HMT staking amount:

- setStake(Number(e.target.value))} /> - -
- ); -} \ No newline at end of file diff --git a/packages/apps/escrow-dashboard/src/components/Fortune/types.ts b/packages/examples/fortune/launcher/src/components/types.ts similarity index 85% rename from packages/apps/escrow-dashboard/src/components/Fortune/types.ts rename to packages/examples/fortune/launcher/src/components/types.ts index 1a0a025e00..fd19b14192 100644 --- a/packages/apps/escrow-dashboard/src/components/Fortune/types.ts +++ b/packages/examples/fortune/launcher/src/components/types.ts @@ -12,8 +12,8 @@ export type FortuneJobRequestType = { chainId: number; title: string; description: string; - fortunesRequired: number; + fortunesRequired: string; token: string; - fundAmount: number; + fundAmount: string; jobRequester: string; }; diff --git a/packages/examples/fortune/launcher/src/constants/constants.ts b/packages/examples/fortune/launcher/src/constants/constants.ts deleted file mode 100644 index 7bcdf24d26..0000000000 --- a/packages/examples/fortune/launcher/src/constants/constants.ts +++ /dev/null @@ -1,15 +0,0 @@ -export const HMT_ADDRESS = - process.env.REACT_APP_HMT_ADDRESS || - '0x5FbDB2315678afecb367f032d93F642f64180aa3'; -export const ESCROW_FACTORY_ADDRESS = - process.env.REACT_APP_ESCROW_FACTORY_ADDRESS || - '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9'; -export const REC_ORACLE_ADDRESS = - process.env.REACT_APP_REC_ORACLE_ADDRESS || - '0x61F9F0B31eacB420553da8BCC59DC617279731Ac'; -export const REP_ORACLE_ADDRESS = - process.env.REACT_APP_REP_ORACLE_ADDRESS || - '0xD979105297fB0eee83F7433fC09279cb5B94fFC6'; -export const EXCHANGE_ORACLE_ADDRESS = - process.env.REACT_APP_EXCHANGE_ORACLE_ADDRESS || - '0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809'; diff --git a/packages/examples/fortune/launcher/src/constants/index.ts b/packages/examples/fortune/launcher/src/constants/index.ts new file mode 100644 index 0000000000..715c8212bd --- /dev/null +++ b/packages/examples/fortune/launcher/src/constants/index.ts @@ -0,0 +1,94 @@ +export enum ChainId { + ALL = -1, + MAINNET = 1, + GOERLI = 5, + BSC_MAINNET = 56, + BSC_TESTNET = 97, + POLYGON = 137, + POLYGON_MUMBAI = 80001, + MOONBEAM = 1284, +} + +export const SUPPORTED_CHAIN_IDS = [ + ChainId.GOERLI, + ChainId.BSC_MAINNET, + ChainId.BSC_TESTNET, + ChainId.POLYGON, + ChainId.POLYGON_MUMBAI, + ChainId.MOONBEAM, +]; + +export interface IEscrowNetwork { + chainId: number; + title: string; + scanUrl: string; + rpcUrl: string; + subgraphUrl: string; + hmtAddress: string; + factoryAddress: string; +} + +export const ESCROW_NETWORKS: { + [chainId in ChainId]?: IEscrowNetwork; +} = { + [ChainId.GOERLI]: { + chainId: ChainId.GOERLI, + title: 'Ethereum Goerli', + scanUrl: 'https://goerli.etherscan.io', + rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', + subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', + factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', + hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', + }, + [ChainId.BSC_MAINNET]: { + chainId: ChainId.BSC_MAINNET, + title: 'Binance Smart Chain', + scanUrl: 'https://bscscan.com', + rpcUrl: 'https://bsc-dataseed1.binance.org/', + subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', + factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', + }, + [ChainId.BSC_TESTNET]: { + chainId: ChainId.BSC_TESTNET, + title: 'Binance Smart Chain (Testnet)', + scanUrl: 'https://testnet.bscscan.com', + rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', + factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', + hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', + }, + [ChainId.POLYGON]: { + chainId: ChainId.POLYGON, + title: 'Polygon', + scanUrl: 'https://polygonscan.com', + rpcUrl: 'https://polygon-rpc.com/', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', + factoryAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', + hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', + }, + [ChainId.POLYGON_MUMBAI]: { + chainId: ChainId.POLYGON_MUMBAI, + title: 'Polygon Mumbai', + scanUrl: 'https://mumbai.polygonscan.com', + rpcUrl: 'https://rpc-mumbai.maticvigil.com', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai-v1', + factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', + hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', + }, + [ChainId.MOONBEAM]: { + chainId: ChainId.MOONBEAM, + title: 'Moonbeam', + scanUrl: 'https://moonbeam.moonscan.io', + rpcUrl: 'https://rpc.api.moonbeam.network', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', + factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', + }, +}; + +export const HM_TOKEN_DECIMALS = 18; diff --git a/packages/examples/fortune/launcher/src/index.css b/packages/examples/fortune/launcher/src/index.css deleted file mode 100644 index 888b7efac4..0000000000 --- a/packages/examples/fortune/launcher/src/index.css +++ /dev/null @@ -1,17 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} - -* { - font-size: 15px; - } \ No newline at end of file diff --git a/packages/examples/fortune/launcher/src/index.tsx b/packages/examples/fortune/launcher/src/index.tsx index 032464fb6e..bf3d7bdc58 100644 --- a/packages/examples/fortune/launcher/src/index.tsx +++ b/packages/examples/fortune/launcher/src/index.tsx @@ -1,15 +1,68 @@ +import CssBaseline from '@mui/material/CssBaseline'; +import { ThemeProvider } from '@mui/material/styles'; import React from 'react'; import ReactDOM from 'react-dom/client'; -import './index.css'; +import { WagmiConfig, createClient, configureChains } from 'wagmi'; +import { + goerli, + mainnet, + polygon, + polygonMumbai, + bsc, + bscTestnet, +} from 'wagmi/chains'; +import { alchemyProvider } from 'wagmi/providers/alchemy'; +import { publicProvider } from 'wagmi/providers/public'; +import { CoinbaseWalletConnector } from 'wagmi/connectors/coinbaseWallet'; +import { MetaMaskConnector } from 'wagmi/connectors/metaMask'; +import { WalletConnectConnector } from 'wagmi/connectors/walletConnect'; + import App from './App'; import reportWebVitals from './reportWebVitals'; +import theme from './theme'; + +window.Buffer = window.Buffer || require('buffer').Buffer; + +// Configure chains & providers with the Alchemy provider. +// Two popular providers are Alchemy (alchemy.com) and Infura (infura.io) +const { chains, provider, webSocketProvider } = configureChains( + [goerli, mainnet, polygon, polygonMumbai, bsc, bscTestnet], + [publicProvider()] +); + +// Set up client +const client = createClient({ + autoConnect: true, + connectors: [ + new MetaMaskConnector({ chains }), + new CoinbaseWalletConnector({ + chains, + options: { + appName: 'wagmi', + }, + }), + new WalletConnectConnector({ + chains, + options: { + qrcode: true, + }, + }), + ], + provider, + webSocketProvider, +}); const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement ); root.render( - + + + + + + ); diff --git a/packages/examples/fortune/launcher/src/logo.svg b/packages/examples/fortune/launcher/src/logo.svg deleted file mode 100644 index 9dfc1c058c..0000000000 --- a/packages/examples/fortune/launcher/src/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/examples/fortune/launcher/src/theme.ts b/packages/examples/fortune/launcher/src/theme.ts new file mode 100644 index 0000000000..7f06fd08f3 --- /dev/null +++ b/packages/examples/fortune/launcher/src/theme.ts @@ -0,0 +1,62 @@ +import { createTheme } from '@mui/material/styles'; + +const theme = createTheme({ + palette: { + primary: { + main: '#320a8d', + light: '#320a8d', + dark: '#4a148c', + }, + info: { + main: '#eeeeee', + light: '#f5f5f5', + dark: '#bdbdbd', + }, + secondary: { + main: '#6309ff', + light: '#6309ff', + dark: '#00867d', + contrastText: '#000', + }, + text: { + primary: '#320a8d', + secondary: '#858ec6', + }, + }, + typography: { + fontFamily: 'Inter', + h2: { + fontSize: '80px', + lineHeight: 1.5, + letterSpacing: '-0.5px', + fontWeight: 800, + }, + h4: { + fontSize: '34px', + fontWeight: 600, + }, + h6: { + fontSize: '20px', + lineHeight: '160%', + }, + body1: { + fontSize: '16px', + lineHeight: '28px', + }, + body2: { + fontSize: '14px', + lineHeight: '24px', + }, + }, + components: { + MuiButton: { + styleOverrides: { + root: { + textTransform: 'none', + }, + }, + }, + }, +}); + +export default theme; diff --git a/yarn.lock b/yarn.lock index 1facf635fe..eae1769592 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2861,11 +2861,30 @@ prop-types "^15.8.1" react-is "^18.2.0" +"@mui/base@5.0.0-alpha.116": + version "5.0.0-alpha.116" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.116.tgz#c167a66b7232088b4bcd97ba36096a357c6e4fb9" + integrity sha512-VwhifWdrfHc4/ZdqRZ4Gf+7P39sovNN24By1YVZdvJ9fvp0Sr8sNftGUCjYXXz+xCXVBQDXvhfxMwZrj2MvJvA== + dependencies: + "@babel/runtime" "^7.20.7" + "@emotion/is-prop-valid" "^1.2.0" + "@mui/types" "^7.2.3" + "@mui/utils" "^5.11.7" + "@popperjs/core" "^2.11.6" + clsx "^1.2.1" + prop-types "^15.8.1" + react-is "^18.2.0" + "@mui/core-downloads-tracker@^5.11.5": version "5.11.5" resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz#473c9b918d974f03acc07d29ce467bb91eba13c6" integrity sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig== +"@mui/core-downloads-tracker@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.7.tgz#b3a3aad64c6b69f6165d7a00c0d9cfeacbe357a2" + integrity sha512-lZgX7XQTk0zVcpwEa80r+T4y09dosnUxWvFPSikU/2Hh5wnyNOek8WfJwGCNsaRiXJHMi5eHY+z8oku4u5lgNw== + "@mui/icons-material@^5.10.14", "@mui/icons-material@^5.10.6": version "5.11.0" resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.11.0.tgz#9ea6949278b2266d2683866069cd43009eaf6464" @@ -2891,6 +2910,24 @@ react-is "^18.2.0" react-transition-group "^4.4.5" +"@mui/material@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.7.tgz#d460c7239013a57cc2aa3d2bbe14ba875b29d7cb" + integrity sha512-wDv7Pc6kMe9jeWkmCLt4JChd1lPc2u23JQHpB35L2VwQowpNFoDfIwqi0sYCnZTMKlRc7lza8LqwSwHl2G52Rw== + dependencies: + "@babel/runtime" "^7.20.7" + "@mui/base" "5.0.0-alpha.116" + "@mui/core-downloads-tracker" "^5.11.7" + "@mui/system" "^5.11.7" + "@mui/types" "^7.2.3" + "@mui/utils" "^5.11.7" + "@types/react-transition-group" "^4.4.5" + clsx "^1.2.1" + csstype "^3.1.1" + prop-types "^15.8.1" + react-is "^18.2.0" + react-transition-group "^4.4.5" + "@mui/private-theming@^5.11.2": version "5.11.2" resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.2.tgz#93eafb317070888a988efa8d6a9ec1f69183a606" @@ -2900,6 +2937,15 @@ "@mui/utils" "^5.11.2" prop-types "^15.8.1" +"@mui/private-theming@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.7.tgz#e92b87d6ea68ae5a23d0f0d9d248361b889a98db" + integrity sha512-XzRTSZdc8bhuUdjablTNv3kFkZ/XIMlKkOqqJCU0G8W3tWGXpau2DXkafPd1ddjPhF9zF3qLKNGgKCChYItjgA== + dependencies: + "@babel/runtime" "^7.20.7" + "@mui/utils" "^5.11.7" + prop-types "^15.8.1" + "@mui/styled-engine@^5.11.0": version "5.11.0" resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.11.0.tgz#79afb30c612c7807c4b77602cf258526d3997c7b" @@ -2947,6 +2993,20 @@ csstype "^3.1.1" prop-types "^15.8.1" +"@mui/system@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.7.tgz#5e550c621733a18cd437678f11dcd1c3468129d0" + integrity sha512-uGB6hBxGlAdlmbLdTtUZYNPXkgQGGnKxHdkRATqsu7UlCxNsc/yS5NCEWy/3c4pnelD1LDLD39WrntP9mwhfkQ== + dependencies: + "@babel/runtime" "^7.20.7" + "@mui/private-theming" "^5.11.7" + "@mui/styled-engine" "^5.11.0" + "@mui/types" "^7.2.3" + "@mui/utils" "^5.11.7" + clsx "^1.2.1" + csstype "^3.1.1" + prop-types "^15.8.1" + "@mui/types@^7.2.3": version "7.2.3" resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.3.tgz#06faae1c0e2f3a31c86af6f28b3a4a42143670b9" @@ -2963,6 +3023,17 @@ prop-types "^15.8.1" react-is "^18.2.0" +"@mui/utils@^5.11.7": + version "5.11.7" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.11.7.tgz#a343a5d375b4140c875bf4c96825c1a148994800" + integrity sha512-8uyNDeVHZA804Ego20Erv8TpxlbqTe/EbhTI2H1UYr4/RiIbBprat8W4Qqr2UQIsC/b3DLz+0RQ6R/E5BxEcLA== + dependencies: + "@babel/runtime" "^7.20.7" + "@types/prop-types" "^15.7.5" + "@types/react-is" "^16.7.1 || ^17.0.0" + prop-types "^15.8.1" + react-is "^18.2.0" + "@mui/x-data-grid@^5.17.4": version "5.17.20" resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.20.tgz#ab50eadc330f10cdc056910598229ebcdcd3b062" From 3c845dea6f9315337b56175dd2685213940914a4 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 2 Feb 2023 09:29:24 +0100 Subject: [PATCH 153/216] fix approve function and show escrow address --- .../examples/fortune/launcher/.env.development | 3 ++- packages/examples/fortune/launcher/src/App.tsx | 10 ++++++++-- .../launcher/src/components/JobRequest.tsx | 17 +++++++++++------ .../launcher/src/components/LaunchSuccess.tsx | 14 ++++++++++++-- 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/packages/examples/fortune/launcher/.env.development b/packages/examples/fortune/launcher/.env.development index bffd2c3c19..e72fdc792e 100644 --- a/packages/examples/fortune/launcher/.env.development +++ b/packages/examples/fortune/launcher/.env.development @@ -1 +1,2 @@ -REACT_APP_JOB_LAUNCHER_SERVER_URL=https://job-launcher-server.vercel.app \ No newline at end of file +REACT_APP_JOB_LAUNCHER_SERVER_URL=https://job-launcher-server.vercel.app +REACT_APP_JOB_LAUNCHER_ADDRESS=0x52485f13E89220bC739180296Fec532bE34eb5dd \ No newline at end of file diff --git a/packages/examples/fortune/launcher/src/App.tsx b/packages/examples/fortune/launcher/src/App.tsx index 2420b4f550..c199e957d1 100644 --- a/packages/examples/fortune/launcher/src/App.tsx +++ b/packages/examples/fortune/launcher/src/App.tsx @@ -17,6 +17,7 @@ function App() { ); const [fundingMethod, setFundingMethod] = useState('crypto'); + const [escrowAddress, setEscrowAddress] = useState(''); const handleChangeFundingMethod = (method: FundingMethodType) => { setFundingMethod(method); @@ -28,6 +29,11 @@ function App() { setStatus(FortuneStageStatus.JOB_REQUEST); }; + const handleOnSuccess = (escrowAddress: string) => { + setEscrowAddress(escrowAddress); + setStatus(FortuneStageStatus.LAUNCH_SUCCESS); + }; + return ( setStatus(FortuneStageStatus.LAUNCH)} - onSuccess={() => setStatus(FortuneStageStatus.LAUNCH_SUCCESS)} + onSuccess={handleOnSuccess} onFail={() => setStatus(FortuneStageStatus.LAUNCH_FAIL)} /> )} {status === FortuneStageStatus.LAUNCH && } {status === FortuneStageStatus.LAUNCH_SUCCESS && ( - + )} {status === FortuneStageStatus.LAUNCH_FAIL && ( void; onLaunch: () => void; - onSuccess: () => void; + onSuccess: (escrowAddress: string) => void; onFail: () => void; }; @@ -77,10 +77,15 @@ export const JobRequest = ({ }; try { const contract = new ethers.Contract(data.token, HMTokenABI, signer); - const escrowFactoryAddress = - ESCROW_NETWORKS[data.chainId as ChainId]?.factoryAddress; + const jobLauncherAddress = process.env.REACT_APP_JOB_LAUNCHER_ADDRESS; + if (!jobLauncherAddress) + { + alert('Job Launcher address is missing'); + setIsLoading(false); + return; + } const tx = await contract.approve( - escrowFactoryAddress, + jobLauncherAddress, ethers.utils.parseUnits(data.fundAmount, HM_TOKEN_DECIMALS) ); const receipt = await tx.wait(); @@ -88,8 +93,8 @@ export const JobRequest = ({ const baseUrl = process.env.REACT_APP_JOB_LAUNCHER_SERVER_URL; onLaunch(); - await axios.post(`${baseUrl}/escrow`, data); - onSuccess(); + const result = await axios.post(`${baseUrl}/escrow`, data); + onSuccess(result.data); } catch (err) { console.log(err); onFail(); diff --git a/packages/examples/fortune/launcher/src/components/LaunchSuccess.tsx b/packages/examples/fortune/launcher/src/components/LaunchSuccess.tsx index 907188fe37..dfaed598a7 100644 --- a/packages/examples/fortune/launcher/src/components/LaunchSuccess.tsx +++ b/packages/examples/fortune/launcher/src/components/LaunchSuccess.tsx @@ -2,14 +2,24 @@ import { Button, Typography } from '@mui/material'; import React from 'react'; import { RoundedBox } from './RoundedBox'; -export const LaunchSuccess = () => { +type LaunchSuccessProps = { + escrowAddress: string +}; + + +export const LaunchSuccess = ({ + escrowAddress +}: LaunchSuccessProps) => { return ( Success! - Success message here. Next call to action call. + Your escrow has been created + + + { escrowAddress } - - - Fill the exchange address to pass the fortune to the recording oracle - - - - - Address: - - - - - - - - Status: - - - - - - - Balance: - - - -
- - -
- - -`; diff --git a/yarn.lock b/yarn.lock index 466207ed41..4077df54e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1094,7 +1094,7 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@coinbase/wallet-sdk@^3.5.4": +"@coinbase/wallet-sdk@^3.3.0", "@coinbase/wallet-sdk@^3.5.4": version "3.6.3" resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.6.3.tgz#fd96f6f19d5a0090520c1b014ad4737bbc8e1267" integrity sha512-XUR4poOJE+dKzwBTdlM693CdLFitr046oZOVY3iDnbFcRrrQswhbDji7q4CmUcD4HxbfViX7PFoIwl79YQcukg== @@ -1985,46 +1985,46 @@ lodash.lowercase "^4.3.0" tslib "^2.4.1" -"@graphql-tools/batch-execute@8.5.15": - version "8.5.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.15.tgz#f61ac71d11e57c9b9f8b8b60fc882e4e9762d182" - integrity sha512-qb12M8XCK6SBJmZDS8Lzd4PVJFsIwNUkYmFuqcTiBqOI/WsoDlQDZI++ghRpGcusLkL9uzcIOTT/61OeHhsaLg== +"@graphql-tools/batch-execute@8.5.16": + version "8.5.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.16.tgz#ced188d096906a7fe477708c63304d4e70291013" + integrity sha512-x/gXA6R1Q/qigT5LDesZYemErzFYvBBuTaVgiIJuE2wG6oMV1cln0O35Z7WVQw6H3I4vF7cCG7c7wKSoC+3z4Q== dependencies: - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/utils" "9.2.0" dataloader "2.1.0" tslib "^2.4.0" value-or-promise "1.0.12" "@graphql-tools/code-file-loader@^7.3.6": - version "7.3.17" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.17.tgz#bfe854c2d61f429a62ca0976fbd0f12045142abc" - integrity sha512-LqJgYJCau1/uIOZmnFixl8yJT99jTjQlNhUP3Vj0oQ0HODdPUKUjWA87SkwZR1TJzX19iKf/iGzfbLCAAhFRbA== + version "7.3.18" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.18.tgz#fba541ebe58cda6c0913f693cbc8ec75a4a0f97d" + integrity sha512-DK0YjsJWKkLF6HQYuuqiDwMr9rwRojm8yR/T+J8vXCOR4ndYa1EvUm9wRHPhxHVOYeptO2u+APoWNEhuMN9Hbw== dependencies: - "@graphql-tools/graphql-tag-pluck" "7.4.3" - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/graphql-tag-pluck" "7.4.4" + "@graphql-tools/utils" "9.2.0" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/delegate@9.0.24": - version "9.0.24" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.24.tgz#69ae776175f41696f16a9a1c9074af525be4152b" - integrity sha512-8+ircuaz51+yLip2qBBYenNlV8xiP7i44C+H+kO82ARmo2h47/q488K38DMbOL5//7G2Qt0GEZwTEF4h8ICGJQ== +"@graphql-tools/delegate@9.0.25": + version "9.0.25" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.25.tgz#bdfdb6cba67e4c01993c0545733b3d00563f6c1f" + integrity sha512-M7DMrPx8uEjXUshkki0ufcL//9Dj12eR3vykvteFB6odYL9cX5dhZC9l1D2IdQRuHzLMskhkhRtfnXRoa82KTA== dependencies: - "@graphql-tools/batch-execute" "8.5.15" - "@graphql-tools/executor" "0.0.12" - "@graphql-tools/schema" "9.0.14" - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/batch-execute" "8.5.16" + "@graphql-tools/executor" "0.0.13" + "@graphql-tools/schema" "9.0.15" + "@graphql-tools/utils" "9.2.0" dataloader "2.1.0" tslib "~2.5.0" value-or-promise "1.0.12" -"@graphql-tools/executor-graphql-ws@0.0.7": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.7.tgz#5e7b0e6d02d3b64727bfb37c0f2c1e13badcb829" - integrity sha512-C6EExKoukn4vu3BbvlqsqtC91F4pTLPDZvRceYjpFzTCQSGFSjfrxQGP/haGlemXVRpIDxBy7wpXoQlsF8UmFA== +"@graphql-tools/executor-graphql-ws@0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.8.tgz#e39d3cedd4266637fb830e34291447317bc15673" + integrity sha512-96Eac8M8gg0ABApoVIbsMp1BI9TDhz0uJnMqgEIMODzEx0Y41VsLl0aG2PXQuZQvFfowyl3hzhQli6SRZ4DgYg== dependencies: - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/utils" "9.2.0" "@repeaterjs/repeater" "3.0.4" "@types/ws" "^8.0.0" graphql-ws "5.11.2" @@ -2032,12 +2032,12 @@ tslib "^2.4.0" ws "8.12.0" -"@graphql-tools/executor-http@0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.3.tgz#6a9dd9c0a6984ea7d0a57569c7cabbf9f3df75ca" - integrity sha512-Bv4OqEbE4z5FG7dVrVKWvwkL0QKASWgEz3524ll3qDtHEUyE1lrItA+qVBxj0mcAV5tP0C8TNglZe8Ib/iTNzA== +"@graphql-tools/executor-http@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.4.tgz#350f498c9516c75a8093ef34438dc53eadd5f669" + integrity sha512-6NGxLA9Z/cSOLExxfgddXqoS9JHr0QzvC4YmrjeMz533eW/SDnCf+4803PxkLi0j5CUTUPBnt9hC79l1AD2rZQ== dependencies: - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/utils" "9.2.0" "@repeaterjs/repeater" "3.0.4" "@whatwg-node/fetch" "0.6.5" dset "3.1.2" @@ -2046,110 +2046,110 @@ tslib "^2.4.0" value-or-promise "1.0.12" -"@graphql-tools/executor-legacy-ws@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.6.tgz#236dd5b3d4d19492978b1458b74928e8c69d16ff" - integrity sha512-L1hRuSvBUCNerYDhfeSZXFeqliDlnNXa3fDHTp7efI3Newpbevqa19Fm0mVzsCL7gqIKOwzrPORwh7kOVE/vew== +"@graphql-tools/executor-legacy-ws@0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.7.tgz#d3d6255ab0b6f6b8487adbda70c2711fdb4f5ac4" + integrity sha512-tSBJE/uv/r0iQjsU16QZkRLLCT0cmVWPqn8NVuAp3yqEeYlU7bzf38L4wNYTn46OHIYElFxXBFsGgMdyvrQLzg== dependencies: - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/utils" "9.2.0" "@types/ws" "^8.0.0" isomorphic-ws "5.0.0" tslib "^2.4.0" ws "8.12.0" -"@graphql-tools/executor@0.0.12": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.12.tgz#d885c7fa98a8aaeaa771163b71fb98ce9f52f9bd" - integrity sha512-bWpZcYRo81jDoTVONTnxS9dDHhEkNVjxzvFCH4CRpuyzD3uL+5w3MhtxIh24QyWm4LvQ4f+Bz3eMV2xU2I5+FA== +"@graphql-tools/executor@0.0.13": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.13.tgz#29bc084d273822f1189bce5b64cfdae0c89bc333" + integrity sha512-bZ7QdUV5URLCjD/WuDkvyROYoDVoueTN5W1PatkcN949lwIwEKXUW6y3gRSpiZjXw8IH4/NmN3xPk10OT1emRw== dependencies: - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/utils" "9.2.0" "@graphql-typed-document-node/core" "3.1.1" "@repeaterjs/repeater" "3.0.4" tslib "^2.4.0" value-or-promise "1.0.12" "@graphql-tools/graphql-file-loader@^7.3.7": - version "7.5.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.14.tgz#6c6527e353cf9adcbda2cdc8a85face03ad8fe04" - integrity sha512-JGer4g57kq4wtsvqv8uZsT4ZG1lLsz1x5yHDfSj2OxyiWw2f1jFkzgby7Ut3H2sseJiQzeeDYZcbm06qgR32pg== + version "7.5.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.15.tgz#60b94400bbcb9b285a4434aa91186b8ad97bd6df" + integrity sha512-K6yOfKkQdXQRBl+UY4FzGdoSzGG09GLPZv4q7OFp8do16CXhaxAI+kmJvsvrutSyBfLETPTkCHtzFmdRmTeLpg== dependencies: - "@graphql-tools/import" "6.7.15" - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/import" "6.7.16" + "@graphql-tools/utils" "9.2.0" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@7.4.3", "@graphql-tools/graphql-tag-pluck@^7.3.6": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.3.tgz#b07f2263c383d9605d941c836dc01a7bbc6e56a7" - integrity sha512-w+nrJVQw+NTuaZNQG5AwSh4Qe+urP/s4rUz5s1T007rDnv1kvkiX+XHOCnIfJzXOTuvFmG4GGYw/x0CuSRaGZQ== +"@graphql-tools/graphql-tag-pluck@7.4.4", "@graphql-tools/graphql-tag-pluck@^7.3.6": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.4.tgz#16f8f7c5c5579f98106c58473b65806f2839da8a" + integrity sha512-yHIEcapR/kVSrn4W4Nf3FYpJKPcoGvJbdbye8TnW3dD5GkG4UqVnKuyqFvQPOhgqXKbloFZqUhNqEuyqxqIPRw== 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.1.4" + "@graphql-tools/utils" "9.2.0" tslib "^2.4.0" -"@graphql-tools/import@6.7.15": - version "6.7.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.15.tgz#7553e48140797255588b26d423a89aa042196928" - integrity sha512-WNhvauAt2I2iUg+JdQK5oQebKLXqUZWe8naP13K1jOkbTQT7hK3P/4I9AaVmzt0KXRJW5Uow3RgdHZ7eUBKVsA== +"@graphql-tools/import@6.7.16": + version "6.7.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.16.tgz#5383db75b8fd173788d1c307084cdc6fcf0d8880" + integrity sha512-m07u+8YsBtKg5w5BG04KFTd59PCAPMAy5Dv/NlR4zCiH/Zbpy5PoetokCZKDrFHYUzjPlm8r//vfCG+JTvHw7g== dependencies: - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/utils" "9.2.0" resolve-from "5.0.0" tslib "^2.4.0" "@graphql-tools/json-file-loader@^7.3.7": - version "7.4.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.15.tgz#ed229d98784350623d2ef32628690db405fa6780" - integrity sha512-pH+hbsDetcEpj+Tmi7ZRUkxzJez2DLdSQuvK5Qi38FX/Nz/5nZKRfW9nqIptGYbuS9+2JPrt9WWNn1aGtegIFQ== + version "7.4.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.16.tgz#f2ca1e162ddee1424b39078c74c14b6bd9d177bf" + integrity sha512-9MsqpwIrCx0l880V0dud01DhkwYwqCIlZlCA3bN+TExWa9U3aZhyPO/5BWQU6W52wKk61TvyN6agUa+f4R7jVQ== dependencies: - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/utils" "9.2.0" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" "@graphql-tools/load@^7.5.5": - version "7.8.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.10.tgz#c62ccc850e6f846e8214f1ae05e675a864d79b80" - integrity sha512-Mc1p7ZSxrW5yGG3BLQnhiL8RPG0HdxFVoHV7fpx2adp4o1V7BzDjKRSbCnAxShA1wA4n8wbA+n7NTC0edi4eNA== + version "7.8.11" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.11.tgz#b9026dd15729dec1e4c318c67d0d3036b583fd1f" + integrity sha512-pVn3fYP/qZ3m2NE86gSexyZpEmvTSUe+OIRfWBM60a4L/SycMxgVfYB5+PyDCzruFZg/didIG3v7RfPlZ7zNTQ== dependencies: - "@graphql-tools/schema" "9.0.14" - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/schema" "9.0.15" + "@graphql-tools/utils" "9.2.0" p-limit "3.1.0" tslib "^2.4.0" -"@graphql-tools/merge@8.3.16", "@graphql-tools/merge@^8.2.6": - version "8.3.16" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.16.tgz#fede610687b148e34ff861e8b038dcd71e20039b" - integrity sha512-In0kcOZcPIpYOKaqdrJ3thdLPE7TutFnL9tbrHUy2zCinR2O/blpRC48jPckcs0HHrUQ0pGT4HqvzMkZUeEBAw== +"@graphql-tools/merge@8.3.17", "@graphql-tools/merge@^8.2.6": + version "8.3.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.17.tgz#d7e184a296eb455c1550ab95991c5a2f68ea16a4" + integrity sha512-CLzz49lc6BavPhH9gPRm0sJeNA7kC/tF/jLUTQsyef6xj82Jw3rqIJ9PE+bk1cqPCOG01WLOfquBu445OMDO2g== dependencies: - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/utils" "9.2.0" tslib "^2.4.0" -"@graphql-tools/schema@9.0.14": - version "9.0.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.14.tgz#9a658ab82d5a7d4db73f68a44900d4c88a98f0bc" - integrity sha512-U6k+HY3Git+dsOEhq+dtWQwYg2CAgue8qBvnBXoKu5eEeH284wymMUoNm0e4IycOgMCJANVhClGEBIkLRu3FQQ== +"@graphql-tools/schema@9.0.15": + version "9.0.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.15.tgz#6632765e0281a6c890c7ea6865f13c10bc98fc1b" + integrity sha512-p2DbpkOBcsi+yCEjwoS+r4pJ5z+3JjlJdhbPkCwC4q8lGf5r93dVYrExOrqGKTU5kxLXI/mxabSxcunjNIsDIg== dependencies: - "@graphql-tools/merge" "8.3.16" - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/merge" "8.3.17" + "@graphql-tools/utils" "9.2.0" tslib "^2.4.0" value-or-promise "1.0.12" "@graphql-tools/url-loader@^7.9.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.7.tgz#90efce39672e8d98c748afe793f347b2f6f04d88" - integrity sha512-SulOTzmUenj2+wt7XzFh2xakeYUuuzX7nDrjSlgmn/gKD4ydhzCkDz+WXXyvvEq2YmBd7x/iJMeL4N3wAZWk3w== + version "7.17.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.8.tgz#cfa50462e7e966d5066fbd1e1746f4e330938447" + integrity sha512-K2x1rrd+11iZD2OtScRQVsvz84WkKTNHpksdBGMHBXG2WKzez4xye08HvxJN31ZKUMGaJLxbuFPnLTxlOvlu7w== dependencies: "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/delegate" "9.0.24" - "@graphql-tools/executor-graphql-ws" "0.0.7" - "@graphql-tools/executor-http" "0.1.3" - "@graphql-tools/executor-legacy-ws" "0.0.6" - "@graphql-tools/utils" "9.1.4" - "@graphql-tools/wrap" "9.3.3" + "@graphql-tools/delegate" "9.0.25" + "@graphql-tools/executor-graphql-ws" "0.0.8" + "@graphql-tools/executor-http" "0.1.4" + "@graphql-tools/executor-legacy-ws" "0.0.7" + "@graphql-tools/utils" "9.2.0" + "@graphql-tools/wrap" "9.3.4" "@types/ws" "^8.0.0" "@whatwg-node/fetch" "^0.6.0" isomorphic-ws "5.0.0" @@ -2157,25 +2157,26 @@ value-or-promise "^1.0.11" ws "8.12.0" -"@graphql-tools/utils@9.1.4", "@graphql-tools/utils@^9.0.0": - version "9.1.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.1.4.tgz#2c9e0aefc9655dd73247667befe3c850ec014f3f" - integrity sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg== +"@graphql-tools/utils@9.2.0", "@graphql-tools/utils@^9.0.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.0.tgz#d74d0376231c0e8bf897a715fafaf53d0f6bf06c" + integrity sha512-s3lEG1iYkyYEnKCWrIFECX3XH2wmZvbg6Ir3udCvIDynq+ydaO7JQXobclpPtwSJtjlS353haF//6V7mnBQ4bg== dependencies: + "@graphql-typed-document-node/core" "^3.1.1" tslib "^2.4.0" -"@graphql-tools/wrap@9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.3.tgz#d69a21f9d13ccff89bc95cc479b45ab23683e55b" - integrity sha512-KN+mWFXqUAZVYWotp396lAestMZx7SYwvCWwi6D9HNy89PLK2XYBfXKlvTUYZ5zEC5s2Qhc/DbnHJ3hSFyX7Gg== +"@graphql-tools/wrap@9.3.4": + version "9.3.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.4.tgz#67c1e78ac22a076dbe4be60bf716dec2c39d2102" + integrity sha512-MJY6lZqi+j96izjOYOLk5fys34oiLt7U34SQ4Wd6V/sy1utVMbh2H7XiZAuDJ38JIKmr72qN7kLgNcnNOxXjHQ== dependencies: - "@graphql-tools/delegate" "9.0.24" - "@graphql-tools/schema" "9.0.14" - "@graphql-tools/utils" "9.1.4" + "@graphql-tools/delegate" "9.0.25" + "@graphql-tools/schema" "9.0.15" + "@graphql-tools/utils" "9.2.0" tslib "^2.4.0" value-or-promise "1.0.12" -"@graphql-typed-document-node/core@3.1.1": +"@graphql-typed-document-node/core@3.1.1", "@graphql-typed-document-node/core@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== @@ -3603,7 +3604,7 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== -"@sinclair/typebox@^0.25.21": +"@sinclair/typebox@^0.25.16", "@sinclair/typebox@^0.25.21": version "0.25.21" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== @@ -3950,21 +3951,21 @@ dependencies: "@tanstack/query-core" "4.24.4" -"@tanstack/query-sync-storage-persister@^4.14.5": +"@tanstack/query-sync-storage-persister@^4.0.10", "@tanstack/query-sync-storage-persister@^4.14.5": version "4.24.4" resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.24.4.tgz#7d7230b0d911ade3648bdaa0f87b30b086f734e0" integrity sha512-0wffVqoOydMc1TDjOiATv/TM8wJfMpRcM82Cr19TuepListopTsuZ3RzSzLKBCo8WRl/0zCR1Ti9t1zn+Oai/A== dependencies: "@tanstack/query-persist-client-core" "4.24.4" -"@tanstack/react-query-persist-client@^4.14.5": +"@tanstack/react-query-persist-client@^4.0.10", "@tanstack/react-query-persist-client@^4.14.5": version "4.24.4" resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.24.4.tgz#9e7f4854cd06605fc3481137645661ec5bf0a276" integrity sha512-vQ10ghQrmk+VMrv8BtD1WgvdcGlL7z8QLC9oGryYPORLueOmVvW8nB3GL7aWp84pkLLXPLR32WopXMfseHWukw== dependencies: "@tanstack/query-persist-client-core" "4.24.4" -"@tanstack/react-query@^4.14.5": +"@tanstack/react-query@^4.0.10", "@tanstack/react-query@^4.14.5": version "4.24.4" resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.24.4.tgz#79e892edac33d8aa394795390c0f79e4a8c9be4d" integrity sha512-RpaS/3T/a3pHuZJbIAzAYRu+1nkp+/enr9hfRXDS/mojwx567UiMksoqW4wUFWlwIvWTXyhot2nbIipTKEg55Q== @@ -4849,10 +4850,10 @@ resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.5.0.tgz#c921183ae518bb484299c2dc81f2acefd91c3dbe" integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== -"@vercel/build-utils@6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-6.0.1.tgz#8770345de898ac00d8f9a7641d7baf1098ad32b5" - integrity sha512-dODPwcsYDfptshwSmnW7VN7V8G8NHBuTyshOzazde3MAvvOJoG5SdqZ+Mdayhgv16I3UV93j/JNsbamQcqE3VQ== +"@vercel/build-utils@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-6.1.0.tgz#c973788dce6bf6baefdd112a03d497ffc6ec3c9a" + integrity sha512-mDDbQ9plFNzkE+Kc/Xv4FweuQmnlKkuJw0QDdaHVeD4LixZ/yl2LXjRhQaVsnv/M9wR8piSjZUaj1Rvhakv2Tg== "@vercel/node-bridge@3.1.10": version "3.1.10" @@ -4860,15 +4861,15 @@ integrity sha512-0DQzF5pdyP+xd5f1Ss2fAO+9xIvzUhngRAPazwg4XHZE9iLkv2L+A1u3L8NYi4hoUlAAZQ5GF3txlm/oBn4tNw== "@vercel/node@^2.5.26": - version "2.8.17" - resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.8.17.tgz#ed2ca3c8c872819a44f89a49a02cf1dbdc7b757c" - integrity sha512-szlW6MQ0hok3oeGexB2JwGkOFXluvkWMUA5L4uxkx8xYhd0rBoSi3rWgO84V3SyS8g8SSIZmxKoOT5plm8mO9w== + version "2.9.0" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.9.0.tgz#c5714794a97b7f49bfaf426898fbe0c4eb8acb9f" + integrity sha512-I87lBDUdZnzUzZgFxIk4FUj207EBcm7mVEHW3yN0V9Z3jTfg8PJDe8T2OeJFsKpYsI58nzSAYYA8viKJjrVcdg== dependencies: "@edge-runtime/vm" "2.0.0" "@types/node" "14.18.33" - "@vercel/build-utils" "6.0.1" + "@vercel/build-utils" "6.1.0" "@vercel/node-bridge" "3.1.10" - "@vercel/static-config" "2.0.11" + "@vercel/static-config" "2.0.12" edge-runtime "2.0.0" esbuild "0.14.47" exit-hook "2.2.1" @@ -4876,10 +4877,10 @@ ts-node "10.9.1" typescript "4.3.4" -"@vercel/static-config@2.0.11": - version "2.0.11" - resolved "https://registry.yarnpkg.com/@vercel/static-config/-/static-config-2.0.11.tgz#5d210e62479f1a847028f5b50ac18bccf8732585" - integrity sha512-dw6CAJ7U2AcQpjZV9YfOyz2wTseSFdkT3qivBg2GjHtVyd5wdY7vkQ9seLKEckYhFx3CjQ29IhzhDND9F5oINw== +"@vercel/static-config@2.0.12": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@vercel/static-config/-/static-config-2.0.12.tgz#ff17565e74f391cd896ae79859e164070c93de91" + integrity sha512-mkTS3t6RV6Fu7G21LpegEuuHl9rwfyNkoBvsNV5BBP0h7/3OzHwHip+t20oKWk3IrWu5ic0nbLNhyARdkeA1hQ== dependencies: ajv "8.6.3" json-schema-to-ts "1.6.4" @@ -4950,6 +4951,14 @@ eventemitter3 "^4.0.7" zustand "^4.3.1" +"@wagmi/core@^0.5.8": + version "0.5.8" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.5.8.tgz#9e375c0dd31c3b22973d000694e1c2b06c05dbbc" + integrity sha512-1mABf1bXyn3AOHyQkios4FTGqoARa8y1tf7GMH6t1c7q0nAMSbpXoTDdjEidUHy8qhWoG0y3Ez4PjCi8WQnmMg== + dependencies: + eventemitter3 "^4.0.7" + zustand "^4.0.0" + "@walletconnect/browser-utils@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951" @@ -4971,10 +4980,10 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" -"@walletconnect/core@2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.3.2.tgz#0a726de894834e882d0561a245c9a2077fc5c4a8" - integrity sha512-ZqdTVFe/lsaLIizYlW2C3LI1Q6m1269vjrGuYZT0HL/G2y9IKqBoUo9x11Omw56/evZNSpttZgL4oY6G+E7XrQ== +"@walletconnect/core@2.3.3": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.3.3.tgz#28ab50cd7d2457f638fd66e2e4d741eecfefa626" + integrity sha512-pkPG3f0Mb9WcWMeLtRS8+RSV9gpnAGrU0y291LNXjggDupg5H7I1hFtcj5HI0kmpk4suAS4RKqYAxPzy4MgFRQ== dependencies: "@walletconnect/heartbeat" "1.2.0" "@walletconnect/jsonrpc-provider" "^1.0.6" @@ -4986,8 +4995,8 @@ "@walletconnect/relay-auth" "^1.0.4" "@walletconnect/safe-json" "^1.0.1" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.3.2" - "@walletconnect/utils" "2.3.2" + "@walletconnect/types" "2.3.3" + "@walletconnect/utils" "2.3.3" events "^3.3.0" lodash.isequal "4.5.0" pino "7.11.0" @@ -5030,7 +5039,7 @@ dependencies: tslib "1.14.1" -"@walletconnect/ethereum-provider@^1.8.0": +"@walletconnect/ethereum-provider@^1.7.8", "@walletconnect/ethereum-provider@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-1.8.0.tgz#ed1dbf9cecc3b818758a060d2f9017c50bde1d32" integrity sha512-Nq9m+oo5P0F+njsROHw9KMWdoc/8iGHYzQdkjJN/1C7DtsqFRg5k5a3hd9rzCLpbPsOC1q8Z5lRs6JQgDvPm6Q== @@ -5195,20 +5204,20 @@ dependencies: tslib "1.14.1" -"@walletconnect/sign-client@2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.3.2.tgz#e1d6597aaeacd1e2e0f0f1659d5b2f69b680ea4c" - integrity sha512-j40KzTVjxBYSMbU8fvqua38aWt+uW9XTYvIIQ+uxoXhhq18cIZe84nA+bcdtkUakua3V5XjlRsqJI7vMNHajwQ== +"@walletconnect/sign-client@2.3.3": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.3.3.tgz#62bf395f8817e289d42dc77549f885d834c4b78b" + integrity sha512-Q+KiqYYecf9prJoQWLIV7zJcEPa69XBzwrad4sQPcDD1BZMWa1f8OZUH3HmlmuCzopqEr4mgXU6v6yFHOasADw== dependencies: - "@walletconnect/core" "2.3.2" + "@walletconnect/core" "2.3.3" "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.0" "@walletconnect/jsonrpc-provider" "^1.0.6" "@walletconnect/jsonrpc-utils" "^1.0.4" "@walletconnect/logger" "^2.0.1" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.3.2" - "@walletconnect/utils" "2.3.2" + "@walletconnect/types" "2.3.3" + "@walletconnect/utils" "2.3.3" events "^3.3.0" pino "7.11.0" @@ -5240,10 +5249,10 @@ dependencies: tslib "1.14.1" -"@walletconnect/types@2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.3.2.tgz#fcced7a2b7a75f67a652ecfc9047e36b787b414c" - integrity sha512-j4KL1P46omZPr5DNUrzE8l+MMFNfQZ5UYQ6G7xoRfKxZThGA88MPY/SwOu32NOiWYoUSCnfQA1f/B6Z1ie0v/g== +"@walletconnect/types@2.3.3": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.3.3.tgz#0d22b325dd854533790226cee8f1b93966fecc47" + integrity sha512-g2x27MloGElcRTwYM9Md/1E2RQ5ifYBCFZ/sfnpQrZPVxK3NzSMHJlcV6qrQm9ST82i+UrLEce9RkDgvjKk7+w== dependencies: "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.0" @@ -5258,26 +5267,26 @@ integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== "@walletconnect/universal-provider@^2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.3.2.tgz#ea85c55cdda4e8896ed11ec35816838aee3bf14f" - integrity sha512-x/tA3U16prAuRi208dRaGN9vop2r/u+entWFcwUX2iagG0Bth+2KPIk8lpz85jUOg8t4n2lF6NVJ8bpDmZkElw== + version "2.3.3" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.3.3.tgz#b3f162e1c25e795c1812123d5280248e8ca32315" + integrity sha512-pibtlTUn7dg5Y5vs8tzSGaaDlq8eSXgHh7o9iMMpE4Fr06HyM36J0niGTOsKvMa+u5keCTwVhbB4MNnN08zVvg== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.4" "@walletconnect/jsonrpc-provider" "^1.0.6" "@walletconnect/jsonrpc-types" "^1.0.2" "@walletconnect/jsonrpc-utils" "^1.0.4" "@walletconnect/logger" "^2.0.1" - "@walletconnect/sign-client" "2.3.2" - "@walletconnect/types" "2.3.2" - "@walletconnect/utils" "2.3.2" + "@walletconnect/sign-client" "2.3.3" + "@walletconnect/types" "2.3.3" + "@walletconnect/utils" "2.3.3" eip1193-provider "1.0.1" events "^3.3.0" pino "7.11.0" -"@walletconnect/utils@2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.3.2.tgz#a1faf622515dd3d558766fe76020d0d88d5bbc36" - integrity sha512-eyYzJelFD7OhWJIylAiZ4/pH6zLLJDN5QvidkbgXKK3fIIRLqCwAQIK38PqOyC+I5/Hi8UQHY0iU2yQJAsFbdA== +"@walletconnect/utils@2.3.3": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.3.3.tgz#7775ae536cc1ac37e14211eb4fc6b07cbb75f9d9" + integrity sha512-wS9ptLlT30c7m7zme3/y3cNjKXztZeKIulqBD1K/VxSxWEA4mK9mmXEACdmahjiX4EHZWtdHvEIu2rLDhkrrvQ== dependencies: "@stablelib/chacha20poly1305" "1.0.1" "@stablelib/hkdf" "1.0.1" @@ -5288,7 +5297,7 @@ "@walletconnect/relay-api" "^1.0.7" "@walletconnect/safe-json" "^1.0.1" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.3.2" + "@walletconnect/types" "2.3.3" "@walletconnect/window-getters" "^1.0.1" "@walletconnect/window-metadata" "^1.0.1" detect-browser "5.3.0" @@ -6252,9 +6261,9 @@ avvio@^8.2.0: fastq "^1.6.1" aws-sdk@^2.1255.0: - version "2.1306.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1306.0.tgz#33a5f8d732c2bfb8bb0d8dd946163814f294242d" - integrity sha512-t3M04Nx+uHVYcRGZXoI0Dr24I722oslwkwGT/gFPR2+Aub5dQ88+BetCPBvg24sZDg2RNWNxepYk5YHuKV5Hrg== + version "2.1307.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1307.0.tgz#387e0ca566d135a28b1fa0397edfd1a3f45e8ea6" + integrity sha512-fRGMLrFrndcl7VXp6ynbFry4S+eO360cIw5sdfI2ZdC86aQlg7vSh5WAdARMExnwKCeaoiGhRe1fTBS3WoLwAw== dependencies: buffer "4.9.2" events "1.1.1" @@ -6298,9 +6307,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.1.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.0.tgz#4cb0d72213989dec08d4b10129e42063bcb3dc78" - integrity sha512-oCye5nHhTypzkdLIvF9SaHfr8UAquqCn1KY3j8vsrjeol8yohAdGxIpRPbF1bOLsx33HOAatdfMX1yzsj2cHwg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.1.tgz#80bf6c8dbb46e6db1fa8fe9ab114c1ca7405c2ee" + integrity sha512-78pWJsQTceInlyaeBQeYZ/QgZeWS8hGeKiIJiDKQe3hEyBb7sEMq0K4gjx+Va6WHTYO4zI/RRl8qGRzn0YMadA== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -11916,9 +11925,9 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphql-config@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.4.0.tgz#4b2d34d846bd4b9a40afbadfc5a4426668963c43" - integrity sha512-QUrX7R4htnTBTi83a0IlIilWVfiLEG8ANFlHRcxoZiTvOXTbgan67SUdGe1OlopbDuyNgtcy4ladl3Gvk4C36A== + version "4.4.1" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.4.1.tgz#2b1b5215b38911c0b15ff9b2e878101c984802d6" + integrity sha512-B8wlvfBHZ5WnI4IiuQZRqql6s+CKz7S+xpUeTb28Z8nRBi8tH9ChEBgT5FnTyE05PUhHlrS2jK9ICJ4YBl9OtQ== dependencies: "@graphql-tools/graphql-file-loader" "^7.3.7" "@graphql-tools/json-file-loader" "^7.3.7" @@ -19663,9 +19672,9 @@ solc@0.7.3: tmp "0.0.33" solidity-ast@^0.4.15: - version "0.4.44" - resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.44.tgz#dd6732bd65bb1d01777fc537de99cbb3d4e0089d" - integrity sha512-Ct3ppqWS0uTWNYxM2cgruUeWYzqYmeikANsCHgGBnMjAMsqONgqnYrlpifQxNFwXOPHD3vZQLmCjaYnQ+i3eQA== + version "0.4.45" + resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.45.tgz#37c1c17bd79123106fc69d94b4a8e9237ae8c625" + integrity sha512-N6uqfaDulVZqjpjru+KvMLjV89M3hesyr/1/t8nkjohRagFSDmDxZvb9viKV98pdwpMzs61Nt2JAApgh0fkL0g== solidity-comments-extractor@^0.0.7: version "0.0.7" @@ -21560,7 +21569,7 @@ wabt@1.0.24: resolved "https://registry.yarnpkg.com/wabt/-/wabt-1.0.24.tgz#c02e0b5b4503b94feaf4a30a426ef01c1bea7c6c" integrity sha512-8l7sIOd3i5GWfTWciPL0+ff/FK/deVK2Q6FN+MPz4vfUcD78i2M/49XJTwF6aml91uIiuXJEsLKWMB2cw/mtKg== -wagmi@0.11.2, wagmi@^0.11.2: +wagmi@0.11.2: version "0.11.2" resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.11.2.tgz#fee24b0861bd06fd62cf1c43414d149e4f1cfa97" integrity sha512-Chjhk3Q38ex01Caz91rI43gG4sMKs6G6kN5uEyxkupwXw9pzKxCoDAm53ZDtuo1CxqiD4Df39Gv8Qx+APvKNDg== @@ -21572,6 +21581,19 @@ wagmi@0.11.2, wagmi@^0.11.2: abitype "^0.3.0" use-sync-external-store "^1.2.0" +wagmi@^0.6.7: + version "0.6.8" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.6.8.tgz#bfc65686ec08cf1c508b1dbf5fbefbbe828653cd" + integrity sha512-pIOn7I56KPfdPQ1WRIWzWnpC8eJZm1V25Rcn5fbgOJ2eV3kjGNchnIub/ERY1VMKywxkCAfgXfn2D/tqwCJsWw== + dependencies: + "@coinbase/wallet-sdk" "^3.3.0" + "@tanstack/query-sync-storage-persister" "^4.0.10" + "@tanstack/react-query" "^4.0.10" + "@tanstack/react-query-persist-client" "^4.0.10" + "@wagmi/core" "^0.5.8" + "@walletconnect/ethereum-provider" "^1.7.8" + use-sync-external-store "^1.2.0" + walker@^1.0.7, walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -22772,7 +22794,7 @@ zksync-web3@^0.8.1: resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.8.1.tgz#db289d8f6caf61f4d5ddc471fa3448d93208dc14" integrity sha512-1A4aHPQ3MyuGjpv5X/8pVEN+MdZqMjfVmiweQSRjOlklXYu65wT9BGEOtCmMs5d3gIvLp4ssfTeuR5OCKOD2kw== -zustand@^4.3.1: +zustand@^4.0.0, zustand@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.2.tgz#bb121fcad84c5a569e94bd1a2695e1a93ba85d39" integrity sha512-rd4haDmlwMTVWVqwvgy00ny8rtti/klRoZjFbL/MAcDnmD5qSw/RZc+Vddstdv90M5Lv6RPgWvm1Hivyn0QgJw== From 5fe7fcbc0048ffdf26e80b7b14c4a1c166d085e5 Mon Sep 17 00:00:00 2001 From: m00n620 Date: Thu, 2 Feb 2023 08:53:54 -0500 Subject: [PATCH 159/216] fix constants, check stats --- .../apps/escrow-dashboard/src/constants/index.ts | 16 +++++++--------- .../escrow-dashboard/src/state/escrow/reducer.ts | 8 ++++++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index 4386fa1c2a..496c81cd8b 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -56,9 +56,8 @@ export const ESCROW_NETWORKS: { title: 'Ethereum Goerli', scanUrl: 'https://goerli.etherscan.io', rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', - subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli-v1', - factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', + subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', + factoryAddress: '0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F', hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', }, [ChainId.BSC_MAINNET]: { @@ -76,9 +75,9 @@ export const ESCROW_NETWORKS: { scanUrl: 'https://testnet.bscscan.com', rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest-v1', - factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', - hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', + 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', + factoryAddress: '0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f', + hmtAddress: '0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317', }, [ChainId.POLYGON]: { chainId: ChainId.POLYGON, @@ -95,9 +94,8 @@ export const ESCROW_NETWORKS: { title: 'Polygon Mumbai', scanUrl: 'https://mumbai.polygonscan.com', rpcUrl: 'https://rpc-mumbai.maticvigil.com', - subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai-v1', - factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', + subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai', + factoryAddress: '0x558cd800f9F0B02f3B149667bDe003284c867E94', hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', }, [ChainId.MOONBEAM]: { diff --git a/packages/apps/escrow-dashboard/src/state/escrow/reducer.ts b/packages/apps/escrow-dashboard/src/state/escrow/reducer.ts index 602e6524d4..24264b3600 100644 --- a/packages/apps/escrow-dashboard/src/state/escrow/reducer.ts +++ b/packages/apps/escrow-dashboard/src/state/escrow/reducer.ts @@ -96,6 +96,14 @@ export const fetchEscrowStatsAsync = createAsyncThunk< ) .then((res) => res.json()) .then((json) => { + if (!json.data.escrowStatistics) { + return { + intermediateStorageEventCount: 0, + pendingEventCount: 0, + bulkTransferEventCount: 0, + totalEventCount: 0, + }; + } const { intermediateStorageEventCount, pendingEventCount, From 6509da1f767b3f262d13b0effad58efd53d24da9 Mon Sep 17 00:00:00 2001 From: m00n620 Date: Thu, 2 Feb 2023 08:59:55 -0500 Subject: [PATCH 160/216] revert constants changes --- .../apps/escrow-dashboard/src/constants/index.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index 496c81cd8b..4386fa1c2a 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -56,8 +56,9 @@ export const ESCROW_NETWORKS: { title: 'Ethereum Goerli', scanUrl: 'https://goerli.etherscan.io', rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', - subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', - factoryAddress: '0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli-v1', + factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', }, [ChainId.BSC_MAINNET]: { @@ -75,9 +76,9 @@ export const ESCROW_NETWORKS: { scanUrl: 'https://testnet.bscscan.com', rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', - factoryAddress: '0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f', - hmtAddress: '0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317', + 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest-v1', + factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', + hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', }, [ChainId.POLYGON]: { chainId: ChainId.POLYGON, @@ -94,8 +95,9 @@ export const ESCROW_NETWORKS: { title: 'Polygon Mumbai', scanUrl: 'https://mumbai.polygonscan.com', rpcUrl: 'https://rpc-mumbai.maticvigil.com', - subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai', - factoryAddress: '0x558cd800f9F0B02f3B149667bDe003284c867E94', + subgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai-v1', + factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', }, [ChainId.MOONBEAM]: { From 4b46b378c1beb976413ea73e00c413033cf84956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 2 Feb 2023 15:06:01 +0100 Subject: [PATCH 161/216] Add chainId in post body for recording oracle and remove exchange tests --- .../fortune/exchange/src/components/Escrow/Escrow.tsx | 11 +++++++++-- .../src/services/RecordingOracle/RecordingClient.ts | 4 +++- packages/examples/fortune/launcher/.env.development | 6 ------ packages/examples/fortune/package.json | 2 +- 4 files changed, 13 insertions(+), 10 deletions(-) delete mode 100644 packages/examples/fortune/launcher/.env.development diff --git a/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx b/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx index 741989528e..0db8fb2933 100644 --- a/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx +++ b/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx @@ -3,7 +3,7 @@ import { getContract, getProvider } from '@wagmi/core'; import axios from 'axios'; import { ethers } from 'ethers'; import { useCallback, useEffect, useState } from 'react'; -import { useAccount } from 'wagmi'; +import { useAccount, useNetwork } from 'wagmi'; import sendFortune from '../../services/RecordingOracle/RecordingClient'; import './Escrow.css'; @@ -45,6 +45,7 @@ function parseQuery(qs: any) { } export const Escrow = () => { const { address } = useAccount(); + const { chain } = useNetwork(); const provider = getProvider(); const [escrow, setEscrow] = useState(''); const [fortune, setFortune] = useState(''); @@ -87,7 +88,13 @@ export const Escrow = () => { }, [setMainEscrow]); const send = async () => { - await sendFortune(escrow, fortune, recordingOracleUrl, address as string); + await sendFortune( + escrow, + fortune, + recordingOracleUrl, + address as string, + chain?.id as number + ); alert('Your fortune has been submitted'); setFortune(''); return; diff --git a/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts b/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts index 3869386b2e..f7bef40949 100644 --- a/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts +++ b/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts @@ -4,12 +4,14 @@ const sendFortune = async ( escrow: string, fortune: string, recordingOracleUrl: string, - workerAddress: string + workerAddress: string, + chainId: number ) => { const body = { workerAddress, escrowAddress: escrow, fortune, + chainId, }; await axios.post(recordingOracleUrl, body); return; diff --git a/packages/examples/fortune/launcher/.env.development b/packages/examples/fortune/launcher/.env.development deleted file mode 100644 index 935b3ebf21..0000000000 --- a/packages/examples/fortune/launcher/.env.development +++ /dev/null @@ -1,6 +0,0 @@ -REACT_APP_PUBLIC_URL=/ -REACT_APP_HMT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 -REACT_APP_ESCROW_FACTORY_ADDRESS=0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9 -REACT_APP_REC_ORACLE_ADDRESS=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 -REACT_APP_REP_ORACLE_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC -REACT_APP_EXCHANGE_ORACLE_ADDRESS=0x6b7E3C31F34cF38d1DFC1D9A8A59482028395809 diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index ea2b94c5f2..bfb0bb8a02 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -17,7 +17,7 @@ "test:recording": "cd recording-oracle && yarn test", "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", - "test:unit": "(concurrently -g \"yarn test:launcher-server\" \"yarn test:recording\" \"yarn test:reputation\" \"yarn test:exchange\") && docker compose down", + "test:unit": "(concurrently -g \"yarn test:launcher-server\" \"yarn test:recording\" \"yarn test:reputation\") && docker compose down", "test": "concurrently -g \"yarn minio\" \"yarn test:unit\"", "lint": "eslint .", "lint:fix": "eslint . --fix" From 32eb5ec03b0ecc4007d645c690ef7482e5f280a3 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 3 Feb 2023 11:53:26 +0100 Subject: [PATCH 162/216] delpoy on polygon and disable mainnets fortune --- .github/workflows/cd-subgraph.yaml | 2 +- CONTRACTS_LIST.md | 10 ++-- .../escrow-dashboard/src/constants/index.ts | 4 +- packages/core/hardhat.config.ts | 8 +++ .../launcher/client/src/constants/index.ts | 58 +++++++++---------- .../launcher/server/src/constants/networks.ts | 2 +- .../typescript/subgraph/config/matic-v1.json | 27 +++++++++ .../sdk/typescript/subgraph/config/matic.json | 17 ------ 8 files changed, 73 insertions(+), 55 deletions(-) create mode 100644 packages/sdk/typescript/subgraph/config/matic-v1.json delete mode 100644 packages/sdk/typescript/subgraph/config/matic.json diff --git a/.github/workflows/cd-subgraph.yaml b/.github/workflows/cd-subgraph.yaml index adb77555e5..926a76fa8e 100644 --- a/.github/workflows/cd-subgraph.yaml +++ b/.github/workflows/cd-subgraph.yaml @@ -15,7 +15,7 @@ jobs: matrix: network: - name: matic - graph: polygon + graph: polygon-v1 - name: goerli graph: goerli-v1 - name: moonbeam diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 07c8757ddd..d4518ac79b 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -4,11 +4,11 @@ | Polygon (Mainnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| |2021/10/13 | HMToken | 0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF | N/A | -|2022/02/28 | EscrowFactory | 0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794 | | -| | Staking | | | -| | RewardPool | | | -|2022/03/01 | EthKVStore | 0x6334dB76037bb6d4bc21901433E870b22ACa1F9a | N/A | -| | Reputation | | | +|2022/02/28 | EscrowFactory | 0xe44D7eb960f24797D36FAdD8a8FfF29C76375Ef0 | 0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB | +| | Staking | 0xC2163A0928034e020f0d31e1171Ba0D6d9AfFB6c | 0xcbAd56bE3f504E98bd70875823d3CC0242B7bB29 | +| | RewardPool | 0x25E53A6D48A2744273C082e55bA5CCFCfD80f9e1 | 0xa8e32d777a3839440cc7c24D591A64B9481753B3 | +|2022/03/01 | EthKVStore | 0x35Cf4beBD58F9C8D75B9eA2599479b6C173d406F | N/A | +| | Reputation | N/A | N/A | | Polygon Mumbai (Testnet) | Contract | Address | Proxy | |--------------------------|----------------|--------------------------------------------|--------------------------------------------| diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index 4386fa1c2a..e463a48c0c 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -86,8 +86,8 @@ export const ESCROW_NETWORKS: { scanUrl: 'https://polygonscan.com', rpcUrl: 'https://polygon-rpc.com/', subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', - factoryAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', + 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon-v1', + factoryAddress: '0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB', hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', }, [ChainId.POLYGON_MUMBAI]: { diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 0f7604f005..9258790886 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -72,6 +72,13 @@ const config: HardhatUserConfig = { accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, + polygon: { + chainId: 137, + url: process.env.ETH_POLYGON_URL || '', + accounts: + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], + timeout: 1000000000, + }, polygonMumbai: { chainId: 80001, url: process.env.ETH_POLYGON_MUMBAI_URL || '', @@ -128,6 +135,7 @@ const config: HardhatUserConfig = { // For Mainnet, Goerli mainnet: process.env.ETHERSCAN_API_KEY || '', goerli: process.env.ETHERSCAN_API_KEY || '', + polygon: process.env.POLYGONSCAN_API_KEY || '', polygonMumbai: process.env.POLYGONSCAN_API_KEY || '', bscTestnet: process.env.BSC_TESTNET_API_KEY || '', moonbaseAlpha: process.env.MOONSCAN_API_KEY || '', diff --git a/packages/examples/fortune/launcher/client/src/constants/index.ts b/packages/examples/fortune/launcher/client/src/constants/index.ts index 715c8212bd..a551b08fd7 100644 --- a/packages/examples/fortune/launcher/client/src/constants/index.ts +++ b/packages/examples/fortune/launcher/client/src/constants/index.ts @@ -40,15 +40,15 @@ export const ESCROW_NETWORKS: { factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', }, - [ChainId.BSC_MAINNET]: { - chainId: ChainId.BSC_MAINNET, - title: 'Binance Smart Chain', - scanUrl: 'https://bscscan.com', - rpcUrl: 'https://bsc-dataseed1.binance.org/', - subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', - factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', - hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', - }, + // [ChainId.BSC_MAINNET]: { + // chainId: ChainId.BSC_MAINNET, + // title: 'Binance Smart Chain', + // scanUrl: 'https://bscscan.com', + // rpcUrl: 'https://bsc-dataseed1.binance.org/', + // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', + // factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + // hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', + // }, [ChainId.BSC_TESTNET]: { chainId: ChainId.BSC_TESTNET, title: 'Binance Smart Chain (Testnet)', @@ -59,16 +59,16 @@ export const ESCROW_NETWORKS: { factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', }, - [ChainId.POLYGON]: { - chainId: ChainId.POLYGON, - title: 'Polygon', - scanUrl: 'https://polygonscan.com', - rpcUrl: 'https://polygon-rpc.com/', - subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', - factoryAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', - hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', - }, + // [ChainId.POLYGON]: { + // chainId: ChainId.POLYGON, + // title: 'Polygon', + // scanUrl: 'https://polygonscan.com', + // rpcUrl: 'https://polygon-rpc.com/', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', + // factoryAddress: '0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB', + // hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', + // }, [ChainId.POLYGON_MUMBAI]: { chainId: ChainId.POLYGON_MUMBAI, title: 'Polygon Mumbai', @@ -79,16 +79,16 @@ export const ESCROW_NETWORKS: { factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', }, - [ChainId.MOONBEAM]: { - chainId: ChainId.MOONBEAM, - title: 'Moonbeam', - scanUrl: 'https://moonbeam.moonscan.io', - rpcUrl: 'https://rpc.api.moonbeam.network', - subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', - factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', - hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', - }, + // [ChainId.MOONBEAM]: { + // chainId: ChainId.MOONBEAM, + // title: 'Moonbeam', + // scanUrl: 'https://moonbeam.moonscan.io', + // rpcUrl: 'https://rpc.api.moonbeam.network', + // subgraphUrl: + // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', + // factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + // hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', + // }, }; export const HM_TOKEN_DECIMALS = 18; diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 98004b6373..049b6cb1b6 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -52,7 +52,7 @@ export const ESCROW_NETWORKS: { // rpcUrl: 'https://polygon-rpc.com/', // subgraphUrl: // 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', - // factoryAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', + // factoryAddress: '0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB', // hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', // }, [ChainId.POLYGON_MUMBAI]: { diff --git a/packages/sdk/typescript/subgraph/config/matic-v1.json b/packages/sdk/typescript/subgraph/config/matic-v1.json new file mode 100644 index 0000000000..d4a32ae224 --- /dev/null +++ b/packages/sdk/typescript/subgraph/config/matic-v1.json @@ -0,0 +1,27 @@ +{ + "network": "matic", + "description": "Human subgraph on Polygon network", + "EscrowFactory": { + "address": "0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB", + "startBlock": 38858552, + "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" + }, + "HMToken": { + "address": "0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571Bf", + "startBlock": 20181700, + "abi": "./node_modules/@human-protocol/core/abis/HMToken.json" + }, + "Escrow": { + "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" + }, + "Staking": { + "address": "0xcbAd56bE3f504E98bd70875823d3CC0242B7bB29", + "startBlock": 38858545, + "abi": "./node_modules/@human-protocol/core/abis/Staking.json" + }, + "KVStore": { + "address": "0x35Cf4beBD58F9C8D75B9eA2599479b6C173d406F", + "startBlock": 38858596, + "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" + } +} diff --git a/packages/sdk/typescript/subgraph/config/matic.json b/packages/sdk/typescript/subgraph/config/matic.json deleted file mode 100644 index 79de494219..0000000000 --- a/packages/sdk/typescript/subgraph/config/matic.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "network": "matic", - "description": "Human subgraph on Polygon network", - "EscrowFactory": { - "address": "0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794", - "startBlock": 25426565, - "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" - }, - "HMToken": { - "address": "0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571Bf", - "startBlock": 20181700, - "abi": "./node_modules/@human-protocol/core/abis/HMToken.json" - }, - "Escrow": { - "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" - } -} From 644abbe95fd2db1e17d0230d62c364a3c023c4a6 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 3 Feb 2023 12:03:09 +0100 Subject: [PATCH 163/216] rename network --- .../subgraph/config/{matic-v1.json => polygon-v1.json} | 0 packages/sdk/typescript/subgraph/package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/sdk/typescript/subgraph/config/{matic-v1.json => polygon-v1.json} (100%) diff --git a/packages/sdk/typescript/subgraph/config/matic-v1.json b/packages/sdk/typescript/subgraph/config/polygon-v1.json similarity index 100% rename from packages/sdk/typescript/subgraph/config/matic-v1.json rename to packages/sdk/typescript/subgraph/config/polygon-v1.json diff --git a/packages/sdk/typescript/subgraph/package.json b/packages/sdk/typescript/subgraph/package.json index 824db5c498..e1760b15fb 100644 --- a/packages/sdk/typescript/subgraph/package.json +++ b/packages/sdk/typescript/subgraph/package.json @@ -12,7 +12,7 @@ "pretest": "NETWORK=goerli-v1 yarn generate", "test": "graph test", "deploy": "graph deploy --node https://api.thegraph.com/deploy/ posix4e/humansubgraph", - "quickstart:matic": "NETWORK=matic yarn generate && graph create --node http://localhost:8020/ posix4e/humansubgraph", + "quickstart:matic": "NETWORK=polygon yarn generate && graph create --node http://localhost:8020/ posix4e/humansubgraph", "quickstart:goerli": "NETWORK=goerli yarn generate && graph create --node http://localhost:8020/ posix4e/humansubgraph", "quickstart:mumbai": "NETWORK=mumbai yarn generate && graph create --node http://localhost:8020/ posix4e/humansubgraph", "quickstart:avalanche": "NETWORK=avalanche yarn generate && graph create --node http://localhost:8020/ posix4e/humansubgraph", From 13ec4d9e8b47c476c4e74b5dc3bd8baf12a02232 Mon Sep 17 00:00:00 2001 From: eugenvoronov <104138627+eugenvoronov@users.noreply.github.com> Date: Fri, 3 Feb 2023 13:02:09 +0100 Subject: [PATCH 164/216] Fortune/recording oracle (#204) * Developed Recording Oracle basic structure * Removed console log * Added get manifest method * Added escrow contract interface plugin * Added recording oracle and reputation oracle implementations. Added curses and uniqueness checks. Refactoring. * Updated license * Updated logic after local tests * Updated request body scheme * Changed tsconfig file. Added error handling. * Added lint command * Removed tests * Added lint fix * Added basic tests * Added .env.test * Added vercel config * Added vercel config * Added configs to tests * Updated env.test config --- packages/core/hardhat.config.ts | 1 + .../fortune/recording-oracle/.dockerignore | 1 - .../fortune/recording-oracle/.env.test | 22 + .../fortune/recording-oracle/Dockerfile | 33 +- .../examples/fortune/recording-oracle/LICENSE | 21 + .../fortune/recording-oracle/README.md | 49 ++ .../fortune/recording-oracle/babel.config.js | 6 - .../recording-oracle/hardhat.config.js | 4 - .../fortune/recording-oracle/jest.config.ts | 7 - .../fortune/recording-oracle/package.json | 68 ++- .../recording-oracle/src/constants/escrow.ts | 8 + .../src/constants/networks.ts | 33 ++ .../fortune/recording-oracle/src/index.ts | 59 +-- .../src/interfaces/fortunes.ts | 29 ++ .../src/interfaces/networks.ts | 13 + .../src/interfaces/plugins.ts | 15 + .../src/interfaces/storage.ts | 18 + .../recording-oracle/src/plugins/config.ts | 50 ++ .../recording-oracle/src/plugins/curses.ts | 478 ++++++++++++++++++ .../recording-oracle/src/plugins/escrow.ts | 58 +++ .../recording-oracle/src/plugins/s3.ts | 79 +++ .../recording-oracle/src/plugins/storage.ts | 78 +++ .../src/plugins/uniqueness.ts | 30 ++ .../recording-oracle/src/plugins/web3.ts | 68 +++ .../recording-oracle/src/routes/index.ts | 58 +++ .../fortune/recording-oracle/src/server.ts | 40 ++ .../src/services/escrow.test.ts | 146 ------ .../recording-oracle/src/services/escrow.ts | 45 -- .../src/services/fortune.test.ts | 191 ------- .../recording-oracle/src/services/fortune.ts | 116 ----- .../recording-oracle/src/services/manifest.ts | 9 - .../src/services/recordingOracle.ts | 175 +++++++ .../src/services/reputationClient.ts | 17 - .../src/services/reputationOracleClient.ts | 14 + .../recording-oracle/src/services/s3.ts | 35 -- .../src/services/storage.test.ts | 42 -- .../recording-oracle/src/services/storage.ts | 49 -- .../fortune/recording-oracle/src/utils/url.ts | 6 - .../tests/routes/fortune.test.ts | 16 + .../fortune/recording-oracle/tests/setup.ts | 3 + .../fortune/recording-oracle/tsconfig.json | 30 +- .../fortune/recording-oracle/vercel.json | 22 +- .../fortune/recording-oracle/vitest.config.ts | 8 + yarn.lock | 2 +- 44 files changed, 1488 insertions(+), 764 deletions(-) delete mode 100644 packages/examples/fortune/recording-oracle/.dockerignore create mode 100644 packages/examples/fortune/recording-oracle/.env.test create mode 100644 packages/examples/fortune/recording-oracle/LICENSE create mode 100644 packages/examples/fortune/recording-oracle/README.md delete mode 100644 packages/examples/fortune/recording-oracle/babel.config.js delete mode 100644 packages/examples/fortune/recording-oracle/hardhat.config.js delete mode 100644 packages/examples/fortune/recording-oracle/jest.config.ts create mode 100644 packages/examples/fortune/recording-oracle/src/constants/escrow.ts create mode 100644 packages/examples/fortune/recording-oracle/src/constants/networks.ts create mode 100644 packages/examples/fortune/recording-oracle/src/interfaces/fortunes.ts create mode 100644 packages/examples/fortune/recording-oracle/src/interfaces/networks.ts create mode 100644 packages/examples/fortune/recording-oracle/src/interfaces/plugins.ts create mode 100644 packages/examples/fortune/recording-oracle/src/interfaces/storage.ts create mode 100644 packages/examples/fortune/recording-oracle/src/plugins/config.ts create mode 100644 packages/examples/fortune/recording-oracle/src/plugins/curses.ts create mode 100644 packages/examples/fortune/recording-oracle/src/plugins/escrow.ts create mode 100644 packages/examples/fortune/recording-oracle/src/plugins/s3.ts create mode 100644 packages/examples/fortune/recording-oracle/src/plugins/storage.ts create mode 100644 packages/examples/fortune/recording-oracle/src/plugins/uniqueness.ts create mode 100644 packages/examples/fortune/recording-oracle/src/plugins/web3.ts create mode 100644 packages/examples/fortune/recording-oracle/src/routes/index.ts create mode 100644 packages/examples/fortune/recording-oracle/src/server.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/escrow.test.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/escrow.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/fortune.test.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/fortune.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/manifest.ts create mode 100644 packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/reputationClient.ts create mode 100644 packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/s3.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/storage.test.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/services/storage.ts delete mode 100644 packages/examples/fortune/recording-oracle/src/utils/url.ts create mode 100644 packages/examples/fortune/recording-oracle/tests/routes/fortune.test.ts create mode 100644 packages/examples/fortune/recording-oracle/tests/setup.ts create mode 100644 packages/examples/fortune/recording-oracle/vitest.config.ts diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 9258790886..4ef8249aff 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -137,6 +137,7 @@ const config: HardhatUserConfig = { goerli: process.env.ETHERSCAN_API_KEY || '', polygon: process.env.POLYGONSCAN_API_KEY || '', polygonMumbai: process.env.POLYGONSCAN_API_KEY || '', + polygon: process.env.POLYGONSCAN_API_KEY || '', bscTestnet: process.env.BSC_TESTNET_API_KEY || '', moonbaseAlpha: process.env.MOONSCAN_API_KEY || '', }, diff --git a/packages/examples/fortune/recording-oracle/.dockerignore b/packages/examples/fortune/recording-oracle/.dockerignore deleted file mode 100644 index 40b878db5b..0000000000 --- a/packages/examples/fortune/recording-oracle/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ \ No newline at end of file diff --git a/packages/examples/fortune/recording-oracle/.env.test b/packages/examples/fortune/recording-oracle/.env.test new file mode 100644 index 0000000000..fb927832d0 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/.env.test @@ -0,0 +1,22 @@ +NODE_ENV=development +LOG_LEVEL=info +API_HOST=localhost +API_PORT=3001 + +ETH_PRIVATE_KEY=df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e +SALT=kD09c4Elbl +REPORT_GAS=true +TS_NODE_TRANSPILE_ONLY=1 + +TENDERLY_FORK_ID= +ETHERSCAN_API_KEY= +POLYGONSCAN_API_KEY= + +ETH_NODE_URL= + +S3_HOST=localhost +S3_PORT=9000 +S3_ACCESS_KEY=access-key +S3_SECRET_KEY=secret-key +S3_BUCKET_NAME=fortune-manifests +S3_BASE_URL=http://localhost diff --git a/packages/examples/fortune/recording-oracle/Dockerfile b/packages/examples/fortune/recording-oracle/Dockerfile index 37d9e8f79d..f0d0d21c39 100644 --- a/packages/examples/fortune/recording-oracle/Dockerfile +++ b/packages/examples/fortune/recording-oracle/Dockerfile @@ -1,10 +1,27 @@ -FROM node:16.13-alpine3.14 +FROM node:18-alpine AS deps +# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. +RUN apk add --no-cache libc6-compat +WORKDIR /app +COPY package.json pnpm-lock.yaml ./ +RUN npm install -g pnpm +RUN pnpm install --frozen-lockfile -WORKDIR /usr/src/app +FROM node:18-alpine AS builder +ARG APP_ENV +WORKDIR /app +COPY . . +COPY .env.$APP_ENV .env +COPY --from=deps /app/node_modules ./node_modules +RUN npm run build -COPY package.json yarn.lock ./ - -RUN apk add python3 make gcc g++ -RUN yarn - -COPY ./src ./src +FROM node:18-alpine AS runner +WORKDIR /usr/app +ARG APP_ENV +COPY --from=builder /app/build ./build +COPY package.json ./ +COPY .env.$APP_ENV .env +RUN npm install -g pnpm +RUN pnpm install --prod +USER node +ENV NODE_ENV="production" +CMD ["npm", "start"] diff --git a/packages/examples/fortune/recording-oracle/LICENSE b/packages/examples/fortune/recording-oracle/LICENSE new file mode 100644 index 0000000000..c7b0077493 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Human Protocol + +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. diff --git a/packages/examples/fortune/recording-oracle/README.md b/packages/examples/fortune/recording-oracle/README.md new file mode 100644 index 0000000000..81c7b444c3 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/README.md @@ -0,0 +1,49 @@ +# Fortune Recording Oracle + +Fortune Recording Oracle + +## Set Up + +- Install the dependencies. + +```bash +yarn install +``` + +or npm/yarn + +- Start the server in development mode. + +```bash +yarn dev +``` + +or npm/yarn + +## Env vars + +Loaded from `.env` file, with schema validation + +## Backend API Development + +There are a number of handy commands you can run to help with development. + +|Command | Action | +|---|---| +|`yarn run dev` | Run the server in dev mode, automatically restarts on file change | +|`yarn build`| Compile TypeScript to JavaScript | +|`yarn start`| Start JavaScript from 'build' directory | +|`yarn test`| Run unit tests (run `yarn build` before) | +|`yarn test:watch`| Run backend tests in watch mode, running on changed test files | +|`yarn lint`| Run eslint | +|`yarn lint:fix`| Run eslint in fix mode | + +## CI + +Run tests on push/PR to 'main' branch +Check `.github/workflows/CI.yml` + +## Recommended Vscode Extensions + +[Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) +[ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) diff --git a/packages/examples/fortune/recording-oracle/babel.config.js b/packages/examples/fortune/recording-oracle/babel.config.js deleted file mode 100644 index 8165fe4557..0000000000 --- a/packages/examples/fortune/recording-oracle/babel.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - presets: [ - ['@babel/preset-env', { targets: { node: 'current' } }], - '@babel/preset-typescript', - ], -}; diff --git a/packages/examples/fortune/recording-oracle/hardhat.config.js b/packages/examples/fortune/recording-oracle/hardhat.config.js deleted file mode 100644 index 2ca1cd46fc..0000000000 --- a/packages/examples/fortune/recording-oracle/hardhat.config.js +++ /dev/null @@ -1,4 +0,0 @@ -/** @type import('hardhat/config').HardhatUserConfig */ -module.exports = { - solidity: '0.6.2', -}; diff --git a/packages/examples/fortune/recording-oracle/jest.config.ts b/packages/examples/fortune/recording-oracle/jest.config.ts deleted file mode 100644 index 9fd34b579b..0000000000 --- a/packages/examples/fortune/recording-oracle/jest.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { Config } from 'jest'; - -const config: Config = { - verbose: true, -}; - -export default config; diff --git a/packages/examples/fortune/recording-oracle/package.json b/packages/examples/fortune/recording-oracle/package.json index 44eba6c760..e8a972bed3 100644 --- a/packages/examples/fortune/recording-oracle/package.json +++ b/packages/examples/fortune/recording-oracle/package.json @@ -1,29 +1,63 @@ { - "name": "recording-oracle", + "name": "@human-protocol/fortune-recording-oracle", + "description": "Fortune Recording Oracle", "version": "1.0.0", - "description": "fortune recording oracle", "main": "index.ts", "author": "human-protocol", "license": "MIT", - "private": false, - "devDependencies": { - "@babel/preset-typescript": "^7.18.6", - "@jest/globals": "^29.3.1", - "@types/body-parser": "^1.19.2", - "@types/cors": "^2.8.12", - "@types/express": "^4.17.14", - "@types/node": "^18.11.9", - "typescript": "^4.9.3" + "scripts": { + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "build": "tsc", + "start:prod": "ts-node build/src/index.js", + "start": "ts-node ./src/index.ts", + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/humanprotocol/human-protocol.git" + }, + "engines": { + "node": ">=16.0.0" }, + "keywords": [ + "forune", + "recording", + "oracle" + ], + "bugs": { + "url": "https://github.com/humanprotocol/human-protocol/issues" + }, + "homepage": "https://github.com/humanprotocol/human-protocol/tree/main/packages/examples/fortune/recording-oracle#readme", "dependencies": { + "@fastify/cors": "^8.2.0", "@human-protocol/core": "workspace:*", - "axios": "^1.1.3", + "@sinclair/typebox": "^0.23.5", + "ajv": "^8.11.2", + "aws-sdk": "^2.1294.0", + "axios": "^1.2.2", + "dotenv": "^16.0.3", + "env-schema": "^5.1.1", + "fastify": "^4.10.2", + "fastify-plugin": "^3.0.1", + "store2": "^2.14.2", + "uuid": "^9.0.0", "web3": "^1.8.1" }, - "scripts": { - "build": "tsc", - "start:prod": "ts-node build/src/index.js", - "start": "ts-node src/index.ts", - "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"jest\"" + "devDependencies": { + "@aws-sdk/types": "^3.226.0", + "@types/node": "^18.11.15", + "@types/uuid": "^9.0.0", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "esbuild": "^0.14.54", + "eslint": "^8.28.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.2.1", + "pino-pretty": "^8.1.0", + "prettier": "^2.8.0", + "tsx": "^3.12.1", + "typescript": "^4.9.3", + "vitest": "^0.25.8" } } diff --git a/packages/examples/fortune/recording-oracle/src/constants/escrow.ts b/packages/examples/fortune/recording-oracle/src/constants/escrow.ts new file mode 100644 index 0000000000..b66897a4cd --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/constants/escrow.ts @@ -0,0 +1,8 @@ +export enum EscrowStatus { + 'Launched' = 0, + 'Pending' = 1, + 'Partial' = 2, + 'Paid' = 3, + 'Complete' = 4, + 'Cancelled' = 5, +} diff --git a/packages/examples/fortune/recording-oracle/src/constants/networks.ts b/packages/examples/fortune/recording-oracle/src/constants/networks.ts new file mode 100644 index 0000000000..a3c7cfb8e6 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/constants/networks.ts @@ -0,0 +1,33 @@ +import { IEscrowNetwork } from '../interfaces/networks'; + +export enum ChainId { + POLYGON = 137, + POLYGON_MUMBAI = 80001, + LOCALHOST = 1338, +} + +export const ESCROW_NETWORKS: { + [chainId in ChainId]: IEscrowNetwork; +} = { + [ChainId.POLYGON]: { + chainId: ChainId.POLYGON, + title: 'Polygon', + rpcUrl: 'https://polygon-rpc.com', + factoryAddress: '0x15D55Cb5d9Df6273B296745C3585a94574d2fDd7', + hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', + }, + [ChainId.POLYGON_MUMBAI]: { + chainId: ChainId.POLYGON_MUMBAI, + title: 'Polygon Mumbai', + rpcUrl: 'https://rpc-mumbai.maticvigil.com', + factoryAddress: '0x79aE9b3Ad106AEdc1F813AaD98f550FADd9e2254', + hmtAddress: '0xc2B8bb720e5df43e6E13b84B27dF5543B3485EA4', + }, + [ChainId.LOCALHOST]: { + chainId: ChainId.LOCALHOST, + title: 'Localhost', + rpcUrl: 'http://127.0.0.1:8546', + factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', + hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + }, +}; diff --git a/packages/examples/fortune/recording-oracle/src/index.ts b/packages/examples/fortune/recording-oracle/src/index.ts index 03643038c6..d9037d5a6d 100644 --- a/packages/examples/fortune/recording-oracle/src/index.ts +++ b/packages/examples/fortune/recording-oracle/src/index.ts @@ -1,43 +1,24 @@ -import Web3 from 'web3'; -import express from 'express'; -import bodyParser from 'body-parser'; -import cors from 'cors'; -import { addFortune } from './services/fortune'; +import getServer from './server'; -const app = express(); - -const port = process.env.PORT || 3005; - -const privKey = - process.env.ETH_PRIVATE_KEY || - '59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d'; // ganaches priv key -const ethHttpServer = process.env.ETH_HTTP_SERVER || 'http://127.0.0.1:8545'; -const web3 = new Web3(ethHttpServer); -const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); - -web3.eth.accounts.wallet.add(account); -web3.eth.defaultAccount = account.address; - -app.use(bodyParser.json()); - -app.use(cors()); - -app.post('/job/results', async (req, res) => { - try { - const { workerAddress, escrowAddress, fortune } = req.body; - const err = await addFortune(web3, workerAddress, escrowAddress, fortune); - if (err) { - return res.status(400).send(err); - } +process.on('unhandledRejection', (err) => { + console.error(err); + process.exit(1); +}); - return res.status(201).send(); - } catch (err) { - return res.status(500).send(err); +const startServer = async () => { + const server = await getServer(); + const port = +server.config.API_PORT; + const host = server.config.API_HOST; + await server.listen({ host, port }); + + for (const signal of ['SIGINT', 'SIGTERM']) { + process.on(signal, () => + server.close().then((err) => { + console.log(`close application on ${signal}`); + process.exit(err ? 1 : 0); + }) + ); } -}); +}; -app.listen(port, () => { - // TODO: Implement logger - // eslint-disable-next-line no-console - console.log(`Recording Oracle server listening port ${port}`); -}); +startServer(); diff --git a/packages/examples/fortune/recording-oracle/src/interfaces/fortunes.ts b/packages/examples/fortune/recording-oracle/src/interfaces/fortunes.ts new file mode 100644 index 0000000000..c11c181ff3 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/interfaces/fortunes.ts @@ -0,0 +1,29 @@ +import { ChainId } from '../constants/networks'; +import { IFortuneStorage } from './storage'; + +export interface IFortuneRequest { + fortune: string; + workerAddress: string; + escrowAddress: string; + chainId: ChainId; +} + +export interface IFortuneResults { + escrowAddress: string; + chainId: number; + fortunes: { + [workerAddress: string]: IFortuneStorage; + }; +} + +export interface IRecordingOracleRequest { + [escrowAddress: string]: { + chainId: number; + fortunes: { + [workerAddress: string]: { + fortune: string; + score: boolean; + }; + }; + }; +} diff --git a/packages/examples/fortune/recording-oracle/src/interfaces/networks.ts b/packages/examples/fortune/recording-oracle/src/interfaces/networks.ts new file mode 100644 index 0000000000..1560c31ac6 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/interfaces/networks.ts @@ -0,0 +1,13 @@ +import Web3 from 'web3'; + +export interface IEscrowNetwork { + chainId: number; + title: string; + rpcUrl: string; + factoryAddress: string; + hmtAddress: string; +} + +export interface IWeb3MultiNetwork { + [chainId: number]: Web3; +} diff --git a/packages/examples/fortune/recording-oracle/src/interfaces/plugins.ts b/packages/examples/fortune/recording-oracle/src/interfaces/plugins.ts new file mode 100644 index 0000000000..dcb002d50d --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/interfaces/plugins.ts @@ -0,0 +1,15 @@ +import { S3Client } from '../plugins/s3'; +import { IWeb3MultiNetwork } from './networks'; +import { Storage } from '../plugins/storage'; +import { Escrow } from '../plugins/escrow'; +import { Uniqueness } from '../plugins/uniqueness'; +import { Curses } from '../plugins/curses'; + +export interface IPlugin { + web3: IWeb3MultiNetwork; + s3: S3Client; + storage: Storage; + escrow: Escrow; + curses: Curses; + uniqueness: Uniqueness; +} diff --git a/packages/examples/fortune/recording-oracle/src/interfaces/storage.ts b/packages/examples/fortune/recording-oracle/src/interfaces/storage.ts new file mode 100644 index 0000000000..adedae850c --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/interfaces/storage.ts @@ -0,0 +1,18 @@ +export interface IStorage { + [escrowAddress: string]: IEscrowStorage; +} + +export interface IEscrowStorage { + fortunesRequested: number; + chainId: number; + fortunes: IWorkerFortuneStorage; +} + +export interface IWorkerFortuneStorage { + [workerAddress: string]: IFortuneStorage; +} + +export interface IFortuneStorage { + fortune: string; + score: boolean; +} diff --git a/packages/examples/fortune/recording-oracle/src/plugins/config.ts b/packages/examples/fortune/recording-oracle/src/plugins/config.ts new file mode 100644 index 0000000000..7af40074ab --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/plugins/config.ts @@ -0,0 +1,50 @@ +import 'dotenv/config'; +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; +import { Static, Type } from '@sinclair/typebox'; +import Ajv from 'ajv'; + +export enum NodeEnv { + development = 'development', + test = 'test', + production = 'production', +} + +const ConfigSchema = Type.Strict( + Type.Object({ + NODE_ENV: Type.Enum(NodeEnv), + LOG_LEVEL: Type.String(), + API_HOST: Type.String(), + API_PORT: Type.String(), + }) +); + +const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, +}); + +export type Config = Static; + +const configPlugin: FastifyPluginAsync = async (server) => { + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + '.env file validation failed - ' + + JSON.stringify(validate.errors, null, 2) + ); + } + server.decorate('config', process.env); +}; + +declare module 'fastify' { + interface FastifyInstance { + config: Config; + } +} + +export default fp(configPlugin); diff --git a/packages/examples/fortune/recording-oracle/src/plugins/curses.ts b/packages/examples/fortune/recording-oracle/src/plugins/curses.ts new file mode 100644 index 0000000000..01a2dbee27 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/plugins/curses.ts @@ -0,0 +1,478 @@ +import 'dotenv/config'; +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; + +const curses = [ + 'ahole', + 'anus', + 'ash0le', + 'ash0les', + 'asholes', + 'ass', + 'Ass Monkey', + 'Assface', + 'assh0le', + 'assh0lez', + 'asshole', + 'assholes', + 'assholz', + 'asswipe', + 'azzhole', + 'bassterds', + 'bastard', + 'bastards', + 'bastardz', + 'basterds', + 'basterdz', + 'Biatch', + 'bitch', + 'bitches', + 'Blow Job', + 'boffing', + 'butthole', + 'buttwipe', + 'c0ck', + 'c0cks', + 'c0k', + 'Carpet Muncher', + 'cawk', + 'cawks', + 'Clit', + 'cnts', + 'cntz', + 'cock', + 'cockhead', + 'cock-head', + 'cocks', + 'CockSucker', + 'cock-sucker', + 'suck', + 'sucks', + 'crap', + 'cum', + 'cunt', + 'cunts', + 'cuntz', + 'dick', + 'dild0', + 'dild0s', + 'dildo', + 'dildos', + 'dilld0', + 'dilld0s', + 'dominatricks', + 'dominatrics', + 'dominatrix', + 'dyke', + 'enema', + 'f u c k', + 'f u c k e r', + 'fag', + 'fag1t', + 'faget', + 'fagg1t', + 'faggit', + 'faggot', + 'fagg0t', + 'fagit', + 'fags', + 'fagz', + 'faig', + 'faigs', + 'fart', + 'flipping the bird', + 'fuck', + 'fucker', + 'fuckin', + 'fucking', + 'fucks', + 'Fudge Packer', + 'fuk', + 'Fukah', + 'Fuken', + 'fuker', + 'Fukin', + 'Fukk', + 'Fukkah', + 'Fukken', + 'Fukker', + 'Fukkin', + 'g00k', + 'God-damned', + 'h00r', + 'h0ar', + 'h0re', + 'hells', + 'hoar', + 'hoor', + 'hoore', + 'jackoff', + 'jap', + 'japs', + 'jerk-off', + 'jisim', + 'jiss', + 'jizm', + 'jizz', + 'knob', + 'knobs', + 'knobz', + 'kunt', + 'kunts', + 'kuntz', + 'Lezzian', + 'Lipshits', + 'Lipshitz', + 'masochist', + 'masokist', + 'massterbait', + 'masstrbait', + 'masstrbate', + 'masterbaiter', + 'masterbate', + 'masterbates', + 'Motha Fucker', + 'Motha Fuker', + 'Motha Fukkah', + 'Motha Fukker', + 'Mother Fucker', + 'Mother Fukah', + 'Mother Fuker', + 'Mother Fukkah', + 'Mother Fukker', + 'mother-fucker', + 'Mutha Fucker', + 'Mutha Fukah', + 'Mutha Fuker', + 'Mutha Fukkah', + 'Mutha Fukker', + 'n1gr', + 'nastt', + 'nigger;', + 'nigur;', + 'niiger;', + 'niigr;', + 'orafis', + 'orgasim;', + 'orgasm', + 'orgasum', + 'oriface', + 'orifice', + 'orifiss', + 'packi', + 'packie', + 'packy', + 'paki', + 'pakie', + 'paky', + 'pecker', + 'peeenus', + 'peeenusss', + 'peenus', + 'peinus', + 'pen1s', + 'penas', + 'penis', + 'penis-breath', + 'penus', + 'penuus', + 'Phuc', + 'Phuck', + 'Phuk', + 'Phuker', + 'Phukker', + 'polac', + 'polack', + 'polak', + 'Poonani', + 'pr1c', + 'pr1ck', + 'pr1k', + 'pusse', + 'pussee', + 'pussy', + 'puuke', + 'puuker', + 'qweir', + 'recktum', + 'rectum', + 'retard', + 'sadist', + 'scank', + 'schlong', + 'screwing', + 'semen', + 'sex', + 'sexy', + 'Sh!t', + 'sh1t', + 'sh1ter', + 'sh1ts', + 'sh1tter', + 'sh1tz', + 'shit', + 'shits', + 'shitter', + 'Shitty', + 'Shity', + 'shitz', + 'Shyt', + 'Shyte', + 'Shytty', + 'Shyty', + 'skanck', + 'skank', + 'skankee', + 'skankey', + 'skanks', + 'Skanky', + 'slag', + 'slut', + 'sluts', + 'Slutty', + 'slutz', + 'son-of-a-bitch', + 'tit', + 'turd', + 'va1jina', + 'vag1na', + 'vagiina', + 'vagina', + 'vaj1na', + 'vajina', + 'vullva', + 'vulva', + 'w0p', + 'wh00r', + 'wh0re', + 'whore', + 'xrated', + 'xxx', + 'b!+ch', + 'bitch', + 'blowjob', + 'clit', + 'arschloch', + 'fuck', + 'shit', + 'ass', + 'asshole', + 'b!tch', + 'b17ch', + 'b1tch', + 'bastard', + 'bi+ch', + 'boiolas', + 'buceta', + 'c0ck', + 'cawk', + 'chink', + 'cipa', + 'clits', + 'cock', + 'cum', + 'cunt', + 'dildo', + 'dirsa', + 'ejakulate', + 'fatass', + 'fcuk', + 'fuk', + 'fux0r', + 'hoer', + 'hore', + 'jism', + 'kawk', + 'l3itch', + 'l3i+ch', + 'masturbate', + 'masterbat', + 'masterbat3', + 'motherfucker', + 's.o.b.', + 'mofo', + 'nazi', + 'nigga', + 'nigger', + 'nutsack', + 'phuck', + 'pimpis', + 'pusse', + 'pussy', + 'scrotum', + 'sh!t', + 'shemale', + 'shi+', + 'sh!+', + 'slut', + 'smut', + 'teets', + 'tits', + 'boobs', + 'b00bs', + 'teez', + 'testical', + 'testicle', + 'titt', + 'w00se', + 'jackoff', + 'wank', + 'whoar', + 'whore', + 'damn', + 'dyke', + 'fuck', + 'shit', + '@$$', + 'amcik', + 'andskota', + 'arse', + 'assrammer', + 'ayir', + 'bi7ch', + 'bitch', + 'bollock', + 'breasts', + 'butt-pirate', + 'cabron', + 'cazzo', + 'chraa', + 'chuj', + 'Cock', + 'cunt', + 'd4mn', + 'daygo', + 'dego', + 'dick', + 'dike', + 'dupa', + 'dziwka', + 'ejackulate', + 'Ekrem', + 'Ekto', + 'enculer', + 'faen', + 'fag', + 'fanculo', + 'fanny', + 'feces', + 'feg', + 'Felcher', + 'ficken', + 'fitt', + 'Flikker', + 'foreskin', + 'Fotze', + 'Fu', + 'fuk', + 'futkretzn', + 'gook', + 'guiena', + 'h0r', + 'h4x0r', + 'hell', + 'helvete', + 'hoer', + 'honkey', + 'Huevon', + 'hui', + 'injun', + 'jizz', + 'kanker', + 'kike', + 'klootzak', + 'kraut', + 'knulle', + 'kuk', + 'kuksuger', + 'Kurac', + 'kurwa', + 'kusi', + 'kyrpa', + 'lesbo', + 'mamhoon', + 'masturbat', + 'merd', + 'mibun', + 'monkleigh', + 'mouliewop', + 'muie', + 'mulkku', + 'muschi', + 'nazis', + 'nepesaurio', + 'nigger', + 'orospu', + 'paska', + 'perse', + 'picka', + 'pierdol', + 'pillu', + 'pimmel', + 'piss', + 'pizda', + 'poontsee', + 'poop', + 'porn', + 'p0rn', + 'pr0n', + 'preteen', + 'pula', + 'pule', + 'puta', + 'puto', + 'qahbeh', + 'queef', + 'rautenberg', + 'schaffer', + 'scheiss', + 'schlampe', + 'schmuck', + 'screw', + 'sh!t', + 'sharmuta', + 'sharmute', + 'shipal', + 'shiz', + 'skribz', + 'skurwysyn', + 'sphencter', + 'spic', + 'spierdalaj', + 'splooge', + 'suka', + 'b00b', + 'testicle', + 'titt', + 'twat', + 'vittu', + 'wank', + 'wetback', + 'wichser', + 'wop', + 'yed', + 'zabourah', +]; + +export class Curses { + isProfane(text: string) { + for (let i = 0; i < curses.length; i++) { + const expression = new RegExp(curses[i], 'gi'); + if (expression.test(text)) { + return true; + } + } + } +} + +const web3Plugin: FastifyPluginAsync = async (server) => { + server.decorate('curses', new Curses()); +}; + +declare module 'fastify' { + interface FastifyInstance { + curses: Curses; + } +} + +export default fp(web3Plugin); diff --git a/packages/examples/fortune/recording-oracle/src/plugins/escrow.ts b/packages/examples/fortune/recording-oracle/src/plugins/escrow.ts new file mode 100644 index 0000000000..06b742c96f --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/plugins/escrow.ts @@ -0,0 +1,58 @@ +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; +import EscrowAbi from '@human-protocol/core/abis/Escrow.json'; +import Web3 from 'web3'; + +export class Escrow { + async getRecordingOracleAddress( + web3: Web3, + escrowAddress: string + ): Promise { + const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); + return await Escrow.methods.recordingOracle().call(); + } + + async getEscrowStatus(web3: Web3, escrowAddress: string): Promise { + const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); + return await Escrow.methods.status().call(); + } + + async getEscrowManifestUrl( + web3: Web3, + escrowAddress: string + ): Promise { + const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); + return await Escrow.methods.manifestUrl().call(); + } + + async storeResults( + web3: Web3, + escrowAddress: string, + resultsUrl: string, + resultHash: string + ) { + const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); + const gasNeeded = await Escrow.methods + .storeResults(resultsUrl, resultHash) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + + const result = await Escrow.methods + .storeResults(resultsUrl, resultHash) + .send({ from: web3.eth.defaultAccount, gas: gasNeeded, gasPrice }); + + return result; + } +} + +const escrowPlugin: FastifyPluginAsync = async (server) => { + server.decorate('escrow', new Escrow()); +}; + +declare module 'fastify' { + interface FastifyInstance { + escrow: Escrow; + } +} + +export default fp(escrowPlugin); diff --git a/packages/examples/fortune/recording-oracle/src/plugins/s3.ts b/packages/examples/fortune/recording-oracle/src/plugins/s3.ts new file mode 100644 index 0000000000..ab285e638c --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/plugins/s3.ts @@ -0,0 +1,79 @@ +import 'dotenv/config'; +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; +import * as Minio from 'minio'; +import { Type } from '@sinclair/typebox'; +import Ajv from 'ajv'; + +const ConfigSchema = Type.Strict( + Type.Object({ + S3_HOST: Type.String(), + S3_PORT: Type.Number(), + S3_ACCESS_KEY: Type.String(), + S3_SECRET_KEY: Type.String(), + S3_BUCKET_NAME: Type.String(), + S3_BASE_URL: Type.String(), + }) +); + +const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, +}); + +export class S3Client { + private s3Client: Minio.Client; + private s3Host = process.env.S3_HOST as string; + private s3Port = Number(process.env.S3_PORT); + private s3AccessKey = process.env.S3_ACCESS_KEY as string; + private s3SecretKey = process.env.S3_SECRET_KEY as string; + private s3BucketName = process.env.S3_BUCKET_NAME as string; + private s3BaseUrl = process.env.S3_BASE_URL as string; + + constructor() { + this.s3Client = new Minio.Client({ + endPoint: this.s3Host, + port: this.s3Port, + accessKey: this.s3AccessKey, + secretKey: this.s3SecretKey, + useSSL: false, + }); + } + + async saveData(fileName: string, data: any) { + const bucketExists = await this.s3Client.bucketExists(this.s3BucketName); + if (!bucketExists) { + await this.s3Client.makeBucket(process.env.S3_BUCKET_NAME as string, ''); + } + await this.s3Client.putObject( + this.s3BucketName, + `${fileName}.json`, + JSON.stringify(data), + { 'Content-Type': 'application/json' } + ); + return `${this.s3BaseUrl}/${this.s3BucketName}/${fileName}.json`; + } +} + +const s3Plugin: FastifyPluginAsync = async (server) => { + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + '.env file validation failed - ' + + JSON.stringify(validate.errors, null, 2) + ); + } + server.decorate('s3', new S3Client()); +}; + +declare module 'fastify' { + interface FastifyInstance { + s3: S3Client; + } +} + +export default fp(s3Plugin); diff --git a/packages/examples/fortune/recording-oracle/src/plugins/storage.ts b/packages/examples/fortune/recording-oracle/src/plugins/storage.ts new file mode 100644 index 0000000000..59db8fce9b --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/plugins/storage.ts @@ -0,0 +1,78 @@ +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; +import store from 'store2'; +import { IEscrowStorage, IFortuneStorage } from '../interfaces/storage'; + +export class Storage { + remove(key: string): boolean { + return store.remove(key); + } + + addEscrow( + escrowAddress: string, + chainId: number, + fortunesRequested: number + ): IEscrowStorage { + const escrow = { + chainId, + fortunesRequested, + fortunes: {}, + }; + + store.set(escrowAddress, escrow); + + return escrow; + } + + hasEscrow(escrowAddress: string): boolean { + return store.has(escrowAddress); + } + + getEscrow(escrowAddress: string): IEscrowStorage { + return store.get(escrowAddress); + } + + getFortune(escrowAddress: string, workerAddress: string): IFortuneStorage { + const escrow = store.get(escrowAddress); + return escrow.fortunes[workerAddress]; + } + + hasFortune(escrowAddress: string, workerAddress: string): boolean { + const escrow = store.get(escrowAddress); + + if (!escrow?.fortunes[workerAddress]) { + return false; + } + + return true; + } + + addFortune( + escrowAddress: string, + workerAddress: string, + fortune: string, + score: boolean + ): IEscrowStorage { + const escrow = store.get(escrowAddress); + + escrow.fortunes[workerAddress] = { + fortune, + score, + }; + + store.set(escrowAddress, escrow); + return escrow; + } +} + +const storagePlugin: FastifyPluginAsync = async (server) => { + server.decorate('storage', new Storage()); +}; + +declare module 'fastify' { + interface FastifyInstance { + storage: Storage; + } +} + +export default fp(storagePlugin); diff --git a/packages/examples/fortune/recording-oracle/src/plugins/uniqueness.ts b/packages/examples/fortune/recording-oracle/src/plugins/uniqueness.ts new file mode 100644 index 0000000000..3cbbaec426 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/plugins/uniqueness.ts @@ -0,0 +1,30 @@ +import 'dotenv/config'; +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; + +export class Uniqueness { + isUnique(test: string, set: string[]) { + let unique = true; + + for (const item of set) { + if (test.indexOf(item) > -1) { + unique = false; + break; + } + } + + return unique; + } +} + +const web3Plugin: FastifyPluginAsync = async (server) => { + server.decorate('uniqueness', new Uniqueness()); +}; + +declare module 'fastify' { + interface FastifyInstance { + uniqueness: Uniqueness; + } +} + +export default fp(web3Plugin); diff --git a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts new file mode 100644 index 0000000000..46625ae435 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts @@ -0,0 +1,68 @@ +import 'dotenv/config'; +import fp from 'fastify-plugin'; +import { FastifyPluginAsync } from 'fastify'; +import { Type } from '@sinclair/typebox'; +import Web3 from 'web3'; +import Ajv from 'ajv'; +import { IEscrowNetwork } from '../interfaces/networks'; + +const ConfigSchema = Type.Strict( + Type.Object({ + ETH_NODE_URL: Type.String(), + ETH_PRIVATE_KEY: Type.String(), + }) +); + +const ajv = new Ajv({ + allErrors: true, + removeAdditional: true, + useDefaults: true, + coerceTypes: true, + allowUnionTypes: true, +}); + +class Web3Client { + private privKey = process.env.ETH_PRIVATE_KEY as string; + + create(network: IEscrowNetwork, privateKey?: string) { + const ethHttpServer = network.rpcUrl as string; + const web3 = new Web3(ethHttpServer); + + const account = web3.eth.accounts.privateKeyToAccount( + `0x${privateKey || this.privKey}` + ); + web3.eth.accounts.wallet.add(account); + web3.eth.defaultAccount = account.address; + + return web3; + } +} + +const web3Plugin: FastifyPluginAsync = async (server) => { + const validate = ajv.compile(ConfigSchema); + const valid = validate(process.env); + if (!valid) { + throw new Error( + '.env file validation failed - ' + + JSON.stringify(validate.errors, null, 2) + ); + } + + const web3 = new Web3(process.env.ETH_NODE_URL as string); + const account = web3.eth.accounts.privateKeyToAccount( + `0x${process.env.ETH_PRIVATE_KEY}` + ); + + web3.eth.accounts.wallet.add(account); + web3.eth.defaultAccount = account.address; + + server.decorate('web3', new Web3Client()); +}; + +declare module 'fastify' { + interface FastifyInstance { + web3: Web3Client; + } +} + +export default fp(web3Plugin); diff --git a/packages/examples/fortune/recording-oracle/src/routes/index.ts b/packages/examples/fortune/recording-oracle/src/routes/index.ts new file mode 100644 index 0000000000..848ba0db9a --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/routes/index.ts @@ -0,0 +1,58 @@ +import { ChainId, ESCROW_NETWORKS } from '../constants/networks'; +import { FastifyInstance, FastifyPluginAsync, FastifyRequest } from 'fastify'; +import { Server } from 'http'; +import { processFortunes } from '../services/recordingOracle'; +import { IPlugin } from '../interfaces/plugins'; +import { IFortuneRequest } from '../interfaces/fortunes'; + +const bodySchema = { + type: 'object', + properties: { + fortune: { type: 'string', minLength: 2 }, + escrowAddress: { + type: 'string', + minLength: 2, + pattern: '^0x[a-fA-F0-9]{40}$', + }, + workerAddress: { + type: 'string', + minLength: 2, + pattern: '^0x[a-fA-F0-9]{40}$', + }, + chainId: { type: 'number', enum: Object.values(ChainId) }, + }, + required: ['fortune', 'escrowAddress', 'workerAddress', 'chainId'], +}; + +const opts = { + schema: { + body: bodySchema, + }, +}; + +const routes: FastifyPluginAsync = async (server: FastifyInstance) => { + const { web3, s3, storage, escrow, curses, uniqueness } = server; + + const plugins: IPlugin = { + web3: { + [ChainId.POLYGON]: web3.create(ESCROW_NETWORKS[ChainId.POLYGON]), + [ChainId.POLYGON_MUMBAI]: web3.create( + ESCROW_NETWORKS[ChainId.POLYGON_MUMBAI] + ), + [ChainId.LOCALHOST]: web3.create(ESCROW_NETWORKS[ChainId.LOCALHOST]), + }, + s3, + storage, + escrow, + curses, + uniqueness, + }; + + server.post('/send-fortunes', opts, async function (request: FastifyRequest) { + const fortunes = request.body as IFortuneRequest; + + return processFortunes(plugins, fortunes); + }); +}; + +export default routes; diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts new file mode 100644 index 0000000000..4ad5e48bfb --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -0,0 +1,40 @@ +import fastify from 'fastify'; +import config from './plugins/config'; +import s3 from './plugins/s3'; +import routes from './routes/index'; +import cors from '@fastify/cors'; +import escrow from './plugins/escrow'; +import web3 from './plugins/web3'; +import storage from './plugins/storage'; +import curses from './plugins/curses'; +import uniqueness from './plugins/uniqueness'; + +const getServer = async () => { + const server = fastify({ + ajv: { + customOptions: { + removeAdditional: 'all', + coerceTypes: true, + useDefaults: true, + }, + }, + logger: { + level: process.env.LOG_LEVEL, + }, + }); + + await server + .register(config) + .register(web3) + .register(escrow) + .register(s3) + .register(storage) + .register(curses) + .register(uniqueness) + .register(cors) + .register(routes) + .ready(); + + return server; +}; +export default getServer; diff --git a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts b/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts deleted file mode 100644 index cbf37e75a6..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/escrow.test.ts +++ /dev/null @@ -1,146 +0,0 @@ -import Web3 from 'web3'; -import { Contract } from 'web3-eth-contract'; - -import Escrow from '@human-protocol/core/artifacts/contracts/Escrow.sol/Escrow.json'; -import EscrowFactory from '@human-protocol/core/artifacts/contracts/EscrowFactory.sol/EscrowFactory.json'; -import HMToken from '@human-protocol/core/artifacts/contracts/HMToken.sol/HMToken.json'; -import Staking from '@human-protocol/core/artifacts/contracts/Staking.sol/Staking.json'; -import { beforeAll, describe, expect, it } from '@jest/globals'; - -import { - getEscrowManifestUrl, - getEscrowStatus, - getRecordingOracleAddress, - storeResults, -} from './escrow'; - -let token: Contract; -let staking: Contract; -let escrowFactory: Contract; -let escrowAddress: string; -let escrow: Contract; - -const recordingOracle = '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'; -const reputationOracle = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'; - -const web3 = new Web3('http://127.0.0.1:8547'); -const owner = web3.eth.accounts.privateKeyToAccount( - '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' -); -const recordingAccount = web3.eth.accounts.privateKeyToAccount( - '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' -); -web3.eth.defaultAccount = recordingAccount.address; - -describe('Escrow', () => { - beforeAll(async () => { - const tokenContract = new web3.eth.Contract(HMToken.abi as []); - token = await tokenContract - .deploy({ - data: HMToken.bytecode, - arguments: [ - web3.utils.toWei('100000', 'ether'), - 'Human Token', - 18, - 'HMT', - ], - }) - .send({ - from: owner.address, - }); - - const stakingContract = new web3.eth.Contract(Staking.abi as []); - staking = await stakingContract - .deploy({ - data: Staking.bytecode, - arguments: [], - }) - .send({ - from: owner.address, - }); - - await staking.methods - .initialize(token.options.address, web3.utils.toWei('1', 'ether'), 1) - .send({ from: owner.address }); - - const escrowFactoryContract = new web3.eth.Contract( - EscrowFactory.abi as [] - ); - escrowFactory = await escrowFactoryContract - .deploy({ - data: EscrowFactory.bytecode, - arguments: [], - }) - .send({ - from: owner.address, - }); - - await escrowFactory.methods.initialize(staking.options.address).send({ - from: owner.address, - }); - - await token.methods - .approve(staking.options.address, web3.utils.toWei('500', 'ether')) - .send({ from: owner.address }); - - await staking.methods - .stake(web3.utils.toWei('500', 'ether')) - .send({ from: owner.address }); - - await escrowFactory.methods - .createEscrow(token.options.address, [owner.address]) - .send({ from: owner.address }); - - escrowAddress = await escrowFactory.methods.lastEscrow().call(); - - const value = web3.utils.toWei('30', 'ether'); - await token.methods - .transfer(escrowAddress, value) - .send({ from: owner.address }); - - escrow = new web3.eth.Contract(Escrow.abi as [], escrowAddress); - await escrow.methods - .setup( - reputationOracle, - recordingOracle, - 10, - 10, - 'manifestUrl', - 'manifestUrl', - 3 - ) - .send({ from: owner.address }); - }); - - it('Get escrow status', async () => { - const status = await getEscrowStatus(web3, escrowAddress); - expect(status).toBe('1'); - }); - - it('Get manifest URL', async () => { - const manifest = await getEscrowManifestUrl(web3, escrowAddress); - expect(manifest).toBe('manifestUrl'); - }); - - it('Get escrow recording oracle', async () => { - const recordingOracleAddress = await getRecordingOracleAddress( - web3, - escrowAddress - ); - expect(recordingOracleAddress).toBe(recordingOracle); - }); - - it('Check store intermediate results', async () => { - const result = await storeResults( - web3, - escrowAddress, - 'testUrl', - 'testHash' - ); - expect(result.events.IntermediateStorage.returnValues).not.toBeNull(); - expect(result.events.IntermediateStorage.returnValues._url).toBe('testUrl'); - expect(result.events.IntermediateStorage.returnValues._hash).toBe( - 'testHash' - ); - }, 10000); -}); diff --git a/packages/examples/fortune/recording-oracle/src/services/escrow.ts b/packages/examples/fortune/recording-oracle/src/services/escrow.ts deleted file mode 100644 index 2329d58b67..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/escrow.ts +++ /dev/null @@ -1,45 +0,0 @@ -import EscrowAbi from '@human-protocol/core/abis/Escrow.json'; -import Web3 from 'web3'; - -export async function getRecordingOracleAddress( - web3: Web3, - escrowAddress: string -): Promise { - const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); - return await Escrow.methods.recordingOracle().call(); -} - -export async function getEscrowStatus( - web3: Web3, - escrowAddress: string -): Promise { - const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); - return await Escrow.methods.status().call(); -} - -export async function getEscrowManifestUrl( - web3: Web3, - escrowAddress: string -): Promise { - const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); - return await Escrow.methods.manifestUrl().call(); -} - -export async function storeResults( - web3: Web3, - escrowAddress: string, - resultsUrl: string, - resultHash: string -) { - const Escrow = new web3.eth.Contract(EscrowAbi as [], escrowAddress); - const gasNeeded = await Escrow.methods - .storeResults(resultsUrl, resultHash) - .estimateGas({ from: web3.eth.defaultAccount }); - const gasPrice = await web3.eth.getGasPrice(); - - const result = await Escrow.methods - .storeResults(resultsUrl, resultHash) - .send({ from: web3.eth.defaultAccount, gas: gasNeeded, gasPrice }); - - return result; -} diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts deleted file mode 100644 index 4044632ebf..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.test.ts +++ /dev/null @@ -1,191 +0,0 @@ -import Web3 from 'web3'; -import { - describe, - expect, - it, - beforeAll, - jest, - beforeEach, -} from '@jest/globals'; -import { addFortune } from './fortune'; -import Escrow from '@human-protocol/core/artifacts/contracts/Escrow.sol/Escrow.json'; -import HMToken from '@human-protocol/core/artifacts/contracts/HMToken.sol/HMToken.json'; -import EscrowFactory from '@human-protocol/core/artifacts/contracts/EscrowFactory.sol/EscrowFactory.json'; -import Staking from '@human-protocol/core/artifacts/contracts/Staking.sol/Staking.json'; -import { bulkPayout } from './reputationClient'; -import { getManifest } from './manifest'; -import { Contract } from 'web3-eth-contract'; -import { getEscrow, getFortunes, getWorkerResult } from './storage'; - -let token: Contract; -let staking: Contract; -let escrowFactory: Contract; -let escrowAddress: string; -let escrow: Contract; - -const worker1 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; -const worker2 = '0xcd3B766CCDd6AE721141F452C550Ca635964ce71'; -const web3 = new Web3('http://127.0.0.1:8547'); -const owner = web3.eth.accounts.privateKeyToAccount( - '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' -); -const launcher = web3.eth.accounts.privateKeyToAccount( - '0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6' -); -const recordingAccount = web3.eth.accounts.privateKeyToAccount( - '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' -); -web3.eth.defaultAccount = recordingAccount.address; -jest.mock('./manifest'); -jest.mock('./reputationClient'); - -describe('Fortune', () => { - beforeAll(async () => { - const tokenContract = new web3.eth.Contract(HMToken.abi as []); - token = await tokenContract - .deploy({ - data: HMToken.bytecode, - arguments: [ - web3.utils.toWei('100000', 'ether'), - 'Human Token', - 18, - 'HMT', - ], - }) - .send({ - from: owner.address, - }); - - const stakingContract = new web3.eth.Contract(Staking.abi as []); - staking = await stakingContract - .deploy({ - data: Staking.bytecode, - arguments: [], - }) - .send({ - from: owner.address, - }); - - await staking.methods - .initialize(token.options.address, web3.utils.toWei('1', 'ether'), 1) - .send({ from: owner.address }); - - const escrowFactoryContract = new web3.eth.Contract( - EscrowFactory.abi as [] - ); - escrowFactory = await escrowFactoryContract - .deploy({ - data: EscrowFactory.bytecode, - arguments: [], - }) - .send({ - from: owner.address, - }); - - await escrowFactory.methods.initialize(staking.options.address).send({ - from: owner.address, - }); - - await token.methods - .transfer(launcher.address, web3.utils.toWei('1000', 'ether')) - .send({ from: owner.address }); - - await token.methods - .approve(staking.options.address, web3.utils.toWei('500', 'ether')) - .send({ from: launcher.address }); - - await staking.methods - .stake(web3.utils.toWei('500', 'ether')) - .send({ from: launcher.address }); - }); - - beforeEach(async () => { - await escrowFactory.methods - .createEscrow(token.options.address, [launcher.address]) - .send({ from: launcher.address }); - - escrowAddress = await escrowFactory.methods.lastEscrow().call(); - - const value = web3.utils.toWei('10', 'ether'); - await token.methods - .transfer(escrowAddress, value) - .send({ from: launcher.address }); - - escrow = new web3.eth.Contract(Escrow.abi as [], escrowAddress); - await escrow.methods - .setup( - '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC', - '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', - 10, - 10, - 'manifestUrl', - 'manifestUrl', - 3 - ) - .send({ from: launcher.address }); - - jest.mocked(getManifest).mockResolvedValue({ - fortunes_requested: 2, - reputationOracleUrl: '', - }); - jest.mocked(bulkPayout).mockResolvedValue(); - }); - - it('Add fortunes successfully', async () => { - let err = await addFortune(web3, worker1, escrowAddress, 'fortune 1'); - expect(getEscrow(escrowAddress)).toBeDefined(); - expect(getWorkerResult(escrowAddress, worker1)).toBe('fortune 1'); - expect(getFortunes(escrowAddress).length).toBe(1); - expect(err).toBeNull(); - err = await addFortune(web3, worker2, escrowAddress, 'fortune 2'); - expect(getEscrow(escrowAddress)).toBeDefined(); - expect(getFortunes(escrowAddress).length).toBe(0); // after reaching the fortunes desired the store is cleaned - expect(getManifest).toHaveBeenCalledTimes(2); - expect(bulkPayout).toHaveBeenCalledTimes(1); - expect(err).toBeNull(); - }); - - it('Do not allow two fortunes from the same worker', async () => { - let err = await addFortune(web3, worker1, escrowAddress, 'fortune 1'); - expect(getEscrow(escrowAddress)).toBeDefined(); - expect(getWorkerResult(escrowAddress, worker1)).toBe('fortune 1'); - expect(getFortunes(escrowAddress).length).toBe(1); - expect(err).toBeNull(); - err = await addFortune(web3, worker1, escrowAddress, 'fortune 2'); - expect(getEscrow(escrowAddress)).toBeDefined(); - expect(getFortunes(escrowAddress).length).toBe(1); - expect(err?.message).toBe( - '0x90F79bf6EB2c4f870365E785982E1f101E93b906 already submitted a fortune' - ); - }); - - it('Do not allow empty fortune', async () => { - const err = await addFortune(web3, worker1, escrowAddress, ''); - expect(getEscrow(escrowAddress)).toBeUndefined(); - expect(err?.message).toBe('Non-empty fortune is required'); - }); - - it('Invalid escrow address', async () => { - const err = await addFortune(web3, worker1, 'escrowAddress', 'fortune 1'); - expect(getEscrow(escrowAddress)).toBeUndefined(); - expect(err?.message).toBe('Valid ethereum address required'); - }); - - it('Invalid recording oracle address', async () => { - web3.eth.defaultAccount = owner.address; - const err = await addFortune(web3, worker1, escrowAddress, 'fortune 1'); - expect(getEscrow(escrowAddress)).toBeUndefined(); - expect(err?.message).toBe( - 'The Escrow Recording Oracle address mismatches the current one' - ); - web3.eth.defaultAccount = recordingAccount.address; - }); - - it('Escrow not pending', async () => { - await escrow.methods.cancel().send({ - from: launcher.address, - }); - const err = await addFortune(web3, worker1, escrowAddress, 'fortune 1'); - expect(err?.message).toBe('The Escrow is not in the Pending status'); - }); -}); diff --git a/packages/examples/fortune/recording-oracle/src/services/fortune.ts b/packages/examples/fortune/recording-oracle/src/services/fortune.ts deleted file mode 100644 index abcfdff439..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/fortune.ts +++ /dev/null @@ -1,116 +0,0 @@ -import Web3 from 'web3'; -import { - getEscrowStatus, - getEscrowManifestUrl, - getRecordingOracleAddress, - storeResults, -} from './escrow'; -import { getManifest } from './manifest'; -import { bulkPayout } from './reputationClient'; -import { uploadResults } from './s3'; -import { - cleanFortunes, - getEscrow, - getFortunes, - getWorkerResult, - newEscrow, - putFortune, -} from './storage'; - -const statusesMap = [ - 'Launched', - 'Pending', - 'Partial', - 'Paid', - 'Complete', - 'Cancelled', -]; - -export interface FortuneError { - message: string; - field?: string; -} - -export async function addFortune( - web3: Web3, - workerAddress: string, - escrowAddress: string, - fortune: string -): Promise { - if (!web3.utils.isAddress(workerAddress)) { - return { - field: 'workerAddress', - message: 'Valid ethereum address required', - }; - } - if (!fortune) { - return { field: 'fortune', message: 'Non-empty fortune is required' }; - } - - if (!web3.utils.isAddress(escrowAddress)) { - return { - field: 'escrowAddress', - message: 'Valid ethereum address required', - }; - } - - const escrowRecOracleAddr = await getRecordingOracleAddress( - web3, - escrowAddress - ); - - if ( - web3.utils.toChecksumAddress(escrowRecOracleAddr) !== - web3.utils.toChecksumAddress(web3.eth.defaultAccount as string) - ) { - return { - field: 'escrowAddress', - message: 'The Escrow Recording Oracle address mismatches the current one', - }; - } - - const escrowStatus = await getEscrowStatus(web3, escrowAddress); - - if (statusesMap[escrowStatus] !== 'Pending') { - return { - field: 'escrowAddress', - message: 'The Escrow is not in the Pending status', - }; - } - - const manifestUrl = await getEscrowManifestUrl(web3, escrowAddress); - const { - fortunes_requested: fortunesRequested, - reputation_oracle_url: reputationOracleUrl, - } = await getManifest(manifestUrl); - - if (!getEscrow(escrowAddress)) { - newEscrow(escrowAddress); - } - - const workerPreviousResult = getWorkerResult(escrowAddress, workerAddress); - - if (workerPreviousResult) { - return { message: `${workerAddress} already submitted a fortune` }; - } - - putFortune(escrowAddress, workerAddress, fortune); - - const fortunes = getFortunes(escrowAddress); - - const resultUrl = await uploadResults( - fortunes.map(({ fortune }: { fortune: string }) => fortune), - escrowAddress - ); - // TODO calculate the URL hash(?) - const resultHash = resultUrl; - - await storeResults(web3, escrowAddress, resultUrl, resultHash); - - if (fortunes.length === fortunesRequested) { - await bulkPayout(reputationOracleUrl, escrowAddress, fortunes); - cleanFortunes(escrowAddress); - } - - return null; -} diff --git a/packages/examples/fortune/recording-oracle/src/services/manifest.ts b/packages/examples/fortune/recording-oracle/src/services/manifest.ts deleted file mode 100644 index e3b5911e6c..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/manifest.ts +++ /dev/null @@ -1,9 +0,0 @@ -import axios from 'axios'; -import { convertUrl } from '../utils/url'; - -export async function getManifest(manifestUrl: string) { - const manifestResponse = await axios.get(convertUrl(manifestUrl)); - return manifestResponse.data; -} - -export default getManifest; diff --git a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts new file mode 100644 index 0000000000..1ed345c0af --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts @@ -0,0 +1,175 @@ +import axios from 'axios'; +import { EscrowStatus } from '../constants/escrow'; +import { IFortuneRequest, IFortuneResults } from '../interfaces/fortunes'; +import { IPlugin } from '../interfaces/plugins'; +import * as crypto from 'crypto'; +import { sendFortunes } from './reputationOracleClient'; +import { IEscrowStorage } from '../interfaces/storage'; + +export async function getManifestByUrl(manifestUrl: string) { + const response = await axios.get(manifestUrl); + + if (!response.data) { + throw new Error('Not Found'); + } + + return response.data; +} + +async function saveFortuneResults( + plugins: IPlugin, + results: IFortuneResults +): Promise { + return await plugins.s3.saveData(results.escrowAddress, results); +} + +function isFortunesRequestedDone(escrow: IEscrowStorage): boolean { + const data = Object.values(escrow.fortunes); + const validFortunes = data.filter((item) => item.score); + + if (validFortunes.length < escrow.fortunesRequested) { + return false; + } + + return true; +} + +function getFortunesContent(escrow: IEscrowStorage): string[] { + const data = Object.values(escrow.fortunes); + return data.map((item) => item.fortune); +} + +export async function processFortunes( + plugins: IPlugin, + fortune: IFortuneRequest +) { + const web3 = plugins.web3[fortune.chainId]; + + if (!web3.utils.isAddress(fortune.escrowAddress)) { + throw new Error('Valid ethereum address required for escrowAddress'); + } + + if (!web3.utils.isAddress(fortune.workerAddress)) { + throw new Error('Valid ethereum address required for workerAddress'); + } + + if (!fortune.fortune) { + throw new Error('Non-empty fortune is required'); + } + + const recordingOracleAddress = await plugins.escrow.getRecordingOracleAddress( + web3, + fortune.escrowAddress + ); + + if ( + web3.utils.toChecksumAddress(recordingOracleAddress) !== + web3.utils.toChecksumAddress(web3.eth.defaultAccount as string) + ) { + throw new Error( + 'Escrow Recording Oracle address mismatches the current one' + ); + } + + const escrowStatus = await plugins.escrow.getEscrowStatus( + web3, + fortune.escrowAddress + ); + + if (EscrowStatus[escrowStatus] !== EscrowStatus[EscrowStatus.Pending]) { + throw new Error('Escrow is not in the Pending status'); + } + + const manifestUrl = await plugins.escrow.getEscrowManifestUrl( + web3, + fortune.escrowAddress + ); + + const { + fortunes_requested: fortunesRequested, + reputation_oracle_url: reputationOracleUrl, + } = await getManifestByUrl(manifestUrl); + + let escrow = plugins.storage.getEscrow(fortune.escrowAddress); + + if (!escrow) { + escrow = plugins.storage.addEscrow( + fortune.escrowAddress, + fortune.chainId, + fortunesRequested + ); + } + + if (isFortunesRequestedDone(escrow)) { + throw new Error('All fortunes have already been sent'); + } + + const fortuneStored = plugins.storage.getFortune( + fortune.escrowAddress, + fortune.workerAddress + ); + + if (!fortuneStored || (fortuneStored && !fortuneStored.score)) { + let score = false; + + if (plugins.curses.isProfane(fortune.fortune)) { + escrow = plugins.storage.addFortune( + fortune.escrowAddress, + fortune.workerAddress, + fortune.fortune, + score + ); + throw new Error('Fortune contains curses'); + } + + const fortunesContent = getFortunesContent(escrow); + + if (!plugins.uniqueness.isUnique(fortune.fortune, fortunesContent)) { + escrow = plugins.storage.addFortune( + fortune.escrowAddress, + fortune.workerAddress, + fortune.fortune, + score + ); + throw new Error('Fortune is not unique'); + } + + score = fortuneStored && !fortuneStored.score ? false : true; + escrow = plugins.storage.addFortune( + fortune.escrowAddress, + fortune.workerAddress, + fortune.fortune, + score + ); + } else { + throw new Error(`${fortune.workerAddress} already submitted a fortune`); + } + + const fortuneResults = { + escrowAddress: fortune.escrowAddress, + chainId: escrow.chainId, + fortunes: escrow.fortunes, + }; + const fortuneResultsUrl = await saveFortuneResults(plugins, fortuneResults); + console.log('Fortune Results Url: ', fortuneResultsUrl); + + const fortuneResultsHash = crypto + .createHash('sha256') + .update(escrow.toString()) + .digest('hex'); + + await plugins.escrow.storeResults( + web3, + fortune.escrowAddress, + fortuneResultsUrl, + fortuneResultsHash + ); + + if (isFortunesRequestedDone(escrow)) { + sendFortunes(reputationOracleUrl, fortuneResults); + plugins.storage.remove(fortune.escrowAddress); + return { response: 'The requested fortunes have been completed.' }; + } + + return { response: true }; +} diff --git a/packages/examples/fortune/recording-oracle/src/services/reputationClient.ts b/packages/examples/fortune/recording-oracle/src/services/reputationClient.ts deleted file mode 100644 index 6b78143230..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/reputationClient.ts +++ /dev/null @@ -1,17 +0,0 @@ -import axios from 'axios'; -import { convertUrl } from '../utils/url'; -import { FortuneEntry } from './storage'; - -export async function bulkPayout( - reputationOracleUrl: string, - escrowAddress: string, - fortunes: FortuneEntry[] -) { - // a cron job might check how much annotations are in work - // if this is full - then just push them to the reputation oracle - - await axios.post(convertUrl(reputationOracleUrl), { - escrowAddress, - fortunes, - }); -} diff --git a/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts b/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts new file mode 100644 index 0000000000..d1926ce90a --- /dev/null +++ b/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts @@ -0,0 +1,14 @@ +import axios from 'axios'; +import { IFortuneResults } from '../interfaces/fortunes'; + +export async function sendFortunes( + reputationOracleUrl: string, + fortunes: IFortuneResults +) { + const data = [fortunes]; + try { + return await axios.post(reputationOracleUrl, data); + } catch (e) { + console.log('Reputation Oracle error: ', e); + } +} diff --git a/packages/examples/fortune/recording-oracle/src/services/s3.ts b/packages/examples/fortune/recording-oracle/src/services/s3.ts deleted file mode 100644 index a7ebf3962d..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/s3.ts +++ /dev/null @@ -1,35 +0,0 @@ -import * as Minio from 'minio'; - -const minioHost = process.env.MINIO_HOST || 'localhost'; -const minioPort = Number(process.env.MINIO_PORT) || 9000; -const minioAccessKey = process.env.MINIO_ACCESS_KEY || 'dev'; -const minioSecretKey = process.env.MINIO_SECRET_KEY || 'devdevdev'; -const minioBucketName = process.env.MINIO_BUCKET_NAME || 'job-results'; - -const minioClient = new Minio.Client({ - endPoint: minioHost, - port: minioPort, - accessKey: minioAccessKey, - secretKey: minioSecretKey, - useSSL: false, -}); - -export async function uploadResults(fortunes: string[], escrowAddress: string) { - const fileName = `${escrowAddress}.json`; - - const bucketExists = await minioClient.bucketExists(minioBucketName); - if (!bucketExists) { - await minioClient.makeBucket(minioBucketName, ''); - } - await minioClient.putObject( - minioBucketName, - fileName, - JSON.stringify(fortunes), - { 'Content-Type': 'application/json' } - ); - - // the url is available for 7 days since the issue - const url = await minioClient.presignedUrl('GET', minioBucketName, fileName); - - return url; -} diff --git a/packages/examples/fortune/recording-oracle/src/services/storage.test.ts b/packages/examples/fortune/recording-oracle/src/services/storage.test.ts deleted file mode 100644 index 58192cfbc1..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/storage.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { describe, expect, it } from '@jest/globals'; -import { - newEscrow, - getEscrow, - putFortune, - getWorkerResult, - getFortunes, - cleanFortunes, -} from './storage'; - -describe('Storage', () => { - const testAddress = '0x0ed2e86fce2e5a7965f59708c01f88a722bc7f07'; - const worker = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; - - it('New escrow', async () => { - newEscrow(testAddress); - const escrow = getEscrow(testAddress); - expect(escrow).toBeDefined(); - }); - - it('Save fortune', async () => { - putFortune(testAddress, worker, 'fortune'); - const escrow = getEscrow(testAddress); - expect(escrow[worker]).toBe('fortune'); - }); - - it('Get worker result', async () => { - const workerResult = getWorkerResult(testAddress, worker); - expect(workerResult).toBe('fortune'); - }); - - it('Get fortunes', async () => { - const fortunes = getFortunes(testAddress); - expect(fortunes).toStrictEqual([{ fortune: 'fortune', worker }]); - }); - - it('Clean fortunes', async () => { - cleanFortunes(testAddress); - const fortunes = getFortunes(testAddress); - expect(fortunes.length).toBe(0); - }); -}); diff --git a/packages/examples/fortune/recording-oracle/src/services/storage.ts b/packages/examples/fortune/recording-oracle/src/services/storage.ts deleted file mode 100644 index 7c0d636bd1..0000000000 --- a/packages/examples/fortune/recording-oracle/src/services/storage.ts +++ /dev/null @@ -1,49 +0,0 @@ -export interface FortuneEntry { - worker: string; - fortune: string; -} - -const storage: Record> = {}; - -export function newEscrow(address: string) { - const escrow = {}; - storage[address] = escrow; - - return escrow; -} - -export function getEscrow(address: string) { - return storage[address]; -} - -export function getWorkerResult(escrowAddress: string, workerAddress: string) { - return storage[escrowAddress][workerAddress]; -} - -export function putFortune( - escrowAddress: string, - workerAddress: string, - value: string -) { - storage[escrowAddress][workerAddress] = value; -} - -export function getFortunes(escrowAddress: string) { - const escrow = storage[escrowAddress]; - const result: FortuneEntry[] = []; - if (!escrow) { - return result; - } - - // eslint-disable-next-line no-restricted-syntax, prefer-const - for (let workerAddress of Object.keys(escrow)) { - result.push({ worker: workerAddress, fortune: escrow[workerAddress] }); - } - - return result; -} - -export function cleanFortunes(escrowAddress: string) { - const newEscrow = {}; - storage[escrowAddress] = newEscrow; -} diff --git a/packages/examples/fortune/recording-oracle/src/utils/url.ts b/packages/examples/fortune/recording-oracle/src/utils/url.ts deleted file mode 100644 index 376ab452ee..0000000000 --- a/packages/examples/fortune/recording-oracle/src/utils/url.ts +++ /dev/null @@ -1,6 +0,0 @@ -export function convertUrl(url: string) { - if (process.env.DOCKER) { - return url.replace('localhost', 'host.docker.internal'); - } - return url; -} diff --git a/packages/examples/fortune/recording-oracle/tests/routes/fortune.test.ts b/packages/examples/fortune/recording-oracle/tests/routes/fortune.test.ts new file mode 100644 index 0000000000..1f6c499c5e --- /dev/null +++ b/packages/examples/fortune/recording-oracle/tests/routes/fortune.test.ts @@ -0,0 +1,16 @@ +import { describe, test, expect } from 'vitest'; +import getServer from '../../src/server.js'; + +describe('Escrow route tests', async () => { + const server = await getServer(); + + test('Should not allow to send fortune', async () => { + const response = await server.inject({ + method: 'POST', + path: '/send-fortunes', + payload: {}, + }); + + expect(response.statusCode).eq(400); + }); +}); diff --git a/packages/examples/fortune/recording-oracle/tests/setup.ts b/packages/examples/fortune/recording-oracle/tests/setup.ts new file mode 100644 index 0000000000..35e0e2ab42 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/tests/setup.ts @@ -0,0 +1,3 @@ +import dotenv from 'dotenv'; + +dotenv.config({ path: './.env.test' }); diff --git a/packages/examples/fortune/recording-oracle/tsconfig.json b/packages/examples/fortune/recording-oracle/tsconfig.json index 14ee9c7523..1c4a0639b0 100644 --- a/packages/examples/fortune/recording-oracle/tsconfig.json +++ b/packages/examples/fortune/recording-oracle/tsconfig.json @@ -1,20 +1,22 @@ { "compilerOptions": { - "target": "es2016", - "lib": ["es6"], + "target": "es2020", "module": "commonjs", - "rootDir": ".", + "moduleResolution": "node", + "pretty": true, + "noEmitOnError": true, + "strict": true, "resolveJsonModule": true, - "outDir": "build", - "esModuleInterop": true, + "removeComments": true, + "noUnusedLocals": true, + "noFallthroughCasesInSwitch": true, + "useDefineForClassFields": true, "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitAny": true, - "skipLibCheck": true + "skipLibCheck": true, + "esModuleInterop": true, + "outDir": "build", + "lib": ["es2020"] }, - "exclude": [ - "./build/**/*", - "src/**/*.spec.ts", - "src/**/*.test.ts" - ] -} + "include": ["src/**/*"], + "exclude": ["tests"] +} \ No newline at end of file diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index f477d5d804..06aac0c929 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -1,17 +1,17 @@ { - "version": 2, + "buildCommand": "yarn workspace @human-protocol/fortune-recording-oracle build", + "installCommand": "yarn install", + "outputDirectory": "build", "builds": [ - { - "src": "src/index.ts", - "use": "@vercel/node" - } + { + "src": "src/index.ts", + "use": "@vercel/node" + } ], "routes": [ - { - "src": "/(.*)", - "dest": "src/index.ts" - } + { + "src": "/(.*)", + "dest": "src/index.ts" + } ] } - - \ No newline at end of file diff --git a/packages/examples/fortune/recording-oracle/vitest.config.ts b/packages/examples/fortune/recording-oracle/vitest.config.ts new file mode 100644 index 0000000000..f695e24746 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + setupFiles: ['./tests/setup.ts'], + threads: false, + }, +}); diff --git a/yarn.lock b/yarn.lock index dbd2d66689..290b9bc596 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22900,4 +22900,4 @@ zustand@^4.0.0, zustand@^4.3.1: resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.2.tgz#bb121fcad84c5a569e94bd1a2695e1a93ba85d39" integrity sha512-rd4haDmlwMTVWVqwvgy00ny8rtti/klRoZjFbL/MAcDnmD5qSw/RZc+Vddstdv90M5Lv6RPgWvm1Hivyn0QgJw== dependencies: - use-sync-external-store "1.2.0" + use-sync-external-store "1.2.0" \ No newline at end of file From c75252826a601aa6794bfa1593c415a85544c052 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 3 Feb 2023 13:51:53 +0100 Subject: [PATCH 165/216] add addresses --- .../src/constants/networks.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/examples/fortune/recording-oracle/src/constants/networks.ts b/packages/examples/fortune/recording-oracle/src/constants/networks.ts index a3c7cfb8e6..4304d47fdc 100644 --- a/packages/examples/fortune/recording-oracle/src/constants/networks.ts +++ b/packages/examples/fortune/recording-oracle/src/constants/networks.ts @@ -1,14 +1,24 @@ import { IEscrowNetwork } from '../interfaces/networks'; export enum ChainId { + GOERLI = 5, + BSC_TESTNET = 97, POLYGON = 137, POLYGON_MUMBAI = 80001, + MOONBASE_ALPHA = 1287, LOCALHOST = 1338, } export const ESCROW_NETWORKS: { [chainId in ChainId]: IEscrowNetwork; } = { + [ChainId.GOERLI]: { + chainId: ChainId.GOERLI, + title: 'Ethereum Goerli', + rpcUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', + factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', + hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', + }, [ChainId.POLYGON]: { chainId: ChainId.POLYGON, title: 'Polygon', @@ -16,6 +26,13 @@ export const ESCROW_NETWORKS: { factoryAddress: '0x15D55Cb5d9Df6273B296745C3585a94574d2fDd7', hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', }, + [ChainId.BSC_TESTNET]: { + chainId: ChainId.BSC_TESTNET, + title: 'Binance Smart Chain (Testnet)', + rpcUrl: 'https://data-seed-prebsc-1-s3.binance.org:8545', + factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', + hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', + }, [ChainId.POLYGON_MUMBAI]: { chainId: ChainId.POLYGON_MUMBAI, title: 'Polygon Mumbai', @@ -23,6 +40,13 @@ export const ESCROW_NETWORKS: { factoryAddress: '0x79aE9b3Ad106AEdc1F813AaD98f550FADd9e2254', hmtAddress: '0xc2B8bb720e5df43e6E13b84B27dF5543B3485EA4', }, + [ChainId.MOONBASE_ALPHA]: { + chainId: ChainId.MOONBASE_ALPHA, + title: 'Moonbase Alpha', + rpcUrl: 'https://rpc.api.moonbase.moonbeam.network', + factoryAddress: '0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB', + hmtAddress: '0xe4C8eC5d057EacF40060b2174627a4941a5c8127', + }, [ChainId.LOCALHOST]: { chainId: ChainId.LOCALHOST, title: 'Localhost', From abc4e6dddcc008fb89c1c1babfc76a2ccb2ae2ea Mon Sep 17 00:00:00 2001 From: CryptoRush <98655210+leric7@users.noreply.github.com> Date: Fri, 3 Feb 2023 21:36:59 +0800 Subject: [PATCH 166/216] feat: Auto Generate Typescript types for HMT Base Model (#205) * add basic manifest validation * add more tests and update github workflow * fix catch * fix try catch * fix lint check --- .github/workflows/cd-node-basemodels.yaml | 26 ++ .../workflows/ci-test-node-basemodels.yaml | 19 + README.md | 4 + package.json | 6 +- .../fortune/launcher/server/.eslintrc | 10 + packages/sdk/json-schema/preprocess.json | 28 ++ .../basemodels/__init__.py | 6 +- .../basemodels/manifest/data/__init__.py | 2 +- .../scripts/export-json-schema.sh | 11 +- .../human-protocol-basemodels/.eslintignore | 3 + .../human-protocol-basemodels/jest.config.ts | 9 + .../human-protocol-basemodels/package.json | 51 +++ .../src/constants.ts | 14 + .../src/generated/manifest.ts | 290 ++++++++++++++ .../src/generated/preprocess.ts | 23 ++ .../src/groundtruth.ts | 60 +++ .../human-protocol-basemodels/src/index.ts | 3 + .../human-protocol-basemodels/src/manifest.ts | 215 +++++++++++ .../src/preprocess.ts | 1 + .../src/restricted-audience.ts | 64 +++ .../src/validators.ts | 51 +++ .../test/manifest.test.ts | 365 ++++++++++++++++++ .../test/preprocess.test.ts | 13 + yarn.lock | 176 ++++++++- 24 files changed, 1429 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/cd-node-basemodels.yaml create mode 100644 .github/workflows/ci-test-node-basemodels.yaml create mode 100644 packages/examples/fortune/launcher/server/.eslintrc create mode 100644 packages/sdk/json-schema/preprocess.json create mode 100644 packages/sdk/typescript/human-protocol-basemodels/.eslintignore create mode 100644 packages/sdk/typescript/human-protocol-basemodels/jest.config.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/package.json create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/constants.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/generated/manifest.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/generated/preprocess.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/groundtruth.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/index.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/manifest.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/preprocess.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/restricted-audience.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/src/validators.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/test/manifest.test.ts create mode 100644 packages/sdk/typescript/human-protocol-basemodels/test/preprocess.test.ts diff --git a/.github/workflows/cd-node-basemodels.yaml b/.github/workflows/cd-node-basemodels.yaml new file mode 100644 index 0000000000..5c990ec428 --- /dev/null +++ b/.github/workflows/cd-node-basemodels.yaml @@ -0,0 +1,26 @@ +name: Node.js Base Models NPM publish + +on: + release: + types: [published] + +jobs: + node-sdk-publish: + name: Node.js Base Models NPM Publish + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - run: yarn --ignore-scripts + name: Install dependencies + - name: Change Package version + uses: jossef/action-set-json-field@v2 + with: + file: ./packages/sdk/typescript/human-protocol-basemodels/package.json + field: version + value: ${{ github.event.release.tag_name }} + - uses: JS-DevTools/npm-publish@v1 + name: Publish + with: + package: ./packages/sdk/typescript/human-protocol-basemodels/package.json + access: public + token: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/ci-test-node-basemodels.yaml b/.github/workflows/ci-test-node-basemodels.yaml new file mode 100644 index 0000000000..5bac24880e --- /dev/null +++ b/.github/workflows/ci-test-node-basemodels.yaml @@ -0,0 +1,19 @@ +name: Node.js Base Models check + +on: + push: + branches: + - "main" + pull_request: + workflow_dispatch: + +jobs: + node-basemodels-test: + name: Node.js Base Models Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - run: npm install --global yarn && yarn --ignore-scripts + name: Install dependencies + - run: yarn basemodels:test + name: Run Node.js Base Models Test diff --git a/README.md b/README.md index f2ee01dd17..2c12467e08 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ [![Node.js SDK Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-sdk.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-sdk.yaml) +[![Node.js Base Models Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-basemodels.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-basemodels.yaml) + [![Subgraph Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph.yaml) [![Fortune Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-fortune.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-fortune.yaml) @@ -22,6 +24,8 @@ [![Node.js SDK Publish](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-node-sdk.yaml/badge.svg?event=release)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-node-sdk.yaml) +[![Node.js Base Models Publish](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-node-basemodels.yaml/badge.svg?event=release)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-node-basemodels.yaml) + [![Subgraph Deploy](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-subgraph.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-subgraph.yaml) ![HUMAN-LOGO](https://user-images.githubusercontent.com/104898604/201488028-2b0f29cb-c620-484f-991f-4a8b16efd7cc.png) diff --git a/package.json b/package.json index ed644a3d33..3a3c8af08b 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,10 @@ "fortune:lint": "yarn workspace @human-protocol/fortune lint", "sdk:test": "yarn workspace @human-protocol/sdk test", "sdk:lint": "yarn workspace @human-protocol/sdk lint", - "test": "concurrently npm:core:test npm:subgraph:test npm:escrow-dashboard:test npm:fortune:test npm:sdk:test", - "lint": "concurrently npm:core:lint npm:subgraph:lint npm:escrow-dashboard:lint npm:fortune:lint npm:eth-kvstore:lint npm:sdk:lint", + "basemodels:test": "yarn workspace @human-protocol/basemodels test", + "basemodels:lint": "yarn workspace @human-protocol/basemodels lint", + "test": "concurrently npm:core:test npm:subgraph:test npm:escrow-dashboard:test npm:fortune:test npm:sdk:test npm:basemodels:test", + "lint": "concurrently npm:core:lint npm:subgraph:lint npm:escrow-dashboard:lint npm:fortune:lint npm:eth-kvstore:lint npm:sdk:lint npm:basemodels:lint", "prepare": "husky install" }, "workspaces": { diff --git a/packages/examples/fortune/launcher/server/.eslintrc b/packages/examples/fortune/launcher/server/.eslintrc new file mode 100644 index 0000000000..adffb2cae3 --- /dev/null +++ b/packages/examples/fortune/launcher/server/.eslintrc @@ -0,0 +1,10 @@ +{ + "overrides": [ + { + "files": ["*.test.ts"], + "rules": { + "jest/valid-describe-callback": "off" + } + } + ] +} diff --git a/packages/sdk/json-schema/preprocess.json b/packages/sdk/json-schema/preprocess.json new file mode 100644 index 0000000000..23629b5892 --- /dev/null +++ b/packages/sdk/json-schema/preprocess.json @@ -0,0 +1,28 @@ +{ + "title": "Preprocess", + "type": "object", + "properties": { + "pipeline": { + "$ref": "#/definitions/Pipeline" + }, + "config": { + "title": "Config", + "type": "object" + } + }, + "required": [ + "pipeline" + ], + "definitions": { + "Pipeline": { + "title": "Pipeline", + "description": "An enumeration.", + "enum": [ + "FaceBlurPipeline", + "OCRThinFilterPipeline", + "UploadPipeline" + ], + "type": "string" + } + } +} \ No newline at end of file diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py b/packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py index 6e61801f86..6348cd3f2f 100644 --- a/packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/__init__.py @@ -6,7 +6,11 @@ TaskData, Webhook, ) -from .manifest.data import validate_taskdata_entry, validate_groundtruth_entry +from .manifest.data import ( + TaskDataEntry, + validate_taskdata_entry, + validate_groundtruth_entry, +) from .via import ViaDataManifest from .manifest.data.preprocess import Pipeline, Preprocess diff --git a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/__init__.py b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/__init__.py index 8f6f1beeca..8269a1ba99 100644 --- a/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/__init__.py +++ b/packages/sdk/python/human-protocol-basemodels/basemodels/manifest/data/__init__.py @@ -1,2 +1,2 @@ from .groundtruth import validate_groundtruth_entry -from .taskdata import validate_taskdata_entry +from .taskdata import validate_taskdata_entry, TaskDataEntry diff --git a/packages/sdk/python/human-protocol-basemodels/scripts/export-json-schema.sh b/packages/sdk/python/human-protocol-basemodels/scripts/export-json-schema.sh index a4cda132df..c1a05361d0 100755 --- a/packages/sdk/python/human-protocol-basemodels/scripts/export-json-schema.sh +++ b/packages/sdk/python/human-protocol-basemodels/scripts/export-json-schema.sh @@ -3,11 +3,14 @@ cat << EOF > pyscript.py #!/usr/bin/python3 import json -from basemodels import Manifest +from basemodels import Manifest, Preprocess -# Writing to manifest.json -with open("../../json-schema/manifest.json", "w") as outfile: - outfile.write(Manifest.schema_json(indent=2)) +def export_json_schema(cls, file_name): + with open(file_name, "w") as outfile: + outfile.write(cls.schema_json(indent=2)) + +export_json_schema(Manifest, "../../json-schema/manifest.json") +export_json_schema(Preprocess, "../../json-schema/preprocess.json") EOF diff --git a/packages/sdk/typescript/human-protocol-basemodels/.eslintignore b/packages/sdk/typescript/human-protocol-basemodels/.eslintignore new file mode 100644 index 0000000000..7b85a9d893 --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/.eslintignore @@ -0,0 +1,3 @@ +dist +node_modules +src/generated diff --git a/packages/sdk/typescript/human-protocol-basemodels/jest.config.ts b/packages/sdk/typescript/human-protocol-basemodels/jest.config.ts new file mode 100644 index 0000000000..0dd965e922 --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/jest.config.ts @@ -0,0 +1,9 @@ +export default { + preset: 'ts-jest', + testEnvironment: 'node', + testTimeout: 10000, + moduleNameMapper: { + // Force module uuid to resolve with the CJS entry point, because Jest does not support package.json.exports. See https://github.com/uuidjs/uuid/issues/451 + uuid: require.resolve('uuid'), + }, +}; diff --git a/packages/sdk/typescript/human-protocol-basemodels/package.json b/packages/sdk/typescript/human-protocol-basemodels/package.json new file mode 100644 index 0000000000..f806ac629d --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/package.json @@ -0,0 +1,51 @@ +{ + "name": "@human-protocol/basemodels", + "description": "Human Protocol Base Models", + "version": "0.0.1", + "files": [ + "src", + "dist", + "test" + ], + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "clean": "rm -rf ./dist", + "build": "npm run clean && tsc .", + "test": "jest --runInBand", + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "format": "prettier --write '**/*.{ts,json}'", + "generate:manifest": "json2ts -i ../../json-schema/manifest.json -o ./src/generated/manifest.ts", + "generate:preprocess": "json2ts -i ../../json-schema/preprocess.json -o ./src/generated/preprocess.ts", + "generate": "concurrently \"npm:generate:*\"" + }, + "repository": { + "url": "https://github.com/humanprotocol/human-protocol.git", + "directory": "packages/sdk/typescript/human-protocol-basemodels" + }, + "keywords": [ + "human-protocol", + "sdk", + "basemodels", + "schema", + "node", + "typescript", + "ethereum" + ], + "license": "MIT", + "lint-staged": { + "*.ts": [ + "prettier --write", + "eslint --fix" + ] + }, + "dependencies": { + "axios": "^1.2.6", + "uuid": "^9.0.0" + }, + "devDependencies": { + "@types/uuid": "^9.0.0", + "json-schema-to-typescript": "^11.0.3" + } +} diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/constants.ts b/packages/sdk/typescript/human-protocol-basemodels/src/constants.ts new file mode 100644 index 0000000000..916d722c25 --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/constants.ts @@ -0,0 +1,14 @@ +export const JOB_TYPES_FOR_CONTENT_TYPE_VALIDATION = [ + 'image_label_binary', + 'image_label_multiple_choice', + 'text_free_entry', + 'image_label_area_adjust', + 'image_label_area_select', + 'image_label_single_polygon', + 'image_label_multiple_polygons', + 'image_label_semantic_segmentation_one_option', + 'image_label_semantic_segmentation_multiple_options', + 'image_label_text', +]; + +export const SUPPORTED_CONTENT_TYPES = ['image/jpeg', 'image/jpg', 'image/png']; diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/generated/manifest.ts b/packages/sdk/typescript/human-protocol-basemodels/src/generated/manifest.ts new file mode 100644 index 0000000000..9d36a24755 --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/generated/manifest.ts @@ -0,0 +1,290 @@ +/* eslint-disable */ +/** + * This file was automatically generated by json-schema-to-typescript. + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, + * and run json-schema-to-typescript to regenerate this file. + */ + +export type JobMode = 'batch' | 'online' | 'instant_delivery'; +export type JobApiKey = string; +export type JobId = string; +export type JobTotalTasks = number; +export type JobId1 = string; +/** + * An enumeration. + */ +export type BaseJobTypesEnum = + | 'image_label_binary' + | 'image_label_multiple_choice' + | 'text_free_entry' + | 'text_multiple_choice_one_option' + | 'text_multiple_choice_multiple_options' + | 'image_label_area_adjust' + | 'image_label_area_select' + | 'image_label_single_polygon' + | 'image_label_multiple_polygons' + | 'image_label_semantic_segmentation_one_option' + | 'image_label_semantic_segmentation_multiple_options' + | 'image_label_text' + | 'multi_challenge'; +export type RequesterDescription = string; +export type RequesterMaxRepeats = number; +export type RequesterMinRepeats = number; +export type RequesterQuestionExample = string | string[]; +export type UnsafeContent = boolean; +export type RequesterAccuracyTarget = number; +export type Version = number; +/** + * An enumeration. + */ +export type ShapeTypes = 'point' | 'bounding_box' | 'polygon'; +export type MinPoints = number; +export type MaxPoints = number; +export type MinShapesPerImage = number; +export type MaxShapesPerImage = number; +export type RestrictToCoords = boolean; +export type MinimumSelectionAreaPerShape = number; +export type MultipleChoiceMaxChoices = number; +export type MultipleChoiceMinChoices = number; +export type OverlapThreshold = number; +export type GroundtruthUri = string; +export type Groundtruth = string; +export type ConfcalcConfigurationId = string; +export type WebhookId = string; +export type ChunkCompleted = string[]; +export type JobCompleted = string[]; +export type MultiChallengeManifests = NestedManifest[]; +export type Network = string; +export type OnlySignResults = boolean; +export type PublicResults = boolean; +export type RequesterDescription1 = string; +export type RequesterMaxRepeats1 = number; +export type RequesterMinRepeats1 = number; +export type RequesterQuestionExample1 = string | string[]; +export type UnsafeContent1 = boolean; +export type TaskBidPrice = number; +export type OracleStake = number; +export type ExpirationDate = number; +export type RequesterAccuracyTarget1 = number; +export type ManifestSmartBountyAddr = string; +export type HmtokenAddr = string; +export type MinimumTrustServer = number; +export type MinimumTrustClient = number; +export type RecordingOracleAddr = string; +export type ReputationOracleAddr = string; +export type ReputationAgentAddr = string; +export type RequesterPgpPublicKey = string; +export type RoUri = string; +export type RepoUri = string; +export type BatchResultDeliveryWebhook = string; +export type OnlineResultDeliveryWebhook = string; +export type InstantResultDeliveryWebhook = string; +export type TaskKey = string; +export type DatapointUri = string; +export type DatapointHash = string; +export type Taskdata = TaskData[]; +export type TaskdataUri = string; +export type GroundtruthUri1 = string; +export type Groundtruth1 = string; +export type ConfcalcConfigurationId1 = string; +export type RestrictedAudience = RestrictedAudience1; +export type Score = number; +export type Lang = { + [k: string]: RestrictedAudienceScore; +}[]; +export type Country = { + [k: string]: RestrictedAudienceScore; +}[]; +export type Sitekey = { + [k: string]: RestrictedAudienceScore; +}[]; +export type Serverdomain = { + [k: string]: RestrictedAudienceScore; +}[]; +export type Browser = { + [k: string]: RestrictedAudienceScore; +}[]; +export type Confidence = { + [k: string]: RestrictedAudienceScore; +}[]; +export type Reason = { + [k: string]: RestrictedAudienceScore; +}[]; +export type MinDifficulty = number; +export type MinUserScore = number; +export type MaxUserScore = number; +export type LaunchGroupId = number; +export type RejectedUri = string; +export type RejectedCount = number; + +/** + * The manifest description. + */ +export interface Manifest { + job_mode: JobMode; + job_api_key?: JobApiKey; + job_id?: JobId; + job_total_tasks: JobTotalTasks; + multi_challenge_manifests?: MultiChallengeManifests; + request_type: BaseJobTypesEnum; + network?: Network; + only_sign_results?: OnlySignResults; + public_results?: PublicResults; + requester_restricted_answer_set?: RequesterRestrictedAnswerSet1; + requester_description?: RequesterDescription1; + requester_max_repeats?: RequesterMaxRepeats1; + requester_min_repeats?: RequesterMinRepeats1; + requester_question?: RequesterQuestion1; + requester_question_example?: RequesterQuestionExample1; + unsafe_content?: UnsafeContent1; + task_bid_price: TaskBidPrice; + oracle_stake: OracleStake; + expiration_date?: ExpirationDate; + requester_accuracy_target?: RequesterAccuracyTarget1; + manifest_smart_bounty_addr?: ManifestSmartBountyAddr; + hmtoken_addr?: HmtokenAddr; + minimum_trust_server?: MinimumTrustServer; + minimum_trust_client?: MinimumTrustClient; + recording_oracle_addr?: RecordingOracleAddr; + reputation_oracle_addr?: ReputationOracleAddr; + reputation_agent_addr?: ReputationAgentAddr; + requester_pgp_public_key?: RequesterPgpPublicKey; + ro_uri?: RoUri; + repo_uri?: RepoUri; + batch_result_delivery_webhook?: BatchResultDeliveryWebhook; + online_result_delivery_webhook?: OnlineResultDeliveryWebhook; + instant_result_delivery_webhook?: InstantResultDeliveryWebhook; + request_config?: RequestConfig; + taskdata?: Taskdata; + taskdata_uri?: TaskdataUri; + groundtruth_uri?: GroundtruthUri1; + groundtruth?: Groundtruth1; + internal_config?: InternalConfig; + confcalc_configuration_id?: ConfcalcConfigurationId1; + restricted_audience?: RestrictedAudience; + webhook?: Webhook; + rejected_uri?: RejectedUri; + rejected_count?: RejectedCount; + [k: string]: unknown; +} +/** + * The nested manifest description for multi_challenge jobs + */ +export interface NestedManifest { + job_id?: JobId1; + request_type: BaseJobTypesEnum; + requester_restricted_answer_set?: RequesterRestrictedAnswerSet; + requester_description?: RequesterDescription; + requester_max_repeats?: RequesterMaxRepeats; + requester_min_repeats?: RequesterMinRepeats; + requester_question?: RequesterQuestion; + requester_question_example?: RequesterQuestionExample; + unsafe_content?: UnsafeContent; + requester_accuracy_target?: RequesterAccuracyTarget; + request_config?: RequestConfig; + groundtruth_uri?: GroundtruthUri; + groundtruth?: Groundtruth; + confcalc_configuration_id?: ConfcalcConfigurationId; + webhook?: Webhook; + [k: string]: unknown; +} +export interface RequesterRestrictedAnswerSet { + [k: string]: { + [k: string]: string; + }; +} +export interface RequesterQuestion { + [k: string]: string; +} +/** + * Definition of the request_config object in manifest + */ +export interface RequestConfig { + version?: Version; + shape_type?: ShapeTypes; + min_points?: MinPoints; + max_points?: MaxPoints; + min_shapes_per_image?: MinShapesPerImage; + max_shapes_per_image?: MaxShapesPerImage; + restrict_to_coords?: RestrictToCoords; + minimum_selection_area_per_shape?: MinimumSelectionAreaPerShape; + multiple_choice_max_choices?: MultipleChoiceMaxChoices; + multiple_choice_min_choices?: MultipleChoiceMinChoices; + overlap_threshold?: OverlapThreshold; + [k: string]: unknown; +} +/** + * Model for webhook configuration + */ +export interface Webhook { + webhook_id: WebhookId; + chunk_completed?: ChunkCompleted; + job_completed?: JobCompleted; + [k: string]: unknown; +} +export interface RequesterRestrictedAnswerSet1 { + [k: string]: { + [k: string]: string; + }; +} +export interface RequesterQuestion1 { + [k: string]: string; +} +/** + * Objects within taskdata list in Manifest + */ +export interface TaskData { + task_key: TaskKey; + datapoint_uri: DatapointUri; + datapoint_hash: DatapointHash; + [k: string]: unknown; +} +/** + * Discarded from incoming manifests + */ +export interface InternalConfig { + exchange?: Exchange; + reco?: Reco; + repo?: Repo; + other?: Other; + mitl?: Mitl; + [k: string]: unknown; +} +export interface Exchange { + [k: string]: string | number; +} +export interface Reco { + [k: string]: string | number; +} +export interface Repo { + [k: string]: string | number; +} +export interface Other { + [k: string]: string | number; +} +export interface Mitl { + [k: string]: + | string + | number + | { + [k: string]: string | number; + }; +} +export interface RestrictedAudience1 { + lang?: Lang; + country?: Country; + sitekey?: Sitekey; + serverdomain?: Serverdomain; + browser?: Browser; + confidence?: Confidence; + reason?: Reason; + min_difficulty?: MinDifficulty; + min_user_score?: MinUserScore; + max_user_score?: MaxUserScore; + launch_group_id?: LaunchGroupId; + [k: string]: unknown; +} +export interface RestrictedAudienceScore { + score: Score; + [k: string]: unknown; +} diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/generated/preprocess.ts b/packages/sdk/typescript/human-protocol-basemodels/src/generated/preprocess.ts new file mode 100644 index 0000000000..2fa3438aff --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/generated/preprocess.ts @@ -0,0 +1,23 @@ +/* eslint-disable */ +/** + * This file was automatically generated by json-schema-to-typescript. + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, + * and run json-schema-to-typescript to regenerate this file. + */ + +/** + * An enumeration. + */ +export type Pipeline = + | 'FaceBlurPipeline' + | 'OCRThinFilterPipeline' + | 'UploadPipeline'; + +export interface Preprocess { + pipeline: Pipeline; + config?: Config; + [k: string]: unknown; +} +export interface Config { + [k: string]: unknown; +} diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/groundtruth.ts b/packages/sdk/typescript/human-protocol-basemodels/src/groundtruth.ts new file mode 100644 index 0000000000..af82c82d9f --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/groundtruth.ts @@ -0,0 +1,60 @@ +import axios from 'axios'; + +import { SUPPORTED_CONTENT_TYPES } from './constants'; +import { BaseJobTypesEnum } from './generated/manifest'; +import { validateURL } from './validators'; + +const validateContentType = async (uri: string) => { + const response = await axios.head(uri); + if ( + SUPPORTED_CONTENT_TYPES.indexOf(response.headers['content-type']) === -1 + ) { + throw new Error('Invalid content type'); + } +}; + +type ILBGroundtruthEntryModel = Array<'true' | 'false'>; +type ILMCGroundtruthEntryModel = Array>; +type ILASGroundtruthEntry = { + entity_name: number; + entity_type: string; + entity_coords: Array; +}; +type ILASGroundtruthEntryModel = Array>; + +/** + * Validate key & value of groundtruth entry based on request_type + * + * @param {string} key + * @param { Record | string[]} value + * @param {BaseJobTypesEnum} requestType + * @param {boolean} validateImageContentType + */ +export const validateGroundTruthEntry = async ( + key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + value: any, + requestType: BaseJobTypesEnum, + validateImageContentType: boolean +) => { + validateURL(key); + + if (requestType === 'image_label_binary') { + if ((value as ILBGroundtruthEntryModel) !== value) { + throw new Error('Invalid groundtruth entry'); + } + } else if (requestType === 'image_label_multiple_choice') { + if ((value as ILMCGroundtruthEntryModel) !== value) { + throw new Error('Invalid groundtruth entry'); + } + } else if (requestType === 'image_label_area_select') { + if ((value as ILASGroundtruthEntryModel) !== value) { + throw new Error('Invalid groundtruth entry'); + } + } else { + return; + } + if (validateImageContentType) { + await validateContentType(key); + } +}; diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/index.ts b/packages/sdk/typescript/human-protocol-basemodels/src/index.ts new file mode 100644 index 0000000000..856a2d0d7c --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/index.ts @@ -0,0 +1,3 @@ +export * from './constants'; +export * from './manifest'; +export * from './preprocess'; diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/manifest.ts b/packages/sdk/typescript/human-protocol-basemodels/src/manifest.ts new file mode 100644 index 0000000000..dc3a99e072 --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/manifest.ts @@ -0,0 +1,215 @@ +import axios from 'axios'; + +import { JOB_TYPES_FOR_CONTENT_TYPE_VALIDATION } from './constants'; +import { + BaseJobTypesEnum, + Manifest, + NestedManifest, +} from './generated/manifest'; +import { validateGroundTruthEntry } from './groundtruth'; +import { validateScoreFields, validateSiteKey } from './restricted-audience'; +import { validateNumber, validateURL, validateUUID } from './validators'; + +/** + * min repeats are required to be at least 4 if ilmc + */ +const validateMinRepeats = (manifest: Manifest): Manifest => { + if (manifest.request_type === 'image_label_multiple_choice') { + manifest.requester_min_repeats = Math.max( + manifest.requester_min_repeats || 0, + 4 + ); + } + return manifest; +}; + +const validateGroundTruth = ( + manifest: T +) => { + if (manifest.groundtruth && manifest.groundtruth_uri) { + throw new Error('Specify only groundtruth_uri or groundtruth, not both.'); + } +}; + +/** + * image_label_area_select should always have a single RAS set + */ +const validateRequesterRestrictedAnswerSet = < + T extends Manifest | NestedManifest +>( + manifest: T +): T => { + // validation runs before other params, so need to handle missing case + if (!manifest.request_type) { + throw new Error('request_type missing'); + } + + if (manifest.request_type === 'image_label_area_select') { + if ( + !manifest.requester_restricted_answer_set || + !Object.keys(manifest.requester_restricted_answer_set).length + ) { + manifest.requester_restricted_answer_set = { + label: {}, + }; + } + } + return manifest; +}; + +const validateRequesterQuestionExample = ( + manifest: T +) => { + // validation runs before other params, so need to handle missing case + if (!manifest.request_type) { + throw new Error('request_type missing'); + } + + // based on https://github.com/hCaptcha/hmt-basemodels/issues/27#issuecomment-590706643 + const supportedTypes: BaseJobTypesEnum[] = [ + 'image_label_area_select', + 'image_label_binary', + ]; + + if ( + Array.isArray(manifest.requester_question_example) && + manifest.requester_question_example?.length && + supportedTypes.indexOf(manifest.request_type) === -1 + ) { + throw new Error('Lists are not allowed in this challenge type'); + } +}; + +const validateTaskData = (manifest: Manifest) => { + if (manifest.taskdata?.length && manifest.taskdata_uri) { + throw new Error('Specify only taskdata_uri or taskdata, not both.'); + } +}; + +/** + * validate request types for all types of challenges + * multi_challenge should always have multi_challenge_manifests + */ +const validateRequestType = ( + manifest: T, + multiChallenge = true +) => { + if (manifest.request_type === 'multi_challenge') { + if (!multiChallenge) { + throw new Error('multi_challenge request is not allowed here.'); + } + if (!manifest.multi_challenge_manifests) { + throw new Error('multi_challenge_manifests is required.'); + } + } else if ( + manifest.request_type === 'image_label_multiple_choice' || + manifest.request_type === 'image_label_area_select' + ) { + if ( + (manifest.request_config?.multiple_choice_min_choices || 1) > + (manifest.request_config?.multiple_choice_max_choices || 1) + ) { + throw new Error( + 'multiple_choice_min_choices cannot be greater than multiple_choice_max_choices' + ); + } + } +}; + +export const validate = (manifest: Manifest): Manifest => { + // Basic validation + validateNumber(manifest.job_total_tasks); + validateNumber(manifest.task_bid_price); + + if (manifest.taskdata_uri) { + validateURL(manifest.taskdata_uri); + } + if (manifest.groundtruth_uri) { + validateURL(manifest.groundtruth_uri); + } + if (manifest.rejected_uri) { + validateURL(manifest.rejected_uri); + } + if (manifest.requester_question_example) { + if (Array.isArray(manifest.requester_question_example)) { + manifest.requester_question_example.forEach(validateURL); + } else { + validateURL(manifest.requester_question_example); + } + } + + let manifestValidated = manifest; + manifestValidated = validateMinRepeats(manifestValidated); + manifestValidated = validateUUID(manifestValidated, 'job_id'); + manifestValidated = validateUUID(manifestValidated, 'job_api_key'); + manifestValidated = validateRequesterRestrictedAnswerSet(manifestValidated); + + validateGroundTruth(manifestValidated); + validateRequesterQuestionExample(manifestValidated); + validateTaskData(manifestValidated); + validateRequestType(manifestValidated); + + if (manifestValidated.restricted_audience) { + validateScoreFields(manifestValidated.restricted_audience); + validateSiteKey(manifestValidated.restricted_audience); + } + + return manifestValidated; +}; + +export const validateNestedManifest = ( + nestedManifest: NestedManifest +): NestedManifest => { + if (nestedManifest.groundtruth_uri) { + validateURL(nestedManifest.groundtruth_uri); + } + + let nestedManifestValidated = nestedManifest; + + nestedManifestValidated = validateUUID(nestedManifestValidated, 'job_id'); + nestedManifestValidated = validateRequesterRestrictedAnswerSet( + nestedManifestValidated + ); + + validateRequesterQuestionExample(nestedManifestValidated); + validateRequestType(nestedManifestValidated, false); + validateGroundTruth(nestedManifestValidated); + + return nestedManifestValidated; +}; + +/** + * Validate taskdata_uri + * Returns entries count if succeeded + */ +const validateTaskDataURI = async (manifest: Manifest) => { + const requestType = manifest.request_type; + + const validateImageContentType = + JOB_TYPES_FOR_CONTENT_TYPE_VALIDATION.indexOf(requestType) > -1; + const uriKey = 'taskdata_uri'; + + const uri = manifest[uriKey]; + + if (!uri) { + return; + } + + const data = await axios.get(uri).then((res) => res.data); + if (Array.isArray(data)) { + for (const item of data) { + await validateGroundTruthEntry( + '', + item, + requestType, + validateImageContentType + ); + } + } +}; + +export const validateManifestURIs = async (manifest: Manifest) => { + await validateTaskDataURI(manifest); +}; + +export * from './generated/manifest'; diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/preprocess.ts b/packages/sdk/typescript/human-protocol-basemodels/src/preprocess.ts new file mode 100644 index 0000000000..544fa2f7a7 --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/preprocess.ts @@ -0,0 +1 @@ +export * from './generated/preprocess'; diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/restricted-audience.ts b/packages/sdk/typescript/human-protocol-basemodels/src/restricted-audience.ts new file mode 100644 index 0000000000..c5f37aef88 --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/restricted-audience.ts @@ -0,0 +1,64 @@ +import { + RestrictedAudience, + RestrictedAudienceScore, +} from './generated/manifest'; +import { validateUUIDString } from './validators'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const validateScoreObject = (scoreObj: any) => { + if (Object.keys(scoreObj).length !== 1 || !scoreObj.score) { + throw new Error('Score object must have exactly one key, score'); + } + + const score: RestrictedAudienceScore = scoreObj; + if (score.score < 0 || score.score > 1) { + throw new Error('Score must be between 0 and 1'); + } +}; + +export const validateScoreFields = (restrictedAudience: RestrictedAudience) => { + for (const [key, value] of Object.entries(restrictedAudience)) { + if (!value) { + return; + } + + if ( + [ + 'lang', + 'country', + 'browser', + 'sitekey', + 'serverdomain', + 'confidence', + ].includes(key) + ) { + if (!Array.isArray(value)) { + throw new Error(`${key} must be an array`); + } + + if (value.length !== 1) { + throw new Error(`${key} must have exactly one element`); + } + + for (const [scoreKey, scoreObj] of Object.entries(value[0])) { + validateScoreObject(scoreObj); + + if (['lang', 'country', 'sitekey'].includes(key)) { + if (scoreKey !== scoreKey.toLowerCase()) { + throw new Error(`${key} key must use lowercase keys`); + } + } + } + } + } +}; + +export const validateSiteKey = (restrictedAudience: RestrictedAudience) => { + if (restrictedAudience.sitekey) { + for (const restriction of restrictedAudience.sitekey) { + for (const key of Object.keys(restriction)) { + validateUUIDString(key); + } + } + } +}; diff --git a/packages/sdk/typescript/human-protocol-basemodels/src/validators.ts b/packages/sdk/typescript/human-protocol-basemodels/src/validators.ts new file mode 100644 index 0000000000..212a3fb7ca --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/src/validators.ts @@ -0,0 +1,51 @@ +import { v4 as uuidv4 } from 'uuid'; +import { Manifest, NestedManifest } from './generated/manifest'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const validateNumber = (value: any) => { + if (typeof value !== 'number') { + throw new Error('Invalid type'); + } + + if (value < 0) { + throw new Error('Invalid amount'); + } +}; + +export const validateUUIDString = (value: string) => { + if (typeof value !== 'string') { + throw new Error('Invalid type'); + } + + if ( + value.match( + /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/ + ) === null + ) { + throw new Error('Invalid UUID'); + } +}; + +export const validateUUID = ( + manifest: T, + field: string +): T => { + if (!manifest[field]) { + manifest[field] = uuidv4(); + } else { + validateUUIDString(manifest[field] as string); + } + + return manifest; +}; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const validateURL = (value: any) => { + if (typeof value !== 'string') { + throw new Error('Invalid type'); + } + + if (value.match(/^(http|https):\/\/[^ "]+$/) === null) { + throw new Error('Invalid URL'); + } +}; diff --git a/packages/sdk/typescript/human-protocol-basemodels/test/manifest.test.ts b/packages/sdk/typescript/human-protocol-basemodels/test/manifest.test.ts new file mode 100644 index 0000000000..9267d567db --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/test/manifest.test.ts @@ -0,0 +1,365 @@ +import { + BaseJobTypesEnum, + InternalConfig, + JobMode, + Manifest, + MultiChallengeManifests, + NestedManifest, + RequestConfig, + RestrictedAudience, + validate, + validateNestedManifest, +} from '../src/manifest'; +import { + validateScoreFields, + validateSiteKey, +} from '../src/restricted-audience'; + +const CALLBACK_URL = 'http://google.com/webback'; +const FAKE_URL = 'http://google.com/fake'; +const IMAGE_LABEL_BINARY = 'image_label_binary'; + +const REP_ORACLE = '0x61F9F0B31eacB420553da8BCC59DC617279731Ac'; +const REC_ORACLE = '0xD979105297fB0eee83F7433fC09279cb5B94fFC6'; + +const getNestedManifest = ({ + request_type = IMAGE_LABEL_BINARY, + minimum_trust = 0.1, + request_config, +}: { + request_type?: BaseJobTypesEnum; + minimum_trust?: number; + request_config?: RequestConfig; +}) => { + const nestedManifest: NestedManifest = { + requester_restricted_answer_set: { + '0': { en: 'English Answer 1' }, + '1': { + en: 'English Answer 2', + answer_example_uri: 'https://hcaptcha.com/example_answer2.jpg', + }, + }, + request_type: request_type, + requester_accuracy_target: minimum_trust, + requester_question: { en: 'How much money are we to make' }, + requester_question_example: FAKE_URL, + }; + + if (request_config) { + nestedManifest.request_config = request_config; + } + + return validateNestedManifest(nestedManifest); +}; + +const getManifest = ({ + number_of_tasks = 100, + bid_amount = 1.0, + oracle_stake = 0.05, + expiration_date = 0, + minimum_trust = 0.1, + request_type = IMAGE_LABEL_BINARY, + job_mode = 'batch', + request_config, + multi_challenge_manifests, +}: { + number_of_tasks?: number; + bid_amount?: number; + oracle_stake?: number; + expiration_date?: number; + minimum_trust?: number; + request_type?: BaseJobTypesEnum; + request_config?: RequestConfig; + job_mode?: JobMode; + multi_challenge_manifests?: MultiChallengeManifests; +}): Manifest | null => { + const internal_config: InternalConfig = { exchange: { a: 1, b: 'c' } }; + + const manifest: Manifest = { + requester_restricted_answer_set: { + '0': { en: 'English Answer 1' }, + '1': { + en: 'English Answer 2', + answer_example_uri: 'https://hcaptcha.com/example_answer2.jpg', + }, + }, + job_mode: job_mode, + request_type: request_type, + internal_config: internal_config, + multi_challenge_manifests: multi_challenge_manifests, + unsafe_content: false, + task_bid_price: bid_amount, + oracle_stake: oracle_stake, + expiration_date: expiration_date, + minimum_trust_server: minimum_trust, + minimum_trust_client: minimum_trust, + requester_accuracy_target: minimum_trust, + recording_oracle_addr: 'recording_oracle', + reputation_oracle_addr: REP_ORACLE, + reputation_agent_addr: REP_ORACLE, + instant_result_delivery_webhook: CALLBACK_URL, + requester_question: { en: 'How much money are we to make' }, + requester_question_example: FAKE_URL, + job_total_tasks: number_of_tasks, + taskdata_uri: FAKE_URL, + }; + if (request_config) { + manifest.request_config = request_config; + } + + return validate(manifest); +}; + +describe('Manifest', () => { + it('should create a Manifest', () => { + const manifest = getManifest({}); + + expect(manifest).not.toBeNull(); + }); + + it('should fail if the amount is invalid', () => { + expect(() => { + getManifest({ number_of_tasks: -1 }); + }).toThrow('Invalid amount'); + }); + + it('should fail with invalid taskdata URI', () => { + const manifest = getManifest({}); + expect(manifest).not.toBeNull(); + + if (manifest) { + manifest.taskdata_uri = 'test'; + expect(() => { + validate(manifest); + }).toThrow('Invalid URL'); + } + }); + + it('should create a Manifest using valid request config', () => { + const manifest = getManifest({ + request_type: 'image_label_area_select', + request_config: { shape_type: 'point', overlap_threshold: 0.8 }, + }); + + expect(manifest).not.toBeNull(); + }); + + it('should create a Manifest with nested request config', () => { + const nestedManifest = getNestedManifest({ + request_type: 'image_label_area_select', + request_config: { shape_type: 'point' }, + }); + + const manifest = getManifest({ + request_type: 'multi_challenge', + multi_challenge_manifests: [nestedManifest], + }); + + expect(manifest).not.toBeNull(); + }); + + it('should create a Manifest with multiple nested request config', () => { + const nestedManifest = getNestedManifest({ + request_type: 'image_label_area_select', + request_config: { shape_type: 'point' }, + }); + + const nestedManifest2 = getNestedManifest({ + request_type: 'image_label_area_select', + request_config: { shape_type: 'point' }, + }); + + const manifest = getManifest({ + request_type: 'multi_challenge', + multi_challenge_manifests: [nestedManifest, nestedManifest2], + }); + + expect(manifest).not.toBeNull(); + }); + + it('should create default restricted answer set', () => { + const manifest: Manifest = { + job_mode: 'batch', + request_type: 'image_label_area_select', + unsafe_content: false, + task_bid_price: 1, + oracle_stake: 0.1, + expiration_date: 0, + minimum_trust_server: 0.1, + minimum_trust_client: 0.1, + requester_accuracy_target: 0.1, + recording_oracle_addr: REC_ORACLE, + reputation_oracle_addr: REP_ORACLE, + reputation_agent_addr: REP_ORACLE, + instant_result_delivery_webhook: CALLBACK_URL, + requester_question: { en: 'How much money are we to make' }, + requester_question_example: FAKE_URL, + job_total_tasks: 5, + taskdata_uri: FAKE_URL, + }; + + const validatedManifest = validate(manifest); + + expect( + Object.keys(validatedManifest.requester_restricted_answer_set || {}) + .length + ).toBeGreaterThan(0); + }); + + it('should validate requester question example', () => { + const manifest = getManifest({}); + + if (manifest) { + manifest.requester_question_example = 'https://test.com'; + const validatedManifest = validate(manifest); + expect(validatedManifest.requester_question_example).toBe( + 'https://test.com' + ); + } + + if (manifest) { + manifest.requester_question_example = ['https://test.com']; + const validatedManifest = validate(manifest); + expect(validatedManifest.requester_question_example?.length).toBe(1); + } + + if (manifest) { + manifest.requester_question_example = 'non-url'; + expect(() => validate(manifest)).toThrow('Invalid URL'); + } + + if (manifest) { + manifest.requester_question_example = ['non-url']; + expect(() => validate(manifest)).toThrow('Invalid URL'); + } + }); + + it('should parse restricted audience', () => { + const manifest = getManifest({}); + + if (!manifest) { + return; + } + + const restrictedAudience: RestrictedAudience = { + lang: [{ 'en-us': { score: 0.9 } }], + confidence: [{ minimum_client_confidence: { score: 0.9 } }], + min_difficulty: 2, + }; + + manifest.restricted_audience = restrictedAudience; + + const validatedManifest = validate(manifest); + + expect(validatedManifest.restricted_audience).toEqual(restrictedAudience); + }); + + it('should validate restricted audience', () => { + // Lang + expect(() => validateScoreFields({ lang: [{ US: { score: 1 } }] })).toThrow( + 'lang key must use lowercase keys' + ); + expect(() => + validateScoreFields({ lang: [{ us: { score: -0.1 } }] }) + ).toThrow('Score must be between 0 and 1'); + + // Browser + expect(() => + validateScoreFields({ browser: [{ desktop: { score: -0.1 } }] }) + ).toThrow('Score must be between 0 and 1'); + + // Sitekey + expect(() => + validateSiteKey({ + sitekey: [{ '9d98b147': { score: 1 } }], + }) + ).toThrow('Invalid UUID'); + + expect(() => + validateScoreFields({ + sitekey: [{ '9D98B147-DC5a-4ea4-82cf-0ced5b2434d2': { score: 1 } }], + }) + ).toThrow('sitekey key must use lowercase keys'); + + expect(() => + validateScoreFields({ + sitekey: [{ '9d98b147-dc5a-4ea4-82cf-0ced5b2434d2': { score: -0.1 } }], + }) + ).toThrow('Score must be between 0 and 1'); + }); + + it('Should create manifest with real life data', () => { + const manifest: Manifest = { + job_mode: 'batch', + unsafe_content: false, + task_bid_price: 1, + oracle_stake: 0.1, + expiration_date: 0, + minimum_trust_server: 0.1, + minimum_trust_client: 0.1, + requester_accuracy_target: 0.1, + job_total_tasks: 1000, + recording_oracle_addr: REC_ORACLE, + reputation_oracle_addr: REP_ORACLE, + reputation_agent_addr: REP_ORACLE, + job_id: 'c26c2e6a-41ab-4218-b39e-6314b760c45c', + request_type: 'multi_challenge', + requester_question: { + en: 'Please draw a bow around the text shown, select the best corresponding labels, and enter the word depicted by the image.', + }, + multi_challenge_manifests: [ + { + request_type: 'image_label_area_select', + job_id: 'c26c2e6a-41ab-4218-b39e-6314b760c45c', + requester_question: { + en: 'Please draw a bow around the text shown.', + }, + request_config: { + shape_type: 'polygon', + min_points: 1, + max_points: 4, + min_shapes_per_image: 1, + max_shapes_per_image: 4, + }, + }, + { + request_type: 'image_label_multiple_choice', + job_id: 'c26c2e6a-41ab-4218-b39e-6314b760c45c', + requester_question: { en: 'Select the corresponding label.' }, + requester_restricted_answer_set: { + print: { en: 'Print' }, + 'hand-writing': { en: 'Hand Writing' }, + }, + request_config: { multiple_choice_max_choices: 1 }, + }, + { + request_type: 'image_label_multiple_choice', + job_id: 'c26c2e6a-41ab-4218-b39e-6314b760c45c', + requester_question: { en: 'Select the corresponding labels.' }, + requester_restricted_answer_set: { + 'top-bottom': { en: 'Top to Bottom' }, + 'bottom-top': { en: 'Bottom to Top' }, + 'left-right': { en: 'Left to Right' }, + 'right-left': { en: 'Right to Left' }, + }, + request_config: { multiple_choice_max_choices: 1 }, + }, + { + request_type: 'image_label_text', + job_id: 'c26c2e6a-41ab-4218-b39e-6314b760c45c', + requester_question: { en: 'Please enter the word in the image.' }, + }, + ], + taskdata: [ + { + datapoint_hash: 'sha1:5daf66c6031df7f8913bfa0b52e53e3bcd42aab3', + datapoint_uri: 'http://test.com/task.jpg', + task_key: '2279daef-d10a-4b0f-85d1-0ccbf7c8906b', + }, + ], + }; + + const validatedManifest = validate(manifest); + expect(validatedManifest).not.toBeNull(); + }); +}); diff --git a/packages/sdk/typescript/human-protocol-basemodels/test/preprocess.test.ts b/packages/sdk/typescript/human-protocol-basemodels/test/preprocess.test.ts new file mode 100644 index 0000000000..db248cc635 --- /dev/null +++ b/packages/sdk/typescript/human-protocol-basemodels/test/preprocess.test.ts @@ -0,0 +1,13 @@ +import { Preprocess } from '../src/preprocess'; + +it('Preprocess Test', () => { + const config = {}; + + const p: Preprocess = { + pipeline: 'FaceBlurPipeline', + config, + }; + + expect(p.pipeline).toBe('FaceBlurPipeline'); + expect(p.config).toBe(config); +}); diff --git a/yarn.lock b/yarn.lock index 290b9bc596..e9cddad758 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1089,6 +1089,16 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@bcherny/json-schema-ref-parser@9.0.9": + version "9.0.9" + resolved "https://registry.yarnpkg.com/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#09899d405bc708c0acac0066ae8db5b94d465ca4" + integrity sha512-vmEmnJCfpkLdas++9OYg6riIezTYqTHpqUTODJzHLzs5UnXujbOJW9VwcVCnyo1mVRt32FRr23iXBx/sX8YbeQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.6" + call-me-maybe "^1.0.1" + js-yaml "^4.1.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -2716,6 +2726,11 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + "@json-rpc-tools/provider@^1.5.5": version "1.7.6" resolved "https://registry.yarnpkg.com/@json-rpc-tools/provider/-/provider-1.7.6.tgz#8a17c34c493fa892632e278fd9331104e8491ec6" @@ -4441,7 +4456,7 @@ dependencies: "@types/node" "*" -"@types/glob@^7.1.1": +"@types/glob@^7.1.1", "@types/glob@^7.1.3": version "7.2.0" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== @@ -4525,7 +4540,7 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -4542,7 +4557,7 @@ dependencies: "@types/node" "*" -"@types/lodash@^4.14.159": +"@types/lodash@^4.14.159", "@types/lodash@^4.14.182": version "4.14.191" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== @@ -4641,7 +4656,7 @@ dependencies: "@types/node" "*" -"@types/prettier@^2.1.1", "@types/prettier@^2.1.5": +"@types/prettier@^2.1.1", "@types/prettier@^2.1.5", "@types/prettier@^2.6.1": version "2.7.2" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== @@ -4788,6 +4803,11 @@ resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz#b6725d5f4af24ace33b36fafd295136e75509f43" integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== +"@types/uuid@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.0.tgz#53ef263e5239728b56096b0a869595135b7952d2" + integrity sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q== + "@types/ws@^7.4.4": version "7.4.7" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" @@ -6037,6 +6057,11 @@ antlr4ts@^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-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" @@ -6411,6 +6436,15 @@ axios@^1.1.3: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.6.tgz#eacb6d065baa11bad5959e7ffa0cb6745c65f392" + integrity sha512-rC/7F08XxZwjMV4iuWv+JpD3E0Ksqg9nac4IIg6RwNuF0JTeWoCo/mBNG54+tNhhI11G3/VDRbdDQTs9hGp4pQ== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axobject-query@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" @@ -7842,6 +7876,11 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -8184,6 +8223,17 @@ cli-boxes@^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-color@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.3.tgz#73769ba969080629670f3f2ef69a4bf4e7cc1879" + integrity sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.61" + es6-iterator "^2.0.3" + memoizee "^0.4.15" + timers-ext "^0.1.7" + cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -10013,7 +10063,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50: +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: 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== @@ -10056,6 +10106,16 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + esbuild-android-64@0.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" @@ -10874,6 +10934,14 @@ ethjs-util@0.1.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + 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" @@ -11678,6 +11746,11 @@ get-port@^3.1.0: resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + 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" @@ -11732,6 +11805,13 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-promise@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-4.2.2.tgz#15f44bcba0e14219cd93af36da6bb905ff007877" + integrity sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw== + dependencies: + "@types/glob" "^7.1.3" + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" @@ -13315,6 +13395,11 @@ is-potential-custom-element-name@^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.2.2: + 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-promise@~1, is-promise@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-1.0.1.tgz#31573761c057e33c2e91aab9e96da08cefbe76e5" @@ -14700,6 +14785,26 @@ json-schema-to-ts@1.6.4: "@types/json-schema" "^7.0.6" ts-toolbelt "^6.15.5" +json-schema-to-typescript@^11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-11.0.3.tgz#9b401c2b78329959f1c4c4e0639a6bdcf6a6ed77" + integrity sha512-EaEE9Y4VZ8b9jW5zce5a9L3+p4C9AqgIRHbNVDJahfMnoKzcd4sDb98BLxLdQhJEuRAXyKLg4H66NKm80W8ilg== + dependencies: + "@bcherny/json-schema-ref-parser" "9.0.9" + "@types/json-schema" "^7.0.11" + "@types/lodash" "^4.14.182" + "@types/prettier" "^2.6.1" + cli-color "^2.0.2" + get-stdin "^8.0.0" + glob "^7.1.6" + glob-promise "^4.2.2" + is-glob "^4.0.3" + lodash "^4.17.21" + minimist "^1.2.6" + mkdirp "^1.0.4" + mz "^2.7.0" + prettier "^2.6.2" + 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" @@ -15432,6 +15537,13 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" @@ -15554,6 +15666,20 @@ memfs@^3.1.2, memfs@^3.4.3: dependencies: fs-monkey "^1.0.3" +memoizee@^0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + memory-level@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" @@ -16203,6 +16329,15 @@ mute-stream@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.14.0, nan@^2.14.2: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" @@ -16267,7 +16402,7 @@ neo-async@^2.6.0, neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-tick@^1.1.0: +next-tick@1, 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== @@ -16481,7 +16616,7 @@ object-assign@^2.0.0: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" integrity sha512-CdsOUYIh5wIiozhJ3rLQgmUTgcyzFwZZrqhkKhODMoGtPKM+wt0h0CNIoauJWMsS9822EdzPsF/6mb4nLvPN5g== -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, 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== @@ -17796,7 +17931,7 @@ prettier@1.19.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.3.1, prettier@^2.7.1: +prettier@^2.3.1, prettier@^2.6.2, prettier@^2.7.1: version "2.8.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== @@ -20728,12 +20863,19 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.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== +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: - real-require "^0.1.0" + 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@^2.0.0: version "2.3.0" @@ -20790,6 +20932,14 @@ timeout-abort-controller@^1.1.1: abort-controller "^3.0.0" retimer "^2.0.0" +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + tiny-glob@^0.2.9: version "0.2.9" resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" From 26c1d1eb9c19c54847eb1a66534b724d9b45045c Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 3 Feb 2023 16:00:22 +0100 Subject: [PATCH 167/216] fix ex oracle, change rec oracle url variable name --- .../exchange/src/components/Escrow/Escrow.tsx | 2 +- yarn.lock | 574 ++++++++++++++---- 2 files changed, 472 insertions(+), 104 deletions(-) diff --git a/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx b/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx index 0db8fb2933..3d01aaea07 100644 --- a/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx +++ b/packages/examples/fortune/exchange/src/components/Escrow/Escrow.tsx @@ -72,7 +72,7 @@ export const Escrow = () => { if (manifestUrl) { const manifestContent = (await axios.get(manifestUrl)).data; - setRecordingOracleUrl(manifestContent.recording_oracle_url); + setRecordingOracleUrl(manifestContent.recordingOracleUrl); } return; }, diff --git a/yarn.lock b/yarn.lock index e9cddad758..155e4daf0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -36,6 +36,13 @@ resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.9.4.tgz#a483c54c1253656bb33babd464e3154a173e1577" integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA== +"@aws-sdk/types@^3.226.0": + version "3.257.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.257.0.tgz#4951ee3456cd9a46829516f5596c2b8a05ffe06a" + integrity sha512-LmqXuBQBGeaGi/3Rp7XiEX1B5IPO2UUfBVvu0wwGqVsmstT0SbOVDZGPmxygACbm64n+PRx3uTSDefRfoiWYZg== + dependencies: + tslib "^2.3.1" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.8.3": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" @@ -1389,11 +1396,40 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== +"@esbuild-kit/cjs-loader@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.1.tgz#5c1183ac3906223f0da3bb4ff5b74d0f0b13c326" + integrity sha512-lhc/XLith28QdW0HpHZvZKkorWgmCNT7sVelMHDj3HFdTfdqkwEKvT+aXVQtNAmCC39VJhunDkWhONWB7335mg== + dependencies: + "@esbuild-kit/core-utils" "^3.0.0" + get-tsconfig "^4.2.0" + +"@esbuild-kit/core-utils@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@esbuild-kit/core-utils/-/core-utils-3.0.0.tgz#e0f8463a32b4a9c9b456a7f9c31a5e038c8d2c19" + integrity sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ== + dependencies: + esbuild "~0.15.10" + source-map-support "^0.5.21" + +"@esbuild-kit/esm-loader@^2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@esbuild-kit/esm-loader/-/esm-loader-2.5.4.tgz#cd31fe93963f3e21b1c1d07eef2bd2df1b574326" + integrity sha512-afmtLf6uqxD5IgwCzomtqCYIgz/sjHzCWZFvfS5+FzeYxOURPUo4QcHtqJxbxWOMOogKriZanN/1bJQE/ZL93A== + dependencies: + "@esbuild-kit/core-utils" "^3.0.0" + get-tsconfig "^4.2.0" + "@esbuild/android-arm64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== +"@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.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" @@ -1439,6 +1475,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== + +"@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.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" @@ -2885,11 +2931,6 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.11.5": - version "5.11.5" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz#473c9b918d974f03acc07d29ce467bb91eba13c6" - integrity sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig== - "@mui/core-downloads-tracker@^5.11.7": version "5.11.7" resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.7.tgz#b3a3aad64c6b69f6165d7a00c0d9cfeacbe357a2" @@ -2902,25 +2943,7 @@ dependencies: "@babel/runtime" "^7.20.6" -"@mui/material@^5.10.14", "@mui/material@^5.10.7": - version "5.11.7" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.7.tgz#d460c7239013a57cc2aa3d2bbe14ba875b29d7cb" - integrity sha512-wDv7Pc6kMe9jeWkmCLt4JChd1lPc2u23JQHpB35L2VwQowpNFoDfIwqi0sYCnZTMKlRc7lza8LqwSwHl2G52Rw== - dependencies: - "@babel/runtime" "^7.20.7" - "@mui/base" "5.0.0-alpha.116" - "@mui/core-downloads-tracker" "^5.11.7" - "@mui/system" "^5.11.7" - "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.7" - "@types/react-transition-group" "^4.4.5" - clsx "^1.2.1" - csstype "^3.1.1" - prop-types "^15.8.1" - react-is "^18.2.0" - react-transition-group "^4.4.5" - -"@mui/material@^5.11.7": +"@mui/material@^5.10.14", "@mui/material@^5.10.7", "@mui/material@^5.11.7": version "5.11.7" resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.11.7.tgz#d460c7239013a57cc2aa3d2bbe14ba875b29d7cb" integrity sha512-wDv7Pc6kMe9jeWkmCLt4JChd1lPc2u23JQHpB35L2VwQowpNFoDfIwqi0sYCnZTMKlRc7lza8LqwSwHl2G52Rw== @@ -2938,15 +2961,6 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.11.2": - version "5.11.2" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.2.tgz#93eafb317070888a988efa8d6a9ec1f69183a606" - integrity sha512-qZwMaqRFPwlYmqwVKblKBGKtIjJRAj3nsvX93pOmatsXyorW7N/0IPE/swPgz1VwChXhHO75DwBEx8tB+aRMNg== - dependencies: - "@babel/runtime" "^7.20.7" - "@mui/utils" "^5.11.7" - prop-types "^15.8.1" - "@mui/private-theming@^5.11.7": version "5.11.7" resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.11.7.tgz#e92b87d6ea68ae5a23d0f0d9d248361b889a98db" @@ -3003,20 +3017,6 @@ csstype "^3.1.1" prop-types "^15.8.1" -"@mui/system@^5.11.7": - version "5.11.7" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.11.7.tgz#5e550c621733a18cd437678f11dcd1c3468129d0" - integrity sha512-uGB6hBxGlAdlmbLdTtUZYNPXkgQGGnKxHdkRATqsu7UlCxNsc/yS5NCEWy/3c4pnelD1LDLD39WrntP9mwhfkQ== - dependencies: - "@babel/runtime" "^7.20.7" - "@mui/private-theming" "^5.11.7" - "@mui/styled-engine" "^5.11.0" - "@mui/types" "^7.2.3" - "@mui/utils" "^5.11.7" - clsx "^1.2.1" - csstype "^3.1.1" - prop-types "^15.8.1" - "@mui/types@^7.2.3": version "7.2.3" resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.3.tgz#06faae1c0e2f3a31c86af6f28b3a4a42143670b9" @@ -3033,17 +3033,6 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@mui/utils@^5.11.7": - version "5.11.7" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.11.7.tgz#a343a5d375b4140c875bf4c96825c1a148994800" - integrity sha512-8uyNDeVHZA804Ego20Erv8TpxlbqTe/EbhTI2H1UYr4/RiIbBprat8W4Qqr2UQIsC/b3DLz+0RQ6R/E5BxEcLA== - dependencies: - "@babel/runtime" "^7.20.7" - "@types/prop-types" "^15.7.5" - "@types/react-is" "^16.7.1 || ^17.0.0" - prop-types "^15.8.1" - react-is "^18.2.0" - "@mui/x-data-grid@^5.17.4": version "5.17.21" resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.21.tgz#43ffdf8d64d8ea998a5ee17c9a9529dcbcf79a20" @@ -3671,6 +3660,11 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" +"@sinclair/typebox@^0.23.5": + version "0.23.5" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" + integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== + "@sinclair/typebox@^0.24.1": version "0.24.51" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" @@ -4016,16 +4010,6 @@ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.24.4.tgz#6fe78777286fdd805ac319c7c743df4935e18ee2" integrity sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA== -"@tanstack/query-core@4.24.4": - version "4.24.4" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.24.4.tgz#6fe78777286fdd805ac319c7c743df4935e18ee2" - integrity sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA== - -"@tanstack/query-persist-client-core@4.22.0": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.22.0.tgz#cb0677cb0ab36c626bfb18bd681426f661ef4a85" - integrity sha512-O5Qh4HycMWPD67qoGs9zwNJuCpQnbgAgpWmg/M5+jpWaobGGtdIW6SHuvVogQM53uTaWT8b30ymi4BKds4GxIA== - "@tanstack/query-persist-client-core@4.24.4": version "4.24.4" resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.24.4.tgz#e806e0985ddf11880fe81906059d9463d924f584" @@ -4038,7 +4022,7 @@ resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.22.0.tgz#114545d7957f72d71abd70790dfe8bd6177bd9ec" integrity sha512-NtsekSPrJC+qMFncs0cqzyqFWW3rZU6EwGwgqM+u7PnjYQBiOyrD7yB8V6rJEIDVvSpakS1jPyzKDxpexrUk8g== dependencies: - "@tanstack/query-core" "4.24.4" + "@tanstack/query-persist-client-core" "4.22.0" "@tanstack/query-sync-storage-persister@^4.14.5": version "4.24.4" @@ -4052,7 +4036,7 @@ resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.22.0.tgz#29dd5542b96a0a83a58e32f2c815874cd90a729d" integrity sha512-E9eAstffzr+PMsKcgTI6AfMMYtUjV6w3VKCa/0v9wGWdGEJYKcjNJWyYiPF0Z0ccwAaDCeOuQCFId8y0BKCK8g== dependencies: - "@tanstack/query-persist-client-core" "4.24.4" + "@tanstack/query-persist-client-core" "4.22.0" "@tanstack/react-query-persist-client@^4.14.5": version "4.24.4" @@ -4061,13 +4045,6 @@ dependencies: "@tanstack/query-persist-client-core" "4.24.4" -"@tanstack/react-query@^4.0.10": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.22.0.tgz#aaa4b41a6d306be6958018c74a8a3bb3e9f1924c" - integrity sha512-P9o+HjG42uB/xHR6dMsJaPhtZydSe4v0xdG5G/cEj1oHZAXelMlm67/rYJNQGKgBamKElKogj+HYGF+NY2yHYg== - dependencies: - "@tanstack/query-persist-client-core" "4.24.4" - "@tanstack/react-query@^4.0.10", "@tanstack/react-query@^4.14.5": version "4.24.4" resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.24.4.tgz#79e892edac33d8aa394795390c0f79e4a8c9be4d" @@ -4076,14 +4053,6 @@ "@tanstack/query-core" "4.24.4" use-sync-external-store "^1.2.0" -"@tanstack/react-query@^4.14.5": - version "4.24.4" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.24.4.tgz#79e892edac33d8aa394795390c0f79e4a8c9be4d" - integrity sha512-RpaS/3T/a3pHuZJbIAzAYRu+1nkp+/enr9hfRXDS/mojwx567UiMksoqW4wUFWlwIvWTXyhot2nbIipTKEg55Q== - dependencies: - "@tanstack/query-core" "4.24.4" - use-sync-external-store "^1.2.0" - "@tenderly/hardhat-tenderly@^1.1.6": version "1.5.3" resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.5.3.tgz#778926d8194e815a0159163aa28d8b40650b7dac" @@ -4604,7 +4573,7 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== -"@types/node@*", "@types/node@>=13.7.0", "@types/node@^18.11.17", "@types/node@^18.11.18", "@types/node@^18.11.9": +"@types/node@*", "@types/node@>=13.7.0", "@types/node@^18.11.15", "@types/node@^18.11.17", "@types/node@^18.11.18", "@types/node@^18.11.9": version "18.11.18" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== @@ -4841,7 +4810,7 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.43.0", "@typescript-eslint/eslint-plugin@^5.5.0": +"@typescript-eslint/eslint-plugin@^5.43.0", "@typescript-eslint/eslint-plugin@^5.45.0", "@typescript-eslint/eslint-plugin@^5.5.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz#fb48c31cadc853ffc1dc35373f56b5e2a8908fe9" integrity sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ== @@ -4864,7 +4833,7 @@ dependencies: "@typescript-eslint/utils" "5.50.0" -"@typescript-eslint/parser@^5.43.0", "@typescript-eslint/parser@^5.5.0": +"@typescript-eslint/parser@^5.43.0", "@typescript-eslint/parser@^5.45.0", "@typescript-eslint/parser@^5.5.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.50.0.tgz#a33f44b2cc83d1b7176ec854fbecd55605b0b032" integrity sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ== @@ -5043,6 +5012,11 @@ resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-0.2.4.tgz#7f90e64f42e614d9d324b5be2a6a49dfb0d39264" integrity sha512-c2mJED5H9zHzpam2JSD76ln1UmrQShas5BAHA98FjSAHlqU41zWvUhOfm9mHMh8j2NCFJ+pGdQIlXFGs8Qe8cg== +"@wagmi/chains@0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-0.2.5.tgz#de4c867bdab3cb0bd448147df2d920bcaeb0d4f3" + integrity sha512-RTmVkJbCppB7LTD/PygWS7+ogeGbeGDhrjErozFUT9ED4SOmRer8EMnVIM9qeLrK66SJxHg34Y/KGNbfNCbZrw== + "@wagmi/connectors@0.2.2": version "0.2.2" resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-0.2.2.tgz#13ffa65e2f93b5c83fe2ea5eb7e0480114979edc" @@ -5056,6 +5030,19 @@ abitype "^0.3.0" eventemitter3 "^4.0.7" +"@wagmi/connectors@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-0.2.3.tgz#c55bf449d18faf0772847ff55eb6f310bff421f3" + integrity sha512-OSWK9HSzGC6SkdAT+xDULy14577WxSMj0XfrJZsPA105RPkIiAtKmfK5w7zaX9dQbHMCrpUir4v+0esmuQahqQ== + dependencies: + "@coinbase/wallet-sdk" "^3.5.4" + "@ledgerhq/connect-kit-loader" "^1.0.1" + "@walletconnect/ethereum-provider" "^1.8.0" + "@walletconnect/universal-provider" "^2.3.3" + "@web3modal/standalone" "^2.0.0" + abitype "^0.3.0" + eventemitter3 "^4.0.7" + "@wagmi/core@0.9.2": version "0.9.2" resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.9.2.tgz#36b699ac974c3a216124c8544b313df18bffbae1" @@ -5067,6 +5054,17 @@ eventemitter3 "^4.0.7" zustand "^4.3.1" +"@wagmi/core@0.9.3": + version "0.9.3" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.9.3.tgz#7fcbbb71e1a9335068b22e4534605b8f835badfe" + integrity sha512-84lYAbgkrmvQUziE4PPqrPUxP4hYhQ0l/0+aIxp1N7aAaRSnX+SlEvIEw9jCWznLBkiBklKlwdBZ4z95ZufVHw== + dependencies: + "@wagmi/chains" "0.2.5" + "@wagmi/connectors" "0.2.3" + abitype "^0.3.0" + eventemitter3 "^4.0.7" + zustand "^4.3.1" + "@wagmi/core@^0.5.8": version "0.5.8" resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-0.5.8.tgz#9e375c0dd31c3b22973d000694e1c2b06c05dbbc" @@ -5382,7 +5380,7 @@ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== -"@walletconnect/universal-provider@^2.3.2": +"@walletconnect/universal-provider@^2.3.2", "@walletconnect/universal-provider@^2.3.3": version "2.3.3" resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.3.3.tgz#b3f162e1c25e795c1812123d5280248e8ca32315" integrity sha512-pibtlTUn7dg5Y5vs8tzSGaaDlq8eSXgHh7o9iMMpE4Fr06HyM36J0niGTOsKvMa+u5keCTwVhbB4MNnN08zVvg== @@ -5944,7 +5942,7 @@ ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: 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.12.0, ajv@^8.6.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.11.2, ajv@^8.12.0, ajv@^8.6.0, ajv@^8.8.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -6397,6 +6395,22 @@ aws-sdk@^2.1255.0: uuid "8.0.0" xml2js "0.4.19" +aws-sdk@^2.1294.0: + version "2.1308.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1308.0.tgz#6c6bca22ef1874379e1471f25b3202d0a45f96bb" + integrity sha512-tm4UXah8dCqt1geyxrtoyp6dN5QhuLjNeACUZEsffww5oZPMx24EX9dAtvtSu3UfIHwmbR74QomYi1c1u8Jndg== + dependencies: + buffer "4.9.2" + events "1.1.1" + ieee754 "1.1.13" + jmespath "0.16.0" + querystring "0.2.0" + sax "1.2.1" + url "0.10.3" + util "^0.12.4" + uuid "8.0.0" + xml2js "0.4.19" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -6427,7 +6441,7 @@ axios@^0.27.2: follow-redirects "^1.14.9" form-data "^4.0.0" -axios@^1.1.3: +axios@^1.1.3, axios@^1.2.2: version "1.3.1" resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.1.tgz#80bf6c8dbb46e6db1fa8fe9ab114c1ca7405c2ee" integrity sha512-78pWJsQTceInlyaeBQeYZ/QgZeWS8hGeKiIJiDKQe3hEyBb7sEMq0K4gjx+Va6WHTYO4zI/RRl8qGRzn0YMadA== @@ -9728,6 +9742,11 @@ dotenv-expand@^8.0.1: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-8.0.3.tgz#29016757455bcc748469c83a19b36aaf2b83dd6e" integrity sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg== +dotenv-expand@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-9.0.0.tgz#1fd37e2cd63ea0b5f7389fb87256efc38b035b26" + integrity sha512-uW8Hrhp5ammm9x7kBLR6jDfujgaDarNA02tprvZdyrJ7MpdzD1KyrIHG4l+YoC2fJ2UcdFdNWNWIjt+sexBHJw== + dotenv@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" @@ -9945,6 +9964,15 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== +env-schema@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/env-schema/-/env-schema-5.2.0.tgz#9d3b3137daad07ecb5b13e95b1c8bc8dafbc6c03" + integrity sha512-36/6cZ+zIbcPA2ANrzp7vTz2bS8/zdZaq2RPFqJVtCGJ4P55EakgJ1BeKP8RMvEmM7ndrnHdJXzL3J1dHrEm1w== + dependencies: + ajv "^8.0.0" + dotenv "^16.0.0" + dotenv-expand "^9.0.0" + err-code@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" @@ -10121,101 +10149,301 @@ esbuild-android-64@0.14.47: resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== + +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.14.47: version "0.14.47" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" @@ -10242,6 +10470,33 @@ esbuild@0.14.47: esbuild-windows-64 "0.14.47" esbuild-windows-arm64 "0.14.47" +esbuild@^0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== + optionalDependencies: + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" + esbuild@^0.16.3: version "0.16.17" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" @@ -10270,6 +10525,34 @@ esbuild@^0.16.3: "@esbuild/win32-ia32" "0.16.17" "@esbuild/win32-x64" "0.16.17" +esbuild@~0.15.10: + 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" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -10541,7 +10824,7 @@ eslint-webpack-plugin@^3.1.1: normalize-path "^3.0.0" schema-utils "^4.0.0" -eslint@^8.27.0, eslint@^8.3.0: +eslint@^8.27.0, eslint@^8.28.0, eslint@^8.3.0: version "8.33.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7" integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== @@ -11131,6 +11414,11 @@ fast-content-type-parse@^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== +fast-copy@^2.1.1: + version "2.1.7" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-2.1.7.tgz#affc9475cb4b555fb488572b2a44231d0c9fa39e" + integrity sha512-ozrGwyuCTAy7YgFCua8rmqmytECYk/JYAMXcswOcm0qvGoE3tPb7ivBeIHTOK2DiapBhDZgacIhzhQIKU5TCfA== + fast-copy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.0.tgz#875ebf33b13948ae012b6e51d33da5e6e7571ab8" @@ -11235,12 +11523,17 @@ fast-xml-parser@^3.17.5: dependencies: strnum "^1.0.4" +fastify-plugin@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-3.0.1.tgz#79e84c29f401020f38b524f59f2402103fd21ed2" + integrity sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA== + fastify-plugin@^4.0.0, fastify-plugin@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.0.tgz#8b853923a0bba6ab6921bb8f35b81224e6988d91" integrity sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg== -fastify@^4.12.0: +fastify@^4.10.2, fastify@^4.12.0: version "4.12.0" resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.12.0.tgz#e5330215d95702336693b38b2e66d34ee8300d3e" integrity sha512-Hh2GCsOCqnOuewWSvqXlpq5V/9VA+/JkVoooQWUhrU6gryO9+/UGOoF/dprGcKSDxkM/9TkMXSffYp8eA/YhYQ== @@ -11994,9 +12287,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -16731,6 +17024,11 @@ on-exit-leak-free@^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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-1.0.0.tgz#4a2accb382278a266848bb1a21439e5fc3cd9881" + integrity sha512-Ve8ubhrXRdnuCJ5bQSQpP3uaV43K1PMcOfSRC1pqHgRZommXCgsXwh08jVC5NpjwScE23BPDwDvVg4cov3mwjw== + 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" @@ -17221,6 +17519,26 @@ pino-abstract-transport@v0.5.0: duplexify "^4.1.2" split2 "^4.0.0" +pino-pretty@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-8.1.0.tgz#1dda4ca71701dfeaf1f72057da1b5b718a0d0f04" + integrity sha512-oKfI8qKXR2a3haHs/X8iB6QSnWLqoOGAjwxIAXem4+XOGIGNw7IKpozId1uE7j89Rj46HIfWnGbAgmQmr8+yRw== + dependencies: + colorette "^2.0.7" + dateformat "^4.6.3" + fast-copy "^2.1.1" + fast-safe-stringify "^2.1.1" + help-me "^4.0.1" + joycon "^3.1.1" + minimist "^1.2.6" + on-exit-leak-free "^1.0.0" + pino-abstract-transport "^1.0.0" + pump "^3.0.0" + readable-stream "^4.0.0" + secure-json-parse "^2.4.0" + sonic-boom "^3.0.0" + strip-json-comments "^3.1.1" + pino-pretty@^9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.1.1.tgz#e7d64c1db98266ca428ab56567b844ba780cd0e1" @@ -17931,7 +18249,7 @@ prettier@1.19.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.3.1, prettier@^2.6.2, prettier@^2.7.1: +prettier@^2.3.1, prettier@^2.6.2, prettier@^2.7.1, prettier@^2.8.0: version "2.8.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== @@ -20190,6 +20508,11 @@ stop-iteration-iterator@^1.0.0: dependencies: internal-slot "^1.0.4" +store2@^2.14.2: + version "2.14.2" + resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068" + integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== + stream-browserify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -20877,6 +21200,13 @@ thenify-all@^1.0.0: 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.3.0" resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.3.0.tgz#4fc07fb39eff32ae7bad803cb7dd9598349fed33" @@ -20963,7 +21293,7 @@ tinybench@^2.3.1: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.3.1.tgz#14f64e6b77d7ef0b1f6ab850c7a808c6760b414d" integrity sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA== -tinypool@^0.3.1: +tinypool@^0.3.0, tinypool@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.1.tgz#a99c2e446aba9be05d3e1cb756d6aed7af4723b6" integrity sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ== @@ -21192,11 +21522,6 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== -tslib@^2.3.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - tslog@^4.3.1, tslog@^4.4.0: version "4.7.1" resolved "https://registry.yarnpkg.com/tslog/-/tslog-4.7.1.tgz#c439a5d900bfa020da5f04b0719acb064a7bee4e" @@ -21214,6 +21539,17 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" +tsx@^3.12.1: + version "3.12.2" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.12.2.tgz#1c8a4fa08a97739e6eedf0ad464bd8218e1a64f0" + integrity sha512-ykAEkoBg30RXxeOMVeZwar+JH632dZn9EUJVyJwhfag62k6UO/dIyJEV58YuLF6e5BTdV/qmbQrpkWqjq9cUnQ== + dependencies: + "@esbuild-kit/cjs-loader" "^2.4.1" + "@esbuild-kit/core-utils" "^3.0.0" + "@esbuild-kit/esm-loader" "^2.5.4" + optionalDependencies: + fsevents "~2.3.2" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -21764,6 +22100,26 @@ vite-node@0.28.3: optionalDependencies: fsevents "~2.3.2" +vitest@^0.25.8: + version "0.25.8" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.25.8.tgz#9b57e0b41cd6f2d2d92aa94a39b35c36f715f8cc" + integrity sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg== + 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" + vitest@^0.28.1: version "0.28.3" resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.3.tgz#58322a5ae64854d4cdb75451817b9fb795f9102e" @@ -21832,6 +22188,18 @@ wagmi@0.11.2: abitype "^0.3.0" use-sync-external-store "^1.2.0" +wagmi@^0.11.2: + version "0.11.3" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.11.3.tgz#3d896a088be1c928760b1ecfea47e718360c57ec" + integrity sha512-hdoV4evIMLSg1FiL0kULidw/QOBiZMBA5usVej40UnHeIXb4/XM35sO+0W+VZ4P7SxZQdXv2wxMLRgzYzn7Bcg== + dependencies: + "@tanstack/query-sync-storage-persister" "^4.14.5" + "@tanstack/react-query" "^4.14.5" + "@tanstack/react-query-persist-client" "^4.14.5" + "@wagmi/core" "0.9.3" + abitype "^0.3.0" + use-sync-external-store "^1.2.0" + wagmi@^0.6.7: version "0.6.8" resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.6.8.tgz#bfc65686ec08cf1c508b1dbf5fbefbbe828653cd" @@ -23050,4 +23418,4 @@ zustand@^4.0.0, zustand@^4.3.1: resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.2.tgz#bb121fcad84c5a569e94bd1a2695e1a93ba85d39" integrity sha512-rd4haDmlwMTVWVqwvgy00ny8rtti/klRoZjFbL/MAcDnmD5qSw/RZc+Vddstdv90M5Lv6RPgWvm1Hivyn0QgJw== dependencies: - use-sync-external-store "1.2.0" \ No newline at end of file + use-sync-external-store "1.2.0" From 6a01ad2e06a9bf03826908a26f6ea4c392f22215 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 3 Feb 2023 16:40:33 +0100 Subject: [PATCH 168/216] regenerate yarn lock --- yarn.lock | 292 +++++++++++++++++++++++++++--------------------------- 1 file changed, 147 insertions(+), 145 deletions(-) diff --git a/yarn.lock b/yarn.lock index 155e4daf0b..0cc7343b35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -308,9 +308,9 @@ js-tokens "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088" - integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== + version "7.20.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" + integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -639,9 +639,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.14" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.14.tgz#2f5025f01713ba739daf737997308e0d29d1dd75" - integrity sha512-sMPepQtsOs5fM1bwNvuJJHvaCfOEQfmc01FGw0ELlTpTJj5Ql/zuNRRldYhAPys4ghXdBIQJbRVYi44/7QflQQ== + version "7.20.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz#3e1b2aa9cbbe1eb8d644c823141a9c5c2a22392d" + integrity sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -1976,9 +1976,9 @@ fast-json-stringify "^5.0.0" "@float-capital/float-subgraph-uncrashable@^0.0.0-alpha.4": - version "0.0.0-internal-testing.4" - resolved "https://registry.yarnpkg.com/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.4.tgz#7886b6fc1c75ea5b36d4c953e7150875954b94cf" - integrity sha512-jjGnze6R8ro5Stf1mQwOPVCCmOf6smEZeDD7q2QEP14Mg8O5zTfvE/3U2bHAiV1y8G+affZsBu9sG1yarD/WRw== + 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" @@ -2075,15 +2075,15 @@ tslib "~2.5.0" value-or-promise "1.0.12" -"@graphql-tools/executor-graphql-ws@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.8.tgz#e39d3cedd4266637fb830e34291447317bc15673" - integrity sha512-96Eac8M8gg0ABApoVIbsMp1BI9TDhz0uJnMqgEIMODzEx0Y41VsLl0aG2PXQuZQvFfowyl3hzhQli6SRZ4DgYg== +"@graphql-tools/executor-graphql-ws@0.0.9": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.9.tgz#ba709b38ec7e83d7a0d4c2b5b9d6bc925907a030" + integrity sha512-S323OGzc8TQHOw8n7pFSl1+oG5pzhQhXRmgW6sAvA1F79FLjQ95TltEa6jSH7Jqw+tZobMyylJ13CQ1zFDjBPg== dependencies: "@graphql-tools/utils" "9.2.0" "@repeaterjs/repeater" "3.0.4" "@types/ws" "^8.0.0" - graphql-ws "5.11.2" + graphql-ws "5.11.3" isomorphic-ws "5.0.0" tslib "^2.4.0" ws "8.12.0" @@ -2195,13 +2195,13 @@ value-or-promise "1.0.12" "@graphql-tools/url-loader@^7.9.7": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.8.tgz#cfa50462e7e966d5066fbd1e1746f4e330938447" - integrity sha512-K2x1rrd+11iZD2OtScRQVsvz84WkKTNHpksdBGMHBXG2WKzez4xye08HvxJN31ZKUMGaJLxbuFPnLTxlOvlu7w== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.9.tgz#5a79a3bce2926f72f1e4c6ee7ed8a3312454d39b" + integrity sha512-qAXQ9Tr/Am2hEelGVLCfO/YOyCMzCd4FyWMRRqcoMYIaK91arIb5X13pgILD28SUN+6H3NDsx7fgq/Z/OhwGrQ== dependencies: "@ardatan/sync-fetch" "0.0.1" "@graphql-tools/delegate" "9.0.25" - "@graphql-tools/executor-graphql-ws" "0.0.8" + "@graphql-tools/executor-graphql-ws" "0.0.9" "@graphql-tools/executor-http" "0.1.4" "@graphql-tools/executor-legacy-ws" "0.0.7" "@graphql-tools/utils" "9.2.0" @@ -3034,9 +3034,9 @@ react-is "^18.2.0" "@mui/x-data-grid@^5.17.4": - version "5.17.21" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.21.tgz#43ffdf8d64d8ea998a5ee17c9a9529dcbcf79a20" - integrity sha512-dgYYk1H3BEyGg7/RDet+ZBiTZQ9ZEIHE5QhVZ1glopVDRgWJmtcqPUQakkHQzxerEsKVwZ5QEEfueKuoX8oebg== + version "5.17.22" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.17.22.tgz#db0eae1448631c3fb0168d05bf7111a6a3f5e1d2" + integrity sha512-75nc+BL5G8/KzMOBl7NQ622D9n6mLx3tsRnF0HmccGYLMrZ7jlBMz50M9thrDee7b27CsrZolay7tq+cPFrq4Q== dependencies: "@babel/runtime" "^7.18.9" "@mui/utils" "^5.10.3" @@ -3069,7 +3069,12 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== -"@noble/hashes@^1.1.2", "@noble/hashes@~1.1.1": +"@noble/hashes@^1.1.2": + 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.1.1": version "1.1.5" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== @@ -4017,28 +4022,14 @@ dependencies: "@tanstack/query-core" "4.24.4" -"@tanstack/query-sync-storage-persister@^4.0.10": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.22.0.tgz#114545d7957f72d71abd70790dfe8bd6177bd9ec" - integrity sha512-NtsekSPrJC+qMFncs0cqzyqFWW3rZU6EwGwgqM+u7PnjYQBiOyrD7yB8V6rJEIDVvSpakS1jPyzKDxpexrUk8g== - dependencies: - "@tanstack/query-persist-client-core" "4.22.0" - -"@tanstack/query-sync-storage-persister@^4.14.5": +"@tanstack/query-sync-storage-persister@^4.0.10", "@tanstack/query-sync-storage-persister@^4.14.5": version "4.24.4" resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.24.4.tgz#7d7230b0d911ade3648bdaa0f87b30b086f734e0" integrity sha512-0wffVqoOydMc1TDjOiATv/TM8wJfMpRcM82Cr19TuepListopTsuZ3RzSzLKBCo8WRl/0zCR1Ti9t1zn+Oai/A== dependencies: "@tanstack/query-persist-client-core" "4.24.4" -"@tanstack/react-query-persist-client@^4.0.10": - version "4.22.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.22.0.tgz#29dd5542b96a0a83a58e32f2c815874cd90a729d" - integrity sha512-E9eAstffzr+PMsKcgTI6AfMMYtUjV6w3VKCa/0v9wGWdGEJYKcjNJWyYiPF0Z0ccwAaDCeOuQCFId8y0BKCK8g== - dependencies: - "@tanstack/query-persist-client-core" "4.22.0" - -"@tanstack/react-query-persist-client@^4.14.5": +"@tanstack/react-query-persist-client@^4.0.10", "@tanstack/react-query-persist-client@^4.14.5": version "4.24.4" resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.24.4.tgz#9e7f4854cd06605fc3481137645661ec5bf0a276" integrity sha512-vQ10ghQrmk+VMrv8BtD1WgvdcGlL7z8QLC9oGryYPORLueOmVvW8nB3GL7aWp84pkLLXPLR32WopXMfseHWukw== @@ -4377,9 +4368,9 @@ "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.4.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" - integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== + version "8.21.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.0.tgz#21724cfe12b96696feafab05829695d4d7bd7c48" + integrity sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -4971,35 +4962,35 @@ json-schema-to-ts "1.6.4" ts-morph "12.0.0" -"@vitest/expect@0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.3.tgz#8cd570b662e709f56ba29835879890c87429a194" - integrity sha512-dnxllhfln88DOvpAK1fuI7/xHwRgTgR4wdxHldPaoTaBu6Rh9zK5b//v/cjTkhOfNP/AJ8evbNO8H7c3biwd1g== +"@vitest/expect@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.4.tgz#09f2513d2ea951057660540ae235609a0d6378f9" + integrity sha512-JqK0NZ4brjvOSL8hXAnIsfi+jxDF7rH/ZWCGCt0FAqRnVFc1hXsfwXksQvEnKqD84avRt3gmeXoK4tNbmkoVsQ== dependencies: - "@vitest/spy" "0.28.3" - "@vitest/utils" "0.28.3" + "@vitest/spy" "0.28.4" + "@vitest/utils" "0.28.4" chai "^4.3.7" -"@vitest/runner@0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.3.tgz#a59bc7a1457957291b6bf1964831284768168314" - integrity sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ== +"@vitest/runner@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.4.tgz#4c4e5aed91d4b19a3071e601c75745d672868388" + integrity sha512-Q8UV6GjDvBSTfUoq0QXVCNpNOUrWu4P2qvRq7ssJWzn0+S0ojbVOxEjMt+8a32X6SdkhF8ak+2nkppsqV0JyNQ== dependencies: - "@vitest/utils" "0.28.3" + "@vitest/utils" "0.28.4" p-limit "^4.0.0" pathe "^1.1.0" -"@vitest/spy@0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.3.tgz#6f6f7ecdeefecb023a96e69b6083e0314ea6f04c" - integrity sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w== +"@vitest/spy@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.4.tgz#beb994b7d46edee4966160eb1363e0493f9d9ef1" + integrity sha512-8WuhfXLlvCXpNXEGJW6Gc+IKWI32435fQJLh43u70HnZ1otJOa2Cmg2Wy2Aym47ZnNCP4NolF+8cUPwd0MigKQ== dependencies: tinyspy "^1.0.2" -"@vitest/utils@0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.3.tgz#75c076d4fdde5c48ee5de2808c83d615fc74d4ef" - integrity sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ== +"@vitest/utils@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.4.tgz#be8378f860f40c2d48a62f46c808cf98b9736100" + integrity sha512-l2QztOLdc2LkR+w/lP52RGh8hW+Ul4KESmCAgVE8q737I7e7bQoAfkARKpkPJ4JQtGpwW4deqlj1732VZD7TFw== dependencies: cli-truncate "^3.1.0" diff "^5.1.0" @@ -5233,14 +5224,12 @@ tslib "1.14.1" "@walletconnect/jsonrpc-ws-connection@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.6.tgz#8ef6747ddf9347f4b61c136d06fcdae6c7efad39" - integrity sha512-WFu8uTXbIDgxFfyax9uNcqFYtexUq/OdCA3SBsOqIipsnJFbjXK8OaR8WCoec4tkJbDRQO9mrr1KpA0ZlIcnCQ== + version "1.0.7" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.7.tgz#48cdd875519602d14737c706f551ebcbb644179b" + integrity sha512-iEIWUAIQih0TDF+RRjExZL3jd84UWX/rvzAmQ6fZWhyBP/qSlxGrMuAwNhpk2zj6P8dZuf8sSaaNuWgXFJIa5A== dependencies: "@walletconnect/jsonrpc-utils" "^1.0.4" "@walletconnect/safe-json" "^1.0.1" - events "^3.3.0" - tslib "1.14.1" ws "^7.5.1" "@walletconnect/keyvaluestorage@^1.0.2": @@ -5510,6 +5499,14 @@ buffer "6.0.3" valtio "1.9.0" +"@web3modal/core@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-2.1.1.tgz#e1ebe8faaae6e4b74df911fd5ac6023f280b12c1" + integrity sha512-GAZAvfkPHoX2/fghQmf+y36uDspk9wBJxG7qLPUNTHzvIfRoNHWbTt3iEvRdPmUZwbTGDn1jvz9z0uU67gvZdw== + dependencies: + buffer "6.0.3" + valtio "1.9.0" + "@web3modal/ethereum@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@web3modal/ethereum/-/ethereum-2.0.0.tgz#d8e14c1857447c673567519aac5487b88cfc384d" @@ -5524,12 +5521,12 @@ "@web3modal/ui" "2.0.0" "@web3modal/standalone@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@web3modal/standalone/-/standalone-2.0.0.tgz#359aa42e31020bf3d608d8668329ab4e2fdbcaf6" - integrity sha512-/YcAWgnVtTFeVFrHlhYemS1NU9ds9nbMuV1njjbS9+yDirOXfUenPORi6X1AGs5pUrDnR4IwDgQzdd5wqg6kZw== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@web3modal/standalone/-/standalone-2.1.1.tgz#e496e54af5ecf6e282ff7f287eebce7f1ac90bd2" + integrity sha512-K06VkZqltLIBKpnLeM2oszRDSdLnwXJWCcItWEOkH4LDFQIiq8lSeLhcamuadRxRKF4ZyTSLHHJ5MFcMfZEHQQ== dependencies: - "@web3modal/core" "2.0.0" - "@web3modal/ui" "2.0.0" + "@web3modal/core" "2.1.1" + "@web3modal/ui" "2.1.1" "@web3modal/ui@2.0.0": version "2.0.0" @@ -5541,6 +5538,16 @@ motion "10.15.5" qrcode "1.5.1" +"@web3modal/ui@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-2.1.1.tgz#300dceeee8a54be70aad74fb4a781ac22439eded" + integrity sha512-0jRDxgPc/peaE5KgqnzzriXhdVu5xNyCMP5Enqdpd77VkknJIs7h16MYKidxgFexieyHpCOssWySsryWcP2sXA== + dependencies: + "@web3modal/core" "2.1.1" + lit "2.6.1" + motion "10.15.5" + qrcode "1.5.1" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -5667,7 +5674,7 @@ resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.2.tgz#7b7107268d2982fc7b7aff5ee6803c64018f84dd" integrity sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w== -"@whatwg-node/fetch@0.6.5", "@whatwg-node/fetch@^0.6.0": +"@whatwg-node/fetch@0.6.5": version "0.6.5" resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.5.tgz#ff96288e9a6295faafac79f13e3b3fd831cad11f" integrity sha512-3XQ78RAMX8Az0LlUqMoGM3jbT+FE0S+IKr4yiTiqzQ5S/pNxD52K/kFLcLQiEbL+3rkk/glCHqjxF1QI5155Ig== @@ -5678,6 +5685,17 @@ urlpattern-polyfill "^6.0.2" web-streams-polyfill "^3.2.1" +"@whatwg-node/fetch@^0.6.0": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.6.tgz#a7e4000847e2534ae56b97b6713cd8d4c96a6dcd" + integrity sha512-8kB/Pp0knQVjbm3O15h1ATKOZ7n8GXMow3z8ptVTaRmiOMnCnA9bn7gKTLWFBdD84zzWFzPp6C9pB3vsndJKlQ== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + "@whatwg-node/node-fetch" "0.0.2" + busboy "^1.6.0" + urlpattern-polyfill "^6.0.2" + web-streams-polyfill "^3.2.1" + "@whatwg-node/node-fetch@0.0.1": version "0.0.1" resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.0.1.tgz#ffad65f3f8b73d6d2c2e8b179d557a5863b0db13" @@ -5687,6 +5705,15 @@ busboy "1.6.0" tslib "^2.3.1" +"@whatwg-node/node-fetch@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.0.2.tgz#f69c4dfdb3f8cbe9b0cf071f4a58da50e728fc0a" + integrity sha512-Xs3kunumaSWTHDjKJATP9r2AhwhwPh8miQQHi3aI64MwBSrFsolBUUyCkOJe2geDuHggoNycfnU85HP528odWg== + dependencies: + "@whatwg-node/events" "0.0.2" + busboy "1.6.0" + tslib "^2.3.1" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -5831,7 +5858,7 @@ acorn@^7.0.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1: +acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -6379,23 +6406,7 @@ avvio@^8.2.0: debug "^4.0.0" fastq "^1.6.1" -aws-sdk@^2.1255.0: - version "2.1307.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1307.0.tgz#387e0ca566d135a28b1fa0397edfd1a3f45e8ea6" - integrity sha512-fRGMLrFrndcl7VXp6ynbFry4S+eO360cIw5sdfI2ZdC86aQlg7vSh5WAdARMExnwKCeaoiGhRe1fTBS3WoLwAw== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.16.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - util "^0.12.4" - uuid "8.0.0" - xml2js "0.4.19" - -aws-sdk@^2.1294.0: +aws-sdk@^2.1255.0, aws-sdk@^2.1294.0: version "2.1308.0" resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1308.0.tgz#6c6bca22ef1874379e1471f25b3202d0a45f96bb" integrity sha512-tm4UXah8dCqt1geyxrtoyp6dN5QhuLjNeACUZEsffww5oZPMx24EX9dAtvtSu3UfIHwmbR74QomYi1c1u8Jndg== @@ -6441,7 +6452,7 @@ axios@^0.27.2: follow-redirects "^1.14.9" form-data "^4.0.0" -axios@^1.1.3, axios@^1.2.2: +axios@^1.1.3, axios@^1.2.2, axios@^1.2.6: version "1.3.1" resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.1.tgz#80bf6c8dbb46e6db1fa8fe9ab114c1ca7405c2ee" integrity sha512-78pWJsQTceInlyaeBQeYZ/QgZeWS8hGeKiIJiDKQe3hEyBb7sEMq0K4gjx+Va6WHTYO4zI/RRl8qGRzn0YMadA== @@ -6450,15 +6461,6 @@ axios@^1.1.3, axios@^1.2.2: form-data "^4.0.0" proxy-from-env "^1.1.0" -axios@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.6.tgz#eacb6d065baa11bad5959e7ffa0cb6745c65f392" - integrity sha512-rC/7F08XxZwjMV4iuWv+JpD3E0Ksqg9nac4IIg6RwNuF0JTeWoCo/mBNG54+tNhhI11G3/VDRbdDQTs9hGp4pQ== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - axobject-query@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" @@ -9846,9 +9848,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.4.284: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + version "1.4.285" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.285.tgz#803a776dc24ce1bf5c2752630e0443d51002b95d" + integrity sha512-47o4PPgxfU1KMNejz+Dgaodf7YTcg48uOfV1oM6cs3adrl2+7R+dHkt3Jpxqo0LRCbGJEzTKMUt0RdvByb/leg== elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" @@ -10497,7 +10499,7 @@ esbuild@^0.14.54: esbuild-windows-64 "0.14.54" esbuild-windows-arm64 "0.14.54" -esbuild@^0.16.3: +esbuild@^0.16.14: version "0.16.17" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== @@ -12287,9 +12289,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" @@ -12421,10 +12423,10 @@ graphql-import-node@^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-ws@5.11.2: - version "5.11.2" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.11.2.tgz#d5e0acae8b4d4a4cf7be410a24135cfcefd7ddc0" - integrity sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w== +graphql-ws@5.11.3: + version "5.11.3" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.11.3.tgz#eaf8e6baf669d167975cff13ad86abca4ecfe82f" + integrity sha512-fU8zwSgAX2noXAsuFiCZ8BtXeXZOzXyK5u1LloCdacsVth4skdBMPO74EG51lBoWSIZ8beUocdpV8+cQHBODnQ== graphql@15.5.0: version "15.5.0" @@ -13070,9 +13072,9 @@ immutable@3.8.2: integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== immutable@^4.0.0-rc.12: - version "4.2.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16" - integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og== + version "4.2.3" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.3.tgz#a203cdda37a5a30bc351b982a1794c1930198815" + integrity sha512-IHpmvaOIX4VLJwPOuQr1NpeBr2ZG6vpIj3blsLVxXRWJscLioaJRStqC+NcBsLeCDsnGlPpXd5/WZmnE7MbsKA== import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" @@ -18199,7 +18201,7 @@ postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.20, postcss@^8.4.4: +postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.21, postcss@^8.4.4: version "8.4.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== @@ -19605,10 +19607,10 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" -rollup@^3.7.0: - version "3.12.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.12.1.tgz#2975b97713e4af98c15e7024b88292d7fddb3853" - integrity sha512-t9elERrz2i4UU9z7AwISj3CQcXP39cWxgRWLdf4Tm6aKm1eYrqHIgjzXBgb67GNY1sZckTFFi0oMozh3/S++Ig== +rollup@^3.10.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.13.0.tgz#202883a91b5d1bf98302efe4daa907e3e5e4ae94" + integrity sha512-HJwQtrXAc0AmyDohTJ/2c+Bx/sWPScJLlAUJ1kuD7rAkCro8Cr2SnVB2gVYBiSLxpgD2kZ24jbyXtG++GumrYQ== optionalDependencies: fsevents "~2.3.2" @@ -20492,9 +20494,9 @@ statuses@2.0.1: integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== std-env@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.1.tgz#93a81835815e618c8aa75e7c8a4dc04f7c314e29" - integrity sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q== + version "3.3.2" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.2.tgz#af27343b001616015534292178327b202b9ee955" + integrity sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA== stealthy-require@^1.1.1: version "1.1.1" @@ -20777,11 +20779,11 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1. integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-literal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.0.tgz#0a484ed5a978cd9d2becf3cf8f4f2cb5ab0e1e74" - integrity sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.1.tgz#0115a332710c849b4e46497891fb8d585e404bd2" + integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q== dependencies: - acorn "^8.8.1" + acorn "^8.8.2" strnum@^1.0.4: version "1.0.5" @@ -21136,9 +21138,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: terser "^5.14.1" terser@^5.0.0, terser@^5.10.0, terser@^5.14.1: - version "5.16.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.2.tgz#8f495819439e8b5c150e7530fc434a6e70ea18b2" - integrity sha512-JKuM+KvvWVqT7muHVyrwv7FVRPnmHDwF6XwoIxdbF5Witi0vu99RYpxDexpJndXt3jbZZmmWr2/mQa6HvSNdSg== + version "5.16.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.3.tgz#3266017a9b682edfe019b8ecddd2abaae7b39c6b" + integrity sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -22074,10 +22076,10 @@ victory-vendor@^36.6.8: d3-time "^3.0.0" d3-timer "^3.0.1" -vite-node@0.28.3: - version "0.28.3" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.3.tgz#5d693c237d5467f167f81d158a56d3408fea899c" - integrity sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg== +vite-node@0.28.4: + version "0.28.4" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.4.tgz#ce709cde2200d86a2a45457fed65f453234b0261" + integrity sha512-KM0Q0uSG/xHHKOJvVHc5xDBabgt0l70y7/lWTR7Q0pR5/MrYxadT+y32cJOE65FfjGmJgxpVEEY+69btJgcXOQ== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -22089,14 +22091,14 @@ vite-node@0.28.3: vite "^3.0.0 || ^4.0.0" "vite@^3.0.0 || ^4.0.0": - version "4.0.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.4.tgz#4612ce0b47bbb233a887a54a4ae0c6e240a0da31" - integrity sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.1.tgz#3b18b81a4e85ce3df5cbdbf4c687d93ebf402e6b" + integrity sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg== dependencies: - esbuild "^0.16.3" - postcss "^8.4.20" + esbuild "^0.16.14" + postcss "^8.4.21" resolve "^1.22.1" - rollup "^3.7.0" + rollup "^3.10.0" optionalDependencies: fsevents "~2.3.2" @@ -22121,17 +22123,17 @@ vitest@^0.25.8: vite "^3.0.0 || ^4.0.0" vitest@^0.28.1: - version "0.28.3" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.3.tgz#58322a5ae64854d4cdb75451817b9fb795f9102e" - integrity sha512-N41VPNf3VGJlWQizGvl1P5MGyv3ZZA2Zvh+2V8L6tYBAAuqqDK4zExunT1Cdb6dGfZ4gr+IMrnG8d4Z6j9ctPw== + version "0.28.4" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.4.tgz#d41113d6e250620cefd83ca967387a5844a7bde2" + integrity sha512-sfWIy0AdlbyGRhunm+TLQEJrFH9XuRPdApfubsyLcDbCRrUX717BRQKInTgzEfyl2Ipi1HWoHB84Nqtcwxogcg== dependencies: "@types/chai" "^4.3.4" "@types/chai-subset" "^1.3.3" "@types/node" "*" - "@vitest/expect" "0.28.3" - "@vitest/runner" "0.28.3" - "@vitest/spy" "0.28.3" - "@vitest/utils" "0.28.3" + "@vitest/expect" "0.28.4" + "@vitest/runner" "0.28.4" + "@vitest/spy" "0.28.4" + "@vitest/utils" "0.28.4" acorn "^8.8.1" acorn-walk "^8.2.0" cac "^6.7.14" @@ -22147,7 +22149,7 @@ vitest@^0.28.1: tinypool "^0.3.1" tinyspy "^1.0.2" vite "^3.0.0 || ^4.0.0" - vite-node "0.28.3" + vite-node "0.28.4" why-is-node-running "^2.2.2" w3c-hr-time@^1.0.2: From f30ead9d4353eeed65e0a3020e91771c53da6cd7 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Fri, 3 Feb 2023 19:39:04 +0100 Subject: [PATCH 169/216] fix fortune tests --- package.json | 9 +++++++-- packages/core/hardhat.config.ts | 1 - .../examples/fortune/recording-oracle/package.json | 2 +- yarn.lock | 12 ++++++------ 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 3a3c8af08b..fa338691f0 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,13 @@ "prepare": "husky install" }, "workspaces": { - "packages": ["packages/**"], - "nohoist": ["**/*wagmi/", "**/*wagmi/core"] + "packages": [ + "packages/**" + ], + "nohoist": [ + "**/*wagmi/", + "**/*wagmi/core" + ] }, "devDependencies": { "@babel/core": "^7.20.2", diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 4ef8249aff..9258790886 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -137,7 +137,6 @@ const config: HardhatUserConfig = { goerli: process.env.ETHERSCAN_API_KEY || '', polygon: process.env.POLYGONSCAN_API_KEY || '', polygonMumbai: process.env.POLYGONSCAN_API_KEY || '', - polygon: process.env.POLYGONSCAN_API_KEY || '', bscTestnet: process.env.BSC_TESTNET_API_KEY || '', moonbaseAlpha: process.env.MOONSCAN_API_KEY || '', }, diff --git a/packages/examples/fortune/recording-oracle/package.json b/packages/examples/fortune/recording-oracle/package.json index e8a972bed3..87f2ce8357 100644 --- a/packages/examples/fortune/recording-oracle/package.json +++ b/packages/examples/fortune/recording-oracle/package.json @@ -11,7 +11,7 @@ "build": "tsc", "start:prod": "ts-node build/src/index.js", "start": "ts-node ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" }, "repository": { "type": "git", diff --git a/yarn.lock b/yarn.lock index 0cc7343b35..68d5d0ca36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6453,9 +6453,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.1.3, axios@^1.2.2, axios@^1.2.6: - version "1.3.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.1.tgz#80bf6c8dbb46e6db1fa8fe9ab114c1ca7405c2ee" - integrity sha512-78pWJsQTceInlyaeBQeYZ/QgZeWS8hGeKiIJiDKQe3hEyBb7sEMq0K4gjx+Va6WHTYO4zI/RRl8qGRzn0YMadA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.2.tgz#7ac517f0fa3ec46e0e636223fd973713a09c72b3" + integrity sha512-1M3O703bYqYuPhbHeya5bnhpYVsDDRyQSabNja04mZtboLNSuZ4YrltestrLXfHgmzua4TpUqRiVKbiQuo2epw== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -12510,9 +12510,9 @@ hardhat-contract-sizer@^2.6.1: cli-table3 "^0.6.0" hardhat-deploy@^0.11.14: - version "0.11.22" - resolved "https://registry.yarnpkg.com/hardhat-deploy/-/hardhat-deploy-0.11.22.tgz#9799c0266a0fc40c84690de54760f1b4dae5e487" - integrity sha512-ZhHVNB7Jo2l8Is+KIAk9F8Q3d7pptyiX+nsNbIFXztCz81kaP+6kxNODRBqRCy7SOD3It4+iKCL6tWsPAA/jVQ== + version "0.11.23" + resolved "https://registry.yarnpkg.com/hardhat-deploy/-/hardhat-deploy-0.11.23.tgz#7c5d11ba32acfd7c5730490bf6af8815b435c996" + integrity sha512-9F+sDRX79D/oV1cUEE0k2h5LiccrnzXEtrMofL5PTVDCJfUnRvhQqCRi4NhcYmxf2+MBkOIJv5KyzP0lz6ojTw== dependencies: "@types/qs" "^6.9.7" axios "^0.21.1" From abb2e645da2784a4311cd6b5f30a693bdd7adb1f Mon Sep 17 00:00:00 2001 From: portuu3 Date: Sun, 5 Feb 2023 20:30:32 +0100 Subject: [PATCH 170/216] add cors origin config --- .../examples/fortune/recording-oracle/vercel.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index 06aac0c929..91b51a018d 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -13,5 +13,16 @@ "src": "/(.*)", "dest": "src/index.ts" } + ], + "headers": [ + { + "source": "/(.*)", + "headers": [ + { "key": "Access-Control-Allow-Credentials", "value": "true" }, + { "key": "Access-Control-Allow-Origin", "value": "*" }, + { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" }, + { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" } + ] + } ] } From aa8fe61d1b8a0c3c066eb57f70a958c2d2fceda2 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Sun, 5 Feb 2023 20:40:00 +0100 Subject: [PATCH 171/216] vercel config fix --- packages/examples/fortune/recording-oracle/vercel.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index 91b51a018d..019f0f2a22 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -16,7 +16,7 @@ ], "headers": [ { - "source": "/(.*)", + "source": "/src/(.*)", "headers": [ { "key": "Access-Control-Allow-Credentials", "value": "true" }, { "key": "Access-Control-Allow-Origin", "value": "*" }, From f4665a404a5624f49916ed62d64059542075f365 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Sun, 5 Feb 2023 20:45:31 +0100 Subject: [PATCH 172/216] cors origin config --- packages/examples/fortune/recording-oracle/vercel.json | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index 019f0f2a22..a444892134 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -16,13 +16,8 @@ ], "headers": [ { - "source": "/src/(.*)", - "headers": [ - { "key": "Access-Control-Allow-Credentials", "value": "true" }, - { "key": "Access-Control-Allow-Origin", "value": "*" }, - { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" }, - { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" } - ] + "source": "/(.*)", + "headers": [{ "key": "Access-Control-Allow-Origin", "value": "*" }] } ] } From 42394339836ae6c9df37db747588eb5565812f72 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Sun, 5 Feb 2023 21:06:04 +0100 Subject: [PATCH 173/216] cors fix --- packages/examples/fortune/recording-oracle/vercel.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index a444892134..2e319276de 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -8,7 +8,7 @@ "use": "@vercel/node" } ], - "routes": [ + "rewrites": [ { "src": "/(.*)", "dest": "src/index.ts" From 371c11084f1ecb7e9b7eb555493d8c16e4b3ea8b Mon Sep 17 00:00:00 2001 From: portuu3 Date: Sun, 5 Feb 2023 21:10:27 +0100 Subject: [PATCH 174/216] fix vercel config --- packages/examples/fortune/recording-oracle/vercel.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index 2e319276de..329203bdd0 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -10,7 +10,7 @@ ], "rewrites": [ { - "src": "/(.*)", + "source": "/(.*)", "dest": "src/index.ts" } ], From c02d35b3fa449ea682213e6057621d15787fccc3 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Sun, 5 Feb 2023 21:12:42 +0100 Subject: [PATCH 175/216] fix vercel config --- packages/examples/fortune/recording-oracle/vercel.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index 329203bdd0..f0b70879c2 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -11,7 +11,7 @@ "rewrites": [ { "source": "/(.*)", - "dest": "src/index.ts" + "destination": "src/index.ts" } ], "headers": [ From 75dbedb0fb725bbde0335b11bbd6a7fba7043c51 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Sun, 5 Feb 2023 21:31:55 +0100 Subject: [PATCH 176/216] cors config --- packages/examples/fortune/recording-oracle/vercel.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index f0b70879c2..18dbf64e9f 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -17,7 +17,12 @@ "headers": [ { "source": "/(.*)", - "headers": [{ "key": "Access-Control-Allow-Origin", "value": "*" }] + "headers": [ + { "key": "Access-Control-Allow-Credentials", "value": "true" }, + { "key": "Access-Control-Allow-Origin", "value": "*" }, + { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" }, + { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" } + ] } ] } From 314d67cc023ba994f21fc7c60fbdef49b4230323 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 08:17:01 +0100 Subject: [PATCH 177/216] test fix cors --- .../fortune/recording-oracle/src/server.ts | 5 ++++- .../fortune/recording-oracle/vercel.json | 17 +++-------------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 4ad5e48bfb..ff1c5a46ca 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -31,7 +31,10 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) - .register(cors) + .register(cors, { + origin: '*', + methods: ['GET', 'PUT', 'POST'], + }) .register(routes) .ready(); diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index 18dbf64e9f..06aac0c929 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -8,21 +8,10 @@ "use": "@vercel/node" } ], - "rewrites": [ + "routes": [ { - "source": "/(.*)", - "destination": "src/index.ts" - } - ], - "headers": [ - { - "source": "/(.*)", - "headers": [ - { "key": "Access-Control-Allow-Credentials", "value": "true" }, - { "key": "Access-Control-Allow-Origin", "value": "*" }, - { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" }, - { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" } - ] + "src": "/(.*)", + "dest": "src/index.ts" } ] } From 6052092606e69423b841b43ebe19e0b72bdeab4e Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 08:32:34 +0100 Subject: [PATCH 178/216] cors fix --- packages/examples/fortune/recording-oracle/src/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index ff1c5a46ca..609e1091e5 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -33,7 +33,7 @@ const getServer = async () => { .register(uniqueness) .register(cors, { origin: '*', - methods: ['GET', 'PUT', 'POST'], + methods: ['GET', 'PUT', 'POST', 'OPTIONS'], }) .register(routes) .ready(); From 0ff4bdf292da376e699772d8b493d58ce5c7c6b0 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 08:50:38 +0100 Subject: [PATCH 179/216] remove unnecessary code --- packages/examples/fortune/package.json | 2 +- packages/examples/fortune/recording-oracle/.env.test | 2 -- .../fortune/recording-oracle/src/plugins/web3.ts | 9 --------- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index bfb0bb8a02..9da2aa18dd 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -14,7 +14,7 @@ "local:test": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn minio\")", "test:launcher-server": "yarn workspace @human-protocol/job-launcher-server test", "test:exchange": "cd exchange && yarn test", - "test:recording": "cd recording-oracle && yarn test", + "test:recording": "yarn workspace @human-protocol/fortune-recording-oracle test", "test:reputation": "cd reputation-oracle && yarn test", "test:e2e": "(concurrently -k -s first -g --hide 0 \"yarn local:test\" \"sleep 5 && yarn deploy:contracts && jest tests/e2e-backend --runInBand\") && docker compose down", "test:unit": "(concurrently -g \"yarn test:launcher-server\" \"yarn test:recording\" \"yarn test:reputation\") && docker compose down", diff --git a/packages/examples/fortune/recording-oracle/.env.test b/packages/examples/fortune/recording-oracle/.env.test index fb927832d0..00c7c8b689 100644 --- a/packages/examples/fortune/recording-oracle/.env.test +++ b/packages/examples/fortune/recording-oracle/.env.test @@ -12,8 +12,6 @@ TENDERLY_FORK_ID= ETHERSCAN_API_KEY= POLYGONSCAN_API_KEY= -ETH_NODE_URL= - S3_HOST=localhost S3_PORT=9000 S3_ACCESS_KEY=access-key diff --git a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts index 46625ae435..b2f1161b52 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts @@ -8,7 +8,6 @@ import { IEscrowNetwork } from '../interfaces/networks'; const ConfigSchema = Type.Strict( Type.Object({ - ETH_NODE_URL: Type.String(), ETH_PRIVATE_KEY: Type.String(), }) ); @@ -48,14 +47,6 @@ const web3Plugin: FastifyPluginAsync = async (server) => { ); } - const web3 = new Web3(process.env.ETH_NODE_URL as string); - const account = web3.eth.accounts.privateKeyToAccount( - `0x${process.env.ETH_PRIVATE_KEY}` - ); - - web3.eth.accounts.wallet.add(account); - web3.eth.defaultAccount = account.address; - server.decorate('web3', new Web3Client()); }; From ed805d61f09d5500c94da867d8a78eeefd606e04 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 08:57:19 +0100 Subject: [PATCH 180/216] fix fortune tests --- packages/examples/fortune/recording-oracle/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/package.json b/packages/examples/fortune/recording-oracle/package.json index 87f2ce8357..c4dfaa71d0 100644 --- a/packages/examples/fortune/recording-oracle/package.json +++ b/packages/examples/fortune/recording-oracle/package.json @@ -11,7 +11,7 @@ "build": "tsc", "start:prod": "ts-node build/src/index.js", "start": "ts-node ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 5 && cross-env RPC_PORT=8547 yarn workspace @human-protocol/core deploy:local && vitest --run\"" }, "repository": { "type": "git", From 0bd4b2e5065f50f059e6c43a0012e591cb41e186 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 09:10:41 +0100 Subject: [PATCH 181/216] fix wrong endpoint --- .../exchange/src/services/RecordingOracle/RecordingClient.ts | 2 +- packages/examples/fortune/recording-oracle/src/server.ts | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts b/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts index f7bef40949..b2b4bd0801 100644 --- a/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts +++ b/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts @@ -13,7 +13,7 @@ const sendFortune = async ( fortune, chainId, }; - await axios.post(recordingOracleUrl, body); + await axios.post(`${recordingOracleUrl}/send-fortunes`, body); return; }; diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 609e1091e5..4ad5e48bfb 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -31,10 +31,7 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) - .register(cors, { - origin: '*', - methods: ['GET', 'PUT', 'POST', 'OPTIONS'], - }) + .register(cors) .register(routes) .ready(); From aca49bc6116ba1382f668fe383323173f9c48794 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 09:44:39 +0100 Subject: [PATCH 182/216] cors config --- packages/examples/fortune/recording-oracle/src/server.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 4ad5e48bfb..609e1091e5 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -31,7 +31,10 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) - .register(cors) + .register(cors, { + origin: '*', + methods: ['GET', 'PUT', 'POST', 'OPTIONS'], + }) .register(routes) .ready(); From c29c750cbff7fe2f040ecc7e40dc4dfb8aa2720f Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 10:11:25 +0100 Subject: [PATCH 183/216] cors config --- .../fortune/recording-oracle/vercel.json | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index 06aac0c929..18dbf64e9f 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -8,10 +8,21 @@ "use": "@vercel/node" } ], - "routes": [ + "rewrites": [ { - "src": "/(.*)", - "dest": "src/index.ts" + "source": "/(.*)", + "destination": "src/index.ts" + } + ], + "headers": [ + { + "source": "/(.*)", + "headers": [ + { "key": "Access-Control-Allow-Credentials", "value": "true" }, + { "key": "Access-Control-Allow-Origin", "value": "*" }, + { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" }, + { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" } + ] } ] } From f00e9f1ccf57679d799191825a8ff0b1b3c888d7 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 10:33:48 +0100 Subject: [PATCH 184/216] disable cors --- packages/examples/fortune/recording-oracle/src/server.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 609e1091e5..da6678568d 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -31,10 +31,10 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) - .register(cors, { - origin: '*', - methods: ['GET', 'PUT', 'POST', 'OPTIONS'], - }) + // .register(cors, { + // origin: '*', + // methods: ['GET', 'PUT', 'POST', 'OPTIONS'], + // }) .register(routes) .ready(); From 9cb6c3a7866463a748b0f53ca901a32a6d9f705d Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 11:00:26 +0100 Subject: [PATCH 185/216] test cors --- .../examples/fortune/recording-oracle/src/server.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index da6678568d..4ab81b70b7 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -31,10 +31,12 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) - // .register(cors, { - // origin: '*', - // methods: ['GET', 'PUT', 'POST', 'OPTIONS'], - // }) + .register(cors, { + origin: true, + methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], + allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], + credentials: true + }) .register(routes) .ready(); From ef1938a9a98bf0532286807193575a1516319a12 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 11:19:11 +0100 Subject: [PATCH 186/216] remove all cors --- .../fortune/recording-oracle/src/server.ts | 14 +++++++------- .../fortune/recording-oracle/vercel.json | 17 +++-------------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 4ab81b70b7..053ca8a7d4 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -2,7 +2,7 @@ import fastify from 'fastify'; import config from './plugins/config'; import s3 from './plugins/s3'; import routes from './routes/index'; -import cors from '@fastify/cors'; +// import cors from '@fastify/cors'; import escrow from './plugins/escrow'; import web3 from './plugins/web3'; import storage from './plugins/storage'; @@ -31,12 +31,12 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) - .register(cors, { - origin: true, - methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], - allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], - credentials: true - }) + // .register(cors, { + // origin: true, + // methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], + // allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], + // credentials: true + // }) .register(routes) .ready(); diff --git a/packages/examples/fortune/recording-oracle/vercel.json b/packages/examples/fortune/recording-oracle/vercel.json index 18dbf64e9f..06aac0c929 100644 --- a/packages/examples/fortune/recording-oracle/vercel.json +++ b/packages/examples/fortune/recording-oracle/vercel.json @@ -8,21 +8,10 @@ "use": "@vercel/node" } ], - "rewrites": [ + "routes": [ { - "source": "/(.*)", - "destination": "src/index.ts" - } - ], - "headers": [ - { - "source": "/(.*)", - "headers": [ - { "key": "Access-Control-Allow-Credentials", "value": "true" }, - { "key": "Access-Control-Allow-Origin", "value": "*" }, - { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" }, - { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" } - ] + "src": "/(.*)", + "dest": "src/index.ts" } ] } From 909e786341c91b046df80c7d778fdeb5747eab9f Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 11:34:28 +0100 Subject: [PATCH 187/216] cors config --- .../fortune/recording-oracle/src/server.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 053ca8a7d4..a0081eb4ad 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -2,7 +2,7 @@ import fastify from 'fastify'; import config from './plugins/config'; import s3 from './plugins/s3'; import routes from './routes/index'; -// import cors from '@fastify/cors'; +import cors from '@fastify/cors'; import escrow from './plugins/escrow'; import web3 from './plugins/web3'; import storage from './plugins/storage'; @@ -31,12 +31,13 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) - // .register(cors, { - // origin: true, - // methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], - // allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], - // credentials: true - // }) + .register(cors, { + preflightContinue: true, + origin: true, + methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], + allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], + credentials: true + }) .register(routes) .ready(); From b45741b7ade9fc1c071d9cd38725fccf5f8bc760 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 11:45:06 +0100 Subject: [PATCH 188/216] test cors --- packages/examples/fortune/recording-oracle/src/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index a0081eb4ad..8bd12e0a89 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -32,7 +32,7 @@ const getServer = async () => { .register(curses) .register(uniqueness) .register(cors, { - preflightContinue: true, + preflight: false, origin: true, methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], From a76ebe80c3e74e0522bf314a55be8e7838c57202 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 11:58:38 +0100 Subject: [PATCH 189/216] cors test --- .../fortune/recording-oracle/src/routes/index.ts | 12 ++++++++++-- .../examples/fortune/recording-oracle/src/server.ts | 13 ++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/routes/index.ts b/packages/examples/fortune/recording-oracle/src/routes/index.ts index 848ba0db9a..5ee42bd151 100644 --- a/packages/examples/fortune/recording-oracle/src/routes/index.ts +++ b/packages/examples/fortune/recording-oracle/src/routes/index.ts @@ -48,9 +48,17 @@ const routes: FastifyPluginAsync = async (server: FastifyInstance) => { uniqueness, }; - server.post('/send-fortunes', opts, async function (request: FastifyRequest) { + server.post('/send-fortunes', opts, async function (request: FastifyRequest, reply) { const fortunes = request.body as IFortuneRequest; - + reply.headers({ + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept', + 'Access-Control-Allow-Credentials': true, + 'Access-Control-Allow-Methods': 'GET, POST, PUT, PATCH, OPTIONS, DELETE' + }); + if(request.method === 'OPTIONS') { + return reply.status(200); + } return processFortunes(plugins, fortunes); }); }; diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 8bd12e0a89..50f0e7db0f 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -31,13 +31,12 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) - .register(cors, { - preflight: false, - origin: true, - methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], - allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], - credentials: true - }) + // .register(cors, { + // origin: true, + // methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], + // allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], + // credentials: true + // }) .register(routes) .ready(); From 8f9508fce0f0f5d5abe8b2a109fe0fc081c052c1 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 12:03:58 +0100 Subject: [PATCH 190/216] cors test --- packages/examples/fortune/recording-oracle/src/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 50f0e7db0f..053ca8a7d4 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -2,7 +2,7 @@ import fastify from 'fastify'; import config from './plugins/config'; import s3 from './plugins/s3'; import routes from './routes/index'; -import cors from '@fastify/cors'; +// import cors from '@fastify/cors'; import escrow from './plugins/escrow'; import web3 from './plugins/web3'; import storage from './plugins/storage'; From 90200cb86e8d2dfb25506fcdd7ed9bac413eb413 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 12:12:39 +0100 Subject: [PATCH 191/216] cors test --- packages/examples/fortune/recording-oracle/src/server.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 053ca8a7d4..0a88015c82 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -2,7 +2,7 @@ import fastify from 'fastify'; import config from './plugins/config'; import s3 from './plugins/s3'; import routes from './routes/index'; -// import cors from '@fastify/cors'; +import cors from '@fastify/cors'; import escrow from './plugins/escrow'; import web3 from './plugins/web3'; import storage from './plugins/storage'; @@ -31,6 +31,7 @@ const getServer = async () => { .register(storage) .register(curses) .register(uniqueness) + .register(cors) // .register(cors, { // origin: true, // methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], From 0e8fe575e3e1142ff27381719bdb0a2d6269c8dd Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 13:02:57 +0100 Subject: [PATCH 192/216] cors --- .../fortune/recording-oracle/src/routes/index.ts | 11 +---------- .../examples/fortune/recording-oracle/src/server.ts | 6 ------ 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/routes/index.ts b/packages/examples/fortune/recording-oracle/src/routes/index.ts index 5ee42bd151..475333de2a 100644 --- a/packages/examples/fortune/recording-oracle/src/routes/index.ts +++ b/packages/examples/fortune/recording-oracle/src/routes/index.ts @@ -50,16 +50,7 @@ const routes: FastifyPluginAsync = async (server: FastifyInstance) => { server.post('/send-fortunes', opts, async function (request: FastifyRequest, reply) { const fortunes = request.body as IFortuneRequest; - reply.headers({ - 'Access-Control-Allow-Origin': '*', - 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept', - 'Access-Control-Allow-Credentials': true, - 'Access-Control-Allow-Methods': 'GET, POST, PUT, PATCH, OPTIONS, DELETE' - }); - if(request.method === 'OPTIONS') { - return reply.status(200); - } - return processFortunes(plugins, fortunes); + return await processFortunes(plugins, fortunes); }); }; diff --git a/packages/examples/fortune/recording-oracle/src/server.ts b/packages/examples/fortune/recording-oracle/src/server.ts index 0a88015c82..4ad5e48bfb 100644 --- a/packages/examples/fortune/recording-oracle/src/server.ts +++ b/packages/examples/fortune/recording-oracle/src/server.ts @@ -32,12 +32,6 @@ const getServer = async () => { .register(curses) .register(uniqueness) .register(cors) - // .register(cors, { - // origin: true, - // methods: ['GET', 'PUT', 'POST', 'OPTIONS', 'PATCH', 'DELETE'], - // allowedHeaders: ['X-CSRF-Token', 'X-Requested-With', 'Accept', 'Accept-Version', 'Content-Length', 'Content-MD5', 'Content-Type', 'Date', 'X-Api-Version'], - // credentials: true - // }) .register(routes) .ready(); From c87ef79df78628c8a70f6cd728a533c4eacbff2b Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 13:15:29 +0100 Subject: [PATCH 193/216] fix manifest variable names --- .../recording-oracle/src/services/recordingOracle.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts index 1ed345c0af..d2fbea769c 100644 --- a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts +++ b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts @@ -86,8 +86,8 @@ export async function processFortunes( ); const { - fortunes_requested: fortunesRequested, - reputation_oracle_url: reputationOracleUrl, + fortunesRequired, + reputationOracleUrl } = await getManifestByUrl(manifestUrl); let escrow = plugins.storage.getEscrow(fortune.escrowAddress); @@ -96,7 +96,7 @@ export async function processFortunes( escrow = plugins.storage.addEscrow( fortune.escrowAddress, fortune.chainId, - fortunesRequested + fortunesRequired ); } From 33cfc95ebf0edcc9a937786d38693094f3579887 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 13:56:51 +0100 Subject: [PATCH 194/216] fix trailing slashes --- .../exchange/src/services/RecordingOracle/RecordingClient.ts | 3 ++- .../recording-oracle/src/services/reputationOracleClient.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts b/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts index b2b4bd0801..211b90b9e0 100644 --- a/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts +++ b/packages/examples/fortune/exchange/src/services/RecordingOracle/RecordingClient.ts @@ -13,7 +13,8 @@ const sendFortune = async ( fortune, chainId, }; - await axios.post(`${recordingOracleUrl}/send-fortunes`, body); + const url = recordingOracleUrl.replace(/\/+$/, ''); + await axios.post(`${url}/send-fortunes`, body); return; }; diff --git a/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts b/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts index d1926ce90a..636512dfd3 100644 --- a/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts +++ b/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts @@ -7,7 +7,8 @@ export async function sendFortunes( ) { const data = [fortunes]; try { - return await axios.post(reputationOracleUrl, data); + const url = reputationOracleUrl.replace(/\/+$/, ''); + return await axios.post(`${url}/send-fortunes`, data); } catch (e) { console.log('Reputation Oracle error: ', e); } From 109ee5153ea6f4e2db39013c972f9e5177c48730 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 16:11:17 +0100 Subject: [PATCH 195/216] fixes rec and rep oracles --- .../src/services/recordingOracle.ts | 2 +- .../fortune/reputation-oracle/src/index.ts | 44 +++++++++---------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts index d2fbea769c..c277828b71 100644 --- a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts +++ b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts @@ -166,7 +166,7 @@ export async function processFortunes( ); if (isFortunesRequestedDone(escrow)) { - sendFortunes(reputationOracleUrl, fortuneResults); + await sendFortunes(reputationOracleUrl, fortuneResults); plugins.storage.remove(fortune.escrowAddress); return { response: 'The requested fortunes have been completed.' }; } diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 21d65985b1..6203454d23 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import express from 'express'; import bodyParser from 'body-parser'; import Web3 from 'web3'; @@ -27,9 +28,9 @@ app.use(bodyParser.json()); app.post('/send-fortunes', async (req, res) => { try { const errorMessage: string[] = []; - Object.keys(req.body).forEach((escrowAddress) => { - const fortunes = req.body[escrowAddress].fortunes; - const chainId = Number(req.body[escrowAddress].chainId) as ChainId; + req.body.forEach((escrow: any) => { + const fortunes = escrow.fortunes; + const chainId = Number(escrow.chainId) as ChainId; if (!chainId) { errorMessage.push(`ChainId is empty or invalid`); @@ -39,41 +40,38 @@ app.post('/send-fortunes', async (req, res) => { errorMessage.push('ChainId not supported'); } - if (!Array.isArray(fortunes) || fortunes.length === 0) { + if (Object.keys(fortunes).length === 0) { errorMessage.push( - `Fortunes of ${escrowAddress} are not specified or empty` + `Fortunes of ${escrow.escrowAddress} are not specified or empty` ); } - if (!Web3.utils.isAddress(escrowAddress)) { + if (!Web3.utils.isAddress(escrow.escrowAddress)) { errorMessage.push( - `Escrow address ${escrowAddress} is empty or invalid` + `Escrow address ${escrow.escrowAddress} is empty or invalid` ); } }); - + if (errorMessage.length > 0) { return res.status(400).send({ message: JSON.stringify(errorMessage), }); } - - for (const escrowAddress of Object.keys(req.body)) { - const fortunes = req.body[escrowAddress].fortunes; - const chainId = Number(req.body[escrowAddress].chainId) as ChainId; + for (const escrow of req.body) { + const fortunes = escrow.fortunes; + const chainId = Number(escrow.chainId) as ChainId; const network = REPUTATION_NETWORKS[chainId]; if (!network) throw new Error('ChainId not supported'); - const web3 = new Web3(network.reputationAddress); + const web3 = new Web3(network.rpcUrl); const account = web3.eth.accounts.privateKeyToAccount(`0x${privKey}`); web3.eth.accounts.wallet.add(account); web3.eth.defaultAccount = account.address; - const manifestUrl = await getEscrowManifestUrl(web3, escrowAddress); - const { recording_oracle_address: recordingOracleAddress } = - await getManifest(manifestUrl); - - const balance = await getBalance(web3, escrowAddress); + const manifestUrl = await getEscrowManifestUrl(web3, escrow.escrowAddress); + const { recordingOracleAddress } = await getManifest(manifestUrl); + const balance = await getBalance(web3, escrow.escrowAddress); const { workerAddresses, reputationValues } = filterAddressesToReward( web3, fortunes, @@ -85,6 +83,7 @@ app.post('/send-fortunes', async (req, res) => { network.reputationAddress, reputationValues ); + const rewards = await calculateRewardForWorker( web3, network.reputationAddress, @@ -95,20 +94,19 @@ app.post('/send-fortunes', async (req, res) => { // TODO calculate the URL hash(?) const resultsUrl = await uploadResults( Object.keys(fortunes), - escrowAddress + escrow.escrowAddress ); const resultHash = resultsUrl; await bulkPayOut( web3, - escrowAddress, + escrow.escrowAddress, workerAddresses, rewards, resultsUrl, resultHash ); - - if (!(await bulkPaid(web3, escrowAddress))) { - errorMessage.push(`Escrow ${escrowAddress} payout couldn't be done`); + if (!(await bulkPaid(web3, escrow.escrowAddress))) { + errorMessage.push(`Escrow ${escrow.escrowAddress} payout couldn't be done`); } } if (errorMessage.length > 0) { From b59fca620743daf36087013da83ceb1c959d7040 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Mon, 6 Feb 2023 20:50:03 +0100 Subject: [PATCH 196/216] make web3 creation dynamic and disable networks --- .../src/constants/networks.ts | 30 +++++++++---------- .../src/interfaces/networks.ts | 6 ---- .../src/interfaces/plugins.ts | 4 +-- .../recording-oracle/src/plugins/web3.ts | 9 +++++- .../recording-oracle/src/routes/index.ts | 12 ++------ .../src/services/recordingOracle.ts | 7 ++--- .../fortune/reputation-oracle/src/index.ts | 11 +++++-- 7 files changed, 39 insertions(+), 40 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/constants/networks.ts b/packages/examples/fortune/recording-oracle/src/constants/networks.ts index 4304d47fdc..b38da1eff4 100644 --- a/packages/examples/fortune/recording-oracle/src/constants/networks.ts +++ b/packages/examples/fortune/recording-oracle/src/constants/networks.ts @@ -10,7 +10,7 @@ export enum ChainId { } export const ESCROW_NETWORKS: { - [chainId in ChainId]: IEscrowNetwork; + [chainId in ChainId]?: IEscrowNetwork; } = { [ChainId.GOERLI]: { chainId: ChainId.GOERLI, @@ -19,13 +19,13 @@ export const ESCROW_NETWORKS: { factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', }, - [ChainId.POLYGON]: { - chainId: ChainId.POLYGON, - title: 'Polygon', - rpcUrl: 'https://polygon-rpc.com', - factoryAddress: '0x15D55Cb5d9Df6273B296745C3585a94574d2fDd7', - hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', - }, + // [ChainId.POLYGON]: { + // chainId: ChainId.POLYGON, + // title: 'Polygon', + // rpcUrl: 'https://polygon-rpc.com', + // factoryAddress: '0x15D55Cb5d9Df6273B296745C3585a94574d2fDd7', + // hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', + // }, [ChainId.BSC_TESTNET]: { chainId: ChainId.BSC_TESTNET, title: 'Binance Smart Chain (Testnet)', @@ -40,13 +40,13 @@ export const ESCROW_NETWORKS: { factoryAddress: '0x79aE9b3Ad106AEdc1F813AaD98f550FADd9e2254', hmtAddress: '0xc2B8bb720e5df43e6E13b84B27dF5543B3485EA4', }, - [ChainId.MOONBASE_ALPHA]: { - chainId: ChainId.MOONBASE_ALPHA, - title: 'Moonbase Alpha', - rpcUrl: 'https://rpc.api.moonbase.moonbeam.network', - factoryAddress: '0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB', - hmtAddress: '0xe4C8eC5d057EacF40060b2174627a4941a5c8127', - }, + // [ChainId.MOONBASE_ALPHA]: { + // chainId: ChainId.MOONBASE_ALPHA, + // title: 'Moonbase Alpha', + // rpcUrl: 'https://rpc.api.moonbase.moonbeam.network', + // factoryAddress: '0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB', + // hmtAddress: '0xe4C8eC5d057EacF40060b2174627a4941a5c8127', + // }, [ChainId.LOCALHOST]: { chainId: ChainId.LOCALHOST, title: 'Localhost', diff --git a/packages/examples/fortune/recording-oracle/src/interfaces/networks.ts b/packages/examples/fortune/recording-oracle/src/interfaces/networks.ts index 1560c31ac6..c72b898714 100644 --- a/packages/examples/fortune/recording-oracle/src/interfaces/networks.ts +++ b/packages/examples/fortune/recording-oracle/src/interfaces/networks.ts @@ -1,5 +1,3 @@ -import Web3 from 'web3'; - export interface IEscrowNetwork { chainId: number; title: string; @@ -7,7 +5,3 @@ export interface IEscrowNetwork { factoryAddress: string; hmtAddress: string; } - -export interface IWeb3MultiNetwork { - [chainId: number]: Web3; -} diff --git a/packages/examples/fortune/recording-oracle/src/interfaces/plugins.ts b/packages/examples/fortune/recording-oracle/src/interfaces/plugins.ts index dcb002d50d..d91665e113 100644 --- a/packages/examples/fortune/recording-oracle/src/interfaces/plugins.ts +++ b/packages/examples/fortune/recording-oracle/src/interfaces/plugins.ts @@ -1,12 +1,12 @@ import { S3Client } from '../plugins/s3'; -import { IWeb3MultiNetwork } from './networks'; import { Storage } from '../plugins/storage'; import { Escrow } from '../plugins/escrow'; import { Uniqueness } from '../plugins/uniqueness'; import { Curses } from '../plugins/curses'; +import Web3 from 'web3'; export interface IPlugin { - web3: IWeb3MultiNetwork; + web3: Web3[]; s3: S3Client; storage: Storage; escrow: Escrow; diff --git a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts index b2f1161b52..fb609f9c6f 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts @@ -5,6 +5,7 @@ import { Type } from '@sinclair/typebox'; import Web3 from 'web3'; import Ajv from 'ajv'; import { IEscrowNetwork } from '../interfaces/networks'; +import { ESCROW_NETWORKS } from '../constants/networks'; const ConfigSchema = Type.Strict( Type.Object({ @@ -22,8 +23,14 @@ const ajv = new Ajv({ class Web3Client { private privKey = process.env.ETH_PRIVATE_KEY as string; + public web3Clients: Web3[] = []; + constructor() { + Array.prototype.forEach.call(ESCROW_NETWORKS, (network) => { + this.web3Clients[network.chainId] = this.create(network); + }); + } - create(network: IEscrowNetwork, privateKey?: string) { + private create(network: IEscrowNetwork, privateKey?: string) { const ethHttpServer = network.rpcUrl as string; const web3 = new Web3(ethHttpServer); diff --git a/packages/examples/fortune/recording-oracle/src/routes/index.ts b/packages/examples/fortune/recording-oracle/src/routes/index.ts index 475333de2a..28cc09f2f2 100644 --- a/packages/examples/fortune/recording-oracle/src/routes/index.ts +++ b/packages/examples/fortune/recording-oracle/src/routes/index.ts @@ -1,4 +1,4 @@ -import { ChainId, ESCROW_NETWORKS } from '../constants/networks'; +import { ChainId } from '../constants/networks'; import { FastifyInstance, FastifyPluginAsync, FastifyRequest } from 'fastify'; import { Server } from 'http'; import { processFortunes } from '../services/recordingOracle'; @@ -34,13 +34,7 @@ const routes: FastifyPluginAsync = async (server: FastifyInstance) => { const { web3, s3, storage, escrow, curses, uniqueness } = server; const plugins: IPlugin = { - web3: { - [ChainId.POLYGON]: web3.create(ESCROW_NETWORKS[ChainId.POLYGON]), - [ChainId.POLYGON_MUMBAI]: web3.create( - ESCROW_NETWORKS[ChainId.POLYGON_MUMBAI] - ), - [ChainId.LOCALHOST]: web3.create(ESCROW_NETWORKS[ChainId.LOCALHOST]), - }, + web3: web3.web3Clients, s3, storage, escrow, @@ -48,7 +42,7 @@ const routes: FastifyPluginAsync = async (server: FastifyInstance) => { uniqueness, }; - server.post('/send-fortunes', opts, async function (request: FastifyRequest, reply) { + server.post('/send-fortunes', opts, async function (request: FastifyRequest) { const fortunes = request.body as IFortuneRequest; return await processFortunes(plugins, fortunes); }); diff --git a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts index c277828b71..0ef3374048 100644 --- a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts +++ b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts @@ -85,10 +85,9 @@ export async function processFortunes( fortune.escrowAddress ); - const { - fortunesRequired, - reputationOracleUrl - } = await getManifestByUrl(manifestUrl); + const { fortunesRequired, reputationOracleUrl } = await getManifestByUrl( + manifestUrl + ); let escrow = plugins.storage.getEscrow(fortune.escrowAddress); diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 6203454d23..9db20190a7 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -52,7 +52,7 @@ app.post('/send-fortunes', async (req, res) => { ); } }); - + if (errorMessage.length > 0) { return res.status(400).send({ message: JSON.stringify(errorMessage), @@ -68,7 +68,10 @@ app.post('/send-fortunes', async (req, res) => { web3.eth.accounts.wallet.add(account); web3.eth.defaultAccount = account.address; - const manifestUrl = await getEscrowManifestUrl(web3, escrow.escrowAddress); + const manifestUrl = await getEscrowManifestUrl( + web3, + escrow.escrowAddress + ); const { recordingOracleAddress } = await getManifest(manifestUrl); const balance = await getBalance(web3, escrow.escrowAddress); @@ -106,7 +109,9 @@ app.post('/send-fortunes', async (req, res) => { resultHash ); if (!(await bulkPaid(web3, escrow.escrowAddress))) { - errorMessage.push(`Escrow ${escrow.escrowAddress} payout couldn't be done`); + errorMessage.push( + `Escrow ${escrow.escrowAddress} payout couldn't be done` + ); } } if (errorMessage.length > 0) { From 11f3b0ce365b14237e8bd4aaa36cae2f07c52654 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 7 Feb 2023 08:59:46 +0100 Subject: [PATCH 197/216] fix dynamic web3 --- .../examples/fortune/recording-oracle/src/plugins/web3.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts index fb609f9c6f..94eba0dd85 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts @@ -5,7 +5,7 @@ import { Type } from '@sinclair/typebox'; import Web3 from 'web3'; import Ajv from 'ajv'; import { IEscrowNetwork } from '../interfaces/networks'; -import { ESCROW_NETWORKS } from '../constants/networks'; +import { ChainId, ESCROW_NETWORKS } from '../constants/networks'; const ConfigSchema = Type.Strict( Type.Object({ @@ -25,8 +25,9 @@ class Web3Client { private privKey = process.env.ETH_PRIVATE_KEY as string; public web3Clients: Web3[] = []; constructor() { - Array.prototype.forEach.call(ESCROW_NETWORKS, (network) => { - this.web3Clients[network.chainId] = this.create(network); + Object.keys(ESCROW_NETWORKS).forEach((id) => { + const chainId = Number(id) as ChainId; + this.web3Clients[chainId] = this.create(ESCROW_NETWORKS[chainId] as IEscrowNetwork); }); } From efecf9395fb9c41993cceb569e7b18dabad25ee2 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 7 Feb 2023 10:21:43 +0100 Subject: [PATCH 198/216] update max duration vercel to avoid timeout goerli --- .../examples/fortune/launcher/server/vercel.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 5cb92ece10..e422895699 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -2,16 +2,16 @@ "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", "installCommand": "yarn install", "outputDirectory": "build", - "builds": [ - { - "src": "src/index.ts", - "use": "@vercel/node" + "functions":{ + "src/index.ts": { + "runtime": "@vercel/node", + "maxDuration": "300" } - ], - "routes": [ + }, + "rewrites": [ { - "src": "/(.*)", - "dest": "src/index.ts" + "source": "/(.*)", + "destination": "src/index.ts" } ] } From 03276852553c2777923c7f253accf0118a19015d Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 7 Feb 2023 10:29:28 +0100 Subject: [PATCH 199/216] fix vercel config --- packages/examples/fortune/launcher/server/vercel.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index e422895699..a8a313a0ff 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -2,9 +2,8 @@ "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", "installCommand": "yarn install", "outputDirectory": "build", - "functions":{ + "functions": { "src/index.ts": { - "runtime": "@vercel/node", "maxDuration": "300" } }, From d618aceab10b7f3e6beaf13f94a46b3c7b3aa699 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 7 Feb 2023 10:43:28 +0100 Subject: [PATCH 200/216] test config --- packages/examples/fortune/launcher/server/vercel.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index a8a313a0ff..1475be7ae7 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -4,7 +4,8 @@ "outputDirectory": "build", "functions": { "src/index.ts": { - "maxDuration": "300" + "runtime": "@vercel/node", + "maxDuration": "60" } }, "rewrites": [ From 221408d16983a26d4b97b837345ed34578e11c50 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 7 Feb 2023 10:51:34 +0100 Subject: [PATCH 201/216] undo config changes --- .../examples/fortune/launcher/server/vercel.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/examples/fortune/launcher/server/vercel.json b/packages/examples/fortune/launcher/server/vercel.json index 1475be7ae7..5cb92ece10 100644 --- a/packages/examples/fortune/launcher/server/vercel.json +++ b/packages/examples/fortune/launcher/server/vercel.json @@ -2,16 +2,16 @@ "buildCommand": "yarn workspace @human-protocol/job-launcher-server build", "installCommand": "yarn install", "outputDirectory": "build", - "functions": { - "src/index.ts": { - "runtime": "@vercel/node", - "maxDuration": "60" + "builds": [ + { + "src": "src/index.ts", + "use": "@vercel/node" } - }, - "rewrites": [ + ], + "routes": [ { - "source": "/(.*)", - "destination": "src/index.ts" + "src": "/(.*)", + "dest": "src/index.ts" } ] } From 9d172044b91ddb5b4652d336c58cf086b7275f4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 7 Feb 2023 11:10:31 +0100 Subject: [PATCH 202/216] Fix lint problems --- .../fortune/launcher/client/src/components/FundingMethod.tsx | 1 + packages/examples/fortune/launcher/server/src/index.ts | 2 ++ .../examples/fortune/launcher/server/src/plugins/escrow.ts | 1 + packages/examples/fortune/launcher/server/src/plugins/s3.ts | 1 + .../examples/fortune/launcher/server/src/routes/payments.ts | 1 + packages/examples/fortune/recording-oracle/src/index.ts | 2 ++ packages/examples/fortune/recording-oracle/src/plugins/s3.ts | 1 + .../examples/fortune/recording-oracle/src/plugins/web3.ts | 4 +++- .../fortune/recording-oracle/src/services/recordingOracle.ts | 2 +- .../recording-oracle/src/services/reputationOracleClient.ts | 3 ++- packages/examples/fortune/reputation-oracle/src/index.ts | 1 + 11 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/launcher/client/src/components/FundingMethod.tsx b/packages/examples/fortune/launcher/client/src/components/FundingMethod.tsx index 9341b9b04e..7b00b0ed89 100644 --- a/packages/examples/fortune/launcher/client/src/components/FundingMethod.tsx +++ b/packages/examples/fortune/launcher/client/src/components/FundingMethod.tsx @@ -25,6 +25,7 @@ export const FundingMethod = ({ onChange }: FundingMethodProps) => { setWalletModalOpen(false); onChange('crypto'); } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [isConnected]); return ( diff --git a/packages/examples/fortune/launcher/server/src/index.ts b/packages/examples/fortune/launcher/server/src/index.ts index d9037d5a6d..a032331619 100644 --- a/packages/examples/fortune/launcher/server/src/index.ts +++ b/packages/examples/fortune/launcher/server/src/index.ts @@ -1,6 +1,7 @@ import getServer from './server'; process.on('unhandledRejection', (err) => { + // eslint-disable-next-line no-console console.error(err); process.exit(1); }); @@ -14,6 +15,7 @@ const startServer = async () => { for (const signal of ['SIGINT', 'SIGTERM']) { process.on(signal, () => server.close().then((err) => { + // eslint-disable-next-line no-console console.log(`close application on ${signal}`); process.exit(err ? 1 : 0); }) diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index f8a987f8d7..be389bfab1 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -132,6 +132,7 @@ class Escrow { } addOraclesData(escrow: typeof escrowSchema.properties) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const data = escrow as any; data.recordingOracleAddress = this.recOracleAddress; data.reputationOracleAddress = this.repOracleAddress; diff --git a/packages/examples/fortune/launcher/server/src/plugins/s3.ts b/packages/examples/fortune/launcher/server/src/plugins/s3.ts index bb3084598d..17d7d6fe02 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/s3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/s3.ts @@ -42,6 +42,7 @@ class S3Client { }); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any async uploadManifest(escrowData: any, escrowAddress: string) { const fileName = `${escrowAddress}-manifest.json`; const bucketExists = await this.s3Client.bucketExists(this.s3BucketName); diff --git a/packages/examples/fortune/launcher/server/src/routes/payments.ts b/packages/examples/fortune/launcher/server/src/routes/payments.ts index 7187cd5bd4..57f39a9da2 100644 --- a/packages/examples/fortune/launcher/server/src/routes/payments.ts +++ b/packages/examples/fortune/launcher/server/src/routes/payments.ts @@ -11,6 +11,7 @@ export const cryptoPayment: FastifyPluginAsync = async (server) => { async function (request) { const txHash = request.body; + // eslint-disable-next-line no-console console.log(txHash); return true; diff --git a/packages/examples/fortune/recording-oracle/src/index.ts b/packages/examples/fortune/recording-oracle/src/index.ts index d9037d5a6d..a032331619 100644 --- a/packages/examples/fortune/recording-oracle/src/index.ts +++ b/packages/examples/fortune/recording-oracle/src/index.ts @@ -1,6 +1,7 @@ import getServer from './server'; process.on('unhandledRejection', (err) => { + // eslint-disable-next-line no-console console.error(err); process.exit(1); }); @@ -14,6 +15,7 @@ const startServer = async () => { for (const signal of ['SIGINT', 'SIGTERM']) { process.on(signal, () => server.close().then((err) => { + // eslint-disable-next-line no-console console.log(`close application on ${signal}`); process.exit(err ? 1 : 0); }) diff --git a/packages/examples/fortune/recording-oracle/src/plugins/s3.ts b/packages/examples/fortune/recording-oracle/src/plugins/s3.ts index ab285e638c..0a468edf66 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/s3.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/s3.ts @@ -43,6 +43,7 @@ export class S3Client { }); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any async saveData(fileName: string, data: any) { const bucketExists = await this.s3Client.bucketExists(this.s3BucketName); if (!bucketExists) { diff --git a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts index 94eba0dd85..9bb2decc88 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts @@ -27,7 +27,9 @@ class Web3Client { constructor() { Object.keys(ESCROW_NETWORKS).forEach((id) => { const chainId = Number(id) as ChainId; - this.web3Clients[chainId] = this.create(ESCROW_NETWORKS[chainId] as IEscrowNetwork); + this.web3Clients[chainId] = this.create( + ESCROW_NETWORKS[chainId] as IEscrowNetwork + ); }); } diff --git a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts index 0ef3374048..35f2f0dfea 100644 --- a/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts +++ b/packages/examples/fortune/recording-oracle/src/services/recordingOracle.ts @@ -150,7 +150,7 @@ export async function processFortunes( fortunes: escrow.fortunes, }; const fortuneResultsUrl = await saveFortuneResults(plugins, fortuneResults); - console.log('Fortune Results Url: ', fortuneResultsUrl); + // console.log('Fortune Results Url: ', fortuneResultsUrl); const fortuneResultsHash = crypto .createHash('sha256') diff --git a/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts b/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts index 636512dfd3..8ca180e41c 100644 --- a/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts +++ b/packages/examples/fortune/recording-oracle/src/services/reputationOracleClient.ts @@ -10,6 +10,7 @@ export async function sendFortunes( const url = reputationOracleUrl.replace(/\/+$/, ''); return await axios.post(`${url}/send-fortunes`, data); } catch (e) { - console.log('Reputation Oracle error: ', e); + // eslint-disable-next-line no-console + console.error('Reputation Oracle error: ', e); } } diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 9db20190a7..352f79eba3 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -28,6 +28,7 @@ app.use(bodyParser.json()); app.post('/send-fortunes', async (req, res) => { try { const errorMessage: string[] = []; + // eslint-disable-next-line @typescript-eslint/no-explicit-any req.body.forEach((escrow: any) => { const fortunes = escrow.fortunes; const chainId = Number(escrow.chainId) as ChainId; From b25a850f570f6ede6527160d6c139f51eef6e803 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 7 Feb 2023 12:23:47 +0100 Subject: [PATCH 203/216] fix fortune tests --- packages/examples/fortune/recording-oracle/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/examples/fortune/recording-oracle/package.json b/packages/examples/fortune/recording-oracle/package.json index c4dfaa71d0..9605f98c05 100644 --- a/packages/examples/fortune/recording-oracle/package.json +++ b/packages/examples/fortune/recording-oracle/package.json @@ -11,7 +11,7 @@ "build": "tsc", "start:prod": "ts-node build/src/index.js", "start": "ts-node ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 5 && cross-env RPC_PORT=8547 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 6 && cross-env RPC_PORT=8547 yarn workspace @human-protocol/core deploy:local && vitest --run\"" }, "repository": { "type": "git", From 18bef5467f188c93234883489c43d4be015d5ea7 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Tue, 7 Feb 2023 13:13:53 +0100 Subject: [PATCH 204/216] fix results files content --- packages/examples/fortune/reputation-oracle/src/index.ts | 2 +- .../examples/fortune/reputation-oracle/src/services/s3.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 352f79eba3..75675b306c 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -97,7 +97,7 @@ app.post('/send-fortunes', async (req, res) => { // TODO calculate the URL hash(?) const resultsUrl = await uploadResults( - Object.keys(fortunes), + escrow, escrow.escrowAddress ); const resultHash = resultsUrl; diff --git a/packages/examples/fortune/reputation-oracle/src/services/s3.ts b/packages/examples/fortune/reputation-oracle/src/services/s3.ts index a7ebf3962d..559c77dffd 100644 --- a/packages/examples/fortune/reputation-oracle/src/services/s3.ts +++ b/packages/examples/fortune/reputation-oracle/src/services/s3.ts @@ -14,8 +14,8 @@ const minioClient = new Minio.Client({ useSSL: false, }); -export async function uploadResults(fortunes: string[], escrowAddress: string) { - const fileName = `${escrowAddress}.json`; +export async function uploadResults(result: string[], escrowAddress: string) { + const fileName = `${escrowAddress}-result.json`; const bucketExists = await minioClient.bucketExists(minioBucketName); if (!bucketExists) { @@ -24,7 +24,7 @@ export async function uploadResults(fortunes: string[], escrowAddress: string) { await minioClient.putObject( minioBucketName, fileName, - JSON.stringify(fortunes), + JSON.stringify(result), { 'Content-Type': 'application/json' } ); From 99a68a98c6cf9b65eed011b7bdd10137ec54d0d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 7 Feb 2023 16:09:57 +0100 Subject: [PATCH 205/216] Fix recording test --- packages/examples/fortune/recording-oracle/package.json | 2 +- packages/examples/fortune/reputation-oracle/src/index.ts | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/examples/fortune/recording-oracle/package.json b/packages/examples/fortune/recording-oracle/package.json index 9605f98c05..3b247b3e80 100644 --- a/packages/examples/fortune/recording-oracle/package.json +++ b/packages/examples/fortune/recording-oracle/package.json @@ -11,7 +11,7 @@ "build": "tsc", "start:prod": "ts-node build/src/index.js", "start": "ts-node ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 6 && cross-env RPC_PORT=8547 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 10 && cross-env RPC_PORT=8547 yarn workspace @human-protocol/core deploy:local && vitest --run\"" }, "repository": { "type": "git", diff --git a/packages/examples/fortune/reputation-oracle/src/index.ts b/packages/examples/fortune/reputation-oracle/src/index.ts index 75675b306c..79ba3f20ae 100644 --- a/packages/examples/fortune/reputation-oracle/src/index.ts +++ b/packages/examples/fortune/reputation-oracle/src/index.ts @@ -96,10 +96,7 @@ app.post('/send-fortunes', async (req, res) => { ); // TODO calculate the URL hash(?) - const resultsUrl = await uploadResults( - escrow, - escrow.escrowAddress - ); + const resultsUrl = await uploadResults(escrow, escrow.escrowAddress); const resultHash = resultsUrl; await bulkPayOut( web3, From 1376f293179783eb917a5ef567dba7461e618463 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Fri, 3 Feb 2023 14:23:39 -0500 Subject: [PATCH 206/216] update dependencies --- packages/core/package.json | 14 +++-- packages/sdk/typescript/subgraph/package.json | 3 +- yarn.lock | 61 ++++++------------- 3 files changed, 28 insertions(+), 50 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index d1da61301a..20ae4243b8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -41,9 +41,10 @@ "devDependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/providers": "^5.7.2", - "@nomicfoundation/hardhat-chai-matchers": "^1.0.4", - "@nomicfoundation/hardhat-toolbox": "^2.0.0", - "@nomiclabs/hardhat-ethers": "^2.2.1", + "@nomicfoundation/hardhat-chai-matchers": "^1.0.5", + "@nomicfoundation/hardhat-network-helpers": "^1.0.7", + "@nomicfoundation/hardhat-toolbox": "^2.0.1", + "@nomiclabs/hardhat-ethers": "^2.2.2", "@nomiclabs/hardhat-etherscan": "^3.1.2", "@openzeppelin/contracts": "^4.8.0", "@openzeppelin/contracts-upgradeable": "^4.8.0", @@ -53,15 +54,16 @@ "@typechain/hardhat": "^6.1.4", "@types/chai": "^4.3.3", "@types/mocha": "^10.0.0", - "chai": "^4.3.6", - "hardhat": "^2.12.2", + "chai": "^4.3.7", + "ethers": "^5.0.0", + "hardhat": "^2.12.6", "hardhat-abi-exporter": "^2.10.1", "hardhat-contract-sizer": "^2.6.1", "hardhat-gas-reporter": "^1.0.9", "openpgp": "5.5.0", "prettier-plugin-solidity": "^1.0.0-beta.24", "solidity-coverage": "^0.8.2", - "tenderly": "^0.0.2", + "tenderly": "^0.3.0", "typechain": "^8.1.1", "xdeployer": "1.1.20" }, diff --git a/packages/sdk/typescript/subgraph/package.json b/packages/sdk/typescript/subgraph/package.json index e1760b15fb..cbf81e4775 100644 --- a/packages/sdk/typescript/subgraph/package.json +++ b/packages/sdk/typescript/subgraph/package.json @@ -39,9 +39,10 @@ "devDependencies": { "@graphprotocol/graph-cli": "0.37.1", "@graphprotocol/graph-ts": "^0.27.0", - "@graphql-eslint/eslint-plugin": "^3.13.0", + "@graphql-eslint/eslint-plugin": "^3.15.0", "@human-protocol/core": "workspace:*", "assemblyscript": "^0.25.1", + "graphql": "^16.6.0", "matchstick-as": "^0.5.0", "mustache": "^4.2.0" }, diff --git a/yarn.lock b/yarn.lock index 68d5d0ca36..e1ae0e7af6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2024,7 +2024,7 @@ dependencies: assemblyscript "0.19.10" -"@graphql-eslint/eslint-plugin@^3.13.0": +"@graphql-eslint/eslint-plugin@^3.15.0": version "3.15.0" resolved "https://registry.yarnpkg.com/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.15.0.tgz#9d2db9a69836a24e608165ae9c8dafb34e73d431" integrity sha512-0sCHsbD07sCAHLKr/89i0ZcKasAbPps9OcWcvBtBoyuyvINWQlTrG0eqIwo4n5pOdNLw1yCfk+R7AwRYJ8m+MQ== @@ -3242,7 +3242,7 @@ mcl-wasm "^0.7.1" rustbn.js "~0.2.0" -"@nomicfoundation/hardhat-chai-matchers@^1.0.4": +"@nomicfoundation/hardhat-chai-matchers@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.5.tgz#75d08bd9bd84a3cb7950be6bd27171a294516b01" integrity sha512-+W5C/+5FHI2xBajUN9THSNc1UP6FUsA7LeLmfnaC9VMi/50/DEjjxd8OmizEXgV1Bjck7my4NVQLL1Ti39FkpA== @@ -3254,7 +3254,14 @@ deep-eql "^4.0.1" ordinal "^1.0.3" -"@nomicfoundation/hardhat-toolbox@^2.0.0": +"@nomicfoundation/hardhat-network-helpers@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.7.tgz#9103be2b359899a8b7996f54df12a1b7977367e3" + integrity sha512-X+3mNvn8B7BY5hpIaLO+TrfzWq12bpux+ajGGdmdcfC78NXmYmOZkAtiz1QZx1YIZGMS1LaXzPXyBExxKFpCaw== + dependencies: + ethereumjs-util "^7.1.4" + +"@nomicfoundation/hardhat-toolbox@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.1.tgz#3d8c620a54df2c0086c9109fb0f987bf29329deb" integrity sha512-/pr8m9xlqiNlq6fXv4hEPNwdNwUhysoB2qbDCKqERfPpq34EydUQTC3Vis4aIea8RLwSrU8sDXFdv4TQxYstKw== @@ -3325,7 +3332,7 @@ "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.0" "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.0" -"@nomiclabs/hardhat-ethers@^2.1.1", "@nomiclabs/hardhat-ethers@^2.2.1": +"@nomiclabs/hardhat-ethers@^2.1.1", "@nomiclabs/hardhat-ethers@^2.2.2": version "2.2.2" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.2.tgz#812d48929c3bf8fe840ec29eab4b613693467679" integrity sha512-NLDlDFL2us07C0jB/9wzvR0kuLivChJWCXTKcj3yqjZqMoYp7g7wwS157F70VHx/+9gHIBGzak5pKDwG8gEefA== @@ -7998,7 +8005,7 @@ chai-as-promised@^7.1.1: dependencies: check-error "^1.0.2" -chai@^4.3.6, chai@^4.3.7: +chai@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== @@ -9848,9 +9855,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.4.284: - version "1.4.285" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.285.tgz#803a776dc24ce1bf5c2752630e0443d51002b95d" - integrity sha512-47o4PPgxfU1KMNejz+Dgaodf7YTcg48uOfV1oM6cs3adrl2+7R+dHkt3Jpxqo0LRCbGJEzTKMUt0RdvByb/leg== + version "1.4.286" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz#0e039de59135f44ab9a8ec9025e53a9135eba11f" + integrity sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ== elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" @@ -11141,7 +11148,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.4, 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== @@ -11167,7 +11174,7 @@ ethers@^4.0.40: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@^5.5.3, ethers@^5.6.8, ethers@^5.7.0, ethers@^5.7.2: +ethers@^5.0.0, ethers@^5.5.3, ethers@^5.6.8, ethers@^5.7.0, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -12332,23 +12339,6 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -got@11.8.3: - version "11.8.3" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.3.tgz#f496c8fdda5d729a90b4905d2b07dbd148170770" - integrity sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - got@12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" @@ -12537,7 +12527,7 @@ hardhat-gas-reporter@^1.0.9: eth-gas-reporter "^0.2.25" sha1 "^1.1.1" -hardhat@^2.10.2, hardhat@^2.12.2: +hardhat@^2.10.2, hardhat@^2.12.2, hardhat@^2.12.6: version "2.12.6" resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.6.tgz#ea3c058bbd81850867389d10f76037cfa52a0019" integrity sha512-0Ent1O5DsPgvaVb5sxEgsQ3bJRt/Ex92tsoO+xjoNH2Qc4bFmhI5/CHVlFikulalxOPjNmw5XQ2vJFuVQFESAA== @@ -21088,21 +21078,6 @@ tempy@^0.6.0: type-fest "^0.16.0" unique-string "^2.0.0" -tenderly@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/tenderly/-/tenderly-0.0.2.tgz#ffc1412aa1b55b8192f4562ee5da1de45c371ea4" - integrity sha512-nIr0hEG3GNlJHvPyhgBTQih2KAgy5YNtzK3PR18ZT5tIgjmOqczYgUnMglymR5CRxf1yodPnSxDZ1vVoolHLQw== - dependencies: - axios "^0.27.2" - cli-table3 "^0.6.2" - commander "^9.4.0" - express "^4.18.1" - got "11.8.3" - hyperlinker "^1.0.0" - js-yaml "^4.1.0" - open "^8.4.0" - prompts "^2.4.2" - tenderly@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/tenderly/-/tenderly-0.3.0.tgz#0c24e33b21b9b546eb8ff545589e38c0b08e9afb" From 03763bef769837640735dc32d62f59d57929b35a Mon Sep 17 00:00:00 2001 From: m00n620 Date: Mon, 6 Feb 2023 11:37:50 -0500 Subject: [PATCH 207/216] update solved tasks till Jan 31 --- .../src/components/SolvedTasks/index.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/apps/escrow-dashboard/src/components/SolvedTasks/index.tsx b/packages/apps/escrow-dashboard/src/components/SolvedTasks/index.tsx index fc5f8b24ca..082c78efae 100644 --- a/packages/apps/escrow-dashboard/src/components/SolvedTasks/index.tsx +++ b/packages/apps/escrow-dashboard/src/components/SolvedTasks/index.tsx @@ -1,4 +1,5 @@ import { Box, Typography } from '@mui/material'; +import dayjs from 'dayjs'; import numeral from 'numeral'; import * as React from 'react'; @@ -6,12 +7,13 @@ import tasksSvg from 'src/assets/tasks.svg'; import ViewTitle from 'src/components/ViewTitle'; const SOLVED_TASKS = [ - { date: '2022-07', value: 2181348 }, - { date: '2022-08', value: 2537442 }, - { date: '2022-09', value: 7014852 }, - { date: '2022-10', value: 17189000 }, - { date: '2022-11', value: 97000578 }, - { date: '2022-12', value: 247392072 }, + { date: '2022-07-31', value: 2181348 }, + { date: '2022-08-31', value: 2537442 }, + { date: '2022-09-30', value: 7014852 }, + { date: '2022-10-31', value: 17189000 }, + { date: '2022-11-30', value: 97000578 }, + { date: '2022-12-31', value: 247392072 }, + { date: '2023-01-31', value: 209000000 }, ]; export const SolvedTasksContainer: React.FC<{}> = (): React.ReactElement => { @@ -29,7 +31,10 @@ export const SolvedTasksContainer: React.FC<{}> = (): React.ReactElement => { fontSize={14} sx={{ mt: 1.5, ml: 2 }} > - till December 31, 2022 + till{' '} + {dayjs(SOLVED_TASKS[SOLVED_TASKS.length - 1].date).format( + 'MMM D, YYYY' + )}
Date: Wed, 8 Feb 2023 11:43:51 +0100 Subject: [PATCH 208/216] deploy staking and proxy contracts to bsc mainnet --- .github/workflows/cd-subgraph.yaml | 2 +- CONTRACTS_LIST.md | 232 +++++++++--------- .../escrow-dashboard/src/constants/index.ts | 4 +- packages/core/README.md | 2 +- packages/core/hardhat.config.ts | 9 +- packages/core/scripts/deploy-proxies.ts | 25 +- .../launcher/client/src/constants/index.ts | 2 +- .../launcher/server/src/constants/networks.ts | 2 +- .../src/constants/constants.ts | 2 +- .../subgraph/config/{bsc.json => bsc-v1.json} | 14 +- 10 files changed, 161 insertions(+), 133 deletions(-) rename packages/sdk/typescript/subgraph/config/{bsc.json => bsc-v1.json} (50%) diff --git a/.github/workflows/cd-subgraph.yaml b/.github/workflows/cd-subgraph.yaml index 926a76fa8e..b96ee703de 100644 --- a/.github/workflows/cd-subgraph.yaml +++ b/.github/workflows/cd-subgraph.yaml @@ -21,7 +21,7 @@ jobs: - name: moonbeam graph: moonbeam - name: bsc - graph: bsc + graph: bsc-v1 - name: chapel graph: bsctest-v1 - name: mumbai diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index d4518ac79b..0c009ec154 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -1,95 +1,95 @@ # Contract addresses by network -| Polygon (Mainnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2021/10/13 | HMToken | 0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF | N/A | -|2022/02/28 | EscrowFactory | 0xe44D7eb960f24797D36FAdD8a8FfF29C76375Ef0 | 0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB | -| | Staking | 0xC2163A0928034e020f0d31e1171Ba0D6d9AfFB6c | 0xcbAd56bE3f504E98bd70875823d3CC0242B7bB29 | -| | RewardPool | 0x25E53A6D48A2744273C082e55bA5CCFCfD80f9e1 | 0xa8e32d777a3839440cc7c24D591A64B9481753B3 | -|2022/03/01 | EthKVStore | 0x35Cf4beBD58F9C8D75B9eA2599479b6C173d406F | N/A | -| | Reputation | N/A | N/A | - -| Polygon Mumbai (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/04/25 | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | -|2023/01/26 | EscrowFactory | 0xd319e761b632E39234E68247D307818a20158890 | 0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d | -|2023/01/26 | Staking | 0x19Fc3e859C1813ac9427a7a78BeB9ae102CE96d3 | 0x7Fd3dF914E7b6Bd96B4c744Df32183b51368Bfac | -|2023/01/26 | RewardPool | 0x295514FC4C812Db24C3277d6D3175956AdEA273C | 0xf0145eD99AC3c4f877aDa7dA4D1E059ec9116BAE | -|2023/01/26 | EthKVStore | 0xD7F61E812e139a5a02eDae9Dfec146E1b8eA3807 | N/A | -|2023/01/26 | Reputation | 0x7B9f9Dc6c157899C1Eb1c6B86f94855cC2F537dF | 0xC522463d36f76b881bE66484e3068F11e7038Ace | - -| Goerli (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/10/12 | HMToken | 0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317 | N/A | -|2023/01/30 | EscrowFactory | 0x5D65C42cF4a140863744889BAd07f246C0211754 | 0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c | -|2023/01/30 | Staking | 0x5e622FF522D81aa426f082bDD95210BC25fCA7Ed | 0xf46B45Df3d956369726d8Bd93Ba33963Ab692920 | -|2023/01/30 | RewardPool | 0x6478312bE22FeE34a366d8e945d4dBd97388a306 | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | -|2023/01/30 | EthKVStore | 0xc9Fe39c4b6e1d7A2991355Af159956982DADf842 | N/A | -|2023/01/30 | Reputation | 0x1BA4F1d2dA691fF0445345436b9306B29eEd3913 | 0x6B220A6306D8D86C9878A1FBb3F49707b3E2b405 | - -| Rinkeby (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2020/09/15 | HMToken | 0x4dCf5ac4509888714dd43A5cCc46d7ab389D9c23 | N/A | -|2021/03/05 | EscrowFactory | 0x925B24444511c86F4d4E63141D8Be0A025E2dca4 | | -| | Staking | | | -| | RewardPool | | | -| | EthKVStore | | N/A | -| | Reputation | | | - -| Binance SC (Mainnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/08/18 | HMToken | 0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7 | N/A | -|2022/08/23 | EscrowFactory | 0xc88bC422cAAb2ac8812de03176402dbcA09533f4 | | -| | Staking | | | -| | RewardPool | | | -|2022/08/23 | EthKVStore | 0x8340412Ed68BcF53a7Da72BFFc1E2E74CfdE74D0 | N/A | -| | Reputation | | | - -| Binance SC (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2023/01/27 | HMToken | 0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d | N/A | -|2023/01/27 | EscrowFactory | 0xD8c35adC3b386d092846a93015220b7Fe8efD938 | 0x2bfA592DBDaF434DDcbb893B1916120d181DAD18 | -|2023/01/27 | Staking | 0x854EC65E9e5e973C458FC2c92F6E0CbD403f5b95 | 0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18 | -|2023/01/27 | RewardPool | 0xF09f451eC04cAb1b1FAe98C86F45291B00E52b03 | 0xB0A0500103eCEc431b73F6BAd923F0a2774E6e29 | -|2023/01/27 | EthKVStore | 0x3aD4B091E054f192a822D1406f4535eAd38580e4 | N/A | -|2023/01/27 | Reputation | 0x4DCB3906A65B77f6a588087652E6Dd9685d1F67f | 0xb8F62639aA3DD51A39d6AACD969363e7F87dcc98 | - -| Moonbeam (Mainnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/05/26 | HMToken | 0x3b25BC1dC591D24d60560d0135D6750A561D4764 | N/A | -|2022/06/01 | EscrowFactory | 0x98108c28B7767a52BE38B4860832dd4e11A7ecad | | -| | Staking | | | -| | RewardPool | | | -|2022/06/01 | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | -| | Reputation | | | - -| Moonbase Alpha (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/05/31 | HMToken | 0xe4C8eC5d057EacF40060b2174627a4941a5c8127 | N/A | -|2023/01/30 | EscrowFactory | 0xD8c35adC3b386d092846a93015220b7Fe8efD938 | 0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB | -|2023/01/30 | Staking | 0x854EC65E9e5e973C458FC2c92F6E0CbD403f5b95 | 0x56C2ba540726ED4f46E7a134b6b9Ee9C867FcF92 | -|2023/01/30 | RewardPool | 0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18 | 0x2bfA592DBDaF434DDcbb893B1916120d181DAD18 | -|2023/01/30 | EthKVStore | 0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d | N/A | -|2023/01/30 | Reputation | 0xF09f451eC04cAb1b1FAe98C86F45291B00E52b03 | 0xB0A0500103eCEc431b73F6BAd923F0a2774E6e29 | - -| Avalanche (Mainnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/09/29 | HMToken | 0x12365293cb6477d4fc2686e46bb97e3fb64f1550 | N/A | -|2022/12/03 | EscrowFactory | 0x9767a578ba7a5FA1563c8229943cB01cd8446BB4 | | -| | Staking | | | -| | RewardPool | | | -|2022/11/17 | EthKVStore | 0x4B79eaD28F52eD5686bf0e379717e85fc7aD10Df | N/A | -| | Reputation | | | - -| Avalanche Fuji (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/10/23 | HMToken | 0x9406d5c635AD22b0d76c75E52De57A2177919ca3 | N/A | -|2022/10/24 | EscrowFactory | 0xfb4469201951C3B9a7F1996c477cb7BDBEcE0A88 | | -| | Staking | | | -| | RewardPool | | | -|2022/10/24 | EthKVStore | 0xd232c1426CF0653cE8a71DC98bCfDf10c471c114 | N/A | -| | Reputation | | | +|🟢 Polygon (Mainnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2021/10/13 | HMToken | 0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF | N/A | +|2023/02/03 | EscrowFactory | 0xe44D7eb960f24797D36FAdD8a8FfF29C76375Ef0 | 0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB | +|2023/02/03 | Staking | 0xC2163A0928034e020f0d31e1171Ba0D6d9AfFB6c | 0xcbAd56bE3f504E98bd70875823d3CC0242B7bB29 | +|2023/02/03 | RewardPool | 0x25E53A6D48A2744273C082e55bA5CCFCfD80f9e1 | 0xa8e32d777a3839440cc7c24D591A64B9481753B3 | +|2023/02/03 | EthKVStore | 0x35Cf4beBD58F9C8D75B9eA2599479b6C173d406F | N/A | +| | Reputation | N/A | N/A | + +|🟠 Polygon Mumbai (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/04/25 | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | +|2023/01/26 | EscrowFactory | 0xd319e761b632E39234E68247D307818a20158890 | 0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d | +|2023/01/26 | Staking | 0x19Fc3e859C1813ac9427a7a78BeB9ae102CE96d3 | 0x7Fd3dF914E7b6Bd96B4c744Df32183b51368Bfac | +|2023/01/26 | RewardPool | 0x295514FC4C812Db24C3277d6D3175956AdEA273C | 0xf0145eD99AC3c4f877aDa7dA4D1E059ec9116BAE | +|2023/01/26 | EthKVStore | 0xD7F61E812e139a5a02eDae9Dfec146E1b8eA3807 | N/A | +|2023/01/26 | Reputation | 0x7B9f9Dc6c157899C1Eb1c6B86f94855cC2F537dF | 0xC522463d36f76b881bE66484e3068F11e7038Ace | + +|🟠 Goerli (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/10/12 | HMToken | 0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317 | N/A | +|2023/01/30 | EscrowFactory | 0x5D65C42cF4a140863744889BAd07f246C0211754 | 0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c | +|2023/01/30 | Staking | 0x5e622FF522D81aa426f082bDD95210BC25fCA7Ed | 0xf46B45Df3d956369726d8Bd93Ba33963Ab692920 | +|2023/01/30 | RewardPool | 0x6478312bE22FeE34a366d8e945d4dBd97388a306 | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | +|2023/01/30 | EthKVStore | 0xc9Fe39c4b6e1d7A2991355Af159956982DADf842 | N/A | +|2023/01/30 | Reputation | 0x1BA4F1d2dA691fF0445345436b9306B29eEd3913 | 0x6B220A6306D8D86C9878A1FBb3F49707b3E2b405 | + +|🟠 Rinkeby (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2020/09/15 | HMToken | 0x4dCf5ac4509888714dd43A5cCc46d7ab389D9c23 | N/A | +|2021/03/05 | EscrowFactory | 0x925B24444511c86F4d4E63141D8Be0A025E2dca4 | | +| | Staking | | | +| | RewardPool | | | +| | EthKVStore | | N/A | +| | Reputation | | | + +|🟢 Binance SC (Mainnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/08/18 | HMToken | 0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7 | N/A | +|2023/02/08 | EscrowFactory | 0xe44D7eb960f24797D36FAdD8a8FfF29C76375Ef0 | 0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a | +|2023/02/08 | Staking | 0xC2163A0928034e020f0d31e1171Ba0D6d9AfFB6c | 0x05398211bA2046E296fBc9a9D3EB49e3F15C3123 | +|2023/02/08 | RewardPool | 0x25E53A6D48A2744273C082e55bA5CCFCfD80f9e1 | 0x4A5963Dd6792692e9147EdC7659936b96251917a | +|2023/02/08 | EthKVStore | 0x70671167176C4934204B1C7e97F5e86695857ef2 | N/A | +| | Reputation | N/A | N/A | + +|🟠 Binance SC (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2023/01/27 | HMToken | 0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d | N/A | +|2023/01/27 | EscrowFactory | 0xD8c35adC3b386d092846a93015220b7Fe8efD938 | 0x2bfA592DBDaF434DDcbb893B1916120d181DAD18 | +|2023/01/27 | Staking | 0x854EC65E9e5e973C458FC2c92F6E0CbD403f5b95 | 0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18 | +|2023/01/27 | RewardPool | 0xF09f451eC04cAb1b1FAe98C86F45291B00E52b03 | 0xB0A0500103eCEc431b73F6BAd923F0a2774E6e29 | +|2023/01/27 | EthKVStore | 0x3aD4B091E054f192a822D1406f4535eAd38580e4 | N/A | +|2023/01/27 | Reputation | 0x4DCB3906A65B77f6a588087652E6Dd9685d1F67f | 0xb8F62639aA3DD51A39d6AACD969363e7F87dcc98 | + +|🟢 Moonbeam (Mainnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/05/26 | HMToken | 0x3b25BC1dC591D24d60560d0135D6750A561D4764 | N/A | +|2022/06/01 | EscrowFactory | 0x98108c28B7767a52BE38B4860832dd4e11A7ecad | | +| | Staking | | | +| | RewardPool | | | +|2022/06/01 | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | +| | Reputation | | | + +|🟠 Moonbase Alpha (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/05/31 | HMToken | 0xe4C8eC5d057EacF40060b2174627a4941a5c8127 | N/A | +|2023/01/30 | EscrowFactory | 0xD8c35adC3b386d092846a93015220b7Fe8efD938 | 0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB | +|2023/01/30 | Staking | 0x854EC65E9e5e973C458FC2c92F6E0CbD403f5b95 | 0x56C2ba540726ED4f46E7a134b6b9Ee9C867FcF92 | +|2023/01/30 | RewardPool | 0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18 | 0x2bfA592DBDaF434DDcbb893B1916120d181DAD18 | +|2023/01/30 | EthKVStore | 0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d | N/A | +|2023/01/30 | Reputation | 0xF09f451eC04cAb1b1FAe98C86F45291B00E52b03 | 0xB0A0500103eCEc431b73F6BAd923F0a2774E6e29 | + +|🟢 Avalanche (Mainnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/09/29 | HMToken | 0x12365293cb6477d4fc2686e46bb97e3fb64f1550 | N/A | +|2022/12/03 | EscrowFactory | 0x9767a578ba7a5FA1563c8229943cB01cd8446BB4 | | +| | Staking | | | +| | RewardPool | | | +|2022/11/17 | EthKVStore | 0x4B79eaD28F52eD5686bf0e379717e85fc7aD10Df | N/A | +| | Reputation | | | + +|🟠 Avalanche Fuji (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/10/23 | HMToken | 0x9406d5c635AD22b0d76c75E52De57A2177919ca3 | N/A | +|2022/10/24 | EscrowFactory | 0xfb4469201951C3B9a7F1996c477cb7BDBEcE0A88 | | +| | Staking | | | +| | RewardPool | | | +|2022/10/24 | EthKVStore | 0xd232c1426CF0653cE8a71DC98bCfDf10c471c114 | N/A | +| | Reputation | | | @@ -97,25 +97,35 @@ # Old contracts -| Polygon Mumbai (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/04/25 | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | -|2022/04/25 | EscrowFactory | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | -|2022/04/29 | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | -|2023/01/17 | Staking | 0x76E2EF2E177097E0b296E1e305d69Fe8Bae5f774 | 0xf421fD3eB97982C205966ebB514Ab2E435c6d5B7 | -|2023/01/17 | EthKVStore | 0x459EE403d060B84b5014605D6739cCFed32AFb96 | N/A | - -| Binance SC (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/10/12 | HMToken | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | N/A | -|2022/10/12 | EscrowFactory | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | -|2022/08/12 | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | - -| Goerli (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/10/12 | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | - -| Moonbase Alpha (Testnet) | Contract | Address | Proxy | -|--------------------------|----------------|--------------------------------------------|--------------------------------------------| -|2022/05/31 | EscrowFactory | 0x3Cd0B117Be4CC1e31c8d7d1eD8b32208a2820902 | | -|2022/05/31 | EthKVStore | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | N/A | +|🟠 Polygon Mumbai (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/04/25 | HMToken | 0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4 | N/A | +|2022/04/25 | EscrowFactory | 0x558cd800f9F0B02f3B149667bDe003284c867E94 | | +|2022/04/29 | EthKVStore | 0x32e27177BA6Ea91cf28dfd91a0Da9822A4b74EcF | N/A | +|2023/01/17 | Staking | 0x76E2EF2E177097E0b296E1e305d69Fe8Bae5f774 | 0xf421fD3eB97982C205966ebB514Ab2E435c6d5B7 | +|2023/01/17 | EthKVStore | 0x459EE403d060B84b5014605D6739cCFed32AFb96 | N/A | + +|🟠 Binance SC (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/10/12 | HMToken | 0xd3a31d57fdd790725d0f6b78095f62e8cd4ab317 | N/A | +|2022/10/12 | EscrowFactory | 0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f | | +|2022/08/12 | EthKVStore | 0x7676F326f1e30E96a76B7F1a860d56A9ac988a7d | N/A | + +|🟠 Goerli (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/10/12 | EscrowFactory | 0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F | | + +|🟠 Moonbase Alpha (Testnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/05/31 | EscrowFactory | 0x3Cd0B117Be4CC1e31c8d7d1eD8b32208a2820902 | | +|2022/05/31 | EthKVStore | 0x64009ca5fb4b34769F7240c6073FEc34bf5b64E3 | N/A | + +|🟢 Polygon (Mainnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/02/28 | EscrowFactory | 0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794 | | +|2022/03/01 | EthKVStore | 0x6334dB76037bb6d4bc21901433E870b22ACa1F9a | N/A | + +|🟢 Binance SC (Mainnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/08/23 | EscrowFactory | 0xc88bC422cAAb2ac8812de03176402dbcA09533f4 | | +|2022/08/23 | EthKVStore | 0x8340412Ed68BcF53a7Da72BFFc1E2E74CfdE74D0 | N/A | diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index e463a48c0c..cbd2bf98e2 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -66,8 +66,8 @@ export const ESCROW_NETWORKS: { title: 'Binance Smart Chain', scanUrl: 'https://bscscan.com', rpcUrl: 'https://bsc-dataseed1.binance.org/', - subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', - factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc-v1', + factoryAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', }, [ChainId.BSC_TESTNET]: { diff --git a/packages/core/README.md b/packages/core/README.md index bffd286e25..3b7caccc20 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -24,6 +24,6 @@ yarn deploy:proxy --network [NETWORK_NAME] ``` 4. Verify every contract runing the following line for each contract address(for those that use a proxy just verifyin the proxy will verify the implementation too): ```bash -npx hardhat verify [CONTRACT_ADDRESS] --network [NETWORK_NAME] +npx hardhat verify --network [NETWORK_NAME] [CONTRACT_ADDRESS] ``` 5. Update the file `CONTRACTS_LIST.md` in the root of this monorepo. \ No newline at end of file diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index 9258790886..a25fdb5ad8 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -85,6 +85,12 @@ const config: HardhatUserConfig = { accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, + bsc: { + chainId: 56, + url: process.env.ETH_BSC_URL || '', + accounts: + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], + }, bscTestnet: { chainId: 97, url: process.env.ETH_BSC_TESTNET_URL || '', @@ -137,7 +143,8 @@ const config: HardhatUserConfig = { goerli: process.env.ETHERSCAN_API_KEY || '', polygon: process.env.POLYGONSCAN_API_KEY || '', polygonMumbai: process.env.POLYGONSCAN_API_KEY || '', - bscTestnet: process.env.BSC_TESTNET_API_KEY || '', + bsc: process.env.BSC_API_KEY || '', + bscTestnet: process.env.BSC_API_KEY || '', moonbaseAlpha: process.env.MOONSCAN_API_KEY || '', }, }, diff --git a/packages/core/scripts/deploy-proxies.ts b/packages/core/scripts/deploy-proxies.ts index 620e3cfc8a..f099cc8667 100644 --- a/packages/core/scripts/deploy-proxies.ts +++ b/packages/core/scripts/deploy-proxies.ts @@ -58,18 +58,19 @@ async function main() { // Configure RewardPool in Staking await stakingContract.setRewardPool(rewardPoolContract.address); - const Reputation = await ethers.getContractFactory('Reputation'); - const reputationContract = await upgrades.deployProxy( - Reputation, - [stakingContract.address, 1], - { initializer: 'initialize', kind: 'uups' } - ); - await reputationContract.deployed(); - console.log('Reputation Proxy Address: ', reputationContract.address); - console.log( - 'Reputation Implementation Address: ', - await upgrades.erc1967.getImplementationAddress(reputationContract.address) - ); + // ==== Only for testnets ==== + // const Reputation = await ethers.getContractFactory('Reputation'); + // const reputationContract = await upgrades.deployProxy( + // Reputation, + // [stakingContract.address, 1], + // { initializer: 'initialize', kind: 'uups' } + // ); + // await reputationContract.deployed(); + // console.log('Reputation Proxy Address: ', reputationContract.address); + // console.log( + // 'Reputation Implementation Address: ', + // await upgrades.erc1967.getImplementationAddress(reputationContract.address) + // ); } main().catch((error) => { diff --git a/packages/examples/fortune/launcher/client/src/constants/index.ts b/packages/examples/fortune/launcher/client/src/constants/index.ts index a551b08fd7..54d91f972c 100644 --- a/packages/examples/fortune/launcher/client/src/constants/index.ts +++ b/packages/examples/fortune/launcher/client/src/constants/index.ts @@ -46,7 +46,7 @@ export const ESCROW_NETWORKS: { // scanUrl: 'https://bscscan.com', // rpcUrl: 'https://bsc-dataseed1.binance.org/', // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', - // factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + // factoryAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', // hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', // }, [ChainId.BSC_TESTNET]: { diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 049b6cb1b6..377d68e768 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -35,7 +35,7 @@ export const ESCROW_NETWORKS: { // scanUrl: 'https://bscscan.com', // rpcUrl: 'https://bsc-dataseed1.binance.org/', // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', - // factoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + // factoryAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', // hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', // }, [ChainId.BSC_TESTNET]: { diff --git a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts index 5b4c96b53e..cf2dd1cab8 100644 --- a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts +++ b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts @@ -32,7 +32,7 @@ export const REPUTATION_NETWORKS: { // scanUrl: 'https://bscscan.com', // rpcUrl: 'https://bsc-dataseed1.binance.org/', // subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', - // reputationAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', + // reputationAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', // }, [ChainId.BSC_TESTNET]: { chainId: ChainId.BSC_TESTNET, diff --git a/packages/sdk/typescript/subgraph/config/bsc.json b/packages/sdk/typescript/subgraph/config/bsc-v1.json similarity index 50% rename from packages/sdk/typescript/subgraph/config/bsc.json rename to packages/sdk/typescript/subgraph/config/bsc-v1.json index a5344aec08..1ddef38866 100644 --- a/packages/sdk/typescript/subgraph/config/bsc.json +++ b/packages/sdk/typescript/subgraph/config/bsc-v1.json @@ -2,8 +2,8 @@ "network": "bsc", "description": "Human subgraph on Binance Smart Chain network", "EscrowFactory": { - "address": "0xc88bC422cAAb2ac8812de03176402dbcA09533f4", - "startBlock": 20689161, + "address": "0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a", + "startBlock": 25486222, "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" }, "HMToken": { @@ -13,5 +13,15 @@ }, "Escrow": { "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" + }, + "Staking": { + "address": "0xC2163A0928034e020f0d31e1171Ba0D6d9AfFB6c", + "startBlock": 25486216, + "abi": "./node_modules/@human-protocol/core/abis/Staking.json" + }, + "KVStore": { + "address": "0x70671167176C4934204B1C7e97F5e86695857ef2", + "startBlock": 25486223, + "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" } } From e0cd336ffdadd6dbe8cf4cbe8139b39b2be93e72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 8 Feb 2023 13:02:38 +0100 Subject: [PATCH 209/216] Update WalletConnect modal to version 2 --- packages/examples/fortune/exchange/src/connectors/connectors.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/examples/fortune/exchange/src/connectors/connectors.ts b/packages/examples/fortune/exchange/src/connectors/connectors.ts index ed0225cb02..2dc0dd1098 100644 --- a/packages/examples/fortune/exchange/src/connectors/connectors.ts +++ b/packages/examples/fortune/exchange/src/connectors/connectors.ts @@ -40,8 +40,10 @@ const { provider } = configureChains(chains, [ export const wagmiClient = createClient({ autoConnect: true, connectors: modalConnectors({ + version: '2', appName: 'web3Modal', chains, + projectId, }), provider, }); From fa9f506718a37c3eb7f1aa09225c47e58c3d9a2b Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 8 Feb 2023 13:23:42 +0100 Subject: [PATCH 210/216] deploy proxy and staking contracts to moonbeam --- .github/workflows/cd-subgraph.yaml | 2 +- CONTRACTS_LIST.md | 15 ++++++++++----- .../apps/escrow-dashboard/src/constants/index.ts | 4 ++-- packages/core/hardhat.config.ts | 10 ++++++++++ .../launcher/client/src/constants/index.ts | 2 +- .../launcher/server/src/constants/networks.ts | 2 +- .../reputation-oracle/src/constants/constants.ts | 2 +- .../config/{moonbeam.json => moonbeam-v1.json} | 14 ++++++++++++-- 8 files changed, 38 insertions(+), 13 deletions(-) rename packages/sdk/typescript/subgraph/config/{moonbeam.json => moonbeam-v1.json} (50%) diff --git a/.github/workflows/cd-subgraph.yaml b/.github/workflows/cd-subgraph.yaml index b96ee703de..6b45a690b2 100644 --- a/.github/workflows/cd-subgraph.yaml +++ b/.github/workflows/cd-subgraph.yaml @@ -19,7 +19,7 @@ jobs: - name: goerli graph: goerli-v1 - name: moonbeam - graph: moonbeam + graph: moonbeam-v1 - name: bsc graph: bsc-v1 - name: chapel diff --git a/CONTRACTS_LIST.md b/CONTRACTS_LIST.md index 0c009ec154..ab80afb809 100644 --- a/CONTRACTS_LIST.md +++ b/CONTRACTS_LIST.md @@ -58,11 +58,11 @@ |🟢 Moonbeam (Mainnet) | Contract | Address | Proxy | |----------------------------|----------------|--------------------------------------------|--------------------------------------------| |2022/05/26 | HMToken | 0x3b25BC1dC591D24d60560d0135D6750A561D4764 | N/A | -|2022/06/01 | EscrowFactory | 0x98108c28B7767a52BE38B4860832dd4e11A7ecad | | -| | Staking | | | -| | RewardPool | | | -|2022/06/01 | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | -| | Reputation | | | +|2023/02/8 | EscrowFactory | 0xe44D7eb960f24797D36FAdD8a8FfF29C76375Ef0 | 0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a | +|2023/02/8 | Staking | 0xC2163A0928034e020f0d31e1171Ba0D6d9AfFB6c | 0x05398211bA2046E296fBc9a9D3EB49e3F15C3123 | +|2023/02/8 | RewardPool | 0x25E53A6D48A2744273C082e55bA5CCFCfD80f9e1 | 0x4A5963Dd6792692e9147EdC7659936b96251917a | +|2023/02/8 | EthKVStore | 0x70671167176C4934204B1C7e97F5e86695857ef2 | N/A | +| | Reputation | N/A | N/A | |🟠 Moonbase Alpha (Testnet) | Contract | Address | Proxy | |----------------------------|----------------|--------------------------------------------|--------------------------------------------| @@ -129,3 +129,8 @@ |----------------------------|----------------|--------------------------------------------|--------------------------------------------| |2022/08/23 | EscrowFactory | 0xc88bC422cAAb2ac8812de03176402dbcA09533f4 | | |2022/08/23 | EthKVStore | 0x8340412Ed68BcF53a7Da72BFFc1E2E74CfdE74D0 | N/A | + +|🟢 Moonbeam (Mainnet) | Contract | Address | Proxy | +|----------------------------|----------------|--------------------------------------------|--------------------------------------------| +|2022/06/01 | EscrowFactory | 0x98108c28B7767a52BE38B4860832dd4e11A7ecad | | +|2022/06/01 | EthKVStore | 0x6617d21ab0f16A7079e2811Cf9306CAe7018bDd9 | N/A | \ No newline at end of file diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index cbd2bf98e2..f48214a3a5 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -106,8 +106,8 @@ export const ESCROW_NETWORKS: { scanUrl: 'https://moonbeam.moonscan.io', rpcUrl: 'https://rpc.api.moonbeam.network', subgraphUrl: - 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', - factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam-v1', + factoryAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', }, [ChainId.MOONBASE_ALPHA]: { diff --git a/packages/core/hardhat.config.ts b/packages/core/hardhat.config.ts index a25fdb5ad8..56d0098670 100644 --- a/packages/core/hardhat.config.ts +++ b/packages/core/hardhat.config.ts @@ -97,10 +97,19 @@ const config: HardhatUserConfig = { accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, + moonbeam: { + chainId: 1284, + timeout: 1000000000, + url: process.env.ETH_MOONBEAM_URL || '', + accounts: + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], + }, moonbaseAlpha: { chainId: 1287, timeout: 1000000000, url: process.env.ETH_MOONBASE_ALPHA_URL || '', + accounts: + process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, avalancheTestnet: { chainId: 43113, @@ -145,6 +154,7 @@ const config: HardhatUserConfig = { polygonMumbai: process.env.POLYGONSCAN_API_KEY || '', bsc: process.env.BSC_API_KEY || '', bscTestnet: process.env.BSC_API_KEY || '', + moonbeam: process.env.MOONSCAN_API_KEY || '', moonbaseAlpha: process.env.MOONSCAN_API_KEY || '', }, }, diff --git a/packages/examples/fortune/launcher/client/src/constants/index.ts b/packages/examples/fortune/launcher/client/src/constants/index.ts index 54d91f972c..c9dfea7520 100644 --- a/packages/examples/fortune/launcher/client/src/constants/index.ts +++ b/packages/examples/fortune/launcher/client/src/constants/index.ts @@ -86,7 +86,7 @@ export const ESCROW_NETWORKS: { // rpcUrl: 'https://rpc.api.moonbeam.network', // subgraphUrl: // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', - // factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + // factoryAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', // hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', // }, }; diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 377d68e768..761c428b53 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -76,7 +76,7 @@ export const ESCROW_NETWORKS: { // rpcUrl: 'https://rpc.api.moonbeam.network', // subgraphUrl: // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', - // factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + // factoryAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', // hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', // }, [ChainId.MOONBASE_ALPHA]: { diff --git a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts index cf2dd1cab8..0bacaa0b68 100644 --- a/packages/examples/fortune/reputation-oracle/src/constants/constants.ts +++ b/packages/examples/fortune/reputation-oracle/src/constants/constants.ts @@ -68,7 +68,7 @@ export const REPUTATION_NETWORKS: { // rpcUrl: 'https://rpc.api.moonbeam.network', // subgraphUrl: // 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', - // reputationAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', + // reputationAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', // }, [ChainId.MOONBASE_ALPHA]: { chainId: ChainId.MOONBASE_ALPHA, diff --git a/packages/sdk/typescript/subgraph/config/moonbeam.json b/packages/sdk/typescript/subgraph/config/moonbeam-v1.json similarity index 50% rename from packages/sdk/typescript/subgraph/config/moonbeam.json rename to packages/sdk/typescript/subgraph/config/moonbeam-v1.json index 1db68deb59..bf42d8c620 100644 --- a/packages/sdk/typescript/subgraph/config/moonbeam.json +++ b/packages/sdk/typescript/subgraph/config/moonbeam-v1.json @@ -2,8 +2,8 @@ "network": "moonbeam", "description": "Human subgraph on Moonbeam network", "EscrowFactory": { - "address": "0x98108c28B7767a52BE38B4860832dd4e11A7ecad", - "startBlock": 1145429, + "address": "0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a", + "startBlock": 2904819, "abi": "./node_modules/@human-protocol/core/abis/EscrowFactory.json" }, "HMToken": { @@ -13,5 +13,15 @@ }, "Escrow": { "abi": "./node_modules/@human-protocol/core/abis/Escrow.json" + }, + "Staking": { + "address": "0x05398211bA2046E296fBc9a9D3EB49e3F15C3123", + "startBlock": 2904815, + "abi": "./node_modules/@human-protocol/core/abis/Staking.json" + }, + "KVStore": { + "address": "0x70671167176C4934204B1C7e97F5e86695857ef2", + "startBlock": 2904821, + "abi": "./node_modules/@human-protocol/core/abis/KVStore.json" } } From 8e60ccfdaee88576f594733421a8e05af5d33723 Mon Sep 17 00:00:00 2001 From: portuu3 Date: Wed, 8 Feb 2023 16:43:03 +0100 Subject: [PATCH 211/216] merge new and old subgraphs data --- .../escrow-dashboard/src/constants/index.ts | 25 ++++ .../escrow-dashboard/src/queries/index.ts | 2 +- .../src/state/escrow/reducer.ts | 141 +++++++++++------- 3 files changed, 115 insertions(+), 53 deletions(-) diff --git a/packages/apps/escrow-dashboard/src/constants/index.ts b/packages/apps/escrow-dashboard/src/constants/index.ts index f48214a3a5..dcebf896f6 100644 --- a/packages/apps/escrow-dashboard/src/constants/index.ts +++ b/packages/apps/escrow-dashboard/src/constants/index.ts @@ -26,6 +26,8 @@ export interface IEscrowNetwork { subgraphUrl: string; hmtAddress: string; factoryAddress: string; + oldSubgraphUrl: string; + oldFactoryAddress: string; } export const SUPPORTED_CHAIN_IDS = [ @@ -60,6 +62,9 @@ export const ESCROW_NETWORKS: { 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli-v1', factoryAddress: '0x87469B4f2Fcf37cBd34E54244c0BD4Fa0603664c', hmtAddress: '0xd3A31D57FDD790725d0F6B78095F62E8CD4ab317', + oldSubgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/goerli', + oldFactoryAddress: '0xaAe6a2646C1F88763E62e0cD08aD050Ea66AC46F', }, [ChainId.BSC_MAINNET]: { chainId: ChainId.BSC_MAINNET, @@ -69,6 +74,8 @@ export const ESCROW_NETWORKS: { subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc-v1', factoryAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', hmtAddress: '0x0d501B743F22b641B8C8dfe00F1AAb881D57DDC7', + oldSubgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsc', + oldFactoryAddress: '0xc88bC422cAAb2ac8812de03176402dbcA09533f4', }, [ChainId.BSC_TESTNET]: { chainId: ChainId.BSC_TESTNET, @@ -79,6 +86,9 @@ export const ESCROW_NETWORKS: { 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest-v1', factoryAddress: '0x2bfA592DBDaF434DDcbb893B1916120d181DAD18', hmtAddress: '0xE3D74BBFa45B4bCa69FF28891fBE392f4B4d4e4d', + oldSubgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/bsctest', + oldFactoryAddress: '0xaae6a2646c1f88763e62e0cd08ad050ea66ac46f', }, [ChainId.POLYGON]: { chainId: ChainId.POLYGON, @@ -89,6 +99,9 @@ export const ESCROW_NETWORKS: { 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon-v1', factoryAddress: '0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB', hmtAddress: '0xc748B2A084F8eFc47E086ccdDD9b7e67aEb571BF', + oldSubgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/polygon', + oldFactoryAddress: '0x45eBc3eAE6DA485097054ae10BA1A0f8e8c7f794', }, [ChainId.POLYGON_MUMBAI]: { chainId: ChainId.POLYGON_MUMBAI, @@ -99,6 +112,9 @@ export const ESCROW_NETWORKS: { 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai-v1', factoryAddress: '0xA8D927C4DA17A6b71675d2D49dFda4E9eBE58f2d', hmtAddress: '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4', + oldSubgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/mumbai', + oldFactoryAddress: '0x558cd800f9F0B02f3B149667bDe003284c867E94', }, [ChainId.MOONBEAM]: { chainId: ChainId.MOONBEAM, @@ -109,6 +125,9 @@ export const ESCROW_NETWORKS: { 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam-v1', factoryAddress: '0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a', hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', + oldSubgraphUrl: + 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbeam', + oldFactoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', }, [ChainId.MOONBASE_ALPHA]: { chainId: ChainId.MOONBASE_ALPHA, @@ -119,6 +138,8 @@ export const ESCROW_NETWORKS: { 'https://api.thegraph.com/subgraphs/name/humanprotocol/moonbase-alpha-v1', factoryAddress: '0x707fb5A5d36BC15275Af3f73262bf9a1D8C470EB', hmtAddress: '0xe4C8eC5d057EacF40060b2174627a4941a5c8127', + oldSubgraphUrl: '', + oldFactoryAddress: '', }, [ChainId.AVALANCHE_TESTNET]: { chainId: ChainId.AVALANCHE_TESTNET, @@ -130,6 +151,8 @@ export const ESCROW_NETWORKS: { 'https://api.thegraph.com/subgraphs/name/humanprotocol/avalanche', factoryAddress: '0xfb4469201951C3B9a7F1996c477cb7BDBEcE0A88', hmtAddress: '0x9406d5c635AD22b0d76c75E52De57A2177919ca3', + oldSubgraphUrl: '', + oldFactoryAddress: '', }, [ChainId.AVALANCHE]: { chainId: ChainId.AVALANCHE, @@ -140,6 +163,8 @@ export const ESCROW_NETWORKS: { subgraphUrl: 'https://api.thegraph.com/subgraphs/name/humanprotocol/fuji', factoryAddress: '0x9767a578ba7a5FA1563c8229943cB01cd8446BB4', hmtAddress: '0x12365293cb6477d4fc2686e46BB97E3Fb64f1550', + oldSubgraphUrl: '', + oldFactoryAddress: '', }, }; diff --git a/packages/apps/escrow-dashboard/src/queries/index.ts b/packages/apps/escrow-dashboard/src/queries/index.ts index e05101153f..6b53461214 100644 --- a/packages/apps/escrow-dashboard/src/queries/index.ts +++ b/packages/apps/escrow-dashboard/src/queries/index.ts @@ -7,7 +7,7 @@ export const RAW_ESCROW_STATS_QUERY = `{ }`; export const RAW_EVENT_DAY_DATA_QUERY = `{ - eventDayDatas(first: 30, orderBy: timestamp, orderDirection: desc) { + eventDayDatas(first: [COUNT_PARAM], orderBy: timestamp, orderDirection: desc) { timestamp dailyBulkTransferEvents dailyIntermediateStorageEvents diff --git a/packages/apps/escrow-dashboard/src/state/escrow/reducer.ts b/packages/apps/escrow-dashboard/src/state/escrow/reducer.ts index 24264b3600..544acf4266 100644 --- a/packages/apps/escrow-dashboard/src/state/escrow/reducer.ts +++ b/packages/apps/escrow-dashboard/src/state/escrow/reducer.ts @@ -55,26 +55,21 @@ export const fetchEscrowEventsAsync = createAsyncThunk< let escrowEvents: EscrowEventsType = {}; await Promise.all( SUPPORTED_CHAIN_IDS.map(async (chainId) => { - const eventDayDatas = await gqlFetch( + let eventDayDatas = await getEventDayData( ESCROW_NETWORKS[chainId]?.subgraphUrl!, - RAW_EVENT_DAY_DATA_QUERY - ) - .then((res) => res.json()) - .then((json) => - json.data.eventDayDatas.map((d: EscrowEventDayData) => ({ - ...d, - dailyBulkTransferEvents: Number(d.dailyBulkTransferEvents), - dailyIntermediateStorageEvents: Number( - d.dailyIntermediateStorageEvents - ), - dailyPendingEvents: Number(d.dailyPendingEvents), - dailyTotalEvents: - Number(d.dailyBulkTransferEvents) + - Number(d.dailyIntermediateStorageEvents) + - Number(d.dailyPendingEvents), - dailyEscrowAmounts: Number(d.dailyEscrowAmounts), - })) + 30 + ); + + if ( + ESCROW_NETWORKS[chainId]?.oldSubgraphUrl && + eventDayDatas.length < 30 + ) { + const oldData = await getEventDayData( + ESCROW_NETWORKS[chainId]?.oldSubgraphUrl!, + 30 - eventDayDatas.length ); + eventDayDatas = eventDayDatas.concat(oldData); + } escrowEvents[chainId] = eventDayDatas; }) ); @@ -82,6 +77,29 @@ export const fetchEscrowEventsAsync = createAsyncThunk< return escrowEvents; }); +const getEventDayData = async (subgraphUrl: string, count: number) => { + return await gqlFetch( + subgraphUrl!, + RAW_EVENT_DAY_DATA_QUERY.replace('[COUNT_PARAM]', count.toString()) + ) + .then((res) => res.json()) + .then((json) => + json.data.eventDayDatas.map((d: EscrowEventDayData) => ({ + ...d, + dailyBulkTransferEvents: Number(d.dailyBulkTransferEvents), + dailyIntermediateStorageEvents: Number( + d.dailyIntermediateStorageEvents + ), + dailyPendingEvents: Number(d.dailyPendingEvents), + dailyTotalEvents: + Number(d.dailyBulkTransferEvents) + + Number(d.dailyIntermediateStorageEvents) + + Number(d.dailyPendingEvents), + dailyEscrowAmounts: Number(d.dailyEscrowAmounts), + })) + ); +}; + export const fetchEscrowStatsAsync = createAsyncThunk< EscrowStatsType, void, @@ -90,38 +108,19 @@ export const fetchEscrowStatsAsync = createAsyncThunk< let escrowStats: EscrowStatsType = {}; await Promise.all( SUPPORTED_CHAIN_IDS.map(async (chainId) => { - const stats = await gqlFetch( - ESCROW_NETWORKS[chainId]?.subgraphUrl!, - RAW_ESCROW_STATS_QUERY - ) - .then((res) => res.json()) - .then((json) => { - if (!json.data.escrowStatistics) { - return { - intermediateStorageEventCount: 0, - pendingEventCount: 0, - bulkTransferEventCount: 0, - totalEventCount: 0, - }; - } - const { - intermediateStorageEventCount, - pendingEventCount, - bulkTransferEventCount, - } = json.data.escrowStatistics; - - return { - intermediateStorageEventCount: Number( - intermediateStorageEventCount - ), - pendingEventCount: Number(pendingEventCount), - bulkTransferEventCount: Number(bulkTransferEventCount), - totalEventCount: - Number(intermediateStorageEventCount) + - Number(pendingEventCount) + - Number(bulkTransferEventCount), - }; - }); + const stats = await getEscrowStats( + ESCROW_NETWORKS[chainId]?.subgraphUrl! + ); + if (ESCROW_NETWORKS[chainId]?.oldSubgraphUrl) { + const oldStats = await getEscrowStats( + ESCROW_NETWORKS[chainId]?.oldSubgraphUrl! + ); + stats.bulkTransferEventCount += oldStats.bulkTransferEventCount; + stats.intermediateStorageEventCount += + oldStats.intermediateStorageEventCount; + stats.pendingEventCount += oldStats.pendingEventCount; + stats.totalEventCount += oldStats.totalEventCount; + } escrowStats[chainId] = stats; }) ); @@ -129,6 +128,36 @@ export const fetchEscrowStatsAsync = createAsyncThunk< return escrowStats; }); +const getEscrowStats = async (subgraphUrl: string) => { + return await gqlFetch(subgraphUrl, RAW_ESCROW_STATS_QUERY) + .then((res) => res.json()) + .then((json) => { + if (!json.data.escrowStatistics) { + return { + intermediateStorageEventCount: 0, + pendingEventCount: 0, + bulkTransferEventCount: 0, + totalEventCount: 0, + }; + } + const { + intermediateStorageEventCount, + pendingEventCount, + bulkTransferEventCount, + } = json.data.escrowStatistics; + + return { + intermediateStorageEventCount: Number(intermediateStorageEventCount), + pendingEventCount: Number(pendingEventCount), + bulkTransferEventCount: Number(bulkTransferEventCount), + totalEventCount: + Number(intermediateStorageEventCount) + + Number(pendingEventCount) + + Number(bulkTransferEventCount), + }; + }); +}; + export const fetchEscrowAmountsAsync = createAsyncThunk< EscrowAmountsType, void, @@ -140,8 +169,16 @@ export const fetchEscrowAmountsAsync = createAsyncThunk< const rpcUrl = ESCROW_NETWORKS[chainId]?.rpcUrl!; const factoryAddress = ESCROW_NETWORKS[chainId]?.factoryAddress!; const provider = new providers.JsonRpcProvider(rpcUrl); - const contract = new Contract(factoryAddress, EscrowFactoryABI, provider); - const escrowAmount = await contract.counter(); + let contract = new Contract(factoryAddress, EscrowFactoryABI, provider); + let escrowAmount = Number(await contract.counter()); + if (ESCROW_NETWORKS[chainId]?.oldFactoryAddress) { + contract = new Contract( + ESCROW_NETWORKS[chainId]?.oldFactoryAddress!, + EscrowFactoryABI, + provider + ); + escrowAmount += Number(await contract.counter()); + } escrowAmounts[chainId] = Number(escrowAmount); }) ); From 6b05c99f574c63c0832db8b508fdf8da8ac23d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Wed, 8 Feb 2023 17:25:23 +0100 Subject: [PATCH 212/216] Update fortune local config --- packages/core/contracts/Reputation.sol | 2 +- .../fortune/exchange/.env.development | 2 +- .../fortune/launcher/client/.env.development | 4 +- .../client/src/components/JobRequest.tsx | 11 +++- .../launcher/client/src/constants/index.ts | 17 +++++- .../fortune/launcher/client/src/index.tsx | 23 +++++++- .../fortune/launcher/server/.env.development | 18 ++++++ .../fortune/launcher/server/.env.test | 19 ------- .../fortune/launcher/server/package.json | 2 +- .../launcher/server/src/constants/networks.ts | 2 +- .../fortune/launcher/server/src/index.ts | 2 + .../launcher/server/src/plugins/config.ts | 1 - .../launcher/server/src/plugins/escrow.ts | 1 - .../fortune/launcher/server/src/plugins/s3.ts | 3 +- .../launcher/server/src/plugins/web3.ts | 1 - .../fortune/launcher/server/tests/setup.ts | 2 +- packages/examples/fortune/package.json | 6 +- .../fortune/recording-oracle/.env.development | 19 +++++++ .../fortune/recording-oracle/.env.test | 20 ------- .../fortune/recording-oracle/package.json | 2 +- .../src/constants/networks.ts | 2 +- .../fortune/recording-oracle/src/index.ts | 3 + .../recording-oracle/src/plugins/config.ts | 1 - .../recording-oracle/src/plugins/curses.ts | 1 - .../recording-oracle/src/plugins/s3.ts | 1 - .../src/plugins/uniqueness.ts | 1 - .../recording-oracle/src/plugins/web3.ts | 1 - .../fortune/recording-oracle/tests/setup.ts | 2 +- packages/examples/fortune/setupAccounts.ts | 55 +++++++++++++++++++ yarn.lock | 4 +- 30 files changed, 159 insertions(+), 69 deletions(-) create mode 100644 packages/examples/fortune/launcher/server/.env.development delete mode 100644 packages/examples/fortune/launcher/server/.env.test create mode 100644 packages/examples/fortune/recording-oracle/.env.development delete mode 100644 packages/examples/fortune/recording-oracle/.env.test create mode 100644 packages/examples/fortune/setupAccounts.ts diff --git a/packages/core/contracts/Reputation.sol b/packages/core/contracts/Reputation.sol index f25e905f20..0264120ccd 100644 --- a/packages/core/contracts/Reputation.sol +++ b/packages/core/contracts/Reputation.sol @@ -43,7 +43,7 @@ contract Reputation is OwnableUpgradeable, UUPSUpgradeable { function addReputations(Worker[] memory _workers) public { Stakes.Staker memory staker = IStaking(staking).getStaker(msg.sender); require( - staker.tokensAvailable() > minimumStake, + staker.tokensAvailable() >= minimumStake, 'Needs to stake HMT tokens to modify reputations.' ); diff --git a/packages/examples/fortune/exchange/.env.development b/packages/examples/fortune/exchange/.env.development index 0603bc8776..464dbe110d 100644 --- a/packages/examples/fortune/exchange/.env.development +++ b/packages/examples/fortune/exchange/.env.development @@ -1,3 +1,3 @@ PORT=3001 PUBLIC_URL=/ -REACT_APP_WALLETCONNECT_PROJECT_ID= \ No newline at end of file +REACT_APP_WALLETCONNECT_PROJECT_ID=68415bedd1597a33e8e83cc53e52071b \ No newline at end of file diff --git a/packages/examples/fortune/launcher/client/.env.development b/packages/examples/fortune/launcher/client/.env.development index e72fdc792e..e52cc8f00e 100644 --- a/packages/examples/fortune/launcher/client/.env.development +++ b/packages/examples/fortune/launcher/client/.env.development @@ -1,2 +1,2 @@ -REACT_APP_JOB_LAUNCHER_SERVER_URL=https://job-launcher-server.vercel.app -REACT_APP_JOB_LAUNCHER_ADDRESS=0x52485f13E89220bC739180296Fec532bE34eb5dd \ No newline at end of file +REACT_APP_JOB_LAUNCHER_SERVER_URL=http://localhost:8080 +REACT_APP_JOB_LAUNCHER_ADDRESS=0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199 \ No newline at end of file diff --git a/packages/examples/fortune/launcher/client/src/components/JobRequest.tsx b/packages/examples/fortune/launcher/client/src/components/JobRequest.tsx index 0c22056084..ce43cca71b 100644 --- a/packages/examples/fortune/launcher/client/src/components/JobRequest.tsx +++ b/packages/examples/fortune/launcher/client/src/components/JobRequest.tsx @@ -44,7 +44,11 @@ export const JobRequest = ({ const chainId = useChainId(); const { switchNetwork } = useSwitchNetwork(); const [jobRequest, setJobRequest] = useState({ - chainId: 80001, + chainId: SUPPORTED_CHAIN_IDS.includes(ChainId.LOCALHOST) + ? ChainId.LOCALHOST + : SUPPORTED_CHAIN_IDS.includes(ChainId.POLYGON_MUMBAI) + ? ChainId.POLYGON_MUMBAI + : SUPPORTED_CHAIN_IDS[0], title: '', description: '', fortunesRequired: '', @@ -63,11 +67,13 @@ export const JobRequest = ({ const handleLaunch = async () => { if (!signer || !address) return; + console.log(chainId, jobRequest.chainId); if (chainId !== jobRequest.chainId) { switchNetwork?.(jobRequest.chainId); return; } + console.log('b'); setIsLoading(true); const data: FortuneJobRequestType = { @@ -78,8 +84,7 @@ export const JobRequest = ({ try { const contract = new ethers.Contract(data.token, HMTokenABI, signer); const jobLauncherAddress = process.env.REACT_APP_JOB_LAUNCHER_ADDRESS; - if (!jobLauncherAddress) - { + if (!jobLauncherAddress) { alert('Job Launcher address is missing'); setIsLoading(false); return; diff --git a/packages/examples/fortune/launcher/client/src/constants/index.ts b/packages/examples/fortune/launcher/client/src/constants/index.ts index a551b08fd7..288fc49f51 100644 --- a/packages/examples/fortune/launcher/client/src/constants/index.ts +++ b/packages/examples/fortune/launcher/client/src/constants/index.ts @@ -7,9 +7,10 @@ export enum ChainId { POLYGON = 137, POLYGON_MUMBAI = 80001, MOONBEAM = 1284, + LOCALHOST = 1338, } -export const SUPPORTED_CHAIN_IDS = [ +export const SUPPORTED_CHAIN_IDS_PRODUCTION = [ ChainId.GOERLI, ChainId.BSC_MAINNET, ChainId.BSC_TESTNET, @@ -18,6 +19,11 @@ export const SUPPORTED_CHAIN_IDS = [ ChainId.MOONBEAM, ]; +export const SUPPORTED_CHAIN_IDS = + process.env.NODE_ENV === 'development' + ? [ChainId.LOCALHOST] + : SUPPORTED_CHAIN_IDS_PRODUCTION; + export interface IEscrowNetwork { chainId: number; title: string; @@ -89,6 +95,15 @@ export const ESCROW_NETWORKS: { // factoryAddress: '0x98108c28B7767a52BE38B4860832dd4e11A7ecad', // hmtAddress: '0x3b25BC1dC591D24d60560d0135D6750A561D4764', // }, + [ChainId.LOCALHOST]: { + chainId: ChainId.LOCALHOST, + title: 'Localhost', + scanUrl: '', + rpcUrl: 'http://127.0.0.1:8545', + subgraphUrl: '', + factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', + hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + }, }; export const HM_TOKEN_DECIMALS = 18; diff --git a/packages/examples/fortune/launcher/client/src/index.tsx b/packages/examples/fortune/launcher/client/src/index.tsx index d26b3d771d..196cb18ed8 100644 --- a/packages/examples/fortune/launcher/client/src/index.tsx +++ b/packages/examples/fortune/launcher/client/src/index.tsx @@ -2,7 +2,7 @@ import CssBaseline from '@mui/material/CssBaseline'; import { ThemeProvider } from '@mui/material/styles'; import React from 'react'; import ReactDOM from 'react-dom/client'; -import { WagmiConfig, createClient, configureChains } from 'wagmi'; +import { WagmiConfig, createClient, configureChains, Chain } from 'wagmi'; import { goerli, mainnet, @@ -22,10 +22,29 @@ import theme from './theme'; window.Buffer = window.Buffer || require('buffer').Buffer; +const fortune: Chain = { + id: 1338, + name: 'Localhost', + network: 'localhost', + nativeCurrency: { + decimals: 18, + name: 'Ether', + symbol: 'ETH', + }, + rpcUrls: { + default: { + http: ['http://127.0.0.1:8545'], + }, + public: { + http: ['http://127.0.0.1:8545'], + }, + }, +}; + // Configure chains & providers with the Alchemy provider. // Two popular providers are Alchemy (alchemy.com) and Infura (infura.io) const { chains, provider, webSocketProvider } = configureChains( - [goerli, mainnet, polygon, polygonMumbai, bsc, bscTestnet], + [goerli, mainnet, polygon, polygonMumbai, bsc, bscTestnet, fortune], [publicProvider()] ); diff --git a/packages/examples/fortune/launcher/server/.env.development b/packages/examples/fortune/launcher/server/.env.development new file mode 100644 index 0000000000..395a3bcfbc --- /dev/null +++ b/packages/examples/fortune/launcher/server/.env.development @@ -0,0 +1,18 @@ +LOG_LEVEL='debug' +API_HOST='localhost' +API_PORT=8080 +S3_HOST=localhost +S3_PORT=9000 +S3_ACCESS_KEY=dev +S3_SECRET_KEY=devdevdev +S3_BUCKET_NAME=manifests +S3_BASE_URL=http://localhost:9000/ +ETH_PRIVATE_KEY=df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e +REC_ORACLE_ADDRESS=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 +REP_ORACLE_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC +EX_ORACLE_ADDRESS=0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec +REC_ORACLE_URL=http://localhost:3005/ +REP_ORACLE_URL=http://localhost:3006/ +EX_ORACLE_URL=http://localhost:3001/ +REC_ORACLE_PERCENTAGE_FEE=10 +REP_ORACLE_PERCENTAGE_FEE=10 \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/.env.test b/packages/examples/fortune/launcher/server/.env.test deleted file mode 100644 index a889ee25e0..0000000000 --- a/packages/examples/fortune/launcher/server/.env.test +++ /dev/null @@ -1,19 +0,0 @@ -NODE_ENV='development' -LOG_LEVEL='debug' -API_HOST='localhost' -API_PORT='8080' -S3_HOST=localhost -S3_PORT=80 -S3_ACCESS_KEY=access-key -S3_SECRET_KEY=secret-key -S3_BUCKET_NAME=fortune-manifests -S3_BASE_URL=http://localhost -ETH_PRIVATE_KEY=df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e -REC_ORACLE_ADDRESS=0x670bCc966ddc4fE7136c8793617a2C4D22849827 -REP_ORACLE_ADDRESS=0x6aC0881d52B08a9FF766b9Ac51FD9F488D761d98 -EX_ORACLE_ADDRESS=0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec -REC_ORACLE_URL=http://localhost -REP_ORACLE_URL=http://localhost -EX_ORACLE_URL=http://localhost -REC_ORACLE_PERCENTAGE_FEE=10 -REP_ORACLE_PERCENTAGE_FEE=10 \ No newline at end of file diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index 1ae9f091ba..dfc6cce7b4 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -25,7 +25,7 @@ "scripts": { "build": "tsc", "start:prod": "ts-node build/src/index.js", - "start": "ts-node ./src/index.ts", + "start": "cross-env NODE_ENV=development ts-node ./src/index.ts", "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" } } diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 049b6cb1b6..972f7e4bc6 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -65,7 +65,7 @@ export const ESCROW_NETWORKS: { [ChainId.LOCALHOST]: { chainId: ChainId.LOCALHOST, title: 'Localhost', - rpcUrl: 'http://127.0.0.1:8546', + rpcUrl: 'http://127.0.0.1:8545', factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', }, diff --git a/packages/examples/fortune/launcher/server/src/index.ts b/packages/examples/fortune/launcher/server/src/index.ts index a032331619..8884be25ff 100644 --- a/packages/examples/fortune/launcher/server/src/index.ts +++ b/packages/examples/fortune/launcher/server/src/index.ts @@ -1,5 +1,7 @@ +import dotenv from 'dotenv'; import getServer from './server'; +dotenv.config({ path: `.env.${process.env.NODE_ENV}` }); process.on('unhandledRejection', (err) => { // eslint-disable-next-line no-console console.error(err); diff --git a/packages/examples/fortune/launcher/server/src/plugins/config.ts b/packages/examples/fortune/launcher/server/src/plugins/config.ts index cf7b23abf6..04a56be354 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/config.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/config.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; import { Static, Type } from '@sinclair/typebox'; diff --git a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts index be389bfab1..06f06abec6 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/escrow.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/escrow.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; import EscrowFactoryAbi from '@human-protocol/core/abis/EscrowFactory.json'; diff --git a/packages/examples/fortune/launcher/server/src/plugins/s3.ts b/packages/examples/fortune/launcher/server/src/plugins/s3.ts index 17d7d6fe02..acb225f61b 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/s3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/s3.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; import * as Minio from 'minio'; @@ -55,7 +54,7 @@ class S3Client { JSON.stringify(escrowData), { 'Content-Type': 'application/json' } ); - return `${this.s3BaseUrl}${fileName}`; + return `${this.s3BaseUrl}${this.s3BucketName}/${fileName}`; } } diff --git a/packages/examples/fortune/launcher/server/src/plugins/web3.ts b/packages/examples/fortune/launcher/server/src/plugins/web3.ts index d7fb3d16a4..e7519ced3c 100644 --- a/packages/examples/fortune/launcher/server/src/plugins/web3.ts +++ b/packages/examples/fortune/launcher/server/src/plugins/web3.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; import { Type } from '@sinclair/typebox'; diff --git a/packages/examples/fortune/launcher/server/tests/setup.ts b/packages/examples/fortune/launcher/server/tests/setup.ts index 35e0e2ab42..e989c5b57b 100644 --- a/packages/examples/fortune/launcher/server/tests/setup.ts +++ b/packages/examples/fortune/launcher/server/tests/setup.ts @@ -1,3 +1,3 @@ import dotenv from 'dotenv'; -dotenv.config({ path: './.env.test' }); +dotenv.config({ path: './.env.development' }); diff --git a/packages/examples/fortune/package.json b/packages/examples/fortune/package.json index 9da2aa18dd..e68f605b4c 100644 --- a/packages/examples/fortune/package.json +++ b/packages/examples/fortune/package.json @@ -8,9 +8,11 @@ "exchange": "cd exchange && yarn && yarn start", "recording-oracle": "cd recording-oracle && yarn start", "reputation-oracle": "cd reputation-oracle && yarn start", + "launcher-server": "cd launcher/server && yarn start", + "launcher-client": "cd launcher/client && yarn start", "minio": "docker compose --env-file=.env.development up -d minio-mc", - "deploy:contracts": "yarn workspace @human-protocol/core install && yarn workspace @human-protocol/core deploy:local", - "local": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn exchange\" \"yarn launcher\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn deploy:contracts\" \"yarn minio\")", + "deploy:contracts": "yarn workspace @human-protocol/core install && yarn workspace @human-protocol/core deploy:local && ts-node setupAccounts.ts", + "local": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn deploy:contracts\" \"yarn launcher-server\" \"yarn launcher-client\" \"yarn exchange\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn minio\")", "local:test": "docker compose down && (concurrently --hide 0 \"hardhat node\" \"yarn recording-oracle\" \"yarn reputation-oracle\" \"yarn minio\")", "test:launcher-server": "yarn workspace @human-protocol/job-launcher-server test", "test:exchange": "cd exchange && yarn test", diff --git a/packages/examples/fortune/recording-oracle/.env.development b/packages/examples/fortune/recording-oracle/.env.development new file mode 100644 index 0000000000..be4b837809 --- /dev/null +++ b/packages/examples/fortune/recording-oracle/.env.development @@ -0,0 +1,19 @@ +LOG_LEVEL=info +API_HOST=localhost +API_PORT=3005 + +ETH_PRIVATE_KEY=59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d +SALT=kD09c4Elbl +REPORT_GAS=true +TS_NODE_TRANSPILE_ONLY=1 + +TENDERLY_FORK_ID= +ETHERSCAN_API_KEY= +POLYGONSCAN_API_KEY= + +S3_HOST=localhost +S3_PORT=9000 +S3_ACCESS_KEY=dev +S3_SECRET_KEY=devdevdev +S3_BUCKET_NAME=manifests +S3_BASE_URL=http://localhost:9000/ diff --git a/packages/examples/fortune/recording-oracle/.env.test b/packages/examples/fortune/recording-oracle/.env.test deleted file mode 100644 index 00c7c8b689..0000000000 --- a/packages/examples/fortune/recording-oracle/.env.test +++ /dev/null @@ -1,20 +0,0 @@ -NODE_ENV=development -LOG_LEVEL=info -API_HOST=localhost -API_PORT=3001 - -ETH_PRIVATE_KEY=df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e -SALT=kD09c4Elbl -REPORT_GAS=true -TS_NODE_TRANSPILE_ONLY=1 - -TENDERLY_FORK_ID= -ETHERSCAN_API_KEY= -POLYGONSCAN_API_KEY= - -S3_HOST=localhost -S3_PORT=9000 -S3_ACCESS_KEY=access-key -S3_SECRET_KEY=secret-key -S3_BUCKET_NAME=fortune-manifests -S3_BASE_URL=http://localhost diff --git a/packages/examples/fortune/recording-oracle/package.json b/packages/examples/fortune/recording-oracle/package.json index 3b247b3e80..2c2480ed32 100644 --- a/packages/examples/fortune/recording-oracle/package.json +++ b/packages/examples/fortune/recording-oracle/package.json @@ -10,7 +10,7 @@ "lint:fix": "eslint . --fix", "build": "tsc", "start:prod": "ts-node build/src/index.js", - "start": "ts-node ./src/index.ts", + "start": "cross-env NODE_ENV=development cross-env ts-node ./src/index.ts", "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 10 && cross-env RPC_PORT=8547 yarn workspace @human-protocol/core deploy:local && vitest --run\"" }, "repository": { diff --git a/packages/examples/fortune/recording-oracle/src/constants/networks.ts b/packages/examples/fortune/recording-oracle/src/constants/networks.ts index b38da1eff4..2dbeb737e8 100644 --- a/packages/examples/fortune/recording-oracle/src/constants/networks.ts +++ b/packages/examples/fortune/recording-oracle/src/constants/networks.ts @@ -50,7 +50,7 @@ export const ESCROW_NETWORKS: { [ChainId.LOCALHOST]: { chainId: ChainId.LOCALHOST, title: 'Localhost', - rpcUrl: 'http://127.0.0.1:8546', + rpcUrl: 'http://127.0.0.1:8545', factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', }, diff --git a/packages/examples/fortune/recording-oracle/src/index.ts b/packages/examples/fortune/recording-oracle/src/index.ts index a032331619..ce727f0e61 100644 --- a/packages/examples/fortune/recording-oracle/src/index.ts +++ b/packages/examples/fortune/recording-oracle/src/index.ts @@ -1,5 +1,8 @@ +import dotenv from 'dotenv'; import getServer from './server'; +dotenv.config({ path: `.env.${process.env.NODE_ENV}` }); + process.on('unhandledRejection', (err) => { // eslint-disable-next-line no-console console.error(err); diff --git a/packages/examples/fortune/recording-oracle/src/plugins/config.ts b/packages/examples/fortune/recording-oracle/src/plugins/config.ts index 7af40074ab..6604c5c3e3 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/config.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/config.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; import { Static, Type } from '@sinclair/typebox'; diff --git a/packages/examples/fortune/recording-oracle/src/plugins/curses.ts b/packages/examples/fortune/recording-oracle/src/plugins/curses.ts index 01a2dbee27..e84638b256 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/curses.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/curses.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; diff --git a/packages/examples/fortune/recording-oracle/src/plugins/s3.ts b/packages/examples/fortune/recording-oracle/src/plugins/s3.ts index 0a468edf66..f48ff4ecac 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/s3.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/s3.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; import * as Minio from 'minio'; diff --git a/packages/examples/fortune/recording-oracle/src/plugins/uniqueness.ts b/packages/examples/fortune/recording-oracle/src/plugins/uniqueness.ts index 3cbbaec426..350c92917c 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/uniqueness.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/uniqueness.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; diff --git a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts index 9bb2decc88..e0ac9db037 100644 --- a/packages/examples/fortune/recording-oracle/src/plugins/web3.ts +++ b/packages/examples/fortune/recording-oracle/src/plugins/web3.ts @@ -1,4 +1,3 @@ -import 'dotenv/config'; import fp from 'fastify-plugin'; import { FastifyPluginAsync } from 'fastify'; import { Type } from '@sinclair/typebox'; diff --git a/packages/examples/fortune/recording-oracle/tests/setup.ts b/packages/examples/fortune/recording-oracle/tests/setup.ts index 35e0e2ab42..e989c5b57b 100644 --- a/packages/examples/fortune/recording-oracle/tests/setup.ts +++ b/packages/examples/fortune/recording-oracle/tests/setup.ts @@ -1,3 +1,3 @@ import dotenv from 'dotenv'; -dotenv.config({ path: './.env.test' }); +dotenv.config({ path: './.env.development' }); diff --git a/packages/examples/fortune/setupAccounts.ts b/packages/examples/fortune/setupAccounts.ts new file mode 100644 index 0000000000..ddfd8dce89 --- /dev/null +++ b/packages/examples/fortune/setupAccounts.ts @@ -0,0 +1,55 @@ +/* eslint-disable no-console */ +import Web3 from 'web3'; +import HMTokenAbi from '@human-protocol/core/abis/HMToken.json'; +import StakingAbi from '@human-protocol/core/abis/Staking.json'; + +export const stake = async (web3: Web3) => { + const stakingAddress = '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0'; + const stakeAmount = web3.utils.toWei('10', 'ether'); + + await approve(web3, stakingAddress, stakeAmount); + + const stakingContract = new web3.eth.Contract( + StakingAbi as [], + stakingAddress + ); + const gas = await stakingContract.methods + .stake(stakeAmount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + await stakingContract.methods + .stake(stakeAmount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +}; +export const approve = async (web3: Web3, to: string, amount: string) => { + const hmtContract = new web3.eth.Contract( + HMTokenAbi as [], + '0x5FbDB2315678afecb367f032d93F642f64180aa3' + ); + const gas = await hmtContract.methods + .approve(to, amount) + .estimateGas({ from: web3.eth.defaultAccount }); + const gasPrice = await web3.eth.getGasPrice(); + await hmtContract.methods + .approve(to, amount) + .send({ from: web3.eth.defaultAccount, gas, gasPrice }); +}; + +async function main() { + const web3 = new Web3('http://127.0.0.1:8545'); + const jobRequester = web3.eth.accounts.privateKeyToAccount( + `0xdf57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e` + ); + web3.eth.defaultAccount = jobRequester.address; + await stake(web3); + const reputationOracle = web3.eth.accounts.privateKeyToAccount( + `0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a` + ); + web3.eth.defaultAccount = reputationOracle.address; + await stake(web3); +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/yarn.lock b/yarn.lock index e1ae0e7af6..b78b77cc68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12296,9 +12296,9 @@ globrex@^0.1.2: resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== -"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" From 239ae5ba14e47b73f300b33d51ce0b9709c2855c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 9 Feb 2023 10:19:38 +0100 Subject: [PATCH 213/216] Add specific RPC port to exchange and launcher server --- .../examples/fortune/launcher/server/.env.development | 1 + packages/examples/fortune/launcher/server/package.json | 2 +- .../fortune/launcher/server/src/constants/networks.ts | 2 +- .../examples/fortune/recording-oracle/.env.development | 8 +------- packages/examples/fortune/recording-oracle/package.json | 2 +- .../fortune/recording-oracle/src/constants/networks.ts | 2 +- 6 files changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/examples/fortune/launcher/server/.env.development b/packages/examples/fortune/launcher/server/.env.development index 395a3bcfbc..74acbca90f 100644 --- a/packages/examples/fortune/launcher/server/.env.development +++ b/packages/examples/fortune/launcher/server/.env.development @@ -1,6 +1,7 @@ LOG_LEVEL='debug' API_HOST='localhost' API_PORT=8080 +RPC_PORT=8545 S3_HOST=localhost S3_PORT=9000 S3_ACCESS_KEY=dev diff --git a/packages/examples/fortune/launcher/server/package.json b/packages/examples/fortune/launcher/server/package.json index dfc6cce7b4..5afafb8d96 100644 --- a/packages/examples/fortune/launcher/server/package.json +++ b/packages/examples/fortune/launcher/server/package.json @@ -26,6 +26,6 @@ "build": "tsc", "start:prod": "ts-node build/src/index.js", "start": "cross-env NODE_ENV=development ts-node ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8546\" \"sleep 5 && cross-env RPC_PORT=8546 yarn workspace @human-protocol/core deploy:local && cross-env RPC_PORT=8546 vitest --run\"" } } diff --git a/packages/examples/fortune/launcher/server/src/constants/networks.ts b/packages/examples/fortune/launcher/server/src/constants/networks.ts index 972f7e4bc6..37e522ad02 100644 --- a/packages/examples/fortune/launcher/server/src/constants/networks.ts +++ b/packages/examples/fortune/launcher/server/src/constants/networks.ts @@ -65,7 +65,7 @@ export const ESCROW_NETWORKS: { [ChainId.LOCALHOST]: { chainId: ChainId.LOCALHOST, title: 'Localhost', - rpcUrl: 'http://127.0.0.1:8545', + rpcUrl: `http://127.0.0.1:${process.env.RPC_PORT}`, factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', }, diff --git a/packages/examples/fortune/recording-oracle/.env.development b/packages/examples/fortune/recording-oracle/.env.development index be4b837809..f116fae107 100644 --- a/packages/examples/fortune/recording-oracle/.env.development +++ b/packages/examples/fortune/recording-oracle/.env.development @@ -1,15 +1,9 @@ LOG_LEVEL=info API_HOST=localhost API_PORT=3005 +RPC_PORT=8545 ETH_PRIVATE_KEY=59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d -SALT=kD09c4Elbl -REPORT_GAS=true -TS_NODE_TRANSPILE_ONLY=1 - -TENDERLY_FORK_ID= -ETHERSCAN_API_KEY= -POLYGONSCAN_API_KEY= S3_HOST=localhost S3_PORT=9000 diff --git a/packages/examples/fortune/recording-oracle/package.json b/packages/examples/fortune/recording-oracle/package.json index 2c2480ed32..e92a53060a 100644 --- a/packages/examples/fortune/recording-oracle/package.json +++ b/packages/examples/fortune/recording-oracle/package.json @@ -11,7 +11,7 @@ "build": "tsc", "start:prod": "ts-node build/src/index.js", "start": "cross-env NODE_ENV=development cross-env ts-node ./src/index.ts", - "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 10 && cross-env RPC_PORT=8547 yarn workspace @human-protocol/core deploy:local && vitest --run\"" + "test": "concurrently -k -s first --hide 0 \"hardhat node --port 8547\" \"sleep 10 && cross-env RPC_PORT=8547 yarn workspace @human-protocol/core deploy:local && cross-env RPC_PORT=8547 vitest --run\"" }, "repository": { "type": "git", diff --git a/packages/examples/fortune/recording-oracle/src/constants/networks.ts b/packages/examples/fortune/recording-oracle/src/constants/networks.ts index 2dbeb737e8..d53bbaf9de 100644 --- a/packages/examples/fortune/recording-oracle/src/constants/networks.ts +++ b/packages/examples/fortune/recording-oracle/src/constants/networks.ts @@ -50,7 +50,7 @@ export const ESCROW_NETWORKS: { [ChainId.LOCALHOST]: { chainId: ChainId.LOCALHOST, title: 'Localhost', - rpcUrl: 'http://127.0.0.1:8545', + rpcUrl: `http://127.0.0.1:${process.env.RPC_PORT}`, factoryAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', hmtAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', }, From 7e4da16e8fe767a7a48946743ead760fa0170836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 9 Feb 2023 11:05:14 +0100 Subject: [PATCH 214/216] remove logs --- .../fortune/launcher/client/src/components/JobRequest.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/examples/fortune/launcher/client/src/components/JobRequest.tsx b/packages/examples/fortune/launcher/client/src/components/JobRequest.tsx index ce43cca71b..f5bb9fc9a3 100644 --- a/packages/examples/fortune/launcher/client/src/components/JobRequest.tsx +++ b/packages/examples/fortune/launcher/client/src/components/JobRequest.tsx @@ -67,13 +67,11 @@ export const JobRequest = ({ const handleLaunch = async () => { if (!signer || !address) return; - console.log(chainId, jobRequest.chainId); if (chainId !== jobRequest.chainId) { switchNetwork?.(jobRequest.chainId); return; } - console.log('b'); setIsLoading(true); const data: FortuneJobRequestType = { From f2e446e96106827baf10073593ed9987c05825af Mon Sep 17 00:00:00 2001 From: portuu3 Date: Thu, 9 Feb 2023 11:26:29 +0100 Subject: [PATCH 215/216] comment subgraphs cd, contract versions wont match --- .github/workflows/cd-subgraph.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cd-subgraph.yaml b/.github/workflows/cd-subgraph.yaml index 6b45a690b2..283630da6a 100644 --- a/.github/workflows/cd-subgraph.yaml +++ b/.github/workflows/cd-subgraph.yaml @@ -28,10 +28,10 @@ jobs: graph: mumbai-v1 - name: mbase graph: moonbase-alpha-v1 - - name: avalanche - graph: avalanche - - name: fuji - graph: fuji + # - name: avalanche + # graph: avalanche + # - name: fuji + # graph: fuji fail-fast: true max-parallel: 3 steps: From 1fa299cea9914c2d4e5a563293ae4e04cb839f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Thu, 9 Feb 2023 12:06:03 +0100 Subject: [PATCH 216/216] Fix env error --- packages/examples/fortune/launcher/server/src/index.ts | 2 +- packages/examples/fortune/recording-oracle/src/index.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/examples/fortune/launcher/server/src/index.ts b/packages/examples/fortune/launcher/server/src/index.ts index 8884be25ff..d6c43795dc 100644 --- a/packages/examples/fortune/launcher/server/src/index.ts +++ b/packages/examples/fortune/launcher/server/src/index.ts @@ -1,7 +1,7 @@ import dotenv from 'dotenv'; +dotenv.config({ path: `.env.${process.env.NODE_ENV}` }); import getServer from './server'; -dotenv.config({ path: `.env.${process.env.NODE_ENV}` }); process.on('unhandledRejection', (err) => { // eslint-disable-next-line no-console console.error(err); diff --git a/packages/examples/fortune/recording-oracle/src/index.ts b/packages/examples/fortune/recording-oracle/src/index.ts index ce727f0e61..d6c43795dc 100644 --- a/packages/examples/fortune/recording-oracle/src/index.ts +++ b/packages/examples/fortune/recording-oracle/src/index.ts @@ -1,7 +1,6 @@ import dotenv from 'dotenv'; -import getServer from './server'; - dotenv.config({ path: `.env.${process.env.NODE_ENV}` }); +import getServer from './server'; process.on('unhandledRejection', (err) => { // eslint-disable-next-line no-console
setEscrow(e.target.value)} value={escrow} /> - +
- Paste either the address from the "Escrow created" field or a new one - Address: {escrow} - Status: {escrowStatus} - Balance: {balance} - Recording Oracle: {recordingOracle} - Recording Oracle Stake: {recordingOracleStake}% - Reputation Oracle: {reputationOracle} - Reputation Oracle Stake: {reputationOracleStake}% - {exchangeUrl &&
Exchange } + + {' '} + Paste either the address from the "Escrow created" field or a new one + + + {' '} + Address: {escrow}{' '} + + + {' '} + Status: {escrowStatus} + + + {' '} + Balance: {balance} + + + {' '} + Recording Oracle: {recordingOracle} + + + {' '} + Recording Oracle Stake: {recordingOracleStake}% + + + {' '} + Reputation Oracle: {reputationOracle} + + + {' '} + Reputation Oracle Stake: {reputationOracleStake}% + + {exchangeUrl && ( + + {' '} + + {' '} + Exchange{' '} + + + )} {!manifestUrl && Manifest } - {manifestUrl && Manifest URL } - + {manifestUrl && ( + + {' '} + Manifest URL{' '} + + )} + {!finalResultsUrl && Final Results } - {finalResultsUrl && Final Results } - - { escrowStatus === 'Launched' && ( - setMainEscrow(escrow)} /> + {finalResultsUrl && ( + + {' '} + Final Results{' '} + )} + + {escrowStatus === 'Launched' && ( + setMainEscrow(escrow)} + /> + )}