diff --git a/contracts/dxdao/DxAvatar.sol b/contracts/dao/DAOAvatar.sol similarity index 79% rename from contracts/dxdao/DxAvatar.sol rename to contracts/dao/DAOAvatar.sol index f7c4246a..c38ef400 100644 --- a/contracts/dxdao/DxAvatar.sol +++ b/contracts/dao/DAOAvatar.sol @@ -1,17 +1,18 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; /** - @title DXAvatar - @author github:miltontulli - @dev An Avatar holds tokens, reputation and ether for a controller + @title DAO Avatar + @dev The avatar, representing the DAO, owned by the DAO, controls the reputation and funds of the DAO. */ -contract DXAvatar is OwnableUpgradeable { +contract DAOAvatar is OwnableUpgradeable { event CallExecuted(address indexed _to, bytes _data, uint256 _value, bool _success); + receive() external payable {} + function initialize(address _owner) public initializer { __Ownable_init(); transferOwnership(_owner); diff --git a/contracts/dao/DAOController.sol b/contracts/dao/DAOController.sol new file mode 100644 index 00000000..a4744416 --- /dev/null +++ b/contracts/dao/DAOController.sol @@ -0,0 +1,241 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; + +import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol"; +import "./DAOAvatar.sol"; +import "./DAOReputation.sol"; + +/** + * @title DAO Controller + * @dev A controller controls and connect the organizations schemes, reputation and avatar. + * The schemes execute proposals through the controller to the avatar. + * Each scheme has it own parameters and operation permissions. + */ +contract DAOController is Initializable { + using SafeMathUpgradeable for uint256; + using EnumerableSetUpgradeable for EnumerableSetUpgradeable.AddressSet; + using EnumerableSetUpgradeable for EnumerableSetUpgradeable.Bytes32Set; + + EnumerableSetUpgradeable.Bytes32Set private activeProposals; + EnumerableSetUpgradeable.Bytes32Set private inactiveProposals; + mapping(bytes32 => address) public schemeOfProposal; + + struct ProposalAndScheme { + bytes32 proposalId; + address scheme; + } + + DAOReputation public reputationToken; + + struct Scheme { + bytes32 paramsHash; // a hash voting parameters of the scheme + bool isRegistered; + bool canManageSchemes; + bool canMakeAvatarCalls; + } + + address[] public schemesAddresses; + mapping(address => Scheme) public schemes; + uint256 public schemesWithManageSchemesPermission; + + event RegisterScheme(address indexed _sender, address indexed _scheme); + event UnregisterScheme(address indexed _sender, address indexed _scheme); + + function initialize(address _scheme, address _reputationToken) public initializer { + schemes[_scheme] = Scheme({ + paramsHash: bytes32(0), + isRegistered: true, + canManageSchemes: true, + canMakeAvatarCalls: true + }); + schemesWithManageSchemesPermission = 1; + reputationToken = DAOReputation(_reputationToken); + } + + modifier onlyRegisteredScheme() { + require(schemes[msg.sender].isRegistered, "DAOController: Sender is not a registered scheme"); + _; + } + + modifier onlyRegisteringSchemes() { + require(schemes[msg.sender].canManageSchemes, "DAOController: Sender cannot manage schemes"); + _; + } + + modifier onlyAvatarCallScheme() { + require(schemes[msg.sender].canMakeAvatarCalls, "DAOController: Sender cannot perform avatar calls"); + _; + } + + /** + * @dev register a scheme + * @param _scheme the address of the scheme + * @param _paramsHash a hashed configuration of the usage of the scheme + * @param _canManageSchemes whether the scheme is able to manage schemes + * @param _canMakeAvatarCalls whether the scheme is able to make avatar calls + * @return bool success of the operation + */ + function registerScheme( + address _scheme, + bytes32 _paramsHash, + bool _canManageSchemes, + bool _canMakeAvatarCalls + ) external onlyRegisteredScheme onlyRegisteringSchemes returns (bool) { + Scheme memory scheme = schemes[_scheme]; + + // Add or change the scheme: + if ((!scheme.isRegistered || !scheme.canManageSchemes) && _canManageSchemes) { + schemesWithManageSchemesPermission = schemesWithManageSchemesPermission.add(1); + } + + schemes[_scheme] = Scheme({ + paramsHash: _paramsHash, + isRegistered: true, + canManageSchemes: _canManageSchemes, + canMakeAvatarCalls: _canMakeAvatarCalls + }); + + emit RegisterScheme(msg.sender, _scheme); + + return true; + } + + /** + * @dev unregister a scheme + * @param _scheme the address of the scheme + * @return bool success of the operation + */ + function unregisterScheme(address _scheme) external onlyRegisteredScheme onlyRegisteringSchemes returns (bool) { + Scheme memory scheme = schemes[_scheme]; + + //check if the scheme is registered + if (_isSchemeRegistered(_scheme) == false) { + return false; + } + + if (scheme.isRegistered && scheme.canManageSchemes) { + require( + schemesWithManageSchemesPermission > 1, + "DAOController: Cannot unregister last scheme with manage schemes permission" + ); + schemesWithManageSchemesPermission = schemesWithManageSchemesPermission.sub(1); + } + + emit UnregisterScheme(msg.sender, _scheme); + + schemes[_scheme] = Scheme({ + paramsHash: bytes32(0), + isRegistered: false, + canManageSchemes: false, + canMakeAvatarCalls: false + }); + return true; + } + + /** + * @dev perform a generic call to an arbitrary contract + * @param _contract the contract's address to call + * @param _data ABI-encoded contract call to call `_contract` address. + * @param _avatar the controller's avatar address + * @param _value value (ETH) to transfer with the transaction + * @return bool -success + * bytes - the return value of the called _contract's function. + */ + function avatarCall( + address _contract, + bytes calldata _data, + DAOAvatar _avatar, + uint256 _value + ) external onlyRegisteredScheme onlyAvatarCallScheme returns (bool, bytes memory) { + return _avatar.executeCall(_contract, _data, _value); + } + + /** + * @dev Adds a proposal to the active proposals list + * @param _proposalId the proposalId + */ + function startProposal(bytes32 _proposalId) external onlyRegisteredScheme { + activeProposals.add(_proposalId); + schemeOfProposal[_proposalId] = msg.sender; + } + + /** + * @dev Moves a proposal from the active proposals list to the inactive list + * @param _proposalId the proposalId + */ + function endProposal(bytes32 _proposalId) external { + require( + schemes[msg.sender].isRegistered || + (!schemes[schemeOfProposal[_proposalId]].isRegistered && activeProposals.contains(_proposalId)), + "DAOController: Sender is not a registered scheme or proposal is not active" + ); + activeProposals.remove(_proposalId); + inactiveProposals.add(_proposalId); + } + + /** + * @dev Burns dao reputation + * @param _amount the amount of reputation to burn + * @param _account the account to burn reputation from + */ + function burnReputation(uint256 _amount, address _account) external onlyRegisteredScheme returns (bool) { + return reputationToken.burn(_account, _amount); + } + + /** + * @dev Mints dao reputation + * @param _amount the amount of reputation to mint + * @param _account the account to mint reputation from + */ + function mintReputation(uint256 _amount, address _account) external onlyRegisteredScheme returns (bool) { + return reputationToken.mint(_account, _amount); + } + + function isSchemeRegistered(address _scheme) external view returns (bool) { + return _isSchemeRegistered(_scheme); + } + + function getSchemeParameters(address _scheme) external view returns (bytes32) { + return schemes[_scheme].paramsHash; + } + + function getSchemeCanManageSchemes(address _scheme) external view returns (bool) { + return schemes[_scheme].canManageSchemes; + } + + function getSchemeCanMakeAvatarCalls(address _scheme) external view returns (bool) { + return schemes[_scheme].canMakeAvatarCalls; + } + + function getSchemesCountWithManageSchemesPermissions() external view returns (uint256) { + return schemesWithManageSchemesPermission; + } + + function _isSchemeRegistered(address _scheme) private view returns (bool) { + return (schemes[_scheme].isRegistered); + } + + function getActiveProposals() external view returns (ProposalAndScheme[] memory activeProposalsArray) { + activeProposalsArray = new ProposalAndScheme[](activeProposals.length()); + for (uint256 i = 0; i < activeProposals.length(); i++) { + activeProposalsArray[i].proposalId = activeProposals.at(i); + activeProposalsArray[i].scheme = schemeOfProposal[activeProposals.at(i)]; + } + return activeProposalsArray; + } + + function getInactiveProposals() external view returns (ProposalAndScheme[] memory inactiveProposalsArray) { + inactiveProposalsArray = new ProposalAndScheme[](inactiveProposals.length()); + for (uint256 i = 0; i < inactiveProposals.length(); i++) { + inactiveProposalsArray[i].proposalId = inactiveProposals.at(i); + inactiveProposalsArray[i].scheme = schemeOfProposal[inactiveProposals.at(i)]; + } + return inactiveProposalsArray; + } + + function getDaoReputation() external view returns (DAOReputation) { + return reputationToken; + } +} diff --git a/contracts/dao/DAOReputation.sol b/contracts/dao/DAOReputation.sol new file mode 100644 index 00000000..94f94a51 --- /dev/null +++ b/contracts/dao/DAOReputation.sol @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.17; + +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol"; + +/** + * @title DAO Reputation + * @dev An ERC20 token that is non-transferable, owned and controlled by the DAO. + * Used by the DAO to vote on proposals. + * It uses a snapshot mechanism to keep track of the reputation at the moment of each proposal creation. + */ +contract DAOReputation is OwnableUpgradeable, ERC20SnapshotUpgradeable { + event Mint(address indexed _to, uint256 _amount); + event Burn(address indexed _from, uint256 _amount); + + function initialize(string memory name, string memory symbol) external initializer { + __ERC20_init(name, symbol); + __Ownable_init(); + } + + // @dev Not allow the transfer of tokens + function _transfer( + address sender, + address recipient, + uint256 amount + ) internal virtual override { + revert("DAOReputation: Reputation tokens are non-transferable"); + } + + // @notice Generates `_amount` reputation that are assigned to `_account` + // @param _account The address that will be assigned the new reputation + // @param _amount The quantity of reputation generated + // @return True if the reputation are generated correctly + function mint(address _account, uint256 _amount) external onlyOwner returns (bool) { + _mint(_account, _amount); + _snapshot(); + emit Mint(_account, _amount); + return true; + } + + function mintMultiple(address[] memory _accounts, uint256[] memory _amount) external onlyOwner returns (bool) { + for (uint256 i = 0; i < _accounts.length; i++) { + _mint(_accounts[i], _amount[i]); + _snapshot(); + emit Mint(_accounts[i], _amount[i]); + } + return true; + } + + // @notice Burns `_amount` reputation from `_account` + // @param _account The address that will lose the reputation + // @param _amount The quantity of reputation to burn + // @return True if the reputation are burned correctly + function burn(address _account, uint256 _amount) external onlyOwner returns (bool) { + _burn(_account, _amount); + _snapshot(); + emit Burn(_account, _amount); + return true; + } + + function burnMultiple(address[] memory _accounts, uint256 _amount) external onlyOwner returns (bool) { + for (uint256 i = 0; i < _accounts.length; i++) { + _burn(_accounts[i], _amount); + _snapshot(); + emit Burn(_accounts[i], _amount); + } + return true; + } + + /** + * @dev Get the current snapshotId + */ + function getCurrentSnapshotId() public view returns (uint256) { + return _getCurrentSnapshotId(); + } +} diff --git a/contracts/dao/schemes/AvatarScheme.sol b/contracts/dao/schemes/AvatarScheme.sol new file mode 100644 index 00000000..90a6483a --- /dev/null +++ b/contracts/dao/schemes/AvatarScheme.sol @@ -0,0 +1,143 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; + +import "@openzeppelin/contracts/utils/math/SafeMath.sol"; +import "@openzeppelin/contracts/utils/Address.sol"; +import "./Scheme.sol"; + +/** + * @title AvatarScheme. + * @dev A scheme for proposing and executing calls to any contract from the DAO avatar + * It has a value call controller address, in case of the controller address ot be set the scheme will be doing + * generic calls to the dao controller. If the controller address is not set it will e executing raw calls form the + * scheme itself. + * The scheme can only execute calls allowed to in the permission registry, if the controller address is set + * the permissions will be checked using the avatar address as sender, if not the scheme address will be used as + * sender. + */ +contract AvatarScheme is Scheme { + using SafeMath for uint256; + using Address for address; + + /** + * @dev Set the max amount of seconds that a proposal has to be executed + * only callable from the avatar address + * @param _maxSecondsForExecution New max proposal time in seconds to be used + */ + function setMaxSecondsForExecution(uint256 _maxSecondsForExecution) external override { + require( + msg.sender == address(avatar), + "WalletScheme: setMaxSecondsForExecution is callable only from the avatar" + ); + + require( + _maxSecondsForExecution >= 86400, + "WalletScheme: _maxSecondsForExecution cant be less than 86400 seconds" + ); + maxSecondsForExecution = _maxSecondsForExecution; + } + + /** + * @dev execution of proposals, can only be called by the voting machine in which the vote is held. + * @param _proposalId the ID of the voting in the voting machine + * @param _winningOption The winning option in the voting machine + * @return bool success + */ + function executeProposal(bytes32 _proposalId, uint256 _winningOption) + external + override + onlyVotingMachine + returns (bool) + { + // We use isExecutingProposal variable to avoid re-entrancy in proposal execution + require(!executingProposal, "AvatarScheme: proposal execution already running"); + executingProposal = true; + + Proposal storage proposal = proposals[_proposalId]; + require(proposal.state == ProposalState.Submitted, "AvatarScheme: must be a submitted proposal"); + + require( + controller.getSchemeCanMakeAvatarCalls(address(this)), + "AvatarScheme: scheme have to make avatar calls" + ); + + if (proposal.submittedTime.add(maxSecondsForExecution) < block.timestamp) { + // If the amount of time passed since submission plus max proposal time is lower than block timestamp + // the proposal timeout execution is reached and proposal cant be executed from now on + + proposal.state = ProposalState.ExecutionTimeout; + emit ProposalStateChange(_proposalId, uint256(ProposalState.ExecutionTimeout)); + } else if (_winningOption == 2) { + proposal.state = ProposalState.Rejected; + emit ProposalStateChange(_proposalId, uint256(ProposalState.Rejected)); + } else { + uint256 oldRepSupply = getNativeReputationTotalSupply(); + + controller.avatarCall( + address(permissionRegistry), + abi.encodeWithSignature("setERC20Balances()"), + avatar, + 0 + ); + + uint256 callIndex = 0; + + for (callIndex; callIndex < proposal.to.length; callIndex++) { + bytes memory _data = proposal.callData[callIndex]; + bytes4 callDataFuncSignature; + assembly { + callDataFuncSignature := mload(add(_data, 32)) + } + + bool callsSucessResult = false; + // The permission registry keeps track of all value transferred and checks call permission + (callsSucessResult, ) = controller.avatarCall( + address(permissionRegistry), + abi.encodeWithSignature( + "setETHPermissionUsed(address,address,bytes4,uint256)", + avatar, + proposal.to[callIndex], + callDataFuncSignature, + proposal.value[callIndex] + ), + avatar, + 0 + ); + require(callsSucessResult, "AvatarScheme: setETHPermissionUsed failed"); + + (callsSucessResult, ) = controller.avatarCall( + proposal.to[callIndex], + proposal.callData[callIndex], + avatar, + proposal.value[callIndex] + ); + require(callsSucessResult, "AvatarScheme: Proposal call failed"); + + proposal.state = ProposalState.ExecutionSucceeded; + } + + // Cant mint or burn more REP than the allowed percentaged set in the wallet scheme initialization + require( + (oldRepSupply.mul(uint256(100).add(maxRepPercentageChange)).div(100) >= + getNativeReputationTotalSupply()) && + (oldRepSupply.mul(uint256(100).sub(maxRepPercentageChange)).div(100) <= + getNativeReputationTotalSupply()), + "AvatarScheme: maxRepPercentageChange passed" + ); + + require(permissionRegistry.checkERC20Limits(address(avatar)), "AvatarScheme: ERC20 limits passed"); + + emit ProposalStateChange(_proposalId, uint256(ProposalState.ExecutionSucceeded)); + } + controller.endProposal(_proposalId); + executingProposal = false; + return true; + } + + /** + * @dev Get the scheme type + */ + function getSchemeType() external view override returns (string memory) { + return "AvatarScheme_v1"; + } +} diff --git a/contracts/dao/schemes/Scheme.sol b/contracts/dao/schemes/Scheme.sol new file mode 100644 index 00000000..58030f36 --- /dev/null +++ b/contracts/dao/schemes/Scheme.sol @@ -0,0 +1,278 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; + +import "@openzeppelin/contracts/utils/math/SafeMath.sol"; +import "@openzeppelin/contracts/utils/Address.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "../../utils/PermissionRegistry.sol"; +import "../DAOReputation.sol"; +import "../DAOAvatar.sol"; +import "../DAOController.sol"; +import "../votingMachine/DXDVotingMachineCallbacks.sol"; + +/** + * @title WalletScheme. + * @dev A scheme for proposing and executing calls to any contract except itself + * It has a value call controller address, in case of the controller address ot be set the scheme will be doing + * generic calls to the dao controller. If the controller address is not set it will e executing raw calls form the + * scheme itself. + * The scheme can only execute calls allowed to in the permission registry, if the controller address is set + * the permissions will be checked using the avatar address as sender, if not the scheme address will be used as + * sender. + */ +abstract contract Scheme is DXDVotingMachineCallbacks { + using SafeMath for uint256; + using Address for address; + + enum ProposalState { + None, + Submitted, + Rejected, + ExecutionSucceeded, + ExecutionTimeout + } + + struct Proposal { + address[] to; + bytes[] callData; + uint256[] value; + uint256 totalOptions; + ProposalState state; + string title; + string descriptionHash; + uint256 submittedTime; + } + + mapping(bytes32 => Proposal) public proposals; + bytes32[] public proposalsList; + + DAOAvatar public avatar; + PermissionRegistry public permissionRegistry; + string public schemeName; + uint256 public maxSecondsForExecution; + uint256 public maxRepPercentageChange; + + // Boolean that is true when is executing a proposal, to avoid re-entrancy attacks. + bool internal executingProposal; + + event ProposalStateChange(bytes32 indexed _proposalId, uint256 indexed _state); + + /** + * @dev initialize + * @param _avatar the avatar address + * @param _votingMachine the voting machine address + * @param _controller The controller address + * @param _permissionRegistry The address of the permission registry contract + * @param _maxSecondsForExecution The maximum amount of time in seconds for a proposal without executed since + * submitted time + * @param _maxRepPercentageChange The maximum percentage allowed to be changed in REP total supply after proposal + * execution + */ + function initialize( + address payable _avatar, + address _votingMachine, + address _controller, + address _permissionRegistry, + string calldata _schemeName, + uint256 _maxSecondsForExecution, + uint256 _maxRepPercentageChange + ) external { + require(address(avatar) == address(0), "WalletScheme: cannot init twice"); + require(_avatar != address(0), "WalletScheme: avatar cannot be zero"); + require(_controller != address(0), "WalletScheme: controller cannot be zero"); + require( + _maxSecondsForExecution >= 86400, + "WalletScheme: _maxSecondsForExecution cant be less than 86400 seconds" + ); + avatar = DAOAvatar(_avatar); + votingMachine = _votingMachine; + controller = DAOController(_controller); + permissionRegistry = PermissionRegistry(_permissionRegistry); + schemeName = _schemeName; + maxSecondsForExecution = _maxSecondsForExecution; + maxRepPercentageChange = _maxRepPercentageChange; + } + + /** + * @dev Set the max amount of seconds that a proposal has to be executed, only callable from the avatar address + * @param _maxSecondsForExecution New max proposal time in seconds to be used + */ + function setMaxSecondsForExecution(uint256 _maxSecondsForExecution) external virtual { + require( + msg.sender == address(avatar) || msg.sender == address(this), + "WalletScheme: setMaxSecondsForExecution is callable only from the avatar or the scheme" + ); + require( + _maxSecondsForExecution >= 86400, + "WalletScheme: _maxSecondsForExecution cant be less than 86400 seconds" + ); + maxSecondsForExecution = _maxSecondsForExecution; + } + + /** + * @dev execution of proposals, can only be called by the voting machine in which the vote is held. + * @param _proposalId the ID of the voting in the voting machine + * @param _winningOption The winning option in the voting machine + * @return bool success + */ + function executeProposal(bytes32 _proposalId, uint256 _winningOption) + external + virtual + onlyVotingMachine + returns (bool) + {} + + /** + * @dev Propose calls to be executed, the calls have to be allowed by the permission registry + * @param _to - The addresses to call + * @param _callData - The abi encode data for the calls + * @param _value value(ETH) to transfer with the calls + * @param _totalOptions The amount of options to be voted on + * @param _title title of proposal + * @param _descriptionHash proposal description hash + * @return an id which represents the proposal + */ + function proposeCalls( + address[] calldata _to, + bytes[] calldata _callData, + uint256[] calldata _value, + uint256 _totalOptions, + string calldata _title, + string calldata _descriptionHash + ) external returns (bytes32) { + // Check the proposal calls + for (uint256 i = 0; i < _to.length; i++) { + bytes4 callDataFuncSignature = getFuncSignature(_callData[i]); + + // This will fail only when and ERC20 transfer or approve with ETH value is proposed + require( + (callDataFuncSignature != bytes4(keccak256("transfer(address,uint256)")) && + callDataFuncSignature != bytes4(keccak256("approve(address,uint256)"))) || _value[i] == 0, + "WalletScheme: cant propose ERC20 transfers with value" + ); + } + require(_to.length == _callData.length, "WalletScheme: invalid _callData length"); + require(_to.length == _value.length, "WalletScheme: invalid _value length"); + + require(_totalOptions == 2, "WalletScheme: The total amount of options should be 2"); + + bytes32 voteParams = controller.getSchemeParameters(address(this)); + + // Get the proposal id that will be used from the voting machine + // bytes32 proposalId = votingMachine.propose(_totalOptions, voteParams, msg.sender, address(avatar)); + bytes32 proposalId = abi.decode( + votingMachine.functionCall( + abi.encodeWithSignature( + "propose(uint256,bytes32,address,address)", + _totalOptions, + voteParams, + msg.sender, + avatar + ), + "WalletScheme: DXDVotingMachine callback propose error" + ), + (bytes32) + ); + + controller.startProposal(proposalId); + + // Add the proposal to the proposals mapping, proposals list and proposals information mapping + proposals[proposalId] = Proposal({ + to: _to, + callData: _callData, + value: _value, + state: ProposalState.Submitted, + totalOptions: _totalOptions, + title: _title, + descriptionHash: _descriptionHash, + submittedTime: block.timestamp + }); + // slither-disable-next-line all + proposalsList.push(proposalId); + proposalSnapshots[proposalId] = DAOReputation(getReputation()).getCurrentSnapshotId(); + emit ProposalStateChange(proposalId, uint256(ProposalState.Submitted)); + return proposalId; + } + + /** + * @dev Get the information of a proposal by id + * @param proposalId the ID of the proposal + */ + function getOrganizationProposal(bytes32 proposalId) + public + view + returns ( + address[] memory to, + bytes[] memory callData, + uint256[] memory value, + ProposalState state, + uint256 totalOptions, + string memory title, + string memory descriptionHash, + uint256 submittedTime + ) + { + return ( + proposals[proposalId].to, + proposals[proposalId].callData, + proposals[proposalId].value, + proposals[proposalId].state, + proposals[proposalId].totalOptions, + proposals[proposalId].title, + proposals[proposalId].descriptionHash, + proposals[proposalId].submittedTime + ); + } + + /** + * @dev Get the information of a proposal by index + * @param proposalIndex the index of the proposal in the proposals list + */ + function getOrganizationProposalByIndex(uint256 proposalIndex) + external + view + returns ( + address[] memory to, + bytes[] memory callData, + uint256[] memory value, + ProposalState state, + uint256 totalOptions, + string memory title, + string memory descriptionHash, + uint256 submittedTime + ) + { + return getOrganizationProposal(proposalsList[proposalIndex]); + } + + /** + * @dev Get call data signature + * @param data The bytes data of the data to get the signature + */ + function getFuncSignature(bytes calldata data) public pure returns (bytes4) { + if (data.length >= 4) { + return bytes4(data[:4]); + } else { + return bytes4(0); + } + } + + /** + * @dev Get the proposals length + */ + function getOrganizationProposalsLength() external view returns (uint256) { + return proposalsList.length; + } + + /** + * @dev Get the proposals ids + */ + function getOrganizationProposals() external view returns (bytes32[] memory) { + return proposalsList; + } + + /** + * @dev Get the scheme type + */ + function getSchemeType() external view virtual returns (string memory) {} +} diff --git a/contracts/dao/schemes/WalletScheme.sol b/contracts/dao/schemes/WalletScheme.sol new file mode 100644 index 00000000..a6e2d68e --- /dev/null +++ b/contracts/dao/schemes/WalletScheme.sol @@ -0,0 +1,131 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; + +import "@openzeppelin/contracts/utils/math/SafeMath.sol"; +import "@openzeppelin/contracts/utils/Address.sol"; +import "./Scheme.sol"; + +/** + * @title WalletScheme. + * @dev A scheme for proposing and executing calls to any contract except itself + * It has a value call controller address, in case of the controller address ot be set the scheme will be doing + * generic calls to the dao controller. If the controller address is not set it will e executing raw calls form the + * scheme itself. + * The scheme can only execute calls allowed to in the permission registry, if the controller address is set + * the permissions will be checked using the avatar address as sender, if not the scheme address will be used as + * sender. + */ +contract WalletScheme is Scheme { + using SafeMath for uint256; + using Address for address; + + /** + * @dev Receive function that allows the wallet to receive ETH when the controller address is not set + */ + receive() external payable {} + + /** + * @dev Set the max amount of seconds that a proposal has to be executed, only callable from the avatar address + * @param _maxSecondsForExecution New max proposal time in seconds to be used + */ + function setMaxSecondsForExecution(uint256 _maxSecondsForExecution) external override { + require( + msg.sender == address(this), + "WalletScheme: setMaxSecondsForExecution is callable only from the scheme" + ); + require( + _maxSecondsForExecution >= 86400, + "WalletScheme: _maxSecondsForExecution cant be less than 86400 seconds" + ); + maxSecondsForExecution = _maxSecondsForExecution; + } + + /** + * @dev execution of proposals, can only be called by the voting machine in which the vote is held. + * @param _proposalId the ID of the voting in the voting machine + * @param _winningOption The winning option in the voting machine + * @return bool success + */ + function executeProposal(bytes32 _proposalId, uint256 _winningOption) + external + override + onlyVotingMachine + returns (bool) + { + // We use isExecutingProposal variable to avoid re-entrancy in proposal execution + require(!executingProposal, "WalletScheme: proposal execution already running"); + executingProposal = true; + + Proposal storage proposal = proposals[_proposalId]; + require(proposal.state == ProposalState.Submitted, "WalletScheme: must be a submitted proposal"); + + require( + !controller.getSchemeCanMakeAvatarCalls(address(this)), + "WalletScheme: scheme cannot make avatar calls" + ); + + if (proposal.submittedTime.add(maxSecondsForExecution) < block.timestamp) { + // If the amount of time passed since submission plus max proposal time is lower than block timestamp + // the proposal timeout execution is reached and proposal cant be executed from now on + + proposal.state = ProposalState.ExecutionTimeout; + emit ProposalStateChange(_proposalId, uint256(ProposalState.ExecutionTimeout)); + } else if (_winningOption == 2) { + proposal.state = ProposalState.Rejected; + emit ProposalStateChange(_proposalId, uint256(ProposalState.Rejected)); + } else { + uint256 oldRepSupply = getNativeReputationTotalSupply(); + + permissionRegistry.setERC20Balances(); + + uint256 callIndex = 0; + + for (callIndex; callIndex < proposal.to.length; callIndex++) { + bytes memory _data = proposal.callData[callIndex]; + bytes4 callDataFuncSignature; + assembly { + callDataFuncSignature := mload(add(_data, 32)) + } + + bool callsSucessResult = false; + // The permission registry keeps track of all value transferred and checks call permission + permissionRegistry.setETHPermissionUsed( + address(this), + proposal.to[callIndex], + callDataFuncSignature, + proposal.value[callIndex] + ); + (callsSucessResult, ) = proposal.to[callIndex].call{value: proposal.value[callIndex]}( + proposal.callData[callIndex] + ); + + require(callsSucessResult, "WalletScheme: Proposal call failed"); + + proposal.state = ProposalState.ExecutionSucceeded; + } + + // Cant mint or burn more REP than the allowed percentaged set in the wallet scheme initialization + require( + (oldRepSupply.mul(uint256(100).add(maxRepPercentageChange)).div(100) >= + getNativeReputationTotalSupply()) && + (oldRepSupply.mul(uint256(100).sub(maxRepPercentageChange)).div(100) <= + getNativeReputationTotalSupply()), + "WalletScheme: maxRepPercentageChange passed" + ); + + require(permissionRegistry.checkERC20Limits(address(this)), "WalletScheme: ERC20 limits passed"); + + emit ProposalStateChange(_proposalId, uint256(ProposalState.ExecutionSucceeded)); + } + controller.endProposal(_proposalId); + executingProposal = false; + return true; + } + + /** + * @dev Get the scheme type + */ + function getSchemeType() external view override returns (string memory) { + return "WalletScheme_v1"; + } +} diff --git a/contracts/dxvote/DXDVotingMachine.sol b/contracts/dao/votingMachine/DXDVotingMachine.sol similarity index 94% rename from contracts/dxvote/DXDVotingMachine.sol rename to contracts/dao/votingMachine/DXDVotingMachine.sol index 6be20362..18d8cba9 100644 --- a/contracts/dxvote/DXDVotingMachine.sol +++ b/contracts/dao/votingMachine/DXDVotingMachine.sol @@ -1,43 +1,15 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; -import {RealMath} from "../utils/RealMath.sol"; +import {RealMath} from "../../utils/RealMath.sol"; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; import "@openzeppelin/contracts/utils/math/Math.sol"; import "@openzeppelin/contracts/utils/Address.sol"; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -interface ProposalExecuteInterface { - function executeProposal(bytes32 _proposalId, int256 _decision) external returns (bool); -} - -interface VotingMachineCallbacksInterface { - function mintReputation( - uint256 _amount, - address _beneficiary, - bytes32 _proposalId - ) external returns (bool); - - function burnReputation( - uint256 _amount, - address _owner, - bytes32 _proposalId - ) external returns (bool); - - function stakingTokenTransfer( - IERC20 _stakingToken, - address _beneficiary, - uint256 _amount, - bytes32 _proposalId - ) external returns (bool); - - function getTotalReputationSupply(bytes32 _proposalId) external view returns (uint256); - - function reputationOf(address _owner, bytes32 _proposalId) external view returns (uint256); - - function balanceOfStakingToken(IERC20 _stakingToken, bytes32 _proposalId) external view returns (uint256); -} +import "./DXDVotingMachineCallbacksInterface.sol"; +import "./ProposalExecuteInterface.sol"; /** * @title GenesisProtocol implementation designed for DXdao @@ -248,6 +220,7 @@ contract DXDVotingMachine { IERC20 public stakingToken; address private constant GEN_TOKEN_ADDRESS = 0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf; uint256 private constant MAX_BOOSTED_PROPOSALS = 4096; + address public avatarOwner; // Digest describing the data the user signs according EIP 712. // Needs to match what is passed to Metamask. @@ -301,7 +274,7 @@ contract DXDVotingMachine { /** * @dev Constructor */ - constructor(IERC20 _stakingToken) { + constructor(IERC20 _stakingToken, address _avatarOwner) { //The GEN token (staking token) address is hard coded in the contract by GEN_TOKEN_ADDRESS . //This will work for a network which already hosted the GEN token on this address (e.g mainnet). //If such contract address does not exist in the network (e.g ganache) @@ -314,6 +287,7 @@ contract DXDVotingMachine { } else { stakingToken = _stakingToken; } + avatarOwner = _avatarOwner; } /** @@ -327,6 +301,14 @@ contract DXDVotingMachine { organizationRefunds[msg.sender].balance = organizationRefunds[msg.sender].balance.add(msg.value); } + /** + * @dev Allows the avatarOwner to claim staking tokens from the voting machine + */ + function claimStakingTokens() external { + require(msg.sender == avatarOwner, "DXDVotingMachine: Only avatar owner can claim staking tokens"); + stakingToken.transfer(avatarOwner, stakingToken.balanceOf(address(this))); + } + /** * @dev executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired * it rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function. @@ -497,7 +479,7 @@ contract DXDVotingMachine { emit Redeem(_proposalId, organizations[proposal.organizationId], _beneficiary, rewards[0]); } if (rewards[1].add(rewards[2]) != 0) { - VotingMachineCallbacksInterface(proposal.callbacks).mintReputation( + DXDVotingMachineCallbacksInterface(proposal.callbacks).mintReputation( rewards[1].add(rewards[2]), _beneficiary, _proposalId @@ -537,21 +519,10 @@ contract DXDVotingMachine { //as staker potentialAmount = (staker.amount4Bounty * proposal.daoBounty) / totalWinningStakes; } - if ( - (potentialAmount != 0) && - (VotingMachineCallbacksInterface(proposal.callbacks).balanceOfStakingToken(stakingToken, _proposalId) >= - potentialAmount) - ) { + if ((potentialAmount != 0) && (stakingToken.balanceOf(address(this)) >= potentialAmount)) { staker.amount4Bounty = 0; proposal.daoBountyRemain = proposal.daoBountyRemain.sub(potentialAmount); - require( - VotingMachineCallbacksInterface(proposal.callbacks).stakingTokenTransfer( - stakingToken, - _beneficiary, - potentialAmount, - _proposalId - ) - ); + require(stakingToken.transfer(_beneficiary, potentialAmount), "fail transfer of daoBounty"); redeemedAmount = potentialAmount; emit RedeemDaoBounty(_proposalId, organizations[proposal.organizationId], _beneficiary, redeemedAmount); } @@ -911,7 +882,7 @@ contract DXDVotingMachine { Proposal storage proposal = proposals[_proposalId]; // Check voter has enough reputation: - uint256 reputation = VotingMachineCallbacksInterface(proposal.callbacks).reputationOf(_voter, _proposalId); + uint256 reputation = DXDVotingMachineCallbacksInterface(proposal.callbacks).reputationOf(_voter, _proposalId); require(reputation > 0, "_voter must have reputation"); require(reputation >= _rep, "reputation >= _rep"); uint256 rep = _rep; @@ -957,7 +928,11 @@ contract DXDVotingMachine { if ((proposal.state == ProposalState.PreBoosted) || (proposal.state == ProposalState.Queued)) { proposalPreBoostedVotes[_proposalId][_vote] = rep.add(proposalPreBoostedVotes[_proposalId][_vote]); uint256 reputationDeposit = (params.votersReputationLossRatio.mul(rep)) / 100; - VotingMachineCallbacksInterface(proposal.callbacks).burnReputation(reputationDeposit, _voter, _proposalId); + DXDVotingMachineCallbacksInterface(proposal.callbacks).burnReputation( + reputationDeposit, + _voter, + _proposalId + ); } emit VoteProposal(_proposalId, organizations[proposal.organizationId], _voter, _vote, rep); return _execute(_proposalId); @@ -1022,7 +997,7 @@ contract DXDVotingMachine { Parameters memory params = parameters[proposal.paramsHash]; Proposal memory tmpProposal = proposal; ExecuteFunctionParams memory executeParams; - executeParams.totalReputation = VotingMachineCallbacksInterface(proposal.callbacks).getTotalReputationSupply( + executeParams.totalReputation = DXDVotingMachineCallbacksInterface(proposal.callbacks).getTotalReputationSupply( _proposalId ); //first divide by 100 to prevent overflow @@ -1151,7 +1126,7 @@ contract DXDVotingMachine { ); emit GPExecuteProposal(_proposalId, executionState); proposal.daoBounty = proposal.daoBountyRemain; - ProposalExecuteInterface(proposal.callbacks).executeProposal(_proposalId, int256(proposal.winningVote)); + ProposalExecuteInterface(proposal.callbacks).executeProposal(_proposalId, proposal.winningVote); } if (tmpProposal.state != proposal.state) { emit StateChange(_proposalId, proposal.state); diff --git a/contracts/dao/votingMachine/DXDVotingMachineCallbacks.sol b/contracts/dao/votingMachine/DXDVotingMachineCallbacks.sol new file mode 100644 index 00000000..d1223a78 --- /dev/null +++ b/contracts/dao/votingMachine/DXDVotingMachineCallbacks.sol @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "../DAOController.sol"; +import "../DAOReputation.sol"; +import "hardhat/console.sol"; + +contract DXDVotingMachineCallbacks { + address public votingMachine; + + DAOController public controller; + + modifier onlyVotingMachine() { + require(msg.sender == address(votingMachine), "DXDVotingMachineCallbacks: only VotingMachine"); + + _; + } + + mapping(bytes32 => uint256) public proposalSnapshots; + + function mintReputation( + uint256 _amount, + address _beneficiary, + bytes32 + ) external onlyVotingMachine returns (bool success) { + controller.mintReputation(_amount, _beneficiary); + return success; + } + + function burnReputation( + uint256 _amount, + address _beneficiary, + bytes32 + ) external onlyVotingMachine returns (bool success) { + controller.burnReputation(_amount, _beneficiary); + return success; + } + + function getReputation() public view returns (DAOReputation) { + return controller.getDaoReputation(); + } + + function getNativeReputationTotalSupply() public view returns (uint256) { + return getReputation().totalSupply(); + } + + function getTotalReputationSupply(bytes32 _proposalId) external view returns (uint256) { + return getReputation().totalSupplyAt(proposalSnapshots[_proposalId]); + } + + function reputationOf(address _owner, bytes32 _proposalId) external view returns (uint256) { + return getReputation().balanceOfAt(_owner, proposalSnapshots[_proposalId]); + } +} diff --git a/contracts/daostack/votingMachines/VotingMachineCallbacksInterface.sol b/contracts/dao/votingMachine/DXDVotingMachineCallbacksInterface.sol similarity index 67% rename from contracts/daostack/votingMachines/VotingMachineCallbacksInterface.sol rename to contracts/dao/votingMachine/DXDVotingMachineCallbacksInterface.sol index 8ae69b64..87d6c3cb 100644 --- a/contracts/daostack/votingMachines/VotingMachineCallbacksInterface.sol +++ b/contracts/dao/votingMachine/DXDVotingMachineCallbacksInterface.sol @@ -1,8 +1,7 @@ -pragma solidity 0.5.17; +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; -import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; - -interface VotingMachineCallbacksInterface { +interface DXDVotingMachineCallbacksInterface { function mintReputation( uint256 _amount, address _beneficiary, @@ -16,7 +15,7 @@ interface VotingMachineCallbacksInterface { ) external returns (bool); function stakingTokenTransfer( - IERC20 _stakingToken, + address _stakingToken, address _beneficiary, uint256 _amount, bytes32 _proposalId @@ -26,5 +25,5 @@ interface VotingMachineCallbacksInterface { function reputationOf(address _owner, bytes32 _proposalId) external view returns (uint256); - function balanceOfStakingToken(IERC20 _stakingToken, bytes32 _proposalId) external view returns (uint256); + function balanceOfStakingToken(address _stakingToken, bytes32 _proposalId) external view returns (uint256); } diff --git a/contracts/dao/votingMachine/ProposalExecuteInterface.sol b/contracts/dao/votingMachine/ProposalExecuteInterface.sol new file mode 100644 index 00000000..46b9e4e2 --- /dev/null +++ b/contracts/dao/votingMachine/ProposalExecuteInterface.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; + +interface ProposalExecuteInterface { + function executeProposal(bytes32 _proposalId, uint256 _decision) external returns (bool); +} diff --git a/contracts/daostack/controller/Avatar.sol b/contracts/daostack/controller/Avatar.sol deleted file mode 100644 index c45bb864..00000000 --- a/contracts/daostack/controller/Avatar.sol +++ /dev/null @@ -1,142 +0,0 @@ -pragma solidity ^0.5.4; - -import "./Reputation.sol"; -import "./DAOToken.sol"; -import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; -import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; -import "../libs/SafeERC20.sol"; - -/** - * @title An Avatar holds tokens, reputation and ether for a controller - */ -contract Avatar is Ownable { - using SafeERC20 for address; - - string public orgName; - DAOToken public nativeToken; - Reputation public nativeReputation; - - event GenericCall(address indexed _contract, bytes _data, uint256 _value, bool _success); - event SendEther(uint256 _amountInWei, address indexed _to); - event ExternalTokenTransfer(address indexed _externalToken, address indexed _to, uint256 _value); - event ExternalTokenTransferFrom(address indexed _externalToken, address _from, address _to, uint256 _value); - event ExternalTokenApproval(address indexed _externalToken, address _spender, uint256 _value); - event ReceiveEther(address indexed _sender, uint256 _value); - event MetaData(string _metaData); - - /** - * @dev the constructor takes organization name, native token and reputation system - and creates an avatar for a controller - */ - constructor( - string memory _orgName, - DAOToken _nativeToken, - Reputation _nativeReputation - ) public { - orgName = _orgName; - nativeToken = _nativeToken; - nativeReputation = _nativeReputation; - } - - /** - * @dev enables an avatar to receive ethers - */ - function() external payable { - emit ReceiveEther(msg.sender, msg.value); - } - - /** - * @dev perform a generic call to an arbitrary contract - * @param _contract the contract's address to call - * @param _data ABI-encoded contract call to call `_contract` address. - * @param _value value (ETH) to transfer with the transaction - * @return bool success or fail - * bytes - the return bytes of the called contract's function. - */ - function genericCall( - address _contract, - bytes memory _data, - uint256 _value - ) public onlyOwner returns (bool success, bytes memory returnValue) { - // solhint-disable-next-line avoid-call-value - (success, returnValue) = _contract.call.value(_value)(_data); - emit GenericCall(_contract, _data, _value, success); - } - - /** - * @dev send ethers from the avatar's wallet - * @param _amountInWei amount to send in Wei units - * @param _to send the ethers to this address - * @return bool which represents success - */ - function sendEther(uint256 _amountInWei, address payable _to) public onlyOwner returns (bool) { - (bool sent, bytes memory data) = _to.call.value(_amountInWei)(""); - require(sent, "eth transfer failed"); - emit SendEther(_amountInWei, _to); - return sent; - } - - /** - * @dev external token transfer - * @param _externalToken the token contract - * @param _to the destination address - * @param _value the amount of tokens to transfer - * @return bool which represents success - */ - function externalTokenTransfer( - IERC20 _externalToken, - address _to, - uint256 _value - ) public onlyOwner returns (bool) { - address(_externalToken).safeTransfer(_to, _value); - emit ExternalTokenTransfer(address(_externalToken), _to, _value); - return true; - } - - /** - * @dev external token transfer from a specific account - * @param _externalToken the token contract - * @param _from the account to spend token from - * @param _to the destination address - * @param _value the amount of tokens to transfer - * @return bool which represents success - */ - function externalTokenTransferFrom( - IERC20 _externalToken, - address _from, - address _to, - uint256 _value - ) public onlyOwner returns (bool) { - address(_externalToken).safeTransferFrom(_from, _to, _value); - emit ExternalTokenTransferFrom(address(_externalToken), _from, _to, _value); - return true; - } - - /** - * @dev externalTokenApproval approve the spender address to spend a specified amount of tokens - * on behalf of msg.sender. - * @param _externalToken the address of the Token Contract - * @param _spender address - * @param _value the amount of ether (in Wei) which the approval is referring to. - * @return bool which represents a success - */ - function externalTokenApproval( - IERC20 _externalToken, - address _spender, - uint256 _value - ) public onlyOwner returns (bool) { - address(_externalToken).safeApprove(_spender, _value); - emit ExternalTokenApproval(address(_externalToken), _spender, _value); - return true; - } - - /** - * @dev metaData emits an event with a string, should contain the hash of some meta data. - * @param _metaData a string representing a hash of the meta data - * @return bool which represents a success - */ - function metaData(string memory _metaData) public onlyOwner returns (bool) { - emit MetaData(_metaData); - return true; - } -} diff --git a/contracts/daostack/controller/Controller.sol b/contracts/daostack/controller/Controller.sol deleted file mode 100644 index d7aacc57..00000000 --- a/contracts/daostack/controller/Controller.sol +++ /dev/null @@ -1,585 +0,0 @@ -pragma solidity ^0.5.4; - -import "./Avatar.sol"; -import "../globalConstraints/GlobalConstraintInterface.sol"; -import "./ControllerInterface.sol"; - -/** - * @title Controller contract - * @dev A controller controls the organizations tokens, reputation and avatar. - * It is subject to a set of schemes and constraints that determine its behavior. - * Each scheme has it own parameters and operation permissions. - */ -contract Controller is ControllerInterface { - struct Scheme { - bytes32 paramsHash; // a hash "configuration" of the scheme - bytes4 permissions; // A bitwise flags of permissions, - // All 0: Not registered, - // 1st bit: Flag if the scheme is registered, - // 2nd bit: Scheme can register other schemes - // 3rd bit: Scheme can add/remove global constraints - // 4th bit: Scheme can upgrade the controller - // 5th bit: Scheme can call genericCall on behalf of - // the organization avatar - } - - struct GlobalConstraint { - address gcAddress; - bytes32 params; - } - - struct GlobalConstraintRegister { - bool isRegistered; //is registered - uint256 index; //index at globalConstraints - } - - mapping(address => Scheme) public schemes; - - Avatar public avatar; - DAOToken public nativeToken; - Reputation public nativeReputation; - // newController will point to the new controller after the present controller is upgraded - address public newController; - // globalConstraintsPre that determine pre conditions for all actions on the controller - - GlobalConstraint[] public globalConstraintsPre; - // globalConstraintsPost that determine post conditions for all actions on the controller - GlobalConstraint[] public globalConstraintsPost; - // globalConstraintsRegisterPre indicate if a globalConstraints is registered as a pre global constraint - mapping(address => GlobalConstraintRegister) public globalConstraintsRegisterPre; - // globalConstraintsRegisterPost indicate if a globalConstraints is registered as a post global constraint - mapping(address => GlobalConstraintRegister) public globalConstraintsRegisterPost; - - event MintReputation(address indexed _sender, address indexed _to, uint256 _amount); - event BurnReputation(address indexed _sender, address indexed _from, uint256 _amount); - event MintTokens(address indexed _sender, address indexed _beneficiary, uint256 _amount); - event RegisterScheme(address indexed _sender, address indexed _scheme); - event UnregisterScheme(address indexed _sender, address indexed _scheme); - event UpgradeController(address indexed _oldController, address _newController); - - event AddGlobalConstraint( - address indexed _globalConstraint, - bytes32 _params, - GlobalConstraintInterface.CallPhase _when - ); - - event RemoveGlobalConstraint(address indexed _globalConstraint, uint256 _index, bool _isPre); - - constructor(Avatar _avatar) public { - avatar = _avatar; - nativeToken = avatar.nativeToken(); - nativeReputation = avatar.nativeReputation(); - schemes[msg.sender] = Scheme({paramsHash: bytes32(0), permissions: bytes4(0x0000001F)}); - } - - // Do not allow mistaken calls: - // solhint-disable-next-line payable-fallback - function() external { - revert(); - } - - // Modifiers: - modifier onlyRegisteredScheme() { - require(schemes[msg.sender].permissions & bytes4(0x00000001) == bytes4(0x00000001)); - _; - } - - modifier onlyRegisteringSchemes() { - require(schemes[msg.sender].permissions & bytes4(0x00000002) == bytes4(0x00000002)); - _; - } - - modifier onlyGlobalConstraintsScheme() { - require(schemes[msg.sender].permissions & bytes4(0x00000004) == bytes4(0x00000004)); - _; - } - - modifier onlyUpgradingScheme() { - require(schemes[msg.sender].permissions & bytes4(0x00000008) == bytes4(0x00000008)); - _; - } - - modifier onlyGenericCallScheme() { - require(schemes[msg.sender].permissions & bytes4(0x00000010) == bytes4(0x00000010)); - _; - } - - modifier onlyMetaDataScheme() { - require(schemes[msg.sender].permissions & bytes4(0x00000010) == bytes4(0x00000010)); - _; - } - - modifier onlySubjectToConstraint(bytes32 func) { - uint256 idx; - for (idx = 0; idx < globalConstraintsPre.length; idx++) { - require( - (GlobalConstraintInterface(globalConstraintsPre[idx].gcAddress)).pre( - msg.sender, - globalConstraintsPre[idx].params, - func - ) - ); - } - _; - for (idx = 0; idx < globalConstraintsPost.length; idx++) { - require( - (GlobalConstraintInterface(globalConstraintsPost[idx].gcAddress)).post( - msg.sender, - globalConstraintsPost[idx].params, - func - ) - ); - } - } - - modifier isAvatarValid(address _avatar) { - require(_avatar == address(avatar)); - _; - } - - /** - * @dev Mint `_amount` of reputation that are assigned to `_to` . - * @param _amount amount of reputation to mint - * @param _to beneficiary address - * @return bool which represents a success - */ - function mintReputation( - uint256 _amount, - address _to, - address _avatar - ) external onlyRegisteredScheme onlySubjectToConstraint("mintReputation") isAvatarValid(_avatar) returns (bool) { - emit MintReputation(msg.sender, _to, _amount); - return nativeReputation.mint(_to, _amount); - } - - /** - * @dev Burns `_amount` of reputation from `_from` - * @param _amount amount of reputation to burn - * @param _from The address that will lose the reputation - * @return bool which represents a success - */ - function burnReputation( - uint256 _amount, - address _from, - address _avatar - ) external onlyRegisteredScheme onlySubjectToConstraint("burnReputation") isAvatarValid(_avatar) returns (bool) { - emit BurnReputation(msg.sender, _from, _amount); - return nativeReputation.burn(_from, _amount); - } - - /** - * @dev mint tokens . - * @param _amount amount of token to mint - * @param _beneficiary beneficiary address - * @return bool which represents a success - */ - function mintTokens( - uint256 _amount, - address _beneficiary, - address _avatar - ) external onlyRegisteredScheme onlySubjectToConstraint("mintTokens") isAvatarValid(_avatar) returns (bool) { - emit MintTokens(msg.sender, _beneficiary, _amount); - return nativeToken.mint(_beneficiary, _amount); - } - - /** - * @dev register a scheme - * @param _scheme the address of the scheme - * @param _paramsHash a hashed configuration of the usage of the scheme - * @param _permissions the permissions the new scheme will have - * @return bool which represents a success - */ - function registerScheme( - address _scheme, - bytes32 _paramsHash, - bytes4 _permissions, - address _avatar - ) external onlyRegisteringSchemes onlySubjectToConstraint("registerScheme") isAvatarValid(_avatar) returns (bool) { - Scheme memory scheme = schemes[_scheme]; - - // Check scheme has at least the permissions it is changing, and at least the current permissions: - // Implementation is a bit messy. One must recall logic-circuits ^^ - - // produces non-zero if sender does not have all of the perms that are changing between old and new - require( - bytes4(0x0000001f) & (_permissions ^ scheme.permissions) & (~schemes[msg.sender].permissions) == bytes4(0) - ); - - // produces non-zero if sender does not have all of the perms in the old scheme - require(bytes4(0x0000001f) & (scheme.permissions & (~schemes[msg.sender].permissions)) == bytes4(0)); - - // Add or change the scheme: - schemes[_scheme].paramsHash = _paramsHash; - schemes[_scheme].permissions = _permissions | bytes4(0x00000001); - emit RegisterScheme(msg.sender, _scheme); - return true; - } - - /** - * @dev unregister a scheme - * @param _scheme the address of the scheme - * @return bool which represents a success - */ - function unregisterScheme(address _scheme, address _avatar) - external - onlyRegisteringSchemes - onlySubjectToConstraint("unregisterScheme") - isAvatarValid(_avatar) - returns (bool) - { - //check if the scheme is registered - if (_isSchemeRegistered(_scheme) == false) { - return false; - } - // Check the unregistering scheme has enough permissions: - require(bytes4(0x0000001f) & (schemes[_scheme].permissions & (~schemes[msg.sender].permissions)) == bytes4(0)); - - // Unregister: - emit UnregisterScheme(msg.sender, _scheme); - delete schemes[_scheme]; - return true; - } - - /** - * @dev unregister the caller's scheme - * @return bool which represents a success - */ - function unregisterSelf(address _avatar) external isAvatarValid(_avatar) returns (bool) { - if (_isSchemeRegistered(msg.sender) == false) { - return false; - } - delete schemes[msg.sender]; - emit UnregisterScheme(msg.sender, msg.sender); - return true; - } - - /** - * @dev add or update Global Constraint - * @param _globalConstraint the address of the global constraint to be added. - * @param _params the constraint parameters hash. - * @return bool which represents a success - */ - function addGlobalConstraint( - address _globalConstraint, - bytes32 _params, - address _avatar - ) external onlyGlobalConstraintsScheme isAvatarValid(_avatar) returns (bool) { - GlobalConstraintInterface.CallPhase when = GlobalConstraintInterface(_globalConstraint).when(); - if ( - (when == GlobalConstraintInterface.CallPhase.Pre) || - (when == GlobalConstraintInterface.CallPhase.PreAndPost) - ) { - if (!globalConstraintsRegisterPre[_globalConstraint].isRegistered) { - globalConstraintsPre.push(GlobalConstraint(_globalConstraint, _params)); - globalConstraintsRegisterPre[_globalConstraint] = GlobalConstraintRegister( - true, - globalConstraintsPre.length - 1 - ); - } else { - globalConstraintsPre[globalConstraintsRegisterPre[_globalConstraint].index].params = _params; - } - } - if ( - (when == GlobalConstraintInterface.CallPhase.Post) || - (when == GlobalConstraintInterface.CallPhase.PreAndPost) - ) { - if (!globalConstraintsRegisterPost[_globalConstraint].isRegistered) { - globalConstraintsPost.push(GlobalConstraint(_globalConstraint, _params)); - globalConstraintsRegisterPost[_globalConstraint] = GlobalConstraintRegister( - true, - globalConstraintsPost.length - 1 - ); - } else { - globalConstraintsPost[globalConstraintsRegisterPost[_globalConstraint].index].params = _params; - } - } - emit AddGlobalConstraint(_globalConstraint, _params, when); - return true; - } - - /** - * @dev remove Global Constraint - * @param _globalConstraint the address of the global constraint to be remove. - * @return bool which represents a success - */ - // solhint-disable-next-line code-complexity - function removeGlobalConstraint(address _globalConstraint, address _avatar) - external - onlyGlobalConstraintsScheme - isAvatarValid(_avatar) - returns (bool) - { - GlobalConstraintRegister memory globalConstraintRegister; - GlobalConstraint memory globalConstraint; - GlobalConstraintInterface.CallPhase when = GlobalConstraintInterface(_globalConstraint).when(); - bool retVal = false; - - if ( - (when == GlobalConstraintInterface.CallPhase.Pre) || - (when == GlobalConstraintInterface.CallPhase.PreAndPost) - ) { - globalConstraintRegister = globalConstraintsRegisterPre[_globalConstraint]; - if (globalConstraintRegister.isRegistered) { - if (globalConstraintRegister.index < globalConstraintsPre.length - 1) { - globalConstraint = globalConstraintsPre[globalConstraintsPre.length - 1]; - globalConstraintsPre[globalConstraintRegister.index] = globalConstraint; - globalConstraintsRegisterPre[globalConstraint.gcAddress].index = globalConstraintRegister.index; - } - globalConstraintsPre.length--; - delete globalConstraintsRegisterPre[_globalConstraint]; - retVal = true; - } - } - if ( - (when == GlobalConstraintInterface.CallPhase.Post) || - (when == GlobalConstraintInterface.CallPhase.PreAndPost) - ) { - globalConstraintRegister = globalConstraintsRegisterPost[_globalConstraint]; - if (globalConstraintRegister.isRegistered) { - if (globalConstraintRegister.index < globalConstraintsPost.length - 1) { - globalConstraint = globalConstraintsPost[globalConstraintsPost.length - 1]; - globalConstraintsPost[globalConstraintRegister.index] = globalConstraint; - globalConstraintsRegisterPost[globalConstraint.gcAddress].index = globalConstraintRegister.index; - } - globalConstraintsPost.length--; - delete globalConstraintsRegisterPost[_globalConstraint]; - retVal = true; - } - } - if (retVal) { - emit RemoveGlobalConstraint( - _globalConstraint, - globalConstraintRegister.index, - when == GlobalConstraintInterface.CallPhase.Pre - ); - } - return retVal; - } - - /** - * @dev upgrade the Controller - * The function will trigger an event 'UpgradeController'. - * @param _newController the address of the new controller. - * @return bool which represents a success - */ - function upgradeController(address _newController, Avatar _avatar) - external - onlyUpgradingScheme - isAvatarValid(address(_avatar)) - returns (bool) - { - require(newController == address(0)); // so the upgrade could be done once for a contract. - require(_newController != address(0)); - newController = _newController; - avatar.transferOwnership(_newController); - require(avatar.owner() == _newController); - if (nativeToken.owner() == address(this)) { - nativeToken.transferOwnership(_newController); - require(nativeToken.owner() == _newController); - } - if (nativeReputation.owner() == address(this)) { - nativeReputation.transferOwnership(_newController); - require(nativeReputation.owner() == _newController); - } - emit UpgradeController(address(this), newController); - return true; - } - - /** - * @dev perform a generic call to an arbitrary contract - * @param _contract the contract's address to call - * @param _data ABI-encoded contract call to call `_contract` address. - * @param _avatar the controller's avatar address - * @param _value value (ETH) to transfer with the transaction - * @return bool -success - * bytes - the return value of the called _contract's function. - */ - function genericCall( - address _contract, - bytes calldata _data, - Avatar _avatar, - uint256 _value - ) - external - onlyGenericCallScheme - onlySubjectToConstraint("genericCall") - isAvatarValid(address(_avatar)) - returns (bool, bytes memory) - { - return avatar.genericCall(_contract, _data, _value); - } - - /** - * @dev send some ether - * @param _amountInWei the amount of ether (in Wei) to send - * @param _to address of the beneficiary - * @return bool which represents a success - */ - function sendEther( - uint256 _amountInWei, - address payable _to, - Avatar _avatar - ) - external - onlyRegisteredScheme - onlySubjectToConstraint("sendEther") - isAvatarValid(address(_avatar)) - returns (bool) - { - return avatar.sendEther(_amountInWei, _to); - } - - /** - * @dev send some amount of arbitrary ERC20 Tokens - * @param _externalToken the address of the Token Contract - * @param _to address of the beneficiary - * @param _value the amount of ether (in Wei) to send - * @return bool which represents a success - */ - function externalTokenTransfer( - IERC20 _externalToken, - address _to, - uint256 _value, - Avatar _avatar - ) - external - onlyRegisteredScheme - onlySubjectToConstraint("externalTokenTransfer") - isAvatarValid(address(_avatar)) - returns (bool) - { - return avatar.externalTokenTransfer(_externalToken, _to, _value); - } - - /** - * @dev transfer token "from" address "to" address - * One must to approve the amount of tokens which can be spend from the - * "from" account.This can be done using externalTokenApprove. - * @param _externalToken the address of the Token Contract - * @param _from address of the account to send from - * @param _to address of the beneficiary - * @param _value the amount of ether (in Wei) to send - * @return bool which represents a success - */ - function externalTokenTransferFrom( - IERC20 _externalToken, - address _from, - address _to, - uint256 _value, - Avatar _avatar - ) - external - onlyRegisteredScheme - onlySubjectToConstraint("externalTokenTransferFrom") - isAvatarValid(address(_avatar)) - returns (bool) - { - return avatar.externalTokenTransferFrom(_externalToken, _from, _to, _value); - } - - /** - * @dev externalTokenApproval approve the spender address to spend a specified amount of tokens - * on behalf of msg.sender. - * @param _externalToken the address of the Token Contract - * @param _spender address - * @param _value the amount of ether (in Wei) which the approval is referring to. - * @return bool which represents a success - */ - function externalTokenApproval( - IERC20 _externalToken, - address _spender, - uint256 _value, - Avatar _avatar - ) - external - onlyRegisteredScheme - onlySubjectToConstraint("externalTokenIncreaseApproval") - isAvatarValid(address(_avatar)) - returns (bool) - { - return avatar.externalTokenApproval(_externalToken, _spender, _value); - } - - /** - * @dev metaData emits an event with a string, should contain the hash of some meta data. - * @param _metaData a string representing a hash of the meta data - * @param _avatar Avatar - * @return bool which represents a success - */ - function metaData(string calldata _metaData, Avatar _avatar) - external - onlyMetaDataScheme - isAvatarValid(address(_avatar)) - returns (bool) - { - return avatar.metaData(_metaData); - } - - /** - * @dev getNativeReputation - * @param _avatar the organization avatar. - * @return organization native reputation - */ - function getNativeReputation(address _avatar) external view isAvatarValid(_avatar) returns (address) { - return address(nativeReputation); - } - - function isSchemeRegistered(address _scheme, address _avatar) external view isAvatarValid(_avatar) returns (bool) { - return _isSchemeRegistered(_scheme); - } - - function getSchemeParameters(address _scheme, address _avatar) - external - view - isAvatarValid(_avatar) - returns (bytes32) - { - return schemes[_scheme].paramsHash; - } - - function getSchemePermissions(address _scheme, address _avatar) - external - view - isAvatarValid(_avatar) - returns (bytes4) - { - return schemes[_scheme].permissions; - } - - function getGlobalConstraintParameters(address _globalConstraint, address) external view returns (bytes32) { - GlobalConstraintRegister memory register = globalConstraintsRegisterPre[_globalConstraint]; - - if (register.isRegistered) { - return globalConstraintsPre[register.index].params; - } - - register = globalConstraintsRegisterPost[_globalConstraint]; - - if (register.isRegistered) { - return globalConstraintsPost[register.index].params; - } - } - - /** - * @dev globalConstraintsCount return the global constraint pre and post count - * @return uint256 globalConstraintsPre count. - * @return uint256 globalConstraintsPost count. - */ - function globalConstraintsCount(address _avatar) external view isAvatarValid(_avatar) returns (uint256, uint256) { - return (globalConstraintsPre.length, globalConstraintsPost.length); - } - - function isGlobalConstraintRegistered(address _globalConstraint, address _avatar) - external - view - isAvatarValid(_avatar) - returns (bool) - { - return (globalConstraintsRegisterPre[_globalConstraint].isRegistered || - globalConstraintsRegisterPost[_globalConstraint].isRegistered); - } - - function _isSchemeRegistered(address _scheme) private view returns (bool) { - return (schemes[_scheme].permissions & bytes4(0x00000001) != bytes4(0)); - } -} diff --git a/contracts/daostack/controller/ControllerInterface.sol b/contracts/daostack/controller/ControllerInterface.sol deleted file mode 100644 index aa67793a..00000000 --- a/contracts/daostack/controller/ControllerInterface.sol +++ /dev/null @@ -1,219 +0,0 @@ -pragma solidity ^0.5.4; - -import "./Avatar.sol"; -import "../globalConstraints/GlobalConstraintInterface.sol"; - -/** - * @title Controller contract - * @dev A controller controls the organizations tokens ,reputation and avatar. - * It is subject to a set of schemes and constraints that determine its behavior. - * Each scheme has it own parameters and operation permissions. - */ -interface ControllerInterface { - /** - * @dev Mint `_amount` of reputation that are assigned to `_to` . - * @param _amount amount of reputation to mint - * @param _to beneficiary address - * @return bool which represents a success - */ - function mintReputation( - uint256 _amount, - address _to, - address _avatar - ) external returns (bool); - - /** - * @dev Burns `_amount` of reputation from `_from` - * @param _amount amount of reputation to burn - * @param _from The address that will lose the reputation - * @return bool which represents a success - */ - function burnReputation( - uint256 _amount, - address _from, - address _avatar - ) external returns (bool); - - /** - * @dev mint tokens . - * @param _amount amount of token to mint - * @param _beneficiary beneficiary address - * @param _avatar address - * @return bool which represents a success - */ - function mintTokens( - uint256 _amount, - address _beneficiary, - address _avatar - ) external returns (bool); - - /** - * @dev register or update a scheme - * @param _scheme the address of the scheme - * @param _paramsHash a hashed configuration of the usage of the scheme - * @param _permissions the permissions the new scheme will have - * @param _avatar address - * @return bool which represents a success - */ - function registerScheme( - address _scheme, - bytes32 _paramsHash, - bytes4 _permissions, - address _avatar - ) external returns (bool); - - /** - * @dev unregister a scheme - * @param _avatar address - * @param _scheme the address of the scheme - * @return bool which represents a success - */ - function unregisterScheme(address _scheme, address _avatar) external returns (bool); - - /** - * @dev unregister the caller's scheme - * @param _avatar address - * @return bool which represents a success - */ - function unregisterSelf(address _avatar) external returns (bool); - - /** - * @dev add or update Global Constraint - * @param _globalConstraint the address of the global constraint to be added. - * @param _params the constraint parameters hash. - * @param _avatar the avatar of the organization - * @return bool which represents a success - */ - function addGlobalConstraint( - address _globalConstraint, - bytes32 _params, - address _avatar - ) external returns (bool); - - /** - * @dev remove Global Constraint - * @param _globalConstraint the address of the global constraint to be remove. - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function removeGlobalConstraint(address _globalConstraint, address _avatar) external returns (bool); - - /** - * @dev upgrade the Controller - * The function will trigger an event 'UpgradeController'. - * @param _newController the address of the new controller. - * @param _avatar address - * @return bool which represents a success - */ - function upgradeController(address _newController, Avatar _avatar) external returns (bool); - - /** - * @dev perform a generic call to an arbitrary contract - * @param _contract the contract's address to call - * @param _data ABI-encoded contract call to call `_contract` address. - * @param _avatar the controller's avatar address - * @param _value value (ETH) to transfer with the transaction - * @return bool -success - * bytes - the return value of the called _contract's function. - */ - function genericCall( - address _contract, - bytes calldata _data, - Avatar _avatar, - uint256 _value - ) external returns (bool, bytes memory); - - /** - * @dev send some ether - * @param _amountInWei the amount of ether (in Wei) to send - * @param _to address of the beneficiary - * @param _avatar address - * @return bool which represents a success - */ - function sendEther( - uint256 _amountInWei, - address payable _to, - Avatar _avatar - ) external returns (bool); - - /** - * @dev send some amount of arbitrary ERC20 Tokens - * @param _externalToken the address of the Token Contract - * @param _to address of the beneficiary - * @param _value the amount of ether (in Wei) to send - * @param _avatar address - * @return bool which represents a success - */ - function externalTokenTransfer( - IERC20 _externalToken, - address _to, - uint256 _value, - Avatar _avatar - ) external returns (bool); - - /** - * @dev transfer token "from" address "to" address - * One must to approve the amount of tokens which can be spend from the - * "from" account.This can be done using externalTokenApprove. - * @param _externalToken the address of the Token Contract - * @param _from address of the account to send from - * @param _to address of the beneficiary - * @param _value the amount of ether (in Wei) to send - * @param _avatar address - * @return bool which represents a success - */ - function externalTokenTransferFrom( - IERC20 _externalToken, - address _from, - address _to, - uint256 _value, - Avatar _avatar - ) external returns (bool); - - /** - * @dev externalTokenApproval approve the spender address to spend a specified amount of tokens - * on behalf of msg.sender. - * @param _externalToken the address of the Token Contract - * @param _spender address - * @param _value the amount of ether (in Wei) which the approval is referring to. - * @return bool which represents a success - */ - function externalTokenApproval( - IERC20 _externalToken, - address _spender, - uint256 _value, - Avatar _avatar - ) external returns (bool); - - /** - * @dev metaData emits an event with a string, should contain the hash of some meta data. - * @param _metaData a string representing a hash of the meta data - * @param _avatar Avatar - * @return bool which represents a success - */ - function metaData(string calldata _metaData, Avatar _avatar) external returns (bool); - - /** - * @dev getNativeReputation - * @param _avatar the organization avatar. - * @return organization native reputation - */ - function getNativeReputation(address _avatar) external view returns (address); - - function isSchemeRegistered(address _scheme, address _avatar) external view returns (bool); - - function getSchemeParameters(address _scheme, address _avatar) external view returns (bytes32); - - function getGlobalConstraintParameters(address _globalConstraint, address _avatar) external view returns (bytes32); - - function getSchemePermissions(address _scheme, address _avatar) external view returns (bytes4); - - /** - * @dev globalConstraintsCount return the global constraint pre and post count - * @return uint256 globalConstraintsPre count. - * @return uint256 globalConstraintsPost count. - */ - function globalConstraintsCount(address _avatar) external view returns (uint256, uint256); - - function isGlobalConstraintRegistered(address _globalConstraint, address _avatar) external view returns (bool); -} diff --git a/contracts/daostack/controller/DAOToken.sol b/contracts/daostack/controller/DAOToken.sol deleted file mode 100644 index 3567f4d2..00000000 --- a/contracts/daostack/controller/DAOToken.sol +++ /dev/null @@ -1,45 +0,0 @@ -pragma solidity ^0.5.4; - -import "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol"; -import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; -import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; - -/** - * @title DAOToken, base on zeppelin contract. - * @dev ERC20 compatible token. It is a mintable, burnable token. - */ - -contract DAOToken is ERC20, ERC20Burnable, Ownable { - string public name; - string public symbol; - // solhint-disable-next-line const-name-snakecase - uint8 public constant decimals = 18; - uint256 public cap; - - /** - * @dev Constructor - * @param _name - token name - * @param _symbol - token symbol - * @param _cap - token cap - 0 value means no cap - */ - constructor( - string memory _name, - string memory _symbol, - uint256 _cap - ) public { - name = _name; - symbol = _symbol; - cap = _cap; - } - - /** - * @dev Function to mint tokens - * @param _to The address that will receive the minted tokens. - * @param _amount The amount of tokens to mint. - */ - function mint(address _to, uint256 _amount) public onlyOwner returns (bool) { - if (cap > 0) require(totalSupply().add(_amount) <= cap); - _mint(_to, _amount); - return true; - } -} diff --git a/contracts/daostack/controller/Reputation.sol b/contracts/daostack/controller/Reputation.sol deleted file mode 100644 index 0fd32f7b..00000000 --- a/contracts/daostack/controller/Reputation.sol +++ /dev/null @@ -1,181 +0,0 @@ -pragma solidity 0.5.17; - -import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; - -// Copied from @daostack/infra/contracts/Reputation.sol and added the MintMultiple function - -/** - * @title Reputation system - * @dev A DAO has Reputation System which allows peers to rate other peers in order to build trust . - * A reputation is use to assign influence measure to a DAO'S peers. - * Reputation is similar to regular tokens but with one crucial difference: It is non-transferable. - * The Reputation contract maintain a map of address to reputation value. - * It provides an onlyOwner functions to mint and burn reputation _to (or _from) a specific address. - */ -contract Reputation is Ownable { - uint8 public decimals = 18; //Number of decimals of the smallest unit - // Event indicating minting of reputation to an address. - event Mint(address indexed _to, uint256 _amount); - // Event indicating burning of reputation for an address. - event Burn(address indexed _from, uint256 _amount); - - // @dev `Checkpoint` is the structure that attaches a block number to a - // given value, the block number attached is the one that last changed the - // value - struct Checkpoint { - // `fromBlock` is the block number that the value was generated from - uint128 fromBlock; - // `value` is the amount of reputation at a specific block number - uint128 value; - } - - // `balances` is the map that tracks the balance of each address, in this - // contract when the balance changes the block number that the change - // occurred is also included in the map - mapping(address => Checkpoint[]) private balances; - - // Tracks the history of the `totalSupply` of the reputation - Checkpoint[] private totalSupplyHistory; - - // @notice Generates `_amount` reputation that are assigned to `_owner` - // @param _user The address that will be assigned the new reputation - // @param _amount The quantity of reputation generated - // @return True if the reputation are generated correctly - function mint(address _user, uint256 _amount) public onlyOwner returns (bool) { - uint256 curTotalSupply = totalSupply(); - require(curTotalSupply + _amount >= curTotalSupply); // Check for overflow - uint256 previousBalanceTo = balanceOf(_user); - require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow - updateValueAtNow(totalSupplyHistory, curTotalSupply + _amount); - updateValueAtNow(balances[_user], previousBalanceTo + _amount); - emit Mint(_user, _amount); - return true; - } - - // @notice Generates `_amount` reputation that are assigned to `_owner` - // @param _user The address that will be assigned the new reputation - // @param _amount The quantity of reputation generated - // @return True if the reputation are generated correctly - function mintMultiple(address[] memory _user, uint256[] memory _amount) public onlyOwner returns (bool) { - for (uint256 i = 0; i < _user.length; i++) { - uint256 curTotalSupply = totalSupply(); - require(curTotalSupply + _amount[i] >= curTotalSupply); // Check for overflow - uint256 previousBalanceTo = balanceOf(_user[i]); - require(previousBalanceTo + _amount[i] >= previousBalanceTo); // Check for overflow - updateValueAtNow(totalSupplyHistory, curTotalSupply + _amount[i]); - updateValueAtNow(balances[_user[i]], previousBalanceTo + _amount[i]); - emit Mint(_user[i], _amount[i]); - } - return true; - } - - // @notice Burns `_amount` reputation from `_owner` - // @param _user The address that will lose the reputation - // @param _amount The quantity of reputation to burn - // @return True if the reputation are burned correctly - function burn(address _user, uint256 _amount) public onlyOwner returns (bool) { - uint256 curTotalSupply = totalSupply(); - uint256 amountBurned = _amount; - uint256 previousBalanceFrom = balanceOf(_user); - if (previousBalanceFrom < amountBurned) { - amountBurned = previousBalanceFrom; - } - updateValueAtNow(totalSupplyHistory, curTotalSupply - amountBurned); - updateValueAtNow(balances[_user], previousBalanceFrom - amountBurned); - emit Burn(_user, amountBurned); - return true; - } - - // @dev This function makes it easy to get the total number of reputation - // @return The total number of reputation - function totalSupply() public view returns (uint256) { - return totalSupplyAt(block.number); - } - - //////////////// - // Query balance and totalSupply in History - //////////////// - /** - * @dev return the reputation amount of a given owner - * @param _owner an address of the owner which we want to get his reputation - */ - function balanceOf(address _owner) public view returns (uint256 balance) { - return balanceOfAt(_owner, block.number); - } - - // @notice Total amount of reputation at a specific `_blockNumber`. - // @param _blockNumber The block number when the totalSupply is queried - // @return The total amount of reputation at `_blockNumber` - function totalSupplyAt(uint256 _blockNumber) public view returns (uint256) { - if ((totalSupplyHistory.length == 0) || (totalSupplyHistory[0].fromBlock > _blockNumber)) { - return 0; - // This will return the expected totalSupply during normal situations - } else { - return getValueAt(totalSupplyHistory, _blockNumber); - } - } - - // @dev Queries the balance of `_owner` at a specific `_blockNumber` - // @param _owner The address from which the balance will be retrieved - // @param _blockNumber The block number when the balance is queried - // @return The balance at `_blockNumber` - function balanceOfAt(address _owner, uint256 _blockNumber) public view returns (uint256) { - if ((balances[_owner].length == 0) || (balances[_owner][0].fromBlock > _blockNumber)) { - return 0; - // This will return the expected balance during normal situations - } else { - return getValueAt(balances[_owner], _blockNumber); - } - } - - //////////////// - // Internal helper functions to query and set a value in a snapshot array - //////////////// - - // @dev `getValueAt` retrieves the number of reputation at a given block number - // @param checkpoints The history of values being queried - // @param _block The block number to retrieve the value at - // @return The number of reputation being queried - function getValueAt(Checkpoint[] storage checkpoints, uint256 _block) internal view returns (uint256) { - if (checkpoints.length == 0) { - return 0; - } - - // Shortcut for the actual value - if (_block >= checkpoints[checkpoints.length - 1].fromBlock) { - return checkpoints[checkpoints.length - 1].value; - } - if (_block < checkpoints[0].fromBlock) { - return 0; - } - - // Binary search of the value in the array - uint256 min = 0; - uint256 max = checkpoints.length - 1; - while (max > min) { - uint256 mid = (max + min + 1) / 2; - if (checkpoints[mid].fromBlock <= _block) { - min = mid; - } else { - max = mid - 1; - } - } - return checkpoints[min].value; - } - - // @dev `updateValueAtNow` used to update the `balances` map and the - // `totalSupplyHistory` - // @param checkpoints The history of data being updated - // @param _value The new number of reputation - function updateValueAtNow(Checkpoint[] storage checkpoints, uint256 _value) internal { - require(uint128(_value) == _value); //check value is in the 128 bits bounderies - if ((checkpoints.length == 0) || (checkpoints[checkpoints.length - 1].fromBlock < block.number)) { - Checkpoint storage newCheckPoint = checkpoints[checkpoints.length++]; - newCheckPoint.fromBlock = uint128(block.number); - newCheckPoint.value = uint128(_value); - } else { - Checkpoint storage oldCheckPoint = checkpoints[checkpoints.length - 1]; - oldCheckPoint.value = uint128(_value); - } - } -} diff --git a/contracts/daostack/controller/UController.sol b/contracts/daostack/controller/UController.sol deleted file mode 100644 index 9ab6ff65..00000000 --- a/contracts/daostack/controller/UController.sol +++ /dev/null @@ -1,633 +0,0 @@ -pragma solidity ^0.5.4; - -import "./Avatar.sol"; -import "../globalConstraints/GlobalConstraintInterface.sol"; -import "./ControllerInterface.sol"; - -/** - * @title Universal Controller contract - * @dev A universal controller hold organizations and controls their tokens ,reputations - * and avatar. - * It is subject to a set of schemes and constraints that determine its behavior. - * Each scheme has it own parameters and operation permissions. - */ -contract UController is ControllerInterface { - struct Scheme { - bytes32 paramsHash; // a hash "configuration" of the scheme - bytes4 permissions; // A bitwise flags of permissions, - // All 0: Not registered, - // 1st bit: Flag if the scheme is registered, - // 2nd bit: Scheme can register other schemes - // 3th bit: Scheme can add/remove global constraints - // 4rd bit: Scheme can upgrade the controller - // 5th bit: Scheme can call delegatecall - } - - struct GlobalConstraint { - address gcAddress; - bytes32 params; - } - - struct GlobalConstraintRegister { - bool isRegistered; //is registered - uint256 index; //index at globalConstraints - } - - struct Organization { - DAOToken nativeToken; - Reputation nativeReputation; - mapping(address => Scheme) schemes; - // globalConstraintsPre that determine pre- conditions for all actions on the controller - GlobalConstraint[] globalConstraintsPre; - // globalConstraintsPost that determine post-conditions for all actions on the controller - GlobalConstraint[] globalConstraintsPost; - // globalConstraintsRegisterPre indicate if a globalConstraints is registered as a Pre global constraint. - mapping(address => GlobalConstraintRegister) globalConstraintsRegisterPre; - // globalConstraintsRegisterPost indicate if a globalConstraints is registered as a Post global constraint. - mapping(address => GlobalConstraintRegister) globalConstraintsRegisterPost; - } - - //mapping between organization's avatar address to Organization - mapping(address => Organization) public organizations; - // newController will point to the new controller after the present controller is upgraded - // address external newController; - mapping(address => address) public newControllers; //mapping between avatar address and newController address - //mapping for all reputation system and tokens addresses registered. - mapping(address => bool) public actors; - - event MintReputation(address indexed _sender, address indexed _to, uint256 _amount, address indexed _avatar); - event BurnReputation(address indexed _sender, address indexed _from, uint256 _amount, address indexed _avatar); - event MintTokens(address indexed _sender, address indexed _beneficiary, uint256 _amount, address indexed _avatar); - event RegisterScheme(address indexed _sender, address indexed _scheme, address indexed _avatar); - event UnregisterScheme(address indexed _sender, address indexed _scheme, address indexed _avatar); - event UpgradeController(address indexed _oldController, address _newController, address _avatar); - - event AddGlobalConstraint( - address indexed _globalConstraint, - bytes32 _params, - GlobalConstraintInterface.CallPhase _when, - address indexed _avatar - ); - - event RemoveGlobalConstraint( - address indexed _globalConstraint, - uint256 _index, - bool _isPre, - address indexed _avatar - ); - - /** - * @dev newOrganization set up a new organization with default daoCreator. - * @param _avatar the organization avatar - */ - function newOrganization(Avatar _avatar) external { - require(!actors[address(_avatar)]); - actors[address(_avatar)] = true; - require(_avatar.owner() == address(this)); - DAOToken nativeToken = _avatar.nativeToken(); - Reputation nativeReputation = _avatar.nativeReputation(); - require(nativeToken.owner() == address(this)); - require(nativeReputation.owner() == address(this)); - //To guaranty uniqueness for the reputation systems. - require(!actors[address(nativeReputation)]); - actors[address(nativeReputation)] = true; - //To guaranty uniqueness for the nativeToken. - require(!actors[address(nativeToken)]); - actors[address(nativeToken)] = true; - organizations[address(_avatar)].nativeToken = nativeToken; - organizations[address(_avatar)].nativeReputation = nativeReputation; - organizations[address(_avatar)].schemes[msg.sender] = Scheme({ - paramsHash: bytes32(0), - permissions: bytes4(0x0000001f) - }); - emit RegisterScheme(msg.sender, msg.sender, address(_avatar)); - } - - // Modifiers: - modifier onlyRegisteredScheme(address avatar) { - require(organizations[avatar].schemes[msg.sender].permissions & bytes4(0x00000001) == bytes4(0x00000001)); - _; - } - - modifier onlyRegisteringSchemes(address avatar) { - require(organizations[avatar].schemes[msg.sender].permissions & bytes4(0x00000002) == bytes4(0x00000002)); - _; - } - - modifier onlyGlobalConstraintsScheme(address avatar) { - require(organizations[avatar].schemes[msg.sender].permissions & bytes4(0x00000004) == bytes4(0x00000004)); - _; - } - - modifier onlyUpgradingScheme(address _avatar) { - require(organizations[_avatar].schemes[msg.sender].permissions & bytes4(0x00000008) == bytes4(0x00000008)); - _; - } - - modifier onlyGenericCallScheme(address _avatar) { - require(organizations[_avatar].schemes[msg.sender].permissions & bytes4(0x00000010) == bytes4(0x00000010)); - _; - } - - modifier onlyMetaDataScheme(address _avatar) { - require(organizations[_avatar].schemes[msg.sender].permissions & bytes4(0x00000010) == bytes4(0x00000010)); - _; - } - - modifier onlySubjectToConstraint(bytes32 func, address _avatar) { - uint256 idx; - GlobalConstraint[] memory globalConstraintsPre = organizations[_avatar].globalConstraintsPre; - GlobalConstraint[] memory globalConstraintsPost = organizations[_avatar].globalConstraintsPost; - for (idx = 0; idx < globalConstraintsPre.length; idx++) { - require( - (GlobalConstraintInterface(globalConstraintsPre[idx].gcAddress)).pre( - msg.sender, - globalConstraintsPre[idx].params, - func - ) - ); - } - _; - for (idx = 0; idx < globalConstraintsPost.length; idx++) { - require( - (GlobalConstraintInterface(globalConstraintsPost[idx].gcAddress)).post( - msg.sender, - globalConstraintsPost[idx].params, - func - ) - ); - } - } - - /** - * @dev Mint `_amount` of reputation that are assigned to `_to` . - * @param _amount amount of reputation to mint - * @param _to beneficiary address - * @param _avatar the address of the organization's avatar - * @return bool which represents a success - */ - function mintReputation( - uint256 _amount, - address _to, - address _avatar - ) external onlyRegisteredScheme(_avatar) onlySubjectToConstraint("mintReputation", _avatar) returns (bool) { - emit MintReputation(msg.sender, _to, _amount, _avatar); - return organizations[_avatar].nativeReputation.mint(_to, _amount); - } - - /** - * @dev Burns `_amount` of reputation from `_from` - * @param _amount amount of reputation to burn - * @param _from The address that will lose the reputation - * @return bool which represents a success - */ - function burnReputation( - uint256 _amount, - address _from, - address _avatar - ) external onlyRegisteredScheme(_avatar) onlySubjectToConstraint("burnReputation", _avatar) returns (bool) { - emit BurnReputation(msg.sender, _from, _amount, _avatar); - return organizations[_avatar].nativeReputation.burn(_from, _amount); - } - - /** - * @dev mint tokens . - * @param _amount amount of token to mint - * @param _beneficiary beneficiary address - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function mintTokens( - uint256 _amount, - address _beneficiary, - address _avatar - ) external onlyRegisteredScheme(_avatar) onlySubjectToConstraint("mintTokens", _avatar) returns (bool) { - emit MintTokens(msg.sender, _beneficiary, _amount, _avatar); - return organizations[_avatar].nativeToken.mint(_beneficiary, _amount); - } - - /** - * @dev register or update a scheme - * @param _scheme the address of the scheme - * @param _paramsHash a hashed configuration of the usage of the scheme - * @param _permissions the permissions the new scheme will have - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function registerScheme( - address _scheme, - bytes32 _paramsHash, - bytes4 _permissions, - address _avatar - ) external onlyRegisteringSchemes(_avatar) onlySubjectToConstraint("registerScheme", _avatar) returns (bool) { - bytes4 schemePermission = organizations[_avatar].schemes[_scheme].permissions; - bytes4 senderPermission = organizations[_avatar].schemes[msg.sender].permissions; - // Check scheme has at least the permissions it is changing, and at least the current permissions: - // Implementation is a bit messy. One must recall logic-circuits ^^ - - // produces non-zero if sender does not have all of the perms that are changing between old and new - require(bytes4(0x0000001f) & (_permissions ^ schemePermission) & (~senderPermission) == bytes4(0)); - - // produces non-zero if sender does not have all of the perms in the old scheme - require(bytes4(0x0000001f) & (schemePermission & (~senderPermission)) == bytes4(0)); - - // Add or change the scheme: - organizations[_avatar].schemes[_scheme] = Scheme({ - paramsHash: _paramsHash, - permissions: _permissions | bytes4(0x00000001) - }); - emit RegisterScheme(msg.sender, _scheme, _avatar); - return true; - } - - /** - * @dev unregister a scheme - * @param _scheme the address of the scheme - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function unregisterScheme(address _scheme, address _avatar) - external - onlyRegisteringSchemes(_avatar) - onlySubjectToConstraint("unregisterScheme", _avatar) - returns (bool) - { - bytes4 schemePermission = organizations[_avatar].schemes[_scheme].permissions; - //check if the scheme is registered - if (schemePermission & bytes4(0x00000001) == bytes4(0)) { - return false; - } - // Check the unregistering scheme has enough permissions: - require( - bytes4(0x0000001f) & (schemePermission & (~organizations[_avatar].schemes[msg.sender].permissions)) == - bytes4(0) - ); - - // Unregister: - emit UnregisterScheme(msg.sender, _scheme, _avatar); - delete organizations[_avatar].schemes[_scheme]; - return true; - } - - /** - * @dev unregister the caller's scheme - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function unregisterSelf(address _avatar) external returns (bool) { - if (_isSchemeRegistered(msg.sender, _avatar) == false) { - return false; - } - delete organizations[_avatar].schemes[msg.sender]; - emit UnregisterScheme(msg.sender, msg.sender, _avatar); - return true; - } - - /** - * @dev add or update Global Constraint - * @param _globalConstraint the address of the global constraint to be added. - * @param _params the constraint parameters hash. - * @param _avatar the avatar of the organization - * @return bool which represents a success - */ - function addGlobalConstraint( - address _globalConstraint, - bytes32 _params, - address _avatar - ) external onlyGlobalConstraintsScheme(_avatar) returns (bool) { - Organization storage organization = organizations[_avatar]; - GlobalConstraintInterface.CallPhase when = GlobalConstraintInterface(_globalConstraint).when(); - if ( - (when == GlobalConstraintInterface.CallPhase.Pre) || - (when == GlobalConstraintInterface.CallPhase.PreAndPost) - ) { - if (!organization.globalConstraintsRegisterPre[_globalConstraint].isRegistered) { - organization.globalConstraintsPre.push(GlobalConstraint(_globalConstraint, _params)); - organization.globalConstraintsRegisterPre[_globalConstraint] = GlobalConstraintRegister( - true, - organization.globalConstraintsPre.length - 1 - ); - } else { - organization - .globalConstraintsPre[organization.globalConstraintsRegisterPre[_globalConstraint].index] - .params = _params; - } - } - - if ( - (when == GlobalConstraintInterface.CallPhase.Post) || - (when == GlobalConstraintInterface.CallPhase.PreAndPost) - ) { - if (!organization.globalConstraintsRegisterPost[_globalConstraint].isRegistered) { - organization.globalConstraintsPost.push(GlobalConstraint(_globalConstraint, _params)); - organization.globalConstraintsRegisterPost[_globalConstraint] = GlobalConstraintRegister( - true, - organization.globalConstraintsPost.length - 1 - ); - } else { - organization - .globalConstraintsPost[organization.globalConstraintsRegisterPost[_globalConstraint].index] - .params = _params; - } - } - emit AddGlobalConstraint(_globalConstraint, _params, when, _avatar); - return true; - } - - /** - * @dev remove Global Constraint - * @param _globalConstraint the address of the global constraint to be remove. - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function removeGlobalConstraint(address _globalConstraint, address _avatar) - external - onlyGlobalConstraintsScheme(_avatar) - returns (bool) - { - GlobalConstraintInterface.CallPhase when = GlobalConstraintInterface(_globalConstraint).when(); - if ( - (when == GlobalConstraintInterface.CallPhase.Pre) || - (when == GlobalConstraintInterface.CallPhase.PreAndPost) - ) { - removeGlobalConstraintPre(_globalConstraint, _avatar); - } - if ( - (when == GlobalConstraintInterface.CallPhase.Post) || - (when == GlobalConstraintInterface.CallPhase.PreAndPost) - ) { - removeGlobalConstraintPost(_globalConstraint, _avatar); - } - return true; - } - - /** - * @dev upgrade the Controller - * The function will trigger an event 'UpgradeController'. - * @param _newController the address of the new controller. - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function upgradeController(address _newController, Avatar _avatar) - external - onlyUpgradingScheme(address(_avatar)) - returns (bool) - { - require(newControllers[address(_avatar)] == address(0)); // so the upgrade could be done once for a contract. - require(_newController != address(0)); - newControllers[address(_avatar)] = _newController; - _avatar.transferOwnership(_newController); - require(_avatar.owner() == _newController); - if (organizations[address(_avatar)].nativeToken.owner() == address(this)) { - organizations[address(_avatar)].nativeToken.transferOwnership(_newController); - require(organizations[address(_avatar)].nativeToken.owner() == _newController); - } - if (organizations[address(_avatar)].nativeReputation.owner() == address(this)) { - organizations[address(_avatar)].nativeReputation.transferOwnership(_newController); - require(organizations[address(_avatar)].nativeReputation.owner() == _newController); - } - emit UpgradeController(address(this), _newController, address(_avatar)); - return true; - } - - /** - * @dev perform a generic call to an arbitrary contract - * @param _contract the contract's address to call - * @param _data ABI-encoded contract call to call `_contract` address. - * @param _avatar the controller's avatar address - * @param _value value (ETH) to transfer with the transaction - * @return bool -success - * bytes - the return value of the called _contract's function. - */ - function genericCall( - address _contract, - bytes calldata _data, - Avatar _avatar, - uint256 _value - ) - external - onlyGenericCallScheme(address(_avatar)) - onlySubjectToConstraint("genericCall", address(_avatar)) - returns (bool, bytes memory) - { - return _avatar.genericCall(_contract, _data, _value); - } - - /** - * @dev send some ether - * @param _amountInWei the amount of ether (in Wei) to send - * @param _to address of the beneficiary - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function sendEther( - uint256 _amountInWei, - address payable _to, - Avatar _avatar - ) - external - onlyRegisteredScheme(address(_avatar)) - onlySubjectToConstraint("sendEther", address(_avatar)) - returns (bool) - { - return _avatar.sendEther(_amountInWei, _to); - } - - /** - * @dev send some amount of arbitrary ERC20 Tokens - * @param _externalToken the address of the Token Contract - * @param _to address of the beneficiary - * @param _value the amount of ether (in Wei) to send - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function externalTokenTransfer( - IERC20 _externalToken, - address _to, - uint256 _value, - Avatar _avatar - ) - external - onlyRegisteredScheme(address(_avatar)) - onlySubjectToConstraint("externalTokenTransfer", address(_avatar)) - returns (bool) - { - return _avatar.externalTokenTransfer(_externalToken, _to, _value); - } - - /** - * @dev transfer token "from" address "to" address - * One must to approve the amount of tokens which can be spend from the - * "from" account.This can be done using externalTokenApprove. - * @param _externalToken the address of the Token Contract - * @param _from address of the account to send from - * @param _to address of the beneficiary - * @param _value the amount of ether (in Wei) to send - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function externalTokenTransferFrom( - IERC20 _externalToken, - address _from, - address _to, - uint256 _value, - Avatar _avatar - ) - external - onlyRegisteredScheme(address(_avatar)) - onlySubjectToConstraint("externalTokenTransferFrom", address(_avatar)) - returns (bool) - { - return _avatar.externalTokenTransferFrom(_externalToken, _from, _to, _value); - } - - /** - * @dev externalTokenApproval approve the spender address to spend a specified amount of tokens - * on behalf of msg.sender. - * @param _externalToken the address of the Token Contract - * @param _spender address - * @param _value the amount of ether (in Wei) which the approval is referring to. - * @return bool which represents a success - */ - function externalTokenApproval( - IERC20 _externalToken, - address _spender, - uint256 _value, - Avatar _avatar - ) - external - onlyRegisteredScheme(address(_avatar)) - onlySubjectToConstraint("externalTokenApproval", address(_avatar)) - returns (bool) - { - return _avatar.externalTokenApproval(_externalToken, _spender, _value); - } - - /** - * @dev metaData emits an event with a string, should contain the hash of some meta data. - * @param _metaData a string representing a hash of the meta data - * @param _avatar Avatar - * @return bool which represents a success - */ - function metaData(string calldata _metaData, Avatar _avatar) - external - onlyMetaDataScheme(address(_avatar)) - returns (bool) - { - return _avatar.metaData(_metaData); - } - - function isSchemeRegistered(address _scheme, address _avatar) external view returns (bool) { - return _isSchemeRegistered(_scheme, _avatar); - } - - function getSchemeParameters(address _scheme, address _avatar) external view returns (bytes32) { - return organizations[_avatar].schemes[_scheme].paramsHash; - } - - function getSchemePermissions(address _scheme, address _avatar) external view returns (bytes4) { - return organizations[_avatar].schemes[_scheme].permissions; - } - - function getGlobalConstraintParameters(address _globalConstraint, address _avatar) external view returns (bytes32) { - Organization storage organization = organizations[_avatar]; - - GlobalConstraintRegister memory register = organization.globalConstraintsRegisterPre[_globalConstraint]; - - if (register.isRegistered) { - return organization.globalConstraintsPre[register.index].params; - } - - register = organization.globalConstraintsRegisterPost[_globalConstraint]; - - if (register.isRegistered) { - return organization.globalConstraintsPost[register.index].params; - } - } - - /** - * @dev globalConstraintsCount return the global constraint pre and post count - * @return uint256 globalConstraintsPre count. - * @return uint256 globalConstraintsPost count. - */ - function globalConstraintsCount(address _avatar) external view returns (uint256, uint256) { - return ( - organizations[_avatar].globalConstraintsPre.length, - organizations[_avatar].globalConstraintsPost.length - ); - } - - function isGlobalConstraintRegistered(address _globalConstraint, address _avatar) external view returns (bool) { - return (organizations[_avatar].globalConstraintsRegisterPre[_globalConstraint].isRegistered || - organizations[_avatar].globalConstraintsRegisterPost[_globalConstraint].isRegistered); - } - - /** - * @dev getNativeReputation - * @param _avatar the organization avatar. - * @return organization native reputation - */ - function getNativeReputation(address _avatar) external view returns (address) { - return address(organizations[_avatar].nativeReputation); - } - - /** - * @dev removeGlobalConstraintPre - * @param _globalConstraint the address of the global constraint to be remove. - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function removeGlobalConstraintPre(address _globalConstraint, address _avatar) private returns (bool) { - GlobalConstraintRegister memory globalConstraintRegister = organizations[_avatar].globalConstraintsRegisterPre[ - _globalConstraint - ]; - GlobalConstraint[] storage globalConstraints = organizations[_avatar].globalConstraintsPre; - - if (globalConstraintRegister.isRegistered) { - if (globalConstraintRegister.index < globalConstraints.length - 1) { - GlobalConstraint memory globalConstraint = globalConstraints[globalConstraints.length - 1]; - globalConstraints[globalConstraintRegister.index] = globalConstraint; - organizations[_avatar] - .globalConstraintsRegisterPre[globalConstraint.gcAddress] - .index = globalConstraintRegister.index; - } - globalConstraints.length--; - delete organizations[_avatar].globalConstraintsRegisterPre[_globalConstraint]; - emit RemoveGlobalConstraint(_globalConstraint, globalConstraintRegister.index, true, _avatar); - return true; - } - return false; - } - - /** - * @dev removeGlobalConstraintPost - * @param _globalConstraint the address of the global constraint to be remove. - * @param _avatar the organization avatar. - * @return bool which represents a success - */ - function removeGlobalConstraintPost(address _globalConstraint, address _avatar) private returns (bool) { - GlobalConstraintRegister memory globalConstraintRegister = organizations[_avatar].globalConstraintsRegisterPost[ - _globalConstraint - ]; - GlobalConstraint[] storage globalConstraints = organizations[_avatar].globalConstraintsPost; - - if (globalConstraintRegister.isRegistered) { - if (globalConstraintRegister.index < globalConstraints.length - 1) { - GlobalConstraint memory globalConstraint = globalConstraints[globalConstraints.length - 1]; - globalConstraints[globalConstraintRegister.index] = globalConstraint; - organizations[_avatar] - .globalConstraintsRegisterPost[globalConstraint.gcAddress] - .index = globalConstraintRegister.index; - } - globalConstraints.length--; - delete organizations[_avatar].globalConstraintsRegisterPost[_globalConstraint]; - emit RemoveGlobalConstraint(_globalConstraint, globalConstraintRegister.index, false, _avatar); - return true; - } - return false; - } - - function _isSchemeRegistered(address _scheme, address _avatar) private view returns (bool) { - return (organizations[_avatar].schemes[_scheme].permissions & bytes4(0x00000001) != bytes4(0)); - } -} diff --git a/contracts/daostack/globalConstraints/GlobalConstraintInterface.sol b/contracts/daostack/globalConstraints/GlobalConstraintInterface.sol deleted file mode 100644 index 06934b53..00000000 --- a/contracts/daostack/globalConstraints/GlobalConstraintInterface.sol +++ /dev/null @@ -1,27 +0,0 @@ -pragma solidity ^0.5.4; - -contract GlobalConstraintInterface { - enum CallPhase { - Pre, - Post, - PreAndPost - } - - function pre( - address _scheme, - bytes32 _params, - bytes32 _method - ) public returns (bool); - - function post( - address _scheme, - bytes32 _params, - bytes32 _method - ) public returns (bool); - - /** - * @dev when return if this globalConstraints is pre, post or both. - * @return CallPhase enum indication Pre, Post or PreAndPost. - */ - function when() public returns (CallPhase); -} diff --git a/contracts/daostack/globalConstraints/TokenCapGC.sol b/contracts/daostack/globalConstraints/TokenCapGC.sol deleted file mode 100644 index 2624fc3c..00000000 --- a/contracts/daostack/globalConstraints/TokenCapGC.sol +++ /dev/null @@ -1,83 +0,0 @@ -pragma solidity ^0.5.4; - -import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; -import "./GlobalConstraintInterface.sol"; - -/** - * @title Token Cap Global Constraint - * @dev A simple global constraint to cap the number of tokens. - */ - -contract TokenCapGC { - // A set of parameters, on which the cap will be checked: - struct Parameters { - IERC20 token; - uint256 cap; - } - - // Mapping from the hash of the parameters to the parameters themselves: - mapping(bytes32 => Parameters) public parameters; - - /** - * @dev adding a new set of parameters - * @param _token the token to add to the params. - * @param _cap the cap to check the total supply against. - * @return the calculated parameters hash - */ - function setParameters(IERC20 _token, uint256 _cap) public returns (bytes32) { - bytes32 paramsHash = getParametersHash(_token, _cap); - parameters[paramsHash].token = _token; - parameters[paramsHash].cap = _cap; - return paramsHash; - } - - /** - * @dev calculate and returns the hash of the given parameters - * @param _token the token to add to the params. - * @param _cap the cap to check the total supply against. - * @return the calculated parameters hash - */ - function getParametersHash(IERC20 _token, uint256 _cap) public pure returns (bytes32) { - return (keccak256(abi.encodePacked(_token, _cap))); - } - - /** - * @dev check the constraint after the action. - * This global constraint only checks the state after the action, so here we just return true: - * @return true - */ - function pre( - address, - bytes32, - bytes32 - ) public pure returns (bool) { - return true; - } - - /** - * @dev check the total supply cap. - * @param _paramsHash the parameters hash to check the total supply cap against. - * @return bool which represents a success - */ - function post( - address, - bytes32 _paramsHash, - bytes32 - ) public view returns (bool) { - if ( - (parameters[_paramsHash].token != IERC20(0)) && - (parameters[_paramsHash].token.totalSupply() > parameters[_paramsHash].cap) - ) { - return false; - } - return true; - } - - /** - * @dev when return if this globalConstraints is pre, post or both. - * @return CallPhase enum indication Pre, Post or PreAndPost. - */ - function when() public pure returns (GlobalConstraintInterface.CallPhase) { - return GlobalConstraintInterface.CallPhase.Post; - } -} diff --git a/contracts/daostack/libs/RealMath.sol b/contracts/daostack/libs/RealMath.sol deleted file mode 100644 index 56610e1c..00000000 --- a/contracts/daostack/libs/RealMath.sol +++ /dev/null @@ -1,82 +0,0 @@ -pragma solidity ^0.5.11; - -/** - * RealMath: fixed-point math library, based on fractional and integer parts. - * Using uint256 as real216x40, which isn't in Solidity yet. - * Internally uses the wider uint256 for some math. - * - * Note that for addition, subtraction, and mod (%), you should just use the - * built-in Solidity operators. Functions for these operations are not provided. - * - */ - -library RealMath { - /** - * How many total bits are there? - */ - uint256 private constant REAL_BITS = 256; - - /** - * How many fractional bits are there? - */ - uint256 private constant REAL_FBITS = 40; - - /** - * What's the first non-fractional bit - */ - uint256 private constant REAL_ONE = uint256(1) << REAL_FBITS; - - /** - * Raise a real number to any positive integer power - */ - function pow(uint256 realBase, uint256 exponent) internal pure returns (uint256) { - uint256 tempRealBase = realBase; - uint256 tempExponent = exponent; - - // Start with the 0th power - uint256 realResult = REAL_ONE; - while (tempExponent != 0) { - // While there are still bits set - if ((tempExponent & 0x1) == 0x1) { - // If the low bit is set, multiply in the (many-times-squared) base - realResult = mul(realResult, tempRealBase); - } - // Shift off the low bit - tempExponent = tempExponent >> 1; - if (tempExponent != 0) { - // Do the squaring - tempRealBase = mul(tempRealBase, tempRealBase); - } - } - - // Return the final result. - return realResult; - } - - /** - * Create a real from a rational fraction. - */ - function fraction(uint216 numerator, uint216 denominator) internal pure returns (uint256) { - return div(uint256(numerator) * REAL_ONE, uint256(denominator) * REAL_ONE); - } - - /** - * Multiply one real by another. Truncates overflows. - */ - function mul(uint256 realA, uint256 realB) private pure returns (uint256) { - // When multiplying fixed point in x.y and z.w formats we get (x+z).(y+w) format. - // So we just have to clip off the extra REAL_FBITS fractional bits. - uint256 res = realA * realB; - require(res / realA == realB, "RealMath mul overflow"); - return (res >> REAL_FBITS); - } - - /** - * Divide one real by another real. Truncates overflows. - */ - function div(uint256 realNumerator, uint256 realDenominator) private pure returns (uint256) { - // We use the reverse of the multiplication trick: convert numerator from - // x.y to (x+z).(y+w) fixed point, then divide by denom in z.w fixed point. - return uint256((uint256(realNumerator) * REAL_ONE) / uint256(realDenominator)); - } -} diff --git a/contracts/daostack/libs/SafeERC20.sol b/contracts/daostack/libs/SafeERC20.sol deleted file mode 100644 index bab92ed5..00000000 --- a/contracts/daostack/libs/SafeERC20.sol +++ /dev/null @@ -1,85 +0,0 @@ -/* - -SafeERC20 by daostack. -The code is based on a fix by SECBIT Team. - -USE WITH CAUTION & NO WARRANTY - -REFERENCE & RELATED READING -- https://github.com/ethereum/solidity/issues/4116 -- https://medium.com/@chris_77367/explaining-unexpected-reverts-starting-with-solidity-0-4-22-3ada6e82308c -- https://medium.com/coinmonks/missing-return-value-bug-at-least-130-tokens-affected-d67bf08521ca -- https://gist.github.com/BrendanChou/88a2eeb80947ff00bcf58ffdafeaeb61 - -*/ -pragma solidity ^0.5.4; - -import "openzeppelin-solidity/contracts/utils/Address.sol"; -import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; - -library SafeERC20 { - using Address for address; - - bytes4 private constant TRANSFER_SELECTOR = bytes4(keccak256(bytes("transfer(address,uint256)"))); - bytes4 private constant TRANSFERFROM_SELECTOR = bytes4(keccak256(bytes("transferFrom(address,address,uint256)"))); - bytes4 private constant APPROVE_SELECTOR = bytes4(keccak256(bytes("approve(address,uint256)"))); - - function safeTransfer( - address _erc20Addr, - address _to, - uint256 _value - ) internal { - // Must be a contract addr first! - require(_erc20Addr.isContract()); - - ( - bool success, - bytes memory returnValue // solhint-disable-next-line avoid-low-level-calls - ) = _erc20Addr.call(abi.encodeWithSelector(TRANSFER_SELECTOR, _to, _value)); - // call return false when something wrong - require(success); - //check return value - require(returnValue.length == 0 || (returnValue.length == 32 && (returnValue[31] != 0))); - } - - function safeTransferFrom( - address _erc20Addr, - address _from, - address _to, - uint256 _value - ) internal { - // Must be a contract addr first! - require(_erc20Addr.isContract()); - - ( - bool success, - bytes memory returnValue // solhint-disable-next-line avoid-low-level-calls - ) = _erc20Addr.call(abi.encodeWithSelector(TRANSFERFROM_SELECTOR, _from, _to, _value)); - // call return false when something wrong - require(success); - //check return value - require(returnValue.length == 0 || (returnValue.length == 32 && (returnValue[31] != 0))); - } - - function safeApprove( - address _erc20Addr, - address _spender, - uint256 _value - ) internal { - // Must be a contract addr first! - require(_erc20Addr.isContract()); - - // safeApprove should only be called when setting an initial allowance, - // or when resetting it to zero. - require((_value == 0) || (IERC20(_erc20Addr).allowance(address(this), _spender) == 0)); - - ( - bool success, - bytes memory returnValue // solhint-disable-next-line avoid-low-level-calls - ) = _erc20Addr.call(abi.encodeWithSelector(APPROVE_SELECTOR, _spender, _value)); - // call return false when something wrong - require(success); - //check return value - require(returnValue.length == 0 || (returnValue.length == 32 && (returnValue[31] != 0))); - } -} diff --git a/contracts/daostack/test/AbsoluteVoteExecuteMock.sol b/contracts/daostack/test/AbsoluteVoteExecuteMock.sol deleted file mode 100644 index 943973a0..00000000 --- a/contracts/daostack/test/AbsoluteVoteExecuteMock.sol +++ /dev/null @@ -1,100 +0,0 @@ -pragma solidity 0.5.17; - -import "../votingMachines/ProposalExecuteInterface.sol"; -import "../votingMachines/VotingMachineCallbacksInterface.sol"; -import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; -import "./Debug.sol"; -import "../controller/Reputation.sol"; -import "../votingMachines/AbsoluteVote.sol"; - -contract AbsoluteVoteExecuteMock is Debug, VotingMachineCallbacksInterface, ProposalExecuteInterface, Ownable { - Reputation public reputation; - AbsoluteVote public absoluteVote; - mapping(bytes32 => uint256) public proposalsBlockNumbers; - - event NewProposal( - bytes32 indexed _proposalId, - address indexed _organization, - uint256 _numOfChoices, - address _proposer, - bytes32 _paramsHash - ); - - /** - * @dev Constructor - */ - constructor(Reputation _reputation, AbsoluteVote _absoluteVote) public { - reputation = _reputation; - absoluteVote = _absoluteVote; - transferOwnership(address(_absoluteVote)); - } - - function mintReputation( - uint256 _amount, - address _beneficiary, - bytes32 - ) external onlyOwner returns (bool) { - return reputation.mint(_beneficiary, _amount); - } - - function burnReputation( - uint256 _amount, - address _beneficiary, - bytes32 - ) external onlyOwner returns (bool) { - return reputation.burn(_beneficiary, _amount); - } - - function stakingTokenTransfer( - IERC20 _stakingToken, - address _beneficiary, - uint256 _amount, - bytes32 - ) external onlyOwner returns (bool) { - return _stakingToken.transfer(_beneficiary, _amount); - } - - function executeProposal(bytes32 _proposalId, int256 _decision) external returns (bool) { - emit LogBytes32(_proposalId); - emit LogInt(_decision); - return true; - } - - function propose( - uint256 _numOfChoices, - bytes32 _paramsHash, - address, - address _proposer, - address _organization - ) external returns (bytes32) { - bytes32 proposalId = absoluteVote.propose(_numOfChoices, _paramsHash, _proposer, _organization); - proposalsBlockNumbers[proposalId] = block.number; - - return proposalId; - } - - //this function is used only for testing purpose on this mock contract - function burnReputationTest( - uint256 _amount, - address _beneficiary, - bytes32 - ) external returns (bool) { - return reputation.burn(_beneficiary, _amount); - } - - function setProposal(bytes32 _proposalId) external returns (bool) { - proposalsBlockNumbers[_proposalId] = block.number; - } - - function getTotalReputationSupply(bytes32 _proposalId) external view returns (uint256) { - return reputation.totalSupplyAt(proposalsBlockNumbers[_proposalId]); - } - - function reputationOf(address _owner, bytes32 _proposalId) external view returns (uint256) { - return reputation.balanceOfAt(_owner, proposalsBlockNumbers[_proposalId]); - } - - function balanceOfStakingToken(IERC20 _stakingToken, bytes32) external view returns (uint256) { - return _stakingToken.balanceOf(address(this)); - } -} diff --git a/contracts/daostack/test/Debug.sol b/contracts/daostack/test/Debug.sol deleted file mode 100644 index 81afcb38..00000000 --- a/contracts/daostack/test/Debug.sol +++ /dev/null @@ -1,15 +0,0 @@ -pragma solidity 0.5.17; - -/* - A contract you can inherit from that has some useful Events to print statements. -*/ - -contract Debug { - event LogAddress(address _msg); - event LogInt(int256 _msg); - event LogString(string _msg); - event LogUint(uint256 _msg); - event LogBytes(bytes _msg); - event LogBytes32(bytes32 _msg); - event LogBool(bool _msg); -} diff --git a/contracts/daostack/test/GenesisProtocolCallbacksMock.sol b/contracts/daostack/test/GenesisProtocolCallbacksMock.sol deleted file mode 100644 index 251248db..00000000 --- a/contracts/daostack/test/GenesisProtocolCallbacksMock.sol +++ /dev/null @@ -1,111 +0,0 @@ -pragma solidity 0.5.17; - -import "../votingMachines/VotingMachineCallbacksInterface.sol"; -import "../votingMachines/ProposalExecuteInterface.sol"; -import "../votingMachines/GenesisProtocol.sol"; -import "../controller/Reputation.sol"; -import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; -import "./Debug.sol"; - -contract GenesisProtocolCallbacksMock is Debug, VotingMachineCallbacksInterface, ProposalExecuteInterface, Ownable { - Reputation public reputation; - IERC20 public stakingToken; - GenesisProtocol public genesisProtocol; - mapping(bytes32 => uint256) public proposalsBlockNumbers; - - event NewProposal( - bytes32 indexed _proposalId, - address indexed _organization, - uint256 _numOfChoices, - address _proposer, - bytes32 _paramsHash - ); - - /** - * @dev Constructor - */ - constructor( - Reputation _reputation, - IERC20 _stakingToken, - GenesisProtocol _genesisProtocol - ) public { - reputation = _reputation; - stakingToken = _stakingToken; - genesisProtocol = _genesisProtocol; - transferOwnership(address(genesisProtocol)); - } - - function mintReputation( - uint256 _amount, - address _beneficiary, - bytes32 - ) external onlyOwner returns (bool) { - return reputation.mint(_beneficiary, _amount); - } - - function burnReputation( - uint256 _amount, - address _beneficiary, - bytes32 - ) external onlyOwner returns (bool) { - return reputation.burn(_beneficiary, _amount); - } - - function stakingTokenTransfer( - IERC20 _stakingToken, - address _beneficiary, - uint256 _amount, - bytes32 - ) external onlyOwner returns (bool) { - return _stakingToken.transfer(_beneficiary, _amount); - } - - function setParameters(uint256[11] calldata _params, address _voteOnBehalf) external returns (bytes32) { - return genesisProtocol.setParameters(_params, _voteOnBehalf); - } - - function executeProposal(bytes32 _proposalId, int256 _decision) external returns (bool) { - emit LogBytes32(_proposalId); - emit LogInt(_decision); - return true; - } - - function propose( - uint256 _numOfChoices, - bytes32 _paramsHash, - address, - address _proposer, - address _organization - ) external returns (bytes32) { - bytes32 proposalId = genesisProtocol.propose(_numOfChoices, _paramsHash, _proposer, _organization); - emit NewProposal(proposalId, address(this), _numOfChoices, _proposer, _paramsHash); - proposalsBlockNumbers[proposalId] = block.number; - - return proposalId; - } - - //this function is used only for testing purpose on this mock contract - function burnReputationTest( - uint256 _amount, - address _beneficiary, - bytes32 - ) external returns (bool) { - return reputation.burn(_beneficiary, _amount); - } - - function setProposal(bytes32 _proposalId) external returns (bool) { - proposalsBlockNumbers[_proposalId] = block.number; - } - - function getTotalReputationSupply(bytes32 _proposalId) external view returns (uint256) { - return reputation.totalSupplyAt(proposalsBlockNumbers[_proposalId]); - } - - function balanceOfStakingToken(IERC20 _stakingToken, bytes32) external view returns (uint256) { - return _stakingToken.balanceOf(address(this)); - } - - function reputationOf(address _owner, bytes32 _proposalId) external view returns (uint256) { - return reputation.balanceOfAt(_owner, proposalsBlockNumbers[_proposalId]); - } -} diff --git a/contracts/daostack/test/RealMathTester.sol b/contracts/daostack/test/RealMathTester.sol deleted file mode 100644 index 55059015..00000000 --- a/contracts/daostack/test/RealMathTester.sol +++ /dev/null @@ -1,20 +0,0 @@ -pragma solidity 0.5.17; - -import "../libs/RealMath.sol"; - -contract RealMathTester { - using RealMath for uint216; - using RealMath for uint256; - - function power( - uint216 num, - uint216 den, - uint256 exp - ) public pure returns (uint256) { - return (num.fraction(den)).pow(exp); - } - - function fraction(uint216 num, uint216 den) public pure returns (uint256) { - return num.fraction(den); - } -} diff --git a/contracts/daostack/universalSchemes/ContributionReward.sol b/contracts/daostack/universalSchemes/ContributionReward.sol deleted file mode 100644 index f6045830..00000000 --- a/contracts/daostack/universalSchemes/ContributionReward.sol +++ /dev/null @@ -1,470 +0,0 @@ -pragma solidity ^0.5.4; - -import "../votingMachines/IntVoteInterface.sol"; -import "../votingMachines/VotingMachineCallbacksInterface.sol"; -import "./UniversalScheme.sol"; -import "../votingMachines/VotingMachineCallbacks.sol"; - -/** - * @title A scheme for proposing and rewarding contributions to an organization - * @dev An agent can ask an organization to recognize a contribution and reward - * him with token, reputation, ether or any combination. - */ - -contract ContributionReward is UniversalScheme, VotingMachineCallbacks, ProposalExecuteInterface { - using SafeMath for uint256; - - event NewContributionProposal( - address indexed _avatar, - bytes32 indexed _proposalId, - address indexed _intVoteInterface, - string _descriptionHash, - int256 _reputationChange, - uint256[5] _rewards, - IERC20 _externalToken, - address _beneficiary - ); - - event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId, int256 _param); - - event RedeemReputation( - address indexed _avatar, - bytes32 indexed _proposalId, - address indexed _beneficiary, - int256 _amount - ); - - event RedeemEther( - address indexed _avatar, - bytes32 indexed _proposalId, - address indexed _beneficiary, - uint256 _amount - ); - - event RedeemNativeToken( - address indexed _avatar, - bytes32 indexed _proposalId, - address indexed _beneficiary, - uint256 _amount - ); - - event RedeemExternalToken( - address indexed _avatar, - bytes32 indexed _proposalId, - address indexed _beneficiary, - uint256 _amount - ); - - // A struct holding the data for a contribution proposal - struct ContributionProposal { - uint256 nativeTokenReward; // Reward asked in the native token of the organization. - int256 reputationChange; // Organization reputation reward requested. - uint256 ethReward; - IERC20 externalToken; - uint256 externalTokenReward; - address payable beneficiary; - uint256 periodLength; - uint256 numberOfPeriods; - uint256 executionTime; - uint256[4] redeemedPeriods; - } - - // A mapping from the organization (Avatar) address to the saved data of the organization: - mapping(address => mapping(bytes32 => ContributionProposal)) public organizationsProposals; - - // A mapping from hashes to parameters (use to store a particular configuration on the controller) - struct Parameters { - bytes32 voteApproveParams; - IntVoteInterface intVote; - } - - // A mapping from hashes to parameters (use to store a particular configuration on the controller) - mapping(bytes32 => Parameters) public parameters; - - /** - * @dev execution of proposals, can only be called by the voting machine in which the vote is held. - * @param _proposalId the ID of the voting in the voting machine - * @param _param a parameter of the voting result, 1 yes and 2 is no. - */ - function executeProposal(bytes32 _proposalId, int256 _param) - external - onlyVotingMachine(_proposalId) - returns (bool) - { - ProposalInfo memory proposal = proposalsInfo[msg.sender][_proposalId]; - require(organizationsProposals[address(proposal.avatar)][_proposalId].executionTime == 0); - require(organizationsProposals[address(proposal.avatar)][_proposalId].beneficiary != address(0)); - // Check if vote was successful: - if (_param == 1) { - // solhint-disable-next-line not-rely-on-time - organizationsProposals[address(proposal.avatar)][_proposalId].executionTime = now; - } - emit ProposalExecuted(address(proposal.avatar), _proposalId, _param); - return true; - } - - /** - * @dev hash the parameters, save them if necessary, and return the hash value - */ - function setParameters(bytes32 _voteApproveParams, IntVoteInterface _intVote) public returns (bytes32) { - bytes32 paramsHash = getParametersHash(_voteApproveParams, _intVote); - parameters[paramsHash].voteApproveParams = _voteApproveParams; - parameters[paramsHash].intVote = _intVote; - return paramsHash; - } - - /** - * @dev return a hash of the given parameters - * @param _voteApproveParams parameters for the voting machine used to approve a contribution - * @param _intVote the voting machine used to approve a contribution - * @return a hash of the parameters - */ - function getParametersHash(bytes32 _voteApproveParams, IntVoteInterface _intVote) public pure returns (bytes32) { - return (keccak256(abi.encodePacked(_voteApproveParams, _intVote))); - } - - /** - * @dev Submit a proposal for a reward for a contribution: - * @param _avatar Avatar of the organization that the contribution was made for - * @param _descriptionHash A hash of the proposal's description - * @param _reputationChange - Amount of reputation change requested .Can be negative. - * @param _rewards rewards array: - * rewards[0] - Amount of tokens requested per period - * rewards[1] - Amount of ETH requested per period - * rewards[2] - Amount of external tokens requested per period - * rewards[3] - Period length - if set to zero it allows immediate redeeming after execution. - * rewards[4] - Number of periods - * @param _externalToken Address of external token, if reward is requested there - * @param _beneficiary Who gets the rewards - */ - function proposeContributionReward( - Avatar _avatar, - string memory _descriptionHash, - int256 _reputationChange, - uint256[5] memory _rewards, - IERC20 _externalToken, - address payable _beneficiary - ) public returns (bytes32) { - validateProposalParams(_reputationChange, _rewards); - Parameters memory controllerParams = parameters[getParametersFromController(_avatar)]; - - bytes32 contributionId = controllerParams.intVote.propose( - 2, - controllerParams.voteApproveParams, - msg.sender, - address(_avatar) - ); - - address payable beneficiary = _beneficiary; - if (beneficiary == address(0)) { - beneficiary = msg.sender; - } - - ContributionProposal memory proposal = ContributionProposal({ - nativeTokenReward: _rewards[0], - reputationChange: _reputationChange, - ethReward: _rewards[1], - externalToken: _externalToken, - externalTokenReward: _rewards[2], - beneficiary: beneficiary, - periodLength: _rewards[3], - numberOfPeriods: _rewards[4], - executionTime: 0, - redeemedPeriods: [uint256(0), uint256(0), uint256(0), uint256(0)] - }); - organizationsProposals[address(_avatar)][contributionId] = proposal; - - emit NewContributionProposal( - address(_avatar), - contributionId, - address(controllerParams.intVote), - _descriptionHash, - _reputationChange, - _rewards, - _externalToken, - beneficiary - ); - - proposalsInfo[address(controllerParams.intVote)][contributionId] = ProposalInfo({ - blockNumber: block.number, - avatar: _avatar - }); - return contributionId; - } - - /** - * @dev RedeemReputation reward for proposal - * @param _proposalId the ID of the voting in the voting machine - * @param _avatar address of the controller - * @return reputation the redeemed reputation. - */ - function redeemReputation(bytes32 _proposalId, Avatar _avatar) public returns (int256 reputation) { - ContributionProposal memory _proposal = organizationsProposals[address(_avatar)][_proposalId]; - ContributionProposal storage proposal = organizationsProposals[address(_avatar)][_proposalId]; - require(proposal.executionTime != 0); - uint256 periodsToPay = getPeriodsToPay(_proposalId, address(_avatar), 0); - - //set proposal reward to zero to prevent reentrancy attack. - proposal.reputationChange = 0; - reputation = int256(periodsToPay) * _proposal.reputationChange; - if (reputation > 0) { - require( - ControllerInterface(_avatar.owner()).mintReputation( - uint256(reputation), - _proposal.beneficiary, - address(_avatar) - ) - ); - } else if (reputation < 0) { - require( - ControllerInterface(_avatar.owner()).burnReputation( - uint256(reputation * (-1)), - _proposal.beneficiary, - address(_avatar) - ) - ); - } - if (reputation != 0) { - proposal.redeemedPeriods[0] = proposal.redeemedPeriods[0].add(periodsToPay); - emit RedeemReputation(address(_avatar), _proposalId, _proposal.beneficiary, reputation); - } - //restore proposal reward. - proposal.reputationChange = _proposal.reputationChange; - } - - /** - * @dev RedeemNativeToken reward for proposal - * @param _proposalId the ID of the voting in the voting machine - * @param _avatar address of the controller - * @return amount the redeemed nativeToken. - */ - function redeemNativeToken(bytes32 _proposalId, Avatar _avatar) public returns (uint256 amount) { - ContributionProposal memory _proposal = organizationsProposals[address(_avatar)][_proposalId]; - ContributionProposal storage proposal = organizationsProposals[address(_avatar)][_proposalId]; - require(proposal.executionTime != 0); - uint256 periodsToPay = getPeriodsToPay(_proposalId, address(_avatar), 1); - //set proposal rewards to zero to prevent reentrancy attack. - proposal.nativeTokenReward = 0; - - amount = periodsToPay.mul(_proposal.nativeTokenReward); - if (amount > 0) { - require(ControllerInterface(_avatar.owner()).mintTokens(amount, _proposal.beneficiary, address(_avatar))); - proposal.redeemedPeriods[1] = proposal.redeemedPeriods[1].add(periodsToPay); - emit RedeemNativeToken(address(_avatar), _proposalId, _proposal.beneficiary, amount); - } - - //restore proposal reward. - proposal.nativeTokenReward = _proposal.nativeTokenReward; - } - - /** - * @dev RedeemEther reward for proposal - * @param _proposalId the ID of the voting in the voting machine - * @param _avatar address of the controller - * @return amount ether redeemed amount - */ - function redeemEther(bytes32 _proposalId, Avatar _avatar) public returns (uint256 amount) { - ContributionProposal memory _proposal = organizationsProposals[address(_avatar)][_proposalId]; - ContributionProposal storage proposal = organizationsProposals[address(_avatar)][_proposalId]; - require(proposal.executionTime != 0); - uint256 periodsToPay = getPeriodsToPay(_proposalId, address(_avatar), 2); - //set proposal rewards to zero to prevent reentrancy attack. - proposal.ethReward = 0; - amount = periodsToPay.mul(_proposal.ethReward); - - if (amount > 0) { - require(ControllerInterface(_avatar.owner()).sendEther(amount, _proposal.beneficiary, _avatar)); - proposal.redeemedPeriods[2] = proposal.redeemedPeriods[2].add(periodsToPay); - emit RedeemEther(address(_avatar), _proposalId, _proposal.beneficiary, amount); - } - - //restore proposal reward. - proposal.ethReward = _proposal.ethReward; - } - - /** - * @dev RedeemNativeToken reward for proposal - * @param _proposalId the ID of the voting in the voting machine - * @param _avatar address of the controller - * @return amount the external token redeemed amount - */ - function redeemExternalToken(bytes32 _proposalId, Avatar _avatar) public returns (uint256 amount) { - ContributionProposal memory _proposal = organizationsProposals[address(_avatar)][_proposalId]; - ContributionProposal storage proposal = organizationsProposals[address(_avatar)][_proposalId]; - require(proposal.executionTime != 0); - uint256 periodsToPay = getPeriodsToPay(_proposalId, address(_avatar), 3); - //set proposal rewards to zero to prevent reentrancy attack. - proposal.externalTokenReward = 0; - - if (proposal.externalToken != IERC20(0) && _proposal.externalTokenReward > 0) { - amount = periodsToPay.mul(_proposal.externalTokenReward); - if (amount > 0) { - require( - ControllerInterface(_avatar.owner()).externalTokenTransfer( - _proposal.externalToken, - _proposal.beneficiary, - amount, - _avatar - ) - ); - proposal.redeemedPeriods[3] = proposal.redeemedPeriods[3].add(periodsToPay); - emit RedeemExternalToken(address(_avatar), _proposalId, _proposal.beneficiary, amount); - } - } - //restore proposal reward. - proposal.externalTokenReward = _proposal.externalTokenReward; - } - - /** - * @dev redeem rewards for proposal - * @param _proposalId the ID of the voting in the voting machine - * @param _avatar address of the controller - * @param _whatToRedeem whatToRedeem array: - * whatToRedeem[0] - reputation - * whatToRedeem[1] - nativeTokenReward - * whatToRedeem[2] - Ether - * whatToRedeem[3] - ExternalToken - * @return result boolean array for each redeem type. - */ - function redeem( - bytes32 _proposalId, - Avatar _avatar, - bool[4] memory _whatToRedeem - ) - public - returns ( - int256 reputationReward, - uint256 nativeTokenReward, - uint256 etherReward, - uint256 externalTokenReward - ) - { - if (_whatToRedeem[0]) { - reputationReward = redeemReputation(_proposalId, _avatar); - } - - if (_whatToRedeem[1]) { - nativeTokenReward = redeemNativeToken(_proposalId, _avatar); - } - - if (_whatToRedeem[2]) { - etherReward = redeemEther(_proposalId, _avatar); - } - - if (_whatToRedeem[3]) { - externalTokenReward = redeemExternalToken(_proposalId, _avatar); - } - } - - /** - * @dev getPeriodsToPay return the periods left to be paid for reputation,nativeToken,ether or externalToken. - * The function ignore the reward amount to be paid (which can be zero). - * @param _proposalId the ID of the voting in the voting machine - * @param _avatar address of the controller - * @param _redeemType - the type of the reward : - * 0 - reputation - * 1 - nativeTokenReward - * 2 - Ether - * 3 - ExternalToken - * @return periods left to be paid. - */ - function getPeriodsToPay( - bytes32 _proposalId, - address _avatar, - uint256 _redeemType - ) public view returns (uint256) { - require(_redeemType <= 3, "should be in the redeemedPeriods range"); - ContributionProposal memory _proposal = organizationsProposals[_avatar][_proposalId]; - if (_proposal.executionTime == 0) return 0; - uint256 periodsFromExecution; - if (_proposal.periodLength > 0) { - // solhint-disable-next-line not-rely-on-time - periodsFromExecution = (now.sub(_proposal.executionTime)) / (_proposal.periodLength); - } - uint256 periodsToPay; - if ((_proposal.periodLength == 0) || (periodsFromExecution >= _proposal.numberOfPeriods)) { - periodsToPay = _proposal.numberOfPeriods.sub(_proposal.redeemedPeriods[_redeemType]); - } else { - periodsToPay = periodsFromExecution.sub(_proposal.redeemedPeriods[_redeemType]); - } - return periodsToPay; - } - - /** - * @dev getRedeemedPeriods return the already redeemed periods for reputation, nativeToken, ether or externalToken. - * @param _proposalId the ID of the voting in the voting machine - * @param _avatar address of the controller - * @param _redeemType - the type of the reward : - * 0 - reputation - * 1 - nativeTokenReward - * 2 - Ether - * 3 - ExternalToken - * @return redeemed period. - */ - function getRedeemedPeriods( - bytes32 _proposalId, - address _avatar, - uint256 _redeemType - ) public view returns (uint256) { - return organizationsProposals[_avatar][_proposalId].redeemedPeriods[_redeemType]; - } - - function getProposalEthReward(bytes32 _proposalId, address _avatar) public view returns (uint256) { - return organizationsProposals[_avatar][_proposalId].ethReward; - } - - function getProposalExternalTokenReward(bytes32 _proposalId, address _avatar) public view returns (uint256) { - return organizationsProposals[_avatar][_proposalId].externalTokenReward; - } - - function getProposalExternalToken(bytes32 _proposalId, address _avatar) public view returns (address) { - return address(organizationsProposals[_avatar][_proposalId].externalToken); - } - - function getProposalExecutionTime(bytes32 _proposalId, address _avatar) public view returns (uint256) { - return organizationsProposals[_avatar][_proposalId].executionTime; - } - - /** - * @dev validateProposalParams validate proposal's rewards parameters. - * The function check for potential overflow upon proposal's redeem. - * The function reverts if the params are not valid. - * @param _reputationChange - Amount of reputation change requested .Can be negative. - * @param _rewards rewards array: - * rewards[0] - Amount of tokens requested per period - * rewards[1] - Amount of ETH requested per period - * rewards[2] - Amount of external tokens requested per period - * rewards[3] - Period length - if set to zero it allows immediate redeeming after execution. - * rewards[4] - Number of periods - */ - function validateProposalParams(int256 _reputationChange, uint256[5] memory _rewards) private pure { - require(((_rewards[3] > 0) || (_rewards[4] == 1)), "periodLength equal 0 require numberOfPeriods to be 1"); - if (_rewards[4] > 0) { - // This is the only case of overflow not detected by the check below - require( - !(int256(_rewards[4]) == -1 && _reputationChange == (-2**255)), - "numberOfPeriods * _reputationChange will overflow" - ); - //check that numberOfPeriods * _reputationChange will not overflow - require( - (int256(_rewards[4]) * _reputationChange) / int256(_rewards[4]) == _reputationChange, - "numberOfPeriods * reputationChange will overflow" - ); - //check that numberOfPeriods * tokenReward will not overflow - require( - (_rewards[4] * _rewards[0]) / _rewards[4] == _rewards[0], - "numberOfPeriods * tokenReward will overflow" - ); - //check that numberOfPeriods * ethReward will not overflow - require( - (_rewards[4] * _rewards[1]) / _rewards[4] == _rewards[1], - "numberOfPeriods * ethReward will overflow" - ); - //check that numberOfPeriods * texternalTokenReward will not overflow - require( - (_rewards[4] * _rewards[2]) / _rewards[4] == _rewards[2], - "numberOfPeriods * texternalTokenReward will overflow" - ); - } - } -} diff --git a/contracts/daostack/universalSchemes/SchemeRegistrar.sol b/contracts/daostack/universalSchemes/SchemeRegistrar.sol deleted file mode 100644 index 448c50df..00000000 --- a/contracts/daostack/universalSchemes/SchemeRegistrar.sol +++ /dev/null @@ -1,191 +0,0 @@ -pragma solidity ^0.5.4; - -import "../votingMachines/IntVoteInterface.sol"; -import "../votingMachines/VotingMachineCallbacksInterface.sol"; -import "./UniversalScheme.sol"; -import "../votingMachines/VotingMachineCallbacks.sol"; - -/** - * @title A registrar for Schemes for organizations - * @dev The SchemeRegistrar is used for registering and unregistering schemes at organizations - */ - -contract SchemeRegistrar is UniversalScheme, VotingMachineCallbacks, ProposalExecuteInterface { - event NewSchemeProposal( - address indexed _avatar, - bytes32 indexed _proposalId, - address indexed _intVoteInterface, - address _scheme, - bytes32 _parametersHash, - bytes4 _permissions, - string _descriptionHash - ); - - event RemoveSchemeProposal( - address indexed _avatar, - bytes32 indexed _proposalId, - address indexed _intVoteInterface, - address _scheme, - string _descriptionHash - ); - - event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId, int256 _param); - event ProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId); - - // a SchemeProposal is a proposal to add or remove a scheme to/from the an organization - struct SchemeProposal { - address scheme; // - bool addScheme; // true: add a scheme, false: remove a scheme. - bytes32 parametersHash; - bytes4 permissions; - } - - // A mapping from the organization (Avatar) address to the saved data of the organization: - mapping(address => mapping(bytes32 => SchemeProposal)) public organizationsProposals; - - // A mapping from hashes to parameters (use to store a particular configuration on the controller) - struct Parameters { - bytes32 voteRegisterParams; - bytes32 voteRemoveParams; - IntVoteInterface intVote; - } - - mapping(bytes32 => Parameters) public parameters; - - /** - * @dev execution of proposals, can only be called by the voting machine in which the vote is held. - * @param _proposalId the ID of the voting in the voting machine - * @param _param a parameter of the voting result, 1 yes and 2 is no. - */ - function executeProposal(bytes32 _proposalId, int256 _param) - external - onlyVotingMachine(_proposalId) - returns (bool) - { - Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar; - SchemeProposal memory proposal = organizationsProposals[address(avatar)][_proposalId]; - require(proposal.scheme != address(0)); - delete organizationsProposals[address(avatar)][_proposalId]; - emit ProposalDeleted(address(avatar), _proposalId); - if (_param == 1) { - // Define controller and get the params: - ControllerInterface controller = ControllerInterface(avatar.owner()); - - // Add a scheme: - if (proposal.addScheme) { - require( - controller.registerScheme( - proposal.scheme, - proposal.parametersHash, - proposal.permissions, - address(avatar) - ) - ); - } - // Remove a scheme: - if (!proposal.addScheme) { - require(controller.unregisterScheme(proposal.scheme, address(avatar))); - } - } - emit ProposalExecuted(address(avatar), _proposalId, _param); - return true; - } - - /** - * @dev hash the parameters, save them if necessary, and return the hash value - */ - function setParameters( - bytes32 _voteRegisterParams, - bytes32 _voteRemoveParams, - IntVoteInterface _intVote - ) public returns (bytes32) { - bytes32 paramsHash = getParametersHash(_voteRegisterParams, _voteRemoveParams, _intVote); - parameters[paramsHash].voteRegisterParams = _voteRegisterParams; - parameters[paramsHash].voteRemoveParams = _voteRemoveParams; - parameters[paramsHash].intVote = _intVote; - return paramsHash; - } - - function getParametersHash( - bytes32 _voteRegisterParams, - bytes32 _voteRemoveParams, - IntVoteInterface _intVote - ) public pure returns (bytes32) { - return keccak256(abi.encodePacked(_voteRegisterParams, _voteRemoveParams, _intVote)); - } - - /** - * @dev create a proposal to register a scheme - * @param _avatar the address of the organization the scheme will be registered for - * @param _scheme the address of the scheme to be registered - * @param _parametersHash a hash of the configuration of the _scheme - * @param _permissions the permission of the scheme to be registered - * @param _descriptionHash proposal's description hash - * @return a proposal Id - * @dev NB: not only proposes the vote, but also votes for it - */ - function proposeScheme( - Avatar _avatar, - address _scheme, - bytes32 _parametersHash, - bytes4 _permissions, - string memory _descriptionHash - ) public returns (bytes32) { - // propose - require(_scheme != address(0), "scheme cannot be zero"); - Parameters memory controllerParams = parameters[getParametersFromController(_avatar)]; - - bytes32 proposalId = controllerParams.intVote.propose( - 2, - controllerParams.voteRegisterParams, - msg.sender, - address(_avatar) - ); - - SchemeProposal memory proposal = SchemeProposal({ - scheme: _scheme, - parametersHash: _parametersHash, - addScheme: true, - permissions: _permissions - }); - emit NewSchemeProposal( - address(_avatar), - proposalId, - address(controllerParams.intVote), - _scheme, - _parametersHash, - _permissions, - _descriptionHash - ); - organizationsProposals[address(_avatar)][proposalId] = proposal; - proposalsInfo[address(controllerParams.intVote)][proposalId] = ProposalInfo({ - blockNumber: block.number, - avatar: _avatar - }); - return proposalId; - } - - /** - * @dev propose to remove a scheme for a controller - * @param _avatar the address of the controller from which we want to remove a scheme - * @param _scheme the address of the scheme we want to remove - * @param _descriptionHash proposal description hash - * NB: not only registers the proposal, but also votes for it - */ - function proposeToRemoveScheme( - Avatar _avatar, - address _scheme, - string memory _descriptionHash - ) public returns (bytes32) { - require(_scheme != address(0), "scheme cannot be zero"); - bytes32 paramsHash = getParametersFromController(_avatar); - Parameters memory params = parameters[paramsHash]; - - IntVoteInterface intVote = params.intVote; - bytes32 proposalId = intVote.propose(2, params.voteRemoveParams, msg.sender, address(_avatar)); - organizationsProposals[address(_avatar)][proposalId].scheme = _scheme; - emit RemoveSchemeProposal(address(_avatar), proposalId, address(intVote), _scheme, _descriptionHash); - proposalsInfo[address(params.intVote)][proposalId] = ProposalInfo({blockNumber: block.number, avatar: _avatar}); - return proposalId; - } -} diff --git a/contracts/daostack/universalSchemes/UniversalScheme.sol b/contracts/daostack/universalSchemes/UniversalScheme.sol deleted file mode 100644 index 73894d51..00000000 --- a/contracts/daostack/universalSchemes/UniversalScheme.sol +++ /dev/null @@ -1,18 +0,0 @@ -pragma solidity ^0.5.4; - -import "./UniversalSchemeInterface.sol"; -import "../controller/ControllerInterface.sol"; -import "../controller/Avatar.sol"; - -contract UniversalScheme is UniversalSchemeInterface { - /** - * @dev get the parameters for the current scheme from the controller - */ - function getParametersFromController(Avatar _avatar) internal view returns (bytes32) { - require( - ControllerInterface(_avatar.owner()).isSchemeRegistered(address(this), address(_avatar)), - "scheme is not registered" - ); - return ControllerInterface(_avatar.owner()).getSchemeParameters(address(this), address(_avatar)); - } -} diff --git a/contracts/daostack/universalSchemes/UniversalSchemeInterface.sol b/contracts/daostack/universalSchemes/UniversalSchemeInterface.sol deleted file mode 100644 index 5dad27e5..00000000 --- a/contracts/daostack/universalSchemes/UniversalSchemeInterface.sol +++ /dev/null @@ -1,7 +0,0 @@ -pragma solidity ^0.5.4; - -import "../controller/Avatar.sol"; - -contract UniversalSchemeInterface { - function getParametersFromController(Avatar _avatar) internal view returns (bytes32); -} diff --git a/contracts/daostack/utils/Redeemer.sol b/contracts/daostack/utils/Redeemer.sol deleted file mode 100644 index 87ede785..00000000 --- a/contracts/daostack/utils/Redeemer.sol +++ /dev/null @@ -1,158 +0,0 @@ -pragma solidity 0.5.17; - -import "../universalSchemes/ContributionReward.sol"; - -// THIS IS NOT THE ORIGINAL REEDEMER FROM https://github.com/daostack/arc/blob/6edcc0e3ea4e49ec5181626dcfc7eae58df4f31b/contracts/utils/Redeemer.sol -// IS AN UPDATED VERSION - -contract Redeemer { - using SafeMath for uint256; - - /** - * @dev helper to redeem rewards for a proposal - * It calls execute on the proposal if it is not yet executed. - * It tries to redeem reputation and stake from the GenesisProtocol. - * It tries to redeem proposal rewards from the contribution rewards scheme. - * This function does not emit events. - * A client should listen to GenesisProtocol and ContributionReward redemption events - * to monitor redemption operations. - * @param _contributionReward contributionReward - * @param _genesisProtocol genesisProtocol - * @param _proposalId the ID of the voting in the voting machine - * @param _avatar address of the controller - * @param _beneficiary beneficiary - * @return gpRewards array - * gpRewards[0] - stakerTokenAmount - * gpRewards[1] - voterReputationAmount - * gpRewards[2] - proposerReputationAmount - * @return gpDaoBountyReward array - * gpDaoBountyReward[0] - staker dao bounty reward - - * will be zero for the case there is not enough tokens in avatar for the reward. - * gpDaoBountyReward[1] - staker potential dao bounty reward. - * @return executed bool true or false - * @return winningVote - * 1 - executed or closed and the winning vote is YES - * 2 - executed or closed and the winning vote is NO - * @return int256 crReputationReward Reputation - from ContributionReward - * @return int256 crNativeTokenReward NativeTokenReward - from ContributionReward - * @return int256 crEthReward Ether - from ContributionReward - * @return int256 crExternalTokenReward ExternalToken - from ContributionReward - */ - function redeem( - ContributionReward _contributionReward, - GenesisProtocol _genesisProtocol, - bytes32 _proposalId, - Avatar _avatar, - address _beneficiary - ) - external - returns ( - uint256[3] memory gpRewards, - uint256[2] memory gpDaoBountyReward, - bool executed, - uint256 winningVote, - int256 crReputationReward, - uint256 crNativeTokenReward, - uint256 crEthReward, - uint256 crExternalTokenReward - ) - { - bool callContributionReward; - (gpRewards, gpDaoBountyReward, executed, winningVote, callContributionReward) = genesisProtocolRedeem( - _genesisProtocol, - _proposalId, - _beneficiary - ); - if (callContributionReward) { - //redeem from contributionReward only if it executed - if (_contributionReward.getProposalExecutionTime(_proposalId, address(_avatar)) > 0) { - ( - crReputationReward, - crNativeTokenReward, - crEthReward, - crExternalTokenReward - ) = contributionRewardRedeem(_contributionReward, _proposalId, _avatar); - } - } - } - - function genesisProtocolRedeem( - GenesisProtocol _genesisProtocol, - bytes32 _proposalId, - address _beneficiary - ) - private - returns ( - uint256[3] memory gpRewards, - uint256[2] memory gpDaoBountyReward, - bool executed, - uint256 winningVote, - bool callContributionReward - ) - { - GenesisProtocol.ProposalState pState = _genesisProtocol.state(_proposalId); - - if ( - (pState == GenesisProtocolLogic.ProposalState.Queued) || - (pState == GenesisProtocolLogic.ProposalState.PreBoosted) || - (pState == GenesisProtocolLogic.ProposalState.Boosted) || - (pState == GenesisProtocolLogic.ProposalState.QuietEndingPeriod) - ) { - executed = _genesisProtocol.execute(_proposalId); - } - pState = _genesisProtocol.state(_proposalId); - if ( - (pState == GenesisProtocolLogic.ProposalState.Executed) || - (pState == GenesisProtocolLogic.ProposalState.ExpiredInQueue) - ) { - gpRewards = _genesisProtocol.redeem(_proposalId, _beneficiary); - if (pState == GenesisProtocolLogic.ProposalState.Executed) { - (gpDaoBountyReward[0], gpDaoBountyReward[1]) = _genesisProtocol.redeemDaoBounty( - _proposalId, - _beneficiary - ); - } - winningVote = _genesisProtocol.winningVote(_proposalId); - callContributionReward = true; - } - } - - function contributionRewardRedeem( - ContributionReward _contributionReward, - bytes32 _proposalId, - Avatar _avatar - ) - private - returns ( - int256 reputation, - uint256 nativeToken, - uint256 eth, - uint256 externalToken - ) - { - bool[4] memory whatToRedeem; - whatToRedeem[0] = true; //reputation - whatToRedeem[1] = true; //nativeToken - uint256 periodsToPay = _contributionReward.getPeriodsToPay(_proposalId, address(_avatar), 2); - uint256 ethReward = _contributionReward.getProposalEthReward(_proposalId, address(_avatar)); - uint256 externalTokenReward = _contributionReward.getProposalExternalTokenReward(_proposalId, address(_avatar)); - address externalTokenAddress = _contributionReward.getProposalExternalToken(_proposalId, address(_avatar)); - ethReward = periodsToPay.mul(ethReward); - if ((ethReward == 0) || (address(_avatar).balance < ethReward)) { - whatToRedeem[2] = false; - } else { - whatToRedeem[2] = true; - } - periodsToPay = _contributionReward.getPeriodsToPay(_proposalId, address(_avatar), 3); - externalTokenReward = periodsToPay.mul(externalTokenReward); - if ( - (externalTokenReward == 0) || - (IERC20(externalTokenAddress).balanceOf(address(_avatar)) < externalTokenReward) - ) { - whatToRedeem[3] = false; - } else { - whatToRedeem[3] = true; - } - (reputation, nativeToken, eth, externalToken) = _contributionReward.redeem(_proposalId, _avatar, whatToRedeem); - } -} diff --git a/contracts/daostack/votingMachines/AbsoluteVote.sol b/contracts/daostack/votingMachines/AbsoluteVote.sol deleted file mode 100644 index 29b86384..00000000 --- a/contracts/daostack/votingMachines/AbsoluteVote.sol +++ /dev/null @@ -1,292 +0,0 @@ -pragma solidity 0.5.17; - -import "../controller/Reputation.sol"; -import "./IntVoteInterface.sol"; -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; -import "./VotingMachineCallbacksInterface.sol"; -import "./ProposalExecuteInterface.sol"; - -contract AbsoluteVote is IntVoteInterface { - using SafeMath for uint256; - - struct Parameters { - uint256 precReq; // how many percentages required for the proposal to be passed - address voteOnBehalf; //if this address is set so only this address is allowed - // to vote of behalf of someone else. - } - - struct Voter { - uint256 vote; // 0 - 'abstain' - uint256 reputation; // amount of voter's reputation - } - - struct Proposal { - bytes32 organizationId; // the organization Id - bool open; // voting open flag - address callbacks; - uint256 numOfChoices; - bytes32 paramsHash; // the hash of the parameters of the proposal - uint256 totalVotes; - mapping(uint256 => uint256) votes; - mapping(address => Voter) voters; - } - - event AVVoteProposal(bytes32 indexed _proposalId, bool _isProxyVote); - - mapping(bytes32 => Parameters) public parameters; // A mapping from hashes to parameters - mapping(bytes32 => Proposal) public proposals; // Mapping from the ID of the proposal to the proposal itself. - mapping(bytes32 => address) public organizations; - - uint256 public constant MAX_NUM_OF_CHOICES = 10; - uint256 public proposalsCnt; // Total amount of proposals - - /** - * @dev Check that the proposal is votable (open and not executed yet) - */ - modifier votable(bytes32 _proposalId) { - require(proposals[_proposalId].open); - _; - } - - /** - * @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being - * generated by calculating keccak256 of a incremented counter. - * @param _numOfChoices number of voting choices - * @param _paramsHash defined the parameters of the voting machine used for this proposal - * @param _organization address - * @return proposal's id. - */ - function propose( - uint256 _numOfChoices, - bytes32 _paramsHash, - address, - address _organization - ) external returns (bytes32) { - // Check valid params and number of choices: - require(parameters[_paramsHash].precReq > 0); - require(_numOfChoices > 0 && _numOfChoices <= MAX_NUM_OF_CHOICES); - // Generate a unique ID: - bytes32 proposalId = keccak256(abi.encodePacked(this, proposalsCnt)); - proposalsCnt = proposalsCnt.add(1); - // Open proposal: - Proposal memory proposal; - proposal.numOfChoices = _numOfChoices; - proposal.paramsHash = _paramsHash; - proposal.callbacks = msg.sender; - proposal.organizationId = keccak256(abi.encodePacked(msg.sender, _organization)); - proposal.open = true; - proposals[proposalId] = proposal; - if (organizations[proposal.organizationId] == address(0)) { - if (_organization == address(0)) { - organizations[proposal.organizationId] = msg.sender; - } else { - organizations[proposal.organizationId] = _organization; - } - } - emit NewProposal(proposalId, organizations[proposal.organizationId], _numOfChoices, msg.sender, _paramsHash); - return proposalId; - } - - /** - * @dev voting function - * @param _proposalId id of the proposal - * @param _vote a value between 0 to and the proposal number of choices. - * @param _amount the reputation amount to vote with . if _amount == 0 it will use all voter reputation. - * @param _voter voter address - * @return bool true - the proposal has been executed - * false - otherwise. - */ - function vote( - bytes32 _proposalId, - uint256 _vote, - uint256 _amount, - address _voter - ) external votable(_proposalId) returns (bool) { - Proposal storage proposal = proposals[_proposalId]; - Parameters memory params = parameters[proposal.paramsHash]; - address voter; - if (params.voteOnBehalf != address(0)) { - require(msg.sender == params.voteOnBehalf); - voter = _voter; - } else { - voter = msg.sender; - } - return internalVote(_proposalId, voter, _vote, _amount); - } - - /** - * @dev Cancel the vote of the msg.sender: subtract the reputation amount from the votes - * and delete the voter from the proposal struct - * @param _proposalId id of the proposal - */ - function cancelVote(bytes32 _proposalId) external votable(_proposalId) { - cancelVoteInternal(_proposalId, msg.sender); - } - - /** - * @dev execute check if the proposal has been decided, and if so, execute the proposal - * @param _proposalId the id of the proposal - * @return bool true - the proposal has been executed - * false - otherwise. - */ - function execute(bytes32 _proposalId) external votable(_proposalId) returns (bool) { - return _execute(_proposalId); - } - - /** - * @dev getNumberOfChoices returns the number of choices possible in this proposal - * excluding the abstain vote (0) - * @param _proposalId the ID of the proposal - * @return uint256 that contains number of choices - */ - function getNumberOfChoices(bytes32 _proposalId) external view returns (uint256) { - return proposals[_proposalId].numOfChoices; - } - - /** - * @dev voteInfo returns the vote and the amount of reputation of the user committed to this proposal - * @param _proposalId the ID of the proposal - * @param _voter the address of the voter - * @return uint256 vote - the voters vote - * uint256 reputation - amount of reputation committed by _voter to _proposalId - */ - function voteInfo(bytes32 _proposalId, address _voter) external view returns (uint256, uint256) { - Voter memory voter = proposals[_proposalId].voters[_voter]; - return (voter.vote, voter.reputation); - } - - /** - * @dev voteStatus returns the reputation voted for a proposal for a specific voting choice. - * @param _proposalId the ID of the proposal - * @param _choice the index in the - * @return voted reputation for the given choice - */ - function voteStatus(bytes32 _proposalId, uint256 _choice) external view returns (uint256) { - return proposals[_proposalId].votes[_choice]; - } - - /** - * @dev isVotable check if the proposal is votable - * @param _proposalId the ID of the proposal - * @return bool true or false - */ - function isVotable(bytes32 _proposalId) external view returns (bool) { - return proposals[_proposalId].open; - } - - /** - * @dev isAbstainAllow returns if the voting machine allow abstain (0) - * @return bool true or false - */ - function isAbstainAllow() external pure returns (bool) { - return true; - } - - /** - * @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine. - * @return min - minimum number of choices - max - maximum number of choices - */ - function getAllowedRangeOfChoices() external pure returns (uint256 min, uint256 max) { - return (0, MAX_NUM_OF_CHOICES); - } - - /** - * @dev hash the parameters, save them if necessary, and return the hash value - */ - function setParameters(uint256 _precReq, address _voteOnBehalf) public returns (bytes32) { - require(_precReq <= 100 && _precReq > 0); - bytes32 hashedParameters = getParametersHash(_precReq, _voteOnBehalf); - parameters[hashedParameters] = Parameters({precReq: _precReq, voteOnBehalf: _voteOnBehalf}); - return hashedParameters; - } - - /** - * @dev hashParameters returns a hash of the given parameters - */ - function getParametersHash(uint256 _precReq, address _voteOnBehalf) public pure returns (bytes32) { - return keccak256(abi.encodePacked(_precReq, _voteOnBehalf)); - } - - function cancelVoteInternal(bytes32 _proposalId, address _voter) internal { - Proposal storage proposal = proposals[_proposalId]; - Voter memory voter = proposal.voters[_voter]; - proposal.votes[voter.vote] = (proposal.votes[voter.vote]).sub(voter.reputation); - proposal.totalVotes = (proposal.totalVotes).sub(voter.reputation); - delete proposal.voters[_voter]; - emit CancelVoting(_proposalId, organizations[proposal.organizationId], _voter); - } - - function deleteProposal(bytes32 _proposalId) internal { - Proposal storage proposal = proposals[_proposalId]; - for (uint256 cnt = 0; cnt <= proposal.numOfChoices; cnt++) { - delete proposal.votes[cnt]; - } - delete proposals[_proposalId]; - } - - /** - * @dev execute check if the proposal has been decided, and if so, execute the proposal - * @param _proposalId the id of the proposal - * @return bool true - the proposal has been executed - * false - otherwise. - */ - function _execute(bytes32 _proposalId) internal votable(_proposalId) returns (bool) { - Proposal storage proposal = proposals[_proposalId]; - uint256 totalReputation = VotingMachineCallbacksInterface(proposal.callbacks).getTotalReputationSupply( - _proposalId - ); - uint256 precReq = parameters[proposal.paramsHash].precReq; - // Check if someone crossed the bar: - for (uint256 cnt = 0; cnt <= proposal.numOfChoices; cnt++) { - if (proposal.votes[cnt] > (totalReputation / 100) * precReq) { - Proposal memory tmpProposal = proposal; - deleteProposal(_proposalId); - emit ExecuteProposal(_proposalId, organizations[tmpProposal.organizationId], cnt, totalReputation); - return ProposalExecuteInterface(tmpProposal.callbacks).executeProposal(_proposalId, int256(cnt)); - } - } - return false; - } - - /** - * @dev Vote for a proposal, if the voter already voted, cancel the last vote and set a new one instead - * @param _proposalId id of the proposal - * @param _voter used in case the vote is cast for someone else - * @param _vote a value between 0 to and the proposal's number of choices. - * @return true in case of proposal execution otherwise false - * throws if proposal is not open or if it has been executed - * NB: executes the proposal if a decision has been reached - */ - function internalVote( - bytes32 _proposalId, - address _voter, - uint256 _vote, - uint256 _rep - ) internal returns (bool) { - Proposal storage proposal = proposals[_proposalId]; - // Check valid vote: - require(_vote <= proposal.numOfChoices); - // Check voter has enough reputation: - uint256 reputation = VotingMachineCallbacksInterface(proposal.callbacks).reputationOf(_voter, _proposalId); - require(reputation > 0, "_voter must have reputation"); - require(reputation >= _rep); - uint256 rep = _rep; - if (rep == 0) { - rep = reputation; - } - // If this voter has already voted, first cancel the vote: - if (proposal.voters[_voter].reputation != 0) { - cancelVoteInternal(_proposalId, _voter); - } - // The voting itself: - proposal.votes[_vote] = rep.add(proposal.votes[_vote]); - proposal.totalVotes = rep.add(proposal.totalVotes); - proposal.voters[_voter] = Voter({reputation: rep, vote: _vote}); - // Event: - emit VoteProposal(_proposalId, organizations[proposal.organizationId], _voter, _vote, rep); - emit AVVoteProposal(_proposalId, (_voter != msg.sender)); - // execute the proposal if this vote was decisive: - return _execute(_proposalId); - } -} diff --git a/contracts/daostack/votingMachines/DXDVotingMachineCallbacks.sol b/contracts/daostack/votingMachines/DXDVotingMachineCallbacks.sol deleted file mode 100644 index 440ac38d..00000000 --- a/contracts/daostack/votingMachines/DXDVotingMachineCallbacks.sol +++ /dev/null @@ -1,62 +0,0 @@ -pragma solidity ^0.5.4; - -import "../controller/ControllerInterface.sol"; - -import "../controller/Avatar.sol"; - -import "./VotingMachineCallbacksInterface.sol"; - -import "./IntVoteInterface.sol"; - -contract DXDVotingMachineCallbacks is VotingMachineCallbacksInterface { - IntVoteInterface public votingMachine; - - Avatar public avatar; - - modifier onlyVotingMachine() { - require(msg.sender == address(votingMachine), "only VotingMachine"); - - _; - } - - // proposalId -> block number - - mapping(bytes32 => uint256) public proposalsBlockNumber; - - function mintReputation( - uint256 _amount, - address _beneficiary, - bytes32 _proposalId - ) external onlyVotingMachine returns (bool) { - return ControllerInterface(avatar.owner()).mintReputation(_amount, _beneficiary, address(avatar)); - } - - function burnReputation( - uint256 _amount, - address _beneficiary, - bytes32 _proposalId - ) external onlyVotingMachine returns (bool) { - return ControllerInterface(avatar.owner()).burnReputation(_amount, _beneficiary, address(avatar)); - } - - function stakingTokenTransfer( - IERC20 _stakingToken, - address _beneficiary, - uint256 _amount, - bytes32 _proposalId - ) external onlyVotingMachine returns (bool) { - return ControllerInterface(avatar.owner()).externalTokenTransfer(_stakingToken, _beneficiary, _amount, avatar); - } - - function balanceOfStakingToken(IERC20 _stakingToken, bytes32 _proposalId) external view returns (uint256) { - return _stakingToken.balanceOf(address(avatar)); - } - - function getTotalReputationSupply(bytes32 _proposalId) external view returns (uint256) { - return Avatar(avatar).nativeReputation().totalSupplyAt(proposalsBlockNumber[_proposalId]); - } - - function reputationOf(address _owner, bytes32 _proposalId) external view returns (uint256) { - return Avatar(avatar).nativeReputation().balanceOfAt(_owner, proposalsBlockNumber[_proposalId]); - } -} diff --git a/contracts/daostack/votingMachines/GenesisProtocol.sol b/contracts/daostack/votingMachines/GenesisProtocol.sol deleted file mode 100644 index 475eb48d..00000000 --- a/contracts/daostack/votingMachines/GenesisProtocol.sol +++ /dev/null @@ -1,289 +0,0 @@ -pragma solidity 0.5.17; - -import "openzeppelin-solidity/contracts/cryptography/ECDSA.sol"; -import "./GenesisProtocolLogic.sol"; - -/** - * @title GenesisProtocol implementation -an organization's voting machine scheme. - */ -contract GenesisProtocol is IntVoteInterface, GenesisProtocolLogic { - using ECDSA for bytes32; - - // Digest describing the data the user signs according EIP 712. - // Needs to match what is passed to Metamask. - bytes32 public constant DELEGATION_HASH_EIP712 = - keccak256( - abi.encodePacked( - "address GenesisProtocolAddress", - "bytes32 ProposalId", - "uint256 Vote", - "uint256 AmountToStake", - "uint256 Nonce" - ) - ); - - mapping(address => uint256) public stakesNonce; //stakes Nonce - - /** - * @dev Constructor - */ - constructor(IERC20 _stakingToken) - public - // solhint-disable-next-line no-empty-blocks - GenesisProtocolLogic(_stakingToken) - {} - - /** - * @dev staking function - * @param _proposalId id of the proposal - * @param _vote NO(2) or YES(1). - * @param _amount the betting amount - * @return bool true - the proposal has been executed - * false - otherwise. - */ - function stake( - bytes32 _proposalId, - uint256 _vote, - uint256 _amount - ) external returns (bool) { - return _stake(_proposalId, _vote, _amount, msg.sender); - } - - /** - * @dev stakeWithSignature function - * @param _proposalId id of the proposal - * @param _vote NO(2) or YES(1). - * @param _amount the betting amount - * @param _nonce nonce value ,it is part of the signature to ensure that - a signature can be received only once. - * @param _signatureType signature type - 1 - for web3.eth.sign - 2 - for eth_signTypedData according to EIP #712. - * @param _signature - signed data by the staker - * @return bool true - the proposal has been executed - * false - otherwise. - */ - function stakeWithSignature( - bytes32 _proposalId, - uint256 _vote, - uint256 _amount, - uint256 _nonce, - uint256 _signatureType, - bytes calldata _signature - ) external returns (bool) { - // Recreate the digest the user signed - bytes32 delegationDigest; - if (_signatureType == 2) { - delegationDigest = keccak256( - abi.encodePacked( - DELEGATION_HASH_EIP712, - keccak256(abi.encodePacked(address(this), _proposalId, _vote, _amount, _nonce)) - ) - ); - } else { - delegationDigest = keccak256(abi.encodePacked(address(this), _proposalId, _vote, _amount, _nonce)) - .toEthSignedMessageHash(); - } - address staker = delegationDigest.recover(_signature); - //a garbage staker address due to wrong signature will revert due to lack of approval and funds. - require(staker != address(0), "staker address cannot be 0"); - require(stakesNonce[staker] == _nonce); - stakesNonce[staker] = stakesNonce[staker].add(1); - return _stake(_proposalId, _vote, _amount, staker); - } - - /** - * @dev voting function - * @param _proposalId id of the proposal - * @param _vote NO(2) or YES(1). - * @param _amount the reputation amount to vote with . if _amount == 0 it will use all voter reputation. - * @param _voter voter address - * @return bool true - the proposal has been executed - * false - otherwise. - */ - function vote( - bytes32 _proposalId, - uint256 _vote, - uint256 _amount, - address _voter - ) external votable(_proposalId) returns (bool) { - Proposal storage proposal = proposals[_proposalId]; - Parameters memory params = parameters[proposal.paramsHash]; - address voter; - if (params.voteOnBehalf != address(0)) { - require(msg.sender == params.voteOnBehalf); - voter = _voter; - } else { - voter = msg.sender; - } - return internalVote(_proposalId, voter, _vote, _amount); - } - - /** - * @dev Cancel the vote of the msg.sender. - * cancel vote is not allow in genesisProtocol so this function doing nothing. - * This function is here in order to comply to the IntVoteInterface . - */ - function cancelVote(bytes32 _proposalId) external votable(_proposalId) { - //this is not allowed - return; - } - - /** - * @dev execute check if the proposal has been decided, and if so, execute the proposal - * @param _proposalId the id of the proposal - * @return bool true - the proposal has been executed - * false - otherwise. - */ - function execute(bytes32 _proposalId) external votable(_proposalId) returns (bool) { - return _execute(_proposalId); - } - - /** - * @dev getNumberOfChoices returns the number of choices possible in this proposal - * @return uint256 that contains number of choices - */ - function getNumberOfChoices(bytes32) external view returns (uint256) { - return NUM_OF_CHOICES; - } - - /** - * @dev getProposalTimes returns proposals times variables. - * @param _proposalId id of the proposal - * @return proposals times array - */ - function getProposalTimes(bytes32 _proposalId) external view returns (uint256[3] memory times) { - return proposals[_proposalId].times; - } - - /** - * @dev voteInfo returns the vote and the amount of reputation of the user committed to this proposal - * @param _proposalId the ID of the proposal - * @param _voter the address of the voter - * @return uint256 vote - the voters vote - * uint256 reputation - amount of reputation committed by _voter to _proposalId - */ - function voteInfo(bytes32 _proposalId, address _voter) external view returns (uint256, uint256) { - Voter memory voter = proposals[_proposalId].voters[_voter]; - return (voter.vote, voter.reputation); - } - - /** - * @dev voteStatus returns the reputation voted for a proposal for a specific voting choice. - * @param _proposalId the ID of the proposal - * @param _choice the index in the - * @return voted reputation for the given choice - */ - function voteStatus(bytes32 _proposalId, uint256 _choice) external view returns (uint256) { - return proposals[_proposalId].votes[_choice]; - } - - /** - * @dev isVotable check if the proposal is votable - * @param _proposalId the ID of the proposal - * @return bool true or false - */ - function isVotable(bytes32 _proposalId) external view returns (bool) { - return _isVotable(_proposalId); - } - - /** - * @dev proposalStatus return the total votes and stakes for a given proposal - * @param _proposalId the ID of the proposal - * @return uint256 preBoostedVotes YES - * @return uint256 preBoostedVotes NO - * @return uint256 total stakes YES - * @return uint256 total stakes NO - */ - function proposalStatus(bytes32 _proposalId) - external - view - returns ( - uint256, - uint256, - uint256, - uint256 - ) - { - return ( - proposals[_proposalId].preBoostedVotes[YES], - proposals[_proposalId].preBoostedVotes[NO], - proposals[_proposalId].stakes[YES], - proposals[_proposalId].stakes[NO] - ); - } - - /** - * @dev getProposalOrganization return the organizationId for a given proposal - * @param _proposalId the ID of the proposal - * @return bytes32 organization identifier - */ - function getProposalOrganization(bytes32 _proposalId) external view returns (bytes32) { - return (proposals[_proposalId].organizationId); - } - - /** - * @dev getStaker return the vote and stake amount for a given proposal and staker - * @param _proposalId the ID of the proposal - * @param _staker staker address - * @return uint256 vote - * @return uint256 amount - */ - function getStaker(bytes32 _proposalId, address _staker) external view returns (uint256, uint256) { - return (proposals[_proposalId].stakers[_staker].vote, proposals[_proposalId].stakers[_staker].amount); - } - - /** - * @dev voteStake return the amount stakes for a given proposal and vote - * @param _proposalId the ID of the proposal - * @param _vote vote number - * @return uint256 stake amount - */ - function voteStake(bytes32 _proposalId, uint256 _vote) external view returns (uint256) { - return proposals[_proposalId].stakes[_vote]; - } - - /** - * @dev voteStake return the winningVote for a given proposal - * @param _proposalId the ID of the proposal - * @return uint256 winningVote - */ - function winningVote(bytes32 _proposalId) external view returns (uint256) { - return proposals[_proposalId].winningVote; - } - - /** - * @dev voteStake return the state for a given proposal - * @param _proposalId the ID of the proposal - * @return ProposalState proposal state - */ - function state(bytes32 _proposalId) external view returns (ProposalState) { - return proposals[_proposalId].state; - } - - /** - * @dev isAbstainAllow returns if the voting machine allow abstain (0) - * @return bool true or false - */ - function isAbstainAllow() external pure returns (bool) { - return false; - } - - /** - * @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine. - * @return min - minimum number of choices - max - maximum number of choices - */ - function getAllowedRangeOfChoices() external pure returns (uint256 min, uint256 max) { - return (YES, NO); - } - - /** - * @dev score return the proposal score - * @param _proposalId the ID of the proposal - * @return uint256 proposal score. - */ - function score(bytes32 _proposalId) public view returns (uint256) { - return _score(_proposalId); - } -} diff --git a/contracts/daostack/votingMachines/GenesisProtocolLogic.sol b/contracts/daostack/votingMachines/GenesisProtocolLogic.sol deleted file mode 100644 index f5c80549..00000000 --- a/contracts/daostack/votingMachines/GenesisProtocolLogic.sol +++ /dev/null @@ -1,817 +0,0 @@ -pragma solidity 0.5.17; - -import "./IntVoteInterface.sol"; -import {RealMath} from "../libs/RealMath.sol"; -import "./VotingMachineCallbacksInterface.sol"; -import "./ProposalExecuteInterface.sol"; -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; -import "openzeppelin-solidity/contracts/math/Math.sol"; -import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; -import "openzeppelin-solidity/contracts/utils/Address.sol"; - -/** - * @title GenesisProtocol implementation -an organization's voting machine scheme. - */ -contract GenesisProtocolLogic is IntVoteInterface { - using SafeMath for uint256; - using Math for uint256; - using RealMath for uint216; - using RealMath for uint256; - using Address for address; - - enum ProposalState { - None, - ExpiredInQueue, - Executed, - Queued, - PreBoosted, - Boosted, - QuietEndingPeriod - } - enum ExecutionState { - None, - QueueBarCrossed, - QueueTimeOut, - PreBoostedBarCrossed, - BoostedTimeOut, - BoostedBarCrossed - } - - //Organization's parameters - struct Parameters { - uint256 queuedVoteRequiredPercentage; // the absolute vote percentages bar. - uint256 queuedVotePeriodLimit; //the time limit for a proposal to be in an absolute voting mode. - uint256 boostedVotePeriodLimit; //the time limit for a proposal to be in boost mode. - uint256 preBoostedVotePeriodLimit; //the time limit for a proposal - //to be in an preparation state (stable) before boosted. - uint256 thresholdConst; //constant for threshold calculation . - //threshold =thresholdConst ** (numberOfBoostedProposals) - uint256 limitExponentValue; // an upper limit for numberOfBoostedProposals - //in the threshold calculation to prevent overflow - uint256 quietEndingPeriod; //quite ending period - uint256 proposingRepReward; //proposer reputation reward. - uint256 votersReputationLossRatio; //Unsuccessful pre booster - //voters lose votersReputationLossRatio% of their reputation. - uint256 minimumDaoBounty; - uint256 daoBountyConst; //The DAO downstake for each proposal is calculate according to the formula - //(daoBountyConst * averageBoostDownstakes)/100 . - uint256 activationTime; //the point in time after which proposals can be created. - //if this address is set so only this address is allowed to vote of behalf of someone else. - address voteOnBehalf; - } - - struct Voter { - uint256 vote; // YES(1) ,NO(2) - uint256 reputation; // amount of voter's reputation - bool preBoosted; - } - - struct Staker { - uint256 vote; // YES(1) ,NO(2) - uint256 amount; // amount of staker's stake - uint256 amount4Bounty; // amount of staker's stake used for bounty reward calculation. - } - - struct Proposal { - bytes32 organizationId; // the organization unique identifier the proposal is target to. - address callbacks; // should fulfill voting callbacks interface. - ProposalState state; - uint256 winningVote; //the winning vote. - address proposer; - //the proposal boosted period limit . it is updated for the case of quiteWindow mode. - uint256 currentBoostedVotePeriodLimit; - bytes32 paramsHash; - uint256 daoBountyRemain; //use for checking sum zero bounty claims.it is set at the proposing time. - uint256 daoBounty; - uint256 totalStakes; // Total number of tokens staked which can be redeemable by stakers. - uint256 confidenceThreshold; - uint256 secondsFromTimeOutTillExecuteBoosted; - uint256[3] times; //times[0] - submittedTime - //times[1] - boostedPhaseTime - //times[2] -preBoostedPhaseTime; - bool daoRedeemItsWinnings; - // vote reputation - mapping(uint256 => uint256) votes; - // vote reputation - mapping(uint256 => uint256) preBoostedVotes; - // address voter - mapping(address => Voter) voters; - // vote stakes - mapping(uint256 => uint256) stakes; - // address staker - mapping(address => Staker) stakers; - } - - event Stake( - bytes32 indexed _proposalId, - address indexed _organization, - address indexed _staker, - uint256 _vote, - uint256 _amount - ); - - event Redeem( - bytes32 indexed _proposalId, - address indexed _organization, - address indexed _beneficiary, - uint256 _amount - ); - - event RedeemDaoBounty( - bytes32 indexed _proposalId, - address indexed _organization, - address indexed _beneficiary, - uint256 _amount - ); - - event RedeemReputation( - bytes32 indexed _proposalId, - address indexed _organization, - address indexed _beneficiary, - uint256 _amount - ); - - event StateChange(bytes32 indexed _proposalId, ProposalState _proposalState); - event GPExecuteProposal(bytes32 indexed _proposalId, ExecutionState _executionState); - event ExpirationCallBounty(bytes32 indexed _proposalId, address indexed _beneficiary, uint256 _amount); - event ConfidenceLevelChange(bytes32 indexed _proposalId, uint256 _confidenceThreshold); - - mapping(bytes32 => Parameters) public parameters; // A mapping from hashes to parameters - mapping(bytes32 => Proposal) public proposals; // Mapping from the ID of the proposal to the proposal itself. - mapping(bytes32 => uint256) public orgBoostedProposalsCnt; - //organizationId => organization - mapping(bytes32 => address) public organizations; - //organizationId => averageBoostDownstakes - mapping(bytes32 => uint256) public averagesDownstakesOfBoosted; - uint256 public constant NUM_OF_CHOICES = 2; - uint256 public constant NO = 2; - uint256 public constant YES = 1; - uint256 public proposalsCnt; // Total number of proposals - IERC20 public stakingToken; - address private constant GEN_TOKEN_ADDRESS = 0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf; - uint256 private constant MAX_BOOSTED_PROPOSALS = 4096; - - /** - * @dev Constructor - */ - constructor(IERC20 _stakingToken) public { - //The GEN token (staking token) address is hard coded in the contract by GEN_TOKEN_ADDRESS . - //This will work for a network which already hosted the GEN token on this address (e.g mainnet). - //If such contract address does not exist in the network (e.g ganache) - //the contract will use the _stakingToken param as the - //staking token address. - if (address(GEN_TOKEN_ADDRESS).isContract()) { - stakingToken = IERC20(GEN_TOKEN_ADDRESS); - } else { - stakingToken = _stakingToken; - } - } - - /** - * @dev Check that the proposal is votable - * a proposal is votable if it is in one of the following states: - * PreBoosted,Boosted,QuietEndingPeriod or Queued - */ - modifier votable(bytes32 _proposalId) { - require(_isVotable(_proposalId)); - _; - } - - /** - * @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being - * generated by calculating keccak256 of a incremented counter. - * @param _paramsHash parameters hash - * @param _proposer address - * @param _organization address - */ - function propose( - uint256, - bytes32 _paramsHash, - address _proposer, - address _organization - ) external returns (bytes32) { - // solhint-disable-next-line not-rely-on-time - require(now > parameters[_paramsHash].activationTime, "not active yet"); - //Check parameters existence. - require(parameters[_paramsHash].queuedVoteRequiredPercentage >= 50); - // Generate a unique ID: - bytes32 proposalId = keccak256(abi.encodePacked(this, proposalsCnt)); - proposalsCnt = proposalsCnt.add(1); - // Open proposal: - Proposal memory proposal; - proposal.callbacks = msg.sender; - proposal.organizationId = keccak256(abi.encodePacked(msg.sender, _organization)); - - proposal.state = ProposalState.Queued; - // solhint-disable-next-line not-rely-on-time - proposal.times[0] = now; //submitted time - proposal.currentBoostedVotePeriodLimit = parameters[_paramsHash].boostedVotePeriodLimit; - proposal.proposer = _proposer; - proposal.winningVote = NO; - proposal.paramsHash = _paramsHash; - if (organizations[proposal.organizationId] == address(0)) { - if (_organization == address(0)) { - organizations[proposal.organizationId] = msg.sender; - } else { - organizations[proposal.organizationId] = _organization; - } - } - //calc dao bounty - uint256 daoBounty = parameters[_paramsHash] - .daoBountyConst - .mul(averagesDownstakesOfBoosted[proposal.organizationId]) - .div(100); - proposal.daoBountyRemain = daoBounty.max(parameters[_paramsHash].minimumDaoBounty); - proposals[proposalId] = proposal; - proposals[proposalId].stakes[NO] = proposal.daoBountyRemain; //dao downstake on the proposal - - emit NewProposal(proposalId, organizations[proposal.organizationId], NUM_OF_CHOICES, _proposer, _paramsHash); - return proposalId; - } - - /** - * @dev executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired - * it rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function. - * P = t/150, where t is the number of seconds passed since the the proposal's timeout. - * P is capped by 10%. - * @param _proposalId the id of the proposal - * @return uint256 expirationCallBounty the bounty amount for the expiration call - */ - function executeBoosted(bytes32 _proposalId) external returns (uint256 expirationCallBounty) { - Proposal storage proposal = proposals[_proposalId]; - require( - proposal.state == ProposalState.Boosted || proposal.state == ProposalState.QuietEndingPeriod, - "proposal state in not Boosted nor QuietEndingPeriod" - ); - require(_execute(_proposalId), "proposal need to expire"); - - proposal.secondsFromTimeOutTillExecuteBoosted = now.sub( // solhint-disable-next-line not-rely-on-time - proposal.currentBoostedVotePeriodLimit.add(proposal.times[1]) - ); - - expirationCallBounty = calcExecuteCallBounty(_proposalId); - proposal.totalStakes = proposal.totalStakes.sub(expirationCallBounty); - require(stakingToken.transfer(msg.sender, expirationCallBounty), "transfer to msg.sender failed"); - emit ExpirationCallBounty(_proposalId, msg.sender, expirationCallBounty); - } - - /** - * @dev hash the parameters, save them if necessary, and return the hash value - * @param _params a parameters array - * _params[0] - _queuedVoteRequiredPercentage, - * _params[1] - _queuedVotePeriodLimit, //the time limit for a proposal to be in an absolute voting mode. - * _params[2] - _boostedVotePeriodLimit, //the time limit for a proposal to be in an relative voting mode. - * _params[3] - _preBoostedVotePeriodLimit, //the time limit for a proposal to be in an preparation - * state (stable) before boosted. - * _params[4] -_thresholdConst - * _params[5] -_quietEndingPeriod - * _params[6] -_proposingRepReward - * _params[7] -_votersReputationLossRatio - * _params[8] -_minimumDaoBounty - * _params[9] -_daoBountyConst - * _params[10] -_activationTime - * @param _voteOnBehalf - authorized to vote on behalf of others. - */ - function setParameters( - uint256[11] calldata _params, //use array here due to stack too deep issue. - address _voteOnBehalf - ) external returns (bytes32) { - require(_params[0] <= 100 && _params[0] >= 50, "50 <= queuedVoteRequiredPercentage <= 100"); - require(_params[4] <= 16000 && _params[4] > 1000, "1000 < thresholdConst <= 16000"); - require(_params[7] <= 100, "votersReputationLossRatio <= 100"); - require(_params[2] >= _params[5], "boostedVotePeriodLimit >= quietEndingPeriod"); - require(_params[8] > 0, "minimumDaoBounty should be > 0"); - require(_params[9] > 0, "daoBountyConst should be > 0"); - - bytes32 paramsHash = getParametersHash(_params, _voteOnBehalf); - //set a limit for power for a given alpha to prevent overflow - uint256 limitExponent = 172; //for alpha less or equal 2 - uint256 j = 2; - for (uint256 i = 2000; i < 16000; i = i * 2) { - if ((_params[4] > i) && (_params[4] <= i * 2)) { - limitExponent = limitExponent / j; - break; - } - j++; - } - - parameters[paramsHash] = Parameters({ - queuedVoteRequiredPercentage: _params[0], - queuedVotePeriodLimit: _params[1], - boostedVotePeriodLimit: _params[2], - preBoostedVotePeriodLimit: _params[3], - thresholdConst: uint216(_params[4]).fraction(uint216(1000)), - limitExponentValue: limitExponent, - quietEndingPeriod: _params[5], - proposingRepReward: _params[6], - votersReputationLossRatio: _params[7], - minimumDaoBounty: _params[8], - daoBountyConst: _params[9], - activationTime: _params[10], - voteOnBehalf: _voteOnBehalf - }); - return paramsHash; - } - - /** - * @dev redeem a reward for a successful stake, vote or proposing. - * The function use a beneficiary address as a parameter (and not msg.sender) to enable - * users to redeem on behalf of someone else. - * @param _proposalId the ID of the proposal - * @param _beneficiary - the beneficiary address - * @return rewards - - * [0] stakerTokenReward - * [1] voterReputationReward - * [2] proposerReputationReward - */ - // solhint-disable-next-line function-max-lines,code-complexity - function redeem(bytes32 _proposalId, address _beneficiary) public returns (uint256[3] memory rewards) { - Proposal storage proposal = proposals[_proposalId]; - require( - (proposal.state == ProposalState.Executed) || (proposal.state == ProposalState.ExpiredInQueue), - "Proposal should be Executed or ExpiredInQueue" - ); - Parameters memory params = parameters[proposal.paramsHash]; - //as staker - Staker storage staker = proposal.stakers[_beneficiary]; - uint256 totalWinningStakes = proposal.stakes[proposal.winningVote]; - uint256 totalStakesLeftAfterCallBounty = proposal.stakes[NO].add(proposal.stakes[YES]).sub( - calcExecuteCallBounty(_proposalId) - ); - if (staker.amount > 0) { - if (proposal.state == ProposalState.ExpiredInQueue) { - //Stakes of a proposal that expires in Queue are sent back to stakers - rewards[0] = staker.amount; - } else if (staker.vote == proposal.winningVote) { - if (staker.vote == YES) { - if (proposal.daoBounty < totalStakesLeftAfterCallBounty) { - uint256 _totalStakes = totalStakesLeftAfterCallBounty.sub(proposal.daoBounty); - rewards[0] = (staker.amount.mul(_totalStakes)) / totalWinningStakes; - } - } else { - rewards[0] = (staker.amount.mul(totalStakesLeftAfterCallBounty)) / totalWinningStakes; - } - } - staker.amount = 0; - } - //dao redeem its winnings - if ( - proposal.daoRedeemItsWinnings == false && - _beneficiary == organizations[proposal.organizationId] && - proposal.state != ProposalState.ExpiredInQueue && - proposal.winningVote == NO - ) { - rewards[0] = rewards[0] - .add((proposal.daoBounty.mul(totalStakesLeftAfterCallBounty)) / totalWinningStakes) - .sub(proposal.daoBounty); - proposal.daoRedeemItsWinnings = true; - } - - //as voter - Voter storage voter = proposal.voters[_beneficiary]; - if ((voter.reputation != 0) && (voter.preBoosted)) { - if (proposal.state == ProposalState.ExpiredInQueue) { - //give back reputation for the voter - rewards[1] = ((voter.reputation.mul(params.votersReputationLossRatio)) / 100); - } else if (proposal.winningVote == voter.vote) { - uint256 lostReputation; - if (proposal.winningVote == YES) { - lostReputation = proposal.preBoostedVotes[NO]; - } else { - lostReputation = proposal.preBoostedVotes[YES]; - } - lostReputation = (lostReputation.mul(params.votersReputationLossRatio)) / 100; - rewards[1] = ((voter.reputation.mul(params.votersReputationLossRatio)) / 100).add( - (voter.reputation.mul(lostReputation)) / proposal.preBoostedVotes[proposal.winningVote] - ); - } - voter.reputation = 0; - } - //as proposer - if ((proposal.proposer == _beneficiary) && (proposal.winningVote == YES) && (proposal.proposer != address(0))) { - rewards[2] = params.proposingRepReward; - proposal.proposer = address(0); - } - if (rewards[0] != 0) { - proposal.totalStakes = proposal.totalStakes.sub(rewards[0]); - require(stakingToken.transfer(_beneficiary, rewards[0]), "transfer to beneficiary failed"); - emit Redeem(_proposalId, organizations[proposal.organizationId], _beneficiary, rewards[0]); - } - if (rewards[1].add(rewards[2]) != 0) { - VotingMachineCallbacksInterface(proposal.callbacks).mintReputation( - rewards[1].add(rewards[2]), - _beneficiary, - _proposalId - ); - emit RedeemReputation( - _proposalId, - organizations[proposal.organizationId], - _beneficiary, - rewards[1].add(rewards[2]) - ); - } - } - - /** - * @dev redeemDaoBounty a reward for a successful stake. - * The function use a beneficiary address as a parameter (and not msg.sender) to enable - * users to redeem on behalf of someone else. - * @param _proposalId the ID of the proposal - * @param _beneficiary - the beneficiary address - * @return redeemedAmount - redeem token amount - * @return potentialAmount - potential redeem token amount(if there is enough tokens bounty at the organization ) - */ - function redeemDaoBounty(bytes32 _proposalId, address _beneficiary) - public - returns (uint256 redeemedAmount, uint256 potentialAmount) - { - Proposal storage proposal = proposals[_proposalId]; - require(proposal.state == ProposalState.Executed); - uint256 totalWinningStakes = proposal.stakes[proposal.winningVote]; - Staker storage staker = proposal.stakers[_beneficiary]; - if ( - (staker.amount4Bounty > 0) && - (staker.vote == proposal.winningVote) && - (proposal.winningVote == YES) && - (totalWinningStakes != 0) - ) { - //as staker - potentialAmount = (staker.amount4Bounty * proposal.daoBounty) / totalWinningStakes; - } - if ( - (potentialAmount != 0) && - (VotingMachineCallbacksInterface(proposal.callbacks).balanceOfStakingToken(stakingToken, _proposalId) >= - potentialAmount) - ) { - staker.amount4Bounty = 0; - proposal.daoBountyRemain = proposal.daoBountyRemain.sub(potentialAmount); - require( - VotingMachineCallbacksInterface(proposal.callbacks).stakingTokenTransfer( - stakingToken, - _beneficiary, - potentialAmount, - _proposalId - ) - ); - redeemedAmount = potentialAmount; - emit RedeemDaoBounty(_proposalId, organizations[proposal.organizationId], _beneficiary, redeemedAmount); - } - } - - /** - * @dev calcExecuteCallBounty calculate the execute boosted call bounty - * @param _proposalId the ID of the proposal - * @return uint256 executeCallBounty - */ - function calcExecuteCallBounty(bytes32 _proposalId) public view returns (uint256) { - uint256 maxRewardSeconds = 1500; - uint256 rewardSeconds = uint256(maxRewardSeconds).min( - proposals[_proposalId].secondsFromTimeOutTillExecuteBoosted - ); - return rewardSeconds.mul(proposals[_proposalId].stakes[YES]).div(maxRewardSeconds * 10); - } - - /** - * @dev shouldBoost check if a proposal should be shifted to boosted phase. - * @param _proposalId the ID of the proposal - * @return bool true or false. - */ - function shouldBoost(bytes32 _proposalId) public view returns (bool) { - Proposal memory proposal = proposals[_proposalId]; - return (_score(_proposalId) > threshold(proposal.paramsHash, proposal.organizationId)); - } - - /** - * @dev threshold return the organization's score threshold which required by - * a proposal to shift to boosted state. - * This threshold is dynamically set and it depend on the number of boosted proposal. - * @param _organizationId the organization identifier - * @param _paramsHash the organization parameters hash - * @return uint256 organization's score threshold as real number. - */ - function threshold(bytes32 _paramsHash, bytes32 _organizationId) public view returns (uint256) { - uint256 power = orgBoostedProposalsCnt[_organizationId]; - Parameters storage params = parameters[_paramsHash]; - - if (power > params.limitExponentValue) { - power = params.limitExponentValue; - } - - return params.thresholdConst.pow(power); - } - - /** - * @dev hashParameters returns a hash of the given parameters - */ - function getParametersHash( - uint256[11] memory _params, //use array here due to stack too deep issue. - address _voteOnBehalf - ) public pure returns (bytes32) { - //double call to keccak256 to avoid deep stack issue when call with too many params. - return - keccak256( - abi.encodePacked( - keccak256( - abi.encodePacked( - _params[0], - _params[1], - _params[2], - _params[3], - _params[4], - _params[5], - _params[6], - _params[7], - _params[8], - _params[9], - _params[10] - ) - ), - _voteOnBehalf - ) - ); - } - - /** - * @dev execute check if the proposal has been decided, and if so, execute the proposal - * @param _proposalId the id of the proposal - * @return bool true - the proposal has been executed - * false - otherwise. - */ - // solhint-disable-next-line function-max-lines,code-complexity - function _execute(bytes32 _proposalId) internal votable(_proposalId) returns (bool) { - Proposal storage proposal = proposals[_proposalId]; - Parameters memory params = parameters[proposal.paramsHash]; - Proposal memory tmpProposal = proposal; - uint256 totalReputation = VotingMachineCallbacksInterface(proposal.callbacks).getTotalReputationSupply( - _proposalId - ); - //first divide by 100 to prevent overflow - uint256 executionBar = (totalReputation / 100) * params.queuedVoteRequiredPercentage; - ExecutionState executionState = ExecutionState.None; - uint256 averageDownstakesOfBoosted; - uint256 confidenceThreshold; - - if (proposal.votes[proposal.winningVote] > executionBar) { - // someone crossed the absolute vote execution bar. - if (proposal.state == ProposalState.Queued) { - executionState = ExecutionState.QueueBarCrossed; - } else if (proposal.state == ProposalState.PreBoosted) { - executionState = ExecutionState.PreBoostedBarCrossed; - } else { - executionState = ExecutionState.BoostedBarCrossed; - } - proposal.state = ProposalState.Executed; - } else { - if (proposal.state == ProposalState.Queued) { - // solhint-disable-next-line not-rely-on-time - if ((now - proposal.times[0]) >= params.queuedVotePeriodLimit) { - proposal.state = ProposalState.ExpiredInQueue; - proposal.winningVote = NO; - executionState = ExecutionState.QueueTimeOut; - } else { - confidenceThreshold = threshold(proposal.paramsHash, proposal.organizationId); - if (_score(_proposalId) > confidenceThreshold) { - //change proposal mode to PreBoosted mode. - proposal.state = ProposalState.PreBoosted; - // solhint-disable-next-line not-rely-on-time - proposal.times[2] = now; - proposal.confidenceThreshold = confidenceThreshold; - } - } - } - - if (proposal.state == ProposalState.PreBoosted) { - confidenceThreshold = threshold(proposal.paramsHash, proposal.organizationId); - // solhint-disable-next-line not-rely-on-time - if ((now - proposal.times[2]) >= params.preBoostedVotePeriodLimit) { - if (_score(_proposalId) > confidenceThreshold) { - if (orgBoostedProposalsCnt[proposal.organizationId] < MAX_BOOSTED_PROPOSALS) { - //change proposal mode to Boosted mode. - proposal.state = ProposalState.Boosted; - // solhint-disable-next-line not-rely-on-time - proposal.times[1] = now; - orgBoostedProposalsCnt[proposal.organizationId]++; - //add a value to average -> average = average + ((value - average) / nbValues) - averageDownstakesOfBoosted = averagesDownstakesOfBoosted[proposal.organizationId]; - // solium-disable-next-line indentation - averagesDownstakesOfBoosted[proposal.organizationId] = uint256( - int256(averageDownstakesOfBoosted) + - ((int256(proposal.stakes[NO]) - int256(averageDownstakesOfBoosted)) / - int256(orgBoostedProposalsCnt[proposal.organizationId])) - ); - } - } else { - proposal.state = ProposalState.Queued; - } - } else { - //check the Confidence level is stable - uint256 proposalScore = _score(_proposalId); - if (proposalScore <= proposal.confidenceThreshold.min(confidenceThreshold)) { - proposal.state = ProposalState.Queued; - } else if (proposal.confidenceThreshold > proposalScore) { - proposal.confidenceThreshold = confidenceThreshold; - emit ConfidenceLevelChange(_proposalId, confidenceThreshold); - } - } - } - } - - if ((proposal.state == ProposalState.Boosted) || (proposal.state == ProposalState.QuietEndingPeriod)) { - // solhint-disable-next-line not-rely-on-time - if ((now - proposal.times[1]) >= proposal.currentBoostedVotePeriodLimit) { - proposal.state = ProposalState.Executed; - executionState = ExecutionState.BoostedTimeOut; - } - } - - if (executionState != ExecutionState.None) { - if ( - (executionState == ExecutionState.BoostedTimeOut) || - (executionState == ExecutionState.BoostedBarCrossed) - ) { - orgBoostedProposalsCnt[tmpProposal.organizationId] = orgBoostedProposalsCnt[tmpProposal.organizationId] - .sub(1); - //remove a value from average = ((average * nbValues) - value) / (nbValues - 1); - uint256 boostedProposals = orgBoostedProposalsCnt[tmpProposal.organizationId]; - if (boostedProposals == 0) { - averagesDownstakesOfBoosted[proposal.organizationId] = 0; - } else { - averageDownstakesOfBoosted = averagesDownstakesOfBoosted[proposal.organizationId]; - averagesDownstakesOfBoosted[proposal.organizationId] = - (averageDownstakesOfBoosted.mul(boostedProposals + 1).sub(proposal.stakes[NO])) / - boostedProposals; - } - } - emit ExecuteProposal( - _proposalId, - organizations[proposal.organizationId], - proposal.winningVote, - totalReputation - ); - emit GPExecuteProposal(_proposalId, executionState); - proposal.daoBounty = proposal.daoBountyRemain; - ProposalExecuteInterface(proposal.callbacks).executeProposal(_proposalId, int256(proposal.winningVote)); - } - if (tmpProposal.state != proposal.state) { - emit StateChange(_proposalId, proposal.state); - } - return (executionState != ExecutionState.None); - } - - /** - * @dev staking function - * @param _proposalId id of the proposal - * @param _vote NO(2) or YES(1). - * @param _amount the betting amount - * @return bool true - the proposal has been executed - * false - otherwise. - */ - function _stake( - bytes32 _proposalId, - uint256 _vote, - uint256 _amount, - address _staker - ) internal returns (bool) { - // 0 is not a valid vote. - require(_vote <= NUM_OF_CHOICES && _vote > 0, "wrong vote value"); - require(_amount > 0, "staking amount should be >0"); - - if (_execute(_proposalId)) { - return true; - } - Proposal storage proposal = proposals[_proposalId]; - - if ((proposal.state != ProposalState.PreBoosted) && (proposal.state != ProposalState.Queued)) { - return false; - } - - // enable to increase stake only on the previous stake vote - Staker storage staker = proposal.stakers[_staker]; - if ((staker.amount > 0) && (staker.vote != _vote)) { - return false; - } - - uint256 amount = _amount; - require(stakingToken.transferFrom(_staker, address(this), amount), "fail transfer from staker"); - proposal.totalStakes = proposal.totalStakes.add(amount); //update totalRedeemableStakes - staker.amount = staker.amount.add(amount); - //This is to prevent average downstakes calculation overflow - //Note that any how GEN cap is 100000000 ether. - require(staker.amount <= 0x100000000000000000000000000000000, "staking amount is too high"); - require( - proposal.totalStakes <= uint256(0x100000000000000000000000000000000).sub(proposal.daoBountyRemain), - "total stakes is too high" - ); - - if (_vote == YES) { - staker.amount4Bounty = staker.amount4Bounty.add(amount); - } - staker.vote = _vote; - - proposal.stakes[_vote] = amount.add(proposal.stakes[_vote]); - emit Stake(_proposalId, organizations[proposal.organizationId], _staker, _vote, _amount); - return _execute(_proposalId); - } - - /** - * @dev Vote for a proposal, if the voter already voted, cancel the last vote and set a new one instead - * @param _proposalId id of the proposal - * @param _voter used in case the vote is cast for someone else - * @param _vote a value between 0 to and the proposal's number of choices. - * @param _rep how many reputation the voter would like to stake for this vote. - * if _rep==0 so the voter full reputation will be use. - * @return true in case of proposal execution otherwise false - * throws if proposal is not open or if it has been executed - * NB: executes the proposal if a decision has been reached - */ - // solhint-disable-next-line function-max-lines,code-complexity - function internalVote( - bytes32 _proposalId, - address _voter, - uint256 _vote, - uint256 _rep - ) internal returns (bool) { - require(_vote <= NUM_OF_CHOICES && _vote > 0, "0 < _vote <= 2"); - if (_execute(_proposalId)) { - return true; - } - - Parameters memory params = parameters[proposals[_proposalId].paramsHash]; - Proposal storage proposal = proposals[_proposalId]; - - // Check voter has enough reputation: - uint256 reputation = VotingMachineCallbacksInterface(proposal.callbacks).reputationOf(_voter, _proposalId); - require(reputation > 0, "_voter must have reputation"); - require(reputation >= _rep, "reputation >= _rep"); - uint256 rep = _rep; - if (rep == 0) { - rep = reputation; - } - // If this voter has already voted, return false. - if (proposal.voters[_voter].reputation != 0) { - return false; - } - // The voting itself: - proposal.votes[_vote] = rep.add(proposal.votes[_vote]); - //check if the current winningVote changed or there is a tie. - //for the case there is a tie the current winningVote set to NO. - if ( - (proposal.votes[_vote] > proposal.votes[proposal.winningVote]) || - ((proposal.votes[NO] == proposal.votes[proposal.winningVote]) && proposal.winningVote == YES) - ) { - if ( - (proposal.state == ProposalState.Boosted && - ((now - proposal.times[1]) >= (params.boostedVotePeriodLimit - params.quietEndingPeriod))) || - // solhint-disable-next-line not-rely-on-time - proposal.state == ProposalState.QuietEndingPeriod - ) { - //quietEndingPeriod - if (proposal.state != ProposalState.QuietEndingPeriod) { - proposal.currentBoostedVotePeriodLimit = params.quietEndingPeriod; - proposal.state = ProposalState.QuietEndingPeriod; - emit StateChange(_proposalId, proposal.state); - } - // solhint-disable-next-line not-rely-on-time - proposal.times[1] = now; - } - proposal.winningVote = _vote; - } - proposal.voters[_voter] = Voter({ - reputation: rep, - vote: _vote, - preBoosted: ((proposal.state == ProposalState.PreBoosted) || (proposal.state == ProposalState.Queued)) - }); - if ((proposal.state == ProposalState.PreBoosted) || (proposal.state == ProposalState.Queued)) { - proposal.preBoostedVotes[_vote] = rep.add(proposal.preBoostedVotes[_vote]); - uint256 reputationDeposit = (params.votersReputationLossRatio.mul(rep)) / 100; - VotingMachineCallbacksInterface(proposal.callbacks).burnReputation(reputationDeposit, _voter, _proposalId); - } - emit VoteProposal(_proposalId, organizations[proposal.organizationId], _voter, _vote, rep); - return _execute(_proposalId); - } - - /** - * @dev _score return the proposal score (Confidence level) - * For dual choice proposal S = (S+)/(S-) - * @param _proposalId the ID of the proposal - * @return uint256 proposal score as real number. - */ - function _score(bytes32 _proposalId) internal view returns (uint256) { - Proposal storage proposal = proposals[_proposalId]; - //proposal.stakes[NO] cannot be zero as the dao downstake > 0 for each proposal. - return uint216(proposal.stakes[YES]).fraction(uint216(proposal.stakes[NO])); - } - - /** - * @dev _isVotable check if the proposal is votable - * @param _proposalId the ID of the proposal - * @return bool true or false - */ - function _isVotable(bytes32 _proposalId) internal view returns (bool) { - ProposalState pState = proposals[_proposalId].state; - return ((pState == ProposalState.PreBoosted) || - (pState == ProposalState.Boosted) || - (pState == ProposalState.QuietEndingPeriod) || - (pState == ProposalState.Queued)); - } -} diff --git a/contracts/daostack/votingMachines/IntVoteInterface.sol b/contracts/daostack/votingMachines/IntVoteInterface.sol deleted file mode 100644 index 53d18576..00000000 --- a/contracts/daostack/votingMachines/IntVoteInterface.sol +++ /dev/null @@ -1,90 +0,0 @@ -pragma solidity 0.5.17; - -interface IntVoteInterface { - //When implementing this interface please do not only override function and modifier, - //but also to keep the modifiers on the overridden functions. - modifier onlyProposalOwner(bytes32 _proposalId) { - revert(); - _; - } - modifier votable(bytes32 _proposalId) { - revert(); - _; - } - - event NewProposal( - bytes32 indexed _proposalId, - address indexed _organization, - uint256 _numOfChoices, - address _proposer, - bytes32 _paramsHash - ); - - event ExecuteProposal( - bytes32 indexed _proposalId, - address indexed _organization, - uint256 _decision, - uint256 _totalReputation - ); - - event VoteProposal( - bytes32 indexed _proposalId, - address indexed _organization, - address indexed _voter, - uint256 _vote, - uint256 _reputation - ); - - event CancelProposal(bytes32 indexed _proposalId, address indexed _organization); - event CancelVoting(bytes32 indexed _proposalId, address indexed _organization, address indexed _voter); - - /** - * @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being - * generated by calculating keccak256 of a incremented counter. - * @param _numOfChoices number of voting choices - * @param _proposalParameters defines the parameters of the voting machine used for this proposal - * @param _proposer address - * @param _organization address - if this address is zero the msg.sender will be used as the organization address. - * @return proposal's id. - */ - function propose( - uint256 _numOfChoices, - bytes32 _proposalParameters, - address _proposer, - address _organization - ) external returns (bytes32); - - function vote( - bytes32 _proposalId, - uint256 _vote, - uint256 _rep, - address _voter - ) external returns (bool); - - function cancelVote(bytes32 _proposalId) external; - - function getNumberOfChoices(bytes32 _proposalId) external view returns (uint256); - - function isVotable(bytes32 _proposalId) external view returns (bool); - - /** - * @dev voteStatus returns the reputation voted for a proposal for a specific voting choice. - * @param _proposalId the ID of the proposal - * @param _choice the index in the - * @return voted reputation for the given choice - */ - function voteStatus(bytes32 _proposalId, uint256 _choice) external view returns (uint256); - - /** - * @dev isAbstainAllow returns if the voting machine allow abstain (0) - * @return bool true or false - */ - function isAbstainAllow() external pure returns (bool); - - /** - * @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine. - * @return min - minimum number of choices - max - maximum number of choices - */ - function getAllowedRangeOfChoices() external pure returns (uint256 min, uint256 max); -} diff --git a/contracts/daostack/votingMachines/ProposalExecuteInterface.sol b/contracts/daostack/votingMachines/ProposalExecuteInterface.sol deleted file mode 100644 index 6e89fbe5..00000000 --- a/contracts/daostack/votingMachines/ProposalExecuteInterface.sol +++ /dev/null @@ -1,5 +0,0 @@ -pragma solidity 0.5.17; - -interface ProposalExecuteInterface { - function executeProposal(bytes32 _proposalId, int256 _decision) external returns (bool); -} diff --git a/contracts/daostack/votingMachines/QuorumVote.sol b/contracts/daostack/votingMachines/QuorumVote.sol deleted file mode 100644 index 4d578041..00000000 --- a/contracts/daostack/votingMachines/QuorumVote.sol +++ /dev/null @@ -1,44 +0,0 @@ -pragma solidity 0.5.17; - -import "./AbsoluteVote.sol"; -import "./ProposalExecuteInterface.sol"; - -contract QuorumVote is AbsoluteVote { - /** - * @dev check if the proposal has been decided, and if so, execute the proposal - * @param _proposalId the id of the proposal - */ - function execute(bytes32 _proposalId) external votable(_proposalId) returns (bool) { - return _execute(_proposalId); - } - - /** - * @dev check if the proposal has been decided, and if so, execute the proposal - * @param _proposalId the id of the proposal - */ - function _execute(bytes32 _proposalId) internal votable(_proposalId) returns (bool) { - Proposal storage proposal = proposals[_proposalId]; - uint256 totalReputation = VotingMachineCallbacksInterface(proposal.callbacks).getTotalReputationSupply( - _proposalId - ); - uint256 precReq = parameters[proposal.paramsHash].precReq; - - // this is the actual voting rule: - if (proposal.totalVotes > (totalReputation / 100) * precReq) { - uint256 max; - uint256 maxInd; - for (uint256 cnt = 0; cnt <= proposal.numOfChoices; cnt++) { - if (proposal.votes[cnt] > max) { - max = proposal.votes[cnt]; - maxInd = cnt; - } - } - Proposal memory tmpProposal = proposal; - deleteProposal(_proposalId); - emit ExecuteProposal(_proposalId, organizations[tmpProposal.organizationId], maxInd, totalReputation); - ProposalExecuteInterface(tmpProposal.callbacks).executeProposal(_proposalId, int256(maxInd)); - return true; - } - return false; - } -} diff --git a/contracts/daostack/votingMachines/VotingMachineCallbacks.sol b/contracts/daostack/votingMachines/VotingMachineCallbacks.sol deleted file mode 100644 index 4edb1422..00000000 --- a/contracts/daostack/votingMachines/VotingMachineCallbacks.sol +++ /dev/null @@ -1,80 +0,0 @@ -pragma solidity ^0.5.4; - -import "../universalSchemes/UniversalScheme.sol"; -import "./GenesisProtocol.sol"; - -contract VotingMachineCallbacks is VotingMachineCallbacksInterface { - struct ProposalInfo { - uint256 blockNumber; // the proposal's block number - Avatar avatar; // the proposal's avatar - } - - modifier onlyVotingMachine(bytes32 _proposalId) { - require(proposalsInfo[msg.sender][_proposalId].avatar != Avatar(address(0)), "only VotingMachine"); - _; - } - - // VotingMaching -> proposalId -> ProposalInfo - mapping(address => mapping(bytes32 => ProposalInfo)) public proposalsInfo; - - function mintReputation( - uint256 _amount, - address _beneficiary, - bytes32 _proposalId - ) external onlyVotingMachine(_proposalId) returns (bool) { - Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar; - if (avatar == Avatar(0)) { - return false; - } - return ControllerInterface(avatar.owner()).mintReputation(_amount, _beneficiary, address(avatar)); - } - - function burnReputation( - uint256 _amount, - address _beneficiary, - bytes32 _proposalId - ) external onlyVotingMachine(_proposalId) returns (bool) { - Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar; - if (avatar == Avatar(0)) { - return false; - } - return ControllerInterface(avatar.owner()).burnReputation(_amount, _beneficiary, address(avatar)); - } - - function stakingTokenTransfer( - IERC20 _stakingToken, - address _beneficiary, - uint256 _amount, - bytes32 _proposalId - ) external onlyVotingMachine(_proposalId) returns (bool) { - Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar; - if (avatar == Avatar(0)) { - return false; - } - return ControllerInterface(avatar.owner()).externalTokenTransfer(_stakingToken, _beneficiary, _amount, avatar); - } - - function balanceOfStakingToken(IERC20 _stakingToken, bytes32 _proposalId) external view returns (uint256) { - Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar; - if (proposalsInfo[msg.sender][_proposalId].avatar == Avatar(0)) { - return 0; - } - return _stakingToken.balanceOf(address(avatar)); - } - - function getTotalReputationSupply(bytes32 _proposalId) external view returns (uint256) { - ProposalInfo memory proposal = proposalsInfo[msg.sender][_proposalId]; - if (proposal.avatar == Avatar(0)) { - return 0; - } - return proposal.avatar.nativeReputation().totalSupplyAt(proposal.blockNumber); - } - - function reputationOf(address _owner, bytes32 _proposalId) external view returns (uint256) { - ProposalInfo memory proposal = proposalsInfo[msg.sender][_proposalId]; - if (proposal.avatar == Avatar(0)) { - return 0; - } - return proposal.avatar.nativeReputation().balanceOfAt(_owner, proposal.blockNumber); - } -} diff --git a/contracts/dxdao/DxController.sol b/contracts/dxdao/DxController.sol deleted file mode 100644 index 343d3959..00000000 --- a/contracts/dxdao/DxController.sol +++ /dev/null @@ -1,164 +0,0 @@ -pragma solidity ^0.8.8; - -import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "./DxAvatar.sol"; - -/** - * @title Controller contract - * @dev A controller controls the organizations tokens, reputation and avatar. - * It is subject to a set of schemes and constraints that determine its behavior. - * Each scheme has it own parameters and operation permissions. - */ -contract DxController is Initializable { - struct Scheme { - bytes32 paramsHash; // a hash "configuration" of the scheme - bool isRegistered; - bool canManageSchemes; - bool canMakeAvatarCalls; - } - - address[] public schemesAddresses; - mapping(address => Scheme) public schemes; - uint256 public schemesWithManageSchemesPermission; - - event RegisterScheme(address indexed _sender, address indexed _scheme); - event UnregisterScheme(address indexed _sender, address indexed _scheme); - - function initialize(address _scheme) public initializer { - schemes[_scheme] = Scheme({ - paramsHash: bytes32(0), - isRegistered: true, - canManageSchemes: true, - canMakeAvatarCalls: true - }); - schemesWithManageSchemesPermission = 1; - } - - // Modifiers: - modifier onlyRegisteredScheme() { - require(schemes[msg.sender].isRegistered, "Sender is not a registered scheme"); - _; - } - - modifier onlyRegisteringSchemes() { - require(schemes[msg.sender].canManageSchemes, "Sender cannot manage schemes"); - _; - } - - modifier onlyAvatarCallScheme() { - require(schemes[msg.sender].canMakeAvatarCalls, "Sender cannot perform avatar calls"); - _; - } - - /** - * @dev register a scheme - * @param _scheme the address of the scheme - * @param _paramsHash a hashed configuration of the usage of the scheme - * @param _canManageSchemes whether the scheme is able to manage schemes - * @param _canMakeAvatarCalls whether the scheme is able to make avatar calls - * @return bool which represents a success - */ - function registerScheme( - address _scheme, - bytes32 _paramsHash, - bool _canManageSchemes, - bool _canMakeAvatarCalls - ) external onlyRegisteredScheme onlyRegisteringSchemes returns (bool) { - Scheme memory scheme = schemes[_scheme]; - - // produces non-zero if sender does not have perms that are being updated - require( - (_canMakeAvatarCalls || scheme.canMakeAvatarCalls != _canMakeAvatarCalls) - ? schemes[msg.sender].canMakeAvatarCalls - : true, - "Sender cannot add permissions sender doesn't have to a new scheme" - ); - - // Add or change the scheme: - if ((!scheme.isRegistered || !scheme.canManageSchemes) && _canManageSchemes) { - schemesWithManageSchemesPermission++; - } - schemes[_scheme] = Scheme({ - paramsHash: _paramsHash, - isRegistered: true, - canManageSchemes: _canManageSchemes, - canMakeAvatarCalls: _canMakeAvatarCalls - }); - emit RegisterScheme(msg.sender, _scheme); - return true; - } - - /** - * @dev unregister a scheme - * @param _scheme the address of the scheme - * @return bool which represents a success - */ - function unregisterScheme(address _scheme, address _avatar) - external - onlyRegisteredScheme - onlyRegisteringSchemes - returns (bool) - { - Scheme memory scheme = schemes[_scheme]; - - //check if the scheme is registered - if (_isSchemeRegistered(_scheme) == false) { - return false; - } - - if (scheme.isRegistered && scheme.canManageSchemes) { - require( - schemesWithManageSchemesPermission > 1, - "Cannot unregister last scheme with manage schemes permission" - ); - } - - // Unregister: - emit UnregisterScheme(msg.sender, _scheme); - if (scheme.isRegistered && scheme.canManageSchemes) schemesWithManageSchemesPermission--; - schemes[_scheme].isRegistered = false; - return true; - } - - /** - * @dev perform a generic call to an arbitrary contract - * @param _contract the contract's address to call - * @param _data ABI-encoded contract call to call `_contract` address. - * @param _avatar the controller's avatar address - * @param _value value (ETH) to transfer with the transaction - * @return bool -success - * bytes - the return value of the called _contract's function. - */ - function avatarCall( - address _contract, - bytes calldata _data, - DXAvatar _avatar, - uint256 _value - ) external onlyRegisteredScheme onlyAvatarCallScheme returns (bool, bytes memory) { - return _avatar.executeCall(_contract, _data, _value); - } - - function isSchemeRegistered(address _scheme) external view returns (bool) { - return _isSchemeRegistered(_scheme); - } - - function getSchemeParameters(address _scheme) external view returns (bytes32) { - return schemes[_scheme].paramsHash; - } - - function getSchemeCanManageSchemes(address _scheme) external view returns (bool) { - return schemes[_scheme].canManageSchemes; - } - - function getSchemeCanMakeAvatarCalls(address _scheme) external view returns (bool) { - return schemes[_scheme].canMakeAvatarCalls; - } - - function getSchemesCountWithManageSchemesPermissions() external view returns (uint256) { - return schemesWithManageSchemesPermission; - } - - function _isSchemeRegistered(address _scheme) private view returns (bool) { - return (schemes[_scheme].isRegistered); - } -} diff --git a/contracts/dxdao/DxReputation.sol b/contracts/dxdao/DxReputation.sol deleted file mode 100644 index c33ce8e0..00000000 --- a/contracts/dxdao/DxReputation.sol +++ /dev/null @@ -1,64 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity 0.8.8; - -import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; -import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol"; - -/** - * @title Reputation system - * @author github:Kenny-Gin1 - * @dev A DAO has Reputation System which allows peers to rate other peers in order to build trust . - * Reputation is used to assign influence metric to a DAO's peers. - * Reputation is similar to regular tokens but with one crucial difference: It is non-transferable. - * This contract uses the ERC20SnapshotUpgradeable extension methods' under the hood to mint and burn reputation tokens. - * It uses snapshots to keep track of the total reputation of each peer. - */ -contract DxReputation is OwnableUpgradeable, ERC20SnapshotUpgradeable { - event Mint(address indexed _to, uint256 _amount); - event Burn(address indexed _from, uint256 _amount); - - function initialize(string memory name, string memory symbol) external initializer { - __ERC20_init(name, symbol); - __Ownable_init(); - } - - // @notice Generates `_amount` reputation that are assigned to `_user` - // @param _user The address that will be assigned the new reputation - // @param _amount The quantity of reputation generated - // @return True if the reputation are generated correctly - function mint(address _user, uint256 _amount) external onlyOwner returns (bool) { - _mint(_user, _amount); - _snapshot(); - emit Mint(_user, _amount); - return true; - } - - function mintMultiple(address[] memory _user, uint256[] memory _amount) external onlyOwner returns (bool) { - for (uint256 i = 0; i < _user.length; i++) { - _mint(_user[i], _amount[i]); - _snapshot(); - emit Mint(_user[i], _amount[i]); - } - return true; - } - - // @notice Burns `_amount` reputation from `_user` - // @param _user The address that will lose the reputation - // @param _amount The quantity of reputation to burn - // @return True if the reputation are burned correctly - function burn(address _user, uint256 _amount) external onlyOwner returns (bool) { - _burn(_user, _amount); - _snapshot(); - emit Burn(_user, _amount); - return true; - } - - function burnMultiple(address[] memory _user, uint256 _amount) external onlyOwner returns (bool) { - for (uint256 i = 0; i < _user.length; i++) { - _burn(_user[i], _amount); - _snapshot(); - emit Burn(_user[i], _amount); - } - return true; - } -} diff --git a/contracts/dxdao/DxToken.sol b/contracts/dxdao/DxToken.sol deleted file mode 100644 index 25da2784..00000000 --- a/contracts/dxdao/DxToken.sol +++ /dev/null @@ -1,11 +0,0 @@ -pragma solidity ^0.5.4; -import "../daostack/controller/DAOToken.sol"; - -// is DAOToken -contract DxToken is DAOToken { - constructor( - string memory _name, - string memory _symbol, - uint256 _cap - ) public DAOToken(_name, _symbol, _cap) {} -} diff --git a/contracts/dxvote/WalletScheme.sol b/contracts/dxvote/WalletScheme.sol deleted file mode 100644 index 35115e63..00000000 --- a/contracts/dxvote/WalletScheme.sol +++ /dev/null @@ -1,510 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; - -import "@openzeppelin/contracts/utils/math/SafeMath.sol"; -import "@openzeppelin/contracts/utils/Address.sol"; -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "../utils/PermissionRegistry.sol"; - -/** - * @title WalletScheme. - * @dev A scheme for proposing and executing calls to any contract except itself - * It has a value call controller address, in case of the controller address ot be set the scheme will be doing - * generic calls to the dao controller. If the controller address is not set it will e executing raw calls form the - * scheme itself. - * The scheme can only execute calls allowed to in the permission registry, if the controller address is set - * the permissions will be checked using the avatar address as sender, if not the scheme address will be used as - * sender. - */ -contract WalletScheme { - using SafeMath for uint256; - using Address for address; - - string public constant SCHEME_TYPE = "Wallet Scheme v1.2"; - bytes4 public constant ERC20_TRANSFER_SIGNATURE = bytes4(keccak256("transfer(address,uint256)")); - bytes4 public constant ERC20_APPROVE_SIGNATURE = bytes4(keccak256("approve(address,uint256)")); - bytes4 public constant SET_MAX_SECONDS_FOR_EXECUTION_SIGNATURE = - bytes4(keccak256("setMaxSecondsForExecution(uint256)")); - - enum ProposalState { - None, - Submitted, - Rejected, - ExecutionSucceeded, - ExecutionTimeout - } - - struct Proposal { - address[] to; - bytes[] callData; - uint256[] value; - ProposalState state; - string title; - string descriptionHash; - uint256 submittedTime; - } - - mapping(bytes32 => Proposal) public proposals; - bytes32[] public proposalsList; - - bool public doAvatarGenericCalls; - address public controller; - PermissionRegistry public permissionRegistry; - string public schemeName; - uint256 public maxSecondsForExecution; - uint256 public maxRepPercentageChange; - - address public votingMachine; - address public avatar; - - // Boolean that is true when is executing a proposal, to avoid re-entrancy attacks. - bool internal executingProposal; - - event ProposalStateChange(bytes32 indexed _proposalId, uint256 indexed _state); - event ExecutionResults(bytes32 indexed _proposalId, bool[] _callsSucessResult, bytes[] _callsDataResult); - - /** - * @dev initialize - * @param _avatar the avatar address - * @param _votingMachine the voting machine address - * @param _doAvatarGenericCalls will the scheme do generic calls from the avatar - * @param _controller The controller address - * @param _permissionRegistry The address of the permission registry contract - * @param _maxSecondsForExecution The maximum amount of time in seconds for a proposal without executed since - * submitted time - * @param _maxRepPercentageChange The maximum percentage allowed to be changed in REP total supply after proposal - * execution - */ - function initialize( - address _avatar, - address _votingMachine, - bool _doAvatarGenericCalls, - address _controller, - address _permissionRegistry, - string calldata _schemeName, - uint256 _maxSecondsForExecution, - uint256 _maxRepPercentageChange - ) external { - require(avatar == address(0), "WalletScheme: cannot init twice"); - require(_avatar != address(0), "WalletScheme: avatar cannot be zero"); - require(_controller != address(0), "WalletScheme: controller cannot be zero"); - require( - _maxSecondsForExecution >= 86400, - "WalletScheme: _maxSecondsForExecution cant be less than 86400 seconds" - ); - avatar = _avatar; - votingMachine = _votingMachine; - doAvatarGenericCalls = _doAvatarGenericCalls; - controller = _controller; - permissionRegistry = PermissionRegistry(_permissionRegistry); - schemeName = _schemeName; - maxSecondsForExecution = _maxSecondsForExecution; - maxRepPercentageChange = _maxRepPercentageChange; - } - - /** - * @dev Fallback function that allows the wallet to receive ETH when the controller address is not set - */ - receive() external payable { - require(!doAvatarGenericCalls, "WalletScheme: Cant receive if it will make generic calls to avatar"); - } - - /** - * @dev Set the max amount of seconds that a proposal has to be executed, only callable from the avatar address - * @param _maxSecondsForExecution New max proposal time in seconds to be used - */ - function setMaxSecondsForExecution(uint256 _maxSecondsForExecution) external { - require( - msg.sender == address(avatar), - "WalletScheme: setMaxSecondsForExecution is callable only form the avatar" - ); - require( - _maxSecondsForExecution >= 86400, - "WalletScheme: _maxSecondsForExecution cant be less than 86400 seconds" - ); - maxSecondsForExecution = _maxSecondsForExecution; - } - - /** - * @dev execution of proposals, can only be called by the voting machine in which the vote is held. - REQUIRE FROM "../daostack/votingMachines/ProposalExecuteInterface.sol" DONT REMOVE - * @param _proposalId the ID of the voting in the voting machine - * @param _decision a parameter of the voting result, 1 yes and 2 is no. - * @return bool success - */ - function executeProposal(bytes32 _proposalId, int256 _decision) external onlyVotingMachine returns (bool) { - require(!executingProposal, "WalletScheme: proposal execution already running"); - executingProposal = true; - - Proposal storage proposal = proposals[_proposalId]; - require(proposal.state == ProposalState.Submitted, "WalletScheme: must be a submitted proposal"); - - // If the amount of time passed since submission plus max proposal time is lower than block timestamp - // the proposal timeout execution is reached and proposal cant be executed from now on - if (proposal.submittedTime.add(maxSecondsForExecution) < block.timestamp) { - proposal.state = ProposalState.ExecutionTimeout; - emit ProposalStateChange(_proposalId, uint256(ProposalState.ExecutionTimeout)); - - // If decision is 1, it means the proposal was approved by the voting machine - } else if (_decision == 1) { - uint256 oldRepSupply = getNativeReputationTotalSupply(); - - // If one call fails the transaction will revert - bytes[] memory callsDataResult = new bytes[](proposal.to.length); - bool[] memory callsSucessResult = new bool[](proposal.to.length); - address _asset; - address _to; - bytes4 _callDataFuncSignature; - uint256 _value; - - if (doAvatarGenericCalls) { - address(controller).call( - abi.encodeWithSignature( - "genericCall(address,bytes,address,uint256)", - address(permissionRegistry), - abi.encodeWithSignature("setERC20Balances()"), - avatar, - 0 - ) - ); - } else { - permissionRegistry.setERC20Balances(); - } - - for (uint256 i = 0; i < proposal.to.length; i++) { - _asset = address(0); - _callDataFuncSignature = this.getFuncSignature(proposal.callData[i]); - _to = proposal.to[i]; - _value = proposal.value[i]; - - // The permission registry keeps track of all value transferred and checks call permission - permissionRegistry.setETHPermissionUsed( - doAvatarGenericCalls ? avatar : address(this), - _to, - _callDataFuncSignature, - _value - ); - - // If controller address is set the code needs to be encoded to genericCall function - if (doAvatarGenericCalls && proposal.to[i] != address(controller)) { - bytes memory genericCallData = abi.encodeWithSignature( - "genericCall(address,bytes,address,uint256)", - proposal.to[i], - proposal.callData[i], - avatar, - proposal.value[i] - ); - (callsSucessResult[i], callsDataResult[i]) = address(controller).call{value: 0}(genericCallData); - - // The success is form the generic call, but the result data is from the call to the controller - (bool genericCallSucessResult, ) = abi.decode(callsDataResult[i], (bool, bytes)); - callsSucessResult[i] = genericCallSucessResult; - - // If controller address is not set the call is made to - } else { - (callsSucessResult[i], callsDataResult[i]) = address(proposal.to[i]).call{value: proposal.value[i]}( - proposal.callData[i] - ); - } - - // If the call reverted the entire execution will revert - require(callsSucessResult[i], "WalletScheme: call execution failed"); - } - // Cant mint or burn more REP than the allowed percentaged set in the wallet scheme initialization - require( - (oldRepSupply.mul(uint256(100).add(maxRepPercentageChange)).div(100) >= - getNativeReputationTotalSupply()) && - (oldRepSupply.mul(uint256(100).sub(maxRepPercentageChange)).div(100) <= - getNativeReputationTotalSupply()), - "WalletScheme: maxRepPercentageChange passed" - ); - - require(permissionRegistry.checkERC20Limits(doAvatarGenericCalls ? avatar : address(this))); - - proposal.state = ProposalState.ExecutionSucceeded; - emit ProposalStateChange(_proposalId, uint256(ProposalState.ExecutionSucceeded)); - emit ExecutionResults(_proposalId, callsSucessResult, callsDataResult); - - // If decision is 2, it means the proposal was rejected by the voting machine - } else { - proposal.state = ProposalState.Rejected; - emit ProposalStateChange(_proposalId, uint256(ProposalState.Rejected)); - } - - executingProposal = false; - return true; - } - - /** - * @dev Propose calls to be executed, the calls have to be allowed by the permission registry - * @param _to - The addresses to call - * @param _callData - The abi encode data for the calls - * @param _value value(ETH) to transfer with the calls - * @param _title title of proposal - * @param _descriptionHash proposal description hash - * @return an id which represents the proposal - */ - function proposeCalls( - address[] calldata _to, - bytes[] calldata _callData, - uint256[] calldata _value, - string calldata _title, - string calldata _descriptionHash - ) external returns (bytes32) { - // Check the proposal calls - for (uint256 i = 0; i < _to.length; i++) { - bytes4 callDataFuncSignature = getFuncSignature(_callData[i]); - - // Only allow proposing calls to this address to call setMaxSecondsForExecution function - require( - _to[i] != address(this) || - (callDataFuncSignature == SET_MAX_SECONDS_FOR_EXECUTION_SIGNATURE && _value[i] == 0), - "WalletScheme: invalid proposal caller" - ); - - // This will fail only when and ERC20 transfer or approve with ETH value is proposed - require( - (callDataFuncSignature != ERC20_TRANSFER_SIGNATURE && - callDataFuncSignature != ERC20_APPROVE_SIGNATURE) || _value[i] == 0, - "WalletScheme: cant propose ERC20 transfers with value" - ); - } - require(_to.length == _callData.length, "WalletScheme: invalid _callData length"); - require(_to.length == _value.length, "WalletScheme: invalid _value length"); - - bytes32 voteParams = abi.decode( - controller.functionStaticCall( - abi.encodeWithSignature("getSchemeParameters(address,address)", address(this), avatar), - "WalletScheme: getSchemeParameters error" - ), - (bytes32) - ); - - // Get the proposal id that will be used from the voting machine - // bytes32 proposalId = votingMachine.propose(2, voteParams, msg.sender, address(avatar)); - bytes32 proposalId = abi.decode( - votingMachine.functionCall( - abi.encodeWithSignature("propose(uint256,bytes32,address,address)", 2, voteParams, msg.sender, avatar), - "WalletScheme: DXDVotingMachine callback propose error" - ), - (bytes32) - ); - - // Add the proposal to the proposals mapping, proposals list and proposals information mapping - proposals[proposalId] = Proposal({ - to: _to, - callData: _callData, - value: _value, - state: ProposalState.Submitted, - title: _title, - descriptionHash: _descriptionHash, - submittedTime: block.timestamp - }); - // slither-disable-next-line all - proposalsList.push(proposalId); - proposalsBlockNumber[proposalId] = block.number; - emit ProposalStateChange(proposalId, uint256(ProposalState.Submitted)); - return proposalId; - } - - /** - * @dev Get the information of a proposal by id - * @param proposalId the ID of the proposal - */ - function getOrganizationProposal(bytes32 proposalId) - public - view - returns ( - address[] memory to, - bytes[] memory callData, - uint256[] memory value, - ProposalState state, - string memory title, - string memory descriptionHash, - uint256 submittedTime - ) - { - return ( - proposals[proposalId].to, - proposals[proposalId].callData, - proposals[proposalId].value, - proposals[proposalId].state, - proposals[proposalId].title, - proposals[proposalId].descriptionHash, - proposals[proposalId].submittedTime - ); - } - - /** - * @dev Get the information of a proposal by index - * @param proposalIndex the index of the proposal in the proposals list - */ - function getOrganizationProposalByIndex(uint256 proposalIndex) - external - view - returns ( - address[] memory to, - bytes[] memory callData, - uint256[] memory value, - ProposalState state, - string memory title, - string memory descriptionHash, - uint256 submittedTime - ) - { - return getOrganizationProposal(proposalsList[proposalIndex]); - } - - /** - * @dev Get call data signature - * @param data The bytes data of the data to get the signature - */ - function getFuncSignature(bytes calldata data) public pure returns (bytes4) { - if (data.length >= 4) { - return bytes4(data[:4]); - } else { - return bytes4(0); - } - } - - /** - * @dev Get the proposals length - */ - function getOrganizationProposalsLength() external view returns (uint256) { - return proposalsList.length; - } - - /** - * @dev Get the proposals ids - */ - function getOrganizationProposals() external view returns (bytes32[] memory) { - return proposalsList; - } - - /** - * @dev DXDVotingMachineCallbacks DONT REMOVE - */ - - modifier onlyVotingMachine() { - require(msg.sender == address(votingMachine), "only VotingMachine"); - _; - } - - mapping(bytes32 => uint256) public proposalsBlockNumber; - - function mintReputation( - uint256 _amount, - address _beneficiary, - bytes32 - ) external onlyVotingMachine returns (bool) { - // return ControllerInterface(avatar.owner()).mintReputation(_amount, _beneficiary, address(avatar)); - return - abi.decode( - controller.functionCall( - abi.encodeWithSignature( - "mintReputation(uint256,address,address)", - _amount, - _beneficiary, - address(avatar) - ), - "WalletScheme: DXDVotingMachine callback mintReputation error" - ), - (bool) - ); - } - - function burnReputation( - uint256 _amount, - address _beneficiary, - bytes32 - ) external onlyVotingMachine returns (bool) { - // return ControllerInterface(avatar.owner()).burnReputation(_amount, _beneficiary, address(avatar)); - return - abi.decode( - controller.functionCall( - abi.encodeWithSignature( - "burnReputation(uint256,address,address)", - _amount, - _beneficiary, - address(avatar) - ), - "WalletScheme: DXDVotingMachine callback burnReputation error" - ), - (bool) - ); - } - - function stakingTokenTransfer( - IERC20 _stakingToken, - address _beneficiary, - uint256 _amount, - bytes32 - ) external onlyVotingMachine returns (bool) { - return - abi.decode( - controller.functionCall( - abi.encodeWithSignature( - "externalTokenTransfer(address,address,uint256,address)", - address(_stakingToken), - _beneficiary, - _amount, - address(avatar) - ), - "WalletScheme: DXDVotingMachine callback externalTokenTransfer error" - ), - (bool) - ); - } - - function getNativeReputation() public view returns (address) { - // return Avatar(avatar).nativeReputation(); - return - abi.decode( - avatar.functionStaticCall( - abi.encodeWithSignature("nativeReputation()"), - "WalletScheme: DXDVotingMachine callback nativeReputation error" - ), - (address) - ); - } - - function getNativeReputationTotalSupply() public view returns (uint256) { - // return Avatar(avatar).nativeReputation().totalSupply(); - return - abi.decode( - getNativeReputation().functionStaticCall( - abi.encodeWithSignature("totalSupply()"), - "WalletScheme: DXDVotingMachine callback totalSupply error" - ), - (uint256) - ); - } - - function balanceOfStakingToken(IERC20 _stakingToken, bytes32) external view returns (uint256) { - return _stakingToken.balanceOf(address(avatar)); - } - - function getTotalReputationSupply(bytes32 _proposalId) external view returns (uint256) { - // return Avatar(avatar).nativeReputation().totalSupplyAt(proposalsBlockNumber[_proposalId]); - return - abi.decode( - getNativeReputation().functionStaticCall( - abi.encodeWithSignature("totalSupplyAt(uint256)", proposalsBlockNumber[_proposalId]), - "WalletScheme: DXDVotingMachine callback totalSupplyAt error" - ), - (uint256) - ); - } - - function reputationOf(address _owner, bytes32 _proposalId) external view returns (uint256) { - // return Avatar(avatar).nativeReputation().balanceOfAt(_owner, proposalsBlockNumber[_proposalId]); - return - abi.decode( - getNativeReputation().functionStaticCall( - abi.encodeWithSignature("balanceOfAt(address,uint256)", _owner, proposalsBlockNumber[_proposalId]), - "WalletScheme: DXDVotingMachine callback balanceOfAt error" - ), - (uint256) - ); - } -} diff --git a/contracts/erc20guild/BaseERC20Guild.sol b/contracts/erc20guild/BaseERC20Guild.sol index a9d5372d..390bca7d 100644 --- a/contracts/erc20guild/BaseERC20Guild.sol +++ b/contracts/erc20guild/BaseERC20Guild.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol"; diff --git a/contracts/erc20guild/ERC20Guild.sol b/contracts/erc20guild/ERC20Guild.sol index c017e5ec..57973a00 100644 --- a/contracts/erc20guild/ERC20Guild.sol +++ b/contracts/erc20guild/ERC20Guild.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "./BaseERC20Guild.sol"; diff --git a/contracts/erc20guild/ERC20GuildUpgradeable.sol b/contracts/erc20guild/ERC20GuildUpgradeable.sol index 8c43a3da..42313bf5 100644 --- a/contracts/erc20guild/ERC20GuildUpgradeable.sol +++ b/contracts/erc20guild/ERC20GuildUpgradeable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; diff --git a/contracts/erc20guild/IERC20Guild.sol b/contracts/erc20guild/IERC20Guild.sol index df57ddc4..c9d64fc9 100644 --- a/contracts/erc20guild/IERC20Guild.sol +++ b/contracts/erc20guild/IERC20Guild.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; interface IERC20Guild { event ProposalStateChanged(bytes32 indexed proposalId, uint256 newState); diff --git a/contracts/erc20guild/implementations/DXDGuild.sol b/contracts/erc20guild/implementations/DXDGuild.sol index 25ceecf7..d2580465 100644 --- a/contracts/erc20guild/implementations/DXDGuild.sol +++ b/contracts/erc20guild/implementations/DXDGuild.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "../ERC20GuildUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/contracts/erc20guild/implementations/ERC20GuildWithERC1271.sol b/contracts/erc20guild/implementations/ERC20GuildWithERC1271.sol index f3345daa..e6a271cc 100644 --- a/contracts/erc20guild/implementations/ERC20GuildWithERC1271.sol +++ b/contracts/erc20guild/implementations/ERC20GuildWithERC1271.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol"; diff --git a/contracts/erc20guild/implementations/GuardedERC20Guild.sol b/contracts/erc20guild/implementations/GuardedERC20Guild.sol index ff6d8a67..e5785e94 100644 --- a/contracts/erc20guild/implementations/GuardedERC20Guild.sol +++ b/contracts/erc20guild/implementations/GuardedERC20Guild.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "../ERC20GuildUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/contracts/erc20guild/implementations/MigratableERC20Guild.sol b/contracts/erc20guild/implementations/MigratableERC20Guild.sol index eb963b2c..4b306b18 100644 --- a/contracts/erc20guild/implementations/MigratableERC20Guild.sol +++ b/contracts/erc20guild/implementations/MigratableERC20Guild.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "../ERC20Guild.sol"; diff --git a/contracts/erc20guild/implementations/SnapshotERC20Guild.sol b/contracts/erc20guild/implementations/SnapshotERC20Guild.sol index ee0f5f2d..e2169193 100644 --- a/contracts/erc20guild/implementations/SnapshotERC20Guild.sol +++ b/contracts/erc20guild/implementations/SnapshotERC20Guild.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "../ERC20GuildUpgradeable.sol"; import "../../utils/Arrays.sol"; diff --git a/contracts/erc20guild/implementations/SnapshotRepERC20Guild.sol b/contracts/erc20guild/implementations/SnapshotRepERC20Guild.sol index 3e8fc199..47fdba0b 100644 --- a/contracts/erc20guild/implementations/SnapshotRepERC20Guild.sol +++ b/contracts/erc20guild/implementations/SnapshotRepERC20Guild.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "../ERC20GuildUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/contracts/erc20guild/utils/GuildRegistry.sol b/contracts/erc20guild/utils/GuildRegistry.sol index bc4e4691..e7b92bda 100644 --- a/contracts/erc20guild/utils/GuildRegistry.sol +++ b/contracts/erc20guild/utils/GuildRegistry.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/Counters.sol"; diff --git a/contracts/test/ActionMock.sol b/contracts/test/ActionMock.sol index 30984848..1e5d9d07 100644 --- a/contracts/test/ActionMock.sol +++ b/contracts/test/ActionMock.sol @@ -1,10 +1,11 @@ -pragma solidity 0.5.17; +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.17; contract ActionMock { event ReceivedEther(address indexed _sender, uint256 _value); event LogNumber(uint256 number); - function() external payable { + receive() external payable { emit ReceivedEther(msg.sender, msg.value); } @@ -30,7 +31,7 @@ contract ActionMock { bytes memory data, uint256 value ) public returns (bool, bytes memory) { - return address(to).call.value(value)(data); + return address(to).call{value: value}(data); } function executeCallWithRequiredSuccess( @@ -38,7 +39,7 @@ contract ActionMock { bytes memory data, uint256 value ) public returns (bool, bytes memory) { - (bool success, bytes memory result) = address(to).call.value(value)(data); + (bool success, bytes memory result) = address(to).call{value: value}(data); require(success, "ActionMock: Call execution failed"); return (success, result); } diff --git a/contracts/test/ERC20Mock.sol b/contracts/test/ERC20Mock.sol index 1ee0ad8e..9703e23e 100644 --- a/contracts/test/ERC20Mock.sol +++ b/contracts/test/ERC20Mock.sol @@ -1,19 +1,16 @@ -pragma solidity 0.5.17; +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.17; -import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol"; -import "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol"; +import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol"; // mock class using ERC20 -contract ERC20Mock is ERC20, ERC20Detailed { +contract ERC20Mock is ERC20PresetFixedSupply { constructor( - address initialAccount, - uint256 initialBalance, - string memory symbol, string memory name, - uint8 decimals - ) public ERC20Detailed(symbol, name, decimals) { - _mint(initialAccount, initialBalance); - } + string memory symbol, + uint256 initialBalance, + address initialAccount + ) public ERC20PresetFixedSupply(name, symbol, initialBalance, initialAccount) {} function nonStandardTransfer(address recipient, uint256 amount) public returns (bool success) { return transfer(recipient, amount); diff --git a/contracts/test/GlobalConstraintMock.sol b/contracts/test/GlobalConstraintMock.sol deleted file mode 100644 index 4256f00f..00000000 --- a/contracts/test/GlobalConstraintMock.sol +++ /dev/null @@ -1,78 +0,0 @@ -pragma solidity 0.5.17; - -contract GlobalConstraintInterface { - enum CallPhase { - Pre, - Post, - PreAndPost - } - - function pre( - address _scheme, - bytes32 _params, - bytes32 _method - ) public returns (bool); - - function post( - address _scheme, - bytes32 _params, - bytes32 _method - ) public returns (bool); - - /** - * @dev when return if this globalConstraints is pre, post or both. - * @return CallPhase enum indication Pre, Post or PreAndPost. - */ - function when() public returns (CallPhase); -} - -contract GlobalConstraintMock { - struct TestParam { - bool pre; - bool post; - } - - mapping(bytes32 => TestParam) public testParams; - - GlobalConstraintInterface.CallPhase public currentCallPhase; - - function setConstraint( - bytes32 method, - bool pre, - bool post - ) public returns (bool) { - testParams[method].pre = pre; - testParams[method].post = post; - - if (!pre && !post) { - currentCallPhase = GlobalConstraintInterface.CallPhase.PreAndPost; - } else { - if (!pre) { - currentCallPhase = GlobalConstraintInterface.CallPhase.Pre; - } else if (!post) { - currentCallPhase = GlobalConstraintInterface.CallPhase.Post; - } - } - return true; - } - - function pre( - address, - bytes32, - bytes32 method - ) public view returns (bool) { - return testParams[method].pre; - } - - function post( - address, - bytes32, - bytes32 method - ) public view returns (bool) { - return testParams[method].post; - } - - function when() public view returns (GlobalConstraintInterface.CallPhase) { - return currentCallPhase; - } -} diff --git a/contracts/test/TokenVaultThief.sol b/contracts/test/TokenVaultThief.sol index 2bcef9e7..31818c5a 100644 --- a/contracts/test/TokenVaultThief.sol +++ b/contracts/test/TokenVaultThief.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; diff --git a/contracts/test/Wallet.sol b/contracts/test/Wallet.sol deleted file mode 100644 index 36cac887..00000000 --- a/contracts/test/Wallet.sol +++ /dev/null @@ -1,17 +0,0 @@ -pragma solidity 0.5.17; -import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; - -contract Wallet is Ownable { - event ReceiveEther(address indexed _sender, uint256 _value); - event Pay(address indexed _sender, uint256 _value); - - function() external payable { - emit ReceiveEther(msg.sender, msg.value); - } - - function pay(address payable _beneficiary) public onlyOwner { - uint256 amount = address(this).balance; - _beneficiary.transfer(amount); - emit Pay(_beneficiary, amount); - } -} diff --git a/contracts/utils/Arrays.sol b/contracts/utils/Arrays.sol index 5ea9fbc2..97aa1f03 100644 --- a/contracts/utils/Arrays.sol +++ b/contracts/utils/Arrays.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; library Arrays { function average(uint256 a, uint256 b) internal pure returns (uint256) { diff --git a/contracts/utils/Create2Deployer.sol b/contracts/utils/Create2Deployer.sol index 1b8e499f..fc0a411d 100644 --- a/contracts/utils/Create2Deployer.sol +++ b/contracts/utils/Create2Deployer.sol @@ -1,4 +1,5 @@ -pragma solidity ^0.5.17; +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; contract Create2Deployer { event Deployed(address addr, uint256 salt); diff --git a/contracts/utils/DaoCreator.sol b/contracts/utils/DaoCreator.sol deleted file mode 100644 index 091f97fc..00000000 --- a/contracts/utils/DaoCreator.sol +++ /dev/null @@ -1,186 +0,0 @@ -pragma solidity 0.5.17; - -import "../dxdao/DxController.sol"; - -/** - * @title DxControllerCreator for creating a single controller. - */ -contract DxControllerCreator { - function create(Avatar _avatar) public returns (address) { - DxController controller = new DxController(_avatar); - controller.registerScheme(msg.sender, bytes32(0), bytes4(0x0000001f), address(_avatar)); - controller.unregisterScheme(address(this), address(_avatar)); - return address(controller); - } -} - -/** - * @title Genesis Scheme that creates organizations - */ -contract DaoCreator { - mapping(address => address) public locks; - - event NewOrg(address _avatar); - event InitialSchemesSet(address _avatar); - - DxControllerCreator private controllerCreator; - - constructor(DxControllerCreator _controllerCreator) public { - require(_controllerCreator != DxControllerCreator(0)); - controllerCreator = _controllerCreator; - } - - /** - * @dev addFounders add founders to the organization. - * this function can be called only after forgeOrg and before setSchemes - * @param _avatar the organization avatar - * @param _founders An array with the addresses of the founders of the organization - * @param _foundersTokenAmount An array of amount of tokens that the founders - * receive in the new organization - * @param _foundersReputationAmount An array of amount of reputation that the - * founders receive in the new organization - * @return bool true or false - */ - function addFounders( - Avatar _avatar, - address[] calldata _founders, - uint256[] calldata _foundersTokenAmount, - uint256[] calldata _foundersReputationAmount - ) external returns (bool) { - require(_founders.length == _foundersTokenAmount.length); - require(_founders.length == _foundersReputationAmount.length); - require(_founders.length > 0); - require(locks[address(_avatar)] == msg.sender); - // Mint token and reputation for founders: - for (uint256 i = 0; i < _founders.length; i++) { - require(_founders[i] != address(0)); - if (_foundersTokenAmount[i] > 0) { - DxController(_avatar.owner()).mintTokens(_foundersTokenAmount[i], _founders[i], address(_avatar)); - } - if (_foundersReputationAmount[i] > 0) { - DxController(_avatar.owner()).mintReputation( - _foundersReputationAmount[i], - _founders[i], - address(_avatar) - ); - } - } - return true; - } - - /** - * @dev Create a new organization - * @param _orgName The name of the new organization - * @param _tokenName The name of the token associated with the organization - * @param _tokenSymbol The symbol of the token - * @param _founders An array with the addresses of the founders of the organization - * @param _foundersTokenAmount An array of amount of tokens that the founders - * receive in the new organization - * @param _foundersReputationAmount An array of amount of reputation that the - * founders receive in the new organization - * @param _cap token cap - 0 for no cap. - * @return The address of the avatar of the controller - */ - function forgeOrg( - string calldata _orgName, - string calldata _tokenName, - string calldata _tokenSymbol, - address[] calldata _founders, - uint256[] calldata _foundersTokenAmount, - uint256[] calldata _foundersReputationAmount, - uint256 _cap - ) external returns (address) { - //The call for the private function is needed to bypass a deep stack issues - return - _forgeOrg( - _orgName, - _tokenName, - _tokenSymbol, - _founders, - _foundersTokenAmount, - _foundersReputationAmount, - _cap - ); - } - - /** - * @dev Set initial schemes for the organization. - * @param _avatar organization avatar (returns from forgeOrg) - * @param _schemes the schemes to register for the organization - * @param _params the schemes's params - * @param _permissions the schemes permissions. - * @param _metaData dao meta data hash - */ - function setSchemes( - Avatar _avatar, - address[] calldata _schemes, - bytes32[] calldata _params, - bytes4[] calldata _permissions, - string calldata _metaData - ) external { - // this action can only be executed by the account that holds the lock - // for this controller - require(locks[address(_avatar)] == msg.sender); - // register initial schemes: - DxController controller = DxController(_avatar.owner()); - for (uint256 i = 0; i < _schemes.length; i++) { - controller.registerScheme(_schemes[i], _params[i], _permissions[i], address(_avatar)); - } - controller.metaData(_metaData, _avatar); - // Unregister self: - controller.unregisterScheme(address(this), address(_avatar)); - // Remove lock: - delete locks[address(_avatar)]; - emit InitialSchemesSet(address(_avatar)); - } - - /** - * @dev Create a new organization - * @param _orgName The name of the new organization - * @param _tokenName The name of the token associated with the organization - * @param _tokenSymbol The symbol of the token - * @param _founders An array with the addresses of the founders of the organization - * @param _foundersTokenAmount An array of amount of tokens that the founders - * receive in the new organization - * @param _foundersReputationAmount An array of amount of reputation that the - * founders receive in the new organization - * @param _cap token cap - 0 for no cap. - * @return The address of the avatar of the controller - */ - function _forgeOrg( - string memory _orgName, - string memory _tokenName, - string memory _tokenSymbol, - address[] memory _founders, - uint256[] memory _foundersTokenAmount, - uint256[] memory _foundersReputationAmount, - uint256 _cap - ) private returns (address) { - // Create Token, Reputation and Avatar: - require(_founders.length == _foundersTokenAmount.length); - require(_founders.length == _foundersReputationAmount.length); - require(_founders.length > 0); - DAOToken nativeToken = new DAOToken(_tokenName, _tokenSymbol, _cap); - Reputation nativeReputation = new Reputation(); - Avatar avatar = new Avatar(_orgName, nativeToken, nativeReputation); - - // Mint token and reputation for founders: - for (uint256 i = 0; i < _founders.length; i++) { - if (_foundersReputationAmount[i] > 0) { - nativeReputation.mint(_founders[i], _foundersReputationAmount[i]); - } - } - - DxController controller = DxController(controllerCreator.create(avatar)); - - // Transfer ownership: - avatar.transferOwnership(address(controller)); - nativeToken.transferOwnership(address(controller)); - nativeReputation.transferOwnership(address(controller)); - - locks[address(avatar)] = msg.sender; - - emit NewOrg(address(avatar)); - return (address(avatar)); - } -} diff --git a/contracts/utils/ERC20/ERC20SnapshotRep.sol b/contracts/utils/ERC20/ERC20SnapshotRep.sol index c62e6641..6aaada06 100644 --- a/contracts/utils/ERC20/ERC20SnapshotRep.sol +++ b/contracts/utils/ERC20/ERC20SnapshotRep.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; diff --git a/contracts/utils/ERC20/ERC20Token.sol b/contracts/utils/ERC20/ERC20Token.sol index 8ec95419..acc75c31 100644 --- a/contracts/utils/ERC20/ERC20Token.sol +++ b/contracts/utils/ERC20/ERC20Token.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; diff --git a/contracts/utils/ERC20/ERC20TokenVesting.sol b/contracts/utils/ERC20/ERC20TokenVesting.sol index c9b6d11e..38b9eb53 100644 --- a/contracts/utils/ERC20/ERC20TokenVesting.sol +++ b/contracts/utils/ERC20/ERC20TokenVesting.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; diff --git a/contracts/dxvote/utils/ERC20VestingFactory.sol b/contracts/utils/ERC20VestingFactory.sol similarity index 84% rename from contracts/dxvote/utils/ERC20VestingFactory.sol rename to contracts/utils/ERC20VestingFactory.sol index 5d721b2c..b8cc4f67 100644 --- a/contracts/dxvote/utils/ERC20VestingFactory.sol +++ b/contracts/utils/ERC20VestingFactory.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.5.4; +pragma solidity ^0.8.17; -import "openzeppelin-solidity/contracts/drafts/TokenVesting.sol"; -import "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol"; +import "./TokenVesting.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; contract ERC20VestingFactory { using SafeERC20 for IERC20; diff --git a/contracts/dxvote/utils/ERC721Factory.sol b/contracts/utils/ERC721Factory.sol similarity index 93% rename from contracts/dxvote/utils/ERC721Factory.sol rename to contracts/utils/ERC721Factory.sol index 7e4020d6..091d4094 100644 --- a/contracts/dxvote/utils/ERC721Factory.sol +++ b/contracts/utils/ERC721Factory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; import "@openzeppelin/contracts/utils/Counters.sol"; diff --git a/contracts/utils/ETHRelayer.sol b/contracts/utils/ETHRelayer.sol deleted file mode 100644 index ca5144c3..00000000 --- a/contracts/utils/ETHRelayer.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; - -/** - * @title ETHRelayer - * @dev Ether relayer used to relay all ether received in this contract to the receiver address. - * Receives ETH via legacy .transfer function using defualt 23000 gas limit and relay it using 100k gas limit to - * contracts that have enabled the fallback payable funciton. - */ -contract ETHRelayer { - address payable public receiver; - - constructor(address payable _receiver) { - receiver = _receiver; - } - - receive() external payable {} - - function relay() public { - (bool success, ) = receiver.call{gas: 100000, value: address(this).balance}(""); - require(success, "ETHRelayer: Relay transfer failed"); - } -} diff --git a/contracts/utils/GnosisSafe/GnosisProxy.sol b/contracts/utils/GnosisSafe/GnosisProxy.sol deleted file mode 100644 index 1b744ea2..00000000 --- a/contracts/utils/GnosisSafe/GnosisProxy.sol +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Taken from https://etherscan.io/address/0x5f239a6671bc6d2baef6d7cd892296e678810882#code - */ - -pragma solidity ^0.5.3; - -// @title GnosisProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. -// @author Stefan George - -// @author Richard Meissner - -contract GnosisProxy { - // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated. - // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt` - address internal masterCopy; - - // @dev Constructor function sets address of master copy contract. - // @param _masterCopy Master copy address. - constructor(address _masterCopy) public { - require(_masterCopy != address(0), "Invalid master copy address provided"); - masterCopy = _masterCopy; - } - - // @dev Fallback function forwards all transactions and returns all received return data. - function() external payable { - // solium-disable-next-line security/no-inline-assembly - assembly { - let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff) - // 0xa619486e == keccak("masterCopy()"). The value is right padded to 32-bytes with 0s - if eq(calldataload(0), 0xa619486e00000000000000000000000000000000000000000000000000000000) { - mstore(0, masterCopy) - return(0, 0x20) - } - calldatacopy(0, 0, calldatasize()) - let success := delegatecall(gas, masterCopy, 0, calldatasize(), 0, 0) - returndatacopy(0, 0, returndatasize()) - if eq(success, 0) { - revert(0, returndatasize()) - } - return(0, returndatasize()) - } - } -} diff --git a/contracts/utils/GnosisSafe/GnosisSafe.sol b/contracts/utils/GnosisSafe/GnosisSafe.sol deleted file mode 100644 index ec5d8a09..00000000 --- a/contracts/utils/GnosisSafe/GnosisSafe.sol +++ /dev/null @@ -1,1023 +0,0 @@ -/** - * Taken from https://etherscan.io/address/0x34cfac646f301356faa8b21e94227e3583fe3f5f#code - */ - -pragma solidity >=0.5.0 <0.7.0; - -// @title SelfAuthorized - authorizes current contract to perform actions -// @author Richard Meissner - -contract SelfAuthorized { - modifier authorized() { - require(msg.sender == address(this), "Method can only be called from this contract"); - _; - } -} - -// @title MasterCopy - Base for master copy contracts (should always be first super contract) -// This contract is tightly coupled to our proxy contract (see `proxies/Proxy.sol`) -// @author Richard Meissner - -contract MasterCopy is SelfAuthorized { - event ChangedMasterCopy(address masterCopy); - - // masterCopy always needs to be first declared variable, to ensure that it is at the same location as in the Proxy contract. - // It should also always be ensured that the address is stored alone (uses a full word) - address private masterCopy; - - // @dev Allows to upgrade the contract. This can only be done via a Safe transaction. - // @param _masterCopy New contract address. - function changeMasterCopy(address _masterCopy) public authorized { - // Master copy address cannot be null. - require(_masterCopy != address(0), "Invalid master copy address provided"); - masterCopy = _masterCopy; - emit ChangedMasterCopy(_masterCopy); - } -} - -// @title Module - Base class for modules. -// @author Stefan George - -// @author Richard Meissner - -contract Module is MasterCopy { - ModuleManager public manager; - - modifier authorized() { - require(msg.sender == address(manager), "Method can only be called from manager"); - _; - } - - function setManager() internal { - // manager can only be 0 at initalization of contract. - // Check ensures that setup function can only be called once. - require(address(manager) == address(0), "Manager has already been set"); - manager = ModuleManager(msg.sender); - } -} - -// @title Enum - Collection of enums -// @author Richard Meissner - -contract Enum { - enum Operation { - Call, - DelegateCall - } -} - -// @title Executor - A contract that can execute transactions -// @author Richard Meissner - -contract Executor { - function execute( - address to, - uint256 value, - bytes memory data, - Enum.Operation operation, - uint256 txGas - ) internal returns (bool success) { - if (operation == Enum.Operation.Call) success = executeCall(to, value, data, txGas); - else if (operation == Enum.Operation.DelegateCall) success = executeDelegateCall(to, data, txGas); - else success = false; - } - - function executeCall( - address to, - uint256 value, - bytes memory data, - uint256 txGas - ) internal returns (bool success) { - // solium-disable-next-line security/no-inline-assembly - assembly { - success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0) - } - } - - function executeDelegateCall( - address to, - bytes memory data, - uint256 txGas - ) internal returns (bool success) { - // solium-disable-next-line security/no-inline-assembly - assembly { - success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0) - } - } -} - -// @title SecuredTokenTransfer - Secure token transfer -// @author Richard Meissner - -contract SecuredTokenTransfer { - // @dev Transfers a token and returns if it was a success - // @param token Token that should be transferred - // @param receiver Receiver to whom the token should be transferred - // @param amount The amount of tokens that should be transferred - function transferToken( - address token, - address receiver, - uint256 amount - ) internal returns (bool transferred) { - bytes memory data = abi.encodeWithSignature("transfer(address,uint256)", receiver, amount); - // solium-disable-next-line security/no-inline-assembly - assembly { - let success := call(sub(gas, 10000), token, 0, add(data, 0x20), mload(data), 0, 0) - let ptr := mload(0x40) - mstore(0x40, add(ptr, returndatasize())) - returndatacopy(ptr, 0, returndatasize()) - switch returndatasize() - case 0 { - transferred := success - } - case 0x20 { - transferred := iszero(or(iszero(success), iszero(mload(ptr)))) - } - default { - transferred := 0 - } - } - } -} - -// @title Module Manager - A contract that manages modules that can execute transactions via this contract -// @author Stefan George - -// @author Richard Meissner - -contract ModuleManager is SelfAuthorized, Executor { - event EnabledModule(Module module); - event DisabledModule(Module module); - event ExecutionFromModuleSuccess(address indexed module); - event ExecutionFromModuleFailure(address indexed module); - - address internal constant SENTINEL_MODULES = address(0x1); - - mapping(address => address) internal modules; - - function setupModules(address to, bytes memory data) internal { - require(modules[SENTINEL_MODULES] == address(0), "Modules have already been initialized"); - modules[SENTINEL_MODULES] = SENTINEL_MODULES; - if (to != address(0)) - // Setup has to complete successfully or transaction fails. - require(executeDelegateCall(to, data, gasleft()), "Could not finish initialization"); - } - - // @dev Allows to add a module to the whitelist. - // This can only be done via a Safe transaction. - // @param module Module to be whitelisted. - function enableModule(Module module) public authorized { - // Module address cannot be null or sentinel. - require( - address(module) != address(0) && address(module) != SENTINEL_MODULES, - "Invalid module address provided" - ); - // Module cannot be added twice. - require(modules[address(module)] == address(0), "Module has already been added"); - modules[address(module)] = modules[SENTINEL_MODULES]; - modules[SENTINEL_MODULES] = address(module); - emit EnabledModule(module); - } - - // @dev Allows to remove a module from the whitelist. - // This can only be done via a Safe transaction. - // @param prevModule Module that pointed to the module to be removed in the linked list - // @param module Module to be removed. - function disableModule(Module prevModule, Module module) public authorized { - // Validate module address and check that it corresponds to module index. - require( - address(module) != address(0) && address(module) != SENTINEL_MODULES, - "Invalid module address provided" - ); - require(modules[address(prevModule)] == address(module), "Invalid prevModule, module pair provided"); - modules[address(prevModule)] = modules[address(module)]; - modules[address(module)] = address(0); - emit DisabledModule(module); - } - - // @dev Allows a Module to execute a Safe transaction without any further confirmations. - // @param to Destination address of module transaction. - // @param value Ether value of module transaction. - // @param data Data payload of module transaction. - // @param operation Operation type of module transaction. - function execTransactionFromModule( - address to, - uint256 value, - bytes memory data, - Enum.Operation operation - ) public returns (bool success) { - // Only whitelisted modules are allowed. - require( - msg.sender != SENTINEL_MODULES && modules[msg.sender] != address(0), - "Method can only be called from an enabled module" - ); - // Execute transaction without further confirmations. - success = execute(to, value, data, operation, gasleft()); - if (success) emit ExecutionFromModuleSuccess(msg.sender); - else emit ExecutionFromModuleFailure(msg.sender); - } - - // @dev Allows a Module to execute a Safe transaction without any further confirmations and return data - // @param to Destination address of module transaction. - // @param value Ether value of module transaction. - // @param data Data payload of module transaction. - // @param operation Operation type of module transaction. - function execTransactionFromModuleReturnData( - address to, - uint256 value, - bytes memory data, - Enum.Operation operation - ) public returns (bool success, bytes memory returnData) { - success = execTransactionFromModule(to, value, data, operation); - // solium-disable-next-line security/no-inline-assembly - assembly { - // Load free memory location - let ptr := mload(0x40) - // We allocate memory for the return data by setting the free memory location to - // current free memory location + data size + 32 bytes for data size value - mstore(0x40, add(ptr, add(returndatasize(), 0x20))) - // Store the size - mstore(ptr, returndatasize()) - // Store the data - returndatacopy(add(ptr, 0x20), 0, returndatasize()) - // Point the return data to the correct memory location - returnData := ptr - } - } - - // @dev Returns array of first 10 modules. - // @return Array of modules. - function getModules() public view returns (address[] memory) { - (address[] memory array, ) = getModulesPaginated(SENTINEL_MODULES, 10); - return array; - } - - // @dev Returns array of modules. - // @param start Start of the page. - // @param pageSize Maximum number of modules that should be returned. - // @return Array of modules. - function getModulesPaginated(address start, uint256 pageSize) - public - view - returns (address[] memory array, address next) - { - // Init array with max page size - array = new address[](pageSize); - - // Populate return array - uint256 moduleCount = 0; - address currentModule = modules[start]; - while (currentModule != address(0x0) && currentModule != SENTINEL_MODULES && moduleCount < pageSize) { - array[moduleCount] = currentModule; - currentModule = modules[currentModule]; - moduleCount++; - } - next = currentModule; - // Set correct size of returned array - // solium-disable-next-line security/no-inline-assembly - assembly { - mstore(array, moduleCount) - } - } -} - -// @title OwnerManager - Manages a set of owners and a threshold to perform actions. -// @author Stefan George - -// @author Richard Meissner - -contract OwnerManager is SelfAuthorized { - event AddedOwner(address owner); - event RemovedOwner(address owner); - event ChangedThreshold(uint256 threshold); - - address internal constant SENTINEL_OWNERS = address(0x1); - - mapping(address => address) internal owners; - uint256 ownerCount; - uint256 internal threshold; - - // @dev Setup function sets initial storage of contract. - // @param _owners List of Safe owners. - // @param _threshold Number of required confirmations for a Safe transaction. - function setupOwners(address[] memory _owners, uint256 _threshold) internal { - // Threshold can only be 0 at initialization. - // Check ensures that setup function can only be called once. - require(threshold == 0, "Owners have already been setup"); - // Validate that threshold is smaller than number of added owners. - require(_threshold <= _owners.length, "Threshold cannot exceed owner count"); - // There has to be at least one Safe owner. - require(_threshold >= 1, "Threshold needs to be greater than 0"); - // Initializing Safe owners. - address currentOwner = SENTINEL_OWNERS; - for (uint256 i = 0; i < _owners.length; i++) { - // Owner address cannot be null. - address owner = _owners[i]; - require(owner != address(0) && owner != SENTINEL_OWNERS, "Invalid owner address provided"); - // No duplicate owners allowed. - require(owners[owner] == address(0), "Duplicate owner address provided"); - owners[currentOwner] = owner; - currentOwner = owner; - } - owners[currentOwner] = SENTINEL_OWNERS; - ownerCount = _owners.length; - threshold = _threshold; - } - - // @dev Allows to add a new owner to the Safe and update the threshold at the same time. - // This can only be done via a Safe transaction. - // @param owner New owner address. - // @param _threshold New threshold. - function addOwnerWithThreshold(address owner, uint256 _threshold) public authorized { - // Owner address cannot be null. - require(owner != address(0) && owner != SENTINEL_OWNERS, "Invalid owner address provided"); - // No duplicate owners allowed. - require(owners[owner] == address(0), "Address is already an owner"); - owners[owner] = owners[SENTINEL_OWNERS]; - owners[SENTINEL_OWNERS] = owner; - ownerCount++; - emit AddedOwner(owner); - // Change threshold if threshold was changed. - if (threshold != _threshold) changeThreshold(_threshold); - } - - // @dev Allows to remove an owner from the Safe and update the threshold at the same time. - // This can only be done via a Safe transaction. - // @param prevOwner Owner that pointed to the owner to be removed in the linked list - // @param owner Owner address to be removed. - // @param _threshold New threshold. - function removeOwner( - address prevOwner, - address owner, - uint256 _threshold - ) public authorized { - // Only allow to remove an owner, if threshold can still be reached. - require(ownerCount - 1 >= _threshold, "New owner count needs to be larger than new threshold"); - // Validate owner address and check that it corresponds to owner index. - require(owner != address(0) && owner != SENTINEL_OWNERS, "Invalid owner address provided"); - require(owners[prevOwner] == owner, "Invalid prevOwner, owner pair provided"); - owners[prevOwner] = owners[owner]; - owners[owner] = address(0); - ownerCount--; - emit RemovedOwner(owner); - // Change threshold if threshold was changed. - if (threshold != _threshold) changeThreshold(_threshold); - } - - // @dev Allows to swap/replace an owner from the Safe with another address. - // This can only be done via a Safe transaction. - // @param prevOwner Owner that pointed to the owner to be replaced in the linked list - // @param oldOwner Owner address to be replaced. - // @param newOwner New owner address. - function swapOwner( - address prevOwner, - address oldOwner, - address newOwner - ) public authorized { - // Owner address cannot be null. - require(newOwner != address(0) && newOwner != SENTINEL_OWNERS, "Invalid owner address provided"); - // No duplicate owners allowed. - require(owners[newOwner] == address(0), "Address is already an owner"); - // Validate oldOwner address and check that it corresponds to owner index. - require(oldOwner != address(0) && oldOwner != SENTINEL_OWNERS, "Invalid owner address provided"); - require(owners[prevOwner] == oldOwner, "Invalid prevOwner, owner pair provided"); - owners[newOwner] = owners[oldOwner]; - owners[prevOwner] = newOwner; - owners[oldOwner] = address(0); - emit RemovedOwner(oldOwner); - emit AddedOwner(newOwner); - } - - // @dev Allows to update the number of required confirmations by Safe owners. - // This can only be done via a Safe transaction. - // @param _threshold New threshold. - function changeThreshold(uint256 _threshold) public authorized { - // Validate that threshold is smaller than number of owners. - require(_threshold <= ownerCount, "Threshold cannot exceed owner count"); - // There has to be at least one Safe owner. - require(_threshold >= 1, "Threshold needs to be greater than 0"); - threshold = _threshold; - emit ChangedThreshold(threshold); - } - - function getThreshold() public view returns (uint256) { - return threshold; - } - - function isOwner(address owner) public view returns (bool) { - return owner != SENTINEL_OWNERS && owners[owner] != address(0); - } - - // @dev Returns array of owners. - // @return Array of Safe owners. - function getOwners() public view returns (address[] memory) { - address[] memory array = new address[](ownerCount); - - // populate return array - uint256 index = 0; - address currentOwner = owners[SENTINEL_OWNERS]; - while (currentOwner != SENTINEL_OWNERS) { - array[index] = currentOwner; - currentOwner = owners[currentOwner]; - index++; - } - return array; - } -} - -// @title Fallback Manager - A contract that manages fallback calls made to this contract -// @author Richard Meissner - -contract FallbackManager is SelfAuthorized { - // keccak256("fallback_manager.handler.address") - bytes32 internal constant FALLBACK_HANDLER_STORAGE_SLOT = - 0x6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d5; - - function internalSetFallbackHandler(address handler) internal { - bytes32 slot = FALLBACK_HANDLER_STORAGE_SLOT; - // solium-disable-next-line security/no-inline-assembly - assembly { - sstore(slot, handler) - } - } - - // @dev Allows to add a contract to handle fallback calls. - // Only fallback calls without value and with data will be forwarded. - // This can only be done via a Safe transaction. - // @param handler contract to handle fallbacks calls. - function setFallbackHandler(address handler) public authorized { - internalSetFallbackHandler(handler); - } - - function() external payable { - // Only calls without value and with data will be forwarded - if (msg.value > 0 || msg.data.length == 0) { - return; - } - bytes32 slot = FALLBACK_HANDLER_STORAGE_SLOT; - address handler; - // solium-disable-next-line security/no-inline-assembly - assembly { - handler := sload(slot) - } - - if (handler != address(0)) { - // solium-disable-next-line security/no-inline-assembly - assembly { - calldatacopy(0, 0, calldatasize()) - let success := call(gas, handler, 0, 0, calldatasize(), 0, 0) - returndatacopy(0, 0, returndatasize()) - if eq(success, 0) { - revert(0, returndatasize()) - } - return(0, returndatasize()) - } - } - } -} - -// @title SignatureDecoder - Decodes signatures that a encoded as bytes -// @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) -// @author Richard Meissner - -contract SignatureDecoder { - // @dev Recovers address who signed the message - // @param messageHash operation ethereum signed message hash - // @param messageSignature message `txHash` signature - // @param pos which signature to read - function recoverKey( - bytes32 messageHash, - bytes memory messageSignature, - uint256 pos - ) internal pure returns (address) { - uint8 v; - bytes32 r; - bytes32 s; - (v, r, s) = signatureSplit(messageSignature, pos); - return ecrecover(messageHash, v, r, s); - } - - // @dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`. - // @notice Make sure to peform a bounds check for @param pos, to avoid out of bounds access on @param signatures - // @param pos which signature to read. A prior bounds check of this parameter should be performed, to avoid out of bounds access - // @param signatures concatenated rsv signatures - function signatureSplit(bytes memory signatures, uint256 pos) - internal - pure - returns ( - uint8 v, - bytes32 r, - bytes32 s - ) - { - // The signature format is a compact form of: - // {bytes32 r}{bytes32 s}{uint8 v} - // Compact means, uint8 is not padded to 32 bytes. - // solium-disable-next-line security/no-inline-assembly - assembly { - let signaturePos := mul(0x41, pos) - r := mload(add(signatures, add(signaturePos, 0x20))) - s := mload(add(signatures, add(signaturePos, 0x40))) - // Here we are loading the last 32 bytes, including 31 bytes - // of 's'. There is no 'mload8' to do this. - // - // 'byte' is not working due to the Solidity parser, so lets - // use the second best option, 'and' - v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff) - } - } -} - -contract ISignatureValidatorConstants { - // bytes4(keccak256("isValidSignature(bytes,bytes)") - bytes4 internal constant EIP1271_MAGIC_VALUE = 0x20c13b0b; -} - -contract ISignatureValidator is ISignatureValidatorConstants { - /** - * @dev Should return whether the signature provided is valid for the provided data - * @param _data Arbitrary length data signed on the behalf of address(this) - * @param _signature Signature byte array associated with _data - * - * MUST return the bytes4 magic value 0x20c13b0b when function passes. - * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) - * MUST allow external calls - */ - function isValidSignature(bytes memory _data, bytes memory _signature) public view returns (bytes4); -} - -/** - * @title SafeMath - * @dev Math operations with safety checks that revert on error - * TODO: remove once open zeppelin update to solc 0.5.0 - */ -library SafeMath { - /** - * @dev Multiplies two numbers, reverts on overflow. - */ - function mul(uint256 a, uint256 b) internal pure returns (uint256) { - // 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-solidity/pull/522 - if (a == 0) { - return 0; - } - - uint256 c = a * b; - require(c / a == b); - - return c; - } - - /** - * @dev Integer division of two numbers truncating the quotient, reverts on division by zero. - */ - function div(uint256 a, uint256 b) internal pure returns (uint256) { - require(b > 0); // Solidity only automatically asserts when dividing by 0 - uint256 c = a / b; - // assert(a == b * c + a % b); // There is no case in which this doesn't hold - - return c; - } - - /** - * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend). - */ - function sub(uint256 a, uint256 b) internal pure returns (uint256) { - require(b <= a); - uint256 c = a - b; - - return c; - } - - /** - * @dev Adds two numbers, reverts on overflow. - */ - function add(uint256 a, uint256 b) internal pure returns (uint256) { - uint256 c = a + b; - require(c >= a); - - return c; - } - - /** - * @dev Divides two numbers and returns the remainder (unsigned integer modulo), - * reverts when dividing by zero. - */ - function mod(uint256 a, uint256 b) internal pure returns (uint256) { - require(b != 0); - return a % b; - } -} - -// @title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191. -// @author Stefan George - -// @author Richard Meissner - -// @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment -contract GnosisSafe is - MasterCopy, - ModuleManager, - OwnerManager, - SignatureDecoder, - SecuredTokenTransfer, - ISignatureValidatorConstants, - FallbackManager -{ - using SafeMath for uint256; - - string public constant NAME = "Gnosis Safe"; - string public constant VERSION = "1.1.1"; - - //keccak256( - // "EIP712Domain(address verifyingContract)" - //); - bytes32 private constant DOMAIN_SEPARATOR_TYPEHASH = - 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749; - - //keccak256( - // "SafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 baseGas,uint256 gasPrice,address gasToken,address refundReceiver,uint256 nonce)" - //); - bytes32 private constant SAFE_TX_TYPEHASH = 0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8; - - //keccak256( - // "SafeMessage(bytes message)" - //); - bytes32 private constant SAFE_MSG_TYPEHASH = 0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca; - - event ApproveHash(bytes32 indexed approvedHash, address indexed owner); - event SignMsg(bytes32 indexed msgHash); - event ExecutionFailure(bytes32 txHash, uint256 payment); - event ExecutionSuccess(bytes32 txHash, uint256 payment); - - uint256 public nonce; - bytes32 public domainSeparator; - // Mapping to keep track of all message hashes that have been approve by ALL REQUIRED owners - mapping(bytes32 => uint256) public signedMessages; - // Mapping to keep track of all hashes (message or transaction) that have been approve by ANY owners - mapping(address => mapping(bytes32 => uint256)) public approvedHashes; - - // This constructor ensures that this contract can only be used as a master copy for Proxy contracts - constructor() public { - // By setting the threshold it is not possible to call setup anymore, - // so we create a Safe with 0 owners and threshold 1. - // This is an unusable Safe, perfect for the mastercopy - threshold = 1; - } - - // @dev Setup function sets initial storage of contract. - // @param _owners List of Safe owners. - // @param _threshold Number of required confirmations for a Safe transaction. - // @param to Contract address for optional delegate call. - // @param data Data payload for optional delegate call. - // @param fallbackHandler Handler for fallback calls to this contract - // @param paymentToken Token that should be used for the payment (0 is ETH) - // @param payment Value that should be paid - // @param paymentReceiver Adddress that should receive the payment (or 0 if tx.origin) - function setup( - address[] calldata _owners, - uint256 _threshold, - address to, - bytes calldata data, - address fallbackHandler, - address paymentToken, - uint256 payment, - address payable paymentReceiver - ) external { - require(domainSeparator == 0, "Domain Separator already set!"); - domainSeparator = keccak256(abi.encode(DOMAIN_SEPARATOR_TYPEHASH, this)); - setupOwners(_owners, _threshold); - if (fallbackHandler != address(0)) internalSetFallbackHandler(fallbackHandler); - // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules - setupModules(to, data); - - if (payment > 0) { - // To avoid running into issues with EIP-170 we reuse the handlePayment function (to avoid adjusting code of that has been verified we do not adjust the method itself) - // baseGas = 0, gasPrice = 1 and gas = payment => amount = (payment + 0) * 1 = payment - handlePayment(payment, 0, 1, paymentToken, paymentReceiver); - } - } - - // @dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction. - // Note: The fees are always transfered, even if the user transaction fails. - // @param to Destination address of Safe transaction. - // @param value Ether value of Safe transaction. - // @param data Data payload of Safe transaction. - // @param operation Operation type of Safe transaction. - // @param safeTxGas Gas that should be used for the Safe transaction. - // @param baseGas Gas costs for that are indipendent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund) - // @param gasPrice Gas price that should be used for the payment calculation. - // @param gasToken Token address (or 0 if ETH) that is used for the payment. - // @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin). - // @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v}) - function execTransaction( - address to, - uint256 value, - bytes calldata data, - Enum.Operation operation, - uint256 safeTxGas, - uint256 baseGas, - uint256 gasPrice, - address gasToken, - address payable refundReceiver, - bytes calldata signatures - ) external returns (bool success) { - bytes32 txHash; - // Use scope here to limit variable lifetime and prevent `stack too deep` errors - { - bytes memory txHashData = encodeTransactionData( - to, - value, - data, - operation, // Transaction info - safeTxGas, - baseGas, - gasPrice, - gasToken, - refundReceiver, // Payment info - nonce - ); - // Increase nonce and execute transaction. - nonce++; - txHash = keccak256(txHashData); - checkSignatures(txHash, txHashData, signatures, true); - } - require(gasleft() >= safeTxGas, "Not enough gas to execute safe transaction"); - // Use scope here to limit variable lifetime and prevent `stack too deep` errors - { - uint256 gasUsed = gasleft(); - // If no safeTxGas has been set and the gasPrice is 0 we assume that all available gas can be used - success = execute(to, value, data, operation, safeTxGas == 0 && gasPrice == 0 ? gasleft() : safeTxGas); - gasUsed = gasUsed.sub(gasleft()); - // We transfer the calculated tx costs to the tx.origin to avoid sending it to intermediate contracts that have made calls - uint256 payment = 0; - if (gasPrice > 0) { - payment = handlePayment(gasUsed, baseGas, gasPrice, gasToken, refundReceiver); - } - if (success) emit ExecutionSuccess(txHash, payment); - else emit ExecutionFailure(txHash, payment); - } - } - - function handlePayment( - uint256 gasUsed, - uint256 baseGas, - uint256 gasPrice, - address gasToken, - address payable refundReceiver - ) private returns (uint256 payment) { - // solium-disable-next-line security/no-tx-origin - address payable receiver = refundReceiver == address(0) ? tx.origin : refundReceiver; - if (gasToken == address(0)) { - // For ETH we will only adjust the gas price to not be higher than the actual used gas price - payment = gasUsed.add(baseGas).mul(gasPrice < tx.gasprice ? gasPrice : tx.gasprice); - // solium-disable-next-line security/no-send - require(receiver.send(payment), "Could not pay gas costs with ether"); - } else { - payment = gasUsed.add(baseGas).mul(gasPrice); - require(transferToken(gasToken, receiver, payment), "Could not pay gas costs with token"); - } - } - - /** - * @dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise. - * @param dataHash Hash of the data (could be either a message hash or transaction hash) - * @param data That should be signed (this is passed to an external validator contract) - * @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash. - * @param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas - */ - function checkSignatures( - bytes32 dataHash, - bytes memory data, - bytes memory signatures, - bool consumeHash - ) internal { - // Load threshold to avoid multiple storage loads - uint256 _threshold = threshold; - // Check that a threshold is set - require(_threshold > 0, "Threshold needs to be defined!"); - // Check that the provided signature data is not too short - require(signatures.length >= _threshold.mul(65), "Signatures data too short"); - // There cannot be an owner with address 0. - address lastOwner = address(0); - address currentOwner; - uint8 v; - bytes32 r; - bytes32 s; - uint256 i; - for (i = 0; i < _threshold; i++) { - (v, r, s) = signatureSplit(signatures, i); - // If v is 0 then it is a contract signature - if (v == 0) { - // When handling contract signatures the address of the contract is encoded into r - currentOwner = address(uint256(r)); - - // Check that signature data pointer (s) is not pointing inside the static part of the signatures bytes - // This check is not completely accurate, since it is possible that more signatures than the threshold are send. - // Here we only check that the pointer is not pointing inside the part that is being processed - require(uint256(s) >= _threshold.mul(65), "Invalid contract signature location: inside static part"); - - // Check that signature data pointer (s) is in bounds (points to the length of data -> 32 bytes) - require( - uint256(s).add(32) <= signatures.length, - "Invalid contract signature location: length not present" - ); - - // Check if the contract signature is in bounds: start of data is s + 32 and end is start + signature length - uint256 contractSignatureLen; - // solium-disable-next-line security/no-inline-assembly - assembly { - contractSignatureLen := mload(add(add(signatures, s), 0x20)) - } - require( - uint256(s).add(32).add(contractSignatureLen) <= signatures.length, - "Invalid contract signature location: data not complete" - ); - - // Check signature - bytes memory contractSignature; - // solium-disable-next-line security/no-inline-assembly - assembly { - // The signature data for contract signatures is appended to the concatenated signatures and the offset is stored in s - contractSignature := add(add(signatures, s), 0x20) - } - require( - ISignatureValidator(currentOwner).isValidSignature(data, contractSignature) == EIP1271_MAGIC_VALUE, - "Invalid contract signature provided" - ); - // If v is 1 then it is an approved hash - } else if (v == 1) { - // When handling approved hashes the address of the approver is encoded into r - currentOwner = address(uint256(r)); - // Hashes are automatically approved by the sender of the message or when they have been pre-approved via a separate transaction - require( - msg.sender == currentOwner || approvedHashes[currentOwner][dataHash] != 0, - "Hash has not been approved" - ); - // Hash has been marked for consumption. If this hash was pre-approved free storage - if (consumeHash && msg.sender != currentOwner) { - approvedHashes[currentOwner][dataHash] = 0; - } - } else if (v > 30) { - // To support eth_sign and similar we adjust v and hash the messageHash with the Ethereum message prefix before applying ecrecover - currentOwner = ecrecover( - keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", dataHash)), - v - 4, - r, - s - ); - } else { - // Use ecrecover with the messageHash for EOA signatures - currentOwner = ecrecover(dataHash, v, r, s); - } - require( - currentOwner > lastOwner && owners[currentOwner] != address(0) && currentOwner != SENTINEL_OWNERS, - "Invalid owner provided" - ); - lastOwner = currentOwner; - } - } - - // @dev Allows to estimate a Safe transaction. - // This method is only meant for estimation purpose, therefore two different protection mechanism against execution in a transaction have been made: - // 1.) The method can only be called from the safe itself - // 2.) The response is returned with a revert - // When estimating set `from` to the address of the safe. - // Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction` - // @param to Destination address of Safe transaction. - // @param value Ether value of Safe transaction. - // @param data Data payload of Safe transaction. - // @param operation Operation type of Safe transaction. - // @return Estimate without refunds and overhead fees (base transaction and payload data gas costs). - function requiredTxGas( - address to, - uint256 value, - bytes calldata data, - Enum.Operation operation - ) external authorized returns (uint256) { - uint256 startGas = gasleft(); - // We don't provide an error message here, as we use it to return the estimate - // solium-disable-next-line error-reason - require(execute(to, value, data, operation, gasleft())); - uint256 requiredGas = startGas - gasleft(); - // Convert response to string and return via error message - revert(string(abi.encodePacked(requiredGas))); - } - - /** - * @dev Marks a hash as approved. This can be used to validate a hash that is used by a signature. - * @param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract. - */ - function approveHash(bytes32 hashToApprove) external { - require(owners[msg.sender] != address(0), "Only owners can approve a hash"); - approvedHashes[msg.sender][hashToApprove] = 1; - emit ApproveHash(hashToApprove, msg.sender); - } - - /** - * @dev Marks a message as signed - * @param _data Arbitrary length data that should be marked as signed on the behalf of address(this) - */ - function signMessage(bytes calldata _data) external authorized { - bytes32 msgHash = getMessageHash(_data); - signedMessages[msgHash] = 1; - emit SignMsg(msgHash); - } - - /** - * Implementation of ISignatureValidator (see `interfaces/ISignatureValidator.sol`) - * @dev Should return whether the signature provided is valid for the provided data. - * The save does not implement the interface since `checkSignatures` is not a view method. - * The method will not perform any state changes (see parameters of `checkSignatures`) - * @param _data Arbitrary length data signed on the behalf of address(this) - * @param _signature Signature byte array associated with _data - * @return a bool upon valid or invalid signature with corresponding _data - */ - function isValidSignature(bytes calldata _data, bytes calldata _signature) external returns (bytes4) { - bytes32 messageHash = getMessageHash(_data); - if (_signature.length == 0) { - require(signedMessages[messageHash] != 0, "Hash not approved"); - } else { - // consumeHash needs to be false, as the state should not be changed - checkSignatures(messageHash, _data, _signature, false); - } - return EIP1271_MAGIC_VALUE; - } - - // @dev Returns hash of a message that can be signed by owners. - // @param message Message that should be hashed - // @return Message hash. - function getMessageHash(bytes memory message) public view returns (bytes32) { - bytes32 safeMessageHash = keccak256(abi.encode(SAFE_MSG_TYPEHASH, keccak256(message))); - return keccak256(abi.encodePacked(bytes1(0x19), bytes1(0x01), domainSeparator, safeMessageHash)); - } - - // @dev Returns the bytes that are hashed to be signed by owners. - // @param to Destination address. - // @param value Ether value. - // @param data Data payload. - // @param operation Operation type. - // @param safeTxGas Fas that should be used for the safe transaction. - // @param baseGas Gas costs for data used to trigger the safe transaction. - // @param gasPrice Maximum gas price that should be used for this transaction. - // @param gasToken Token address (or 0 if ETH) that is used for the payment. - // @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin). - // @param _nonce Transaction nonce. - // @return Transaction hash bytes. - function encodeTransactionData( - address to, - uint256 value, - bytes memory data, - Enum.Operation operation, - uint256 safeTxGas, - uint256 baseGas, - uint256 gasPrice, - address gasToken, - address refundReceiver, - uint256 _nonce - ) public view returns (bytes memory) { - bytes32 safeTxHash = keccak256( - abi.encode( - SAFE_TX_TYPEHASH, - to, - value, - keccak256(data), - operation, - safeTxGas, - baseGas, - gasPrice, - gasToken, - refundReceiver, - _nonce - ) - ); - return abi.encodePacked(bytes1(0x19), bytes1(0x01), domainSeparator, safeTxHash); - } - - // @dev Returns hash to be signed by owners. - // @param to Destination address. - // @param value Ether value. - // @param data Data payload. - // @param operation Operation type. - // @param safeTxGas Fas that should be used for the safe transaction. - // @param baseGas Gas costs for data used to trigger the safe transaction. - // @param gasPrice Maximum gas price that should be used for this transaction. - // @param gasToken Token address (or 0 if ETH) that is used for the payment. - // @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin). - // @param _nonce Transaction nonce. - // @return Transaction hash. - function getTransactionHash( - address to, - uint256 value, - bytes memory data, - Enum.Operation operation, - uint256 safeTxGas, - uint256 baseGas, - uint256 gasPrice, - address gasToken, - address refundReceiver, - uint256 _nonce - ) public view returns (bytes32) { - return - keccak256( - encodeTransactionData( - to, - value, - data, - operation, - safeTxGas, - baseGas, - gasPrice, - gasToken, - refundReceiver, - _nonce - ) - ); - } -} diff --git a/contracts/utils/PermissionRegistry.sol b/contracts/utils/PermissionRegistry.sol index e7e40459..baaea226 100644 --- a/contracts/utils/PermissionRegistry.sol +++ b/contracts/utils/PermissionRegistry.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/contracts/utils/RealMath.sol b/contracts/utils/RealMath.sol index a5566803..00291f6e 100644 --- a/contracts/utils/RealMath.sol +++ b/contracts/utils/RealMath.sol @@ -1,84 +1,83 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; - -/** - * RealMath: fixed-point math library, based on fractional and integer parts. - * Using uint256 as real216x40, which isn't in Solidity yet. - * Internally uses the wider uint256 for some math. - * - * Note that for addition, subtraction, and mod (%), you should just use the - * built-in Solidity operators. Functions for these operations are not provided. - * - */ - -library RealMath { - /** - * How many total bits are there? - */ - uint256 private constant REAL_BITS = 256; - - /** - * How many fractional bits are there? - */ - uint256 private constant REAL_FBITS = 40; - - /** - * What's the first non-fractional bit - */ - uint256 private constant REAL_ONE = uint256(1) << REAL_FBITS; - - /** - * Raise a real number to any positive integer power - */ - function pow(uint256 realBase, uint256 exponent) internal pure returns (uint256) { - uint256 tempRealBase = realBase; - uint256 tempExponent = exponent; - - // Start with the 0th power - uint256 realResult = REAL_ONE; - while (tempExponent != 0) { - // While there are still bits set - if ((tempExponent & 0x1) == 0x1) { - // If the low bit is set, multiply in the (many-times-squared) base - realResult = mul(realResult, tempRealBase); - } - // Shift off the low bit - tempExponent = tempExponent >> 1; - if (tempExponent != 0) { - // Do the squaring - tempRealBase = mul(tempRealBase, tempRealBase); - } - } - - // Return the final result. - return realResult; - } - - /** - * Create a real from a rational fraction. - */ - function fraction(uint216 numerator, uint216 denominator) internal pure returns (uint256) { - return div(uint256(numerator) * REAL_ONE, uint256(denominator) * REAL_ONE); - } - - /** - * Multiply one real by another. Truncates overflows. - */ - function mul(uint256 realA, uint256 realB) private pure returns (uint256) { - // When multiplying fixed point in x.y and z.w formats we get (x+z).(y+w) format. - // So we just have to clip off the extra REAL_FBITS fractional bits. - uint256 res = realA * realB; - require(res / realA == realB, "RealMath mul overflow"); - return (res >> REAL_FBITS); - } - - /** - * Divide one real by another real. Truncates overflows. - */ - function div(uint256 realNumerator, uint256 realDenominator) private pure returns (uint256) { - // We use the reverse of the multiplication trick: convert numerator from - // x.y to (x+z).(y+w) fixed point, then divide by denom in z.w fixed point. - return uint256((uint256(realNumerator) * REAL_ONE) / uint256(realDenominator)); - } -} - +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; + +/** + * RealMath: fixed-point math library, based on fractional and integer parts. + * Using uint256 as real216x40, which isn't in Solidity yet. + * Internally uses the wider uint256 for some math. + * + * Note that for addition, subtraction, and mod (%), you should just use the + * built-in Solidity operators. Functions for these operations are not provided. + * + */ + +library RealMath { + /** + * How many total bits are there? + */ + uint256 private constant REAL_BITS = 256; + + /** + * How many fractional bits are there? + */ + uint256 private constant REAL_FBITS = 40; + + /** + * What's the first non-fractional bit + */ + uint256 private constant REAL_ONE = uint256(1) << REAL_FBITS; + + /** + * Raise a real number to any positive integer power + */ + function pow(uint256 realBase, uint256 exponent) internal pure returns (uint256) { + uint256 tempRealBase = realBase; + uint256 tempExponent = exponent; + + // Start with the 0th power + uint256 realResult = REAL_ONE; + while (tempExponent != 0) { + // While there are still bits set + if ((tempExponent & 0x1) == 0x1) { + // If the low bit is set, multiply in the (many-times-squared) base + realResult = mul(realResult, tempRealBase); + } + // Shift off the low bit + tempExponent = tempExponent >> 1; + if (tempExponent != 0) { + // Do the squaring + tempRealBase = mul(tempRealBase, tempRealBase); + } + } + + // Return the final result. + return realResult; + } + + /** + * Create a real from a rational fraction. + */ + function fraction(uint216 numerator, uint216 denominator) internal pure returns (uint256) { + return div(uint256(numerator) * REAL_ONE, uint256(denominator) * REAL_ONE); + } + + /** + * Multiply one real by another. Truncates overflows. + */ + function mul(uint256 realA, uint256 realB) private pure returns (uint256) { + // When multiplying fixed point in x.y and z.w formats we get (x+z).(y+w) format. + // So we just have to clip off the extra REAL_FBITS fractional bits. + uint256 res = realA * realB; + require(res / realA == realB, "RealMath mul overflow"); + return (res >> REAL_FBITS); + } + + /** + * Divide one real by another real. Truncates overflows. + */ + function div(uint256 realNumerator, uint256 realDenominator) private pure returns (uint256) { + // We use the reverse of the multiplication trick: convert numerator from + // x.y to (x+z).(y+w) fixed point, then divide by denom in z.w fixed point. + return uint256((uint256(realNumerator) * REAL_ONE) / uint256(realDenominator)); + } +} diff --git a/contracts/utils/TokenVault.sol b/contracts/utils/TokenVault.sol index 69dfaf6e..3a79cf41 100644 --- a/contracts/utils/TokenVault.sol +++ b/contracts/utils/TokenVault.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.8; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol"; diff --git a/contracts/utils/TokenVesting.sol b/contracts/utils/TokenVesting.sol new file mode 100644 index 00000000..b5022943 --- /dev/null +++ b/contracts/utils/TokenVesting.sol @@ -0,0 +1,181 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity ^0.8.17; + +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/math/SafeMath.sol"; + +/** + * @title TokenVesting + * @dev A token holder contract that can release its token balance gradually like a + * typical vesting scheme, with a cliff and vesting period. Optionally revocable by the + * owner. + */ +contract TokenVesting is Ownable { + // The vesting schedule is time-based (i.e. using block timestamps as opposed to e.g. block numbers), and is + // therefore sensitive to timestamp manipulation (which is something miners can do, to a certain degree). Therefore, + // it is recommended to avoid using short time durations (less than a minute). Typical vesting schemes, with a + // cliff period of a year and a duration of four years, are safe to use. + // solhint-disable not-rely-on-time + + using SafeMath for uint256; + using SafeERC20 for IERC20; + + event TokensReleased(address token, uint256 amount); + event TokenVestingRevoked(address token); + + // beneficiary of tokens after they are released + address private _beneficiary; + + // Durations and timestamps are expressed in UNIX time, the same units as block.timestamp. + uint256 private _cliff; + uint256 private _start; + uint256 private _duration; + + bool private _revocable; + + mapping(address => uint256) private _released; + mapping(address => bool) private _revoked; + + /** + * @dev Creates a vesting contract that vests its balance of any ERC20 token to the + * beneficiary, gradually in a linear fashion until start + duration. By then all + * of the balance will have vested. + * @param beneficiary address of the beneficiary to whom vested tokens are transferred + * @param cliffDuration duration in seconds of the cliff in which tokens will begin to vest + * @param start the time (as Unix time) at which point vesting starts + * @param duration duration in seconds of the period in which the tokens will vest + * @param revocable whether the vesting is revocable or not + */ + constructor( + address beneficiary, + uint256 start, + uint256 cliffDuration, + uint256 duration, + bool revocable + ) public { + require(beneficiary != address(0), "TokenVesting: beneficiary is the zero address"); + // solhint-disable-next-line max-line-length + require(cliffDuration <= duration, "TokenVesting: cliff is longer than duration"); + require(duration > 0, "TokenVesting: duration is 0"); + // solhint-disable-next-line max-line-length + require(start.add(duration) > block.timestamp, "TokenVesting: final time is before current time"); + + _beneficiary = beneficiary; + _revocable = revocable; + _duration = duration; + _cliff = start.add(cliffDuration); + _start = start; + } + + /** + * @return the beneficiary of the tokens. + */ + function beneficiary() public view returns (address) { + return _beneficiary; + } + + /** + * @return the cliff time of the token vesting. + */ + function cliff() public view returns (uint256) { + return _cliff; + } + + /** + * @return the start time of the token vesting. + */ + function start() public view returns (uint256) { + return _start; + } + + /** + * @return the duration of the token vesting. + */ + function duration() public view returns (uint256) { + return _duration; + } + + /** + * @return true if the vesting is revocable. + */ + function revocable() public view returns (bool) { + return _revocable; + } + + /** + * @return the amount of the token released. + */ + function released(address token) public view returns (uint256) { + return _released[token]; + } + + /** + * @return true if the token is revoked. + */ + function revoked(address token) public view returns (bool) { + return _revoked[token]; + } + + /** + * @notice Transfers vested tokens to beneficiary. + * @param token ERC20 token which is being vested + */ + function release(IERC20 token) public { + uint256 unreleased = _releasableAmount(token); + + require(unreleased > 0, "TokenVesting: no tokens are due"); + + _released[address(token)] = _released[address(token)].add(unreleased); + + token.safeTransfer(_beneficiary, unreleased); + + emit TokensReleased(address(token), unreleased); + } + + /** + * @notice Allows the owner to revoke the vesting. Tokens already vested + * remain in the contract, the rest are returned to the owner. + * @param token ERC20 token which is being vested + */ + function revoke(IERC20 token) public onlyOwner { + require(_revocable, "TokenVesting: cannot revoke"); + require(!_revoked[address(token)], "TokenVesting: token already revoked"); + + uint256 balance = token.balanceOf(address(this)); + + uint256 unreleased = _releasableAmount(token); + uint256 refund = balance.sub(unreleased); + + _revoked[address(token)] = true; + + token.safeTransfer(owner(), refund); + + emit TokenVestingRevoked(address(token)); + } + + /** + * @dev Calculates the amount that has already vested but hasn't been released yet. + * @param token ERC20 token which is being vested + */ + function _releasableAmount(IERC20 token) private view returns (uint256) { + return _vestedAmount(token).sub(_released[address(token)]); + } + + /** + * @dev Calculates the amount that has already vested. + * @param token ERC20 token which is being vested + */ + function _vestedAmount(IERC20 token) private view returns (uint256) { + uint256 currentBalance = token.balanceOf(address(this)); + uint256 totalBalance = currentBalance.add(_released[address(token)]); + + if (block.timestamp < _cliff) { + return 0; + } else if (block.timestamp >= _start.add(_duration) || _revoked[address(token)]) { + return totalBalance; + } else { + return totalBalance.mul(block.timestamp.sub(_start)).div(_duration); + } + } +} diff --git a/hardhat.config.js b/hardhat.config.js index 80bed4f1..ebbdecdc 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -131,44 +131,9 @@ module.exports = { solidity: { compilers: [ { - version: "0.4.25", - settings: { - optimizer: { - enabled: true, - runs: 200, - }, - }, - }, - { - version: "0.5.17", - settings: { - optimizer: { - enabled: true, - runs: 200, - }, - }, - }, - { - version: "0.6.8", - settings: { - optimizer: { - enabled: true, - runs: 200, - }, - }, - }, - { - version: "0.7.6", - settings: { - optimizer: { - enabled: true, - runs: 200, - }, - }, - }, - { - version: "0.8.8", + version: "0.8.17", settings: { + viaIR: true, optimizer: { enabled: true, runs: 200, @@ -179,17 +144,6 @@ module.exports = { }, }, ], - overrides: { - "contracts/utils/GnosisSafe/GnosisProxy.sol": { version: "0.5.14" }, - "contracts/utils/GnosisSafe/GnosisSafe.sol": { version: "0.5.14" }, - "contracts/utils/Create2Deployer.sol": { - version: "0.5.17", - evmVersion: "istanbul", - optimizer: { enabled: false, runs: 200 }, - }, - "contracts/omen/OMNToken.sol": { version: "0.8.8" }, - "contracts/erc20guild/IERC20Guild.sol": { version: "0.8.8" }, - }, }, gasReporter: { enabled: process.env.REPORT_GAS ? true : false, diff --git a/package.json b/package.json index de38194f..44caece6 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@nomiclabs/buidler": "^1.4.8", "@nomiclabs/hardhat-ethers": "^2.0.2", "@nomiclabs/hardhat-etherscan": "^2.1.1", - "@nomiclabs/hardhat-truffle5": "^2.0.0", + "@nomiclabs/hardhat-truffle5": "^2.0.7", "@nomiclabs/hardhat-web3": "^2.0.0", "@openzeppelin/contract-loader": "^0.6.1", "@openzeppelin/hardhat-upgrades": "^1.6.0", @@ -53,7 +53,7 @@ "eslint-plugin-standard": "^3.0.1", "ethereumjs-abi": "^0.6.5", "ethers": "^5.1.0", - "hardhat": "^2.6.8", + "hardhat": "^2.11.2", "hardhat-contract-sizer": "^2.5.1", "hardhat-dependency-compiler": "^1.1.1", "hardhat-gas-reporter": "^1.0.4", @@ -90,10 +90,10 @@ "ipfs-core": "^0.14.1", "math": "0.0.3", "moment": "^2.27.0", - "openzeppelin-solidity": "2.4.0", "prettier": "^2.0.5", "prettier-plugin-solidity": "^1.0.0-beta.19", - "truffle-flattener": "^1.4.4" + "truffle-flattener": "^1.4.4", + "web3": "^1.8.0" }, "peerDependencies": { "ganache-cli": "^6.4.1" diff --git a/scripts/deploymentTemplates/dxvote-develop.js b/scripts/deploymentTemplates/dxvote-develop.js index f6d87aa5..2ffcf460 100644 --- a/scripts/deploymentTemplates/dxvote-develop.js +++ b/scripts/deploymentTemplates/dxvote-develop.js @@ -2,16 +2,12 @@ require("@nomiclabs/hardhat-web3"); const moment = require("moment"); const { NULL_SIGNATURE } = require("../../test/helpers/constants"); const NULL_ADDRESS = "0x0000000000000000000000000000000000000000"; -const ANY_ADDRESS = "0xaAaAaAaaAaAaAaaAaAAAAAAAAaaaAaAaAaaAaaAa"; -const ANY_FUNC_SIGNATURE = "0xaaaaaaaa"; task("deploy-dxvote-develop", "Deploy dxvote with develop config").setAction( async () => { const PermissionRegistry = await hre.artifacts.require( "PermissionRegistry" ); - const ERC20Guild = await hre.artifacts.require("ERC20Guild"); - const accounts = await web3.eth.getAccounts(); const deployconfig = { @@ -30,23 +26,10 @@ task("deploy-dxvote-develop", "Deploy dxvote with develop config").setAction( amount: 1000, }, ], - contributionReward: { - queuedVoteRequiredPercentage: 50, - queuedVotePeriodLimit: moment.duration(10, "minutes").asSeconds(), - boostedVotePeriodLimit: moment.duration(3, "minutes").asSeconds(), - preBoostedVotePeriodLimit: moment.duration(1, "minutes").asSeconds(), - thresholdConst: 2000, - quietEndingPeriod: moment.duration(0.5, "minutes").asSeconds(), - proposingRepReward: 10, - votersReputationLossRatio: 100, - minimumDaoBounty: web3.utils.toWei("1"), - daoBountyConst: 100, - }, walletSchemes: [ { name: "RegistrarWalletScheme", - doAvatarGenericCalls: true, maxSecondsForExecution: moment.duration(31, "days").asSeconds(), maxRepPercentageChange: 0, controllerPermissions: { @@ -71,7 +54,6 @@ task("deploy-dxvote-develop", "Deploy dxvote with develop config").setAction( }, { name: "MasterWalletScheme", - doAvatarGenericCalls: true, maxSecondsForExecution: moment.duration(31, "days").asSeconds(), maxRepPercentageChange: 40, controllerPermissions: { @@ -122,7 +104,6 @@ task("deploy-dxvote-develop", "Deploy dxvote with develop config").setAction( }, { name: "QuickWalletScheme", - doAvatarGenericCalls: false, maxSecondsForExecution: moment.duration(31, "days").asSeconds(), maxRepPercentageChange: 1, controllerPermissions: { diff --git a/scripts/utils/deploy-dao.js b/scripts/utils/deploy-dao.js index 4eaa7fd4..737c85da 100644 --- a/scripts/utils/deploy-dao.js +++ b/scripts/utils/deploy-dao.js @@ -6,17 +6,13 @@ const MAX_UINT_256 = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; const ANY_FUNC_SIGNATURE = "0xaaaaaaaa"; -const { encodePermission } = require("../../test/helpers/permissions"); - const { waitBlocks } = require("../utils/wait"); const deployDao = async function (daoConfig, networkContracts) { // Import contracts - const DxAvatar = await hre.artifacts.require("DXAvatar"); - const DxReputation = await hre.artifacts.require("DxReputation"); - const DxController = await hre.artifacts.require("DxController"); - const ContributionReward = await hre.artifacts.require("ContributionReward"); - const Redeemer = await hre.artifacts.require("Redeemer"); + const DAOAvatar = await hre.artifacts.require("DAOAvatar"); + const DAOReputation = await hre.artifacts.require("DAOReputation"); + const DAOController = await hre.artifacts.require("DAOController"); const WalletScheme = await hre.artifacts.require("WalletScheme"); const PermissionRegistry = await hre.artifacts.require("PermissionRegistry"); const DXDVotingMachine = await hre.artifacts.require("DXDVotingMachine"); @@ -47,8 +43,9 @@ const deployDao = async function (daoConfig, networkContracts) { // Deploy Reputation let reputation; - console.log("Deploying DxReputation..."); - reputation = await DxReputation.new(); + console.log("Deploying DAOReputation..."); + reputation = await DAOReputation.new(); + await reputation.initialize("DxDAO Reputation", "REP"); console.log("DX Reputation deployed to:", reputation.address); networkContracts.reputation = reputation.address; networkContracts.addresses["Reputation"] = reputation.address; @@ -61,12 +58,12 @@ const deployDao = async function (daoConfig, networkContracts) { // Deploy Avatar let avatar; console.log( - "Deploying DxAvatar...", + "Deploying DAOAvatar...", networkContracts.addresses["DXD"], reputation.address ); - avatar = await DxAvatar.new( - "DXdao", + avatar = await DAOAvatar.new(); + await avatar.initialize( networkContracts.addresses["DXD"], reputation.address ); @@ -78,8 +75,9 @@ const deployDao = async function (daoConfig, networkContracts) { // Deploy Controller and transfer avatar to controller let controller; - console.log("Deploying DxController..."); - controller = await DxController.new(avatar.address); + console.log("Deploying DAOController..."); + controller = await DAOController.new(avatar.address); + await controller.initialize(avatar.address); console.log("DXdao Controller deployed to:", controller.address); await avatar.transferOwnership(controller.address); await reputation.transferOwnership(controller.address); @@ -109,43 +107,29 @@ const deployDao = async function (daoConfig, networkContracts) { // Only allow the functions mintReputation, burnReputation, genericCall, registerScheme and unregisterScheme to be // called to in the controller contract from a scheme that calls the controller. // This permissions makes the other functions inaccessible - const notAllowedControllerFunctions = [ - controller.contract._jsonInterface.find( - method => method.name === "mintTokens" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "unregisterSelf" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "addGlobalConstraint" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "removeGlobalConstraint" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "upgradeController" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "sendEther" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "externalTokenTransfer" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "externalTokenTransferFrom" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "externalTokenApproval" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "metaData" - ).signature, - ]; - for (var i = 0; i < notAllowedControllerFunctions.length; i++) { + + const notAllowedControllerFunctionSignatures = [ + "mintTokens", + "unregisterSelf", + "addGlobalConstraint", + "removeGlobalConstraint", + "upgradeController", + "sendEther", + "externalTokenTransfer", + "externalTokenTransferFrom", + "externalTokenApproval", + "metaData", + ].map( + fnName => + controller.contract._jsonInterface.find(method => method.name === fnName) + .signature + ); + + for (let notAllowedFunctionSignature of notAllowedControllerFunctionSignatures) { await permissionRegistry.setETHPermission( avatar.address, controller.address, - notAllowedControllerFunctions[i], + notAllowedFunctionSignature, MAX_UINT_256, false ); @@ -164,114 +148,6 @@ const deployDao = async function (daoConfig, networkContracts) { networkContracts.addresses["PermissionRegistry"] = permissionRegistry.address; await waitBlocks(1); - // Deploy ContributionReward Scheme - console.log("Deploying ContributionReward scheme"); - const contributionReward = await ContributionReward.new(); - const redeemer = await Redeemer.new(); - - /* - The ContributionReward scheme was designed by DAOstack to be used as an universal scheme, - which means that index the voting params used in the voting machine hash by voting machine - So the voting parameters are set in the voting machine, and that voting parameters hash is - registered in the ContributionReward and then other voting parameter hash is calculated - for that voting machine and contribution reward, and that is the one used in the controller - */ - const contributionRewardParamsHash = await votingMachine.getParametersHash( - [ - daoConfig.contributionReward.queuedVoteRequiredPercentage.toString(), - daoConfig.contributionReward.queuedVotePeriodLimit.toString(), - daoConfig.contributionReward.boostedVotePeriodLimit.toString(), - daoConfig.contributionReward.preBoostedVotePeriodLimit.toString(), - daoConfig.contributionReward.thresholdConst.toString(), - daoConfig.contributionReward.quietEndingPeriod.toString(), - daoConfig.contributionReward.proposingRepReward.toString(), - daoConfig.contributionReward.votersReputationLossRatio.toString(), - daoConfig.contributionReward.minimumDaoBounty.toString(), - daoConfig.contributionReward.daoBountyConst.toString(), - 0, - ], - NULL_ADDRESS, - { from: accounts[0], gasPrice: 0 } - ); - await votingMachine.setParameters( - [ - daoConfig.contributionReward.queuedVoteRequiredPercentage.toString(), - daoConfig.contributionReward.queuedVotePeriodLimit.toString(), - daoConfig.contributionReward.boostedVotePeriodLimit.toString(), - daoConfig.contributionReward.preBoostedVotePeriodLimit.toString(), - daoConfig.contributionReward.thresholdConst.toString(), - daoConfig.contributionReward.quietEndingPeriod.toString(), - daoConfig.contributionReward.proposingRepReward.toString(), - daoConfig.contributionReward.votersReputationLossRatio.toString(), - daoConfig.contributionReward.minimumDaoBounty.toString(), - daoConfig.contributionReward.daoBountyConst.toString(), - 0, - ], - NULL_ADDRESS - ); - await contributionReward.setParameters( - contributionRewardParamsHash, - votingMachine.address - ); - const contributionRewardVotingmachineParamsHash = - await contributionReward.getParametersHash( - contributionRewardParamsHash, - votingMachine.address - ); - await controller.registerScheme( - contributionReward.address, - contributionRewardVotingmachineParamsHash, - encodePermission({ - canGenericCall: true, - canUpgrade: false, - canRegisterSchemes: false, - }), - avatar.address - ); - - networkContracts.daostack = { - [contributionReward.address]: { - contractToCall: controller.address, - creationLogEncoding: [ - [ - { - name: "_descriptionHash", - type: "string", - }, - { - name: "_reputationChange", - type: "int256", - }, - { - name: "_rewards", - type: "uint256[5]", - }, - { - name: "_externalToken", - type: "address", - }, - { - name: "_beneficiary", - type: "address", - }, - ], - ], - name: "ContributionReward", - newProposalTopics: [ - [ - "0xcbdcbf9aaeb1e9eff0f75d74e1c1e044bc87110164baec7d18d825b0450d97df", - "0x000000000000000000000000519b70055af55a007110b4ff99b0ea33071c720a", - ], - ], - redeemer: redeemer.address, - supported: true, - type: "ContributionReward", - voteParams: contributionRewardVotingmachineParamsHash, - votingMachine: votingMachine.address, - }, - }; - networkContracts.addresses["ContributionReward"] = contributionReward.address; - // Deploy Wallet Schemes for (var s = 0; s < daoConfig.walletSchemes.length; s++) { const schemeConfiguration = daoConfig.walletSchemes[s]; @@ -282,8 +158,7 @@ const deployDao = async function (daoConfig, networkContracts) { `${schemeConfiguration.name} deployed to: ${newScheme.address}` ); - /* This is simpler than the ContributionReward, just register the params in the - VotingMachine and use that ones for the schem registration */ + /* Register the params in the VotingMachine and use that ones for the schem registration */ let schemeParamsHash = await votingMachine.getParametersHash( [ schemeConfiguration.queuedVoteRequiredPercentage.toString(), @@ -324,7 +199,6 @@ const deployDao = async function (daoConfig, networkContracts) { await newScheme.initialize( avatar.address, votingMachine.address, - schemeConfiguration.doAvatarGenericCalls, controller.address, permissionRegistry.address, schemeConfiguration.name, @@ -342,9 +216,7 @@ const deployDao = async function (daoConfig, networkContracts) { if (permission.asset === NULL_ADDRESS) await permissionRegistry.setETHPermission( - schemeConfiguration.doAvatarGenericCalls - ? avatar.address - : newScheme.address, + newScheme.address, networkContracts.addresses[permission.to] || permission.to, permission.functionSignature, permission.value.toString(), @@ -394,7 +266,7 @@ const deployDao = async function (daoConfig, networkContracts) { await controller.registerScheme( newScheme.address, schemeParamsHash, - encodePermission(schemeConfiguration.controllerPermissions), + "0x0", avatar.address ); diff --git a/test/dxdao/DxAvatar.js b/test/dao/DAOAvatar.js similarity index 84% rename from test/dxdao/DxAvatar.js rename to test/dao/DAOAvatar.js index bce39550..8dbb2e89 100644 --- a/test/dxdao/DxAvatar.js +++ b/test/dao/DAOAvatar.js @@ -1,12 +1,13 @@ import * as helpers from "../helpers"; const { expectRevert, expectEvent } = require("@openzeppelin/test-helpers"); -const DxAvatar = artifacts.require("./DXAvatar.sol"); +const DAOAvatar = artifacts.require("./DAOAvatar.sol"); const BigNumber = require("bignumber.js"); -contract("DXAvatar", function (accounts) { +contract("DAOAvatar", function (accounts) { it("Should revert call", async function () { const owner = accounts[0]; - const avatar = await DxAvatar.new(); + + const avatar = await DAOAvatar.new(); await avatar.initialize(owner); const callData = helpers.testCallFrom(owner); @@ -22,7 +23,8 @@ contract("DXAvatar", function (accounts) { it("Should transferOwnership on initialize and execute call", async function () { const owner = accounts[1]; - const avatar = await DxAvatar.new(); + + const avatar = await DAOAvatar.new(); const transferOwnershipTx = await avatar.initialize(owner); await expectEvent(transferOwnershipTx.receipt, "OwnershipTransferred", { diff --git a/test/dao/dxdao.js b/test/dao/dxdao.js new file mode 100644 index 00000000..44776d34 --- /dev/null +++ b/test/dao/dxdao.js @@ -0,0 +1,267 @@ +import { expectRevert } from "@openzeppelin/test-helpers"; +import { assert } from "chai"; +import * as helpers from "../helpers"; +const moment = require("moment"); +const { time } = require("@openzeppelin/test-helpers"); + +const PermissionRegistry = artifacts.require("./PermissionRegistry.sol"); +const AvatarScheme = artifacts.require("./AvatarScheme.sol"); +const ERC20Mock = artifacts.require("./ERC20Mock.sol"); +const ERC721Factory = artifacts.require("./ERC721Factory.sol"); +const ERC20VestingFactory = artifacts.require("./ERC20VestingFactory.sol"); +const TokenVesting = artifacts.require("./TokenVesting.sol"); + +contract("DXdao", function (accounts) { + const constants = helpers.constants; + let dxDao, + proposalId, + masterAvatarScheme, + nftMinter, + vestingFactory, + votingMachineToken, + vestingStart; + + beforeEach(async function () { + votingMachineToken = await ERC20Mock.new("DXDao", "DXD", 1000, accounts[0]); + + dxDao = await helpers.deployDao({ + owner: accounts[0], + votingMachineToken: votingMachineToken.address, + repHolders: [ + { address: accounts[0], amount: 20 }, + { address: accounts[1], amount: 10 }, + { address: accounts[2], amount: 70 }, + ], + }); + + await web3.eth.sendTransaction({ + to: dxDao.avatar.address, + from: accounts[0], + value: 100, + }); + await votingMachineToken.transfer(dxDao.avatar.address, 500, { + from: accounts[0], + }); + + const defaultParamsHash = await helpers.setDefaultParameters( + dxDao.votingMachine + ); + + const permissionRegistry = await PermissionRegistry.new( + dxDao.avatar.address, + 10 + ); + await permissionRegistry.initialize(); + + masterAvatarScheme = await AvatarScheme.new(); + + await masterAvatarScheme.initialize( + dxDao.avatar.address, + dxDao.votingMachine.address, + dxDao.controller.address, + permissionRegistry.address, + "Master Scheme", + 86400, + 5 + ); + + await dxDao.controller.registerScheme( + masterAvatarScheme.address, + defaultParamsHash, + true, + true + ); + + nftMinter = await ERC721Factory.new("DXDAO NFT", "DXNFT", { + from: accounts[0], + }); + await nftMinter.transferOwnership(dxDao.avatar.address); + vestingFactory = await ERC20VestingFactory.new( + votingMachineToken.address, + dxDao.avatar.address + ); + + const approveToVestingFactoryData = web3.eth.abi.encodeFunctionCall( + votingMachineToken.abi.find(x => x.name === "approve"), + [vestingFactory.address, constants.MAX_UINT_256] + ); + vestingStart = moment().unix(); + + const createVestingData = web3.eth.abi.encodeFunctionCall( + vestingFactory.abi.find(x => x.name === "create"), + [ + accounts[3], + vestingStart, + moment.duration(1, "years").asSeconds(), + moment.duration(2, "years").asSeconds(), + 500, + ] + ); + + const mintNFTData = web3.eth.abi.encodeFunctionCall( + nftMinter.abi.find(x => x.name === "mint"), + [accounts[3], "tokenURIHere"] + ); + + await permissionRegistry.addERC20Limit( + dxDao.avatar.address, + votingMachineToken.address, + constants.MAX_UINT_256, + 0 + ); + + await permissionRegistry.setETHPermission( + dxDao.avatar.address, + votingMachineToken.address, + approveToVestingFactoryData.substring(0, 10), + 0, + true + ); + + await permissionRegistry.setETHPermission( + dxDao.avatar.address, + vestingFactory.address, + createVestingData.substring(0, 10), + 0, + true + ); + + await permissionRegistry.setETHPermission( + dxDao.avatar.address, + nftMinter.address, + mintNFTData.substring(0, 10), + 0, + true + ); + + await permissionRegistry.setETHPermission( + dxDao.avatar.address, + constants.NULL_ADDRESS, + constants.NULL_SIGNATURE, + 10, + true + ); + + await time.increase(30); + + const tx = await masterAvatarScheme.proposeCalls( + [ + votingMachineToken.address, + vestingFactory.address, + nftMinter.address, + accounts[3], + ], + [approveToVestingFactoryData, createVestingData, mintNFTData, "0x0"], + [0, 0, 0, 5], + 2, + constants.TEST_TITLE, + constants.SOME_HASH + ); + + proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); + + const activeProposals = await dxDao.controller.getActiveProposals(); + assert.equal(activeProposals[0].proposalId, proposalId); + assert.equal(activeProposals[0].scheme, masterAvatarScheme.address); + }); + + it.skip("Deploy DXvote", function (done) { + // TODO: See how this tests can be run in github CI, the use the setTimeout breaks the tests + if (!process.env.CI) hre.run("deploy-dxvote-develop").then(done); + else done(); + }); + + it("Wallet - execute proposeVote -option 0 - check action - with DXDVotingMachine", async function () { + assert.equal(await web3.eth.getBalance(dxDao.avatar.address), "100"); + + await expectRevert( + dxDao.votingMachine.vote(proposalId, 0, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }), + "wrong decision value" + ); + assert.equal(await web3.eth.getBalance(dxDao.avatar.address), "100"); + }); + + it("Wallet - execute proposeVote -option 2 - check action - with DXDVotingMachine", async function () { + assert.equal(await web3.eth.getBalance(dxDao.avatar.address), "100"); + + await dxDao.votingMachine.vote(proposalId, 2, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }); + + assert.equal( + (await masterAvatarScheme.getOrganizationProposal(proposalId)).state, + 2 + ); + const inactiveProposals = await dxDao.controller.getInactiveProposals(); + assert.equal(inactiveProposals[0].proposalId, proposalId); + assert.equal(inactiveProposals[0].scheme, masterAvatarScheme.address); + assert.deepEqual(await dxDao.controller.getActiveProposals(), []); + assert.equal(await web3.eth.getBalance(dxDao.avatar.address), "100"); + }); + + it("Wallet - execute proposeVote -option 1 - check action - with DXDVotingMachine", async function () { + assert.equal(await web3.eth.getBalance(dxDao.avatar.address), "100"); + + const executionProposalTx = await dxDao.votingMachine.vote( + proposalId, + 1, + 0, + constants.NULL_ADDRESS, + { + from: accounts[2], + } + ); + + assert.equal( + (await masterAvatarScheme.getOrganizationProposal(proposalId)).state, + 3 + ); + const inactiveProposals = await dxDao.controller.getInactiveProposals(); + assert.equal(inactiveProposals[0].proposalId, proposalId); + assert.equal(inactiveProposals[0].scheme, masterAvatarScheme.address); + assert.deepEqual(await dxDao.controller.getActiveProposals(), []); + assert.equal(await web3.eth.getBalance(dxDao.avatar.address), "95"); + + const executionTxEvents = helpers.logDecoder.decodeLogs( + executionProposalTx.receipt.rawLogs + ); + const vestingCreatedEvent = executionTxEvents.find( + event => + event.name === "VestingCreated" && + web3.utils.toChecksumAddress(event.address) === vestingFactory.address + ); + const nftMintedEvent = executionTxEvents.find( + event => + event.name === "Transfer" && + web3.utils.toChecksumAddress(event.address) === nftMinter.address + ); + const vestingContract = await TokenVesting.at( + vestingCreatedEvent.args.vestingContractAddress + ); + assert.equal( + await nftMinter.ownerOf(nftMintedEvent.args.tokenId), + accounts[3] + ); + assert.equal( + await nftMinter.tokenURI(nftMintedEvent.args.tokenId), + "tokenURIHere" + ); + assert.equal(await vestingContract.start(), vestingStart); + assert.equal( + (await vestingContract.cliff()).toNumber(), + vestingStart + moment.duration(1, "years").asSeconds() + ); + assert.equal( + (await vestingContract.duration()).toNumber(), + moment.duration(2, "years").asSeconds() + ); + assert.equal(await vestingContract.revocable(), true); + assert.equal(await vestingContract.beneficiary(), accounts[3]); + assert.equal( + await votingMachineToken.balanceOf(vestingContract.address), + 500 + ); + }); +}); diff --git a/test/dxvote/WalletScheme.js b/test/dao/schemes/WalletScheme.js similarity index 67% rename from test/dxvote/WalletScheme.js rename to test/dao/schemes/WalletScheme.js index 278d8e35..4d32f9fa 100644 --- a/test/dxvote/WalletScheme.js +++ b/test/dao/schemes/WalletScheme.js @@ -1,25 +1,25 @@ +import { ZERO_ADDRESS } from "@openzeppelin/test-helpers/src/constants"; import { assert } from "chai"; -import * as helpers from "../helpers"; -const { fixSignature } = require("../helpers/sign"); +import * as helpers from "../../helpers"; +const { fixSignature } = require("../../helpers/sign"); const { time, expectRevert } = require("@openzeppelin/test-helpers"); +const AvatarScheme = artifacts.require("./AvatarScheme.sol"); const WalletScheme = artifacts.require("./WalletScheme.sol"); const PermissionRegistry = artifacts.require("./PermissionRegistry.sol"); const ERC20Mock = artifacts.require("./ERC20Mock.sol"); const ActionMock = artifacts.require("./ActionMock.sol"); -const Wallet = artifacts.require("./Wallet.sol"); -const GnosisProxy = artifacts.require("./GnosisProxy.sol"); -const GnosisSafe = artifacts.require("./GnosisSafe.sol"); contract("WalletScheme", function (accounts) { let standardTokenMock, permissionRegistry, - registrarWalletScheme, - masterWalletScheme, - quickWalletScheme, + registrarScheme, + avatarScheme, + walletScheme, org, actionMock, votingMachine, + defaultParamsHash, testToken; const constants = helpers.constants; @@ -27,38 +27,30 @@ contract("WalletScheme", function (accounts) { beforeEach(async function () { actionMock = await ActionMock.new(); - testToken = await ERC20Mock.new(accounts[1], 1000, "", "", "18"); - standardTokenMock = await ERC20Mock.new(accounts[1], 1000, "", "", "18"); - org = await helpers.setupOrganization( - [accounts[0], accounts[1], accounts[2]], - [1000, 1000, 1000], - [20000, 10000, 70000] - ); - votingMachine = await helpers.setUpVotingMachine( - standardTokenMock.address, - "dxd", - constants.NULL_ADDRESS, // voteOnBehalf - 50, // queuedVoteRequiredPercentage - 172800, // queuedVotePeriodLimit - 86400, // boostedVotePeriodLimit - 3600, // preBoostedVotePeriodLimit - 2000, // thresholdConst - 0, // quietEndingPeriod - 0, // proposingRepReward - 0, // votersReputationLossRatio - 15, // minimumDaoBounty - 10, // daoBountyConst - 0 // activationTime + testToken = await ERC20Mock.new("", "", 1000, accounts[1]); + standardTokenMock = await ERC20Mock.new("", "", 1000, accounts[1]); + + org = await helpers.deployDao({ + owner: accounts[0], + votingMachineToken: standardTokenMock.address, + repHolders: [ + { address: accounts[0], amount: 20000 }, + { address: accounts[1], amount: 10000 }, + { address: accounts[2], amount: 70000 }, + ], + }); + + const defaultParamsHash = await helpers.setDefaultParameters( + org.votingMachine ); permissionRegistry = await PermissionRegistry.new(accounts[0], 30); await permissionRegistry.initialize(); - registrarWalletScheme = await WalletScheme.new(); - await registrarWalletScheme.initialize( + registrarScheme = await WalletScheme.new(); + await registrarScheme.initialize( org.avatar.address, - votingMachine.address, - true, + org.votingMachine.address, org.controller.address, permissionRegistry.address, "Wallet Scheme Registrar", @@ -66,11 +58,10 @@ contract("WalletScheme", function (accounts) { 0 ); - masterWalletScheme = await WalletScheme.new(); - await masterWalletScheme.initialize( + avatarScheme = await AvatarScheme.new(); + await avatarScheme.initialize( org.avatar.address, - votingMachine.address, - true, + org.votingMachine.address, org.controller.address, permissionRegistry.address, "Master Wallet", @@ -78,11 +69,10 @@ contract("WalletScheme", function (accounts) { 5 ); - quickWalletScheme = await WalletScheme.new(); - await quickWalletScheme.initialize( + walletScheme = await WalletScheme.new(); + await walletScheme.initialize( org.avatar.address, - votingMachine.address, - false, + org.votingMachine.address, org.controller.address, permissionRegistry.address, "Quick Wallet", @@ -99,29 +89,34 @@ contract("WalletScheme", function (accounts) { ); await permissionRegistry.setETHPermission( - quickWalletScheme.address, - constants.NULL_ADDRESS, - constants.NULL_SIGNATURE, - constants.MAX_UINT_256, + registrarScheme.address, + org.controller.address, + web3.eth.abi.encodeFunctionSignature( + "registerScheme(address,bytes32,bool,bool)" + ), + 0, true ); - // Only allow genericCall, mintReputation, burnReputation, registerScheme and removeScheme - // functions to be called in the controller by Wallet Schemes - await helpers.setDefaultControllerPermissions( - permissionRegistry, - org.avatar.address, - org.controller + await permissionRegistry.setETHPermission( + registrarScheme.address, + org.controller.address, + web3.eth.abi.encodeFunctionSignature("unregisterScheme(address)"), + 0, + true ); - await helpers.setDefaultControllerPermissions( - permissionRegistry, - quickWalletScheme.address, - org.controller + + await permissionRegistry.setETHPermission( + walletScheme.address, + constants.NULL_ADDRESS, + constants.NULL_SIGNATURE, + constants.MAX_UINT_256, + true ); await permissionRegistry.setETHPermission( org.avatar.address, - registrarWalletScheme.address, + registrarScheme.address, web3.eth.abi.encodeFunctionSignature( "setMaxSecondsForExecution(uint256)" ), @@ -130,7 +125,7 @@ contract("WalletScheme", function (accounts) { ); await permissionRegistry.setETHPermission( org.avatar.address, - masterWalletScheme.address, + avatarScheme.address, web3.eth.abi.encodeFunctionSignature( "setMaxSecondsForExecution(uint256)" ), @@ -139,7 +134,7 @@ contract("WalletScheme", function (accounts) { ); await permissionRegistry.setETHPermission( org.avatar.address, - quickWalletScheme.address, + walletScheme.address, web3.eth.abi.encodeFunctionSignature( "setMaxSecondsForExecution(uint256)" ), @@ -153,6 +148,7 @@ contract("WalletScheme", function (accounts) { 0, true ); + await permissionRegistry.setETHPermission( org.avatar.address, actionMock.address, @@ -181,7 +177,7 @@ contract("WalletScheme", function (accounts) { true ); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, actionMock.address, web3.eth.abi.encodeFunctionSignature( "testWithoutReturnValue(address,uint256)" @@ -190,14 +186,14 @@ contract("WalletScheme", function (accounts) { true ); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, actionMock.address, web3.eth.abi.encodeFunctionSignature("test(address,uint256)"), 0, true ); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, actionMock.address, web3.eth.abi.encodeFunctionSignature( "executeCall(address,bytes,uint256)" @@ -208,39 +204,27 @@ contract("WalletScheme", function (accounts) { await time.increase(30); - await org.daoCreator.setSchemes( - org.avatar.address, - [ - registrarWalletScheme.address, - masterWalletScheme.address, - quickWalletScheme.address, - ], - [votingMachine.params, votingMachine.params, votingMachine.params], - [ - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: true, - canChangeConstraints: true, - canRegisterSchemes: true, - }), - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: false, - canChangeConstraints: false, - canRegisterSchemes: false, - }), - helpers.encodePermission({ - canGenericCall: false, - canUpgrade: false, - canChangeConstraints: false, - canRegisterSchemes: false, - }), - ], - "metaData" + await org.controller.registerScheme( + registrarScheme.address, + defaultParamsHash, + true, + false + ); + await org.controller.registerScheme( + avatarScheme.address, + defaultParamsHash, + false, + true + ); + await org.controller.registerScheme( + walletScheme.address, + defaultParamsHash, + false, + false ); }); - it("Registrar Wallet Scheme", async function () { + it("Registrar Scheme", async function () { await web3.eth.sendTransaction({ from: accounts[0], to: org.avatar.address, @@ -250,509 +234,237 @@ contract("WalletScheme", function (accounts) { const newWalletScheme = await WalletScheme.new(); await newWalletScheme.initialize( org.avatar.address, - votingMachine.address, - false, + org.votingMachine.address, org.controller.address, permissionRegistry.address, - "New Wallet", + "New Wallet Scheme", executionTimeout, 0 ); - // Check that calls to controller that were set as not allowed are not executable in schemes that calls the - // controller - const callsToController = [ - await org.controller.contract.methods - .mintTokens(1, accounts[5], org.avatar.address) - .encodeABI(), - await org.controller.contract.methods - .unregisterSelf(org.avatar.address) - .encodeABI(), - await org.controller.contract.methods - .addGlobalConstraint( - accounts[5], - constants.SOME_HASH, - org.avatar.address - ) - .encodeABI(), - await org.controller.contract.methods - .removeGlobalConstraint(accounts[5], org.avatar.address) - .encodeABI(), - await org.controller.contract.methods - .upgradeController(accounts[5], org.avatar.address) - .encodeABI(), - await org.controller.contract.methods - .sendEther(1, accounts[5], org.avatar.address) - .encodeABI(), - await org.controller.contract.methods - .externalTokenTransfer( - standardTokenMock.address, - accounts[5], - 1, - org.avatar.address - ) - .encodeABI(), - await org.controller.contract.methods - .externalTokenTransferFrom( - standardTokenMock.address, - org.avatar.address, - accounts[5], - 1, - org.avatar.address - ) - .encodeABI(), - await org.controller.contract.methods - .externalTokenApproval( - standardTokenMock.address, - accounts[5], - 1, - org.avatar.address - ) - .encodeABI(), - await org.controller.contract.methods - .metaData("test", org.avatar.address) - .encodeABI(), - ]; - await Promise.all( - callsToController.map(async callToControllerData => { - const callToControllerProposal = await helpers.getValueFromLogs( - await registrarWalletScheme.proposeCalls( - [org.controller.address], - [callToControllerData], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ), - "_proposalId" - ); - await expectRevert.unspecified( - votingMachine.contract.vote( - callToControllerProposal, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ) - ); - }) - ); - await Promise.all( - callsToController.map(async callToControllerData => { - const callToControllerProposal = await helpers.getValueFromLogs( - await masterWalletScheme.proposeCalls( - [org.controller.address], - [callToControllerData], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ), - "_proposalId" - ); - await expectRevert.unspecified( - votingMachine.contract.vote( - callToControllerProposal, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ) - ); - }) - ); - - const registerSchemeData = await org.controller.contract.methods - .registerScheme( - newWalletScheme.address, - votingMachine.params, - helpers.encodePermission({ - canGenericCall: false, - canUpgrade: false, - canChangeConstraints: false, - canRegisterSchemes: false, - }), - org.avatar.address - ) - .encodeABI(); - - await votingMachine.contract.setParameters( + await org.votingMachine.setParameters( [60, 86400, 3600, 1800, 1050, 0, 60, 10, 15, 10, 0], constants.NULL_ADDRESS ); - const newVotingParamsHash = await votingMachine.contract.getParametersHash( + const newParamsHash = await org.votingMachine.getParametersHash( [60, 86400, 3600, 1800, 1050, 0, 60, 10, 15, 10, 0], constants.NULL_ADDRESS ); - const updateSchemeParamsData = await org.controller.contract.methods - .registerScheme( - masterWalletScheme.address, - newVotingParamsHash, - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: false, - canChangeConstraints: false, - canRegisterSchemes: false, - }), - org.avatar.address - ) - .encodeABI(); - - const unregisterSchemeData = await org.controller.contract.methods - .unregisterScheme(quickWalletScheme.address, org.avatar.address) - .encodeABI(); - - const proposalId1 = await helpers.getValueFromLogs( - await masterWalletScheme.proposeCalls( - [org.controller.address], - [registerSchemeData], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ), - "_proposalId" - ); - await expectRevert( - votingMachine.contract.vote(proposalId1, 1, 0, constants.NULL_ADDRESS, { - from: accounts[2], - }), - "call execution failed" + const registerSchemeData = web3.eth.abi.encodeFunctionCall( + org.controller.abi.find(x => x.name === "registerScheme"), + [newWalletScheme.address, defaultParamsHash, false, false] ); - const proposalId2 = await helpers.getValueFromLogs( - await masterWalletScheme.proposeCalls( - [org.controller.address], - [unregisterSchemeData], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ), - "_proposalId" - ); - await expectRevert( - votingMachine.contract.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { - from: accounts[2], - }), - "call execution failed" + const updateSchemeParamsData = web3.eth.abi.encodeFunctionCall( + org.controller.abi.find(x => x.name === "registerScheme"), + [avatarScheme.address, newParamsHash, false, true] ); - const proposalId3 = await helpers.getValueFromLogs( - await registrarWalletScheme.proposeCalls( - [org.controller.address], - [registerSchemeData], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ), - "_proposalId" - ); - await votingMachine.contract.vote( - proposalId3, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } + const unregisterSchemeData = web3.eth.abi.encodeFunctionCall( + org.controller.abi.find(x => x.name === "unregisterScheme"), + [walletScheme.address] ); - const proposalId4 = await helpers.getValueFromLogs( - await registrarWalletScheme.proposeCalls( - [org.controller.address], - [unregisterSchemeData], - [0], + const proposalId1 = await helpers.getValueFromLogs( + await registrarScheme.proposeCalls( + [ + org.controller.address, + org.controller.address, + org.controller.address, + ], + [registerSchemeData, updateSchemeParamsData, unregisterSchemeData], + [0, 0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), "_proposalId" ); - await votingMachine.contract.vote( - proposalId4, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); + await org.votingMachine.vote(proposalId1, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }); - const proposalId5 = await helpers.getValueFromLogs( - await registrarWalletScheme.proposeCalls( - [org.controller.address], - [updateSchemeParamsData], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ), - "_proposalId" + const organizationProposal1 = await registrarScheme.getOrganizationProposal( + proposalId1 ); - await votingMachine.contract.vote( - proposalId5, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - - const organizationProposal1 = - await registrarWalletScheme.getOrganizationProposal(proposalId3); assert.equal( organizationProposal1.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); - assert.equal(organizationProposal1.callData[0], registerSchemeData); - assert.equal(organizationProposal1.to[0], org.controller.address); - assert.equal(organizationProposal1.value[0], 0); + assert.deepEqual(organizationProposal1.to, [ + org.controller.address, + org.controller.address, + org.controller.address, + ]); + assert.deepEqual(organizationProposal1.callData, [ + registerSchemeData, + updateSchemeParamsData, + unregisterSchemeData, + ]); + // assert.deepEqual(organizationProposal1.value, ["0", "0", "0"]); - const organizationProposal2 = - await registrarWalletScheme.getOrganizationProposal(proposalId4); assert.equal( - organizationProposal2.state, - constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd + await org.controller.isSchemeRegistered(newWalletScheme.address), + true ); - assert.equal(organizationProposal2.callData[0], unregisterSchemeData); - assert.equal(organizationProposal2.to[0], org.controller.address); - assert.equal(organizationProposal2.value[0], 0); - - const organizationProposal3 = - await registrarWalletScheme.getOrganizationProposal(proposalId5); assert.equal( - organizationProposal3.state, - constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd + await org.controller.getSchemeParameters(newWalletScheme.address), + defaultParamsHash ); - assert.equal(organizationProposal3.callData[0], updateSchemeParamsData); - assert.equal(organizationProposal3.to[0], org.controller.address); - assert.equal(organizationProposal3.value[0], 0); - assert.equal( - await org.controller.isSchemeRegistered( - newWalletScheme.address, - org.avatar.address - ), - true - ); - assert.equal( - await org.controller.getSchemeParameters( - newWalletScheme.address, - org.avatar.address - ), - votingMachine.params + await org.controller.getSchemeCanManageSchemes(newWalletScheme.address), + false ); assert.equal( - await org.controller.getSchemePermissions( - newWalletScheme.address, - org.avatar.address - ), - helpers.encodePermission({ - canGenericCall: false, - canUpgrade: false, - canChangeConstraints: false, - canRegisterSchemes: false, - }) + await org.controller.getSchemeCanMakeAvatarCalls(newWalletScheme.address), + false ); + assert.equal( - await org.controller.isSchemeRegistered( - quickWalletScheme.address, - org.avatar.address - ), + await org.controller.isSchemeRegistered(walletScheme.address), false ); assert.equal( - await org.controller.getSchemeParameters( - quickWalletScheme.address, - org.avatar.address - ), + await org.controller.getSchemeParameters(walletScheme.address), "0x0000000000000000000000000000000000000000000000000000000000000000" ); assert.equal( - await org.controller.getSchemePermissions( - quickWalletScheme.address, - org.avatar.address - ), - "0x00000000" + await org.controller.getSchemeCanManageSchemes(walletScheme.address), + false ); assert.equal( - await org.controller.getSchemePermissions( - masterWalletScheme.address, - org.avatar.address - ), - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: false, - canChangeConstraints: false, - canRegisterSchemes: false, - }) + await org.controller.getSchemeCanMakeAvatarCalls(walletScheme.address), + false ); + assert.equal( - await org.controller.isSchemeRegistered( - masterWalletScheme.address, - org.avatar.address - ), + await org.controller.isSchemeRegistered(avatarScheme.address), true ); assert.equal( - await org.controller.getSchemeParameters( - masterWalletScheme.address, - org.avatar.address - ), - newVotingParamsHash + await org.controller.getSchemeParameters(avatarScheme.address), + newParamsHash ); - - // Test that the masterWalletScheme now will submit proposals with new voting configuration - const submitProposalTx = await masterWalletScheme.proposeCalls( - [accounts[1]], - ["0x00"], - [1], - constants.TEST_TITLE, - constants.SOME_HASH + assert.equal( + await org.controller.getSchemeCanManageSchemes(avatarScheme.address), + false ); assert.equal( - helpers.logDecoder.decodeLogs(submitProposalTx.receipt.rawLogs)[0].args - ._paramsHash, - newVotingParamsHash + await org.controller.getSchemeCanMakeAvatarCalls(avatarScheme.address), + true ); }); it("MasterWalletScheme - setMaxSecondsForExecution is callable only form the avatar", async function () { expectRevert( - masterWalletScheme.setMaxSecondsForExecution(executionTimeout + 666), + avatarScheme.setMaxSecondsForExecution(executionTimeout + 666), "setMaxSecondsForExecution is callable only form the avatar" ); - assert.equal( - await masterWalletScheme.maxSecondsForExecution(), - executionTimeout - ); + assert.equal(await avatarScheme.maxSecondsForExecution(), executionTimeout); }); it("MasterWalletScheme - proposal to change max proposal time - positive decision - proposal executed", async () => { - const setMaxSecondsForExecutionData = web3.eth.abi.encodeFunctionCall( - { - name: "setMaxSecondsForExecution", - type: "function", - inputs: [ - { - type: "uint256", - name: "_maxSecondsForExecution", - }, - ], - }, - [executionTimeout + 666] + const callData = helpers.encodeMaxSecondsForExecution( + executionTimeout + 666 ); expectRevert( - masterWalletScheme.proposeCalls( - [masterWalletScheme.address], - [setMaxSecondsForExecutionData], - [1], + avatarScheme.proposeCalls( + [avatarScheme.address, ZERO_ADDRESS], + [callData, "0x0"], + [1, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), "invalid proposal caller" ); - const tx = await masterWalletScheme.proposeCalls( - [masterWalletScheme.address], - [setMaxSecondsForExecutionData], - [0], + const tx = await avatarScheme.proposeCalls( + [avatarScheme.address, ZERO_ADDRESS], + [callData, "0x0"], + [0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); const proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); - await votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); + await org.votingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }); + + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); - assert.equal( - organizationProposal.callData[0], - setMaxSecondsForExecutionData - ); - assert.equal(organizationProposal.to[0], masterWalletScheme.address); + assert.equal(organizationProposal.callData[0], callData); + assert.equal(organizationProposal.to[0], avatarScheme.address); assert.equal(organizationProposal.value[0], 0); assert.equal( - await masterWalletScheme.maxSecondsForExecution(), + await avatarScheme.maxSecondsForExecution(), executionTimeout + 666 ); }); // eslint-disable-next-line max-len it("MasterWalletScheme - proposal to change max proposal time fails- positive decision - proposal fails", async () => { - const setMaxSecondsForExecutionData = web3.eth.abi.encodeFunctionCall( - { - name: "setMaxSecondsForExecution", - type: "function", - inputs: [ - { - type: "uint256", - name: "_maxSecondsForExecution", - }, - ], - }, - [86400 - 1] - ); + const callData = helpers.encodeMaxSecondsForExecution(86400 - 1); expectRevert( - masterWalletScheme.proposeCalls( - [masterWalletScheme.address], - [setMaxSecondsForExecutionData], - [1], + avatarScheme.proposeCalls( + [avatarScheme.address, ZERO_ADDRESS], + [callData, "0x0"], + [1, 0], constants.TEST_TITLE, constants.SOME_HASH ), "invalid proposal caller" ); - const tx = await masterWalletScheme.proposeCalls( - [masterWalletScheme.address], - [setMaxSecondsForExecutionData], - [0], + const tx = await avatarScheme.proposeCalls( + [avatarScheme.address, ZERO_ADDRESS], + [callData, "0x0"], + [0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); const proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); await expectRevert( - votingMachine.contract.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + org.votingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { from: accounts[2], }), - "call execution failed" + "Proposal call failed" ); await time.increase(executionTimeout); - await votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); + await org.votingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); - assert.equal( - organizationProposal.callData[0], - setMaxSecondsForExecutionData - ); + assert.equal(organizationProposal.callData[0], callData); assert.equal(organizationProposal.to[0], masterWalletScheme.address); assert.equal(organizationProposal.value[0], 0); - assert.equal( - await masterWalletScheme.maxSecondsForExecution(), - executionTimeout - ); + assert.equal(await avatarScheme.maxSecondsForExecution(), executionTimeout); }); it("MasterWalletScheme - proposal with data or value to wallet scheme address fail", async function () { expectRevert( - masterWalletScheme.proposeCalls( - [masterWalletScheme.address], + avatarScheme.proposeCalls( + [avatarScheme.address], ["0x00000000"], [1], constants.TEST_TITLE, @@ -761,8 +473,8 @@ contract("WalletScheme", function (accounts) { "invalid proposal caller" ); expectRevert( - masterWalletScheme.proposeCalls( - [masterWalletScheme.address], + avatarScheme.proposeCalls( + [avatarScheme.address], ["0x00000000"], [1], constants.TEST_TITLE, @@ -771,14 +483,14 @@ contract("WalletScheme", function (accounts) { "invalid proposal caller" ); - assert.equal(await masterWalletScheme.getOrganizationProposalsLength(), 0); + assert.equal(await avatarScheme.getOrganizationProposalsLength(), 0); }); it("MasterWalletScheme - proposing proposal with different length of to and value fail", async function () { const callData = helpers.testCallFrom(org.avatar.address); expectRevert( - masterWalletScheme.proposeCalls( + avatarScheme.proposeCalls( [actionMock.address], [callData], [0, 0], @@ -788,7 +500,7 @@ contract("WalletScheme", function (accounts) { "invalid _value length" ); expectRevert( - masterWalletScheme.proposeCalls( + avatarScheme.proposeCalls( [actionMock.address], [callData, callData], [0], @@ -798,17 +510,14 @@ contract("WalletScheme", function (accounts) { "invalid _callData length" ); - assert.equal(await masterWalletScheme.getOrganizationProposalsLength(), 0); - assert.equal( - (await masterWalletScheme.getOrganizationProposals()).length, - 0 - ); + assert.equal(await avatarScheme.getOrganizationProposalsLength(), 0); + assert.equal((await avatarScheme.getOrganizationProposals()).length, 0); }); it("MasterWalletScheme - proposal with data - negative decision - proposal rejected", async function () { const callData = helpers.testCallFrom(org.avatar.address); - let tx = await masterWalletScheme.proposeCalls( + let tx = await avatarScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -826,8 +535,9 @@ contract("WalletScheme", function (accounts) { const stateChangeEvent = helpers.getEventFromTx(tx, "ProposalStateChange"); assert.equal(stateChangeEvent.args._state, 2); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.rejected @@ -839,80 +549,47 @@ contract("WalletScheme", function (accounts) { assert.equal(organizationProposal.value[0], 0); }); - it("MasterWalletScheme - proposal with value to gnosisSafe - positive decision - proposal executed", async () => { - await web3.eth.sendTransaction({ - from: accounts[0], - to: org.avatar.address, - value: 1000, - }); + it("MasterWalletScheme - proposal with data - positive decision - proposal executed", async function () { + const callData = helpers.encodeMaxSecondsForExecution( + executionTimeout + 666 + ); - var gnosisSafe = await GnosisSafe.new(); - var gnosisProxy = await GnosisProxy.new(gnosisSafe.address); - const tx = await masterWalletScheme.proposeCalls( - [gnosisProxy.address], - ["0x0"], - [666], + const tx = await avatarScheme.proposeCalls( + [avatarScheme.address, ZERO_ADDRESS], + [callData, "0x0"], + [0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); const proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); - await votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); - assert.equal( - organizationProposal.state, - constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd - ); - assert.equal(organizationProposal.callData[0], "0x00"); - assert.equal(organizationProposal.to[0], gnosisProxy.address); - assert.equal(organizationProposal.value[0], 666); - }); - it("MasterWalletScheme - proposal with data - positive decision - proposal executed", async function () { - const callData = helpers.testCallFrom(org.avatar.address); + await org.votingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }); - const tx = await masterWalletScheme.proposeCalls( - [actionMock.address], - [callData], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ); - const proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); - await votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId ); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); - assert.equal(organizationProposal.callData[0], callData); - assert.equal(organizationProposal.to[0], actionMock.address); + // assert.equal(organizationProposal.callData[0], callData); + assert.equal(organizationProposal.to[0], avatarScheme.address); assert.equal(organizationProposal.value[0], 0); }); it("MasterWalletScheme - proposal with data - positive decision - proposal executed", async function () { - const callData = helpers.testCallFrom(org.avatar.address); + const callData = helpers.encodeMaxSecondsForExecution(executionTimeout); const proposalId1 = helpers.getValueFromLogs( - await masterWalletScheme.proposeCalls( - [actionMock.address], - [callData], - [0], + await avatarScheme.proposeCalls( + [actionMock.address, ZERO_ADDRESS], + [callData, "0x0"], + [0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), @@ -920,8 +597,8 @@ contract("WalletScheme", function (accounts) { ); // Use signed votes to try to execute a proposal inside a proposal execution - const voteHash = await votingMachine.contract.hashVote( - votingMachine.address, + const voteHash = await org.votingMachine.hashVote( + org.votingMachine.address, proposalId1, accounts[2], 1, @@ -931,9 +608,9 @@ contract("WalletScheme", function (accounts) { await web3.eth.sign(voteHash, accounts[2]) ); - const executeSignedVoteData = await votingMachine.contract.contract.methods + const executeSignedVoteData = await org.votingMachine.contract.methods .executeSignedVote( - votingMachine.address, + org.votingMachine.address, proposalId1, accounts[2], 1, @@ -945,23 +622,24 @@ contract("WalletScheme", function (accounts) { const actionMockExecuteCallWithRequiredData = await actionMock.contract.methods .executeCallWithRequiredSuccess( - masterWalletScheme.address, + avatarScheme.address, executeSignedVoteData, 0 ) .encodeABI(); const actionMockExecuteCallData = await actionMock.contract.methods - .executeCall(masterWalletScheme.address, executeSignedVoteData, 0) + .executeCall(avatarScheme.address, executeSignedVoteData, 0) .encodeABI(); // It wont allow submitting a proposal to call the wallet scheme itself, the scheme itself is only callable to call // setMaxSecondsForExecution function. await expectRevert( - masterWalletScheme.proposeCalls( - [masterWalletScheme.address], - [executeSignedVoteData], - [0], + avatarScheme.proposeCalls( + [avatarScheme.address, ZERO_ADDRESS], + [executeSignedVoteData, "0x0"], + [0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), @@ -972,10 +650,11 @@ contract("WalletScheme", function (accounts) { // of a proposal when another is on the way, the revert will happen in the voting action when the proposal is // executed const proposalId2 = await helpers.getValueFromLogs( - await masterWalletScheme.proposeCalls( - [actionMock.address], - [actionMockExecuteCallWithRequiredData], - [0], + await avatarScheme.proposeCalls( + [actionMock.address, ZERO_ADDRESS], + [actionMockExecuteCallWithRequiredData, "0x0"], + [0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), @@ -983,19 +662,19 @@ contract("WalletScheme", function (accounts) { ); await expectRevert( - votingMachine.contract.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { + org.votingMachine.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { from: accounts[2], }), "call execution failed" ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId1)).state, + (await avatarScheme.getOrganizationProposal(proposalId1)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId2)).state, + (await avatarScheme.getOrganizationProposal(proposalId2)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -1003,7 +682,7 @@ contract("WalletScheme", function (accounts) { // The proposal trying to execute propoposalId1 will success but proposal1 wont be exeucted sucessfuly, it will // still be submitted state. const proposalId3 = await helpers.getValueFromLogs( - await masterWalletScheme.proposeCalls( + await avatarScheme.proposeCalls( [actionMock.address], [actionMockExecuteCallData], [0], @@ -1021,12 +700,12 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId1)).state, + (await avatarScheme.getOrganizationProposal(proposalId1)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId3)).state, + (await avatarScheme.getOrganizationProposal(proposalId3)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); }); @@ -1042,7 +721,7 @@ contract("WalletScheme", function (accounts) { const callData = helpers.testCallFrom(org.avatar.address); - const tx = await masterWalletScheme.proposeCalls( + const tx = await avatarScheme.proposeCalls( [accounts[1]], [callData], [0], @@ -1058,7 +737,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -1073,7 +752,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); }); @@ -1097,7 +776,7 @@ contract("WalletScheme", function (accounts) { await permissionRegistry.setETHPermission( org.avatar.address, - masterWalletScheme.address, + avatarScheme.address, constants.NULL_SIGNATURE, 100, true @@ -1105,7 +784,7 @@ contract("WalletScheme", function (accounts) { const callData = helpers.testCallFrom(org.avatar.address); - const tx = await masterWalletScheme.proposeCalls( + const tx = await avatarScheme.proposeCalls( [actionMock.address], [callData], [101], @@ -1121,7 +800,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -1136,7 +815,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); }); @@ -1159,7 +838,7 @@ contract("WalletScheme", function (accounts) { const callData = helpers.testCallFrom(org.avatar.address); - const tx = await masterWalletScheme.proposeCalls( + const tx = await avatarScheme.proposeCalls( [actionMock.address, actionMock.address], [callData, callData], [50, 3], @@ -1175,7 +854,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -1190,7 +869,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); }); @@ -1233,7 +912,7 @@ contract("WalletScheme", function (accounts) { await time.increase(1); // Proposal to allow calling actionMock - const tx = await masterWalletScheme.proposeCalls( + const tx = await avatarScheme.proposeCalls( [permissionRegistry.address], [setPermissionData], [0], @@ -1264,7 +943,7 @@ contract("WalletScheme", function (accounts) { await time.increase(1); - const tx2 = await masterWalletScheme.proposeCalls( + const tx2 = await avatarScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -1280,8 +959,9 @@ contract("WalletScheme", function (accounts) { { from: accounts[2] } ); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId2); + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId2 + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1322,7 +1002,7 @@ contract("WalletScheme", function (accounts) { await time.increase(30); - const tx = await masterWalletScheme.proposeCalls( + const tx = await avatarScheme.proposeCalls( [wallet.address, wallet.address], ["0x0", payCallData], [constants.TEST_VALUE, 0], @@ -1351,8 +1031,9 @@ contract("WalletScheme", function (accounts) { Number(balanceBeforePay) + constants.TEST_VALUE ); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1368,7 +1049,7 @@ contract("WalletScheme", function (accounts) { it("MasterWalletScheme - positive decision - proposal execute and show revert in return", async function () { const callData = helpers.testCallFrom(constants.NULL_ADDRESS); - let tx = await masterWalletScheme.proposeCalls( + let tx = await avatarScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -1385,7 +1066,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -1400,7 +1081,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); }); @@ -1408,7 +1089,7 @@ contract("WalletScheme", function (accounts) { it("MasterWalletScheme - positive decision - proposal executed without return value", async function () { const callData = helpers.testCallWithoutReturnValueFrom(org.avatar.address); - let tx = await masterWalletScheme.proposeCalls( + let tx = await avatarScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -1431,8 +1112,9 @@ contract("WalletScheme", function (accounts) { assert.equal(returnValue["0"], true); assert.equal(returnValue["1"], null); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1450,7 +1132,7 @@ contract("WalletScheme", function (accounts) { .burnReputation(constants.TEST_VALUE, accounts[4], org.avatar.address) .encodeABI(); - var tx = await masterWalletScheme.proposeCalls( + var tx = await avatarScheme.proposeCalls( [org.controller.address], [callDataMintRep], [0], @@ -1458,7 +1140,7 @@ contract("WalletScheme", function (accounts) { constants.NULL_HASH ); const proposalIdMintRep = await helpers.getValueFromLogs(tx, "_proposalId"); - tx = await masterWalletScheme.proposeCalls( + tx = await avatarScheme.proposeCalls( [org.controller.address], [callDataBurnRep], [0], @@ -1490,8 +1172,9 @@ contract("WalletScheme", function (accounts) { ); assert.equal(await org.reputation.balanceOf(accounts[4]), 0); - const mintRepProposal = - await masterWalletScheme.getOrganizationProposalByIndex(0); + const mintRepProposal = await avatarScheme.getOrganizationProposalByIndex( + 0 + ); assert.equal( mintRepProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1500,8 +1183,9 @@ contract("WalletScheme", function (accounts) { assert.equal(mintRepProposal.to[0], org.controller.address); assert.equal(mintRepProposal.value[0], 0); - const burnRepProposal = - await masterWalletScheme.getOrganizationProposalByIndex(1); + const burnRepProposal = await avatarScheme.getOrganizationProposalByIndex( + 1 + ); assert.equal( burnRepProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1523,7 +1207,7 @@ contract("WalletScheme", function (accounts) { const data1 = await org.controller.contract.methods .mintReputation(maxRepAmountToChange, accounts[4], org.avatar.address) .encodeABI(); - var tx = await masterWalletScheme.proposeCalls( + var tx = await avatarScheme.proposeCalls( [org.controller.address], [data0], [0], @@ -1535,7 +1219,7 @@ contract("WalletScheme", function (accounts) { "_proposalId" ); - tx = await masterWalletScheme.proposeCalls( + tx = await avatarScheme.proposeCalls( [org.controller.address], [data1], [0], @@ -1569,16 +1253,12 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - ( - await masterWalletScheme.getOrganizationProposal( - proposalIdMintRepToFail - ) - ).state, + (await avatarScheme.getOrganizationProposal(proposalIdMintRepToFail)) + .state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalIdMintRep)) - .state, + (await avatarScheme.getOrganizationProposal(proposalIdMintRep)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); }); @@ -1598,7 +1278,7 @@ contract("WalletScheme", function (accounts) { const data1 = await org.controller.contract.methods .burnReputation(maxRepAmountToChange, accounts[2], org.avatar.address) .encodeABI(); - var tx = await masterWalletScheme.proposeCalls( + var tx = await avatarScheme.proposeCalls( [org.controller.address], [data0], [0], @@ -1610,7 +1290,7 @@ contract("WalletScheme", function (accounts) { "_proposalId" ); - tx = await masterWalletScheme.proposeCalls( + tx = await avatarScheme.proposeCalls( [org.controller.address], [data1], [0], @@ -1645,16 +1325,12 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - ( - await masterWalletScheme.getOrganizationProposal( - proposalIdMintRepToFail - ) - ).state, + (await avatarScheme.getOrganizationProposal(proposalIdMintRepToFail)) + .state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalIdMintRep)) - .state, + (await avatarScheme.getOrganizationProposal(proposalIdMintRep)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); }); @@ -1670,9 +1346,9 @@ contract("WalletScheme", function (accounts) { ) .encodeABI(); const callDataRemoveScheme = await org.controller.contract.methods - .unregisterScheme(quickWalletScheme.address, org.avatar.address) + .unregisterScheme(walletScheme.address, org.avatar.address) .encodeABI(); - var tx = await masterWalletScheme.proposeCalls( + var tx = await avatarScheme.proposeCalls( [org.controller.address], [callDataRegisterScheme], [0], @@ -1683,7 +1359,7 @@ contract("WalletScheme", function (accounts) { tx, "_proposalId" ); - tx = await masterWalletScheme.proposeCalls( + tx = await avatarScheme.proposeCalls( [org.controller.address], [callDataRemoveScheme], [0], @@ -1726,16 +1402,14 @@ contract("WalletScheme", function (accounts) { "call execution failed" ); - const removedScheme = await org.controller.schemes( - quickWalletScheme.address - ); + const removedScheme = await org.controller.schemes(walletScheme.address); assert.equal(removedScheme.paramsHash, votingMachine.params); assert.equal(removedScheme.permissions, "0x00000001"); }); it("MasterWalletScheme - execute should fail if not passed/executed from votingMachine", async function () { const callData = helpers.testCallFrom(org.avatar.address); - var tx = await masterWalletScheme.proposeCalls( + var tx = await avatarScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -1744,8 +1418,9 @@ contract("WalletScheme", function (accounts) { ); const proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); await votingMachine.contract.execute(proposalId); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted @@ -1779,7 +1454,7 @@ contract("WalletScheme", function (accounts) { await time.increase(100); - const tx = await masterWalletScheme.proposeCalls( + const tx = await avatarScheme.proposeCalls( [wallet.address, wallet.address, org.controller.address], ["0x0", payCallData, callDataMintRep], [constants.TEST_VALUE, 0, 0], @@ -1813,8 +1488,9 @@ contract("WalletScheme", function (accounts) { constants.TEST_VALUE ); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1838,7 +1514,6 @@ contract("WalletScheme", function (accounts) { unitializedWalletScheme.initialize( org.avatar.address, accounts[0], - false, org.controller.address, permissionRegistry.address, "Master Wallet", @@ -1851,7 +1526,6 @@ contract("WalletScheme", function (accounts) { unitializedWalletScheme.initialize( constants.NULL_ADDRESS, accounts[0], - false, org.controller.address, permissionRegistry.address, "Master Wallet", @@ -1864,10 +1538,9 @@ contract("WalletScheme", function (accounts) { it("MasterWalletScheme - cannot initialize twice", async function () { await expectRevert( - masterWalletScheme.initialize( + avatarScheme.initialize( org.avatar.address, accounts[0], - false, org.controller.address, permissionRegistry.address, "Master Wallet", @@ -1882,7 +1555,7 @@ contract("WalletScheme", function (accounts) { await expectRevert( web3.eth.sendTransaction({ from: accounts[0], - to: masterWalletScheme.address, + to: avatarScheme.address, value: constants.TEST_VALUE, }), "Cant receive if it will make generic calls to avatar" @@ -1892,15 +1565,15 @@ contract("WalletScheme", function (accounts) { it("QuickWalletScheme can receive value in contract", async function () { await web3.eth.sendTransaction({ from: accounts[0], - to: quickWalletScheme.address, + to: walletScheme.address, value: constants.TEST_VALUE, }); }); it("QuickWalletScheme - proposal with data - negative decision - proposal rejected", async function () { - const callData = helpers.testCallFrom(quickWalletScheme.address); + const callData = helpers.testCallFrom(walletScheme.address); - let tx = await quickWalletScheme.proposeCalls( + let tx = await walletScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -1918,8 +1591,9 @@ contract("WalletScheme", function (accounts) { const stateChangeEvent = helpers.getEventFromTx(tx, "ProposalStateChange"); assert.equal(stateChangeEvent.args._state, 2); - const organizationProposal = - await quickWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await walletScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.rejected @@ -1930,9 +1604,9 @@ contract("WalletScheme", function (accounts) { }); it("QuickWalletScheme - proposal with data - positive decision - proposal executed", async function () { - const callData = helpers.testCallFrom(quickWalletScheme.address); + const callData = helpers.testCallFrom(walletScheme.address); - const tx = await quickWalletScheme.proposeCalls( + const tx = await walletScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -1948,8 +1622,9 @@ contract("WalletScheme", function (accounts) { { from: accounts[2] } ); - const organizationProposal = - await quickWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await walletScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1964,17 +1639,17 @@ contract("WalletScheme", function (accounts) { var wallet = await Wallet.new(); await web3.eth.sendTransaction({ from: accounts[0], - to: quickWalletScheme.address, + to: walletScheme.address, value: constants.TEST_VALUE, }); - await wallet.transferOwnership(quickWalletScheme.address); + await wallet.transferOwnership(walletScheme.address); const payCallData = await new web3.eth.Contract(wallet.abi).methods .pay(accounts[1]) .encodeABI(); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, wallet.address, payCallData.substring(0, 10), constants.TEST_VALUE, @@ -1982,7 +1657,7 @@ contract("WalletScheme", function (accounts) { ); await time.increase(100); - const tx = await quickWalletScheme.proposeCalls( + const tx = await walletScheme.proposeCalls( [wallet.address, wallet.address], ["0x0", payCallData], [constants.TEST_VALUE, 0], @@ -1992,7 +1667,7 @@ contract("WalletScheme", function (accounts) { true; const proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); assert.equal( - await web3.eth.getBalance(quickWalletScheme.address), + await web3.eth.getBalance(walletScheme.address), constants.TEST_VALUE ); assert.equal(await web3.eth.getBalance(wallet.address), 0); @@ -2004,15 +1679,16 @@ contract("WalletScheme", function (accounts) { constants.NULL_ADDRESS, { from: accounts[2] } ); - assert.equal(await web3.eth.getBalance(quickWalletScheme.address), 0); + assert.equal(await web3.eth.getBalance(walletScheme.address), 0); assert.equal(await web3.eth.getBalance(wallet.address), 0); assert.equal( await web3.eth.getBalance(accounts[1]), Number(balanceBeforePay) + constants.TEST_VALUE ); - const organizationProposal = - await quickWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await walletScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -2028,7 +1704,7 @@ contract("WalletScheme", function (accounts) { it("QuickWalletScheme - proposal with data - positive decision - proposal execution fail and timeout", async () => { const callData = helpers.testCallFrom(constants.NULL_ADDRESS); - let tx = await quickWalletScheme.proposeCalls( + let tx = await walletScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -2045,7 +1721,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await quickWalletScheme.getOrganizationProposal(proposalId)).state, + (await walletScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -2060,7 +1736,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await quickWalletScheme.getOrganizationProposal(proposalId)).state, + (await walletScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); }); @@ -2068,10 +1744,10 @@ contract("WalletScheme", function (accounts) { // eslint-disable-next-line max-len it("QuickWalletScheme - proposal with data - positive decision - proposal executed without return value", async function () { const callData = helpers.testCallWithoutReturnValueFrom( - quickWalletScheme.address + walletScheme.address ); - let tx = await quickWalletScheme.proposeCalls( + let tx = await walletScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -2091,8 +1767,9 @@ contract("WalletScheme", function (accounts) { const returnValues = executionEvent.args._callsDataResult[0]; assert.equal(returnValues, "0x"); - const organizationProposal = - await quickWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await walletScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -2110,7 +1787,7 @@ contract("WalletScheme", function (accounts) { .burnReputation(constants.TEST_VALUE, accounts[4], org.avatar.address) .encodeABI(); - var tx = await quickWalletScheme.proposeCalls( + var tx = await walletScheme.proposeCalls( [org.controller.address], [callDataMintRep], [0], @@ -2118,7 +1795,7 @@ contract("WalletScheme", function (accounts) { constants.NULL_HASH ); const proposalIdMintRep = await helpers.getValueFromLogs(tx, "_proposalId"); - tx = await quickWalletScheme.proposeCalls( + tx = await walletScheme.proposeCalls( [org.controller.address], [callDataBurnRep], [0], @@ -2154,7 +1831,7 @@ contract("WalletScheme", function (accounts) { // eslint-disable-next-line max-len it("QuickWalletScheme - proposals adding/removing schemes - should fail on registerScheme & removeScheme", async function () { await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, org.controller.address, web3.eth.abi.encodeFunctionSignature( "registerScheme(address,bytes32,bytes4,address)" @@ -2163,7 +1840,7 @@ contract("WalletScheme", function (accounts) { true ); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, org.controller.address, web3.eth.abi.encodeFunctionSignature("unregisterScheme(address,address)"), 0, @@ -2179,10 +1856,10 @@ contract("WalletScheme", function (accounts) { ) .encodeABI(); const callDataRemoveScheme = await org.controller.contract.methods - .unregisterScheme(masterWalletScheme.address, org.avatar.address) + .unregisterScheme(avatarScheme.address, org.avatar.address) .encodeABI(); - var tx = await quickWalletScheme.proposeCalls( + var tx = await walletScheme.proposeCalls( [org.controller.address], [callDataRegisterScheme], [0], @@ -2193,7 +1870,7 @@ contract("WalletScheme", function (accounts) { tx, "_proposalId" ); - tx = await quickWalletScheme.proposeCalls( + tx = await walletScheme.proposeCalls( [org.controller.address], [callDataRemoveScheme], [0], @@ -2217,8 +1894,7 @@ contract("WalletScheme", function (accounts) { "call execution failed" ); assert.equal( - (await quickWalletScheme.getOrganizationProposal(proposalIdAddScheme)) - .state, + (await walletScheme.getOrganizationProposal(proposalIdAddScheme)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -2241,14 +1917,12 @@ contract("WalletScheme", function (accounts) { "call execution failed" ); assert.equal( - (await quickWalletScheme.getOrganizationProposal(proposalIdRemoveScheme)) + (await walletScheme.getOrganizationProposal(proposalIdRemoveScheme)) .state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); - const removedScheme = await org.controller.schemes( - masterWalletScheme.address - ); + const removedScheme = await org.controller.schemes(avatarScheme.address); assert.equal(removedScheme.paramsHash, votingMachine.params); assert.equal(removedScheme.permissions, "0x00000011"); @@ -2261,8 +1935,7 @@ contract("WalletScheme", function (accounts) { { from: accounts[2] } ); assert.equal( - (await quickWalletScheme.getOrganizationProposal(proposalIdAddScheme)) - .state, + (await walletScheme.getOrganizationProposal(proposalIdAddScheme)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); @@ -2274,7 +1947,7 @@ contract("WalletScheme", function (accounts) { { from: accounts[2] } ); assert.equal( - (await quickWalletScheme.getOrganizationProposal(proposalIdRemoveScheme)) + (await walletScheme.getOrganizationProposal(proposalIdRemoveScheme)) .state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); @@ -2282,12 +1955,12 @@ contract("WalletScheme", function (accounts) { // eslint-disable-next-line max-len it("QuickWalletScheme - positive decision - proposal executed - allowed by permission registry from scheme", async function () { - const callData = helpers.testCallFrom(quickWalletScheme.address); + const callData = helpers.testCallFrom(walletScheme.address); assert.notEqual( ( await permissionRegistry.getETHPermission( - quickWalletScheme.address, + walletScheme.address, actionMock.address, callData.substring(0, 10) ) @@ -2296,7 +1969,7 @@ contract("WalletScheme", function (accounts) { ); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, actionMock.address, callData.substring(0, 10), 0, @@ -2306,7 +1979,7 @@ contract("WalletScheme", function (accounts) { assert.equal( ( await permissionRegistry.getETHPermission( - quickWalletScheme.address, + walletScheme.address, actionMock.address, callData.substring(0, 10) ) @@ -2318,7 +1991,7 @@ contract("WalletScheme", function (accounts) { PermissionRegistry.abi ).methods .setETHPermission( - quickWalletScheme.address, + walletScheme.address, actionMock.address, callData.substring(0, 10), constants.MAX_UINT_256, @@ -2329,7 +2002,7 @@ contract("WalletScheme", function (accounts) { await time.increase(1); // Proposal to allow calling actionMock - const tx = await quickWalletScheme.proposeCalls( + const tx = await walletScheme.proposeCalls( [permissionRegistry.address], [setPermissionData], [0], @@ -2349,7 +2022,7 @@ contract("WalletScheme", function (accounts) { assert.equal( ( await permissionRegistry.getETHPermission( - quickWalletScheme.address, + walletScheme.address, actionMock.address, callData.substring(0, 10) ) @@ -2359,7 +2032,7 @@ contract("WalletScheme", function (accounts) { await time.increase(1); - const tx2 = await quickWalletScheme.proposeCalls( + const tx2 = await walletScheme.proposeCalls( [actionMock.address], [callData], [0], @@ -2375,8 +2048,9 @@ contract("WalletScheme", function (accounts) { { from: accounts[2] } ); - const organizationProposal = - await quickWalletScheme.getOrganizationProposal(proposalId2); + const organizationProposal = await walletScheme.getOrganizationProposal( + proposalId2 + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -2390,10 +2064,10 @@ contract("WalletScheme", function (accounts) { var wallet = await Wallet.new(); await web3.eth.sendTransaction({ from: accounts[0], - to: quickWalletScheme.address, + to: walletScheme.address, value: 100000000, }); - await wallet.transferOwnership(quickWalletScheme.address); + await wallet.transferOwnership(walletScheme.address); const payCallData = await new web3.eth.Contract(wallet.abi).methods .pay(accounts[1]) @@ -2403,14 +2077,14 @@ contract("WalletScheme", function (accounts) { .encodeABI(); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, wallet.address, payCallData.substring(0, 10), constants.TEST_VALUE, true ); - let tx = await quickWalletScheme.proposeCalls( + let tx = await walletScheme.proposeCalls( [wallet.address, wallet.address, org.controller.address], ["0x0", payCallData, callDataMintRep], [constants.TEST_VALUE, 0, 0], @@ -2418,10 +2092,7 @@ contract("WalletScheme", function (accounts) { constants.SOME_HASH ); const proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); - assert.equal( - await web3.eth.getBalance(quickWalletScheme.address), - 100000000 - ); + assert.equal(await web3.eth.getBalance(walletScheme.address), 100000000); assert.equal(await web3.eth.getBalance(wallet.address), 0); assert.equal(await org.reputation.balanceOf(accounts[4]), 0); @@ -2455,8 +2126,9 @@ contract("WalletScheme", function (accounts) { constants.TEST_VALUE ); - const organizationProposal = - await quickWalletScheme.getOrganizationProposal(proposalId); + const organizationProposal = await walletScheme.getOrganizationProposal( + proposalId + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -2490,13 +2162,13 @@ contract("WalletScheme", function (accounts) { const addERC20LimitData = new web3.eth.Contract( PermissionRegistry.abi ).methods - .addERC20Limit(masterWalletScheme.address, testToken.address, 100, 0) + .addERC20Limit(avatarScheme.address, testToken.address, 100, 0) .encodeABI(); await time.increase(1); // Proposal to allow calling actionMock - const tx = await masterWalletScheme.proposeCalls( + const tx = await avatarScheme.proposeCalls( [permissionRegistry.address], [addERC20LimitData], [0], @@ -2513,7 +2185,7 @@ contract("WalletScheme", function (accounts) { ); const erc20TransferPermission = await permissionRegistry.getERC20Limit( - masterWalletScheme.address, + avatarScheme.address, testToken.address ); @@ -2526,7 +2198,7 @@ contract("WalletScheme", function (accounts) { .encodeABI(); assert.equal(await testToken.balanceOf(org.avatar.address), "200"); - const tx2 = await masterWalletScheme.proposeCalls( + const tx2 = await avatarScheme.proposeCalls( [testToken.address], [transferData], [0], @@ -2543,8 +2215,9 @@ contract("WalletScheme", function (accounts) { ); assert.equal(await testToken.balanceOf(org.avatar.address), "150"); - const organizationProposal = - await masterWalletScheme.getOrganizationProposal(proposalId2); + const organizationProposal = await avatarScheme.getOrganizationProposal( + proposalId2 + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -2584,7 +2257,7 @@ contract("WalletScheme", function (accounts) { .transfer(actionMock.address, "101") .encodeABI(); - const tx = await masterWalletScheme.proposeCalls( + const tx = await avatarScheme.proposeCalls( [testToken.address], [transferData], [0], @@ -2600,7 +2273,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -2614,26 +2287,26 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId)).state, + (await avatarScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); }); // eslint-disable-next-line max-len it("QuickWalletScheme - positive decision - proposal executed - not allowed ERC20 value by permission registry in multiple calls", async function () { - await testToken.transfer(quickWalletScheme.address, 200, { + await testToken.transfer(walletScheme.address, 200, { from: accounts[1], }); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, testToken.address, web3.eth.abi.encodeFunctionSignature("transfer(address,uint256)"), 0, true ); await permissionRegistry.addERC20Limit( - quickWalletScheme.address, + walletScheme.address, testToken.address, 100, 0 @@ -2641,7 +2314,7 @@ contract("WalletScheme", function (accounts) { assert.equal( await permissionRegistry.getERC20Limit( - quickWalletScheme.address, + walletScheme.address, testToken.address ), 100 @@ -2651,7 +2324,7 @@ contract("WalletScheme", function (accounts) { .transfer(actionMock.address, "101") .encodeABI(); - const tx = await quickWalletScheme.proposeCalls( + const tx = await walletScheme.proposeCalls( [testToken.address], [transferData], [0], @@ -2667,7 +2340,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await quickWalletScheme.getOrganizationProposal(proposalId)).state, + (await walletScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); @@ -2682,7 +2355,7 @@ contract("WalletScheme", function (accounts) { ); assert.equal( - (await quickWalletScheme.getOrganizationProposal(proposalId)).state, + (await walletScheme.getOrganizationProposal(proposalId)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionTimeout ); }); @@ -2701,7 +2374,7 @@ contract("WalletScheme", function (accounts) { .encodeABI(); await expectRevert( - masterWalletScheme.proposeCalls( + avatarScheme.proposeCalls( [testToken.address], [transferData], [1], @@ -2714,12 +2387,12 @@ contract("WalletScheme", function (accounts) { // eslint-disable-next-line max-len it("QuickWalletScheme - positive decision - proposal executed - ERC20 transfer allowed by permission registry from scheme", async function () { - await testToken.transfer(quickWalletScheme.address, 200, { + await testToken.transfer(walletScheme.address, 200, { from: accounts[1], }); await permissionRegistry.setETHPermission( - quickWalletScheme.address, + walletScheme.address, testToken.address, web3.eth.abi.encodeFunctionSignature("transfer(address,uint256)"), 0, @@ -2729,11 +2402,11 @@ contract("WalletScheme", function (accounts) { const addERC20LimitData = new web3.eth.Contract( PermissionRegistry.abi ).methods - .addERC20Limit(quickWalletScheme.address, testToken.address, 100, 0) + .addERC20Limit(walletScheme.address, testToken.address, 100, 0) .encodeABI(); // Proposal to allow calling actionMock - const tx = await quickWalletScheme.proposeCalls( + const tx = await walletScheme.proposeCalls( [permissionRegistry.address], [addERC20LimitData], [0], @@ -2751,7 +2424,7 @@ contract("WalletScheme", function (accounts) { assert.equal( await permissionRegistry.getERC20Limit( - quickWalletScheme.address, + walletScheme.address, testToken.address ), 100 @@ -2761,9 +2434,9 @@ contract("WalletScheme", function (accounts) { const transferData = await new web3.eth.Contract(testToken.abi).methods .transfer(actionMock.address, "50") .encodeABI(); - assert.equal(await testToken.balanceOf(quickWalletScheme.address), "200"); + assert.equal(await testToken.balanceOf(walletScheme.address), "200"); - const tx2 = await quickWalletScheme.proposeCalls( + const tx2 = await walletScheme.proposeCalls( [testToken.address], [transferData], [0], @@ -2779,10 +2452,11 @@ contract("WalletScheme", function (accounts) { constants.NULL_ADDRESS, { from: accounts[2] } ); - assert.equal(await testToken.balanceOf(quickWalletScheme.address), "150"); + assert.equal(await testToken.balanceOf(walletScheme.address), "150"); - const organizationProposal = - await quickWalletScheme.getOrganizationProposal(proposalId2); + const organizationProposal = await walletScheme.getOrganizationProposal( + proposalId2 + ); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd diff --git a/test/dxvote/DXDVotingMachine.js b/test/dao/votingMachines/DXDVotingMachine.js similarity index 55% rename from test/dxvote/DXDVotingMachine.js rename to test/dao/votingMachines/DXDVotingMachine.js index b194e0ec..0ce8740e 100644 --- a/test/dxvote/DXDVotingMachine.js +++ b/test/dao/votingMachines/DXDVotingMachine.js @@ -1,5 +1,6 @@ -import * as helpers from "../helpers"; -const { fixSignature } = require("../helpers/sign"); +import { web3 } from "@openzeppelin/test-helpers/src/setup"; +import * as helpers from "../../helpers"; +const { fixSignature } = require("../../helpers/sign"); const { BN, @@ -11,18 +12,17 @@ const { const PermissionRegistry = artifacts.require("./PermissionRegistry.sol"); const WalletScheme = artifacts.require("./WalletScheme.sol"); +const AvatarScheme = artifacts.require("./AvatarScheme.sol"); const ERC20Mock = artifacts.require("./ERC20Mock.sol"); const ActionMock = artifacts.require("./ActionMock.sol"); -const Wallet = artifacts.require("./Wallet.sol"); const DXDVotingMachine = artifacts.require("./DXDVotingMachine.sol"); contract("DXDVotingMachine", function (accounts) { let permissionRegistry, - expensiveVoteWalletScheme, - cheapVoteWalletScheme, + masterAvatarScheme, + registrarScheme, org, actionMock, - genVotingMachine, dxdVotingMachine, proposalId; @@ -30,63 +30,31 @@ contract("DXDVotingMachine", function (accounts) { const VOTE_GAS = 360000; const TOTAL_GAS_REFUND = VOTE_GAS * constants.GAS_PRICE; - function testCallFrom(address) { - return new web3.eth.Contract(ActionMock.abi).methods - .test(address, 1) - .encodeABI(); - } - beforeEach(async function () { actionMock = await ActionMock.new(); const standardTokenMock = await ERC20Mock.new( - accounts[1], - constants.MAX_UINT_256, "", "", - "18" + constants.MAX_UINT_256, + accounts[1] ); await standardTokenMock.transfer(accounts[0], 2000, { from: accounts[1] }); - org = await helpers.setupOrganization( - [accounts[0], accounts[1], accounts[2], accounts[3]], - [0, 0, 0, 0], - [10000, 10000, 10000, 70000] - ); - genVotingMachine = await helpers.setUpVotingMachine( - standardTokenMock.address, - "gen", - constants.NULL_ADDRESS - ); - await standardTokenMock.approve( - genVotingMachine.contract.address, - constants.MAX_UINT_256, - { - from: accounts[1], - } - ); + org = await helpers.deployDao({ + owner: accounts[0], + votingMachineToken: standardTokenMock.address, + repHolders: [ + { address: accounts[0], amount: 10000 }, + { address: accounts[1], amount: 10000 }, + { address: accounts[2], amount: 10000 }, + { address: accounts[3], amount: 70000 }, + ], + }); - await standardTokenMock.approve( - genVotingMachine.contract.address, - constants.MAX_UINT_256, - { - from: accounts[0], - } - ); + dxdVotingMachine = org.votingMachine; await standardTokenMock.approve( - genVotingMachine.contract.address, - constants.MAX_UINT_256, - { - from: accounts[2], - } - ); - dxdVotingMachine = await helpers.setUpVotingMachine( - standardTokenMock.address, - "dxd", - constants.NULL_ADDRESS - ); - await standardTokenMock.approve( - dxdVotingMachine.contract.address, + dxdVotingMachine.address, constants.MAX_UINT_256, { from: accounts[1], @@ -94,7 +62,7 @@ contract("DXDVotingMachine", function (accounts) { ); await standardTokenMock.approve( - dxdVotingMachine.contract.address, + dxdVotingMachine.address, constants.MAX_UINT_256, { from: accounts[0], @@ -102,7 +70,7 @@ contract("DXDVotingMachine", function (accounts) { ); await standardTokenMock.approve( - dxdVotingMachine.contract.address, + dxdVotingMachine.address, constants.MAX_UINT_256, { from: accounts[2], @@ -113,55 +81,43 @@ contract("DXDVotingMachine", function (accounts) { await time.increase(10); - expensiveVoteWalletScheme = await WalletScheme.new(); - await expensiveVoteWalletScheme.initialize( + masterAvatarScheme = await AvatarScheme.new(); + await masterAvatarScheme.initialize( org.avatar.address, - genVotingMachine.address, - true, + dxdVotingMachine.address, org.controller.address, permissionRegistry.address, - "Expensive Scheme", + "Cheap Scheme", 172800, 5 ); - cheapVoteWalletScheme = await WalletScheme.new(); - await cheapVoteWalletScheme.initialize( + registrarScheme = await WalletScheme.new(); + await registrarScheme.initialize( org.avatar.address, dxdVotingMachine.address, - true, org.controller.address, permissionRegistry.address, - "Cheap Scheme", + "Registrar Scheme", 172800, 5 ); - await org.daoCreator.setSchemes( - org.avatar.address, - [expensiveVoteWalletScheme.address, cheapVoteWalletScheme.address], - [genVotingMachine.params, dxdVotingMachine.params], - [ - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: true, - canChangeConstraints: true, - canRegisterSchemes: true, - }), - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: true, - canChangeConstraints: true, - canRegisterSchemes: true, - }), - ], - "metaData" + const defaultParamsHash = await helpers.setDefaultParameters( + org.votingMachine ); - await helpers.setDefaultControllerPermissions( - permissionRegistry, - org.avatar.address, - org.controller + await org.controller.registerScheme( + masterAvatarScheme.address, + defaultParamsHash, + false, + true + ); + await org.controller.registerScheme( + registrarScheme.address, + defaultParamsHash, + true, + false ); await permissionRegistry.setETHPermission( org.avatar.address, @@ -170,6 +126,29 @@ contract("DXDVotingMachine", function (accounts) { constants.TEST_VALUE, true ); + await permissionRegistry.setETHPermission( + org.avatar.address, + dxdVotingMachine.address, + constants.NULL_SIGNATURE, + constants.MAX_UINT_256, + true + ); + await permissionRegistry.setETHPermission( + registrarScheme.address, + org.controller.address, + web3.eth.abi.encodeFunctionSignature( + "registerScheme(address,bytes32,bool,bool)" + ), + 0, + true + ); + await permissionRegistry.setETHPermission( + registrarScheme.address, + org.controller.address, + web3.eth.abi.encodeFunctionSignature("unregisterScheme(address)"), + 0, + true + ); }); describe("Voting", function () { @@ -182,11 +161,10 @@ contract("DXDVotingMachine", function (accounts) { value: web3.utils.toWei("1"), }); - const setRefundConfData = new web3.eth.Contract( - DXDVotingMachine.abi - ).methods - .setOrganizationRefund(VOTE_GAS, constants.GAS_PRICE) - .encodeABI(); + const setRefundConfData = web3.eth.abi.encodeFunctionCall( + DXDVotingMachine.abi.find(x => x.name === "setOrganizationRefund"), + [VOTE_GAS, constants.GAS_PRICE] + ); await permissionRegistry.setETHPermission( org.avatar.address, @@ -209,10 +187,11 @@ contract("DXDVotingMachine", function (accounts) { web3.utils.toWei("1"), true ); - const setRefundConfTx = await cheapVoteWalletScheme.proposeCalls( + const setRefundConfTx = await masterAvatarScheme.proposeCalls( [dxdVotingMachine.address], [setRefundConfData], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); @@ -223,15 +202,15 @@ contract("DXDVotingMachine", function (accounts) { ); const organizationId = ( - await dxdVotingMachine.contract.proposals(setRefundConfProposalId) + await dxdVotingMachine.proposals(setRefundConfProposalId) ).organizationId; assert.equal( - await dxdVotingMachine.contract.organizations(organizationId), + await dxdVotingMachine.organizations(organizationId), org.avatar.address ); - await dxdVotingMachine.contract.vote( + await dxdVotingMachine.vote( setRefundConfProposalId, 1, 0, @@ -240,9 +219,7 @@ contract("DXDVotingMachine", function (accounts) { ); const organizationRefundConf = - await dxdVotingMachine.contract.organizationRefunds( - org.avatar.address - ); + await dxdVotingMachine.organizationRefunds(org.avatar.address); assert.equal(0, organizationRefundConf.balance); assert.equal(VOTE_GAS, organizationRefundConf.voteGas); assert.equal(constants.GAS_PRICE, organizationRefundConf.maxGasPrice); @@ -250,150 +227,21 @@ contract("DXDVotingMachine", function (accounts) { await permissionRegistry.setETHPermission( org.avatar.address, actionMock.address, - testCallFrom(org.avatar.address).substring(0, 10), + helpers.testCallFrom(org.avatar.address).substring(0, 10), 0, true ); }); - it("gas spent in PayableGenesisProtocol vote is less than GenesisProtocol vote", async function () { - await web3.eth.sendTransaction({ - from: accounts[0], - to: org.avatar.address, - value: web3.utils.toWei("1"), - }); - const fundVotingMachineTx = await cheapVoteWalletScheme.proposeCalls( - [dxdVotingMachine.address], - ["0x0"], - [web3.utils.toWei("1")], - constants.TEST_TITLE, - constants.SOME_HASH - ); - const fundVotingMachineProposalId = await helpers.getValueFromLogs( - fundVotingMachineTx, - "_proposalId" - ); - - await dxdVotingMachine.contract.vote( - fundVotingMachineProposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[3] } - ); - - let tx = await expensiveVoteWalletScheme.proposeCalls( - [actionMock.address], - [testCallFrom(org.avatar.address)], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ); - const expensiveProposalId = await helpers.getValueFromLogs( - tx, - "_proposalId" - ); - let balanceBeforeVote = new BN(await web3.eth.getBalance(accounts[3])); - tx = await genVotingMachine.contract.vote( - expensiveProposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[3], gasPrice: constants.GAS_PRICE } - ); - let balanceAfterVote = new BN(await web3.eth.getBalance(accounts[3])); - const gastVoteWithoutRefund = parseInt( - balanceBeforeVote - .sub(balanceAfterVote) - .div(new BN(constants.GAS_PRICE)) - .toString() - ); - expect(tx.receipt.gasUsed).to.be.closeTo(gastVoteWithoutRefund, 1); - - let organizationProposal = - await expensiveVoteWalletScheme.getOrganizationProposal( - expensiveProposalId - ); - assert.equal( - organizationProposal.state, - constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd - ); - assert.equal( - organizationProposal.callData[0], - testCallFrom(org.avatar.address) - ); - assert.equal(organizationProposal.to[0], actionMock.address); - assert.equal(organizationProposal.value[0], 0); - - // Vote with refund configured - tx = await cheapVoteWalletScheme.proposeCalls( - [actionMock.address], - [testCallFrom(org.avatar.address)], - [0], - constants.TEST_TITLE, - constants.SOME_HASH - ); - const cheapProposalId = await helpers.getValueFromLogs( - tx, - "_proposalId" - ); - balanceBeforeVote = new BN(await web3.eth.getBalance(accounts[3])); - tx = await dxdVotingMachine.contract.vote( - cheapProposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[3], gasPrice: constants.GAS_PRICE } - ); - balanceAfterVote = new BN(await web3.eth.getBalance(accounts[3])); - const gasVoteWithRefund = parseInt( - balanceBeforeVote - .sub(balanceAfterVote) - .div(new BN(constants.GAS_PRICE)) - .toString() - ); - - // Gas was taken from the organization refund balance and used to pay most of vote gas cost on two votes, - // the vote approving the funding of the dxd voting machine and the one approving the other proposal - assert.equal( - web3.utils.toWei("1") - TOTAL_GAS_REFUND * 2, - ( - await dxdVotingMachine.contract.organizationRefunds( - org.avatar.address - ) - ).balance - ); - expect(tx.receipt.gasUsed - VOTE_GAS).to.be.closeTo( - gasVoteWithRefund, - 1 - ); - - organizationProposal = - await cheapVoteWalletScheme.getOrganizationProposal(cheapProposalId); - assert.equal( - organizationProposal.state, - constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd - ); - assert.equal( - organizationProposal.callData[0], - testCallFrom(org.avatar.address) - ); - assert.equal(organizationProposal.to[0], actionMock.address); - assert.equal(organizationProposal.value[0], 0); - }); - it("pay for gasRefund from voting machine only when gasRefund balance is enough", async function () { // Send enough eth just for two votes const votesRefund = TOTAL_GAS_REFUND * 3; - await web3.eth.sendTransaction({ - from: accounts[0], - to: org.avatar.address, - value: votesRefund.toString(), - }); - const fundVotingMachineTx = await cheapVoteWalletScheme.proposeCalls( + + const fundVotingMachineTx = await masterAvatarScheme.proposeCalls( [dxdVotingMachine.address], ["0x0"], - [votesRefund.toString()], + [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); @@ -401,19 +249,20 @@ contract("DXDVotingMachine", function (accounts) { fundVotingMachineTx, "_proposalId" ); - await dxdVotingMachine.contract.vote( + + await dxdVotingMachine.vote( fundVotingMachineProposalId, 1, 0, constants.NULL_ADDRESS, - { from: accounts[3], gasPrice: constants.GAS_PRICE } + { from: accounts[3], gasLimit: constants.GAS_LIMIT } ); - // Vote three times and pay only the first two - let tx = await cheapVoteWalletScheme.proposeCalls( + let tx = await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); @@ -421,54 +270,39 @@ contract("DXDVotingMachine", function (accounts) { assert.equal( TOTAL_GAS_REFUND * 2, Number( - ( - await dxdVotingMachine.contract.organizationRefunds( - org.avatar.address - ) - ).balance + (await dxdVotingMachine.organizationRefunds(org.avatar.address)) + .balance ) ); // Vote with higher gas than maxGasPrice and dont spend more than one vote refund - await dxdVotingMachine.contract.vote( - proposalId, - 2, - 0, - constants.NULL_ADDRESS, - { from: accounts[1], gasPrice: constants.GAS_PRICE * 2 } - ); + await dxdVotingMachine.vote(proposalId, 2, 0, constants.NULL_ADDRESS, { + from: accounts[1], + gasPrice: constants.GAS_PRICE * 2, + }); assert.equal( TOTAL_GAS_REFUND, Number( - ( - await dxdVotingMachine.contract.organizationRefunds( - org.avatar.address - ) - ).balance + (await dxdVotingMachine.organizationRefunds(org.avatar.address)) + .balance ) ); - await dxdVotingMachine.contract.vote( - proposalId, - 2, - 0, - constants.NULL_ADDRESS, - { from: accounts[2], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 2, 0, constants.NULL_ADDRESS, { + from: accounts[2], + gasPrice: constants.GAS_PRICE, + }); assert.equal( 0, Number( - ( - await dxdVotingMachine.contract.organizationRefunds( - org.avatar.address - ) - ).balance + (await dxdVotingMachine.organizationRefunds(org.avatar.address)) + .balance ) ); const balanceBeforeVote = new BN( await web3.eth.getBalance(accounts[3]) ); - tx = await dxdVotingMachine.contract.vote( + tx = await dxdVotingMachine.vote( proposalId, 1, 0, @@ -487,46 +321,46 @@ contract("DXDVotingMachine", function (accounts) { expect(tx.receipt.gasUsed).to.be.closeTo(gastVoteWithoutRefund, 1); const organizationProposal = - await cheapVoteWalletScheme.getOrganizationProposal(proposalId); + await masterAvatarScheme.getOrganizationProposal(proposalId); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); assert.equal( organizationProposal.callData[0], - testCallFrom(org.avatar.address) + helpers.testCallFrom(org.avatar.address) ); assert.equal(organizationProposal.to[0], actionMock.address); assert.equal(organizationProposal.value[0], 0); }); it("Can view rep of votes and amount staked on proposal", async function () { - const statusInfo = - await dxdVotingMachine.contract.proposalStatusWithVotes( - setRefundConfProposalId - ); + const statusInfo = await dxdVotingMachine.proposalStatusWithVotes( + setRefundConfProposalId + ); expect(statusInfo["0"].toNumber()).to.equal(70000); expect(statusInfo["1"].toNumber()).to.equal(0); expect(statusInfo["2"].toNumber()).to.equal(70000); expect(statusInfo["3"].toNumber()).to.equal(0); expect(statusInfo["4"].toNumber()).to.equal(0); - expect(statusInfo["5"].toNumber()).to.equal(15); + expect(statusInfo["5"].toNumber()).to.equal(100); }); it("Should fail if voter has already voted", async function () { const proposalId = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), "_proposalId" ); - const vote = await dxdVotingMachine.contract.vote( + const vote = await dxdVotingMachine.vote( proposalId, 1, 0, @@ -544,7 +378,7 @@ contract("DXDVotingMachine", function (accounts) { _reputation: "10000", }); - const secondVote = await dxdVotingMachine.contract.vote( + const secondVote = await dxdVotingMachine.vote( proposalId, 2, 0, @@ -560,36 +394,15 @@ contract("DXDVotingMachine", function (accounts) { describe("VoteOnBehalf", function () { let genericProposalId; beforeEach(async function () { - const defaultParamaters = [ - "50", - "172800", - "86400", - "3600", - "2000", - "86400", - "60", - "10", - "15", - "10", - "0", - ]; - - await dxdVotingMachine.contract.setParameters( - defaultParamaters, + const parameterHash = await dxdVotingMachine.getParametersHash( + helpers.defaultParametersArray, accounts[3] ); - const parameterHash = - await dxdVotingMachine.contract.getParametersHash( - defaultParamaters, - accounts[3] - ); - - const tempWalletScheme = await WalletScheme.new(); - await tempWalletScheme.initialize( + const tempAvatarScheme = await AvatarScheme.new(); + await tempAvatarScheme.initialize( org.avatar.address, dxdVotingMachine.address, - true, org.controller.address, permissionRegistry.address, "Temp Scheme", @@ -597,25 +410,17 @@ contract("DXDVotingMachine", function (accounts) { 5 ); - const registerSchemeData = await org.controller.contract.methods - .registerScheme( - tempWalletScheme.address, - parameterHash, - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: true, - canChangeConstraints: true, - canRegisterSchemes: true, - }), - org.avatar.address - ) - .encodeABI(); + const registerSchemeData = web3.eth.abi.encodeFunctionCall( + org.controller.abi.find(x => x.name === "registerScheme"), + [tempAvatarScheme.address, parameterHash, true, true] + ); const registerProposalId = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await registrarScheme.proposeCalls( [org.controller.address], [registerSchemeData], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), @@ -623,15 +428,12 @@ contract("DXDVotingMachine", function (accounts) { ); assert.equal( - ( - await cheapVoteWalletScheme.getOrganizationProposal( - registerProposalId - ) - ).state, + (await registrarScheme.getOrganizationProposal(registerProposalId)) + .state, constants.WALLET_SCHEME_PROPOSAL_STATES.submitted ); - await dxdVotingMachine.contract.vote( + await dxdVotingMachine.vote( registerProposalId, 1, 0, @@ -640,29 +442,25 @@ contract("DXDVotingMachine", function (accounts) { ); assert.equal( - ( - await cheapVoteWalletScheme.getOrganizationProposal( - registerProposalId - ) - ).state, + (await registrarScheme.getOrganizationProposal(registerProposalId)) + .state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); assert.equal( await org.controller.getSchemeParameters( - tempWalletScheme.address, + tempAvatarScheme.address, org.avatar.address ), parameterHash ); - const callData = helpers.testCallFrom(tempWalletScheme.address); - genericProposalId = await helpers.getValueFromLogs( - await tempWalletScheme.proposeCalls( - [actionMock.address], - [callData], - [0], + await tempAvatarScheme.proposeCalls( + [accounts[1]], + ["0x0"], + [10], + 2, constants.TEST_TITLE, constants.SOME_HASH ), @@ -672,30 +470,22 @@ contract("DXDVotingMachine", function (accounts) { it("Fails if address is not allowed to vote on behalf", async function () { const proposalParamsHash = ( - await dxdVotingMachine.contract.proposals(genericProposalId) - ).paramsHash; + await dxdVotingMachine.proposals(genericProposalId) + ).defaultParamsHash; - const params = await dxdVotingMachine.contract.parameters( - proposalParamsHash - ); + const params = await dxdVotingMachine.parameters(proposalParamsHash); assert.equal(params.voteOnBehalf, accounts[3]); await expectRevert( - dxdVotingMachine.contract.vote( - genericProposalId, - 1, - 0, - accounts[2], - { - from: accounts[1], - } - ), + dxdVotingMachine.vote(genericProposalId, 1, 0, accounts[2], { + from: accounts[1], + }), "address not allowed to vote on behalf" ); }); it("Succeeds if allowed address is able to vote on behalf", async function () { - const tx = await dxdVotingMachine.contract.vote( + const tx = await dxdVotingMachine.vote( genericProposalId, 1, 0, @@ -714,7 +504,7 @@ contract("DXDVotingMachine", function (accounts) { }); }); it("should emit event StateChange to QuietVotingPeriod", async function () { - const upStake = await dxdVotingMachine.contract.stake( + const upStake = await dxdVotingMachine.stake( genericProposalId, 1, 2000, @@ -724,7 +514,7 @@ contract("DXDVotingMachine", function (accounts) { ); const totalStaked = ( - await dxdVotingMachine.contract.proposals(genericProposalId) + await dxdVotingMachine.proposals(genericProposalId) ).totalStakes; assert.equal(totalStaked, 2000); @@ -737,7 +527,7 @@ contract("DXDVotingMachine", function (accounts) { await time.increase(3600 + 1); - const finalVote = await dxdVotingMachine.contract.vote( + const finalVote = await dxdVotingMachine.vote( genericProposalId, 1, 0, @@ -752,8 +542,7 @@ contract("DXDVotingMachine", function (accounts) { // check QuietEndingPeriod assert.equal( - (await dxdVotingMachine.contract.proposals(genericProposalId)) - .state, + (await dxdVotingMachine.proposals(genericProposalId)).state, "6" ); }); @@ -762,41 +551,43 @@ contract("DXDVotingMachine", function (accounts) { describe("Signed Votes", function () { beforeEach(async function () { - const wallet = await Wallet.new(); + const actionMock = await ActionMock.new(); await web3.eth.sendTransaction({ from: accounts[0], to: org.avatar.address, value: constants.TEST_VALUE, }); - await wallet.transferOwnership(org.avatar.address); - const payCallData = await new web3.eth.Contract(wallet.abi).methods - .pay(accounts[1]) - .encodeABI(); + const payCallData = web3.eth.abi.encodeFunctionCall( + actionMock.abi.find(x => x.name === "executeCall"), + [accounts[1], "0x0", 10] + ); - const callDataMintRep = await org.controller.contract.methods - .mintReputation(constants.TEST_VALUE, accounts[4], org.avatar.address) - .encodeABI(); + const callDataMintRep = web3.eth.abi.encodeFunctionCall( + org.controller.abi.find(x => x.name === "mintReputation"), + [constants.TEST_VALUE, accounts[4]] + ); await permissionRegistry.setETHPermission( org.avatar.address, - wallet.address, + actionMock.address, payCallData.substring(0, 10), 0, true ); await permissionRegistry.setETHPermission( org.avatar.address, - wallet.address, + actionMock.address, constants.NULL_SIGNATURE, constants.TEST_VALUE, true ); - const tx = await cheapVoteWalletScheme.proposeCalls( - [wallet.address, wallet.address, org.controller.address], + const tx = await masterAvatarScheme.proposeCalls( + [actionMock.address, actionMock.address, org.controller.address], ["0x0", payCallData, callDataMintRep], [constants.TEST_VALUE, 0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); @@ -804,7 +595,7 @@ contract("DXDVotingMachine", function (accounts) { }); it("fail sharing invalid vote signature", async function () { - const voteHash = await dxdVotingMachine.contract.hashVote( + const voteHash = await dxdVotingMachine.hashVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -819,8 +610,8 @@ contract("DXDVotingMachine", function (accounts) { web3.eth.accounts.recover(voteHash, votesignature) ); - try { - await dxdVotingMachine.contract.shareSignedVote( + await expectRevert( + dxdVotingMachine.shareSignedVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -828,17 +619,12 @@ contract("DXDVotingMachine", function (accounts) { 70000, votesignature, { from: accounts[3] } - ); - assert( - false, - "cannot share invalid vote signature with different vote" - ); - } catch (error) { - helpers.assertVMException(error); - } + ), + "wrong signer" + ); - try { - await dxdVotingMachine.contract.shareSignedVote( + await expectRevert( + dxdVotingMachine.shareSignedVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -846,14 +632,12 @@ contract("DXDVotingMachine", function (accounts) { 71000, votesignature, { from: accounts[3] } - ); - assert(false, "cannot share invalid vote signature with higher REP"); - } catch (error) { - helpers.assertVMException(error); - } + ), + "wrong signer" + ); }); it("Can share a vote signed by a different user", async function () { - const voteHash = await dxdVotingMachine.contract.hashVote( + const voteHash = await dxdVotingMachine.hashVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -870,7 +654,7 @@ contract("DXDVotingMachine", function (accounts) { web3.eth.accounts.recover(voteHash, votesignature) ); - const voteTx = await dxdVotingMachine.contract.shareSignedVote( + const voteTx = await dxdVotingMachine.shareSignedVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -891,7 +675,7 @@ contract("DXDVotingMachine", function (accounts) { }); it("Cannot share a vote with the incorrect signature", async function () { - const voteHash = await dxdVotingMachine.contract.hashVote( + const voteHash = await dxdVotingMachine.hashVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -910,7 +694,7 @@ contract("DXDVotingMachine", function (accounts) { ); await expectRevert( - dxdVotingMachine.contract.shareSignedVote( + dxdVotingMachine.shareSignedVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -924,7 +708,7 @@ contract("DXDVotingMachine", function (accounts) { }); it("fail executing vote with invalid data", async function () { - const voteHash = await dxdVotingMachine.contract.hashVote( + const voteHash = await dxdVotingMachine.hashVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -939,7 +723,7 @@ contract("DXDVotingMachine", function (accounts) { web3.eth.accounts.recover(voteHash, votesignature) ); - const shareVoteTx = await dxdVotingMachine.contract.shareSignedVote( + const shareVoteTx = await dxdVotingMachine.shareSignedVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -950,8 +734,8 @@ contract("DXDVotingMachine", function (accounts) { ); const voteInfoFromLog = shareVoteTx.logs[0].args; - try { - await dxdVotingMachine.contract.executeSignedVote( + await expectRevert( + dxdVotingMachine.executeSignedVote( voteInfoFromLog.votingMachine, voteInfoFromLog.proposalId, voteInfoFromLog.voter, @@ -959,14 +743,12 @@ contract("DXDVotingMachine", function (accounts) { voteInfoFromLog.amount, voteInfoFromLog.signature, { from: accounts[4] } - ); - assert(false, "cannot execute vote signature with different vote"); - } catch (error) { - helpers.assertVMException(error); - } + ), + "wrong signer" + ); - try { - await dxdVotingMachine.contract.executeSignedVote( + await expectRevert( + dxdVotingMachine.executeSignedVote( voteInfoFromLog.votingMachine, voteInfoFromLog.proposalId, voteInfoFromLog.voter, @@ -974,14 +756,12 @@ contract("DXDVotingMachine", function (accounts) { voteInfoFromLog.amount - 1, voteInfoFromLog.signature, { from: accounts[4] } - ); - assert(false, "cannot execute vote signature with less REP"); - } catch (error) { - helpers.assertVMException(error); - } + ), + "wrong signer" + ); - try { - await dxdVotingMachine.contract.executeSignedVote( + await expectRevert( + dxdVotingMachine.executeSignedVote( voteInfoFromLog.votingMachine, voteInfoFromLog.proposalId, accounts[1], @@ -989,15 +769,13 @@ contract("DXDVotingMachine", function (accounts) { voteInfoFromLog.amount, voteInfoFromLog.signature, { from: accounts[4] } - ); - assert(false, "cannot execute vote signature form other address"); - } catch (error) { - helpers.assertVMException(error); - } + ), + "wrong signer" + ); }); it("positive signed decision with all rep available", async function () { - const voteHash = await dxdVotingMachine.contract.hashVote( + const voteHash = await dxdVotingMachine.hashVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -1012,7 +790,7 @@ contract("DXDVotingMachine", function (accounts) { web3.eth.accounts.recover(voteHash, votesignature) ); - const shareVoteTx = await dxdVotingMachine.contract.shareSignedVote( + const shareVoteTx = await dxdVotingMachine.shareSignedVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -1022,7 +800,7 @@ contract("DXDVotingMachine", function (accounts) { { from: accounts[3] } ); const voteInfoFromLog = shareVoteTx.logs[0].args; - await dxdVotingMachine.contract.executeSignedVote( + await dxdVotingMachine.executeSignedVote( voteInfoFromLog.votingMachine, voteInfoFromLog.proposalId, voteInfoFromLog.voter, @@ -1033,7 +811,7 @@ contract("DXDVotingMachine", function (accounts) { ); const organizationProposal = - await cheapVoteWalletScheme.getOrganizationProposal(proposalId); + await masterAvatarScheme.getOrganizationProposal(proposalId); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1042,7 +820,7 @@ contract("DXDVotingMachine", function (accounts) { it("negative signed decision with less rep than the one held", async function () { // The voter has 70 rep but votes with 60 rep - const voteHash = await dxdVotingMachine.contract.hashVote( + const voteHash = await dxdVotingMachine.hashVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -1057,7 +835,7 @@ contract("DXDVotingMachine", function (accounts) { web3.eth.accounts.recover(voteHash, votesignature) ); - const shareVoteTx = await dxdVotingMachine.contract.shareSignedVote( + const shareVoteTx = await dxdVotingMachine.shareSignedVote( dxdVotingMachine.address, proposalId, accounts[3], @@ -1068,7 +846,7 @@ contract("DXDVotingMachine", function (accounts) { ); const voteInfoFromLog = shareVoteTx.logs[0].args; - await dxdVotingMachine.contract.executeSignedVote( + await dxdVotingMachine.executeSignedVote( voteInfoFromLog.votingMachine, voteInfoFromLog.proposalId, voteInfoFromLog.voter, @@ -1079,7 +857,7 @@ contract("DXDVotingMachine", function (accounts) { ); const organizationProposal = - await cheapVoteWalletScheme.getOrganizationProposal(proposalId); + await masterAvatarScheme.getOrganizationProposal(proposalId); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.rejected @@ -1089,26 +867,11 @@ contract("DXDVotingMachine", function (accounts) { describe("Signal Votes", function () { beforeEach(async function () { - const wallet = await Wallet.new(); - await web3.eth.sendTransaction({ - from: accounts[0], - to: org.avatar.address, - value: constants.TEST_VALUE, - }); - await wallet.transferOwnership(org.avatar.address); - - await permissionRegistry.setETHPermission( - org.avatar.address, - wallet.address, - constants.NULL_SIGNATURE, - constants.TEST_VALUE, - true - ); - - const tx = await cheapVoteWalletScheme.proposeCalls( - [wallet.address], + const tx = await masterAvatarScheme.proposeCalls( + [accounts[1]], ["0x0"], [constants.TEST_VALUE], + 2, constants.TEST_TITLE, constants.SOME_HASH ); @@ -1117,62 +880,46 @@ contract("DXDVotingMachine", function (accounts) { it("positive signal decision", async function () { assert.equal( - ( - await dxdVotingMachine.contract.votesSignaled( - proposalId, - accounts[3] - ) - ).voteDecision, + (await dxdVotingMachine.votesSignaled(proposalId, accounts[3])) + .voteDecision, 0 ); await expectRevert( - dxdVotingMachine.contract.signalVote(proposalId, 3, 60000, { + dxdVotingMachine.signalVote(proposalId, 3, 60000, { from: accounts[3], }), "wrong decision value" ); - const signalVoteTx = await dxdVotingMachine.contract.signalVote( + const signalVoteTx = await dxdVotingMachine.signalVote( proposalId, 1, 60000, { from: accounts[3] } ); assert.equal( - ( - await dxdVotingMachine.contract.votesSignaled( - proposalId, - accounts[3] - ) - ).voteDecision, + (await dxdVotingMachine.votesSignaled(proposalId, accounts[3])) + .voteDecision, 1 ); assert.equal( - ( - await dxdVotingMachine.contract.votesSignaled( - proposalId, - accounts[3] - ) - ).amount, + (await dxdVotingMachine.votesSignaled(proposalId, accounts[3])) + .amount, 60000 ); expect(signalVoteTx.receipt.gasUsed).to.be.closeTo(50000, 25000); const voteInfoFromLog = signalVoteTx.logs[0].args; - await dxdVotingMachine.contract.executeSignaledVote( + await dxdVotingMachine.executeSignaledVote( voteInfoFromLog.proposalId, voteInfoFromLog.voter, { from: accounts[4] } ); assert.equal( - ( - await dxdVotingMachine.contract.votesSignaled( - proposalId, - accounts[3] - ) - ).voteDecision, + (await dxdVotingMachine.votesSignaled(proposalId, accounts[3])) + .voteDecision, 0 ); const organizationProposal = - await cheapVoteWalletScheme.getOrganizationProposal(proposalId); + await masterAvatarScheme.getOrganizationProposal(proposalId); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd @@ -1181,57 +928,41 @@ contract("DXDVotingMachine", function (accounts) { it("negative signal decision", async function () { assert.equal( - ( - await dxdVotingMachine.contract.votesSignaled( - proposalId, - accounts[3] - ) - ).voteDecision, + (await dxdVotingMachine.votesSignaled(proposalId, accounts[3])) + .voteDecision, 0 ); - const signalVoteTx = await dxdVotingMachine.contract.signalVote( + const signalVoteTx = await dxdVotingMachine.signalVote( proposalId, 2, 0, { from: accounts[3] } ); assert.equal( - ( - await dxdVotingMachine.contract.votesSignaled( - proposalId, - accounts[3] - ) - ).voteDecision, + (await dxdVotingMachine.votesSignaled(proposalId, accounts[3])) + .voteDecision, 2 ); assert.equal( - ( - await dxdVotingMachine.contract.votesSignaled( - proposalId, - accounts[3] - ) - ).amount, + (await dxdVotingMachine.votesSignaled(proposalId, accounts[3])) + .amount, 0 ); expect(signalVoteTx.receipt.gasUsed).to.be.closeTo(50000, 25000); const voteInfoFromLog = signalVoteTx.logs[0].args; - await dxdVotingMachine.contract.executeSignaledVote( + await dxdVotingMachine.executeSignaledVote( voteInfoFromLog.proposalId, voteInfoFromLog.voter, { from: accounts[4] } ); assert.equal( - ( - await dxdVotingMachine.contract.votesSignaled( - proposalId, - accounts[3] - ) - ).voteDecision, + (await dxdVotingMachine.votesSignaled(proposalId, accounts[3])) + .voteDecision, 0 ); const organizationProposal = - await cheapVoteWalletScheme.getOrganizationProposal(proposalId); + await masterAvatarScheme.getOrganizationProposal(proposalId); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.rejected @@ -1248,16 +979,15 @@ contract("DXDVotingMachine", function (accounts) { value: web3.utils.toWei("1"), }); - const setBoostedVoteRequiredPercentageData = new web3.eth.Contract( - DXDVotingMachine.abi - ).methods - .setBoostedVoteRequiredPercentage( - cheapVoteWalletScheme.address, - dxdVotingMachine.params, - 1950 - ) - .encodeABI(); + const setBoostedVoteRequiredPercentageData = + web3.eth.abi.encodeFunctionCall( + DXDVotingMachine.abi.find( + x => x.name === "setBoostedVoteRequiredPercentage" + ), + [masterAvatarScheme.address, dxdVotingMachine.params, 1950] + ); + console.log(setBoostedVoteRequiredPercentageData); await permissionRegistry.setETHPermission( org.avatar.address, dxdVotingMachine.address, @@ -1268,16 +998,17 @@ contract("DXDVotingMachine", function (accounts) { await permissionRegistry.setETHPermission( org.avatar.address, actionMock.address, - testCallFrom(org.avatar.address).substring(0, 10), + helpers.testCallFrom(org.avatar.address).substring(0, 10), 0, true ); const setBoostedVoteRequiredPercentageTx = - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [dxdVotingMachine.address], [setBoostedVoteRequiredPercentageData], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); @@ -1287,15 +1018,15 @@ contract("DXDVotingMachine", function (accounts) { "_proposalId" ); const organizationId = ( - await dxdVotingMachine.contract.proposals( + await dxdVotingMachine.proposals( setBoostedVoteRequiredPercentageProposalId ) ).organizationId; assert.equal( - await dxdVotingMachine.contract.organizations(organizationId), + await dxdVotingMachine.organizations(organizationId), org.avatar.address ); - await dxdVotingMachine.contract.vote( + await dxdVotingMachine.vote( setBoostedVoteRequiredPercentageProposalId, 1, 0, @@ -1305,29 +1036,27 @@ contract("DXDVotingMachine", function (accounts) { assert.equal( 1950, - await dxdVotingMachine.contract.getBoostedVoteRequiredPercentage( + await dxdVotingMachine.getBoostedVoteRequiredPercentage( org.avatar.address, - cheapVoteWalletScheme.address, + masterAvatarScheme.address, dxdVotingMachine.params ) ); }); it("boosted proposal should succeed with enough votes", async function () { - const tx = await cheapVoteWalletScheme.proposeCalls( + const tx = await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); const testProposalId = await helpers.getValueFromLogs(tx, "_proposalId"); - const stakeTx = await dxdVotingMachine.contract.stake( - testProposalId, - 1, - 1000, - { from: accounts[1] } - ); + const stakeTx = await dxdVotingMachine.stake(testProposalId, 1, 1000, { + from: accounts[1], + }); expectEvent(stakeTx.receipt, "StateChange", { _proposalId: testProposalId, @@ -1335,7 +1064,7 @@ contract("DXDVotingMachine", function (accounts) { }); await time.increase(3600 + 1); - await dxdVotingMachine.contract.vote( + await dxdVotingMachine.vote( testProposalId, 1, 0, @@ -1343,7 +1072,7 @@ contract("DXDVotingMachine", function (accounts) { { from: accounts[2], gasPrice: constants.GAS_PRICE } ); - await dxdVotingMachine.contract.vote( + await dxdVotingMachine.vote( testProposalId, 1, 0, @@ -1351,10 +1080,10 @@ contract("DXDVotingMachine", function (accounts) { { from: accounts[1], gasPrice: constants.GAS_PRICE } ); await time.increase(86400 + 1); - const executeTx = await dxdVotingMachine.contract.execute( - testProposalId, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + const executeTx = await dxdVotingMachine.execute(testProposalId, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); // Check it changed to executed in redeem await expectEvent.inTransaction( executeTx.tx, @@ -1367,34 +1096,32 @@ contract("DXDVotingMachine", function (accounts) { ); const organizationProposal = - await cheapVoteWalletScheme.getOrganizationProposal(testProposalId); + await masterAvatarScheme.getOrganizationProposal(testProposalId); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); assert.equal( organizationProposal.callData[0], - testCallFrom(org.avatar.address) + helpers.testCallFrom(org.avatar.address) ); assert.equal(organizationProposal.to[0], actionMock.address); assert.equal(organizationProposal.value[0], 0); }); it("boosted proposal should fail with not enough votes", async function () { - const tx = await cheapVoteWalletScheme.proposeCalls( + const tx = await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); const testProposalId = await helpers.getValueFromLogs(tx, "_proposalId"); - const stakeTx = await dxdVotingMachine.contract.stake( - testProposalId, - 1, - 1000, - { from: accounts[1] } - ); + const stakeTx = await dxdVotingMachine.stake(testProposalId, 1, 1000, { + from: accounts[1], + }); expectEvent(stakeTx.receipt, "StateChange", { _proposalId: testProposalId, @@ -1402,7 +1129,7 @@ contract("DXDVotingMachine", function (accounts) { }); await time.increase(3600 + 1); - await dxdVotingMachine.contract.vote( + await dxdVotingMachine.vote( testProposalId, 1, 0, @@ -1410,10 +1137,10 @@ contract("DXDVotingMachine", function (accounts) { { from: accounts[2], gasPrice: constants.GAS_PRICE } ); await time.increase(86400 + 1); - const executeTx = await dxdVotingMachine.contract.execute( - testProposalId, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + const executeTx = await dxdVotingMachine.execute(testProposalId, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); // Check it changed to executed in redeem await expectEvent.inTransaction( executeTx.tx, @@ -1426,14 +1153,14 @@ contract("DXDVotingMachine", function (accounts) { ); const organizationProposal = - await cheapVoteWalletScheme.getOrganizationProposal(testProposalId); + await masterAvatarScheme.getOrganizationProposal(testProposalId); assert.equal( organizationProposal.state, constants.WALLET_SCHEME_PROPOSAL_STATES.rejected ); assert.equal( organizationProposal.callData[0], - testCallFrom(org.avatar.address) + helpers.testCallFrom(org.avatar.address) ); assert.equal(organizationProposal.to[0], actionMock.address); assert.equal(organizationProposal.value[0], 0); @@ -1441,10 +1168,11 @@ contract("DXDVotingMachine", function (accounts) { it("should calculate average downstake of Boosted Proposals", async function () { const proposalId = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), @@ -1452,24 +1180,20 @@ contract("DXDVotingMachine", function (accounts) { ); const proposalId2 = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), "_proposalId" ); - const upStake2 = await dxdVotingMachine.contract.stake( - proposalId2, - 1, - 100, - { - from: accounts[1], - } - ); + const upStake2 = await dxdVotingMachine.stake(proposalId2, 1, 100, { + from: accounts[1], + }); expectEvent(upStake2.receipt, "StateChange", { _proposalId: proposalId2, @@ -1478,36 +1202,24 @@ contract("DXDVotingMachine", function (accounts) { await time.increase(3600 + 1); - await dxdVotingMachine.contract.vote( - proposalId2, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); //check boosted - assert.equal( - (await dxdVotingMachine.contract.proposals(proposalId2)).state, - "5" - ); + assert.equal((await dxdVotingMachine.proposals(proposalId2)).state, "5"); - await dxdVotingMachine.contract.stake(proposalId, 2, 2000, { + await dxdVotingMachine.stake(proposalId, 2, 2000, { from: accounts[0], }); - const upStake = await dxdVotingMachine.contract.stake( - proposalId, - 1, - 7900, - { - from: accounts[1], - } - ); + const upStake = await dxdVotingMachine.stake(proposalId, 1, 7900, { + from: accounts[1], + }); - const totalStaked = ( - await dxdVotingMachine.contract.proposals(proposalId) - ).totalStakes; + const totalStaked = (await dxdVotingMachine.proposals(proposalId)) + .totalStakes; assert.equal(totalStaked, 9900); @@ -1518,39 +1230,30 @@ contract("DXDVotingMachine", function (accounts) { await time.increase(3600 + 1); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); //check boosted - assert.equal( - (await dxdVotingMachine.contract.proposals(proposalId)).state, - "5" - ); + assert.equal((await dxdVotingMachine.proposals(proposalId)).state, "5"); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[0], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[0], + gasPrice: constants.GAS_PRICE, + }); await time.increase(86400 + 1); - const orgId = (await dxdVotingMachine.contract.proposals(proposalId)) + const orgId = (await dxdVotingMachine.proposals(proposalId)) .organizationId; const totalDownStaked = - await dxdVotingMachine.contract.averagesDownstakesOfBoosted(orgId); + await dxdVotingMachine.averagesDownstakesOfBoosted(orgId); assert.equal(totalDownStaked, 1015); - const executeTx = await dxdVotingMachine.contract.execute(proposalId, { + const executeTx = await dxdVotingMachine.execute(proposalId, { from: accounts[1], gasPrice: constants.GAS_PRICE, }); @@ -1567,7 +1270,7 @@ contract("DXDVotingMachine", function (accounts) { ); const proposalState = ( - await cheapVoteWalletScheme.getOrganizationProposal(proposalId) + await masterAvatarScheme.getOrganizationProposal(proposalId) ).state; assert.equal( @@ -1578,28 +1281,23 @@ contract("DXDVotingMachine", function (accounts) { it("execution state is preBoosted after the vote execution bar has been crossed", async function () { const proposalId = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), "_proposalId" ); - const upStake = await dxdVotingMachine.contract.stake( - proposalId, - 1, - 2000, - { - from: accounts[1], - } - ); + const upStake = await dxdVotingMachine.stake(proposalId, 1, 2000, { + from: accounts[1], + }); - const totalStaked = ( - await dxdVotingMachine.contract.proposals(proposalId) - ).totalStakes; + const totalStaked = (await dxdVotingMachine.proposals(proposalId)) + .totalStakes; assert.equal(totalStaked, 2000); @@ -1610,46 +1308,31 @@ contract("DXDVotingMachine", function (accounts) { }); // vote enough times to pass the execution bar threshold - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[0], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[0], + gasPrice: constants.GAS_PRICE, + }); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + gasPrice: constants.GAS_PRICE, + }); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[3], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[3], + gasPrice: constants.GAS_PRICE, + }); // check executed - assert.equal( - (await dxdVotingMachine.contract.proposals(proposalId)).state, - "2" - ); + assert.equal((await dxdVotingMachine.proposals(proposalId)).state, "2"); const proposalState = ( - await cheapVoteWalletScheme.getOrganizationProposal(proposalId) + await masterAvatarScheme.getOrganizationProposal(proposalId) ).state; assert.equal( @@ -1660,28 +1343,23 @@ contract("DXDVotingMachine", function (accounts) { it("execution state is Boosted after the vote execution bar has been crossed", async function () { const proposalId = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), "_proposalId" ); - const upStake = await dxdVotingMachine.contract.stake( - proposalId, - 1, - 2000, - { - from: accounts[1], - } - ); + const upStake = await dxdVotingMachine.stake(proposalId, 1, 2000, { + from: accounts[1], + }); - const totalStaked = ( - await dxdVotingMachine.contract.proposals(proposalId) - ).totalStakes; + const totalStaked = (await dxdVotingMachine.proposals(proposalId)) + .totalStakes; assert.equal(totalStaked, 2000); @@ -1693,45 +1371,30 @@ contract("DXDVotingMachine", function (accounts) { await time.increase(3600 + 1); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); // check boosted - assert.equal( - (await dxdVotingMachine.contract.proposals(proposalId)).state, - "5" - ); + assert.equal((await dxdVotingMachine.proposals(proposalId)).state, "5"); // vote enough times to pass the execution bar threshold - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + gasPrice: constants.GAS_PRICE, + }); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[3], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[3], + gasPrice: constants.GAS_PRICE, + }); // check executed - assert.equal( - (await dxdVotingMachine.contract.proposals(proposalId)).state, - "2" - ); + assert.equal((await dxdVotingMachine.proposals(proposalId)).state, "2"); const proposalState = ( - await cheapVoteWalletScheme.getOrganizationProposal(proposalId) + await masterAvatarScheme.getOrganizationProposal(proposalId) ).state; assert.equal( @@ -1742,33 +1405,28 @@ contract("DXDVotingMachine", function (accounts) { it("should check proposal score against confidence threshold", async function () { const proposalId = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), "_proposalId" ); - const upStake = await dxdVotingMachine.contract.stake( - proposalId, - 1, - 500, - { - from: accounts[1], - } - ); + const upStake = await dxdVotingMachine.stake(proposalId, 1, 500, { + from: accounts[1], + }); // downstake - await dxdVotingMachine.contract.stake(proposalId, 2, 2000, { + await dxdVotingMachine.stake(proposalId, 2, 2000, { from: accounts[0], }); - const totalStaked = ( - await dxdVotingMachine.contract.proposals(proposalId) - ).totalStakes; + const totalStaked = (await dxdVotingMachine.proposals(proposalId)) + .totalStakes; assert.equal(totalStaked, 2500); @@ -1780,39 +1438,27 @@ contract("DXDVotingMachine", function (accounts) { await time.increase(2000); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); // vote enough times to pass the execution bar threshold - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + gasPrice: constants.GAS_PRICE, + }); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[3], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[3], + gasPrice: constants.GAS_PRICE, + }); // check executed - assert.equal( - (await dxdVotingMachine.contract.proposals(proposalId)).state, - "2" - ); + assert.equal((await dxdVotingMachine.proposals(proposalId)).state, "2"); const proposalState = ( - await cheapVoteWalletScheme.getOrganizationProposal(proposalId) + await masterAvatarScheme.getOrganizationProposal(proposalId) ).state; assert.equal( @@ -1822,10 +1468,11 @@ contract("DXDVotingMachine", function (accounts) { }); it("should emit confidenceLevelChange event", async function () { const proposalId = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), @@ -1833,57 +1480,44 @@ contract("DXDVotingMachine", function (accounts) { ); const proposalId2 = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), "_proposalId" ); - await dxdVotingMachine.contract.stake(proposalId2, 1, 1500, { + await dxdVotingMachine.stake(proposalId2, 1, 1500, { from: accounts[1], }); await time.increase(3600 + 1); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); - await dxdVotingMachine.contract.execute(proposalId2, { + await dxdVotingMachine.execute(proposalId2, { from: accounts[1], gasPrice: constants.GAS_PRICE, }); // check boosted - assert.equal( - (await dxdVotingMachine.contract.proposals(proposalId2)).state, - "5" - ); + assert.equal((await dxdVotingMachine.proposals(proposalId2)).state, "5"); - await dxdVotingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[1], + gasPrice: constants.GAS_PRICE, + }); - const upStake = await dxdVotingMachine.contract.stake( - proposalId, - 1, - 100, - { - from: accounts[1], - } - ); + const upStake = await dxdVotingMachine.stake(proposalId, 1, 100, { + from: accounts[1], + }); // check preBoosted expectEvent(upStake.receipt, "StateChange", { @@ -1891,36 +1525,22 @@ contract("DXDVotingMachine", function (accounts) { _proposalState: "4", }); - await dxdVotingMachine.contract.vote( - proposalId2, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[0], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { + from: accounts[0], + gasPrice: constants.GAS_PRICE, + }); - await dxdVotingMachine.contract.vote( - proposalId2, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[3], gasPrice: constants.GAS_PRICE } - ); + await dxdVotingMachine.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { + from: accounts[3], + gasPrice: constants.GAS_PRICE, + }); // check executed - assert.equal( - (await dxdVotingMachine.contract.proposals(proposalId2)).state, - "2" - ); + assert.equal((await dxdVotingMachine.proposals(proposalId2)).state, "2"); - const downStake = await dxdVotingMachine.contract.stake( - proposalId, - 2, - 50, - { - from: accounts[0], - } - ); + const downStake = await dxdVotingMachine.stake(proposalId, 2, 50, { + from: accounts[0], + }); expectEvent(downStake.receipt, "ConfidenceLevelChange", { _proposalId: proposalId, @@ -2069,16 +1689,17 @@ contract("DXDVotingMachine", function (accounts) { await permissionRegistry.setETHPermission( org.avatar.address, actionMock.address, - testCallFrom(org.avatar.address).substring(0, 10), + helpers.testCallFrom(org.avatar.address).substring(0, 10), 0, true ); stakeProposalId = await helpers.getValueFromLogs( - await cheapVoteWalletScheme.proposeCalls( + await masterAvatarScheme.proposeCalls( [actionMock.address], - [testCallFrom(org.avatar.address)], + [helpers.testCallFrom(org.avatar.address)], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ), @@ -2086,23 +1707,20 @@ contract("DXDVotingMachine", function (accounts) { ); }); it("should execute a proposal but fail to stake", async function () { - const stake = await dxdVotingMachine.contract.stake( - stakeProposalId, - 1, - 2000, - { - from: accounts[1], - } - ); + const stake = await dxdVotingMachine.stake(stakeProposalId, 1, 2000, { + from: accounts[1], + }); expectEvent(stake.receipt, "StateChange", { _proposalId: stakeProposalId, _proposalState: "4", }); - await time.increase(3600 + 1); + await time.increase( + helpers.defaultParameters.preBoostedVotePeriodLimit + 1 + ); - await dxdVotingMachine.contract.vote( + await dxdVotingMachine.vote( stakeProposalId, 1, 0, @@ -2115,13 +1733,13 @@ contract("DXDVotingMachine", function (accounts) { // check Boosted assert.equal( - (await dxdVotingMachine.contract.proposals(stakeProposalId)).state, + (await dxdVotingMachine.proposals(stakeProposalId)).state, "5" ); - await time.increase(86400 + 1); + await time.increase(helpers.defaultParameters.boostedVotePeriodLimit + 1); - const executeStake = await dxdVotingMachine.contract.stake( + const executeStake = await dxdVotingMachine.stake( stakeProposalId, 1, 2000, @@ -2132,20 +1750,15 @@ contract("DXDVotingMachine", function (accounts) { expectEvent(executeStake.receipt, "StateChange", { _proposalId: stakeProposalId, - _proposalState: "2", // execute state + _proposalState: "2", }); expectEvent.notEmitted(executeStake.receipt, "Stake"); }); it("address cannot upstake and downstake on same proposal", async function () { - const upStake = await dxdVotingMachine.contract.stake( - stakeProposalId, - 1, - 100, - { - from: accounts[1], - } - ); + const upStake = await dxdVotingMachine.stake(stakeProposalId, 1, 100, { + from: accounts[1], + }); expectEvent(upStake.receipt, "Stake", { _proposalId: stakeProposalId, @@ -2155,14 +1768,9 @@ contract("DXDVotingMachine", function (accounts) { _amount: "100", }); - const downStake = await dxdVotingMachine.contract.stake( - stakeProposalId, - 2, - 100, - { - from: accounts[1], - } - ); + const downStake = await dxdVotingMachine.stake(stakeProposalId, 2, 100, { + from: accounts[1], + }); expectEvent.notEmitted(downStake.receipt, "Stake"); }); diff --git a/test/daostack/ContributionRewards.js b/test/daostack/ContributionRewards.js deleted file mode 100644 index 2c357800..00000000 --- a/test/daostack/ContributionRewards.js +++ /dev/null @@ -1,1406 +0,0 @@ -// -// Copied from https://github.com/daostack/arc/blob/master/test/contributionsreward.js -// - -import * as helpers from "../helpers"; -const constants = require("../helpers/constants"); - -const ContributionReward = artifacts.require("./ContributionReward.sol"); -const ERC20Mock = artifacts.require("./ERC20Mock.sol"); -const Avatar = artifacts.require("./DXAvatar.sol"); -const Redeemer = artifacts.require("./Redeemer.sol"); -const ETHRelayer = artifacts.require("./ETHRelayer.sol"); -const GnosisProxy = artifacts.require("./GnosisProxy.sol"); -const GnosisSafe = artifacts.require("./GnosisSafe.sol"); - -const { expectEvent, time } = require("@openzeppelin/test-helpers"); - -const checkRedeemedPeriods = async function ( - testSetup, - proposalId, - ReputationPeriod, - nativeTokenPeriod, - EtherPeriod, - ExternalTokenPeriod -) { - assert.equal( - await testSetup.contributionReward.getRedeemedPeriods( - proposalId, - testSetup.org.avatar.address, - 0 - ), - ReputationPeriod - ); - assert.equal( - await testSetup.contributionReward.getRedeemedPeriods( - proposalId, - testSetup.org.avatar.address, - 1 - ), - nativeTokenPeriod - ); - assert.equal( - await testSetup.contributionReward.getRedeemedPeriods( - proposalId, - testSetup.org.avatar.address, - 2 - ), - EtherPeriod - ); - assert.equal( - await testSetup.contributionReward.getRedeemedPeriods( - proposalId, - testSetup.org.avatar.address, - 3 - ), - ExternalTokenPeriod - ); -}; - -const checkRedeemedPeriodsLeft = async function ( - testSetup, - proposalId, - ReputationPeriod, - nativeTokenPeriod, - EtherPeriod, - ExternalTokenPeriod -) { - assert.equal( - await testSetup.contributionReward.getPeriodsToPay( - proposalId, - testSetup.org.avatar.address, - web3.utils.toBN(0) - ), - ReputationPeriod - ); - assert.equal( - await testSetup.contributionReward.getPeriodsToPay( - proposalId, - testSetup.org.avatar.address, - web3.utils.toBN(1) - ), - nativeTokenPeriod - ); - assert.equal( - await testSetup.contributionReward.getPeriodsToPay( - proposalId, - testSetup.org.avatar.address, - web3.utils.toBN(2) - ), - EtherPeriod - ); - assert.equal( - await testSetup.contributionReward.getPeriodsToPay( - proposalId, - testSetup.org.avatar.address, - web3.utils.toBN(3) - ), - ExternalTokenPeriod - ); -}; - -const setupContributionRewardParams = async function ( - contributionReward, - accounts, - votingMachineType = "none", - token -) { - let votingMachine, paramsHash; - if (votingMachineType !== "none") { - votingMachine = await helpers.setUpVotingMachine(token); - await contributionReward.setParameters( - votingMachine.params, - votingMachine.address - ); - paramsHash = await contributionReward.getParametersHash( - votingMachine.params, - votingMachine.address - ); - } else { - votingMachine = await helpers.setupAbsoluteVote(); - await contributionReward.setParameters( - votingMachine.params, - votingMachine.address - ); - paramsHash = await contributionReward.getParametersHash( - votingMachine.params, - votingMachine.address - ); - } - return { votingMachine, paramsHash }; -}; - -const setup = async function ( - accounts, - votingMachineType = "none", - tokenAddress = "0x0000000000000000000000000000000000000000" -) { - const standardTokenMock = await ERC20Mock.new(accounts[1], 100, "", "", "18"); - const contributionReward = await ContributionReward.new(); - const reputationArray = - votingMachineType !== "none" ? [1000, 100, 0] : [2000, 4000, 7000]; - const org = await helpers.setupOrganization( - [accounts[0], accounts[1], accounts[2]], - [1000, 0, 0], - reputationArray - ); - const contributionRewardParams = await setupContributionRewardParams( - contributionReward, - accounts, - votingMachineType, - tokenAddress, - org.avatar - ); - var permissions = "0x00000000"; - await org.daoCreator.setSchemes( - org.avatar.address, - [contributionReward.address], - [contributionRewardParams.paramsHash], - [permissions], - "metaData" - ); - return { - standardTokenMock, - contributionReward, - reputationArray, - org, - contributionRewardParams, - }; -}; -contract("ContributionReward", accounts => { - it("setParameters", async function () { - var contributionReward = await ContributionReward.new(); - var params = await setupContributionRewardParams(contributionReward); - var parameters = await contributionReward.parameters(params.paramsHash); - assert.equal(parameters[1], params.votingMachine.address); - }); - - it("proposeContributionReward log", async function () { - var testSetup = await setup(accounts); - var periodLength = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - "description-hash", - 10, - [1, 2, 3, periodLength, 5], - testSetup.standardTokenMock.address, - accounts[0] - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "NewContributionProposal"); - assert.equal( - await helpers.getValueFromLogs(tx, "_avatar", 0), - testSetup.org.avatar.address, - "Wrong log: _avatar" - ); - assert.equal( - await helpers.getValueFromLogs(tx, "_intVoteInterface", 0), - testSetup.contributionRewardParams.votingMachine.address, - "Wrong log: _intVoteInterface" - ); - assert.equal( - await helpers.getValueFromLogs(tx, "_descriptionHash", 15), - "description-hash", - "Wrong log: _contributionDescription" - ); - assert.equal( - await helpers.getValueFromLogs(tx, "_reputationChange", 0), - 10, - "Wrong log: _reputationChange" - ); - var arr = await helpers.getValueFromLogs(tx, "_rewards", 0); - assert.equal(arr[0].words[0], 1, "Wrong log: _rewards"); - assert.equal(arr[1].words[0], 2, "Wrong log: _rewards"); - assert.equal(arr[2].words[0], 3, "Wrong log: _rewards"); - assert.equal(arr[3].words[0], periodLength, "Wrong log: _rewards"); - assert.equal(arr[4].words[0], 5, "Wrong log: _rewards"); - assert.equal( - await helpers.getValueFromLogs(tx, "_externalToken", 0), - testSetup.standardTokenMock.address, - "Wrong log: _externalToken" - ); - assert.equal( - await helpers.getValueFromLogs(tx, "_beneficiary", 0), - accounts[0], - "Wrong log: _beneficiary" - ); - }); - - it("proposeContributionReward check beneficiary==0", async () => { - var testSetup = await setup(accounts); - var beneficiary = constants.NULL_ADDRESS; - var periodLength = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - 0, - [0, 0, 0, periodLength, 0], - testSetup.standardTokenMock.address, - beneficiary - ); - assert.equal( - await helpers.getValueFromLogs(tx, "_beneficiary"), - accounts[0] - ); - }); - - it("execute proposeContributionReward yes ", async function () { - var testSetup = await setup(accounts); - var periodLength = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - 0, - [0, 0, 0, periodLength, 0], - testSetup.standardTokenMock.address, - accounts[0] - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var organizationProposal = - await testSetup.contributionReward.organizationsProposals( - testSetup.org.avatar.address, - proposalId - ); - assert.notEqual(organizationProposal[8], 0); //executionTime - }); - - it("execute proposeContributionReward mint reputation ", async function () { - var testSetup = await setup(accounts); - var reputationReward = 12; - var periodLength = 50; - var numberOfPeriods = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [0, 0, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - accounts[1] - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - await time.increase(periodLength + 1); - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [true, false, false, false] - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RedeemReputation"); - assert.equal(tx.logs[0].args._amount, reputationReward); - var rep = await testSetup.org.reputation.balanceOf(accounts[1]); - assert.equal( - rep.toNumber(), - testSetup.reputationArray[1] + reputationReward - ); - }); - - it("execute proposeContributionReward mint tokens ", async function () { - var testSetup = await setup(accounts); - var reputationReward = 12; - var nativeTokenReward = 12; - var periodLength = 50; - var numberOfPeriods = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [nativeTokenReward, 0, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - accounts[1] - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - await time.increase(periodLength + 1); - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, true, false, false] - ); - var tokens = await testSetup.org.token.balanceOf(accounts[1]); - assert.equal(tokens.toNumber(), nativeTokenReward); - }); - - it("execute proposeContributionReward send ethers ", async function () { - var testSetup = await setup(accounts); - var reputationReward = 12; - var nativeTokenReward = 12; - var ethReward = 12; - var periodLength = 50; - var numberOfPeriods = 1; - //send some ether to the org avatar - var otherAvatar = await Avatar.new( - "otheravatar", - constants.NULL_ADDRESS, - constants.NULL_ADDRESS - ); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 20, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [nativeTokenReward, ethReward, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - otherAvatar.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - await time.increase(periodLength + 1); - await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - var eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward); - }); - - it("execute proposeContributionReward send across relayer ", async function () { - var testSetup = await setup(accounts); - var ethReward = 666; - var periodLength = 50; - var numberOfPeriods = 1; - //send some ether to the org avatar - var gnosisSafe = await GnosisSafe.new(); - var gnosisProxy = await GnosisProxy.new(gnosisSafe.address); - var ethRelayer = await ETHRelayer.new(gnosisProxy.address); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 666, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - 0, - [0, ethReward, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - ethRelayer.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - await time.increase(periodLength + 1); - await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - assert.equal(await web3.eth.getBalance(ethRelayer.address), ethReward); - await ethRelayer.relay(); - assert.equal(await web3.eth.getBalance(gnosisProxy.address), ethReward); - }); - - it("execute proposeContributionReward send externalToken ", async function () { - var testSetup = await setup(accounts); - //give some tokens to organization avatar - await testSetup.standardTokenMock.transfer( - testSetup.org.avatar.address, - 30, - { from: accounts[1] } - ); - var reputationReward = 12; - var nativeTokenReward = 12; - var ethReward = 12; - var externalTokenReward = 12; - var periodLength = 50; - var numberOfPeriods = 1; - //send some ether to the org avatar - var otherAvatar = await Avatar.new( - "otheravatar", - constants.NULL_ADDRESS, - constants.NULL_ADDRESS - ); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 20, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [ - nativeTokenReward, - ethReward, - externalTokenReward, - periodLength, - numberOfPeriods, - ], - testSetup.standardTokenMock.address, - otherAvatar.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - await time.increase(periodLength + 1); - await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, false, true] - ); - var tokens = await testSetup.standardTokenMock.balanceOf( - otherAvatar.address - ); - assert.equal(tokens.toNumber(), externalTokenReward); - }); - - it("execute proposeContributionReward proposal decision=='no' send externalToken ", async function () { - var testSetup = await setup(accounts); - var reputationReward = 12; - var nativeTokenReward = 12; - var ethReward = 12; - var externalTokenReward = 12; - var periodLength = 50; - var numberOfPeriods = 1; - //send some ether to the org avatar - var otherAvatar = await Avatar.new( - "otheravatar", - constants.NULL_ADDRESS, - constants.NULL_ADDRESS - ); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 20, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [ - nativeTokenReward, - ethReward, - externalTokenReward, - periodLength, - numberOfPeriods, - ], - testSetup.standardTokenMock.address, - otherAvatar.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - var organizationProposal = - await testSetup.contributionReward.organizationsProposals( - testSetup.org.avatar.address, - proposalId - ); - assert.equal(organizationProposal[5], otherAvatar.address); //beneficiary - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 0, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - await time.increase(periodLength + 1); - try { - await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [true, true, true, true] - ); - assert( - false, - "redeem should revert because there was no positive voting" - ); - } catch (ex) { - helpers.assertVMException(ex); - } - }); - - it("redeem periods ether ", async function () { - var testSetup = await setup(accounts); - var reputationReward = 0; - var nativeTokenReward = 0; - var ethReward = 3; - var periodLength = 50; - var numberOfPeriods = 5; - //send some ether to the org avatar - var otherAvatar = await Avatar.new( - "otheravatar", - constants.NULL_ADDRESS, - constants.NULL_ADDRESS - ); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 12, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [nativeTokenReward, ethReward, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - otherAvatar.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - await time.increase(periodLength + 1); - - await checkRedeemedPeriods(testSetup, proposalId, 0, 0, 0, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 1, 1, 1, 1); - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RedeemEther"); - assert.equal(tx.logs[0].args._amount, ethReward); - var eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward); - - await checkRedeemedPeriods(testSetup, proposalId, 0, 0, 1, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 1, 1, 0, 1); - //now try again on the same period - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - assert.equal(tx.logs.length, 0); - eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward); - - //now try again on 2nd period - await time.increase(periodLength + 1); - - await checkRedeemedPeriods(testSetup, proposalId, 0, 0, 1, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 2, 2, 1, 2); - - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RedeemEther"); - assert.equal(tx.logs[0].args._amount, ethReward); - eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward * 2); - - //now try again on 4th period - await time.increase(periodLength * 2 + 1); - - await checkRedeemedPeriods(testSetup, proposalId, 0, 0, 2, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 4, 4, 2, 4); - - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RedeemEther"); - assert.equal(tx.logs[0].args._amount, ethReward * 2); - eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward * 4); - - //now try again on 5th period - no ether on avatar should revert - await time.increase(periodLength + 1); - await checkRedeemedPeriods(testSetup, proposalId, 0, 0, 4, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 5, 5, 1, 5); - try { - await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - assert(false, "redeem should revert because no ether left on avatar"); - } catch (ex) { - helpers.assertVMException(ex); - } - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: ethReward, - }); - - await checkRedeemedPeriods(testSetup, proposalId, 0, 0, 4, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 5, 5, 1, 5); - - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RedeemEther"); - assert.equal(tx.logs[0].args._amount, ethReward); - eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward * 5); - - await checkRedeemedPeriods(testSetup, proposalId, 0, 0, 5, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 5, 5, 0, 5); - - //cannot redeem any more.. - await time.increase(periodLength + 1); - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [false, false, true, false] - ); - assert.equal(tx.logs.length, 0); - eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward * 5); - - await checkRedeemedPeriods(testSetup, proposalId, 0, 0, 5, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 5, 5, 0, 5); - }); - - it("execute proposeContributionReward mint negative reputation ", async function () { - var testSetup = await setup(accounts); - var reputationReward = -12; - var periodLength = 50; - var numberOfPeriods = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [0, 0, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - accounts[0] - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - await time.increase(periodLength + 1); - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [true, false, false, false] - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RedeemReputation"); - assert.equal(tx.logs[0].args._amount, reputationReward); - var rep = await testSetup.org.reputation.balanceOf(accounts[0]); - assert.equal( - rep.toNumber(), - testSetup.reputationArray[0] + reputationReward - ); - }); - - it("call execute should revert ", async function () { - var testSetup = await setup(accounts); - var reputationReward = -12; - var periodLength = 50; - var numberOfPeriods = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [0, 0, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - accounts[0] - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - try { - await testSetup.contributionReward.executeProposal(proposalId, 1); - assert(false, "only voting machine can call execute"); - } catch (ex) { - helpers.assertVMException(ex); - } - }); - - it("get redeemed periods left ", async function () { - var testSetup = await setup(accounts); - var periodLength = 1; - var fakePId = "0x1234"; - await checkRedeemedPeriodsLeft(testSetup, fakePId, 0, 0, 0, 0); - - await checkRedeemedPeriods(testSetup, fakePId, 0, 0, 0, 0); - - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - 0, - [0, 0, 0, periodLength, 0], - testSetup.standardTokenMock.address, - accounts[0] - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await checkRedeemedPeriods(testSetup, fakePId, 0, 0, 0, 0); - await checkRedeemedPeriodsLeft(testSetup, proposalId, 0, 0, 0, 0); - }); - - // eslint-disable-next-line max-len - it("execute proposeContributionReward via genesisProtocol voting machine and redeem using Redeemer", async function () { - var standardTokenMock = await ERC20Mock.new( - accounts[0], - 1000, - "", - "", - "18" - ); - var testSetup = await setup(accounts, "gen", standardTokenMock.address); - var reputationReward = 12; - var nativeTokenReward = 12; - var ethReward = 12; - var periodLength = 50; - var numberOfPeriods = 1; - //send some ether to the org avatar - var otherAvatar = await Avatar.new( - "otheravatar", - constants.NULL_ADDRESS, - constants.NULL_ADDRESS - ); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 20, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [nativeTokenReward, ethReward, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - otherAvatar.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[0] } - ); - await time.increase(periodLength + 1); - var arcUtils = await Redeemer.new(); - var redeemRewards = await arcUtils.redeem.call( - testSetup.contributionReward.address, - testSetup.contributionRewardParams.votingMachine.address, - proposalId, - testSetup.org.avatar.address, - accounts[0] - ); - assert.equal(redeemRewards[0][1], 100); //redeemRewards[0] gpRewards - assert.equal(redeemRewards[0][2], 60); - assert.equal(redeemRewards[1][0], 0); //daoBountyRewards - assert.equal(redeemRewards[1][1], 0); //daoBountyRewards - assert.equal(redeemRewards[2], false); //isExecuted - assert.equal(redeemRewards[3], 1); //winningVote - assert.equal(redeemRewards[4], reputationReward); //crReputationReward - assert.equal(redeemRewards[5], nativeTokenReward); //crNativeTokenReward - assert.equal(redeemRewards[6], ethReward); //crEthReward - assert.equal(redeemRewards[7], 0); //crExternalTokenReward - - await arcUtils.redeem( - testSetup.contributionReward.address, - testSetup.contributionRewardParams.votingMachine.address, - proposalId, - testSetup.org.avatar.address, - accounts[0] - ); - - var eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward); - assert.equal( - await testSetup.org.reputation.balanceOf(otherAvatar.address), - reputationReward - ); - assert.equal( - await testSetup.org.token.balanceOf(otherAvatar.address), - nativeTokenReward - ); - var reputation = await testSetup.org.reputation.balanceOf(accounts[0]); - var reputationGainAsVoter = 0; - var proposingRepRewardConstA = 60; - var reputationGainAsProposer = proposingRepRewardConstA; - assert.equal( - reputation, - 1000 + reputationGainAsVoter + reputationGainAsProposer - ); - }); - - // eslint-disable-next-line max-len - it("execute proposeContributionReward via genesisProtocol voting machine and redeem using Redeemer for un executed boosted proposal", async function () { - var standardTokenMock = await ERC20Mock.new( - accounts[0], - 1000, - "", - "", - "18" - ); - var testSetup = await setup(accounts, "gen", standardTokenMock.address); - var reputationReward = 12; - var nativeTokenReward = 12; - var ethReward = 12; - var periodLength = 0; - var numberOfPeriods = 1; - //send some ether to the org avatar - var otherAvatar = await Avatar.new( - "otheravatar", - constants.NULL_ADDRESS, - constants.NULL_ADDRESS - ); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 20, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [nativeTokenReward, ethReward, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - otherAvatar.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1] } - ); - await standardTokenMock.approve( - testSetup.contributionRewardParams.votingMachine.contract.address, - 1000, - { from: accounts[0] } - ); - const stakeTx = - await testSetup.contributionRewardParams.votingMachine.contract.stake( - proposalId, - 1, - 1000, - { from: accounts[0] } - ); - expectEvent(stakeTx.receipt, "StateChange", { - _proposalId: proposalId, - _proposalState: "4", - }); - - await time.increase(3600 + 1); - const boostTx = - await testSetup.contributionRewardParams.votingMachine.contract.execute( - proposalId, - { from: accounts[0] } - ); - expectEvent(boostTx.receipt, "StateChange", { - _proposalId: proposalId, - _proposalState: "5", - }); - - await time.increase(86400 + 1); - var arcUtils = await Redeemer.new(); - var redeemRewards = await arcUtils.redeem.call( - testSetup.contributionReward.address, - testSetup.contributionRewardParams.votingMachine.address, - proposalId, - testSetup.org.avatar.address, - accounts[0] - ); - assert.equal(redeemRewards[0][1], 0); //redeemRewards[0] gpRewards - assert.equal(redeemRewards[0][2], 60); - assert.equal(redeemRewards[1][0], 0); //daoBountyRewards - assert.equal(redeemRewards[1][1], 15); //daoBountyRewards - assert.equal(redeemRewards[2], true); //isExecuted - assert.equal(redeemRewards[3], 1); //winningVote - assert.equal(redeemRewards[4], reputationReward); //crReputationReward - assert.equal(redeemRewards[5], nativeTokenReward); //crNativeTokenReward - assert.equal(redeemRewards[6], ethReward); //crEthReward - assert.equal(redeemRewards[7], 0); //crExternalTokenReward - - await arcUtils.redeem( - testSetup.contributionReward.address, - testSetup.contributionRewardParams.votingMachine.address, - proposalId, - testSetup.org.avatar.address, - accounts[0] - ); - - var eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward); - assert.equal( - await testSetup.org.reputation.balanceOf(otherAvatar.address), - reputationReward - ); - assert.equal( - await testSetup.org.token.balanceOf(otherAvatar.address), - nativeTokenReward - ); - var reputation = await testSetup.org.reputation.balanceOf(accounts[0]); - var reputationGainAsVoter = 0; - var proposingRepRewardConstA = 60; - var reputationGainAsProposer = proposingRepRewardConstA; - assert.equal( - reputation, - 1000 + reputationGainAsVoter + reputationGainAsProposer - ); - }); - - // eslint-disable-next-line max-len - it("execute proposeContributionReward via dxd voting machine and redeem using Redeemer for un executed boosted proposal", async function () { - var standardTokenMock = await ERC20Mock.new( - accounts[0], - 1000, - "", - "", - "18" - ); - var testSetup = await setup(accounts, "dxd", standardTokenMock.address); - var reputationReward = 12; - var nativeTokenReward = 12; - var ethReward = 12; - var periodLength = 0; - var numberOfPeriods = 1; - //send some ether to the org avatar - var otherAvatar = await Avatar.new( - "otheravatar", - constants.NULL_ADDRESS, - constants.NULL_ADDRESS - ); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 20, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [nativeTokenReward, ethReward, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - otherAvatar.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1] } - ); - await standardTokenMock.approve( - testSetup.contributionRewardParams.votingMachine.contract.address, - 1000, - { from: accounts[0] } - ); - const stakeTx = - await testSetup.contributionRewardParams.votingMachine.contract.stake( - proposalId, - 1, - 1000, - { from: accounts[0] } - ); - - // Check it change to pre-boosted - expectEvent(stakeTx.receipt, "StateChange", { - _proposalId: proposalId, - _proposalState: "4", - }); - await time.increase(3600 + 10); - - // Pre-boost time passes but ther eis no need to execute pre-boosted proposal in DXD voting machine - // It will be boosted and executed automatically in redeem - - await time.increase(86400 + 1); - var arcUtils = await Redeemer.new(); - var redeemRewards = await arcUtils.redeem.call( - testSetup.contributionReward.address, - testSetup.contributionRewardParams.votingMachine.address, - proposalId, - testSetup.org.avatar.address, - accounts[0] - ); - assert.equal(redeemRewards[0][1], 0); //redeemRewards[0] gpRewards - assert.equal(redeemRewards[0][2], 60); - assert.equal(redeemRewards[1][0], 0); //daoBountyRewards - assert.equal(redeemRewards[1][1], 15); //daoBountyRewards - assert.equal(redeemRewards[2], true); //isExecuted - assert.equal(redeemRewards[3], 1); //winningVote - assert.equal(redeemRewards[4], reputationReward); //crReputationReward - assert.equal(redeemRewards[5], nativeTokenReward); //crNativeTokenReward - assert.equal(redeemRewards[6], ethReward); //crEthReward - assert.equal(redeemRewards[7], 0); //crExternalTokenReward - - const redeemTx = await arcUtils.redeem( - testSetup.contributionReward.address, - testSetup.contributionRewardParams.votingMachine.address, - proposalId, - testSetup.org.avatar.address, - accounts[0] - ); - - // Check it changed to executed in redeem - await expectEvent.inTransaction( - redeemTx.tx, - testSetup.contributionRewardParams.votingMachine.contract, - "StateChange", - { - _proposalId: proposalId, - _proposalState: "2", - } - ); - - var eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, ethReward); - assert.equal( - await testSetup.org.reputation.balanceOf(otherAvatar.address), - reputationReward - ); - assert.equal( - await testSetup.org.token.balanceOf(otherAvatar.address), - nativeTokenReward - ); - var reputation = await testSetup.org.reputation.balanceOf(accounts[0]); - var reputationGainAsVoter = 0; - var proposingRepRewardConstA = 60; - var reputationGainAsProposer = proposingRepRewardConstA; - assert.equal( - reputation, - 1000 + reputationGainAsVoter + reputationGainAsProposer - ); - }); - - // eslint-disable-next-line max-len - it("execute proposeContributionReward via genesisProtocol voting machine and redeem using Redeemer for negative proposal", async function () { - var standardTokenMock = await ERC20Mock.new( - accounts[0], - 1000, - "", - "", - "18" - ); - var testSetup = await setup(accounts, "gen", standardTokenMock.address); - var reputationReward = 12; - var nativeTokenReward = 12; - var ethReward = 12; - var periodLength = 50; - var numberOfPeriods = 1; - //send some ether to the org avatar - var otherAvatar = await Avatar.new( - "otheravatar", - constants.NULL_ADDRESS, - constants.NULL_ADDRESS - ); - await web3.eth.sendTransaction({ - from: accounts[0], - to: testSetup.org.avatar.address, - value: 20, - }); - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [nativeTokenReward, ethReward, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - otherAvatar.address - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 2, - 0, - constants.NULL_ADDRESS, - { from: accounts[0] } - ); - await time.increase(periodLength + 1); - var arcUtils = await Redeemer.new(); - await arcUtils.redeem( - testSetup.contributionReward.address, - testSetup.contributionRewardParams.votingMachine.address, - proposalId, - testSetup.org.avatar.address, - accounts[0] - ); - var eth = await web3.eth.getBalance(otherAvatar.address); - assert.equal(eth, 0); - assert.equal( - await testSetup.org.reputation.balanceOf(otherAvatar.address), - 0 - ); - assert.equal(await testSetup.org.token.balanceOf(otherAvatar.address), 0); - var reputation = await testSetup.org.reputation.balanceOf(accounts[0]); - //no reputation reward for proposer for negative proposal. - //reputation reward for a single voter = 0 - assert.equal(reputation, 1000); - }); - - // eslint-disable-next-line max-len - it("execute proposeContributionReward via genesisProtocol voting machine and redeem using Redeemer ExpiredInQueue", async function () { - var standardTokenMock = await ERC20Mock.new( - accounts[0], - 1000, - "", - "", - "18" - ); - var testSetup = await setup(accounts, "gen", standardTokenMock.address); - var reputationReward = 12; - var nativeTokenReward = 12; - var ethReward = 12; - var periodLength = 50; - var numberOfPeriods = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [nativeTokenReward, ethReward, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - constants.SOME_ADDRESS - ); - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[1] } - ); - await time.increase(172800 + 1); - var arcUtils = await Redeemer.new(); - await arcUtils.redeem( - testSetup.contributionReward.address, - testSetup.contributionRewardParams.votingMachine.address, - proposalId, - testSetup.org.avatar.address, - accounts[1] - ); - var proposal = - await testSetup.contributionRewardParams.votingMachine.contract.proposals( - proposalId - ); - assert.equal(proposal.state, 1); //ExpiredInQueue - var reputation = await testSetup.org.reputation.balanceOf(accounts[1]); - //accounts[1] redeems its deposit rep. - assert.equal(reputation.toNumber(), 100); - }); - - it("execute proposeContributionReward mint reputation with period 0 ", async function () { - var testSetup = await setup(accounts); - var reputationReward = 12; - var periodLength = 0; - var numberOfPeriods = 1; - var tx = await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [0, 0, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - accounts[1], - { from: accounts[2] } - ); - try { - await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [0, 0, 0, periodLength, 2], - testSetup.standardTokenMock.address, - accounts[1], - { from: accounts[2] } - ); - assert(false, "if periodLength==0 so numberOfPeriods must be 1"); - } catch (ex) { - helpers.assertVMException(ex); - } - - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.contributionRewardParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [true, false, false, false] - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RedeemReputation"); - assert.equal(tx.logs[0].args._amount, reputationReward); - var rep = await testSetup.org.reputation.balanceOf(accounts[1]); - assert.equal( - rep.toNumber(), - testSetup.reputationArray[1] + reputationReward - ); - //try to redeem again. - tx = await testSetup.contributionReward.redeem( - proposalId, - testSetup.org.avatar.address, - [true, false, false, false] - ); - assert.equal(tx.logs.length, 0); - rep = await testSetup.org.reputation.balanceOf(accounts[1]); - assert.equal( - rep.toNumber(), - testSetup.reputationArray[1] + reputationReward - ); - }); - - it("execute proposeContributionReward param validate ", async function () { - var testSetup = await setup(accounts); - let BigNumber = require("bignumber.js"); - let reputationReward = new BigNumber(2).toPower(255).sub(1).toString(10); - var periodLength = 1; - var numberOfPeriods = 2; - - try { - await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [0, 0, 0, periodLength, numberOfPeriods], - testSetup.standardTokenMock.address, - accounts[1], - { from: accounts[2] } - ); - assert(false, "numberOfPeriods * _reputationChange should not overflow"); - } catch (ex) { - helpers.assertVMException(ex); - } - reputationReward = 12; - var tokenReward = new BigNumber(2).toPower(256).sub(1).toString(10); - var ethReward = 0; - var externalTokenReward = 0; - try { - await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [ - tokenReward, - ethReward, - externalTokenReward, - periodLength, - numberOfPeriods, - ], - testSetup.standardTokenMock.address, - accounts[1], - { from: accounts[2] } - ); - assert(false, "numberOfPeriods * tokenReward should not overflow"); - } catch (ex) { - helpers.assertVMException(ex); - } - - tokenReward = 0; - ethReward = new BigNumber(2).toPower(256).sub(1).toString(10); - externalTokenReward = 0; - - try { - await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [ - tokenReward, - ethReward, - externalTokenReward, - periodLength, - numberOfPeriods, - ], - testSetup.standardTokenMock.address, - accounts[1], - { from: accounts[2] } - ); - assert(false, "numberOfPeriods * ethReward should not overflow"); - } catch (ex) { - helpers.assertVMException(ex); - } - - tokenReward = 0; - ethReward = 0; - externalTokenReward = new BigNumber(2).toPower(256).sub(1).toString(10); - - try { - await testSetup.contributionReward.proposeContributionReward( - testSetup.org.avatar.address, - web3.utils.asciiToHex("description"), - reputationReward, - [ - tokenReward, - ethReward, - externalTokenReward, - periodLength, - numberOfPeriods, - ], - testSetup.standardTokenMock.address, - accounts[1], - { from: accounts[2] } - ); - assert( - false, - "numberOfPeriods * externalTokenReward should not overflow" - ); - } catch (ex) { - helpers.assertVMException(ex); - } - }); -}); diff --git a/test/daostack/Controller.js b/test/daostack/Controller.js deleted file mode 100644 index 605baea8..00000000 --- a/test/daostack/Controller.js +++ /dev/null @@ -1,1042 +0,0 @@ -const helpers = require("../helpers"); - -const DxController = artifacts.require("./DxController.sol"); -const DxReputation = artifacts.require("./DxReputation.sol"); -const DxAvatar = artifacts.require("./DXAvatar.sol"); -const DxToken = artifacts.require("./DxToken.sol"); -const GlobalConstraintMock = artifacts.require( - "./test/GlobalConstraintMock.sol" -); -const ActionMock = artifacts.require("./test/ActionMock.sol"); -const ERC20Mock = artifacts.require("./test/ERC20Mock.sol"); -var constants = require("../helpers/constants"); - -var uint32 = require("uint32"); -let reputation, avatar, token, controller; -var amountToMint = 10; - -const setup = async function ( - accounts, - permission = "0", - registerScheme = accounts[0] -) { - var _controller; - token = await DxToken.new("TEST", "TST", 0); - // set up a reputation system - reputation = await DxReputation.new(); - await reputation.initialize("REPUTATION", "REP"); - avatar = await DxAvatar.new("name", token.address, reputation.address); - var sender = accounts[0]; - if (permission !== "0") { - sender = accounts[1]; - _controller = await DxController.new(avatar.address, { - from: sender, - gas: constants.GAS_LIMIT, - }); - await _controller.registerScheme( - registerScheme, - "0x0000000000000000000000000000000000000000", - permission, - avatar.address, - { from: accounts[1] } - ); - await _controller.unregisterSelf(avatar.address, { from: sender }); - await _controller - .getPastEvents("RegisterScheme", { - fromBlock: 0, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "RegisterScheme"); - assert.equal(events[0].args._scheme, registerScheme); - }); - } else { - _controller = await DxController.new(avatar.address, { - from: sender, - gas: constants.GAS_LIMIT, - }); - await _controller - .getPastEvents("RegisterScheme", { - fromBlock: 0, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events.length, 0); - }); - } - - controller = _controller; - return _controller; -}; - -const constraint = async function (method, pre = false, post = false) { - var globalConstraints = await GlobalConstraintMock.new(); - let globalConstraintsCountOrig = await controller.globalConstraintsCount( - avatar.address - ); - await globalConstraints.setConstraint( - web3.utils.asciiToHex(method), - pre, - post - ); - await controller.addGlobalConstraint( - globalConstraints.address, - web3.utils.asciiToHex("0"), - avatar.address - ); - let globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal( - globalConstraintsCount[0].toNumber(), - globalConstraintsCountOrig[0].toNumber() + (pre ? 0 : 1) - ); - assert.equal( - globalConstraintsCount[1].toNumber(), - globalConstraintsCountOrig[1].toNumber() + (post ? 0 : 1) - ); - return globalConstraints; -}; - -contract("Controller", accounts => { - it("getGlobalConstraintParameters", async () => { - controller = await setup(accounts); - // separate cases for pre and post - var globalConstraints = await constraint("gcParams1", true); - await controller.addGlobalConstraint( - globalConstraints.address, - "0x1235", - avatar.address - ); - var paramsHash = await controller.getGlobalConstraintParameters( - globalConstraints.address, - avatar.address - ); - - assert.equal( - paramsHash, - "0x1235000000000000000000000000000000000000000000000000000000000000" - ); - globalConstraints = await constraint("gcParams2", false, true); - - await controller.addGlobalConstraint( - globalConstraints.address, - "0x1236", - avatar.address - ); - - paramsHash = await controller.getGlobalConstraintParameters( - globalConstraints.address, - avatar.address - ); - - assert.equal( - paramsHash, - "0x1236000000000000000000000000000000000000000000000000000000000000" - ); - }); - - it("mint reputation via controller", async () => { - controller = await setup(accounts); - await reputation.transferOwnership(controller.address); - let tx = await controller.mintReputation( - amountToMint, - accounts[0], - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "MintReputation"); - assert.equal(tx.logs[0].args._amount, amountToMint); - assert.equal(tx.logs[0].args._to, accounts[0]); - let rep = await reputation.balanceOf(accounts[0]); - assert.equal(rep, amountToMint); - }); - - it("burn reputation via controller", async () => { - controller = await setup(accounts); - await reputation.transferOwnership(controller.address); - await controller.mintReputation(amountToMint, accounts[0], avatar.address); - let tx = await controller.burnReputation( - amountToMint - 1, - accounts[0], - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "BurnReputation"); - assert.equal(tx.logs[0].args._amount, amountToMint - 1); - assert.equal(tx.logs[0].args._from, accounts[0]); - let rep = await reputation.balanceOf(accounts[0]); - assert.equal(rep, 1); - }); - - it("mint tokens via controller", async () => { - controller = await setup(accounts); - await token.transferOwnership(controller.address); - let tx = await controller.mintTokens( - amountToMint, - accounts[0], - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "MintTokens"); - assert.equal(tx.logs[0].args._amount, amountToMint); - let balance = await token.balanceOf(accounts[0]); - assert.equal(balance, amountToMint); - }); - - it("register schemes", async () => { - controller = await setup(accounts); - let tx = await controller.registerScheme( - accounts[1], - web3.utils.asciiToHex("0"), - "0x00000000", - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RegisterScheme"); - }); - - it("register schemes - check permissions for register new scheme", async () => { - // Check scheme has at least the permissions it is changing, and at least the current permissions. - var i, j; - // controller; - for (j = 0; j <= 15; j++) { - //registered scheme has already permission to register(2) - controller = await setup(accounts, "0x" + uint32.toHex(j | 2)); - var register; - for (i = 0; i <= 15; i++) { - register = true; - try { - await controller.registerScheme( - accounts[1], - 0, - "0x" + uint32.toHex(i), - avatar.address - ); - } catch (ex) { - //registered scheme has already permission to register(2) and is register(1). - assert.notEqual(i & (~(j | 3), 0)); - register = false; - } - if (register) { - await controller.unregisterScheme(accounts[1], avatar.address); - register = false; - } - } - } - }); - - it("register schemes - check permissions for updating existing scheme", async () => { - // Check scheme has at least the permissions it is changing, and at least the current permissions. - controller = await setup(accounts, "0x0000000F"); - // scheme with permission 0x0000000F should be able to register scheme with permission 0x00000001 - let tx = await controller.registerScheme( - accounts[0], - "0x0000000000000000000000000000000000000000", - "0x00000001", - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RegisterScheme"); - - controller = await setup(accounts, "0x00000001"); - try { - await controller.registerScheme( - accounts[0], - "0x0000000000000000000000000000000000000000", - "0x00000002", - avatar.address - ); - assert( - false, - "scheme with permission 0x00000001 should not be able to register scheme with permission 0x00000002" - ); - } catch (ex) { - helpers.assertVMException(ex); - } - }); - - it("unregister schemes", async () => { - controller = await setup(accounts); - let tx = await controller.unregisterScheme(accounts[0], avatar.address); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "UnregisterScheme"); - }); - - it("unregister none registered scheme", async () => { - controller = await setup(accounts); - let tx = await controller.unregisterScheme(accounts[1], avatar.address); - assert.equal(tx.logs.length, 0); - }); - - it("unregister schemes - check permissions unregister scheme", async () => { - // Check scheme has at least the permissions it is changing, and at least the current permissions. - //1. setup - controller = await setup(accounts); - //2. account[0] register schemes ,on account[1] with variables permissions which could unregister other schemes. - var i, j; - var tx; - var registeredScheme = accounts[1]; - var unregisteredScheme = accounts[2]; - for (i = 0; i <= 5; i++) { - //registered scheme has already permission to register(2) - tx = await controller.registerScheme( - registeredScheme, - "0x0000000000000000000000000000000000000000", - "0x" + uint32.toHex(i | 3), - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RegisterScheme"); - for (j = 0; j <= 5; j++) { - tx = await controller.registerScheme( - unregisteredScheme, - "0x0000000000000000000000000000000000000000", - "0x" + uint32.toHex(j), - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RegisterScheme"); - //try to unregisterScheme - if (j & ~(i | 3)) { - //unregister should fail - try { - await controller.unregisterScheme( - unregisteredScheme, - avatar.address, - { from: registeredScheme } - ); - assert( - false, - "scheme with permission " + - uint32.toHex(i | 3) + - " should not be able to unregister scheme with permission" + - uint32.toHex(j) - ); - } catch (ex) { - helpers.assertVMException(ex); - } - } else { - //unregister should succeed - tx = await controller.unregisterScheme( - unregisteredScheme, - avatar.address, - { from: registeredScheme } - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "UnregisterScheme"); - } - } - } - }); - - it("call with none valid avatar should revert", async () => { - controller = await setup(accounts); - var registeredScheme = accounts[1]; - try { - await controller.registerScheme( - registeredScheme, - "0x0000000000000000000000000000000000000000", - "0x" + uint32.toHex(1 | 3), - "0x0000000000000000000000000000000000000000" - ); - assert(false, "call with none valid avatar should revert"); - } catch (ex) { - helpers.assertVMException(ex); - } - }); - - it("unregister self", async () => { - var tx; - controller = await setup(accounts, "0x00000000"); - tx = await controller.unregisterSelf(avatar.address, { from: accounts[1] }); - assert.equal(tx.logs.length, 0); // scheme was not registered - - tx = await controller.unregisterSelf(avatar.address); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "UnregisterScheme"); - }); - - it("isSchemeRegistered ", async () => { - var isSchemeRegistered; - controller = await setup(accounts, "0x00000000"); - isSchemeRegistered = await controller.isSchemeRegistered( - accounts[1], - avatar.address - ); - assert.equal(isSchemeRegistered, false); - isSchemeRegistered = await controller.isSchemeRegistered( - accounts[0], - avatar.address - ); - assert.equal(isSchemeRegistered, true); - }); - - it("addGlobalConstraint ", async () => { - controller = await setup(accounts); - var globalConstraints = await constraint(0); - var tx = await controller.addGlobalConstraint( - globalConstraints.address, - "0x0000000000000000000000000000000000000000", - avatar.address - ); - assert.equal( - await controller.isGlobalConstraintRegistered( - globalConstraints.address, - avatar.address - ), - true - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "AddGlobalConstraint"); - var count = await controller.globalConstraintsCount(avatar.address); - assert.equal(count[0], 1); //pre - assert.equal(count[1], 1); //post - }); - - it("removeGlobalConstraint ", async () => { - const zeroBytes32 = "0x0000000000000000000000000000000000000000"; - controller = await setup(accounts); - var globalConstraints = await GlobalConstraintMock.new(); - await globalConstraints.setConstraint(zeroBytes32, false, false); - var globalConstraints1 = await GlobalConstraintMock.new(); - await globalConstraints1.setConstraint( - web3.utils.asciiToHex("method"), - false, - false - ); - var globalConstraints2 = await GlobalConstraintMock.new(); - await globalConstraints2.setConstraint( - web3.utils.asciiToHex("method"), - false, - false - ); - var globalConstraints3 = await GlobalConstraintMock.new(); - await globalConstraints3.setConstraint( - web3.utils.asciiToHex("method"), - false, - false - ); - var globalConstraints4 = await GlobalConstraintMock.new(); - await globalConstraints4.setConstraint( - web3.utils.asciiToHex("method"), - false, - false - ); - - assert.equal( - await controller.isGlobalConstraintRegistered( - globalConstraints.address, - avatar.address - ), - false - ); - await controller.addGlobalConstraint( - globalConstraints.address, - zeroBytes32, - avatar.address - ); - await controller.addGlobalConstraint( - globalConstraints1.address, - zeroBytes32, - avatar.address - ); - await controller.addGlobalConstraint( - globalConstraints2.address, - zeroBytes32, - avatar.address - ); - await controller.addGlobalConstraint( - globalConstraints3.address, - zeroBytes32, - avatar.address - ); - await controller.addGlobalConstraint( - globalConstraints4.address, - zeroBytes32, - avatar.address - ); - var tx = await controller.removeGlobalConstraint( - globalConstraints2.address, - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RemoveGlobalConstraint"); - assert.equal( - await controller.isGlobalConstraintRegistered( - globalConstraints.address, - avatar.address - ), - true - ); - assert.equal( - await controller.isGlobalConstraintRegistered( - globalConstraints1.address, - avatar.address - ), - true - ); - assert.equal( - await controller.isGlobalConstraintRegistered( - globalConstraints2.address, - avatar.address - ), - false - ); - assert.equal( - await controller.isGlobalConstraintRegistered( - globalConstraints3.address, - avatar.address - ), - true - ); - assert.equal( - await controller.isGlobalConstraintRegistered( - globalConstraints4.address, - avatar.address - ), - true - ); - - let gcCount = await controller.globalConstraintsCount(avatar.address); - - assert.equal(gcCount[0], 4); - assert.equal(gcCount[1], 4); - - await controller.removeGlobalConstraint( - globalConstraints4.address, - avatar.address - ); - assert.equal( - await controller.isGlobalConstraintRegistered( - globalConstraints4.address, - avatar.address - ), - false - ); - gcCount = await controller.globalConstraintsCount(avatar.address); - assert.equal(gcCount[0], 3); - assert.equal(gcCount[1], 3); - }); - - it("upgrade controller ", async () => { - controller = await setup(accounts); - await reputation.transferOwnership(controller.address); - await token.transferOwnership(controller.address); - await avatar.transferOwnership(controller.address); - var tx = await controller.upgradeController(accounts[1], avatar.address); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "UpgradeController"); - }); - - it("upgrade controller check permission", async () => { - controller = await setup(accounts, "0x00000007"); - await reputation.transferOwnership(controller.address); - await token.transferOwnership(controller.address); - await avatar.transferOwnership(controller.address); - try { - await controller.upgradeController(accounts[1], avatar.address); - assert( - false, - "scheme with permission 0x00000007 is not allowed to upgrade " - ); - } catch (ex) { - helpers.assertVMException(ex); - } - }); - - it("generic call log", async () => { - controller = await setup(accounts, "0x00000010"); - await avatar.transferOwnership(controller.address); - let actionMock = await ActionMock.new(); - const encodeABI = helpers.testCallFrom(avatar.address); - var tx = await controller.genericCall( - actionMock.address, - encodeABI, - avatar.address, - 0 - ); - await avatar - .getPastEvents("GenericCall", { - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "GenericCall"); - assert.equal(events[0].args._contract, actionMock.address); - }); - }); - - it("generic call", async () => { - controller = await setup(accounts, "0x00000010"); - await avatar.transferOwnership(controller.address); - let actionMock = await ActionMock.new(); - const encodeABI = helpers.testCallFrom(avatar.address); - var result = await controller.genericCall.call( - actionMock.address, - encodeABI, - avatar.address, - 0 - ); - assert.equal( - result[1], - "0x0000000000000000000000000000000000000000000000000000000000000001" - ); - }); - - it("generic call withoutReturnValue", async () => { - controller = await setup(accounts, "0x00000010"); - await avatar.transferOwnership(controller.address); - let actionMock = await ActionMock.new(); - - const encodeABI = helpers.testCallWithoutReturnValueFrom(avatar.address); - var tx = await controller.genericCall( - actionMock.address, - encodeABI, - avatar.address, - 0 - ); - assert.equal( - helpers.logDecoder.decodeLogs(tx.receipt.rawLogs)[0].args._success, - true - ); - }); - - it("sendEther", async () => { - controller = await setup(accounts); - let otherAvatar = await DxAvatar.new( - "otheravatar", - constants.NULL_ADDRESS, - avatar.address - ); - await avatar.transferOwnership(controller.address); - //send some ether to the avatar - await web3.eth.sendTransaction({ - from: accounts[0], - to: avatar.address, - value: web3.utils.toWei("1", "ether"), - }); - //send some ether from an organization's avatar to the otherAvatar - var tx = await controller.sendEther( - web3.utils.toWei("1", "ether"), - otherAvatar.address, - avatar.address - ); - await avatar - .getPastEvents("SendEther", { - filter: { _addr: avatar.address }, // Using an array means OR: e.g. 20 or 23 - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "SendEther"); - }); - var avatarBalance = - (await web3.eth.getBalance(avatar.address)) / - web3.utils.toWei("1", "ether"); - assert.equal(avatarBalance, 0); - var otherAvatarBalance = - (await web3.eth.getBalance(otherAvatar.address)) / - web3.utils.toWei("1", "ether"); - assert.equal(otherAvatarBalance, 1); - }); - - it("externalTokenTransfer", async () => { - //External transfer token from avatar contract to other address - controller = await setup(accounts); - var standardToken = await ERC20Mock.new(avatar.address, 100, "", "", "18"); - let balanceAvatar = await standardToken.balanceOf(avatar.address); - assert.equal(balanceAvatar, 100); - await avatar.transferOwnership(controller.address); - var tx = await controller.externalTokenTransfer( - standardToken.address, - accounts[1], - 50, - avatar.address - ); - await avatar - .getPastEvents("ExternalTokenTransfer", { - filter: { _addr: avatar.address }, // Using an array means OR: e.g. 20 or 23 - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "ExternalTokenTransfer"); - }); - balanceAvatar = await standardToken.balanceOf(avatar.address); - assert.equal(balanceAvatar, 50); - let balance1 = await standardToken.balanceOf(accounts[1]); - assert.equal(balance1, 50); - }); - - it("externalTokenTransferFrom & ExternalTokenApproval", async () => { - var tx; - var to = accounts[1]; - controller = await setup(accounts); - var standardToken = await ERC20Mock.new(avatar.address, 100, "", "", "18"); - await avatar.transferOwnership(controller.address); - tx = await controller.externalTokenApproval( - standardToken.address, - avatar.address, - 50, - avatar.address - ); - await avatar - .getPastEvents("ExternalTokenApproval", { - filter: { _addr: avatar.address }, // Using an array means OR: e.g. 20 or 23 - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "ExternalTokenApproval"); - }); - tx = await controller.externalTokenTransferFrom( - standardToken.address, - avatar.address, - to, - 50, - avatar.address - ); - await avatar - .getPastEvents("ExternalTokenTransferFrom", { - filter: { _addr: avatar.address }, // Using an array means OR: e.g. 20 or 23 - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "ExternalTokenTransferFrom"); - }); - let balanceAvatar = await standardToken.balanceOf(avatar.address); - assert.equal(balanceAvatar, 50); - let balanceTo = await standardToken.balanceOf(to); - assert.equal(balanceTo, 50); - }); - - it("globalConstraints mintReputation add & remove", async () => { - await setup(accounts); - var globalConstraints = await constraint("mintReputation"); - await reputation.transferOwnership(controller.address); - try { - await controller.mintReputation( - amountToMint, - accounts[0], - avatar.address - ); - assert( - false, - "mint reputation should fail due to the global constraint " - ); - } catch (ex) { - helpers.assertVMException(ex); - } - await controller.removeGlobalConstraint( - globalConstraints.address, - avatar.address - ); - var globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal(globalConstraintsCount[0], 0); - assert.equal(globalConstraintsCount[1], 0); - let tx = await controller.mintReputation( - amountToMint, - accounts[0], - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "MintReputation"); - assert.equal(tx.logs[0].args._amount, amountToMint); - assert.equal(tx.logs[0].args._to, accounts[0]); - let rep = await reputation.balanceOf(accounts[0]); - assert.equal(rep, amountToMint); - }); - - it("globalConstraints register schemes add & remove", async () => { - controller = await setup(accounts); - var globalConstraints = await constraint("registerScheme"); - try { - await controller.registerScheme( - accounts[1], - constants.NULL_HASH, - "0x00000000", - avatar.address - ); - assert(false, "registerScheme should fail due to the global constraint "); - } catch (ex) { - helpers.assertVMException(ex); - } - await controller.removeGlobalConstraint( - globalConstraints.address, - avatar.address - ); - var globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal(globalConstraintsCount[0], 0); - assert.equal(globalConstraintsCount[1], 0); - let tx = await controller.registerScheme( - accounts[1], - constants.NULL_HASH, - "0x00000000", - avatar.address - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RegisterScheme"); - }); - - it("globalConstraints unregister schemes add & remove", async () => { - controller = await setup(accounts); - var globalConstraints = await constraint("registerScheme"); - try { - await controller.unregisterScheme(accounts[0], avatar.address); - assert( - false, - "unregisterScheme should fail due to the global constraint " - ); - } catch (ex) { - helpers.assertVMException(ex); - } - await controller.removeGlobalConstraint( - globalConstraints.address, - avatar.address - ); - var globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal(globalConstraintsCount[0], 0); - assert.equal(globalConstraintsCount[1], 0); - let tx = await controller.unregisterScheme(accounts[0], avatar.address); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "UnregisterScheme"); - }); - - it("globalConstraints generic call add & remove", async () => { - controller = await setup(accounts, "0x00000014"); - var globalConstraints = await constraint("genericCall"); - await avatar.transferOwnership(controller.address); - let actionMock = await ActionMock.new(); - - const encodeABI = helpers.testCallFrom(avatar.address); - try { - await controller.genericCall.call( - actionMock.address, - encodeABI, - avatar.address, - 0 - ); - assert(false, "genericCall should fail due to the global constraint "); - } catch (ex) { - helpers.assertVMException(ex); - } - await controller.removeGlobalConstraint( - globalConstraints.address, - avatar.address - ); - var globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal(globalConstraintsCount[0], 0); - assert.equal(globalConstraintsCount[1], 0); - var tx = await controller.genericCall( - actionMock.address, - encodeABI, - avatar.address, - 0 - ); - await avatar - .getPastEvents("GenericCall", { - filter: { _addr: avatar.address }, // Using an array means OR: e.g. 20 or 23 - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "GenericCall"); - }); - }); - - it("globalConstraints sendEther add & remove", async () => { - controller = await setup(accounts); - var globalConstraints = await constraint("sendEther"); - let otherAvatar = await DxAvatar.new( - "otheravatar", - constants.NULL_ADDRESS, - avatar.address - ); - await avatar.transferOwnership(controller.address); - web3.eth.sendTransaction({ - from: accounts[0], - to: avatar.address, - value: web3.utils.toWei("1", "ether"), - }); - - try { - await controller.sendEther( - web3.utils.toWei("1", "ether"), - otherAvatar.address, - avatar.address - ); - assert(false, "sendEther should fail due to the global constraint "); - } catch (ex) { - helpers.assertVMException(ex); - } - await controller.removeGlobalConstraint( - globalConstraints.address, - avatar.address - ); - var globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal(globalConstraintsCount[0], 0); - var tx = await controller.sendEther( - web3.utils.toWei("1", "ether"), - otherAvatar.address, - avatar.address - ); - await avatar - .getPastEvents("SendEther", { - filter: { _addr: avatar.address }, // Using an array means OR: e.g. 20 or 23 - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "SendEther"); - }); - var avatarBalance = - (await web3.eth.getBalance(avatar.address)) / - web3.utils.toWei("1", "ether"); - assert.equal(avatarBalance, 0); - var otherAvatarBalance = - (await web3.eth.getBalance(otherAvatar.address)) / - web3.utils.toWei("1", "ether"); - assert.equal(otherAvatarBalance, 1); - }); - - it("globalConstraints externalTokenTransfer add & remove", async () => { - controller = await setup(accounts); - var globalConstraints = await constraint("externalTokenTransfer"); - var standardToken = await ERC20Mock.new(avatar.address, 100, "", "", "18"); - let balanceAvatar = await standardToken.balanceOf(avatar.address); - assert.equal(balanceAvatar, 100); - await avatar.transferOwnership(controller.address); - - try { - await controller.externalTokenTransfer( - standardToken.address, - accounts[1], - 50, - avatar.address - ); - assert( - false, - "externalTokenTransfer should fail due to the global constraint " - ); - } catch (ex) { - helpers.assertVMException(ex); - } - await controller.removeGlobalConstraint( - globalConstraints.address, - avatar.address - ); - var globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal(globalConstraintsCount[0], 0); - var tx = await controller.externalTokenTransfer( - standardToken.address, - accounts[1], - 50, - avatar.address - ); - await avatar - .getPastEvents("ExternalTokenTransfer", { - filter: { _addr: avatar.address }, // Using an array means OR: e.g. 20 or 23 - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "ExternalTokenTransfer"); - }); - balanceAvatar = await standardToken.balanceOf(avatar.address); - assert.equal(balanceAvatar, 50); - let balance1 = await standardToken.balanceOf(accounts[1]); - assert.equal(balance1, 50); - }); - - it("getNativeReputation", async () => { - controller = await setup(accounts); - var nativeReputation = await controller.getNativeReputation(avatar.address); - assert.equal(nativeReputation, reputation.address); - }); - - it("globalConstraints externalTokenTransferFrom , externalTokenApproval", async () => { - var tx; - var to = accounts[1]; - controller = await setup(accounts); - var globalConstraints = await constraint("externalTokenApproval"); - var standardToken = await ERC20Mock.new(avatar.address, 100, "", "", "18"); - await avatar.transferOwnership(controller.address); - - try { - await controller.externalTokenApproval( - standardToken.address, - avatar.address, - 50, - avatar.address - ); - assert( - false, - "externalTokenApproval should fail due to the global constraint " - ); - } catch (ex) { - helpers.assertVMException(ex); - } - await controller.removeGlobalConstraint( - globalConstraints.address, - avatar.address - ); - var globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal(globalConstraintsCount[0], 0); - - tx = await controller.externalTokenApproval( - standardToken.address, - avatar.address, - 50, - avatar.address - ); - await avatar - .getPastEvents("ExternalTokenApproval", { - filter: { _addr: avatar.address }, // Using an array means OR: e.g. 20 or 23 - fromBlock: tx.blockNumber, - toBlock: "latest", - }) - .then(function (events) { - assert.equal(events[0].event, "ExternalTokenApproval"); - }); - globalConstraints = await constraint("externalTokenTransferFrom"); - try { - await controller.externalTokenTransferFrom( - standardToken.address, - avatar.address, - to, - 50, - avatar.address - ); - assert( - false, - "externalTokenTransferFrom should fail due to the global constraint " - ); - } catch (ex) { - helpers.assertVMException(ex); - } - await controller.removeGlobalConstraint( - globalConstraints.address, - avatar.address - ); - globalConstraintsCount = await controller.globalConstraintsCount( - avatar.address - ); - assert.equal(globalConstraintsCount[0], 0); - }); -}); diff --git a/test/daostack/Schemeregistrar.js b/test/daostack/Schemeregistrar.js deleted file mode 100644 index 81b77bca..00000000 --- a/test/daostack/Schemeregistrar.js +++ /dev/null @@ -1,472 +0,0 @@ -// -// Copied from https://github.com/daostack/arc/blob/master/test/schemeregistrar.js -// - -import * as helpers from "../helpers"; -const constants = require("../helpers/constants"); -const SchemeRegistrar = artifacts.require("./SchemeRegistrar.sol"); -const ERC20Mock = artifacts.require("./test/ERC20Mock.sol"); -const Controller = artifacts.require("./DxController.sol"); - -const setupSchemeRegistrarParams = async function (schemeRegistrar) { - const votingMachine = await helpers.setupAbsoluteVote( - constants.NULL_ADDRESS, - 50, - schemeRegistrar.address - ); - await schemeRegistrar.setParameters( - votingMachine.params, - votingMachine.params, - votingMachine.address - ); - const paramsHash = await schemeRegistrar.getParametersHash( - votingMachine.params, - votingMachine.params, - votingMachine.address - ); - return { votingMachine, paramsHash }; -}; - -const setup = async function (accounts) { - const fee = 10; - const standardTokenMock = await ERC20Mock.new(accounts[1], 100, "", "", "18"); - const schemeRegistrar = await SchemeRegistrar.new(); - const reputationArray = [20, 40, 70]; - const org = await helpers.setupOrganization( - [accounts[0], accounts[1], accounts[2]], - [1000, 0, 0], - reputationArray - ); - const schemeRegistrarParams = await setupSchemeRegistrarParams( - schemeRegistrar - ); - const permissions = "0x0000001F"; - await org.daoCreator.setSchemes( - org.avatar.address, - [schemeRegistrar.address], - [schemeRegistrarParams.paramsHash], - [permissions], - "metaData" - ); - - return { - fee, - standardTokenMock, - schemeRegistrar, - reputationArray, - org, - schemeRegistrarParams, - permissions, - }; -}; -contract("SchemeRegistrar", accounts => { - it("setParameters", async () => { - var schemeRegistrar = await SchemeRegistrar.new(); - var params = await setupSchemeRegistrarParams(schemeRegistrar); - var parameters = await schemeRegistrar.parameters(params.paramsHash); - assert.equal(parameters[2], params.votingMachine.address); - }); - - it("proposeScheme log", async function () { - var testSetup = await setup(accounts); - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - testSetup.schemeRegistrar.address, - constants.NULL_HASH, - "0x00000000", - constants.NULL_HASH - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "NewSchemeProposal"); - }); - - it("proposeToRemoveScheme log", async function () { - var testSetup = await setup(accounts); - - var tx = await testSetup.schemeRegistrar.proposeToRemoveScheme( - testSetup.org.avatar.address, - testSetup.schemeRegistrar.address, - constants.NULL_HASH - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "RemoveSchemeProposal"); - }); - - it("execute proposeScheme and execute -yes - fee > 0 ", async function () { - var testSetup = await setup(accounts); - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - constants.SOME_ADDRESS, - constants.NULL_HASH, - "0x00000000", - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - assert.equal( - await controller.isSchemeRegistered( - constants.SOME_ADDRESS, - testSetup.org.avatar.address - ), - true - ); - }); - - it("execute proposeScheme and execute -yes - permissions== 0x00000001", async function () { - var testSetup = await setup(accounts); - var permissions = "0x00000001"; - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - accounts[0], - constants.NULL_HASH, - permissions, - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - assert.equal( - await controller.isSchemeRegistered( - accounts[0], - testSetup.org.avatar.address - ), - true - ); - assert.equal( - await controller.getSchemePermissions( - accounts[0], - testSetup.org.avatar.address - ), - "0x00000001" - ); - }); - - it("execute proposeScheme and execute -yes - permissions== 0x00000002", async function () { - var testSetup = await setup(accounts); - var permissions = "0x00000002"; - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - accounts[0], - constants.NULL_HASH, - permissions, - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - assert.equal( - await controller.isSchemeRegistered( - accounts[0], - testSetup.org.avatar.address - ), - true - ); - assert.equal( - await controller.getSchemePermissions( - accounts[0], - testSetup.org.avatar.address - ), - "0x00000003" - ); - }); - - it("execute proposeScheme and execute -yes - permissions== 0x00000003", async function () { - var testSetup = await setup(accounts); - var permissions = "0x00000003"; - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - accounts[0], - constants.NULL_HASH, - permissions, - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - assert.equal( - await controller.isSchemeRegistered( - accounts[0], - testSetup.org.avatar.address - ), - true - ); - assert.equal( - await controller.getSchemePermissions( - accounts[0], - testSetup.org.avatar.address - ), - "0x00000003" - ); - }); - - it("execute proposeScheme and execute -yes - permissions== 0x00000008", async function () { - var testSetup = await setup(accounts); - var permissions = "0x00000008"; - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - accounts[0], - constants.NULL_HASH, - permissions, - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - assert.equal( - await controller.isSchemeRegistered( - accounts[0], - testSetup.org.avatar.address - ), - true - ); - assert.equal( - await controller.getSchemePermissions( - accounts[0], - testSetup.org.avatar.address - ), - "0x00000009" - ); - }); - - it("execute proposeScheme and execute -yes - permissions== 0x00000010", async function () { - var testSetup = await setup(accounts); - var permissions = "0x00000010"; - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - accounts[0], - constants.NULL_HASH, - permissions, - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - assert.equal( - await controller.isSchemeRegistered( - accounts[0], - testSetup.org.avatar.address - ), - true - ); - assert.equal( - await controller.getSchemePermissions( - accounts[0], - testSetup.org.avatar.address - ), - "0x00000011" - ); - }); - - it("execute proposeScheme and execute -yes - isRegistering==FALSE ", async function () { - var testSetup = await setup(accounts); - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - accounts[0], - constants.NULL_HASH, - "0x00000000", - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - assert.equal( - await controller.isSchemeRegistered( - accounts[0], - testSetup.org.avatar.address - ), - true - ); - assert.equal( - await controller.getSchemePermissions( - accounts[0], - testSetup.org.avatar.address - ), - "0x00000001" - ); - }); - - it("execute proposeScheme - no decision (same for remove scheme) - proposal data delete", async function () { - var testSetup = await setup(accounts); - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - accounts[0], - constants.NULL_HASH, - "0x00000000", - constants.NULL_HASH - ); - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - //check organizationsProposals before execution - var organizationProposal = - await testSetup.schemeRegistrar.organizationsProposals( - testSetup.org.avatar.address, - proposalId - ); - assert.equal(organizationProposal[1], true); //proposalType - - //Vote with reputation to trigger execution - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 2, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - //should not register because the decision is "no" - assert.equal( - await controller.isSchemeRegistered( - accounts[0], - testSetup.org.avatar.address - ), - false - ); - //check organizationsProposals after execution - organizationProposal = - await testSetup.schemeRegistrar.organizationsProposals( - testSetup.org.avatar.address, - proposalId - ); - assert.equal(organizationProposal[2], 0); //proposalType - }); - - it("execute proposeToRemoveScheme ", async function () { - var testSetup = await setup(accounts); - - var tx = await testSetup.schemeRegistrar.proposeToRemoveScheme( - testSetup.org.avatar.address, - testSetup.schemeRegistrar.address, - constants.NULL_HASH - ); - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - var controller = await Controller.at(await testSetup.org.avatar.owner()); - assert.equal( - await controller.isSchemeRegistered( - testSetup.schemeRegistrar.address, - testSetup.org.avatar.address - ), - true - ); - //Vote with reputation to trigger execution - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - assert.equal( - await controller.isSchemeRegistered( - testSetup.schemeRegistrar.address, - testSetup.org.avatar.address - ), - false - ); - //check organizationsProposals after execution - var organizationProposal = - await testSetup.schemeRegistrar.organizationsProposals( - testSetup.org.avatar.address, - proposalId - ); - assert.equal(organizationProposal[2], 0); //proposalType - }); - - it("execute proposeScheme and execute -yes - autoRegisterOrganization==TRUE arc scheme", async function () { - var testSetup = await setup(accounts); - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - constants.SOME_ADDRESS, - constants.NULL_HASH, - "0x00000000", - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - }); - - it("execute proposeScheme and execute -yes - autoRegisterOrganization==FALSE arc scheme", async function () { - var testSetup = await setup(accounts); - - var tx = await testSetup.schemeRegistrar.proposeScheme( - testSetup.org.avatar.address, - constants.SOME_ADDRESS, - constants.NULL_HASH, - "0x00000000", - constants.NULL_HASH - ); - //Vote with reputation to trigger execution - var proposalId = await helpers.getValueFromLogs(tx, "_proposalId", 1); - await testSetup.schemeRegistrarParams.votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - }); -}); diff --git a/test/dxdao/dxdao.js b/test/dxdao/dxdao.js deleted file mode 100644 index e82eb637..00000000 --- a/test/dxdao/dxdao.js +++ /dev/null @@ -1,121 +0,0 @@ -import * as helpers from "../helpers"; - -const PermissionRegistry = artifacts.require("./PermissionRegistry.sol"); -const WalletScheme = artifacts.require("./WalletScheme.sol"); -const DxController = artifacts.require("./DxController.sol"); -const DxAvatar = artifacts.require("./DXAvatar.sol"); -const DxToken = artifacts.require("./DxToken.sol"); -const DaoCreator = artifacts.require("./DaoCreator.sol"); -const DxControllerCreator = artifacts.require("./DxControllerCreator.sol"); -const DXDVotingMachine = artifacts.require("./DXDVotingMachine.sol"); -const ERC20Mock = artifacts.require("./ERC20Mock.sol"); - -contract("DXdao", function (accounts) { - const constants = helpers.constants; - - it("Wallet - execute proposeVote -positive decision - check action - with DXDVotingMachine", async function () { - const votingMachineToken = await ERC20Mock.new( - accounts[0], - 1000, - "", - "", - "18" - ); - const masterWalletScheme = await WalletScheme.new(); - const controllerCreator = await DxControllerCreator.new({ - gas: constants.GAS_LIMIT, - }); - const daoCreator = await DaoCreator.new(controllerCreator.address, { - gas: constants.GAS_LIMIT, - }); - const users = [accounts[0], accounts[1], accounts[2]]; - const usersTokens = [1000, 1000, 1000]; - const usersRep = [20, 10, 70]; - - var tx = await daoCreator.forgeOrg( - "testOrg", - "TEST", - "TST", - users, - usersTokens, - usersRep, - 0, - { gas: constants.GAS_LIMIT } - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "NewOrg"); - const avatar = await DxAvatar.at(tx.logs[0].args._avatar); - const token = await DxToken.at(await avatar.nativeToken()); - const controller = await DxController.at(await avatar.owner()); - - const votingMachine = await helpers.setUpVotingMachine( - votingMachineToken.address, - "dxd", - constants.NULL_ADDRESS - ); - - const genesisProtocol = await DXDVotingMachine.new(token.address, { - gas: constants.GAS_LIMIT, - }); - - // Parameters - const voteOnBehalf = constants.NULL_ADDRESS; - const _queuedVoteRequiredPercentage = 50; - const _queuedVotePeriodLimit = 60; - const _boostedVotePeriodLimit = 60; - const _preBoostedVotePeriodLimit = 0; - const _thresholdConst = 2000; - const _quietEndingPeriod = 0; - const _proposingRepReward = 60; - const _votersReputationLossRatio = 10; - const _minimumDaoBounty = 15; - const _daoBountyConst = 10; - const _activationTime = 0; - - genesisProtocol.setParameters( - [ - _queuedVoteRequiredPercentage, - _queuedVotePeriodLimit, - _boostedVotePeriodLimit, - _preBoostedVotePeriodLimit, - _thresholdConst, - _quietEndingPeriod, - _proposingRepReward, - _votersReputationLossRatio, - _minimumDaoBounty, - _daoBountyConst, - _activationTime, - ], - voteOnBehalf - ); - - const permissionRegistry = await PermissionRegistry.new(accounts[0], 10); - await permissionRegistry.initialize(); - - await masterWalletScheme.initialize( - avatar.address, - votingMachine.address, - true, - controller.address, - permissionRegistry.address, - "Master Scheme", - 86400, - 5 - ); - - await daoCreator.setSchemes( - avatar.address, - [masterWalletScheme.address], - [constants.NULL_HASH], - [ - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: true, - canChangeConstraints: true, - canRegisterSchemes: true, - }), - ], - "metaData" - ); - }); -}); diff --git a/test/dxvote/Utils.js b/test/dxvote/Utils.js deleted file mode 100644 index e412ef28..00000000 --- a/test/dxvote/Utils.js +++ /dev/null @@ -1,201 +0,0 @@ -import * as helpers from "../helpers"; - -const { time } = require("@openzeppelin/test-helpers"); -const moment = require("moment"); - -const WalletScheme = artifacts.require("./WalletScheme.sol"); -const PermissionRegistry = artifacts.require("./PermissionRegistry.sol"); -const ERC20Mock = artifacts.require("./ERC20Mock.sol"); -const ERC721Factory = artifacts.require("./ERC721Factory.sol"); -const ERC20VestingFactory = artifacts.require("./ERC20VestingFactory.sol"); -const TokenVesting = artifacts.require("./TokenVesting.sol"); - -contract("Dxvote Utils", function (accounts) { - let standardTokenMock, - permissionRegistry, - masterWalletScheme, - org, - votingMachine, - nftMinter, - vestingFactory; - - const constants = helpers.constants; - const executionTimeout = 172800 + 86400; // _queuedVotePeriodLimit + _boostedVotePeriodLimit - - beforeEach(async function () { - standardTokenMock = await ERC20Mock.new( - accounts[1], - web3.utils.toWei("100"), - "", - "", - "18" - ); - org = await helpers.setupOrganization( - [accounts[0], accounts[1], accounts[2]], - [1000, 1000, 1000], - [20000, 10000, 70000] - ); - votingMachine = await helpers.setUpVotingMachine( - standardTokenMock.address, - "dxd" - ); - await standardTokenMock.transfer( - org.avatar.address, - web3.utils.toWei("50"), - { from: accounts[1] } - ); - permissionRegistry = await PermissionRegistry.new(accounts[0], 30); - await permissionRegistry.initialize(); - - masterWalletScheme = await WalletScheme.new(); - await masterWalletScheme.initialize( - org.avatar.address, - votingMachine.address, - true, - org.controller.address, - permissionRegistry.address, - "Master Wallet", - executionTimeout, - 5 - ); - - await helpers.setDefaultControllerPermissions( - permissionRegistry, - org.avatar.address, - org.controller - ); - - nftMinter = await ERC721Factory.new("DXDAO NFT", "DXNFT", { - from: accounts[0], - }); - await nftMinter.transferOwnership(org.avatar.address); - vestingFactory = await ERC20VestingFactory.new( - standardTokenMock.address, - org.avatar.address - ); - - await org.daoCreator.setSchemes( - org.avatar.address, - [masterWalletScheme.address], - [votingMachine.params], - [ - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: true, - canChangeConstraints: true, - canRegisterSchemes: true, - }), - ], - "metaData" - ); - }); - - it("Mint NFT and create DXD vesting in one proposal", async function () { - const approveToVestingFactoryData = standardTokenMock.contract.methods - .approve(vestingFactory.address, constants.MAX_UINT_256) - .encodeABI(); - const vestingStart = moment().unix(); - const createVestingData = vestingFactory.contract.methods - .create( - accounts[3], - vestingStart, - moment.duration(1, "years").asSeconds(), - moment.duration(2, "years").asSeconds(), - web3.utils.toWei("10") - ) - .encodeABI(); - const mintNFTData = nftMinter.contract.methods - .mint(accounts[3], "tokenURIHere") - .encodeABI(); - - await permissionRegistry.addERC20Limit( - org.avatar.address, - standardTokenMock.address, - constants.MAX_UINT_256, - 0 - ); - - await permissionRegistry.setETHPermission( - org.avatar.address, - standardTokenMock.address, - approveToVestingFactoryData.substring(0, 10), - 0, - true - ); - - await permissionRegistry.setETHPermission( - org.avatar.address, - vestingFactory.address, - createVestingData.substring(0, 10), - 0, - true - ); - - await permissionRegistry.setETHPermission( - org.avatar.address, - nftMinter.address, - mintNFTData.substring(0, 10), - 0, - true - ); - - await time.increase(30); - - const tx = await masterWalletScheme.proposeCalls( - [standardTokenMock.address, vestingFactory.address, nftMinter.address], - [approveToVestingFactoryData, createVestingData, mintNFTData], - [0, 0, 0], - constants.TEST_TITLE, - constants.SOME_HASH - ); - - const proposalId = await helpers.getValueFromLogs(tx, "_proposalId"); - - const executionProposalTx = await votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); - const executionTxEvents = helpers.logDecoder.decodeLogs( - executionProposalTx.receipt.rawLogs - ); - const vestingCreatedEvent = executionTxEvents.find( - event => - event.name === "VestingCreated" && - web3.utils.toChecksumAddress(event.address) === vestingFactory.address - ); - const nftMintedEvent = executionTxEvents.find( - event => - event.name === "Transfer" && - web3.utils.toChecksumAddress(event.address) === nftMinter.address - ); - const vestingContract = await TokenVesting.at( - vestingCreatedEvent.args.vestingContractAddress - ); - assert.equal( - await nftMinter.ownerOf(nftMintedEvent.args.tokenId), - accounts[3] - ); - assert.equal( - await nftMinter.tokenURI(nftMintedEvent.args.tokenId), - "tokenURIHere" - ); - assert.equal(await vestingContract.start(), vestingStart); - assert.equal( - (await vestingContract.cliff()).toNumber(), - vestingStart + moment.duration(1, "years").asSeconds() - ); - assert.equal( - (await vestingContract.duration()).toNumber(), - moment.duration(2, "years").asSeconds() - ); - assert.equal(await vestingContract.revocable(), true); - assert.equal(await vestingContract.beneficiary(), accounts[3]); - assert.equal( - await standardTokenMock.balanceOf(vestingContract.address), - web3.utils.toWei("10") - ); - }); -}); diff --git a/test/dxvote/deploy.js b/test/dxvote/deploy.js deleted file mode 100644 index e6503b24..00000000 --- a/test/dxvote/deploy.js +++ /dev/null @@ -1,9 +0,0 @@ -require("@nomiclabs/hardhat-web3"); - -contract("DXvote develop deployment", function () { - it("Deploy DXvote", function (done) { - // TODO: See how this tests can be run in github CI, the use the setTimeout breaks the tests - if (!process.env.CI) hre.run("deploy-dxvote-develop").then(done); - else done(); - }); -}); diff --git a/test/erc20guild/ERC20Guild.js b/test/erc20guild/ERC20Guild.js index 7ea59958..6dca844e 100644 --- a/test/erc20guild/ERC20Guild.js +++ b/test/erc20guild/ERC20Guild.js @@ -1295,13 +1295,7 @@ contract("ERC20Guild", function (accounts) { await lockTokens(); await allowActionMockA(); - testToken = await ERC20Mock.new( - accounts[1], - 1000, - "TestToken", - "TTT", - "18" - ); + testToken = await ERC20Mock.new("TestToken", "TTT", 1000, accounts[1]); await testToken.transfer(erc20Guild.address, 300, { from: accounts[1] }); const setTestPermissions = await createProposal({ @@ -1579,9 +1573,9 @@ contract("ERC20Guild", function (accounts) { guild: erc20Guild, actions: [ { - to: [actionMockA.address, actionMockA.address], - data: ["0x00", "0x00"], - value: [50, 51], + to: [actionMockA.address], + data: ["0x00"], + value: [101], }, ], account: accounts[3], @@ -1592,7 +1586,6 @@ contract("ERC20Guild", function (accounts) { action: 1, account: accounts[3], }); - await setVotesOnProposal({ guild: erc20Guild, proposalId: guildProposalId, diff --git a/test/erc20guild/implementations/DXDGuild.js b/test/erc20guild/implementations/DXDGuild.js index c0591fe6..536eb5f8 100644 --- a/test/erc20guild/implementations/DXDGuild.js +++ b/test/erc20guild/implementations/DXDGuild.js @@ -1,3 +1,4 @@ +import { ZERO_ADDRESS } from "@openzeppelin/test-helpers/src/constants"; import * as helpers from "../../helpers"; const { createAndSetupGuildToken, @@ -14,7 +15,7 @@ const DXDGuild = artifacts.require("DXDGuild.sol"); const PermissionRegistry = artifacts.require("PermissionRegistry.sol"); const ActionMock = artifacts.require("ActionMock.sol"); const ERC20Mock = artifacts.require("ERC20Mock.sol"); -const WalletScheme = artifacts.require("WalletScheme.sol"); +const AvatarScheme = artifacts.require("AvatarScheme.sol"); require("chai").should(); @@ -24,10 +25,8 @@ contract("DXDGuild", function (accounts) { const VOTE_GAS = new BN("50000"); // 50k const MAX_GAS_PRICE = new BN("8000000000"); // 8 gwei - let walletScheme, - org, + let dxDao, actionMock, - votingMachine, guildToken, dxdGuild, tokenVault, @@ -41,59 +40,60 @@ contract("DXDGuild", function (accounts) { dxdGuild = await DXDGuild.new(); const votingMachineToken = await ERC20Mock.new( - accounts[0], - 0, - "Test Token", - "TT", - "18" + "DXDao", + "DXD", + 1000, + accounts[0] ); - votingMachine = await helpers.setUpVotingMachine( - votingMachineToken.address, - 0, - constants.NULL_ADDRESS - ); + dxDao = await helpers.deployDao({ + owner: accounts[0], + votingMachineToken: votingMachineToken.address, + repHolders: [ + { address: accounts[0], amount: 20 }, + { address: accounts[1], amount: 10 }, + { address: dxdGuild.address, amount: 70 }, + ], + }); - org = await helpers.setupOrganization( - [accounts[0], accounts[1], accounts[2], dxdGuild.address], - [0, 0, 0, 0], - [10, 10, 10, 40] + // Parameters + const voteOnBehalf = constants.NULL_ADDRESS; + const _queuedVoteRequiredPercentage = 50; + const _queuedVotePeriodLimit = 60; + const _boostedVotePeriodLimit = 60; + const _preBoostedVotePeriodLimit = 0; + const _thresholdConst = 2000; + const _quietEndingPeriod = 0; + const _proposingRepReward = 0; + const _votersReputationLossRatio = 10; + const _minimumDaoBounty = 15; + const _daoBountyConst = 10; + const _activationTime = 0; + + const defaultParamsHash = await helpers.setDefaultParameters( + dxDao.votingMachine ); const permissionRegistry = await PermissionRegistry.new(accounts[0], 10); await permissionRegistry.initialize(); - walletScheme = await WalletScheme.new(); - await walletScheme.initialize( - org.avatar.address, - votingMachine.address, - votingMachine.params, - org.controller.address, + const masterAvatarScheme = await AvatarScheme.new(); + + await masterAvatarScheme.initialize( + dxDao.avatar.address, + dxDao.votingMachine.address, + dxDao.controller.address, permissionRegistry.address, - "God Wallet Scheme", + "Master Scheme", 86400, 5 ); - await org.daoCreator.setSchemes( - org.avatar.address, - [walletScheme.address], - [votingMachine.params], - [ - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: true, - canChangeConstraints: true, - canRegisterSchemes: true, - }), - ], - "metaData" - ); - - await helpers.setDefaultControllerPermissions( - permissionRegistry, - org.avatar.address, - org.controller + await dxDao.controller.registerScheme( + masterAvatarScheme.address, + defaultParamsHash, + true, + true ); actionMock = await ActionMock.new(); @@ -110,7 +110,7 @@ contract("DXDGuild", function (accounts) { 10, TIMELOCK, permissionRegistry.address, - votingMachine.address + dxDao.votingMachine.address ); await time.increase(time.duration.seconds(1)); @@ -128,17 +128,18 @@ contract("DXDGuild", function (accounts) { await dxdGuild.lockTokens(250, { from: accounts[4] }); await permissionRegistry.setETHPermission( - org.avatar.address, + dxDao.avatar.address, actionMock.address, - helpers.testCallFrom(org.avatar.address).substring(0, 10), + helpers.testCallFrom(dxDao.avatar.address).substring(0, 10), 0, true ); - const tx = await walletScheme.proposeCalls( + const tx = await masterAvatarScheme.proposeCalls( [actionMock.address], - [helpers.testCallFrom(org.avatar.address)], + [helpers.testCallFrom(dxDao.avatar.address)], [0], + 2, "Test Title", constants.SOME_HASH ); @@ -147,19 +148,18 @@ contract("DXDGuild", function (accounts) { describe("DXDGuild", function () { it("execute a positive vote on the voting machine from the dxd-guild", async function () { - const DXDVotingMachineContract = await new web3.eth.Contract( - votingMachine.contract.abi + const positiveVoteData = web3.eth.abi.encodeFunctionCall( + dxDao.votingMachine.abi.find(x => x.name === "vote"), + [walletSchemeProposalId, 2, 0, constants.NULL_ADDRESS] + ); + const negativeVoteData = web3.eth.abi.encodeFunctionCall( + dxDao.votingMachine.abi.find(x => x.name === "vote"), + [walletSchemeProposalId, 1, 0, constants.NULL_ADDRESS] ); - const positiveVoteData = DXDVotingMachineContract.methods - .vote(walletSchemeProposalId, 1, 0, constants.NULL_ADDRESS) - .encodeABI(); - const negativeVoteData = DXDVotingMachineContract.methods - .vote(walletSchemeProposalId, 2, 0, constants.NULL_ADDRESS) - .encodeABI(); await expectRevert( dxdGuild.createProposal( - [votingMachine.address, votingMachine.address], + [dxDao.votingMachine.address, dxDao.votingMachine.address], [positiveVoteData, negativeVoteData], [0, 0], 2, @@ -170,7 +170,7 @@ contract("DXDGuild", function (accounts) { "ERC20Guild: Not enough votingPower to create proposal" ); const tx = await dxdGuild.createProposal( - [votingMachine.address, votingMachine.address], + [dxDao.votingMachine.address, dxDao.votingMachine.address], [positiveVoteData, negativeVoteData], [0, 0], 2, @@ -230,7 +230,7 @@ contract("DXDGuild", function (accounts) { proposalInfo.state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); - assert.equal(proposalInfo.to[0], votingMachine.address); + assert.equal(proposalInfo.to[0], dxDao.votingMachine.address); assert.equal(proposalInfo.value[0], 0); }); }); diff --git a/test/helpers/guild.js b/test/helpers/guild.js index e44acb73..43ee40b3 100644 --- a/test/helpers/guild.js +++ b/test/helpers/guild.js @@ -7,11 +7,10 @@ export async function createAndSetupGuildToken(accounts, balances) { const [, ...restOfBalances] = balances; const totalSupply = balances.reduce((a, b) => a + b, 0); const guildToken = await ERC20Mock.new( - firstAccount, - totalSupply, "Test Token", "TT", - "18" + totalSupply, + firstAccount ); await Promise.all( diff --git a/test/helpers/index.js b/test/helpers/index.js index bd308d2b..039dc1ee 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -1,16 +1,10 @@ const constants = require("./constants"); -const { encodePermission, decodePermission } = require("./permissions"); const { LogDecoder } = require("@maticnetwork/eth-decoder"); -const DxControllerCreator = artifacts.require("./DxControllerCreator.sol"); -const DaoCreator = artifacts.require("./DaoCreator.sol"); -const Avatar = artifacts.require("./Avatar.sol"); -const Controller = artifacts.require("./Controller.sol"); -const DAOToken = artifacts.require("./DAOToken.sol"); -const Reputation = artifacts.require("./Reputation.sol"); -const AbsoluteVote = artifacts.require("./AbsoluteVote.sol"); -const GenesisProtocol = artifacts.require("./GenesisProtocol.sol"); +const DAOAvatar = artifacts.require("./DAOAvatar.sol"); +const DAOController = artifacts.require("./DAOController.sol"); +const DAOReputation = artifacts.require("./DAOReputation.sol"); const DXDVotingMachine = artifacts.require("./DXDVotingMachine.sol"); const WalletScheme = artifacts.require("./WalletScheme.sol"); const ActionMock = artifacts.require("./ActionMock.sol"); @@ -20,12 +14,9 @@ const ERC721Factory = artifacts.require("./ERC721Factory.sol"); const ERC20Guild = artifacts.require("./ERC20Guild.sol"); export const logDecoder = new LogDecoder([ - Avatar.abi, - Controller.abi, - DAOToken.abi, - Reputation.abi, - AbsoluteVote.abi, - GenesisProtocol.abi, + DAOAvatar.abi, + DAOController.abi, + DAOReputation.abi, DXDVotingMachine.abi, WalletScheme.abi, PermissionRegistry.abi, @@ -34,29 +25,7 @@ export const logDecoder = new LogDecoder([ ERC20Guild.abi, ]); -export function getProposalAddress(tx) { - // helper function that returns a proposal object from the ProposalCreated event - // in the logs of tx - assert.equal(tx.logs[0].event, "ProposalCreated"); - const proposalAddress = tx.logs[0].args.proposaladdress; - return proposalAddress; -} - export function getValueFromLogs(tx, arg, eventName, index = 0) { - /** - * - * tx.logs look like this: - * - * [ { logIndex: 13, - * transactionIndex: 0, - * transactionHash: '0x999e51b4124371412924d73b60a0ae1008462eb367db45f8452b134e5a8d56c8', - * blockHash: '0xe35f7c374475a6933a500f48d4dfe5dce5b3072ad316f64fbf830728c6fe6fc9', - * blockNumber: 294, - * address: '0xd6a2a42b97ba20ee8655a80a842c2a723d7d488d', - * type: 'mined', - * event: 'NewOrg', - * args: { _avatar: '0xcc05f0cde8c3e4b6c41c9b963031829496107bbb' } } ] - */ if (!tx.logs || !tx.logs.length) { throw new Error("getValueFromLogs: Transaction has no logs"); } @@ -85,149 +54,30 @@ export function getValueFromLogs(tx, arg, eventName, index = 0) { return result; } -export async function etherForEveryone(accounts) { - // give all web3.eth.accounts some ether - for (let i = 0; i < 10; i++) { - await web3.eth.sendTransaction({ - to: accounts[i], - from: accounts[0], - value: web3.utils.toWei("0.1", "ether"), - }); - } -} - -export const outOfGasMessage = - "VM Exception while processing transaction: out of gas"; - -export function assertJumpOrOutOfGas(error) { - let condition = - error.message === outOfGasMessage || - error.message.search("invalid JUMP") > -1; - assert.isTrue( - condition, - "Expected an out-of-gas error or an invalid JUMP error, got this instead: " + - error.message - ); -} - -export function assertVMException(error) { - let condition = - error.message.search("VM Exception") > -1 || - error.message.search("Transaction reverted") > -1; - assert.isTrue( - condition, - "Expected a VM Exception, got this instead:" + error.message - ); -} - -export function assertInternalFunctionException(error) { - let condition = error.message.search("is not a function") > -1; - assert.isTrue( - condition, - "Expected a function not found Exception, got this instead:" + error.message - ); -} +export const deployDao = async function (deployConfig) { + const reputation = await DAOReputation.new(); + await reputation.initialize("DXDaoReputation", "DXRep"); -export function assertJump(error) { - assert.isAbove( - error.message.search("invalid JUMP"), - -1, - "Invalid JUMP error must be returned" + error.message - ); -} + const controller = await DAOController.new(); + await controller.initialize(deployConfig.owner, reputation.address); -export const setupAbsoluteVote = async function ( - voteOnBehalf = constants.NULL_ADDRESS, - precReq = 50 -) { - const absoluteVote = await AbsoluteVote.new(); - absoluteVote.setParameters(precReq, voteOnBehalf); - const params = await absoluteVote.getParametersHash(precReq, voteOnBehalf); - return { address: absoluteVote.address, contract: absoluteVote, params }; -}; + const avatar = await DAOAvatar.new(); + await avatar.initialize(controller.address); -export const setUpVotingMachine = async function ( - tokenAddress, - votingMachineType = "dxd", - voteOnBehalf = constants.NULL_ADDRESS, - _queuedVoteRequiredPercentage = 50, - _queuedVotePeriodLimit = 172800, - _boostedVotePeriodLimit = 86400, - _preBoostedVotePeriodLimit = 3600, - _thresholdConst = 2000, - _quietEndingPeriod = 0, - _proposingRepReward = 60, - _votersReputationLossRatio = 10, - _minimumDaoBounty = 15, - _daoBountyConst = 10, - _activationTime = 0 -) { - const votingMachine = - votingMachineType === "dxd" - ? await DXDVotingMachine.new(tokenAddress, { gas: constants.GAS_LIMIT }) - : await GenesisProtocol.new(tokenAddress, { gas: constants.GAS_LIMIT }); + for (let i = 0; i < deployConfig.repHolders.length; i++) { + await reputation.mint( + deployConfig.repHolders[i].address, + deployConfig.repHolders[i].amount + ); + } + await reputation.transferOwnership(controller.address); - // register default parameters - await votingMachine.setParameters( - [ - _queuedVoteRequiredPercentage, - _queuedVotePeriodLimit, - _boostedVotePeriodLimit, - _preBoostedVotePeriodLimit, - _thresholdConst, - _quietEndingPeriod, - _proposingRepReward, - _votersReputationLossRatio, - _minimumDaoBounty, - _daoBountyConst, - _activationTime, - ], - voteOnBehalf - ); - const params = await votingMachine.getParametersHash( - [ - _queuedVoteRequiredPercentage, - _queuedVotePeriodLimit, - _boostedVotePeriodLimit, - _preBoostedVotePeriodLimit, - _thresholdConst, - _quietEndingPeriod, - _proposingRepReward, - _votersReputationLossRatio, - _minimumDaoBounty, - _daoBountyConst, - _activationTime, - ], - voteOnBehalf + const votingMachine = await DXDVotingMachine.new( + deployConfig.votingMachineToken, + avatar.address ); - return { address: votingMachine.address, contract: votingMachine, params }; -}; - -export const setupOrganization = async function ( - daoCreatorOwner, - nativeTokenHolders, - reputationHolders, - cap = 0 -) { - const controllerCreator = await DxControllerCreator.new(); - const daoCreator = await DaoCreator.new(controllerCreator.address); - var tx = await daoCreator.forgeOrg( - "testOrg", - "TEST", - "TST", - daoCreatorOwner, - nativeTokenHolders, - reputationHolders, - cap - ); - assert.equal(tx.logs.length, 1); - assert.equal(tx.logs[0].event, "NewOrg"); - const avatar = await Avatar.at(tx.logs[0].args._avatar); - const token = await DAOToken.at(await avatar.nativeToken()); - const reputation = await Reputation.at(await avatar.nativeReputation()); - const controller = await Controller.at(await avatar.owner()); - return { daoCreator, avatar, token, reputation, controller }; + return { controller, avatar, reputation, votingMachine }; }; export async function getProposalId(tx, contract, eventName) { @@ -254,6 +104,48 @@ export function testCallWithoutReturnValueFrom(address) { .encodeABI(); } +// Parameters +export const defaultParameters = { + voteOnBehalf: constants.NULL_ADDRESS, + queuedVoteRequiredPercentage: 50, + queuedVotePeriodLimit: 60, + boostedVotePeriodLimit: 60, + preBoostedVotePeriodLimit: 10, + thresholdConst: 2000, + quietEndingPeriod: 10, + proposingRepReward: 0, + votersReputationLossRatio: 15, + minimumDaoBounty: 100, + daoBountyConst: 10, + activationTime: 0, +}; + +export const defaultParametersArray = [ + defaultParameters.queuedVoteRequiredPercentage, + defaultParameters.queuedVotePeriodLimit, + defaultParameters.boostedVotePeriodLimit, + defaultParameters.preBoostedVotePeriodLimit, + defaultParameters.thresholdConst, + defaultParameters.quietEndingPeriod, + defaultParameters.proposingRepReward, + defaultParameters.votersReputationLossRatio, + defaultParameters.minimumDaoBounty, + defaultParameters.daoBountyConst, + defaultParameters.activationTime, +]; + +export const setDefaultParameters = async function (votingMachine) { + await votingMachine.setParameters( + defaultParametersArray, + defaultParameters.voteOnBehalf + ); + + return await votingMachine.getParametersHash( + defaultParametersArray, + defaultParameters.voteOnBehalf + ); +}; + export function encodeERC20Transfer(to, value) { return web3.eth.abi.encodeFunctionCall( { @@ -318,81 +210,22 @@ export function getEventFromTx(tx, eventName) { return logs.find(event => event.name === eventName); } -export async function setDefaultControllerPermissions( - permissionRegistry, - from, - controller -) { - await Promise.all( - [ - controller.contract._jsonInterface.find( - method => method.name === "genericCall" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "mintTokens" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "unregisterSelf" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "addGlobalConstraint" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "removeGlobalConstraint" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "upgradeController" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "sendEther" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "externalTokenTransfer" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "externalTokenTransferFrom" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "externalTokenApproval" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "metaData" - ).signature, - ].map(async funcSignature => { - await permissionRegistry.setETHPermission( - from, - controller.address, - funcSignature, - 0, - false - ); - }) +export function encodeMaxSecondsForExecution(executionTimeout) { + const setMaxSecondsForExecutionData = web3.eth.abi.encodeFunctionCall( + { + name: "setMaxSecondsForExecution", + type: "function", + inputs: [ + { + type: "uint256", + name: "_maxSecondsForExecution", + }, + ], + }, + [executionTimeout] ); - await Promise.all( - [ - controller.contract._jsonInterface.find( - method => method.name === "mintReputation" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "burnReputation" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "registerScheme" - ).signature, - controller.contract._jsonInterface.find( - method => method.name === "unregisterScheme" - ).signature, - ].map(async funcSignature => { - await permissionRegistry.setETHPermission( - from, - controller.address, - funcSignature, - 0, - true - ); - }) - ); + return setMaxSecondsForExecutionData; } -export { encodePermission, decodePermission, constants }; +export { constants }; diff --git a/test/helpers/permissions.js b/test/helpers/permissions.js deleted file mode 100644 index d63dcc90..00000000 --- a/test/helpers/permissions.js +++ /dev/null @@ -1,88 +0,0 @@ -const binaryToHex = function (binaryString) { - const lookup = { - "0000": "0", - "0001": "1", - "0010": "2", - "0011": "3", - "0100": "4", - "0101": "5", - "0110": "6", - "0111": "7", - 1000: "8", - 1001: "9", - 1010: "A", - 1011: "B", - 1100: "C", - 1101: "D", - 1110: "E", - 1111: "F", - }; - var ret = ""; - binaryString = binaryString.split(" "); - for (var i = 0; i < binaryString.length; i++) { - ret += lookup[binaryString[i]]; - } - return ret; -}; - -const hexToBinary = function (hexString) { - hexString = hexString.replace(/^0x+/, ""); - const lookup = { - 0: "0000", - 1: "0001", - 2: "0010", - 3: "0011", - 4: "0100", - 5: "0101", - 6: "0110", - 7: "0111", - 8: "1000", - 9: "1001", - a: "1010", - b: "1011", - c: "1100", - d: "1101", - e: "1110", - f: "1111", - A: "1010", - B: "1011", - C: "1100", - D: "1101", - E: "1110", - F: "1111", - }; - - var ret = ""; - for (var i = 0, len = hexString.length; i < len; i++) { - if (hexString[i] !== "0") ret += lookup[hexString[i]]; - } - return ret; -}; - -// All 0: Not registered, -// 1st bit: Flag if the scheme is registered, -// 2nd bit: Scheme can register other schemes -// 3rd bit: Scheme can add/remove global constraints -// 4th bit: Scheme can upgrade the controller -// 5th bit: Scheme can call genericCall on behalf of the organization avatar -const encodePermission = function (permissions) { - const canGenericCall = permissions.canGenericCall || false; - const canUpgrade = permissions.canUpgrade || false; - const canChangeConstraints = permissions.canChangeConstraints || false; - const canRegisterSchemes = permissions.canRegisterSchemes || false; - const permissionBytes = `000${canGenericCall ? 1 : 0} ${canUpgrade ? 1 : 0}${ - canChangeConstraints ? 1 : 0 - }${canRegisterSchemes ? 1 : 0}1`; - return "0x000000" + binaryToHex(permissionBytes); -}; -const decodePermission = function (permission) { - permission = hexToBinary(permission); - return { - canGenericCall: permission.length > 3 && permission[4] === "1", - canUpgrade: permission.length > 3 && permission[5] === "1", - canChangeConstraints: permission.length > 3 && permission[6] === "1", - canRegisterSchemes: permission.length > 3 && permission[7] === "1", - }; -}; - -module.exports = { encodePermission, decodePermission }; diff --git a/test/dxvote/utils/ERC20VestingFactory.js b/test/utils/ERC20VestingFactory.js similarity index 95% rename from test/dxvote/utils/ERC20VestingFactory.js rename to test/utils/ERC20VestingFactory.js index 31fcf9ff..6a639d5d 100644 --- a/test/dxvote/utils/ERC20VestingFactory.js +++ b/test/utils/ERC20VestingFactory.js @@ -16,7 +16,7 @@ contract("ERC20VestingFactory", function (accounts) { describe("Create Vesting Contracts", function () { beforeEach(async function () { - dxdTokenMock = await ERC20Mock.new(dao, 1000, "", "", "18"); + dxdTokenMock = await ERC20Mock.new("", "", 1000, dao); vestingFactory = await ERC20VestingFactory.new(dxdTokenMock.address, dao); }); diff --git a/test/dxvote/utils/ERC721Factory.js b/test/utils/ERC721Factory.js similarity index 89% rename from test/dxvote/utils/ERC721Factory.js rename to test/utils/ERC721Factory.js index 25b63b29..2142eea3 100644 --- a/test/dxvote/utils/ERC721Factory.js +++ b/test/utils/ERC721Factory.js @@ -1,5 +1,5 @@ import { artifacts, contract } from "hardhat"; -import { SOME_ADDRESS, SOME_TOKEN_URI } from "../../helpers/constants"; +import { SOME_ADDRESS, SOME_TOKEN_URI } from "../helpers/constants"; import { expectRevert, expectEvent } from "@openzeppelin/test-helpers"; const ERC721Factory = artifacts.require("ERC721Factory.sol"); diff --git a/test/dxvote/PermissionRegistry.js b/test/utils/PermissionRegistry.js similarity index 67% rename from test/dxvote/PermissionRegistry.js rename to test/utils/PermissionRegistry.js index 15218165..960d4393 100644 --- a/test/dxvote/PermissionRegistry.js +++ b/test/utils/PermissionRegistry.js @@ -3,61 +3,47 @@ import * as helpers from "../helpers"; const { time, expectRevert } = require("@openzeppelin/test-helpers"); const WalletScheme = artifacts.require("./WalletScheme.sol"); +const AvatarScheme = artifacts.require("./AvatarScheme.sol"); const PermissionRegistry = artifacts.require("./PermissionRegistry.sol"); const ERC20Mock = artifacts.require("./ERC20Mock.sol"); const ActionMock = artifacts.require("./ActionMock.sol"); contract("PermissionRegistry", function (accounts) { let permissionRegistry, - masterWalletScheme, + masterAvatarScheme, quickWalletScheme, - org, - actionMock, - votingMachine; + dao, + actionMock; const constants = helpers.constants; const executionTimeout = 172800 + 86400; // _queuedVotePeriodLimit + _boostedVotePeriodLimit beforeEach(async function () { actionMock = await ActionMock.new(); - const standardTokenMock = await ERC20Mock.new( - accounts[1], - 1000, - "", - "", - "18" - ); - org = await helpers.setupOrganization( - [accounts[0], accounts[1], accounts[2]], - [1000, 1000, 1000], - [20000, 10000, 70000] - ); - votingMachine = await helpers.setUpVotingMachine( - standardTokenMock.address, - "dxd", - constants.NULL_ADDRESS, // voteOnBehalf - 50, // queuedVoteRequiredPercentage - 172800, // queuedVotePeriodLimit - 86400, // boostedVotePeriodLimit - 3600, // preBoostedVotePeriodLimit - 2000, // thresholdConst - 0, // quietEndingPeriod - 0, // proposingRepReward - 0, // votersReputationLossRatio - 15, // minimumDaoBounty - 10, // daoBountyConst - 0 // activationTime + const votingMachineToken = await ERC20Mock.new("", "", 1000, accounts[1]); + + dao = await helpers.deployDao({ + owner: accounts[0], + votingMachineToken: votingMachineToken.address, + repHolders: [ + { address: accounts[0], amount: 20000 }, + { address: accounts[1], amount: 10000 }, + { address: accounts[2], amount: 70000 }, + ], + }); + + const defaultParamsHash = await helpers.setDefaultParameters( + dao.votingMachine ); permissionRegistry = await PermissionRegistry.new(accounts[0], 30); await permissionRegistry.initialize(); - masterWalletScheme = await WalletScheme.new(); - await masterWalletScheme.initialize( - org.avatar.address, - votingMachine.address, - true, - org.controller.address, + masterAvatarScheme = await AvatarScheme.new(); + await masterAvatarScheme.initialize( + dao.avatar.address, + dao.votingMachine.address, + dao.controller.address, permissionRegistry.address, "Master Wallet", executionTimeout, @@ -66,10 +52,9 @@ contract("PermissionRegistry", function (accounts) { quickWalletScheme = await WalletScheme.new(); await quickWalletScheme.initialize( - org.avatar.address, - votingMachine.address, - false, - org.controller.address, + dao.avatar.address, + dao.votingMachine.address, + dao.controller.address, permissionRegistry.address, "Quick Wallet", executionTimeout, @@ -78,25 +63,17 @@ contract("PermissionRegistry", function (accounts) { await time.increase(30); - await org.daoCreator.setSchemes( - org.avatar.address, - [masterWalletScheme.address, quickWalletScheme.address], - [votingMachine.params, votingMachine.params], - [ - helpers.encodePermission({ - canGenericCall: true, - canUpgrade: true, - canChangeConstraints: true, - canRegisterSchemes: true, - }), - helpers.encodePermission({ - canGenericCall: false, - canUpgrade: false, - canChangeConstraints: false, - canRegisterSchemes: false, - }), - ], - "metaData" + await dao.controller.registerScheme( + masterAvatarScheme.address, + defaultParamsHash, + false, + true + ); + await dao.controller.registerScheme( + quickWalletScheme.address, + defaultParamsHash, + false, + false ); }); @@ -111,14 +88,14 @@ contract("PermissionRegistry", function (accounts) { const callData = helpers.testCallFrom(quickWalletScheme.address); await permissionRegistry.setETHPermission( - org.avatar.address, + dao.avatar.address, actionMock.address, callData.substring(0, 10), constants.MAX_UINT_256, false ); - await permissionRegistry.transferOwnership(org.avatar.address); + await permissionRegistry.transferOwnership(dao.avatar.address); await expectRevert( permissionRegistry.transferOwnership(accounts[0]), @@ -128,7 +105,7 @@ contract("PermissionRegistry", function (accounts) { const setETHPermissionDelayData = new web3.eth.Contract( PermissionRegistry.abi ).methods - .setETHPermissionDelay(quickWalletScheme.address, 60) + .setETHPermissionDelay(quickWalletScheme.address, 45) .encodeABI(); const setETHPermissionData = new web3.eth.Contract( @@ -143,10 +120,11 @@ contract("PermissionRegistry", function (accounts) { ) .encodeABI(); - const tx = await masterWalletScheme.proposeCalls( + const tx = await masterAvatarScheme.proposeCalls( [permissionRegistry.address, permissionRegistry.address], [setETHPermissionDelayData, setETHPermissionData], [0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); @@ -163,13 +141,9 @@ contract("PermissionRegistry", function (accounts) { 0 ); - await votingMachine.contract.vote( - proposalId1, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); + await dao.votingMachine.vote(proposalId1, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }); assert.equal( ( @@ -179,16 +153,16 @@ contract("PermissionRegistry", function (accounts) { callData.substring(0, 10) ) ).fromTime.toString(), - (await time.latest()).toNumber() + 60 + (await time.latest()).toNumber() + 45 ); assert.equal( await permissionRegistry.getETHPermissionDelay(quickWalletScheme.address), - 60 + 45 ); assert.equal( - (await masterWalletScheme.getOrganizationProposal(proposalId1)).state, + (await masterAvatarScheme.getOrganizationProposal(proposalId1)).state, constants.WALLET_SCHEME_PROPOSAL_STATES.executionSuccedd ); @@ -196,28 +170,25 @@ contract("PermissionRegistry", function (accounts) { [actionMock.address], [callData], [0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); const proposalId2 = await helpers.getValueFromLogs(tx2, "_proposalId"); - // The call to execute is not allowed YET, because we change the delay time to 60 seconds + // The call to execute is not allowed YET, because we change the delay time to 45 seconds await expectRevert( - votingMachine.contract.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { + dao.votingMachine.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { from: accounts[2], }), "PermissionRegistry: Call not allowed yet" ); // After increasing the time it will allow the proposal execution - await time.increase(60); - await votingMachine.contract.vote( - proposalId2, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); + await time.increase(45); + await dao.votingMachine.vote(proposalId2, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }); const organizationProposal = await quickWalletScheme.getOrganizationProposal(proposalId2); @@ -259,12 +230,13 @@ contract("PermissionRegistry", function (accounts) { ) .encodeABI(); - await permissionRegistry.transferOwnership(org.avatar.address); + await permissionRegistry.transferOwnership(dao.avatar.address); const tx = await quickWalletScheme.proposeCalls( [permissionRegistry.address, permissionRegistry.address], [setETHPermissionDelayData, setETHPermissionData], [0, 0], + 2, constants.TEST_TITLE, constants.SOME_HASH ); @@ -292,13 +264,9 @@ contract("PermissionRegistry", function (accounts) { "666" ); - await votingMachine.contract.vote( - proposalId, - 1, - 0, - constants.NULL_ADDRESS, - { from: accounts[2] } - ); + await dao.votingMachine.vote(proposalId, 1, 0, constants.NULL_ADDRESS, { + from: accounts[2], + }); assert.equal( (await quickWalletScheme.getOrganizationProposal(proposalId)).state, diff --git a/yarn.lock b/yarn.lock index 893437b2..52feb44f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,37 +2,10 @@ # yarn lockfile v1 -"101@^1.0.0", "101@^1.2.0": - version "1.6.3" - resolved "https://registry.yarnpkg.com/101/-/101-1.6.3.tgz#9071196e60c47e4ce327075cf49c0ad79bd822fd" - integrity sha512-4dmQ45yY0Dx24Qxp+zAsNLlMF6tteCyfVzgbulvSyC7tCyd3V8sW76sS0tHq8NpcbXfWTKasfyfzU1Kd86oKzw== - dependencies: - clone "^1.0.2" - deep-eql "^0.1.3" - keypather "^1.10.2" - -"@apollo/client@^3.1.5": - version "3.4.16" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.4.16.tgz#67090d5655aa843fa64d26f1913315e384a5fa0f" - integrity sha512-iF4zEYwvebkri0BZQyv8zfavPfVEafsK0wkOofa6eC2yZu50J18uTutKtC174rjHZ2eyxZ8tV7NvAPKRT+OtZw== - dependencies: - "@graphql-typed-document-node/core" "^3.0.0" - "@wry/context" "^0.6.0" - "@wry/equality" "^0.5.0" - "@wry/trie" "^0.3.0" - graphql-tag "^2.12.3" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.1" - prop-types "^15.7.2" - symbol-observable "^4.0.0" - ts-invariant "^0.9.0" - tslib "^2.3.0" - zen-observable-ts "~1.1.0" - -"@apollo/protobufjs@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.2.tgz#4bd92cd7701ccaef6d517cdb75af2755f049f87c" - integrity sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ== +"@apollo/protobufjs@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.4.tgz#d913e7627210ec5efd758ceeb751c776c68ba133" + integrity sha512-npVJ9NVU/pynj+SCU+fambvTneJDyCnif738DnZ7pCxdDtzeEz7WkpSIq5wNUmWm5Td55N+S2xfqZ+WP4hDLng== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -48,37 +21,69 @@ "@types/node" "^10.1.0" long "^4.0.0" -"@apollographql/apollo-tools@^0.5.0": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz#f0baef739ff7e2fafcb8b98ad29f6ac817e53e32" - integrity sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA== +"@apollo/utils.dropunuseddefinitions@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz#02b04006442eaf037f4c4624146b12775d70d929" + integrity sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg== -"@apollographql/graphql-playground-html@1.6.27": - version "1.6.27" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz#bc9ab60e9445aa2a8813b4e94f152fa72b756335" - integrity sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw== +"@apollo/utils.keyvaluecache@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.1.tgz#46f310f859067efe9fa126156c6954f8381080d2" + integrity sha512-nLgYLomqjVimEzQ4cdvVQkcryi970NDvcRVPfd0OPeXhBfda38WjBq+WhQFk+czSHrmrSp34YHBxpat0EtiowA== dependencies: - xss "^1.0.8" + "@apollo/utils.logger" "^1.0.0" + lru-cache "^7.10.1" -"@apollographql/graphql-upload-8-fork@^8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz#a0d4e0d5cec8e126d78bd915c264d6b90f5784bc" - integrity sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g== - dependencies: - "@types/express" "*" - "@types/fs-capacitor" "*" - "@types/koa" "*" - busboy "^0.3.1" - fs-capacitor "^2.0.4" - http-errors "^1.7.3" - object-path "^0.11.4" - -"@ardatan/aggregate-error@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz#fe6924771ea40fc98dc7a7045c2e872dc8527609" - integrity sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ== +"@apollo/utils.logger@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-1.0.0.tgz#6e3460a2250c2ef7c2c3b0be6b5e148a1596f12b" + integrity sha512-dx9XrjyisD2pOa+KsB5RcDbWIAdgC91gJfeyLCgy0ctJMjQe7yZK5kdWaWlaOoCeX0z6YI9iYlg7vMPyMpQF3Q== + +"@apollo/utils.printwithreducedwhitespace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz#c466299a4766eef8577a2a64c8f27712e8bd7e30" + integrity sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q== + +"@apollo/utils.removealiases@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz#75f6d83098af1fcae2d3beb4f515ad4a8452a8c1" + integrity sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A== + +"@apollo/utils.sortast@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz#93218c7008daf3e2a0725196085a33f5aab5ad07" + integrity sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA== dependencies: - tslib "~2.0.1" + lodash.sortby "^4.7.0" + +"@apollo/utils.stripsensitiveliterals@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz#4920651f36beee8e260e12031a0c5863ad0c7b28" + integrity sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w== + +"@apollo/utils.usagereporting@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.0.tgz#b81df180f4ca78b91a22cb49105174a7f070db1e" + integrity sha512-5PL7hJMkTPmdo3oxPtigRrIyPxDk/ddrUryHPDaezL1lSFExpNzsDd2f1j0XJoHOg350GRd3LyD64caLA2PU1w== + dependencies: + "@apollo/utils.dropunuseddefinitions" "^1.1.0" + "@apollo/utils.printwithreducedwhitespace" "^1.1.0" + "@apollo/utils.removealiases" "1.0.0" + "@apollo/utils.sortast" "^1.1.0" + "@apollo/utils.stripsensitiveliterals" "^1.2.0" + apollo-reporting-protobuf "^3.3.1" + +"@apollographql/apollo-tools@^0.5.3": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz#cb3998c6cf12e494b90c733f44dd9935e2d8196c" + integrity sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw== + +"@apollographql/graphql-playground-html@1.6.29": + version "1.6.29" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453" + integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA== + dependencies: + xss "^1.0.8" "@assemblyscript/loader@^0.9.4": version "0.9.4" @@ -86,608 +91,126 @@ integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA== "@babel/cli@^7.10.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.16.0.tgz#a729b7a48eb80b49f48a339529fc4129fd7bcef3" - integrity sha512-WLrM42vKX/4atIoQB+eb0ovUof53UUvecb4qGjU2PDDWRiZr50ZpiV8NpcLo7iSxeGYrRG0Mqembsa+UrTAV6Q== + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.18.10.tgz#4211adfc45ffa7d4f3cee6b60bb92e9fe68fe56a" + integrity sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw== dependencies: + "@jridgewell/trace-mapping" "^0.3.8" commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" - glob "^7.0.0" + glob "^7.2.0" make-dir "^2.1.0" slash "^2.0.0" - source-map "^0.5.0" optionalDependencies: "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.15.8": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503" - integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg== - dependencies: - "@babel/highlight" "^7.14.5" - -"@babel/code-frame@^7.14.5", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0", "@babel/compat-data@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" - integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== - -"@babel/core@^7.0.0": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" - integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== - dependencies: - "@babel/code-frame" "^7.15.8" - "@babel/generator" "^7.15.8" - "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.8" - "@babel/helpers" "^7.15.4" - "@babel/parser" "^7.15.8" - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.6" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/eslint-parser@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" - integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== - dependencies: - eslint-scope "^5.1.1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/generator@^7.12.13", "@babel/generator@^7.15.8", "@babel/generator@^7.5.0": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" - integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== - dependencies: - "@babel/types" "^7.15.6" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.15.4", "@babel/generator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" - integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== +"@babel/code-frame@^7.0.0": + 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/types" "^7.16.0" - jsesc "^2.5.1" - source-map "^0.5.0" + "@babel/highlight" "^7.18.6" -"@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835" - integrity sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA== - dependencies: - "@babel/types" "^7.15.4" +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9" + integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg== -"@babel/helper-compilation-targets@^7.13.0": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== +"@babel/eslint-parser@^7.17.0": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4" + integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ== dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.17.5" + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9" - integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ== +"@babel/helper-compilation-targets@^7.17.7": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz#7f630911d83b408b76fe584831c98e5395d7a17c" + integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg== dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" + "@babel/compat-data" "^7.19.1" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e" - integrity sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.15.4" - "@babel/helper-function-name" "^7.15.4" - "@babel/helper-member-expression-to-functions" "^7.15.4" - "@babel/helper-optimise-call-expression" "^7.15.4" - "@babel/helper-replace-supers" "^7.15.4" - "@babel/helper-split-export-declaration" "^7.15.4" - -"@babel/helper-define-polyfill-provider@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz#8867aed79d3ea6cade40f801efb7ac5c66916b10" - integrity sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ== +"@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.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@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-function-name@^7.12.13", "@babel/helper-function-name@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc" - integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw== +"@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/helper-get-function-arity" "^7.15.4" - "@babel/template" "^7.15.4" - "@babel/types" "^7.15.4" + "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.15.4", "@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" +"@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.19.0": + 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-get-function-arity@^7.15.4", "@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== -"@babel/helper-hoist-variables@^7.15.4", "@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-member-expression-to-functions@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef" - integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA== - dependencies: - "@babel/types" "^7.15.4" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.15.4", "@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== - dependencies: - "@babel/types" "^7.16.0" +"@babel/helper-validator-identifier@^7.18.6": + 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-module-imports@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" - integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== - dependencies: - "@babel/types" "^7.15.4" - -"@babel/helper-module-transforms@^7.15.4", "@babel/helper-module-transforms@^7.15.8": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz#d8c0e75a87a52e374a8f25f855174786a09498b2" - integrity sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg== - dependencies: - "@babel/helper-module-imports" "^7.15.4" - "@babel/helper-replace-supers" "^7.15.4" - "@babel/helper-simple-access" "^7.15.4" - "@babel/helper-split-export-declaration" "^7.15.4" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.6" +"@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-optimise-call-expression@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171" - integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw== +"@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/types" "^7.15.4" - -"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== - -"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a" - integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.15.4" - "@babel/helper-optimise-call-expression" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.4" - -"@babel/helper-simple-access@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b" - integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg== - dependencies: - "@babel/types" "^7.15.4" - -"@babel/helper-skip-transparent-expression-wrappers@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz#707dbdba1f4ad0fa34f9114fc8197aec7d5da2eb" - integrity sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A== - dependencies: - "@babel/types" "^7.15.4" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" - integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw== - dependencies: - "@babel/types" "^7.15.4" - -"@babel/helper-split-export-declaration@^7.15.4", "@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - -"@babel/helpers@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" - integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ== - dependencies: - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.4" - -"@babel/highlight@^7.14.5", "@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@7.12.16": - version "7.12.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4" - integrity sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw== - -"@babel/parser@^7.0.0", "@babel/parser@^7.12.13", "@babel/parser@^7.15.8": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" - integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== - -"@babel/parser@^7.15.4", "@babel/parser@^7.16.0", "@babel/parser@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.3.tgz#271bafcb811080905a119222edbc17909c82261d" - integrity sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw== - -"@babel/plugin-proposal-class-properties@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" - integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.15.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz#ef68050c8703d07b25af402cb96cf7f34a68ed11" - integrity sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg== - dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.15.4" - -"@babel/plugin-syntax-class-properties@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz#2ff654999497d7d7d142493260005263731da180" - integrity sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" - integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" - integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-block-scoped-functions@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" - integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-block-scoping@^7.0.0": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" - integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-classes@^7.0.0": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz#50aee17aaf7f332ae44e3bce4c2e10534d5d3bf1" - integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.15.4" - "@babel/helper-function-name" "^7.15.4" - "@babel/helper-optimise-call-expression" "^7.15.4" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.4" - "@babel/helper-split-export-declaration" "^7.15.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" - integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" - integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz#0dc9c1d11dcdc873417903d6df4bed019ef0f85e" - integrity sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-flow" "^7.14.5" - -"@babel/plugin-transform-for-of@^7.0.0": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2" - integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-function-name@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" - integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== - dependencies: - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-literals@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" - integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-member-expression-literals@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" - integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1" - integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA== - dependencies: - "@babel/helper-module-transforms" "^7.15.4" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.15.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-object-super@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" - integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" - -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz#5f2285cc3160bf48c8502432716b48504d29ed62" - integrity sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-property-literals@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" - integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.15.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz#6aaac6099f1fcf6589d35ae6be1b6e10c8c602b9" - integrity sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c" - integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-jsx" "^7.14.5" - "@babel/types" "^7.14.9" - "@babel/plugin-transform-runtime@^7.5.5": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.0.tgz#3fe0da36c2f0834bef7c4d3e7f2b2db0ee0c8909" - integrity sha512-zlPf1/XFn5+vWdve3AAhf+Sxl+MVa5VlwTwWgnLx23u4GlatSRQJ3Eoo9vllf0a9il3woQsT4SK+5Z7c06h8ag== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.3" - babel-plugin-polyfill-corejs3 "^0.3.0" - babel-plugin-polyfill-regenerator "^0.2.3" + 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.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" - integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-spread@^7.0.0": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz#79d5aa27f68d700449b2da07691dfa32d2f6d468" - integrity sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" - -"@babel/plugin-transform-template-literals@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" - integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" - integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== +"@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.9.2": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.5.5": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" - integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== +"@babel/types@^7.18.6": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" + integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.15.4", "@babel/template@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/traverse@7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz#689f0e4b4c08587ad26622832632735fb8c4e0c0" - integrity sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" - integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.4" - "@babel/helper-function-name" "^7.15.4" - "@babel/helper-hoist-variables" "^7.15.4" - "@babel/helper-split-export-declaration" "^7.15.4" - "@babel/parser" "^7.15.4" - "@babel/types" "^7.15.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.13.0": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" - integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.3" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz#8be1aa8f2c876da11a9cf650c0ecf656913ad611" - integrity sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.14.9": - version "7.15.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" - integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== - dependencies: - "@babel/helper-validator-identifier" "^7.14.9" - to-fast-properties "^2.0.0" - -"@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" "@chainsafe/libp2p-noise@^5.0.0", "@chainsafe/libp2p-noise@^5.0.1": @@ -715,14 +238,6 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@consento/sync-randombytes@^1.0.4", "@consento/sync-randombytes@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@consento/sync-randombytes/-/sync-randombytes-1.0.5.tgz#5be6bc58c6a6fa6e09f04cc684d037e29e6c28d5" - integrity sha512-mPJ2XvrTLQGEdhleDuSIkWtVWnvmhREOC1FjorV1nlK49t/52Z9X1d618gTj6nlQghRLiYvcd8oL4vZ2YZuDIQ== - dependencies: - buffer "^5.4.3" - seedrandom "^3.0.5" - "@ensdomains/address-encoder@^0.1.7": version "0.1.9" resolved "https://registry.yarnpkg.com/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz#f948c485443d9ef7ed2c0c4790e931c33334d02d" @@ -736,27 +251,25 @@ nano-base32 "^1.0.1" ripemd160 "^2.0.2" -"@ensdomains/ens@0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@ensdomains/ens/-/ens-0.4.3.tgz#f4a6b55146fe526c9a50e13f373bf90d36ca94dc" - integrity sha512-btC+fGze//ml8SMNCx5DgwM8+kG2t+qDCZrqlL/2+PV4CNxnRIpR3egZ49D9FqS52PFoYLmz6MaQfl7AO3pUMA== +"@ensdomains/ens@0.4.5": + version "0.4.5" + resolved "https://registry.yarnpkg.com/@ensdomains/ens/-/ens-0.4.5.tgz#e0aebc005afdc066447c6e22feb4eda89a5edbfc" + integrity sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw== dependencies: bluebird "^3.5.2" eth-ens-namehash "^2.0.8" - ethereumjs-testrpc "^6.0.3" - ganache-cli "^6.1.0" solc "^0.4.20" testrpc "0.0.1" web3-utils "^1.0.0-beta.31" -"@ensdomains/ensjs@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@ensdomains/ensjs/-/ensjs-2.0.1.tgz#c27438f9ca074825ddb08430988c7decf2062a91" - integrity sha512-gZLntzE1xqPNkPvaHdJlV5DXHms8JbHBwrXc2xNrL1AylERK01Lj/txCCZyVQqFd3TvUO1laDbfUv8VII0qrjg== +"@ensdomains/ensjs@^2.0.1", "@ensdomains/ensjs@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@ensdomains/ensjs/-/ensjs-2.1.0.tgz#0a7296c1f3d735ef019320d863a7846a0760c460" + integrity sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog== dependencies: "@babel/runtime" "^7.4.4" "@ensdomains/address-encoder" "^0.1.7" - "@ensdomains/ens" "0.4.3" + "@ensdomains/ens" "0.4.5" "@ensdomains/resolver" "0.2.4" content-hash "^2.5.2" eth-ens-namehash "^2.0.8" @@ -768,1150 +281,457 @@ resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== -"@ethereumjs/block@^3.4.0", "@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.5.1.tgz#59737d393503249aa750c37dfc83896234f4e175" - integrity sha512-MoY9bHKABOBK6BW0v1N1Oc0Cve4x/giX67M3TtrVBUsKQTj2eznLGKpydoitxWSZ+WgKKSVhfRMzbCGRwk7T5w== - dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.1" - ethereumjs-util "^7.1.1" - merkle-patricia-tree "^4.2.1" - -"@ethereumjs/blockchain@^5.4.0", "@ethereumjs/blockchain@^5.4.1": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.4.2.tgz#5074e0a0157818762a5f5175ea0bd93c5455fe32" - integrity sha512-AOAAwz/lw2lciG9gf5wHi7M/qknraXXnLR66lYgbQ04qfyFC3ZE5x/5rLVm1Vu+kfJLlKrYZTmA0IbOkc7kvgw== - dependencies: - "@ethereumjs/block" "^3.5.1" - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/ethash" "^1.1.0" - debug "^2.2.0" - ethereumjs-util "^7.1.1" - level-mem "^5.0.1" - lru-cache "^5.1.1" - rlp "^2.2.4" - semaphore-async-await "^1.5.1" - -"@ethereumjs/common@^2.3.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" - integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.1" - -"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.0.tgz#feb96fb154da41ee2cc2c5df667621a440f36348" - integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== +"@ethereumjs/common@^2.4.0", "@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.3" - -"@ethereumjs/ethash@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/ethash/-/ethash-1.1.0.tgz#7c5918ffcaa9cb9c1dc7d12f77ef038c11fb83fb" - integrity sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA== - dependencies: - "@ethereumjs/block" "^3.5.0" - "@types/levelup" "^4.3.0" - buffer-xor "^2.0.1" - ethereumjs-util "^7.1.1" - miller-rabin "^4.0.0" - -"@ethereumjs/tx@^3.2.1", "@ethereumjs/tx@^3.3.1": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" - integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== - dependencies: - "@ethereumjs/common" "^2.5.0" - ethereumjs-util "^7.1.2" - -"@ethereumjs/tx@^3.3.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.4.0.tgz#7eb1947eefa55eb9cf05b3ca116fb7a3dbd0bce7" - integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== - dependencies: - "@ethereumjs/common" "^2.6.0" - ethereumjs-util "^7.1.3" - -"@ethereumjs/vm@^5.5.2": - version "5.5.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.5.3.tgz#dc8b30dd35efb589db093592600207660fa8dada" - integrity sha512-0k5OreWnlgXYs54wohgO11jtGI05GDasj2EYxzuaStxTi15CS3vow5wGYELC1pG9xngE1F/mFmKi/f14XRuDow== - dependencies: - "@ethereumjs/block" "^3.5.0" - "@ethereumjs/blockchain" "^5.4.1" - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.1" - async-eventemitter "^0.2.4" - core-js-pure "^3.0.1" - debug "^2.2.0" - ethereumjs-util "^7.1.1" - functional-red-black-tree "^1.0.1" - mcl-wasm "^0.7.1" - merkle-patricia-tree "^4.2.1" - rustbn.js "~0.2.0" - util.promisify "^1.0.1" - -"@ethersproject/abi@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" - integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== - dependencies: - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - -"@ethersproject/abi@5.4.1", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.1.2": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.1.tgz#6ac28fafc9ef6f5a7a37e30356a2eb31fa05d39b" - integrity sha512-9mhbjUk76BiSluiiW4BaYyI58KSbDMMQpCLdsAR+RsT2GyATiNYxVv+pGWRrekmsIdY3I+hOqsYQSTkc8L/mcg== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" - integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/abstract-provider@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" - integrity sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - -"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" - integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - -"@ethersproject/abstract-signer@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" - integrity sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - -"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" - integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/address@5.4.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.0.4": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" - integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" + ethereumjs-util "^7.1.5" -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" - integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - -"@ethersproject/base64@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" - integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ== - dependencies: - "@ethersproject/bytes" "^5.4.0" - -"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" - integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - -"@ethersproject/basex@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" - integrity sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - -"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" - integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/bignumber@5.4.2", "@ethersproject/bignumber@^5.0.7": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.2.tgz#44232e015ae4ce82ac034de549eb3583c71283d8" - integrity sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - bn.js "^4.11.9" - -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" - integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - bn.js "^4.11.9" - -"@ethersproject/bytes@5.4.0", "@ethersproject/bytes@^5.0.4": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" - integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA== - dependencies: - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" - integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/constants@5.4.0", "@ethersproject/constants@^5.0.4": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" - integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" - integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - -"@ethersproject/contracts@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470" - integrity sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w== - dependencies: - "@ethersproject/abi" "^5.4.0" - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - -"@ethersproject/contracts@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" - integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== - dependencies: - "@ethersproject/abi" "^5.5.0" - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - -"@ethersproject/hash@5.4.0", "@ethersproject/hash@^5.0.4": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" - integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" - integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/hdnode@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" - integrity sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/pbkdf2" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/wordlists" "^5.4.0" - -"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" - integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/json-wallets@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" - integrity sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hdnode" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/pbkdf2" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.4.0", "@ethersproject/json-wallets@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" - integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" +"@ethereumjs/tx@^3.3.0", "@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.7.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@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.4.0", "@ethersproject/keccak256@^5.0.3": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" - integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A== +"@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.4.0" - js-sha3 "0.5.7" - -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" - integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== - dependencies: - "@ethersproject/bytes" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.4.1", "@ethersproject/logger@^5.0.5": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" - integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== - -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" - integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== - -"@ethersproject/networks@5.4.2": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" - integrity sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw== - dependencies: - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/networks@5.5.0", "@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" - integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA== - dependencies: - "@ethersproject/logger" "^5.5.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/pbkdf2@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" - integrity sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g== +"@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/bytes" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" - integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== +"@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.5.0" - "@ethersproject/sha2" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.4.1", "@ethersproject/properties@^5.0.3": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.1.tgz#9f051f976ce790142c6261ccb7b826eaae1f2f36" - integrity sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w== +"@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.4.0" - -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" - integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/providers@5.4.5": - version "5.4.5" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" - integrity sha512-1GkrvkiAw3Fj28cwi1Sqm8ED1RtERtpdXmRfwIBGmqBSN5MoeRUHuwHPppMtbPayPgpFcvD7/Gdc9doO5fGYgw== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - bech32 "1.1.4" - ws "7.4.6" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.0.tgz#bc2876a8fe5e0053ed9828b1f3767ae46e43758b" - integrity sha512-xqMbDnS/FPy+J/9mBLKddzyLLAQFjrVff5g00efqxPzcAwXiR+SiCGVy6eJ5iAIirBOATjx7QLhDNPGV+AEQsw== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.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.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" - integrity sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/random@5.5.0", "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" - integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== +"@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.5.0" - "@ethersproject/logger" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" - integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" - integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/sha2@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" - integrity sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - hash.js "1.1.7" - -"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" - integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== +"@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.5.0" - "@ethersproject/logger" "^5.5.0" - hash.js "1.1.7" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/signing-key@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" - integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A== +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - bn.js "^4.11.9" - elliptic "6.5.4" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" - integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== +"@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.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - bn.js "^4.11.9" + "@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.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" - integrity sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/solidity@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" - integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/strings@5.4.0", "@ethersproject/strings@^5.0.4": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" - integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" - integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.0.0-beta.135": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" - integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" - integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - -"@ethersproject/units@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" - integrity sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/units@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" - integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/wallet@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" - integrity sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/hdnode" "^5.4.0" - "@ethersproject/json-wallets" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/wordlists" "^5.4.0" - -"@ethersproject/wallet@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" - integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/json-wallets" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/web@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" - integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og== - dependencies: - "@ethersproject/base64" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/web@5.5.0", "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" - integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== - dependencies: - "@ethersproject/base64" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/wordlists@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" - integrity sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" - integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@graphql-tools/batch-delegate@^6.2.4", "@graphql-tools/batch-delegate@^6.2.6": - version "6.2.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-delegate/-/batch-delegate-6.2.6.tgz#fbea98dc825f87ef29ea5f3f371912c2a2aa2f2c" - integrity sha512-QUoE9pQtkdNPFdJHSnBhZtUfr3M7pIRoXoMR+TG7DK2Y62ISKbT/bKtZEUU1/2v5uqd5WVIvw9dF8gHDSJAsSA== - dependencies: - "@graphql-tools/delegate" "^6.2.4" - dataloader "2.0.0" - tslib "~2.0.1" - -"@graphql-tools/batch-execute@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz#35ba09a1e0f80f34f1ce111d23c40f039d4403a0" - integrity sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg== - dependencies: - "@graphql-tools/utils" "^7.7.0" - dataloader "2.0.0" - tslib "~2.2.0" - value-or-promise "1.0.6" - -"@graphql-tools/code-file-loader@^6.2.4": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-6.3.1.tgz#42dfd4db5b968acdb453382f172ec684fa0c34ed" - integrity sha512-ZJimcm2ig+avgsEOWWVvAaxZrXXhiiSZyYYOJi0hk9wh5BxZcLUNKkTp6EFnZE/jmGUwuos3pIjUD3Hwi3Bwhg== - dependencies: - "@graphql-tools/graphql-tag-pluck" "^6.5.1" - "@graphql-tools/utils" "^7.0.0" - tslib "~2.1.0" - -"@graphql-tools/delegate@^6.2.4": - version "6.2.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-6.2.4.tgz#db553b63eb9512d5eb5bbfdfcd8cb1e2b534699c" - integrity sha512-mXe6DfoWmq49kPcDrpKHgC2DSWcD5q0YCaHHoXYPAOlnLH8VMTY8BxcE8y/Do2eyg+GLcwAcrpffVszWMwqw0w== - dependencies: - "@ardatan/aggregate-error" "0.0.6" - "@graphql-tools/schema" "^6.2.4" - "@graphql-tools/utils" "^6.2.4" - dataloader "2.0.0" - is-promise "4.0.0" - tslib "~2.0.1" - -"@graphql-tools/delegate@^7.0.1", "@graphql-tools/delegate@^7.1.5": - version "7.1.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-7.1.5.tgz#0b027819b7047eff29bacbd5032e34a3d64bd093" - integrity sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g== - dependencies: - "@ardatan/aggregate-error" "0.0.6" - "@graphql-tools/batch-execute" "^7.1.2" - "@graphql-tools/schema" "^7.1.5" - "@graphql-tools/utils" "^7.7.1" - dataloader "2.0.0" - tslib "~2.2.0" - value-or-promise "1.0.6" - -"@graphql-tools/git-loader@^6.2.4": - version "6.2.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-6.2.6.tgz#c2226f4b8f51f1c05c9ab2649ba32d49c68cd077" - integrity sha512-ooQTt2CaG47vEYPP3CPD+nbA0F+FYQXfzrB1Y1ABN9K3d3O2RK3g8qwslzZaI8VJQthvKwt0A95ZeE4XxteYfw== - dependencies: - "@graphql-tools/graphql-tag-pluck" "^6.2.6" - "@graphql-tools/utils" "^7.0.0" - tslib "~2.1.0" - -"@graphql-tools/github-loader@^6.2.4": - version "6.2.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-6.2.5.tgz#460dff6f5bbaa26957a5ea3be4f452b89cc6a44b" - integrity sha512-DLuQmYeNNdPo8oWus8EePxWCfCAyUXPZ/p1PWqjrX/NGPyH2ZObdqtDAfRHztljt0F/qkBHbGHCEk2TKbRZTRw== - dependencies: - "@graphql-tools/graphql-tag-pluck" "^6.2.6" - "@graphql-tools/utils" "^7.0.0" - cross-fetch "3.0.6" - tslib "~2.0.1" - -"@graphql-tools/graphql-file-loader@^6.2.4": - version "6.2.7" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz#d3720f2c4f4bb90eb2a03a7869a780c61945e143" - integrity sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ== - dependencies: - "@graphql-tools/import" "^6.2.6" - "@graphql-tools/utils" "^7.0.0" - tslib "~2.1.0" - -"@graphql-tools/graphql-tag-pluck@^6.2.4", "@graphql-tools/graphql-tag-pluck@^6.2.6", "@graphql-tools/graphql-tag-pluck@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.5.1.tgz#5fb227dbb1e19f4b037792b50f646f16a2d4c686" - integrity sha512-7qkm82iFmcpb8M6/yRgzjShtW6Qu2OlCSZp8uatA3J0eMl87TxyJoUmL3M3UMMOSundAK8GmoyNVFUrueueV5Q== - dependencies: - "@babel/parser" "7.12.16" - "@babel/traverse" "7.12.13" - "@babel/types" "7.12.13" - "@graphql-tools/utils" "^7.0.0" - tslib "~2.1.0" - -"@graphql-tools/import@^6.2.4", "@graphql-tools/import@^6.2.6": - version "6.5.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.5.2.tgz#0f1a88d415c74add711eeda78154ad3b30795fa1" - integrity sha512-Hi3aEWHK6B83d+mjO7CdX1xhaBwEon3ZLc9Ch1ivrU7vay84k6UQkoY/B4NdOZuLKrKlt920UtoDbGoZFFYlHA== - dependencies: - "@graphql-tools/utils" "8.2.5" - resolve-from "5.0.0" - tslib "~2.3.0" - -"@graphql-tools/json-file-loader@^6.2.4": - version "6.2.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz#830482cfd3721a0799cbf2fe5b09959d9332739a" - integrity sha512-CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA== - dependencies: - "@graphql-tools/utils" "^7.0.0" - tslib "~2.0.1" - -"@graphql-tools/links@^6.2.4": - version "6.2.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/links/-/links-6.2.5.tgz#b172cadc4b7cbe27bfc1dc787651f92517f583bc" - integrity sha512-XeGDioW7F+HK6HHD/zCeF0HRC9s12NfOXAKv1HC0J7D50F4qqMvhdS/OkjzLoBqsgh/Gm8icRc36B5s0rOA9ig== - dependencies: - "@graphql-tools/utils" "^7.0.0" - apollo-link "1.2.14" - apollo-upload-client "14.1.2" - cross-fetch "3.0.6" - form-data "3.0.0" - is-promise "4.0.0" - tslib "~2.0.1" - -"@graphql-tools/load-files@^6.2.4": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/load-files/-/load-files-6.5.1.tgz#f0945f995a339a7adf6d310b87dd8f2d1fcd17a9" - integrity sha512-d+wMq/t2o4VctfKl4ZaCq0djKOErzvw9WI56HjKpoVji7zRz+WCbs1EgZjVneas+Cvf14cPvBTheFuL9j7w46w== - dependencies: - globby "11.0.4" - tslib "~2.3.0" - unixify "1.0.0" - -"@graphql-tools/load@^6.2.4": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-6.2.8.tgz#16900fb6e75e1d075cad8f7ea439b334feb0b96a" - integrity sha512-JpbyXOXd8fJXdBh2ta0Q4w8ia6uK5FHzrTNmcvYBvflFuWly2LDTk2abbSl81zKkzswQMEd2UIYghXELRg8eTA== - dependencies: - "@graphql-tools/merge" "^6.2.12" - "@graphql-tools/utils" "^7.5.0" - globby "11.0.3" - import-from "3.0.0" - is-glob "4.0.1" - p-limit "3.1.0" - tslib "~2.2.0" - unixify "1.0.0" - valid-url "1.0.9" - -"@graphql-tools/merge@^6.2.12", "@graphql-tools/merge@^6.2.4": - version "6.2.17" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.17.tgz#4dedf87d8435a5e1091d7cc8d4f371ed1e029f1f" - integrity sha512-G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow== - dependencies: - "@graphql-tools/schema" "^8.0.2" - "@graphql-tools/utils" "8.0.2" - tslib "~2.3.0" - -"@graphql-tools/merge@^8.1.0": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.1.2.tgz#50f5763927c51de764d09c5bfd20261671976e24" - integrity sha512-kFLd4kKNJXYXnKIhM8q9zgGAtbLmsy3WmGdDxYq3YHBJUogucAxnivQYyRIseUq37KGmSAIWu3pBQ23TKGsGOw== - dependencies: - "@graphql-tools/utils" "^8.2.2" - tslib "~2.3.0" - -"@graphql-tools/mock@^6.2.4": - version "6.2.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-6.2.4.tgz#205323c51f89dd855d345d130c7713d0420909ea" - integrity sha512-O5Zvq/mcDZ7Ptky0IZ4EK9USmxV6FEVYq0Jxv2TI80kvxbCjt0tbEpZ+r1vIt1gZOXlAvadSHYyzWnUPh+1vkQ== - dependencies: - "@graphql-tools/schema" "^6.2.4" - "@graphql-tools/utils" "^6.2.4" - tslib "~2.0.1" - -"@graphql-tools/module-loader@^6.2.4": - version "6.2.7" - resolved "https://registry.yarnpkg.com/@graphql-tools/module-loader/-/module-loader-6.2.7.tgz#66ab9468775fac8079ca46ea9896ceea76e4ef69" - integrity sha512-ItAAbHvwfznY9h1H9FwHYDstTcm22Dr5R9GZtrWlpwqj0jaJGcBxsMB9jnK9kFqkbtFYEe4E/NsSnxsS4/vViQ== - dependencies: - "@graphql-tools/utils" "^7.5.0" - tslib "~2.1.0" - -"@graphql-tools/relay-operation-optimizer@^6.2.4": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.4.0.tgz#3ef4d7ec0620239f3a4e9b9acfa3c263636c5ad2" - integrity sha512-auNvHC8gHu9BHBPnLA5c8Iv5VAXQG866KZJz7ljhKpXPdlPevK4zjHlVJwqnF8H6clJ9NgZpizN4kNNCe/3R9g== - dependencies: - "@graphql-tools/utils" "^8.2.0" - relay-compiler "11.0.2" - tslib "~2.3.0" - -"@graphql-tools/resolvers-composition@^6.2.4": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/resolvers-composition/-/resolvers-composition-6.4.0.tgz#f45a1e7fa0232ff5d160c711063ae0b178910014" - integrity sha512-YkAmpIzyFtto9aDp/FysuyPb/tPba/gXYYvlN2vdBkE9nRU8ms8Fwhnroek0pW5ipjZAhpQZsZPVVpzSwldj3A== - dependencies: - "@graphql-tools/utils" "^8.2.0" - lodash "4.17.21" - micromatch "^4.0.4" - tslib "~2.3.0" - -"@graphql-tools/schema@^6.2.4": - version "6.2.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-6.2.4.tgz#cc4e9f5cab0f4ec48500e666719d99fc5042481d" - integrity sha512-rh+14lSY1q8IPbEv2J9x8UBFJ5NrDX9W5asXEUlPp+7vraLp/Tiox4GXdgyA92JhwpYco3nTf5Bo2JDMt1KnAQ== - dependencies: - "@graphql-tools/utils" "^6.2.4" - tslib "~2.0.1" - -"@graphql-tools/schema@^7.1.5": - version "7.1.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-7.1.5.tgz#07b24e52b182e736a6b77c829fc48b84d89aa711" - integrity sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA== - dependencies: - "@graphql-tools/utils" "^7.1.2" - tslib "~2.2.0" - value-or-promise "1.0.6" - -"@graphql-tools/schema@^8.0.2": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.2.0.tgz#ae75cbb2df6cee9ed6d89fce56be467ab23758dc" - integrity sha512-ufmI5mJQa8NJczzfkh0pUttKvspqDcT5LLakA3jUmOrrE4d4NVj6onZlazdTzF5sAepSNqanFnwhrxZpCAJMKg== - dependencies: - "@graphql-tools/merge" "^8.1.0" - "@graphql-tools/utils" "^8.2.0" - tslib "~2.3.0" - value-or-promise "1.0.10" - -"@graphql-tools/stitch@^6.2.4": - version "6.2.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-6.2.4.tgz#acfa6a577a33c0f02e4940ffff04753b23b87fd6" - integrity sha512-0C7PNkS7v7iAc001m7c1LPm5FUB0/DYw+s3OyCii6YYYHY8NwdI0roeOyeDGFJkFubWBQfjc3hoSyueKtU73mw== - dependencies: - "@graphql-tools/batch-delegate" "^6.2.4" - "@graphql-tools/delegate" "^6.2.4" - "@graphql-tools/merge" "^6.2.4" - "@graphql-tools/schema" "^6.2.4" - "@graphql-tools/utils" "^6.2.4" - "@graphql-tools/wrap" "^6.2.4" - is-promise "4.0.0" - tslib "~2.0.1" - -"@graphql-tools/url-loader@^6.2.4": - version "6.10.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz#dc741e4299e0e7ddf435eba50a1f713b3e763b33" - integrity sha512-DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw== - dependencies: - "@graphql-tools/delegate" "^7.0.1" - "@graphql-tools/utils" "^7.9.0" - "@graphql-tools/wrap" "^7.0.4" - "@microsoft/fetch-event-source" "2.0.1" - "@types/websocket" "1.0.2" - abort-controller "3.0.0" - cross-fetch "3.1.4" - extract-files "9.0.0" - form-data "4.0.0" - graphql-ws "^4.4.1" - is-promise "4.0.0" - isomorphic-ws "4.0.1" - lodash "4.17.21" - meros "1.1.4" - subscriptions-transport-ws "^0.9.18" - sync-fetch "0.3.0" - tslib "~2.2.0" - valid-url "1.0.9" - ws "7.4.5" - -"@graphql-tools/utils@8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.0.2.tgz#795a8383cdfdc89855707d62491c576f439f3c51" - integrity sha512-gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ== - dependencies: - tslib "~2.3.0" - -"@graphql-tools/utils@8.2.5", "@graphql-tools/utils@^8.2.0", "@graphql-tools/utils@^8.2.2": - version "8.2.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.2.5.tgz#695e6d760c1187ad2b159d5d3c4696eff9c08a27" - integrity sha512-k/Rktklhy22dQfbJLKiLGfQymQCTr6Rd2BilC7g2Yk6wFSzVLYr8jeXNoTD+/p61XBQzBjTVayskvaMvNS3BDg== - dependencies: - tslib "~2.3.0" - -"@graphql-tools/utils@^6.2.4": - version "6.2.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-6.2.4.tgz#38a2314d2e5e229ad4f78cca44e1199e18d55856" - integrity sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg== - dependencies: - "@ardatan/aggregate-error" "0.0.6" - camel-case "4.1.1" - tslib "~2.0.1" - -"@graphql-tools/utils@^7.0.0", "@graphql-tools/utils@^7.1.2", "@graphql-tools/utils@^7.5.0", "@graphql-tools/utils@^7.7.0", "@graphql-tools/utils@^7.7.1", "@graphql-tools/utils@^7.8.1", "@graphql-tools/utils@^7.9.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-7.10.0.tgz#07a4cb5d1bec1ff1dc1d47a935919ee6abd38699" - integrity sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w== - dependencies: - "@ardatan/aggregate-error" "0.0.6" - camel-case "4.1.2" - tslib "~2.2.0" - -"@graphql-tools/wrap@^6.2.4": - version "6.2.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-6.2.4.tgz#2709817da6e469753735a9fe038c9e99736b2c57" - integrity sha512-cyQgpybolF9DjL2QNOvTS1WDCT/epgYoiA8/8b3nwv5xmMBQ6/6nYnZwityCZ7njb7MMyk7HBEDNNlP9qNJDcA== - dependencies: - "@graphql-tools/delegate" "^6.2.4" - "@graphql-tools/schema" "^6.2.4" - "@graphql-tools/utils" "^6.2.4" - is-promise "4.0.0" - tslib "~2.0.1" - -"@graphql-tools/wrap@^7.0.4": - version "7.0.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-7.0.8.tgz#ad41e487135ca3ea1ae0ea04bb3f596177fb4f50" - integrity sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg== - dependencies: - "@graphql-tools/delegate" "^7.1.5" - "@graphql-tools/schema" "^7.1.5" - "@graphql-tools/utils" "^7.8.1" - tslib "~2.2.0" - value-or-promise "1.0.6" - -"@graphql-typed-document-node/core@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950" - integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg== - -"@gulp-sourcemaps/map-sources@1.X": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" - integrity sha1-iQrnxdjId/bThIYCFazp1+yUW9o= - dependencies: - normalize-path "^2.0.1" - through2 "^2.0.3" - -"@improbable-eng/grpc-web@^0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.12.0.tgz#9b10a7edf2a1d7672f8997e34a60e7b70e49738f" - integrity sha512-uJjgMPngreRTYPBuo6gswMj1gK39Wbqre/RgE0XnSDXJRg6ST7ZhuS53dFE6Vc2CX4jxgl+cO+0B3op8LA4Q0Q== - dependencies: - browser-headers "^0.4.0" - -"@improbable-eng/grpc-web@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.13.0.tgz#289e6fc4dafc00b1af8e2b93b970e6892299014d" - integrity sha512-vaxxT+Qwb7GPqDQrBV4vAAfH0HywgOLw6xGIKXd9Q8hcV63CQhmS3p4+pZ9/wVvt4Ph3ZDK9fdC983b9aGMUFg== - dependencies: - browser-headers "^0.4.0" - -"@improbable-eng/grpc-web@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz#f4662f64dc89c0f956a94bb8a3b576556c74589c" - integrity sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw== - dependencies: - browser-headers "^0.4.1" - -"@ipld/car@^3.1.0": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@ipld/car/-/car-3.2.4.tgz#115951ba2255ec51d865773a074e422c169fb01c" - integrity sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw== +"@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.6.2", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@graphql-tools/batch-execute@8.5.1": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.1.tgz#fa3321d58c64041650be44250b1ebc3aab0ba7a9" + integrity sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew== + dependencies: + "@graphql-tools/utils" "8.9.0" + dataloader "2.1.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/delegate@^8.4.3": + version "8.8.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-8.8.1.tgz#0653a72f38947f38ab7917dfac50ebf6a6b883e9" + integrity sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA== + dependencies: + "@graphql-tools/batch-execute" "8.5.1" + "@graphql-tools/schema" "8.5.1" + "@graphql-tools/utils" "8.9.0" + dataloader "2.1.0" + tslib "~2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/merge@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.1.tgz#06121942ad28982a14635dbc87b5d488a041d722" + integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg== + dependencies: + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.6.tgz#97a936d4c8e8f935e58a514bb516c476437b5b2c" + integrity sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ== + dependencies: + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" + +"@graphql-tools/mock@^8.1.2": + version "8.7.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.6.tgz#701d898f7fe6c22e40d6d80e25874e464359ce11" + integrity sha512-cQGPyY6dF4x28552zjAg9En2WWVury62u1/xzipCNUSCdKRVOsAupTNBcAGdMjsKPLcGzzk1cPA8dP0DUfNqzg== + dependencies: + "@graphql-tools/schema" "9.0.4" + "@graphql-tools/utils" "8.12.0" + fast-json-stable-stringify "^2.1.0" + tslib "^2.4.0" + +"@graphql-tools/schema@8.5.1", "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.3.1": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" + integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== + dependencies: + "@graphql-tools/merge" "8.3.1" + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/schema@9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.4.tgz#1a74608b57abf90fae6fd929d25e5482c57bc05d" + integrity sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ== + dependencies: + "@graphql-tools/merge" "8.3.6" + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/utils@8.12.0": + version "8.12.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.12.0.tgz#243bc4f5fc2edbc9e8fd1038189e57d837cbe31f" + integrity sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" + integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== + dependencies: + tslib "^2.4.0" + +"@ipld/car@^4.1.0": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@ipld/car/-/car-4.1.5.tgz#f0ae25121201a7681877c5bc35698f7f8c93e56e" + integrity sha512-PFj4XsKOsxu5h12JUoBJ+mrAVqeA8YYq2bZbcE2sAIopJTwJIB5sBVTmc8ylkUsFXEysZQ4xQD+rZb3Ct0lbjQ== dependencies: "@ipld/dag-cbor" "^7.0.0" + cborg "^1.9.0" multiformats "^9.5.4" varint "^6.0.0" -"@ipld/dag-cbor@^6.0.3", "@ipld/dag-cbor@^6.0.4": +"@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== @@ -1919,26 +739,26 @@ cborg "^1.5.4" multiformats "^9.5.4" -"@ipld/dag-cbor@^7.0.0": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-7.0.1.tgz#d46c6bbb9afa55c74a85d0117b4ab389ceb9083b" - integrity sha512-XqG8VEzHjQDC/Qcy5Gyf1kvAav5VuAugc6c7VtdaRLI+3d8lJrUP3F76GYJNNXuEnRZ58cCBnNNglkIGTdg1+A== +"@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-json@^8.0.1": - version "8.0.8" - resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-8.0.8.tgz#680f2981acf968772d23fe9634d8e3f1bcdc802a" - integrity sha512-oEtnvIO3Q6CtIJsWt2qSF6twW2vzlfuv+XWutfkWMvH0w+PFhxjtc3OWAyHnzzNQz5dXUzLe+xuyXKr0ab7gvA== + version "8.0.11" + resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-8.0.11.tgz#8d30cc2dfacb0aef04d327465d3df91e79e8b6ce" + integrity sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA== dependencies: cborg "^1.5.4" multiformats "^9.5.4" "@ipld/dag-pb@^2.0.0", "@ipld/dag-pb@^2.0.2", "@ipld/dag-pb@^2.1.0", "@ipld/dag-pb@^2.1.3": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-2.1.16.tgz#7133fec4f1bbce8fedb859bc2d477a0a2401de93" - integrity sha512-5+A87ZsKZ2yEEjtW6LIzTgDJcm6O24d0lmXlubwtMblI5ZB+aTw7PH6kjc8fM6pbnNtVg4Y+c+WZ3zCxdesIBg== + 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" @@ -1947,49 +767,28 @@ resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== -"@ledgerhq/devices@^5.51.1": - version "5.51.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" - integrity sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA== - dependencies: - "@ledgerhq/errors" "^5.50.0" - "@ledgerhq/logs" "^5.50.0" - rxjs "6" - semver "^7.3.5" - -"@ledgerhq/errors@^5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" - integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== +"@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== -"@ledgerhq/hw-transport-webusb@^5.22.0": - version "5.53.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.53.1.tgz#3df8c401417571e3bcacc378d8aca587214b05ae" - integrity sha512-A/f+xcrkIAZiJrvPpDvsrjxQX4cI2kbdiunQkwsYmOG3Bp4z89ZnsBiC7YBst4n2/g+QgTg0/KPVtODU5djooQ== - dependencies: - "@ledgerhq/devices" "^5.51.1" - "@ledgerhq/errors" "^5.50.0" - "@ledgerhq/hw-transport" "^5.51.1" - "@ledgerhq/logs" "^5.50.0" +"@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== -"@ledgerhq/hw-transport@^5.51.1": - version "5.51.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz#8dd14a8e58cbee4df0c29eaeef983a79f5f22578" - integrity sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw== +"@jridgewell/trace-mapping@^0.3.8": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: - "@ledgerhq/devices" "^5.51.1" - "@ledgerhq/errors" "^5.50.0" - events "^3.3.0" - -"@ledgerhq/logs@^5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" - integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" "@leichtgewicht/ip-codec@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" - integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== + 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== "@maticnetwork/eth-decoder@^0.0.4": version "0.0.4" @@ -1998,20 +797,21 @@ dependencies: ethers "^5.0.24" -"@microsoft/fetch-event-source@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz#9ceecc94b49fbaa15666e38ae8587f64acce007d" - integrity sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA== - -"@multiformats/base-x@^4.0.1": +"@metamask/eth-sig-util@^4.0.0": version "4.0.1" - resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121" - integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw== + 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" "@multiformats/murmur3@^1.0.3", "@multiformats/murmur3@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-1.1.1.tgz#52a8ae168f495664af774df896be3708cbe7731e" - integrity sha512-TPIBMPX4DX7T4291bPUAn/AMW6H6mnYoI4Bza1DeX1I59dpTWBbOgxaqc+139Ph+NEgb/PNd3sFS8VFoOXzNlw== + 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" @@ -2021,25 +821,32 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@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" + "@noble/ed25519@^1.5.1": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.6.0.tgz#b55f7c9e532b478bf1d7c4f609e1f3a37850b583" - integrity sha512-UKju89WV37IUALIMfKhKW3psO8AqmrE/GvH6QbPKjzolQ98zM7WmGUeY+xdIgSf5tqPFf75ZCYMgym6E9Jsw3Q== + 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/secp256k1@^1.3.0": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.5.5.tgz#315ab5745509d1a8c8e90d0bdf59823ccf9bcfc3" - integrity sha512-sZ1W6gQzYnu45wPrWx8D3kwI2/U29VYTx9OjbDAd7jwRItJ0cSTMPRL/C8AWZFn9kWFLQGqEXVEE86w4Z8LpIQ== +"@noble/hashes@1.1.2", "@noble/hashes@~1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" + integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== -"@nodefactory/filsnap-adapter@^0.2.1": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@nodefactory/filsnap-adapter/-/filsnap-adapter-0.2.2.tgz#0e182150ce3825b6c26b8512ab9355ab7759b498" - integrity sha512-nbaYMwVopOXN2bWOdDY3il6gGL9qMuCmMN4WPuoxzJjSnAMJNqEeSe6MNNJ/fYBLipZcJfAtirNXRrFLFN+Tvw== +"@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== -"@nodefactory/filsnap-types@^0.2.1": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@nodefactory/filsnap-types/-/filsnap-types-0.2.2.tgz#f95cbf93ce5815d8d151c60663940086b015cb8f" - integrity sha512-XT1tE2vrYF2D0tSNNekgjqKRpqPQn4W72eKul9dDCul/8ykouhqnVTyjFHYvBhlBWE0PK3nmG7i83QvhgGSiMw== +"@noble/secp256k1@^1.3.0": + 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" @@ -2062,6 +869,204 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@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.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.0.3.tgz#1d49e4ac028831a3011a9f3dca60bd1963185342" + integrity sha512-W+bIiNiZmiy+MTYFZn3nwjyPUO6wfWJ0lnXx2zZrM8xExKObMrhCh50yy8pQING24mHfpPFCn89wEB/iG7vZDw== + +"@nomicfoundation/solidity-analyzer-darwin-x64@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.0.3.tgz#c0fccecc5506ff5466225e41e65691abafef3dbe" + integrity sha512-HuJd1K+2MgmFIYEpx46uzwEFjvzKAI765mmoMxy4K+Aqq1p+q7hHRlsFU2kx3NB8InwotkkIq3A5FLU1sI1WDw== + +"@nomicfoundation/solidity-analyzer-freebsd-x64@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.0.3.tgz#8261d033f7172b347490cd005931ef8168ab4d73" + integrity sha512-2cR8JNy23jZaO/vZrsAnWCsO73asU7ylrHIe0fEsXbZYqBP9sMr+/+xP3CELDHJxUbzBY8zqGvQt1ULpyrG+Kw== + +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.0.3.tgz#1ba64b1d76425f8953dedc6367bd7dd46f31dfc5" + integrity sha512-Eyv50EfYbFthoOb0I1568p+eqHGLwEUhYGOxcRNywtlTE9nj+c+MT1LA53HnxD9GsboH4YtOOmJOulrjG7KtbA== + +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.0.3.tgz#8d864c49b55e683f7e3b5cce9d10b628797280ac" + integrity sha512-V8grDqI+ivNrgwEt2HFdlwqV2/EQbYAdj3hbOvjrA8Qv+nq4h9jhQUxFpegYMDtpU8URJmNNlXgtfucSrAQwtQ== + +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.0.3.tgz#16e769500cf1a8bb42ab9498cee3b93c30f78295" + integrity sha512-uRfVDlxtwT1vIy7MAExWAkRD4r9M79zMG7S09mCrWUn58DbLs7UFl+dZXBX0/8FTGYWHhOT/1Etw1ZpAf5DTrg== + +"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.0.3.tgz#75f4e1a25526d54c506e4eba63b3d698b6255b8f" + integrity sha512-8HPwYdLbhcPpSwsE0yiU/aZkXV43vlXT2ycH+XlOjWOnLfH8C41z0njK8DHRtEFnp4OVN6E7E5lHBBKDZXCliA== + +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.0.3.tgz#ef6e20cfad5eedfdb145cc34a44501644cd7d015" + integrity sha512-5WWcT6ZNvfCuxjlpZOY7tdvOqT1kIQYlDF9Q42wMpZ5aTm4PvjdCmFDDmmTvyXEBJ4WTVmY5dWNWaxy8h/E28g== + +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.0.3.tgz#98c4e3af9cee68896220fa7e270aefdf7fc89c7b" + integrity sha512-P/LWGZwWkyjSwkzq6skvS2wRc3gabzAbk6Akqs1/Iiuggql2CqdLBkcYWL5Xfv3haynhL+2jlNkak+v2BTZI4A== + +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.0.3.tgz#12da288e7ef17ec14848f19c1e8561fed20d231d" + integrity sha512-4AcTtLZG1s/S5mYAIr/sdzywdNwJpOcdStGF3QMBzEt+cGn3MchMaS9b1gyhb2KKM2c39SmPF5fUuWq1oBSQZQ== + +"@nomicfoundation/solidity-analyzer@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.0.3.tgz#d1029f872e66cb1082503b02cc8b0be12f8dd95e" + integrity sha512-VFMiOQvsw7nx5bFmrmVp2Q9rhIjw2AFST4DYvWVVO9PMHPE23BY2+kyfrQ4J3xCMFC8fcBbGLt7l4q7m1SlTqg== + optionalDependencies: + "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.0.3" + "@nomicfoundation/solidity-analyzer-darwin-x64" "0.0.3" + "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.0.3" + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.0.3" + "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.0.3" + "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.0.3" + "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.0.3" + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.0.3" + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.0.3" + "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.0.3" + "@nomiclabs/buidler@^1.4.8": version "1.4.8" resolved "https://registry.yarnpkg.com/@nomiclabs/buidler/-/buidler-1.4.8.tgz#36ebbd0fb54eb2052b1336bf90ee47825393e5dc" @@ -2133,14 +1138,14 @@ util.promisify "^1.0.0" "@nomiclabs/hardhat-ethers@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.2.tgz#c472abcba0c5185aaa4ad4070146e95213c68511" - integrity sha512-6quxWe8wwS4X5v3Au8q1jOvXYEPkS1Fh+cME5u6AwNdnI4uERvPlVjlgRWzpnb+Rrt1l/cEqiNRH9GlsBMSDQg== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.1.1.tgz#3f1d1ab49813d1bae4c035cc1adec224711e528b" + integrity sha512-Gg0IFkT/DW3vOpih4/kMjeZCLYqtfgECLeLXTs7ZDPzcK0cfoc5wKk4nq5n/izCUzdhidO/Utd6ptF9JrWwWVA== "@nomiclabs/hardhat-etherscan@^2.1.1": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.6.tgz#8d1502f42adc6f7b8ef16fb917c0b5a8780cb83a" - integrity sha512-gCvT5fj8GbXS9+ACS3BzrX0pzYHHZqAHCb+NcipOkl2cy48FakUXlzrCf4P4sTH+Y7W10OgT62ezD1sJ+/NikQ== + version "2.1.8" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.8.tgz#e206275e96962cd15e5ba9148b44388bc922d8c2" + integrity sha512-0+rj0SsZotVOcTLyDOxnOc3Gulo8upo0rsw/h+gBPcmtj91YqYJNhdARHoBxOhhE8z+5IUQPx+Dii04lXT14PA== dependencies: "@ethersproject/abi" "^5.1.2" "@ethersproject/address" "^5.0.2" @@ -2150,15 +1155,15 @@ node-fetch "^2.6.0" semver "^6.3.0" -"@nomiclabs/hardhat-truffle5@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.2.tgz#bfc29843a5a78a6eceafc3f5c24b6163b92424a1" - integrity sha512-QHxtwNPmAYSxiUFCLqfTy3lbIgMeh0Uqcv5g9ioQWExMrYpwqW0goXTH6JWx3gwYIsF2ALtI4/10CKj7zLDyWA== +"@nomiclabs/hardhat-truffle5@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.7.tgz#7519eadd2c6c460c2addc3d4d6efda7a8883361e" + integrity sha512-Pw8451IUZp1bTp0QqCHCYfCHs66sCnyxPcaorapu9mfOV9xnZsVaFdtutnhNEiXdiZwbed7LFKpRsde4BjFwig== dependencies: "@nomiclabs/truffle-contract" "^4.2.23" "@types/chai" "^4.2.0" chai "^4.2.0" - ethereumjs-util "^7.1.0" + ethereumjs-util "^7.1.4" fs-extra "^7.0.1" "@nomiclabs/hardhat-web3@^2.0.0": @@ -2169,15 +1174,16 @@ "@types/bignumber.js" "^5.0.0" "@nomiclabs/truffle-contract@^4.2.23": - version "4.2.23" - resolved "https://registry.yarnpkg.com/@nomiclabs/truffle-contract/-/truffle-contract-4.2.23.tgz#3431d09d2400413d3a14650494abc0a6233c16d4" - integrity sha512-Khj/Ts9r0LqEpGYhISbc+8WTOd6qJ4aFnDR+Ew+neqcjGnhwrIvuihNwPFWU6hDepW3Xod6Y+rTo90N8sLRDjw== - dependencies: - "@truffle/blockchain-utils" "^0.0.25" - "@truffle/contract-schema" "^3.2.5" - "@truffle/debug-utils" "^4.2.9" - "@truffle/error" "^0.0.11" - "@truffle/interface-adapter" "^0.4.16" + version "4.5.10" + resolved "https://registry.yarnpkg.com/@nomiclabs/truffle-contract/-/truffle-contract-4.5.10.tgz#52adcca1068647e1c2b44bf0e6a89fc4ad7f9213" + integrity sha512-nF/6InFV+0hUvutyFgsdOMCoYlr//2fJbRER4itxYtQtc4/O1biTwZIKRu+5l2J5Sq6LU2WX7vZHtDgQdhWxIQ== + dependencies: + "@ensdomains/ensjs" "^2.0.1" + "@truffle/blockchain-utils" "^0.1.3" + "@truffle/contract-schema" "^3.4.7" + "@truffle/debug-utils" "^6.0.22" + "@truffle/error" "^0.1.0" + "@truffle/interface-adapter" "^0.5.16" bignumber.js "^7.2.1" ethereum-ens "^0.8.0" ethers "^4.0.0-beta.1" @@ -2202,16 +1208,19 @@ integrity sha512-dlKiZmDvJnGRLHojrDoFZJmsQVeltVeoiRN7RK+cf2FmkhASDEblE0RiaYdxPNsUZa6mRG8393b9bfyp+V5IAw== "@openzeppelin/hardhat-upgrades@^1.6.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.12.0.tgz#35b4dd9bdefb203e7e0ba4b1c38df133bf721ddf" - integrity sha512-C5eOSt01zHKYUaRRDunqCsP5fXLpqFatIEs+NywVKLfVV6LNatugaNiRC4oHT8FF8wnr38uSoWrJJVTRoXUECw== + version "1.20.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.20.0.tgz#fe1bddc4ab591ccf185caf4cfa269a4851b73599" + integrity sha512-ign7fc/ZdPe+KAYCB91619o+wlBr7sIEEt1nqLhoXAJ9f0qVuXkwAaTdLB0MTSWH85TzlUUT2fTJp1ZnZ1o4LQ== dependencies: - "@openzeppelin/upgrades-core" "^1.10.0" + "@openzeppelin/upgrades-core" "^1.18.0" + chalk "^4.1.0" + debug "^4.1.1" + proper-lockfile "^4.1.1" "@openzeppelin/test-helpers@^0.5.15": - version "0.5.15" - resolved "https://registry.yarnpkg.com/@openzeppelin/test-helpers/-/test-helpers-0.5.15.tgz#7727d4bb1535e1fa2372d65d1dcee335ce8d36af" - integrity sha512-10fS0kyOjc/UObo9iEWPNbC6MCeiQ7z97LDOJBj68g+AAs5pIGEI2h3V6G9TYTIq8VxOdwMQbfjKrx7Y3YZJtA== + version "0.5.16" + resolved "https://registry.yarnpkg.com/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz#2c9054f85069dfbfb5e8cef3ed781e8caf241fb3" + integrity sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg== dependencies: "@openzeppelin/contract-loader" "^0.6.2" "@truffle/contract" "^4.0.35" @@ -2224,15 +1233,14 @@ web3 "^1.2.5" web3-utils "^1.2.5" -"@openzeppelin/upgrades-core@^1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.10.0.tgz#d3aa72b7a23827e0e6daff08ddfb8dcd75171abb" - integrity sha512-N20t1i1wlHrVmu3etVZLiaRxT6XLkCrO9gIo4mUZNpsaVftl8V+WBu8o940AjoYXvzTEqj7O0re2DSFzjpkRBw== +"@openzeppelin/upgrades-core@^1.18.0": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.19.1.tgz#46da1cc1825ed1175ff3eaf5aa6cb5620f7da4d0" + integrity sha512-g0x/7xIXLHjYzvhsAyzkbIcIxLv87GEdEfq6KmEhljP2hEzcN3krNhGbjpoqZlJcV+sIEFcxSkDkYgOffAQmvA== dependencies: - bn.js "^5.1.2" cbor "^8.0.0" chalk "^4.1.0" - compare-versions "^3.6.0" + compare-versions "^5.0.0" debug "^4.1.1" ethereumjs-util "^7.0.3" proper-lockfile "^4.1.1" @@ -2241,7 +1249,7 @@ "@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 sha1-m4sMxmPWaafY9vXQiToU00jzD78= + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== "@protobufjs/base64@^1.1.2": version "1.1.2" @@ -2256,12 +1264,12 @@ "@protobufjs/eventemitter@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + 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 sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== dependencies: "@protobufjs/aspromise" "^1.1.1" "@protobufjs/inquire" "^1.1.0" @@ -2269,76 +1277,71 @@ "@protobufjs/float@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + 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 sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + 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 sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + 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 sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + 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 sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== "@redux-saga/core@^1.0.0": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@redux-saga/core/-/core-1.1.3.tgz#3085097b57a4ea8db5528d58673f20ce0950f6a4" - integrity sha512-8tInBftak8TPzE6X13ABmEtRJGjtK17w7VUs7qV17S8hCO5S3+aUTWZ/DBsBJPdE8Z5jOPwYALyvofgq1Ws+kg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/@redux-saga/core/-/core-1.2.1.tgz#3680989621517d075a2cc85e0d2744b682990ed8" + integrity sha512-ABCxsZy9DwmNoYNo54ZlfuTvh77RXx8ODKpxOHeWam2dOaLGQ7vAktpfOtqSeTdYrKEORtTeWnxkGJMmPOoukg== dependencies: "@babel/runtime" "^7.6.3" - "@redux-saga/deferred" "^1.1.2" - "@redux-saga/delay-p" "^1.1.2" - "@redux-saga/is" "^1.1.2" - "@redux-saga/symbols" "^1.1.2" - "@redux-saga/types" "^1.1.0" + "@redux-saga/deferred" "^1.2.1" + "@redux-saga/delay-p" "^1.2.1" + "@redux-saga/is" "^1.1.3" + "@redux-saga/symbols" "^1.1.3" + "@redux-saga/types" "^1.2.1" redux "^4.0.4" typescript-tuple "^2.2.1" -"@redux-saga/deferred@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@redux-saga/deferred/-/deferred-1.1.2.tgz#59937a0eba71fff289f1310233bc518117a71888" - integrity sha512-908rDLHFN2UUzt2jb4uOzj6afpjgJe3MjICaUNO3bvkV/kN/cNeI9PMr8BsFXB/MR8WTAZQq/PlTq8Kww3TBSQ== +"@redux-saga/deferred@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@redux-saga/deferred/-/deferred-1.2.1.tgz#aca373a08ccafd6f3481037f2f7ee97f2c87c3ec" + integrity sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g== -"@redux-saga/delay-p@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@redux-saga/delay-p/-/delay-p-1.1.2.tgz#8f515f4b009b05b02a37a7c3d0ca9ddc157bb355" - integrity sha512-ojc+1IoC6OP65Ts5+ZHbEYdrohmIw1j9P7HS9MOJezqMYtCDgpkoqB5enAAZrNtnbSL6gVCWPHaoaTY5KeO0/g== +"@redux-saga/delay-p@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@redux-saga/delay-p/-/delay-p-1.2.1.tgz#e72ac4731c5080a21f75b61bedc31cb639d9e446" + integrity sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w== dependencies: - "@redux-saga/symbols" "^1.1.2" + "@redux-saga/symbols" "^1.1.3" -"@redux-saga/is@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@redux-saga/is/-/is-1.1.2.tgz#ae6c8421f58fcba80faf7cadb7d65b303b97e58e" - integrity sha512-OLbunKVsCVNTKEf2cH4TYyNbbPgvmZ52iaxBD4I1fTif4+MTXMa4/Z07L83zW/hTCXwpSZvXogqMqLfex2Tg6w== +"@redux-saga/is@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@redux-saga/is/-/is-1.1.3.tgz#b333f31967e87e32b4e6b02c75b78d609dd4ad73" + integrity sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q== dependencies: - "@redux-saga/symbols" "^1.1.2" - "@redux-saga/types" "^1.1.0" - -"@redux-saga/symbols@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@redux-saga/symbols/-/symbols-1.1.2.tgz#216a672a487fc256872b8034835afc22a2d0595d" - integrity sha512-EfdGnF423glv3uMwLsGAtE6bg+R9MdqlHEzExnfagXPrIiuxwr3bdiAwz3gi+PsrQ3yBlaBpfGLtDG8rf3LgQQ== + "@redux-saga/symbols" "^1.1.3" + "@redux-saga/types" "^1.2.1" -"@redux-saga/types@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@redux-saga/types/-/types-1.1.0.tgz#0e81ce56b4883b4b2a3001ebe1ab298b84237204" - integrity sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg== +"@redux-saga/symbols@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@redux-saga/symbols/-/symbols-1.1.3.tgz#b731d56201719e96dc887dc3ae9016e761654367" + integrity sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg== -"@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== +"@redux-saga/types@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@redux-saga/types/-/types-1.2.1.tgz#9403f51c17cae37edf870c6bc0c81c1ece5ccef8" + integrity sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA== "@resolver-engine/core@^0.2.1": version "0.2.1" @@ -2374,6 +1377,28 @@ debug "^3.1.0" hosted-git-info "^2.6.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" @@ -2452,32 +1477,20 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== -"@socket.io/base64-arraybuffer@~1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#568d9beae00b0d835f4f8c53fd55714986492e61" - integrity sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ== - -"@socket.io/component-emitter@~3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz#8863915676f837d9dad7b76f50cb500c1e9422e9" - integrity sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q== - -"@solidity-parser/parser@^0.12.0": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.12.2.tgz#1afad367cb29a2ed8cdd4a3a62701c2821fb578f" - integrity sha512-d7VS7PxgMosm5NyaiyDJRNID5pK4AWj1l64Dbz0147hJgy5k2C0/ZiKK/9u5c5K+HRUVHmp+RMvGEjGh84oA5Q== +"@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== -"@solidity-parser/parser@^0.13.2": - version "0.13.2" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.13.2.tgz#b6c71d8ca0b382d90a7bbed241f9bc110af65cbe" - integrity sha512-RwHnpRnfrnD2MSPveYoPh8nhofEvX7fgjHk1Oq+NNvCcLx4r1js91CO9o+F/F3fBzOCyvm8kKRTriFICX/odWw== - dependencies: - antlr4ts "^0.5.0-alpha.4" +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== -"@solidity-parser/parser@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.0.tgz#d51f074efb0acce0e953ec48133561ed710cebc0" - integrity sha512-cX0JJRcmPtNUJpzD2K7FdA7qQsTOk1UZnFx2k7qAg9ZRvuaH5NBe5IEdBMXGlmf2+FmjhqbygJ26H8l2SV7aKQ== +"@solidity-parser/parser@^0.14.0", "@solidity-parser/parser@^0.14.1", "@solidity-parser/parser@^0.14.3": + version "0.14.3" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.3.tgz#0d627427b35a40d8521aaa933cc3df7d07bfa36f" + integrity sha512-29g2SZ29HtsqA58pLCtopI1P/cPy5/UAzlcAXO6T/CNJimG6yA8kx4NaseMyJULiC+TEs02Y9/yeHzClqoA0hw== dependencies: antlr4ts "^0.5.0-alpha.4" @@ -2486,11 +1499,6 @@ resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.5.2.tgz#4d74670ead39e4f4fdab605a393ba8ea2390a2c4" integrity sha512-uRyvnvVYmgNmTBpWDbBsH/0kPESQhQpEc4KsvMRLVzFJ1o1s0uIv0Y6Y9IB5vI1Dwz2CbS4X/y4Wyw/75cTFnQ== -"@solidity-parser/parser@^0.8.0": - version "0.8.2" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.8.2.tgz#a6a5e93ac8dca6884a99a532f133beba59b87b69" - integrity sha512-8LySx3qrNXPgB5JiULfG10O3V7QTxI/TLzSw5hFQhXWSkVxZBAv4rZQ0sYgLEbc8g3L2lmnujj1hKul38Eu5NQ== - "@stablelib/aead@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" @@ -2576,10 +1584,10 @@ "@stablelib/constant-time" "^1.0.1" "@stablelib/wipe" "^1.0.1" -"@stablelib/random@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.1.tgz#4357a00cb1249d484a9a71e6054bc7b8324a7009" - integrity sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ== +"@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" @@ -2599,12 +1607,12 @@ integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== "@stablelib/x25519@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.2.tgz#ae21e2ab668076ec2eb2b4853b82a27fab045fa1" - integrity sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw== + 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.1" + "@stablelib/random" "^1.0.2" "@stablelib/wipe" "^1.0.1" "@szmarczak/http-timer@^1.1.2": @@ -2614,477 +1622,211 @@ dependencies: defer-to-connect "^1.0.1" -"@textile/buckets-grpc@2.6.6": - version "2.6.6" - resolved "https://registry.yarnpkg.com/@textile/buckets-grpc/-/buckets-grpc-2.6.6.tgz#304bdef37c81f0bdf2aa98f52d3b437bf4ab9d14" - integrity sha512-Gg+96RviTLNnSX8rhPxFgREJn3Ss2wca5Szk60nOenW+GoVIc+8dtsA9bE/6Vh5Gn85zAd17m1C2k6PbJK8x3Q== - dependencies: - "@improbable-eng/grpc-web" "^0.13.0" - "@types/google-protobuf" "^3.7.4" - google-protobuf "^3.13.0" - -"@textile/buckets@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@textile/buckets/-/buckets-6.2.0.tgz#0c67d8cd221da3a44f7e4aa55cf60b6b09a57dfa" - integrity sha512-83yqKiz1sAvu93l+5klGdjYzsoXYdRbncXzZ7QPWReS8UEV6/VhrvmkIz0K5EYSVWXuLeh0HjVB53Kq3VLMmiw== - dependencies: - "@improbable-eng/grpc-web" "^0.13.0" - "@repeaterjs/repeater" "^3.0.4" - "@textile/buckets-grpc" "2.6.6" - "@textile/context" "^0.12.1" - "@textile/crypto" "^4.2.1" - "@textile/grpc-authentication" "^3.4.1" - "@textile/grpc-connection" "^2.5.1" - "@textile/grpc-transport" "^0.5.1" - "@textile/hub-grpc" "2.6.6" - "@textile/hub-threads-client" "^5.5.0" - "@textile/security" "^0.9.1" - "@textile/threads-id" "^0.6.1" - abort-controller "^3.0.0" - cids "^1.1.4" - it-drain "^1.0.3" - loglevel "^1.6.8" - paramap-it "^0.1.1" - -"@textile/context@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@textile/context/-/context-0.12.1.tgz#417a6e1a9f76fe4fb965a163129a8a95dc143601" - integrity sha512-3UDkz0YjwpWt8zY8NBkZ9UqqlR2L9Gv6t2TAXAQT+Rh/3/X0IAFGQlAaFT5wdGPN2nqbXDeEOFfkMs/T2K02Iw== - dependencies: - "@improbable-eng/grpc-web" "^0.13.0" - "@textile/security" "^0.9.1" - -"@textile/crypto@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@textile/crypto/-/crypto-4.2.1.tgz#96f03daab9e9a1b97967e490e2ca3f9b2fd66f89" - integrity sha512-7qxFLrXiSq5Tf3Wh3Oh6JKJMitF/6N3/AJyma6UAA8iQnAZBF98ShWz9tR59a3dvmGTc9MlyplOm16edbccscg== - dependencies: - "@types/ed2curve" "^0.2.2" - ed2curve "^0.3.0" - fastestsmallesttextencoderdecoder "^1.0.22" - multibase "^3.1.0" - tweetnacl "^1.0.3" - -"@textile/grpc-authentication@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@textile/grpc-authentication/-/grpc-authentication-3.4.1.tgz#e2c3cc90f4b4c42e9abdd9d9eed1199de96f898a" - integrity sha512-AzMWlmx//EzBeanVdtXLFr8joMc5v9T5Q6VhAUjzN2vx0bCYywn0GhJEiCWbHsvfr4CJ19FvDYeUZUPfewxNPA== - dependencies: - "@textile/context" "^0.12.1" - "@textile/crypto" "^4.2.1" - "@textile/grpc-connection" "^2.5.1" - "@textile/hub-threads-client" "^5.5.0" - "@textile/security" "^0.9.1" - -"@textile/grpc-connection@^2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@textile/grpc-connection/-/grpc-connection-2.5.1.tgz#3b9756bca796596f200a51b5de8ba0cfefb32084" - integrity sha512-ujSjt0gcFLxu4VWtUFlCrnoqUVa/aI8emQ1YSo71Hdf4/XVYctSJlj4abVPArQdyusIVK3bWoUekBE6suJeMhg== - dependencies: - "@improbable-eng/grpc-web" "^0.12.0" - "@textile/context" "^0.12.1" - "@textile/grpc-transport" "^0.5.1" - -"@textile/grpc-powergate-client@^2.6.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@textile/grpc-powergate-client/-/grpc-powergate-client-2.6.2.tgz#c267cc3e3dd1e68673c234d5465ff70bed843df6" - integrity sha512-ODe22lveqPiSkBsxnhLIRKQzZVwvyqDVx6WBPQJZI4yxrja5SDOq6/yH2Dtmqyfxg8BOobFvn+tid3wexRZjnQ== - dependencies: - "@improbable-eng/grpc-web" "^0.14.0" - "@types/google-protobuf" "^3.15.2" - google-protobuf "^3.17.3" - -"@textile/grpc-transport@^0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@textile/grpc-transport/-/grpc-transport-0.5.1.tgz#bb12cce341ab7daad7fd0a6199d2c122a52c0bdf" - integrity sha512-TXd51uWUYhcGPeESbzgSgCy3OYAXJemUUk0lqAklAKvRiXG33SYx8K9CFDxBJdnzT5FOMck7eSliKCROaRuabw== - dependencies: - "@improbable-eng/grpc-web" "^0.13.0" - "@types/ws" "^7.2.6" - isomorphic-ws "^4.0.1" - loglevel "^1.6.6" - ws "^7.2.1" - -"@textile/hub-filecoin@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@textile/hub-filecoin/-/hub-filecoin-2.2.0.tgz#c659508490bf0a777bc4b95bf97c0de025957934" - integrity sha512-1niQti/TSqsY8KKF3/QRxGWI4j2L0b6GfJDSh0t2hvWS4Sz6miTEtuLccL1ccQB/lj8Nko3MUok3v04WhhmoBA== - dependencies: - "@improbable-eng/grpc-web" "^0.12.0" - "@textile/context" "^0.12.1" - "@textile/crypto" "^4.2.1" - "@textile/grpc-authentication" "^3.4.1" - "@textile/grpc-connection" "^2.5.1" - "@textile/grpc-powergate-client" "^2.6.2" - "@textile/hub-grpc" "2.6.6" - "@textile/security" "^0.9.1" - event-iterator "^2.0.0" - loglevel "^1.6.8" - -"@textile/hub-grpc@2.6.6": - version "2.6.6" - resolved "https://registry.yarnpkg.com/@textile/hub-grpc/-/hub-grpc-2.6.6.tgz#c99392490885760f357b58e72812066aac0ffeac" - integrity sha512-PHoLUE1lq0hyiVjIucPHRxps8r1oafXHIgmAR99+Lk4TwAF2MXx5rfxYhg1dEJ3ches8ZuNbVGkiNIXroIoZ8Q== - dependencies: - "@improbable-eng/grpc-web" "^0.13.0" - "@types/google-protobuf" "^3.7.4" - google-protobuf "^3.13.0" - -"@textile/hub-threads-client@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@textile/hub-threads-client/-/hub-threads-client-5.5.0.tgz#83d09cbc794b9796891f4d1b9b590eaf00a5b576" - integrity sha512-W8j5W5ZO2i9nnRbBQLkt3DXbk2NEdz8jZ+YBavgJniWg8OdvnobSznvTv6ZNlJs7WWJPQF8Z3TA0aXKZi1ik6A== - dependencies: - "@improbable-eng/grpc-web" "^0.13.0" - "@textile/context" "^0.12.1" - "@textile/hub-grpc" "2.6.6" - "@textile/security" "^0.9.1" - "@textile/threads-client" "^2.3.0" - "@textile/threads-id" "^0.6.1" - "@textile/users-grpc" "2.6.6" - loglevel "^1.7.0" - -"@textile/hub@^6.0.2": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@textile/hub/-/hub-6.3.0.tgz#a88b916d7b2cf1ffb9d699909be1f525052ed569" - integrity sha512-LJe/KgFK6xMDlycl+txus70DV/zwbwlbcaM2xlnE6mK+fr+ZA0s8+7CX4UnvjT2xjgrw4/TPiQ8hoTArxmZ2xg== - dependencies: - "@textile/buckets" "^6.2.0" - "@textile/crypto" "^4.2.1" - "@textile/grpc-authentication" "^3.4.1" - "@textile/hub-filecoin" "^2.2.0" - "@textile/hub-grpc" "2.6.6" - "@textile/hub-threads-client" "^5.5.0" - "@textile/security" "^0.9.1" - "@textile/threads-id" "^0.6.1" - "@textile/users" "^6.2.0" - loglevel "^1.6.8" - multihashes "3.1.2" - -"@textile/multiaddr@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@textile/multiaddr/-/multiaddr-0.6.1.tgz#c3dc666866d7616ab7a31bceb390ffad4f5932fb" - integrity sha512-OQK/kXYhtUA8yN41xltCxCiCO98Pkk8yMgUdhPDAhogvptvX4k9g6Rg0Yob18uBwN58AYUg075V//SWSK1kUCQ== - dependencies: - "@textile/threads-id" "^0.6.1" - multiaddr "^8.1.2" - varint "^6.0.0" - -"@textile/security@^0.9.1": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@textile/security/-/security-0.9.1.tgz#fe40cad3b27caf097252236b843b4fa71e81ffaf" - integrity sha512-pmiSOUezV/udTMoQsvyEZwZFfN0tMo6dOAof4VBqyFdDZZV6doeI5zTDpqSJZTg69n0swfWxsHw96ZWQIoWvsw== - dependencies: - "@consento/sync-randombytes" "^1.0.5" - fast-sha256 "^1.3.0" - fastestsmallesttextencoderdecoder "^1.0.22" - multibase "^3.1.0" - -"@textile/threads-client-grpc@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@textile/threads-client-grpc/-/threads-client-grpc-1.1.1.tgz#65a84d933244abf3e83ed60ae491d8e066dc3b00" - integrity sha512-vdRD6hW90w1ys35AmeCy/DSQqASpu9oAP72zE8awLmB+MEUxHKclp4qRITgRAgRVczs/YpiksUBzqCNS9ekx6A== - dependencies: - "@improbable-eng/grpc-web" "^0.14.0" - "@types/google-protobuf" "^3.15.5" - google-protobuf "^3.17.3" - -"@textile/threads-client@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@textile/threads-client/-/threads-client-2.3.0.tgz#d911e80191eed7de9e75f20b760a2d2273f369ca" - integrity sha512-4pbAuv8ke6Pyd7cuM/sWbrG5tZ3ODUeVLhq0HwIGXWFvT1odMfMS3E2gss6oEA5P4LxAHm7ITzt/0UwXDtEp0g== - dependencies: - "@improbable-eng/grpc-web" "^0.13.0" - "@textile/context" "^0.12.1" - "@textile/crypto" "^4.2.1" - "@textile/grpc-transport" "^0.5.1" - "@textile/multiaddr" "^0.6.1" - "@textile/security" "^0.9.1" - "@textile/threads-client-grpc" "^1.1.1" - "@textile/threads-id" "^0.6.1" - "@types/to-json-schema" "^0.2.0" - fastestsmallesttextencoderdecoder "^1.0.22" - to-json-schema "^0.2.5" - -"@textile/threads-id@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@textile/threads-id/-/threads-id-0.6.1.tgz#ac6b5c93c9bd669f6c8f75ab2044b47a0f09627c" - integrity sha512-KwhbLjZ/eEquPorGgHFotw4g0bkKLTsqQmnsIxFeo+6C1mz40PQu4IOvJwohHr5GL6wedjlobry4Jj+uI3N+0w== - dependencies: - "@consento/sync-randombytes" "^1.0.4" - multibase "^3.1.0" - varint "^6.0.0" - -"@textile/users-grpc@2.6.6": - version "2.6.6" - resolved "https://registry.yarnpkg.com/@textile/users-grpc/-/users-grpc-2.6.6.tgz#dfec3ffc8f960892839c4e2e678af57b79f0d09a" - integrity sha512-pzI/jAWJx1/NqvSj03ukn2++aDNRdnyjwgbxh2drrsuxRZyCQEa1osBAA+SDkH5oeRf6dgxrc9dF8W1Ttjn0Yw== +"@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: - "@improbable-eng/grpc-web" "^0.13.0" - "@types/google-protobuf" "^3.7.4" - google-protobuf "^3.13.0" - -"@textile/users@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@textile/users/-/users-6.2.0.tgz#5f92bccbecc23b38c95b3ef4fbe85cbff2cff9af" - integrity sha512-uUQfKgsdBGKxSffnwwm1G8Je4sQ/Qvn2fTCMe83o3NFYhB3tOhv/gQSlsxd0TCyJnEyq7pH9EanuoCRNWe5Hcg== - dependencies: - "@improbable-eng/grpc-web" "^0.13.0" - "@textile/buckets-grpc" "2.6.6" - "@textile/context" "^0.12.1" - "@textile/crypto" "^4.2.1" - "@textile/grpc-authentication" "^3.4.1" - "@textile/grpc-connection" "^2.5.1" - "@textile/grpc-transport" "^0.5.1" - "@textile/hub-grpc" "2.6.6" - "@textile/hub-threads-client" "^5.5.0" - "@textile/security" "^0.9.1" - "@textile/threads-id" "^0.6.1" - "@textile/users-grpc" "2.6.6" - event-iterator "^2.0.0" - loglevel "^1.7.0" + defer-to-connect "^2.0.0" -"@truffle/abi-utils@^0.1.0": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-0.1.6.tgz#d754a54caec2577efaa05f0ca66c58e73676884e" - integrity sha512-A9bW5XHywPNHod8rsu4x4eyM4C6k3eMeyOCd47edhiA/e9kgAVp6J3QDzKoHS8nuJ2qiaq+jk5bLnAgNWAHYyQ== +"@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: - change-case "3.0.2" - faker "^5.3.1" - fast-check "^2.12.1" + defer-to-connect "^2.0.1" -"@truffle/abi-utils@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-0.2.4.tgz#9fc8bfc95bbe29a33cca3ab9028865b078e2f051" - integrity sha512-ICr5Sger6r5uj2G5GN9Zp9OQDCaCqe2ZyAEyvavDoFB+jX0zZFUCfDnv5jllGRhgzdYJ3mec2390mjUyz9jSZA== +"@truffle/abi-utils@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-0.3.2.tgz#71184255cfa05a5ded3c7b7fb50a3de813446224" + integrity sha512-32queMD64YKL/tmQgSV4Xs073dIaZ9tp7NP1icjwvFSA3Q9yeu7ApYbSbYMsx9H9zWkkVOsfcoJ2kJEieOCzsA== dependencies: change-case "3.0.2" - faker "^5.3.1" - fast-check "^2.12.1" - -"@truffle/blockchain-utils@^0.0.25": - version "0.0.25" - resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.0.25.tgz#f4b320890113d282f25f1a1ecd65b94a8b763ac1" - integrity sha512-XA5m0BfAWtysy5ChHyiAf1fXbJxJXphKk+eZ9Rb9Twi6fn3Jg4gnHNwYXJacYFEydqT5vr2s4Ou812JHlautpw== - dependencies: - source-map-support "^0.5.19" + fast-check "3.1.1" + web3-utils "1.7.4" -"@truffle/blockchain-utils@^0.0.31": - version "0.0.31" - resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.0.31.tgz#0503d9fb2ce3e05c167c27294927f2f88d70a24d" - integrity sha512-BFo/nyxwhoHqPrqBQA1EAmSxeNnspGLiOCMa9pAL7WYSjyNBlrHaqCMO/F2O87G+NUK/u06E70DiSP2BFP0ZZw== +"@truffle/blockchain-utils@^0.1.3", "@truffle/blockchain-utils@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.1.4.tgz#1365b88c3d2922a066d947e93748f09b0fac2e93" + integrity sha512-HegAo5A8UX9vE8dtceBRgCY207gOb9wj54c8mNOOWHcFpkyJz7kZYGo44As6Imh10/0hD2j7vHQ56Jf+uszJ3A== -"@truffle/code-utils@^1.2.30": - version "1.2.30" - resolved "https://registry.yarnpkg.com/@truffle/code-utils/-/code-utils-1.2.30.tgz#aa0a2a11eea40e3c76824729467f27d6cb76819b" - integrity sha512-/GFtGkmSZlLpIbIjBTunvhQQ4K2xaHK63QCEKydt3xRMPhpaeVAIaBNH53Z1ulOMDi6BZcSgwQHkquHf/omvMQ== +"@truffle/code-utils@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@truffle/code-utils/-/code-utils-2.0.1.tgz#9c59bd2e16e2b231774839e44c1a47ccb8ab3675" + integrity sha512-TUiGXpUVtRwh0j2CqIy4nXdT3YftDi9+e6fOKfSUnaZSHP/5OHjXdjbSM/9ogzmiWNaKAQ2ZkEp0nMoZ/YJ/vQ== dependencies: - cbor "^5.1.0" + cbor "^5.2.0" -"@truffle/codec@^0.11.17": - version "0.11.17" - resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.11.17.tgz#451ad820b0c7abaf78d52fa8bf310e000d04c1aa" - integrity sha512-WO9D5TVyTf9czqdsfK/qqYeSS//zWcHBgQgSNKPlCDb6koCNLxG5yGbb4P+0bZvTUNS2e2iIdN92QHg00wMbSQ== +"@truffle/codec@^0.14.5": + version "0.14.5" + resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.14.5.tgz#5b1574fb55d20a56af3039adaac7cd9dd421b1fe" + integrity sha512-3FCpTJe6o7LGWUfrSdguMpdpH1PTn3u7bIfbj6Cfdzym2OAVSgxTgdlqC1poepbk0xcOVcUW+EsqNwLMqmBiPA== dependencies: - "@truffle/abi-utils" "^0.2.4" - "@truffle/compile-common" "^0.7.22" - big.js "^5.2.2" + "@truffle/abi-utils" "^0.3.2" + "@truffle/compile-common" "^0.8.1" + big.js "^6.0.3" bn.js "^5.1.3" - cbor "^5.1.0" + cbor "^5.2.0" debug "^4.3.1" - lodash.clonedeep "^4.5.0" - lodash.escaperegexp "^4.1.2" - lodash.partition "^4.6.0" - lodash.sum "^4.0.2" - semver "^7.3.4" - utf8 "^3.0.0" - web3-utils "1.5.3" - -"@truffle/codec@^0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.7.1.tgz#2ef0fa40109040796afbebb8812c872122100ae4" - integrity sha512-mNd6KnW6J0UB1zafGBXDlTEbCMvWpmPAJmzv7aF/nAIaN/F8UePSCiQ1OTQP39Rprj6GFiCCaWVnBAwum6UGSg== - dependencies: - big.js "^5.2.2" - bn.js "^4.11.8" - borc "^2.1.2" - debug "^4.1.0" - lodash.clonedeep "^4.5.0" - lodash.escaperegexp "^4.1.2" - lodash.partition "^4.6.0" - lodash.sum "^4.0.2" - semver "^6.3.0" - source-map-support "^0.5.19" + lodash "^4.17.21" + semver "7.3.7" utf8 "^3.0.0" - web3-utils "1.2.9" + web3-utils "1.7.4" -"@truffle/compile-common@^0.7.22": - version "0.7.22" - resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.7.22.tgz#c376eea36f59dc770ece3bc8cbb7132f49352846" - integrity sha512-afFKh0Wphn8JrCSjOORKjO8/E1X0EtQv6GpFJpQCAWo3/i4VGcSVKR1rjkknnExtjEGe9PJH/Ym/opGH3pQyDw== +"@truffle/compile-common@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.8.1.tgz#a3fe500edb880a3104324c9885bbd27b6ce05c54" + integrity sha512-7mzzG9Cfrn+fDT5Sqi7B6pccvIIV5w/GM8/56YgnjysbDzy5aZ6mv0fe37ZbcznEVQ35NJjBy+lEr/ozOGXwQA== dependencies: - "@truffle/error" "^0.0.14" - colors "^1.4.0" + "@truffle/error" "^0.1.1" + colors "1.4.0" -"@truffle/config@^1.3.10": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@truffle/config/-/config-1.3.10.tgz#4694ba3882a6f40197aeec8d2192d35ae0f9dc76" - integrity sha512-7r4eVa/CEhzjS1eYdegXGqlzNy7PnyAv0TdGxdNeFi9XqZFg4dzF8XkHLDcmRjC5otYWRIpobjSljTLpfIOqoQ== +"@truffle/config@^1.3.37": + version "1.3.37" + resolved "https://registry.yarnpkg.com/@truffle/config/-/config-1.3.37.tgz#b0bf87d3cba82da199926e450a7237643f8214eb" + integrity sha512-QscARxWIu7ezFgVzSDXhnTz9bpKNvhJh15NDn71uS5k7CdLEs2ZI0w+2Z82bQPXkxDNCur57l8WL0UDLuGDyQg== dependencies: - "@truffle/error" "^0.0.14" - "@truffle/events" "^0.0.16" - "@truffle/provider" "^0.2.42" - conf "^10.0.2" + "@truffle/error" "^0.1.1" + "@truffle/events" "^0.1.14" + "@truffle/provider" "^0.2.59" + conf "^10.1.2" find-up "^2.1.0" - lodash.assignin "^4.2.0" - lodash.merge "^4.6.2" - lodash.pick "^4.4.0" - module "^1.2.5" + lodash "^4.17.21" original-require "^1.0.1" -"@truffle/contract-schema@^3.2.5", "@truffle/contract-schema@^3.3.1", "@truffle/contract-schema@^3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.3.tgz#c1bcde343f70b9438314202e103a7d77d684603c" - integrity sha512-pgaTgF4CKIpkqVYZVr2qGTxZZQOkNCWOXW9VQpKvLd4G0SNF2Y1gyhrFbBhoOUtYlbbSty+IEFFHsoAqpqlvpQ== +"@truffle/contract-schema@^3.4.10", "@truffle/contract-schema@^3.4.7": + version "3.4.10" + resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.10.tgz#c11a814c13ad55a5e454fb35ddfa291ae0d24ace" + integrity sha512-BhRNRoRvlj2th6E5RNS0BnS0ZxQe01JJz8I7MjkGqdeXSvrn6qDCAnbmvhNgUv0l5h8w5+gBOQhAJhILf1shdQ== dependencies: ajv "^6.10.0" debug "^4.3.1" -"@truffle/contract-sources@^0.1.12": - version "0.1.12" - resolved "https://registry.yarnpkg.com/@truffle/contract-sources/-/contract-sources-0.1.12.tgz#7a3dfec1bcf6f3632c0f54e522fb6f12b0bdf34b" - integrity sha512-7OH8P+N4n2LewbNiVpuleshPqj8G7n9Qkd5ot79sZ/R6xIRyXF05iBtg3/IbjIzOeQCrCE9aYUHNe2go9RuM0g== - dependencies: +"@truffle/contract@^4.0.35", "@truffle/contract@^4.2.21": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@truffle/contract/-/contract-4.6.1.tgz#4d38049dc80da7245e591b55ebb40f0a4f258e89" + integrity sha512-WYYR1ic8csYN0GVp2mhPmVZwK4o4S2CLacef69LygdFSsap/NTivUUK6wqReHiFBYHUbFE2fH8otlwHh+h3mqA== + dependencies: + "@ensdomains/ensjs" "^2.1.0" + "@truffle/blockchain-utils" "^0.1.4" + "@truffle/contract-schema" "^3.4.10" + "@truffle/debug-utils" "^6.0.35" + "@truffle/error" "^0.1.1" + "@truffle/interface-adapter" "^0.5.21" + bignumber.js "^7.2.1" debug "^4.3.1" - glob "^7.1.6" + ethers "^4.0.32" + web3 "1.7.4" + web3-core-helpers "1.7.4" + web3-core-promievent "1.7.4" + web3-eth-abi "1.7.4" + web3-utils "1.7.4" -"@truffle/contract@^4.0.35", "@truffle/contract@^4.2.21", "@truffle/contract@^4.3.38": - version "4.3.38" - resolved "https://registry.yarnpkg.com/@truffle/contract/-/contract-4.3.38.tgz#51627cda844ed123f609e49a56016ecc0ed870b1" - integrity sha512-11HL9IJTmd45pVXJvEaRYeyuhf8GmAgRD7bTYBZj2CiMBnt0337Fg7Zz/GuTpUUW2h3fbyTYO4hgOntxdQjZ5A== +"@truffle/dashboard-message-bus-client@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@truffle/dashboard-message-bus-client/-/dashboard-message-bus-client-0.1.6.tgz#1956c1582fd2c1a923343d12d8543db92eba6baf" + integrity sha512-qIf5e+/xfZfXiiOkfWKtRjwbkstpjQpCkbndKSKhZcnz3QLkDIvfgSU6K9d+j4AyNCq4oN38gWoLDa3PVqZo8Q== dependencies: - "@ensdomains/ensjs" "^2.0.1" - "@truffle/blockchain-utils" "^0.0.31" - "@truffle/contract-schema" "^3.4.3" - "@truffle/debug-utils" "^5.1.18" - "@truffle/error" "^0.0.14" - "@truffle/interface-adapter" "^0.5.8" - bignumber.js "^7.2.1" - ethers "^4.0.32" - web3 "1.5.3" - web3-core-helpers "1.5.3" - web3-core-promievent "1.5.3" - web3-eth-abi "1.5.3" - web3-utils "1.5.3" - -"@truffle/db-loader@^0.0.13": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@truffle/db-loader/-/db-loader-0.0.13.tgz#9af1deb24500ee706963e2522ba352ee30d034bd" - integrity sha512-tq6fN2hwDG9d3rf63g9gRnEIORKI3fsFi5FIrxwtW7r2ZWxEcJjwYIkV5ZTvXlaARzoAE9kFUpI7+SybDrfyYQ== + "@truffle/dashboard-message-bus-common" "^0.1.4" + "@truffle/promise-tracker" "^0.1.3" + axios "0.27.2" + debug "^4.3.1" + delay "^5.0.0" + isomorphic-ws "^4.0.1" + node-abort-controller "^3.0.1" + tiny-typed-emitter "^2.1.0" + ws "^7.2.0" + +"@truffle/dashboard-message-bus-common@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@truffle/dashboard-message-bus-common/-/dashboard-message-bus-common-0.1.4.tgz#f5b5326eb4774d5d209c310c135309f4b3f42bea" + integrity sha512-R+16jYcr/mxhz5pI+0GAJI14XUvYySLTB650kWubMBrVf4vi4QaIOdAOrx4KxAIA6e/5Nq9j0le59Y2c+xAHYg== + +"@truffle/db-loader@^0.1.32": + version "0.1.32" + resolved "https://registry.yarnpkg.com/@truffle/db-loader/-/db-loader-0.1.32.tgz#4ada5da6fd2fe17d75ed12a3d625531a4802dca9" + integrity sha512-Yyeue2R0lC0Ib/xjCicNXpIbnIG06HfMQIRm73CgVpNJ/ZZg2ow02iED2lNUiBV10h3ObkC8/x4KweqgUD13pQ== optionalDependencies: - "@truffle/db" "^0.5.34" - -"@truffle/db@^0.5.34": - version "0.5.34" - resolved "https://registry.yarnpkg.com/@truffle/db/-/db-0.5.34.tgz#a59ed4349a66ea293abb51ff4869b5bac71f3898" - integrity sha512-pIBnha8sejXsvBjv6S8pn0J2qEqir19q4FsGP7jfdpjAonUbu0cmAT7pZIJ7p5Y97GWoowXPiKLsL9TDfZz8lg== - dependencies: - "@truffle/abi-utils" "^0.2.4" - "@truffle/code-utils" "^1.2.30" - "@truffle/config" "^1.3.10" - "@truffle/resolver" "^7.0.32" - apollo-server "^2.18.2" + "@truffle/db" "^1.0.22" + +"@truffle/db@^1.0.22": + version "1.0.22" + resolved "https://registry.yarnpkg.com/@truffle/db/-/db-1.0.22.tgz#c8b16fabfed99fd84eda1dc7199d3358a95b340f" + integrity sha512-59OPD2yLCYKEwaNlIBDfeFK112w9VnKIl+hbBZgQqCsJxye6f1+tsmbyQFWjpy1fI9OGNmFnLrCZql93RV+bFw== + dependencies: + "@graphql-tools/delegate" "^8.4.3" + "@graphql-tools/schema" "^8.3.1" + "@truffle/abi-utils" "^0.3.2" + "@truffle/code-utils" "^2.0.1" + "@truffle/config" "^1.3.37" + abstract-leveldown "^7.2.0" + apollo-server "^3.6.3" debug "^4.3.1" fs-extra "^9.1.0" graphql "^15.3.0" - graphql-tag "^2.11.0" - graphql-tools "^6.2.4" + graphql-tag "^2.12.6" json-stable-stringify "^1.0.1" - jsondown "^1.0.0" pascal-case "^2.0.1" pluralize "^8.0.0" - pouchdb "7.1.1" + pouchdb "7.3.0" pouchdb-adapter-memory "^7.1.1" pouchdb-adapter-node-websql "^7.0.0" pouchdb-debug "^7.1.1" pouchdb-find "^7.0.0" - web3-utils "1.5.3" - -"@truffle/debug-utils@^4.2.9": - version "4.2.14" - resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-4.2.14.tgz#28431691bc3a96bad19e31733d957ac79059d4e7" - integrity sha512-g5UTX2DPTzrjRjBJkviGI2IrQRTTSvqjmNWCNZNXP+vgQKNxL9maLZhQ6oA3BuuByVW/kusgYeXt8+W1zynC8g== - dependencies: - "@truffle/codec" "^0.7.1" - "@trufflesuite/chromafi" "^2.2.1" - chalk "^2.4.2" - debug "^4.1.0" - highlight.js "^9.15.8" - highlightjs-solidity "^1.0.18" + web3-utils "1.7.4" -"@truffle/debug-utils@^5.1.18": - version "5.1.18" - resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-5.1.18.tgz#6068673f3536149c0584a3c1193eb933f4663dc6" - integrity sha512-QBq1vA/YozksQZGjyA7o482AuT8KW5gvO8VmYM/PIDllCIqDruEZuz4DZ+zpVUPXyVoJycFo+RKnM/TLE1AZRQ== +"@truffle/debug-utils@^6.0.22", "@truffle/debug-utils@^6.0.35": + version "6.0.35" + resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-6.0.35.tgz#c9e93d9968857bae14789737f986b8d601a03eb2" + integrity sha512-GuLsc+GFEYiUM683GWh4/ol3jkBts5a601detVWu1Xo5/bSL5gxooOjgOTovjA8dimCjkyi/DnK2yHHC+q+g0g== dependencies: - "@truffle/codec" "^0.11.17" - "@trufflesuite/chromafi" "^2.2.2" + "@truffle/codec" "^0.14.5" + "@trufflesuite/chromafi" "^3.0.0" bn.js "^5.1.3" chalk "^2.4.2" debug "^4.3.1" - highlightjs-solidity "^2.0.1" + highlightjs-solidity "^2.0.5" -"@truffle/debugger@^9.1.19": - version "9.1.19" - resolved "https://registry.yarnpkg.com/@truffle/debugger/-/debugger-9.1.19.tgz#99a8cbd90f5cb55d073800346ae34abdec90ca9b" - integrity sha512-JPUcIqPmOPNwFAaDgOl4N6ZKeagO6ut82EfaoWjbkaB047JLbwr0Lie2wDCylHxt/3+fvGJDjllWkC1bho0FBg== +"@truffle/debugger@^11.0.8": + version "11.0.8" + resolved "https://registry.yarnpkg.com/@truffle/debugger/-/debugger-11.0.8.tgz#81bc4948a610236e9b1f054578950703d79f658a" + integrity sha512-jMhmBG4s9v9yklsy4LYcBhW+8qfcbNxJ9yDyilCHPAN4FWJHSLs9uhPwHiNhMaKCxKVEjwSduq6atGA1HXnIng== dependencies: - "@truffle/abi-utils" "^0.2.4" - "@truffle/codec" "^0.11.17" - "@truffle/source-map-utils" "^1.3.61" + "@truffle/abi-utils" "^0.3.2" + "@truffle/codec" "^0.14.5" + "@truffle/source-map-utils" "^1.3.95" bn.js "^5.1.3" debug "^4.3.1" - json-pointer "^0.6.0" + json-pointer "^0.6.1" json-stable-stringify "^1.0.1" - lodash.flatten "^4.4.0" - lodash.merge "^4.6.2" - lodash.sum "^4.0.2" - lodash.zipwith "^4.2.0" + lodash "^4.17.21" redux "^3.7.2" redux-saga "1.0.0" - remote-redux-devtools "^0.5.12" - reselect-tree "^1.3.4" - semver "^7.3.4" - web3 "1.5.3" - web3-eth-abi "1.5.3" - -"@truffle/error@^0.0.11": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.0.11.tgz#2789c0042d7e796dcbb840c7a9b5d2bcd8e0e2d8" - integrity sha512-ju6TucjlJkfYMmdraYY/IBJaFb+Sa+huhYtOoyOJ+G29KcgytUVnDzKGwC7Kgk6IsxQMm62Mc1E0GZzFbGGipw== + reselect-tree "^1.3.7" + semver "7.3.7" + web3 "1.7.4" + web3-eth-abi "1.7.4" -"@truffle/error@^0.0.14": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.0.14.tgz#59683b5407bede7bddf16d80dc5592f9c5e5fa05" - integrity sha512-utJx+SZYoMqk8wldQG4gCVKhV8GwMJbWY7sLXFT/D8wWZTnE2peX7URFJh/cxkjTRCO328z1s2qewkhyVsu2HA== +"@truffle/error@^0.1.0", "@truffle/error@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.1.1.tgz#e52026ac8ca7180d83443dca73c03e07ace2a301" + integrity sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA== -"@truffle/events@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@truffle/events/-/events-0.0.16.tgz#ef1cead08ee38864f809357ec226e0337b5faa91" - integrity sha512-kTad2IdbnAUsE4FRKZciYB4SHTEhX+Mm7+EStpvTwxKFf4GnKH4RPeLOapUb/M0sd4ZUzQEO5fonTXMMbFz7Cw== +"@truffle/events@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@truffle/events/-/events-0.1.14.tgz#6a3f1026dc1739bfac18b7f8351935b9f2756045" + integrity sha512-6hAaThmkiMe7Hub+p6tyOlOqRQS4VUtxXQkSKN3ol5FphCXe7XE2ZFGRPOK+hUgNcrPXjzD2Q6GbSosVqO65oA== dependencies: + "@truffle/dashboard-message-bus-client" "^0.1.6" + "@truffle/spinners" "^0.2.2" + debug "^4.3.1" emittery "^0.4.1" - ora "^3.4.0" - -"@truffle/expect@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@truffle/expect/-/expect-0.0.18.tgz#022353a212942437e1a57ac1191d692347367bb5" - integrity sha512-ZcYladRCgwn3bbhK3jIORVHcUOBk/MXsUxjfzcw+uD+0H1Kodsvcw1AAIaqd5tlyFhdOb7YkOcH0kUES7F8d1A== + web3-utils "1.7.4" "@truffle/hdwallet-provider@^1.4.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@truffle/hdwallet-provider/-/hdwallet-provider-1.6.0.tgz#8b6c52fa5fcdb1ed1b68df512c518a2115340549" - integrity sha512-/G3WBnO3Ohn2xsf/UZS9mbfKF92EnWtutcC+k1fg+N+feBGNBgsBKJwPOAn3qZ77ezitBWCrdMNoeTbP8jY6nQ== + version "1.7.0" + resolved "https://registry.yarnpkg.com/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz#5cfa8bc67c2a30b3943d3dab78f74c6a191cde02" + integrity sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A== dependencies: "@ethereumjs/common" "^2.4.0" "@ethereumjs/tx" "^3.3.0" @@ -3095,132 +1837,69 @@ ethereumjs-util "^6.1.0" ethereumjs-wallet "^1.0.1" -"@truffle/interface-adapter@^0.4.16": - version "0.4.24" - resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.4.24.tgz#5d6d4f10c756e967f19ac2ad1620d11d25c034bb" - integrity sha512-2Zho4dJbm/XGwNleY7FdxcjXiAR3SzdGklgrAW4N/YVmltaJv6bT56ACIbPNN6AdzkTSTO65OlsB/63sfSa/VA== - dependencies: - bn.js "^5.1.3" - ethers "^4.0.32" - web3 "1.3.6" - -"@truffle/interface-adapter@^0.5.8": - version "0.5.8" - resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.8.tgz#76cfd34374d85849e1164de1a3d5a3dce0dc5d01" - integrity sha512-vvy3xpq36oLgjjy8KE9l2Jabg3WcGPOt18tIyMfTQX9MFnbHoQA2Ne2i8xsd4p6KfxIqSjAB53Q9/nScAqY0UQ== +"@truffle/interface-adapter@^0.5.16", "@truffle/interface-adapter@^0.5.21": + version "0.5.21" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.21.tgz#f22c99b7cb5d5c4ebbb6106f9274ea844baeaa2b" + integrity sha512-2ltbu3upsWS0TAQu1kLQc048XlXNmDkCzH6iebX4dg3VBB+l7oG/pu5+/kl8t+LRfzGoEMLKwOQt7vk0Vm3PNA== dependencies: bn.js "^5.1.3" ethers "^4.0.32" - web3 "1.5.3" - -"@truffle/preserve-fs@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@truffle/preserve-fs/-/preserve-fs-0.2.4.tgz#9218021f805bb521d0175d5e6bb8535dc4f5c340" - integrity sha512-dGHPWw40PpSMZSWTTCrv+wq5vQuSh2Cy1ABdhQOqMkw7F5so4mdLZdgh956em2fLbTx5NwaEV7dwLu2lYM+xwA== - dependencies: - "@truffle/preserve" "^0.2.4" - -"@truffle/preserve-to-buckets@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@truffle/preserve-to-buckets/-/preserve-to-buckets-0.2.4.tgz#8f7616716fb3ba983565ccdcd47bc12af2a96c2b" - integrity sha512-C3NBOY7BK55mURBLrYxUqhz57Mz23Q9ePj+A0J4sJnmWJIsjfzuc2gozXkrzFK5od5Rg786NIoXxPxkb2E0tsA== - dependencies: - "@textile/hub" "^6.0.2" - "@truffle/preserve" "^0.2.4" - cids "^1.1.5" - ipfs-http-client "^48.2.2" - isomorphic-ws "^4.0.1" - iter-tools "^7.0.2" - ws "^7.4.3" - -"@truffle/preserve-to-filecoin@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@truffle/preserve-to-filecoin/-/preserve-to-filecoin-0.2.4.tgz#cc947aa9d575fb162435fe324f43d88d17ebf082" - integrity sha512-kUzvSUCfpH0gcLxOM8eaYy5dPuJYh/wBpjU5bEkCcrx1HQWr73fR3slS8cO5PNqaxkDvm8RDlh7Lha2JTLp4rw== - dependencies: - "@truffle/preserve" "^0.2.4" - cids "^1.1.5" - delay "^5.0.0" - filecoin.js "^0.0.5-alpha" - -"@truffle/preserve-to-ipfs@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@truffle/preserve-to-ipfs/-/preserve-to-ipfs-0.2.4.tgz#a4b17b47574b4a1384557c8728b09d84fbdb13c0" - integrity sha512-17gEBhYcS1Qx/FAfOrlyyKJ74HLYm4xROtHwqRvV9MoDI1k3w/xcL+odRrl5H15NX8vNFOukAI7cGe0NPjQHvQ== - dependencies: - "@truffle/preserve" "^0.2.4" - ipfs-http-client "^48.2.2" - iter-tools "^7.0.2" + web3 "1.7.4" -"@truffle/preserve@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@truffle/preserve/-/preserve-0.2.4.tgz#1d902cc9df699eee3efdc39820c755b9c5af65c7" - integrity sha512-rMJQr/uvBIpT23uGM9RLqZKwIIR2CyeggVOTuN2UHHljSsxHWcvRCkNZCj/AA3wH3GSOQzCrbYBcs0d/RF6E1A== - dependencies: - spinnies "^0.5.1" +"@truffle/promise-tracker@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@truffle/promise-tracker/-/promise-tracker-0.1.3.tgz#8a971a5f22ea6922b3578a49b05be481d2d2a3fa" + integrity sha512-1Z5qEfu0KSS+774xe9aPPlLMvzCJNdEeTofne2HkEPLBb53Lb28ZZoMYrwE8eJRjMKMG+y75IYpX7SKcSgj+OQ== -"@truffle/provider@^0.2.24", "@truffle/provider@^0.2.42": - version "0.2.42" - resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.2.42.tgz#9da6a144b3c9188cdb587451dd7bd907b4c7164b" - integrity sha512-ZNoglPho4alYIjJR+sLTgX0x6ho7m4OAUWuJ50RAWmoEqYc4AM6htdrI+lTSoRrOHHbmgasv22a7rFPMnmDrTg== +"@truffle/provider@^0.2.24", "@truffle/provider@^0.2.59": + version "0.2.59" + resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.2.59.tgz#a6bc51c53a6bf0e376e9b3167fae255f3b0d9208" + integrity sha512-4b79yUSZlEd7KqzaPkQiiT4aRCGaI+pXPdwJMD0olLvnZrGoNrBtRQSmnXesxBcqi6FaSDxxC+/9URG2HBPE2g== dependencies: - "@truffle/error" "^0.0.14" - "@truffle/interface-adapter" "^0.5.8" - web3 "1.5.3" + "@truffle/error" "^0.1.1" + "@truffle/interface-adapter" "^0.5.21" + debug "^4.3.1" + web3 "1.7.4" -"@truffle/provisioner@^0.2.33": - version "0.2.33" - resolved "https://registry.yarnpkg.com/@truffle/provisioner/-/provisioner-0.2.33.tgz#6512cdd4fe04bb8edc12a7c14c46faa8f9f7fea3" - integrity sha512-rvjM24WLacxfbFd9kMRyF0PnnyAsraFBDx5L4g32GRziltHJFqjcgEN12C/jyw7tDhd8BWOf3rS3y+HFpvYJ9A== +"@truffle/source-map-utils@^1.3.95": + version "1.3.95" + resolved "https://registry.yarnpkg.com/@truffle/source-map-utils/-/source-map-utils-1.3.95.tgz#fc38b8586c5cf167f87946f3ea0955c5668fc73f" + integrity sha512-Cm2XEVaueACLywkAltWg5EI5sXt8e+KRMdtOfynFvV8EAMsbGRr8gMwznojFr+d/4lPyiX+Y8E0T2+cquD11Vg== dependencies: - "@truffle/config" "^1.3.10" + "@truffle/code-utils" "^2.0.1" + "@truffle/codec" "^0.14.5" + debug "^4.3.1" + json-pointer "^0.6.1" + node-interval-tree "^1.3.3" + web3-utils "1.7.4" -"@truffle/resolver@^7.0.32": - version "7.0.32" - resolved "https://registry.yarnpkg.com/@truffle/resolver/-/resolver-7.0.32.tgz#180085b3e0006b180192de10ed5d6229f7a4ca47" - integrity sha512-LV69HFsNZypNz3KWOlVqownmi8RR5lX/Hnn2VXTUnuaUQNY2YYN4BpXYTdmeXBT1ytIHugvULiqmk22/fuLqlw== +"@truffle/spinners@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@truffle/spinners/-/spinners-0.2.2.tgz#0f69f18f3d8242eb6a9a20497e73e1c97e8ca0ac" + integrity sha512-6srCpV5MykkROtkj+ak5YX0GexAVuw+AB+lZIQxWLGP3i75pfJer7vL2nnqgr0madaAUuIixb7A2NJDFx3lOdg== dependencies: - "@truffle/contract" "^4.3.38" - "@truffle/contract-sources" "^0.1.12" - "@truffle/expect" "^0.0.18" - "@truffle/provisioner" "^0.2.33" - abi-to-sol "^0.2.0" - debug "^4.3.1" - detect-installed "^2.0.4" - get-installed-path "^4.0.8" - glob "^7.1.6" + "@trufflesuite/spinnies" "^0.1.1" -"@truffle/source-map-utils@^1.3.61": - version "1.3.61" - resolved "https://registry.yarnpkg.com/@truffle/source-map-utils/-/source-map-utils-1.3.61.tgz#28f3b2c5a4ec0979b95f43ba8ec5c9718512f1b5" - integrity sha512-R9pD0CQIfJbQTtcLxo6qOBC6IFVQYvu6IVXk11i4sBNV2xRZ3/5t/SOyPAO7Ju7GKrJi4g4Chd/3EB7wzHPjQg== +"@trufflesuite/bigint-buffer@1.1.10": + version "1.1.10" + resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz#a1d9ca22d3cad1a138b78baaf15543637a3e1692" + integrity sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw== dependencies: - "@truffle/code-utils" "^1.2.30" - "@truffle/codec" "^0.11.17" - debug "^4.3.1" - json-pointer "^0.6.0" - node-interval-tree "^1.3.3" - web3-utils "1.5.3" + node-gyp-build "4.4.0" -"@trufflesuite/chromafi@^2.2.1", "@trufflesuite/chromafi@^2.2.2": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@trufflesuite/chromafi/-/chromafi-2.2.2.tgz#d3fc507aa8504faffc50fb892cedcfe98ff57f77" - integrity sha512-mItQwVBsb8qP/vaYHQ1kDt2vJLhjoEXJptT6y6fJGvFophMFhOI/NsTVUa0nJL1nyMeFiS6hSYuNVdpQZzB1gA== +"@trufflesuite/chromafi@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz#f6956408c1af6a38a6ed1657783ce59504a1eb8b" + integrity sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ== dependencies: - ansi-mark "^1.0.0" - ansi-regex "^3.0.0" - array-uniq "^1.0.3" camelcase "^4.1.0" chalk "^2.3.2" cheerio "^1.0.0-rc.2" detect-indent "^5.0.0" - he "^1.1.1" highlight.js "^10.4.1" lodash.merge "^4.6.2" - min-indent "^1.0.0" strip-ansi "^4.0.0" strip-indent "^2.0.0" - super-split "^1.1.0" "@trufflesuite/eth-json-rpc-filters@^4.1.2-1": version "4.1.2-1" @@ -3272,6 +1951,15 @@ ethereumjs-abi "^0.6.8" ethereumjs-util "^5.1.1" +"@trufflesuite/spinnies@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@trufflesuite/spinnies/-/spinnies-0.1.1.tgz#719230993f55ab39f936ed8778979e7661af188d" + integrity sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA== + dependencies: + chalk "^4.1.2" + cli-cursor "^3.1.0" + strip-ansi "^6.0.0" + "@trufflesuite/web3-provider-engine@15.0.14": version "15.0.14" resolved "https://registry.yarnpkg.com/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz#8f9696f434585cc0ab2e57c312090c1f138bc471" @@ -3300,18 +1988,18 @@ xhr "^2.2.0" xtend "^4.0.1" -"@types/abstract-leveldown@*": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-5.0.2.tgz#ee81917fe38f770e29eec8139b6f16ee4a8b0a5f" - integrity sha512-+jA1XXF3jsz+Z7FcuiNqgK53hTa/luglT2TyTpKPqoYbxVY+mCPF22Rm+q3KPBrMHJwNXFrTViHszBOfU4vftQ== - -"@types/accepts@*", "@types/accepts@^1.3.5": +"@types/accepts@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== dependencies: "@types/node" "*" +"@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-types@*", "@types/babel-types@^7.0.0": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.11.tgz#263b113fa396fac4373188d73225297fb86f19a9" @@ -3339,32 +2027,34 @@ "@types/node" "*" "@types/bn.js@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" - integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + 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/body-parser@*": - version "1.19.1" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c" - integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg== +"@types/body-parser@*", "@types/body-parser@1.19.2": + 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/body-parser@1.19.0": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== +"@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/connect" "*" + "@types/http-cache-semantics" "*" + "@types/keyv" "*" "@types/node" "*" + "@types/responselike" "*" "@types/chai@^4.2.0": - version "4.2.22" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.22.tgz#47020d7e4cf19194d43b5202f35f75bd2ad35ce7" - integrity sha512-tFfcE+DSTzWAgifkjik9AySNqIyNoYwmR+uecPwwD/XRNfvOjmC/FjCxpiUGDkDVDphPfCUecSQVFw+lN3M3kQ== + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" + integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== "@types/concat-stream@^1.6.0": version "1.6.1" @@ -3380,25 +2070,10 @@ dependencies: "@types/node" "*" -"@types/content-disposition@*": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.4.tgz#de48cf01c79c9f1560bcfd8ae43217ab028657f8" - integrity sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ== - -"@types/cookies@*": - version "0.7.7" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.7.tgz#7a92453d1d16389c05a5301eef566f34946cfd81" - integrity sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - -"@types/cors@2.8.10": - version "2.8.10" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" - integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== +"@types/cors@2.8.12": + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== "@types/debug@^4.1.7": version "4.1.7" @@ -3407,23 +2082,25 @@ dependencies: "@types/ms" "*" -"@types/ed2curve@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@types/ed2curve/-/ed2curve-0.2.2.tgz#8f8bc7e2c9a5895a941c63a4f7acd7a6a62a5b15" - integrity sha512-G1sTX5xo91ydevQPINbL2nfgVAj/s1ZiqZxC8OCWduwu+edoNGUm5JXtTkg9F3LsBZbRI46/0HES4CPUE2wc9g== +"@types/express-serve-static-core@4.17.30": + version "4.17.30" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz#0f2f99617fa8f9696170c46152ccf7500b34ac04" + integrity sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ== dependencies: - tweetnacl "^1.0.0" + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" -"@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.21": - version "4.17.24" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" - integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== +"@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.12": +"@types/express@4.17.13": version "4.17.13" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== @@ -3436,106 +2113,56 @@ "@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 sha1-yayFsqX9GENbjIXZ7LUObWyJP/g= - dependencies: - "@types/node" "*" - -"@types/fs-capacitor@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" - integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== + integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== dependencies: "@types/node" "*" "@types/glob@^7.1.1": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" - integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" "@types/node" "*" -"@types/google-protobuf@^3.15.2", "@types/google-protobuf@^3.15.5", "@types/google-protobuf@^3.7.4": - version "3.15.5" - resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.15.5.tgz#644b2be0f5613b1f822c70c73c6b0e0b5b5fa2ad" - integrity sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw== - -"@types/http-assert@*": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.3.tgz#ef8e3d1a8d46c387f04ab0f2e8ab8cb0c5078661" - integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA== - -"@types/http-errors@*": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.1.tgz#e81ad28a60bee0328c6d2384e029aec626f1ae67" - integrity sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q== - -"@types/json-schema@*": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== +"@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/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/keygrip@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" - integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== - -"@types/koa-compose@*": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" - integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== - dependencies: - "@types/koa" "*" - -"@types/koa@*": - version "2.13.4" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.4.tgz#10620b3f24a8027ef5cbae88b393d1b31205726b" - integrity sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/level-errors@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.0.tgz#15c1f4915a5ef763b51651b15e90f6dc081b96a8" - integrity sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ== + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/levelup@^4.3.0": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.3.tgz#4dc2b77db079b1cf855562ad52321aa4241b8ef4" - integrity sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA== +"@types/keyv@*": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: - "@types/abstract-leveldown" "*" - "@types/level-errors" "*" "@types/node" "*" "@types/long@^4.0.0", "@types/long@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== -"@types/lru-cache@^5.1.0": +"@types/lru-cache@5.1.1", "@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/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== +"@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@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/minimatch@*", "@types/minimatch@^3.0.4": +"@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== @@ -3545,25 +2172,10 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*": - version "16.11.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" - integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== - -"@types/node@10.12.18": - version "10.12.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" - integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== - -"@types/node@11.11.6": - version "11.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" - integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== - -"@types/node@>=13.7.0": - version "16.10.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.3.tgz#7a8f2838603ea314d1d22bb3171d899e15c57bd5" - integrity sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ== +"@types/node@*", "@types/node@>=13.7.0": + version "18.7.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.18.tgz#633184f55c322e4fb08612307c274ee6d5ed3154" + integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg== "@types/node@^10.0.3", "@types/node@^10.1.0", "@types/node@^10.3.2": version "10.17.60" @@ -3571,9 +2183,9 @@ integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.6": - version "12.20.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.28.tgz#4b20048c6052b5f51a8d5e0d2acbf63d5a17e1e2" - integrity sha512-cBw8gzxUPYX+/5lugXIPksioBSbE42k0fZ39p+4yRzfYjN6++eq9kAPdlY9qm+MXyfbk9EmvCYAYRn380sF46w== + 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" @@ -3597,10 +2209,17 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/retry@^0.12.0": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" - integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== +"@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/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/secp256k1@^4.0.1": version "4.0.3" @@ -3609,98 +2228,29 @@ dependencies: "@types/node" "*" -"@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/to-json-schema@^0.2.0": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@types/to-json-schema/-/to-json-schema-0.2.1.tgz#223346df86bc0c183d53c939ad5eb1ddfb0e9bf5" - integrity sha512-DlvjodmdSrih054SrUqgS3bIZ93allrfbzjFUFmUhAtC60O+B/doLfgB8stafkEFyrU/zXWtPlX/V1H94iKv/A== - dependencies: - "@types/json-schema" "*" - -"@types/websocket@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.2.tgz#d2855c6a312b7da73ed16ba6781815bf30c6187a" - integrity sha512-B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ== - dependencies: - "@types/node" "*" +"@types/seedrandom@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-3.0.1.tgz#1254750a4fec4aff2ebec088ccd0bb02e91fedb4" + integrity sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw== -"@types/ws@^7.0.0", "@types/ws@^7.2.6": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== +"@types/serve-static@*": + 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/zen-observable@0.8.3": - version "0.8.3" - resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" - integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== "@vascosantos/moving-average@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@vascosantos/moving-average/-/moving-average-1.1.0.tgz#8d5793b09b2d6021ba5e620c6a0f876c20db7eaa" integrity sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w== -"@wry/context@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.1.tgz#c3c29c0ad622adb00f6a53303c4f965ee06ebeb2" - integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== - dependencies: - tslib "^2.3.0" - -"@wry/equality@^0.1.2": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" - integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== - dependencies: - tslib "^1.9.3" - -"@wry/equality@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.2.tgz#72c8a7a7d884dff30b612f4f8464eba26c080e73" - integrity sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA== - dependencies: - tslib "^2.3.0" - -"@wry/trie@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.1.tgz#2279b790f15032f8bcea7fc944d27988e5b3b139" - integrity sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw== - dependencies: - tslib "^2.3.0" - -"@zondax/filecoin-signing-tools@github:Digital-MOB-Filecoin/filecoin-signing-tools-js": - version "0.2.0" - resolved "https://codeload.github.com/Digital-MOB-Filecoin/filecoin-signing-tools-js/tar.gz/8f8e92157cac2556d35cab866779e9a8ea8a4e25" - dependencies: - axios "^0.20.0" - base32-decode "^1.0.0" - base32-encode "^1.1.1" - bip32 "^2.0.5" - bip39 "^3.0.2" - blakejs "^1.1.0" - bn.js "^5.1.2" - ipld-dag-cbor "^0.17.0" - leb128 "0.0.5" - secp256k1 "^4.0.1" - -"@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== - -abab@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" - integrity sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4= - abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -3709,22 +2259,7 @@ abbrev@1: abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - integrity sha1-kbR5JYinc4wl813W9jdSovh3YTU= - -abi-to-sol@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/abi-to-sol/-/abi-to-sol-0.2.1.tgz#308889ba60adc29bcc4265e6b4f7c692802db3a4" - integrity sha512-zJPxaymTHQx/Edpy3NELGseGuDrFPVVzwRvIyxu37ZgRsItHoaxLQeGuOxYNxJPNuc030D6S6evmw0yCCtn+1A== - dependencies: - "@truffle/abi-utils" "^0.1.0" - "@truffle/codec" "^0.7.1" - "@truffle/contract-schema" "^3.3.1" - ajv "^6.12.5" - better-ajv-errors "^0.6.7" - neodoc "^2.0.2" - prettier "^2.1.2" - prettier-plugin-solidity "^1.0.0-alpha.59" - source-map-support "^0.5.19" + integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== abort-controller@3.0.0, abort-controller@^3.0.0: version "3.0.0" @@ -3740,6 +2275,24 @@ abortable-iterator@^3.0.0, abortable-iterator@^3.0.2: dependencies: get-iterator "^1.0.2" +abortcontroller-polyfill@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" + integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== + +abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== + dependencies: + buffer "^6.0.3" + catering "^2.1.0" + is-buffer "^2.0.5" + level-supports "^4.0.0" + level-transcoder "^1.0.1" + module-error "^1.0.1" + queue-microtask "^1.2.3" + abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz#f7128e1f86ccabf7d2893077ce5d06d798e386c6" @@ -3780,19 +2333,11 @@ abstract-leveldown@~2.6.0: abstract-leveldown@~2.7.1: version "2.7.2" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~6.0.0, abstract-leveldown@~6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz#b4b6159343c74b0c5197b2817854782d8f748c4a" - integrity sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q== + integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== dependencies: - level-concat-iterator "~2.0.0" xtend "~4.0.0" -abstract-leveldown@~6.2.1: +abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== @@ -3803,32 +2348,18 @@ abstract-leveldown@~6.2.1: level-supports "~1.0.0" xtend "~4.0.0" -accepts@^1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ= - dependencies: - acorn "^4.0.3" - -acorn-globals@^1.0.4: - version "1.0.9" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" - integrity sha1-VbtemGkVB7dFedBRNBMhfDgMVM8= +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: - acorn "^2.1.0" + mime-types "~2.1.34" + negotiator "0.6.3" acorn-globals@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" - integrity sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8= + integrity sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw== dependencies: acorn "^4.0.4" @@ -3837,25 +2368,15 @@ acorn-jsx@^5.0.0: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@4.X, acorn@^4.0.3, acorn@^4.0.4, acorn@~4.0.2: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= - -acorn@^2.1.0, acorn@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" - integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc= - acorn@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + integrity sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw== -acorn@^5.0.0: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== +acorn@^4.0.4, acorn@~4.0.2: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + integrity sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug== acorn@^6.0.7: version "6.4.2" @@ -3863,9 +2384,9 @@ acorn@^6.0.7: integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== address@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + version "1.2.1" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.1.tgz#25bb61095b7522d65b357baa11bc05492d4c8acd" + integrity sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA== adm-zip@^0.4.16: version "0.4.16" @@ -3875,7 +2396,7 @@ adm-zip@^0.4.16: aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== aes-js@^3.1.2: version "3.1.2" @@ -3904,12 +2425,7 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" -ajv-keywords@^3.1.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.5, ajv@^6.6.1, ajv@^6.9.1: +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.6.1, ajv@^6.9.1: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3920,9 +2436,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.5, ajv@^6.6.1, ajv@ uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.6.3: - version "8.6.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" - integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== + 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" @@ -3932,7 +2448,7 @@ ajv@^8.0.0, ajv@^8.6.3: align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + integrity sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg== dependencies: kind-of "^3.0.2" longest "^1.0.1" @@ -3941,26 +2457,26 @@ align-text@^0.1.1, align-text@^0.1.3: amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== amp-message@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/amp-message/-/amp-message-0.1.2.tgz#a78f1c98995087ad36192a41298e4db49e3dfc45" - integrity sha1-p48cmJlQh602GSpBKY5NtJ49/EU= + integrity sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg== dependencies: amp "0.3.1" amp@0.3.1, amp@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/amp/-/amp-0.3.1.tgz#6adf8d58a74f361e82c1fa8d389c079e139fc47d" - integrity sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0= + integrity sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw== ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== -ansi-colors@4.1.1, ansi-colors@^4.1.1: +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== @@ -3970,6 +2486,11 @@ ansi-colors@^3.2.3: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -3982,31 +2503,20 @@ ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" -ansi-mark@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/ansi-mark/-/ansi-mark-1.0.4.tgz#1cd4ba8d57f15f109d6aaf6ec9ca9786c8a4ee6c" - integrity sha1-HNS6jVfxXxCdaq9uycqXhsik7mw= - dependencies: - ansi-regex "^3.0.0" - array-uniq "^1.0.3" - chalk "^2.3.2" - strip-ansi "^4.0.0" - super-split "^1.1.0" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + 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" @@ -4021,7 +2531,7 @@ ansi-regex@^6.0.1: ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" @@ -4038,9 +2548,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: color-convert "^2.0.1" ansi-styles@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" - integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + version "6.1.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.1.tgz#63cd61c72283a71cb30bd881dbb60adada74bc70" + integrity sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg== antlr4@4.7.1: version "4.7.1" @@ -4055,20 +2565,12 @@ antlr4ts@^0.5.0-alpha.4: any-promise@1.3.0, any-promise@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - -any-signal@^2.0.0, any-signal@^2.1.0: - 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" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== any-signal@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.0.tgz#4f6ee491e5cdda9e9a544f50fdf1d14be40535b6" - integrity sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g== + 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@^2.0.0: version "2.0.0" @@ -4086,181 +2588,109 @@ anymatch@~3.1.1, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apollo-cache-control@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz#95f20c3e03e7994e0d1bd48c59aeaeb575ed0ce7" - integrity sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w== - dependencies: - apollo-server-env "^3.1.0" - apollo-server-plugin-base "^0.13.0" - -apollo-datasource@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.9.0.tgz#b0b2913257a6103a5f4c03cb56d78a30e9d850db" - integrity sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA== - dependencies: - apollo-server-caching "^0.7.0" - apollo-server-env "^3.1.0" - -apollo-graphql@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.9.3.tgz#1ca6f625322ae10a66f57a39642849a07a7a5dc9" - integrity sha512-rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A== - dependencies: - core-js-pure "^3.10.2" - lodash.sortby "^4.7.0" - sha.js "^2.4.11" - -apollo-link@1.2.14, apollo-link@^1.2.14: - version "1.2.14" - resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" - integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== - dependencies: - apollo-utilities "^1.3.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - zen-observable-ts "^0.8.21" - -apollo-reporting-protobuf@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz#ae9d967934d3d8ed816fc85a0d8068ef45c371b9" - integrity sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg== - dependencies: - "@apollo/protobufjs" "1.2.2" - -apollo-server-caching@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz#e6d1e68e3bb571cba63a61f60b434fb771c6ff39" - integrity sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw== +apollo-datasource@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.2.tgz#5711f8b38d4b7b53fb788cb4dbd4a6a526ea74c8" + integrity sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg== dependencies: - lru-cache "^6.0.0" + "@apollo/utils.keyvaluecache" "^1.0.1" + apollo-server-env "^4.2.1" -apollo-server-core@^2.25.2: - version "2.25.2" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.25.2.tgz#ff65da5e512d9b5ca54c8e5e8c78ee28b5987247" - integrity sha512-lrohEjde2TmmDTO7FlOs8x5QQbAS0Sd3/t0TaK2TWaodfzi92QAvIsq321Mol6p6oEqmjm8POIDHW1EuJd7XMA== - dependencies: - "@apollographql/apollo-tools" "^0.5.0" - "@apollographql/graphql-playground-html" "1.6.27" - "@apollographql/graphql-upload-8-fork" "^8.1.3" +apollo-reporting-protobuf@^3.3.1, apollo-reporting-protobuf@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.3.2.tgz#2078c53d3140bc6221c6040c5326623e0c21c8d4" + integrity sha512-j1tx9tmkVdsLt1UPzBrvz90PdjAeKW157WxGn+aXlnnGfVjZLIRXX3x5t1NWtXvB7rVaAsLLILLtDHW382TSoQ== + dependencies: + "@apollo/protobufjs" "1.2.4" + +apollo-server-core@^3.10.2: + version "3.10.2" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.10.2.tgz#04c5c3fc96b6c7d7f84fdc7356cf9830de4db561" + integrity sha512-/1o9KPoAMgcjJJ9Y0IH1665wf9d02L/m/mcfBOHiFmRgeGkNgrhTy59BxQTBK241USAWMhwMpp171cv/hM5Dng== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + "@apollo/utils.usagereporting" "^1.0.0" + "@apollographql/apollo-tools" "^0.5.3" + "@apollographql/graphql-playground-html" "1.6.29" + "@graphql-tools/mock" "^8.1.2" + "@graphql-tools/schema" "^8.0.0" "@josephg/resolvable" "^1.0.0" - "@types/ws" "^7.0.0" - apollo-cache-control "^0.14.0" - apollo-datasource "^0.9.0" - apollo-graphql "^0.9.0" - apollo-reporting-protobuf "^0.8.0" - apollo-server-caching "^0.7.0" - apollo-server-env "^3.1.0" - apollo-server-errors "^2.5.0" - apollo-server-plugin-base "^0.13.0" - apollo-server-types "^0.9.0" - apollo-tracing "^0.15.0" + apollo-datasource "^3.3.2" + apollo-reporting-protobuf "^3.3.2" + apollo-server-env "^4.2.1" + apollo-server-errors "^3.3.1" + apollo-server-plugin-base "^3.6.2" + apollo-server-types "^3.6.2" async-retry "^1.2.1" - fast-json-stable-stringify "^2.0.0" - graphql-extensions "^0.15.0" + fast-json-stable-stringify "^2.1.0" graphql-tag "^2.11.0" - graphql-tools "^4.0.8" - loglevel "^1.6.7" + loglevel "^1.6.8" lru-cache "^6.0.0" sha.js "^2.4.11" - subscriptions-transport-ws "^0.9.19" uuid "^8.0.0" + whatwg-mimetype "^3.0.0" -apollo-server-env@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-3.1.0.tgz#0733c2ef50aea596cc90cf40a53f6ea2ad402cd0" - integrity sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ== +apollo-server-env@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" + integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== dependencies: - node-fetch "^2.6.1" - util.promisify "^1.0.0" + node-fetch "^2.6.7" -apollo-server-errors@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz#5d1024117c7496a2979e3e34908b5685fe112b68" - integrity sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA== +apollo-server-errors@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" + integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== -apollo-server-express@^2.25.2: - version "2.25.2" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.25.2.tgz#58cd819694ff4c2dec6945a95c5dff6aa2719ef6" - integrity sha512-A2gF2e85vvDugPlajbhr0A14cDFDIGX0mteNOJ8P3Z3cIM0D4hwrWxJidI+SzobefDIyIHu1dynFedJVhV0euQ== +apollo-server-express@^3.10.2: + version "3.10.2" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.10.2.tgz#df7cb81eab10d84db55297a2820cf3bd8814eb80" + integrity sha512-TUpnh23qAP3NqMp3/2TxcCpOxhvT64H6teOM5W+t5ncdHZ85aEMDrbfIhNwqkdsya+UyMn9IoBmn25h5TW93ZQ== dependencies: - "@apollographql/graphql-playground-html" "1.6.27" "@types/accepts" "^1.3.5" - "@types/body-parser" "1.19.0" - "@types/cors" "2.8.10" - "@types/express" "^4.17.12" - "@types/express-serve-static-core" "^4.17.21" + "@types/body-parser" "1.19.2" + "@types/cors" "2.8.12" + "@types/express" "4.17.13" + "@types/express-serve-static-core" "4.17.30" accepts "^1.3.5" - apollo-server-core "^2.25.2" - apollo-server-types "^0.9.0" - body-parser "^1.18.3" + apollo-server-core "^3.10.2" + apollo-server-types "^3.6.2" + body-parser "^1.19.0" cors "^2.8.5" - express "^4.17.1" - graphql-subscriptions "^1.0.0" - graphql-tools "^4.0.8" - parseurl "^1.3.2" - subscriptions-transport-ws "^0.9.19" - type-is "^1.6.16" + parseurl "^1.3.3" -apollo-server-plugin-base@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz#3f85751a420d3c4625355b6cb3fbdd2acbe71f13" - integrity sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg== +apollo-server-plugin-base@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.6.2.tgz#f256e1f274c8fee0d7267b6944f402da71788fb3" + integrity sha512-erWXjLOO1u7fxQkbxJ2cwSO7p0tYzNied91I1SJ9tikXZ/2eZUyDyvrpI+4g70kOdEi+AmJ5Fo8ahEXKJ75zdg== dependencies: - apollo-server-types "^0.9.0" + apollo-server-types "^3.6.2" -apollo-server-types@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.9.0.tgz#ccf550b33b07c48c72f104fbe2876232b404848b" - integrity sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg== - dependencies: - apollo-reporting-protobuf "^0.8.0" - apollo-server-caching "^0.7.0" - apollo-server-env "^3.1.0" - -apollo-server@^2.18.2: - version "2.25.2" - resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.25.2.tgz#db45c3ef8d9116cee8f12218f06588db717fee9e" - integrity sha512-2Ekx9puU5DqviZk6Kw1hbqTun3lwOWUjhiBJf+UfifYmnqq0s9vAv6Ditw+DEXwphJQ4vGKVVgVIEw6f/9YfhQ== - dependencies: - apollo-server-core "^2.25.2" - apollo-server-express "^2.25.2" - express "^4.0.0" - graphql-subscriptions "^1.0.0" - graphql-tools "^4.0.8" - stoppable "^1.1.0" - -apollo-tracing@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.15.0.tgz#237fbbbf669aee4370b7e9081b685eabaa8ce84a" - integrity sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA== - dependencies: - apollo-server-env "^3.1.0" - apollo-server-plugin-base "^0.13.0" - -apollo-upload-client@14.1.2: - version "14.1.2" - resolved "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-14.1.2.tgz#7a72b000f1cd67eaf8f12b4bda2796d0898c0dae" - integrity sha512-ozaW+4tnVz1rpfwiQwG3RCdCcZ93RV/37ZQbRnObcQ9mjb+zur58sGDPVg9Ef3fiujLmiE/Fe9kdgvIMA3VOjA== - dependencies: - "@apollo/client" "^3.1.5" - "@babel/runtime" "^7.11.2" - extract-files "^9.0.0" - -apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" - integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== - dependencies: - "@wry/equality" "^0.1.2" - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.4.0" - tslib "^1.10.0" +apollo-server-types@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.6.2.tgz#34bb0c335fcce3057cbdf72b3b63da182de6fc84" + integrity sha512-9Z54S7NB+qW1VV+kmiqwU2Q6jxWfX89HlSGCGOo3zrkrperh85LrzABgN9S92+qyeHYd72noMDg2aI039sF3dg== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + apollo-reporting-protobuf "^3.3.2" + apollo-server-env "^4.2.1" + +apollo-server@^3.6.3: + version "3.10.2" + resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-3.10.2.tgz#8d7859ba27f3d94c57a0a7065ae776f32dfc697a" + integrity sha512-iKYcbCGl32TxmV2YShiBbQqU8uJrwTopNi82KphKXcwgPyaZnMlNbVQOqiZSHVH4DtANAR4bB1cx8ORG+29NhQ== + dependencies: + "@types/express" "4.17.13" + apollo-server-core "^3.10.2" + apollo-server-express "^3.10.2" + express "^4.17.1" 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 sha1-ZBqlXft9am8KgUHEucCqULbCTdU= + integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== aproba@^1.0.3: version "1.2.0" @@ -4278,7 +2708,7 @@ arb-ethers-web3-bridge@^0.7.3: archive-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" - integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= + integrity sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA== dependencies: file-type "^4.2.0" @@ -4297,24 +2727,22 @@ argparse@^1.0.7: 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== + argsarray@0.0.1, argsarray@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/argsarray/-/argsarray-0.0.1.tgz#6e7207b4ecdb39b0af88303fa5ae22bda8df61cb" - integrity sha1-bnIHtOzbObCviDA/pa4ivajfYcs= - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= - dependencies: - arr-flatten "^1.0.1" + integrity sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg== arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== @@ -4322,21 +2750,21 @@ arr-flatten@^1.0.1, arr-flatten@^1.1.0: arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-includes@^3.1.3, array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== +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.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.19.5" get-intrinsic "^1.1.1" is-string "^1.0.7" @@ -4350,56 +2778,53 @@ array-union@^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-uniq@^1.0.3: +array-uniq@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== + 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.0" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446" - integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA== +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.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.19.0" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" -array.prototype.map@^1.0.1: +array.prototype.reduce@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.4.tgz#0d97b640cfdd036c1b41cfe706a5e699aa0711f2" - integrity sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA== + 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.0" + es-abstract "^1.19.2" es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" asap@~2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -asn1.js@^5.0.1, asn1.js@^5.2.0: +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== @@ -4416,30 +2841,10 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -assert-args@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/assert-args/-/assert-args-1.2.1.tgz#404103a1452a32fe77898811e54e590a8a9373bd" - integrity sha1-QEEDoUUqMv53iYgR5U5ZCoqTc70= - dependencies: - "101" "^1.2.0" - compound-subject "0.0.1" - debug "^2.2.0" - get-prototype-of "0.0.0" - is-capitalized "^1.0.0" - is-class "0.0.4" - 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 sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assertion-error@^1.1.0: version "1.1.0" @@ -4449,12 +2854,12 @@ assertion-error@^1.1.0: assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== ast-parents@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" - integrity sha1-UI/Q8F0MSHddnszaLhdEIyYejdM= + integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== astral-regex@^1.0.0: version "1.0.0" @@ -4501,24 +2906,24 @@ async-retry@^1.2.1: async@1.5, async@1.x, async@^1.4.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5, async@^2.5.0, async@^2.6, async@^2.6.1: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" async@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + 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 sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" @@ -4548,24 +2953,25 @@ await-semaphore@^0.1.3: aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + 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.20.0: - version "0.20.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.20.0.tgz#057ba30f04884694993a8cd07fa394cff11c50bd" - integrity sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA== +axios@0.27.2: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== dependencies: - follow-redirects "^1.10.0" + follow-redirects "^1.14.9" + form-data "^4.0.0" babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -4596,7 +3002,7 @@ babel-core@^6.26.0: slash "^1.0.0" source-map "^0.5.7" -babel-generator@6.26.1, babel-generator@^6.26.0: +babel-generator@^6.26.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== @@ -4613,7 +3019,7 @@ babel-generator@6.26.1, babel-generator@^6.26.0: babel-helper-call-delegate@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= + integrity sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ== dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" @@ -4623,7 +3029,7 @@ babel-helper-call-delegate@^6.24.1: babel-helper-define-map@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= + integrity sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA== dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.26.0" @@ -4633,7 +3039,7 @@ babel-helper-define-map@^6.24.1: babel-helper-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= + integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== dependencies: babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" @@ -4644,7 +3050,7 @@ babel-helper-function-name@^6.24.1: babel-helper-get-function-arity@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= + integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -4652,7 +3058,7 @@ babel-helper-get-function-arity@^6.24.1: babel-helper-hoist-variables@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= + integrity sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw== dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -4660,7 +3066,7 @@ babel-helper-hoist-variables@^6.24.1: babel-helper-optimise-call-expression@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= + integrity sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA== dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -4668,7 +3074,7 @@ babel-helper-optimise-call-expression@^6.24.1: babel-helper-regex@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= + integrity sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg== dependencies: babel-runtime "^6.26.0" babel-types "^6.26.0" @@ -4677,7 +3083,7 @@ babel-helper-regex@^6.24.1: babel-helper-replace-supers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= + integrity sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw== dependencies: babel-helper-optimise-call-expression "^6.24.1" babel-messages "^6.23.0" @@ -4689,7 +3095,7 @@ babel-helper-replace-supers@^6.24.1: babel-helpers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ== dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" @@ -4697,76 +3103,64 @@ babel-helpers@^6.24.1: babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== dependencies: babel-runtime "^6.22.0" babel-plugin-check-es2015-constants@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= + integrity sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== dependencies: babel-runtime "^6.22.0" -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-polyfill-corejs2@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz#6ed8e30981b062f8fe6aca8873a37ebcc8cc1c0f" - integrity sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA== +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.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.4" + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.3.0.tgz#fa7ca3d1ee9ddc6193600ffb632c9785d54918af" - integrity sha512-JLwi9vloVdXLjzACL80j24bG6/T1gYxwowG44dg6HN/7aTPdyPbJJidf6ajoA3RPHHtW0j9KMrSOLpIZpAnPpg== +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.2.4" - core-js-compat "^3.18.0" + "@babel/helper-define-polyfill-provider" "^0.3.3" + core-js-compat "^3.25.1" -babel-plugin-polyfill-regenerator@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz#2e9808f5027c4336c994992b48a4262580cb8d6d" - integrity sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g== +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.2.4" + "@babel/helper-define-polyfill-provider" "^0.3.3" babel-plugin-syntax-async-functions@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== + integrity sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw== babel-plugin-transform-es2015-arrow-functions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= + integrity sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg== dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= + integrity sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A== dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoping@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= + integrity sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw== dependencies: babel-runtime "^6.26.0" babel-template "^6.26.0" @@ -4777,7 +3171,7 @@ babel-plugin-transform-es2015-block-scoping@^6.24.1: babel-plugin-transform-es2015-classes@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= + integrity sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag== dependencies: babel-helper-define-map "^6.24.1" babel-helper-function-name "^6.24.1" @@ -4792,7 +3186,7 @@ babel-plugin-transform-es2015-classes@^6.24.1: babel-plugin-transform-es2015-computed-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= + integrity sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw== dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" @@ -4800,14 +3194,14 @@ babel-plugin-transform-es2015-computed-properties@^6.24.1: babel-plugin-transform-es2015-destructuring@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= + integrity sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA== dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-duplicate-keys@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= + integrity sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug== dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -4815,14 +3209,14 @@ babel-plugin-transform-es2015-duplicate-keys@^6.24.1: babel-plugin-transform-es2015-for-of@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= + integrity sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw== dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= + integrity sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg== dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" @@ -4831,14 +3225,14 @@ babel-plugin-transform-es2015-function-name@^6.24.1: babel-plugin-transform-es2015-literals@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= + integrity sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ== dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-modules-amd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= + integrity sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA== dependencies: babel-plugin-transform-es2015-modules-commonjs "^6.24.1" babel-runtime "^6.22.0" @@ -4857,7 +3251,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.24.1: babel-plugin-transform-es2015-modules-systemjs@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= + integrity sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg== dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" @@ -4866,7 +3260,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.24.1: babel-plugin-transform-es2015-modules-umd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= + integrity sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw== dependencies: babel-plugin-transform-es2015-modules-amd "^6.24.1" babel-runtime "^6.22.0" @@ -4875,7 +3269,7 @@ babel-plugin-transform-es2015-modules-umd@^6.24.1: babel-plugin-transform-es2015-object-super@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= + integrity sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA== dependencies: babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" @@ -4883,7 +3277,7 @@ babel-plugin-transform-es2015-object-super@^6.24.1: babel-plugin-transform-es2015-parameters@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= + integrity sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ== dependencies: babel-helper-call-delegate "^6.24.1" babel-helper-get-function-arity "^6.24.1" @@ -4895,7 +3289,7 @@ babel-plugin-transform-es2015-parameters@^6.24.1: babel-plugin-transform-es2015-shorthand-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= + integrity sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw== dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -4903,14 +3297,14 @@ babel-plugin-transform-es2015-shorthand-properties@^6.24.1: babel-plugin-transform-es2015-spread@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= + integrity sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg== dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-sticky-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= + integrity sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ== dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" @@ -4919,21 +3313,21 @@ babel-plugin-transform-es2015-sticky-regex@^6.24.1: babel-plugin-transform-es2015-template-literals@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= + integrity sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg== dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-typeof-symbol@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= + integrity sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw== dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-unicode-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= + integrity sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ== dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" @@ -4942,14 +3336,14 @@ babel-plugin-transform-es2015-unicode-regex@^6.24.1: babel-plugin-transform-regenerator@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= + integrity sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg== dependencies: regenerator-transform "^0.10.0" babel-plugin-transform-strict-mode@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + integrity sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -4957,7 +3351,7 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-polyfill@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= + integrity sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ== dependencies: babel-runtime "^6.26.0" core-js "^2.5.0" @@ -4966,7 +3360,7 @@ babel-polyfill@^6.26.0: babel-preset-es2015@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - integrity sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk= + integrity sha512-XfwUqG1Ry6R43m4Wfob+vHbIVBIqTg/TJY4Snku1iIzeH7mUnwHA8Vagmv+ZQbPwhS8HgsdQvy28Py3k5zpoFQ== dependencies: babel-plugin-check-es2015-constants "^6.22.0" babel-plugin-transform-es2015-arrow-functions "^6.22.0" @@ -4993,43 +3387,10 @@ babel-preset-es2015@^6.24.1: babel-plugin-transform-es2015-unicode-regex "^6.24.1" babel-plugin-transform-regenerator "^6.24.1" -babel-preset-fbjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - babel-register@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A== dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" @@ -5042,7 +3403,7 @@ babel-register@^6.26.0: babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" @@ -5050,7 +3411,7 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" @@ -5058,10 +3419,10 @@ babel-template@^6.24.1, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@6.26.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: +babel-traverse@^6.24.1, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" @@ -5076,27 +3437,22 @@ babel-traverse@6.26.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@6.18.0, babylon@^6.18.0: +babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== -backo2@^1.0.2, backo2@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - backoff@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8= + integrity sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA== dependencies: precond "0.2" @@ -5105,33 +3461,14 @@ balanced-match@^1.0.0: 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.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" -base-x@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" - integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== - dependencies: - safe-buffer "^5.0.1" - -base32-decode@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base32-decode/-/base32-decode-1.0.0.tgz#2a821d6a664890c872f20aa9aca95a4b4b80e2a7" - integrity sha512-KNWUX/R7wKenwE/G/qFMzGScOgVntOmbE27vvc6GrniDGYb6a5+qWcuoXl8WIOQL7q0TpK7nZDm1Y04Yi3Yn5g== - -base32-encode@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base32-encode/-/base32-encode-1.2.0.tgz#e150573a5e431af0a998e32bdfde7045725ca453" - integrity sha512-cHFU8XeRyx0GgmoWi5qHMCVRiqU6J3MHWxVgun7jggCBUpVzm1Ir7M9dYr2whjSNc3tFeXfQ/oZjQu/4u55h9A== - dependencies: - to-data-view "^1.1.0" - -base64-js@^1.0.2, base64-js@^1.3.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== @@ -5152,7 +3489,7 @@ base@^0.11.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" @@ -5161,38 +3498,32 @@ bech32@1.1.4, bech32@^1.1.3: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bech32@=1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" - integrity sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg== - -better-ajv-errors@^0.6.7: - version "0.6.7" - resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz#b5344af1ce10f434fe02fc4390a5a9c811e470d1" - integrity sha512-PYgt/sCzR4aGpyNy5+ViSQ77ognMnWq7745zM+/flYO4/Yisdtp9wDQW2IKCyVYPUxQt3E/b5GBSwfhd1LPdlg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/runtime" "^7.0.0" - chalk "^2.4.1" - core-js "^3.2.1" - json-to-ast "^2.0.3" - jsonpointer "^4.0.1" - leven "^3.1.0" - big-integer@1.6.36: version "1.6.36" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.36.tgz#78631076265d4ae3555c04f85e7d9d2f3a071a36" integrity sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg== -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== +big.js@^6.0.3: + version "6.2.1" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-6.2.1.tgz#7205ce763efb17c2e41f26f121c420c6a7c2744f" + integrity sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ== + +bigint-crypto-utils@^3.0.23: + version "3.1.6" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.6.tgz#3a52a660423416856342d0d9981935fa9856f177" + integrity sha512-k5ljSLHx94jQTW3+18KEfxLJR8/XFBHqhfhEGF48qT8p/jL6EdiG7oNOiiIRGMFh2wEP8kaCXZbVd+5dYkngUg== + dependencies: + bigint-mod-arith "^3.1.0" + +bigint-mod-arith@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bigint-mod-arith/-/bigint-mod-arith-3.1.1.tgz#127c504faf30d27ba010ac7b7d58708a68e3c20b" + integrity sha512-SzFqdncZKXq5uh3oLFZXmzaZEMDsA7ml9l53xKaVGO6/+y26xNwAaTQEg2R+D+d07YduLbKi0dni3YPsR51UDQ== bignumber.js@*, bignumber.js@^9.0.0, bignumber.js@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" - integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== + version "9.1.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" + integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== bignumber.js@^5.0.0: version "5.0.0" @@ -5214,64 +3545,13 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.3.0, bindings@^1.3.1, bindings@^1.5.0: +bindings@^1.3.1, 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" -bip32@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.6.tgz#6a81d9f98c4cd57d05150c60d8f9e75121635134" - integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA== - dependencies: - "@types/node" "10.12.18" - bs58check "^2.1.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - tiny-secp256k1 "^1.1.3" - typeforce "^1.11.5" - wif "^2.0.6" - -bip39@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" - integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== - dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= - dependencies: - safe-buffer "^5.0.1" - -bitcore-lib@^8.22.2, bitcore-lib@^8.25.10: - version "8.25.10" - resolved "https://registry.yarnpkg.com/bitcore-lib/-/bitcore-lib-8.25.10.tgz#4bbb30932dec65cb76e4d1d793f55d7e4a75f071" - integrity sha512-MyHpSg7aFRHe359RA/gdkaQAal3NswYZTLEuu0tGX1RGWXAYN9i/24fsjPqVKj+z0ua+gzAT7aQs0KiKXWCgKA== - dependencies: - bech32 "=1.1.3" - bn.js "=4.11.8" - bs58 "^4.0.1" - buffer-compare "=1.1.1" - elliptic "^6.5.3" - inherits "=2.0.1" - lodash "^4.17.20" - -bitcore-mnemonic@^8.22.2: - version "8.25.10" - resolved "https://registry.yarnpkg.com/bitcore-mnemonic/-/bitcore-mnemonic-8.25.10.tgz#43d7b73d9705a11fceef62e37089ad487e917c26" - integrity sha512-FeXxO37BLV5JRvxPmVFB91zRHalavV8H4TdQGt1/hz0AkoPymIV68OkuB+TptpjeYgatcgKPoPvPhglJkTzFQQ== - dependencies: - bitcore-lib "^8.25.10" - unorm "^1.4.1" - bl@^1.0.0: version "1.2.3" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" @@ -5280,15 +3560,6 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" -bl@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - bl@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/bl/-/bl-5.0.0.tgz#6928804a41e9da9034868e1c50ca88f21f57aea2" @@ -5299,21 +3570,21 @@ bl@^5.0.0: readable-stream "^3.4.0" blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== blessed@^0.1.81: version "0.1.81" resolved "https://registry.yarnpkg.com/blessed/-/blessed-0.1.81.tgz#f962d687ec2c369570ae71af843256e6d0ca1129" - integrity sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk= + integrity sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ== blob-to-it@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.3.tgz#699a05548f4d9a51851e476a5c2de4d11a801fe8" - integrity sha512-3bCrqSWG2qWwoIeF6DUJeuW/1isjx7DUhqZn9GpWlK8SVeqcjP+zw4yujdV0bVaqtggk6CUgtu87jfwHi5g7Zg== + 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.2" + browser-readablestream-to-it "^1.0.3" blockstore-core@^1.0.0, blockstore-core@^1.0.2: version "1.0.5" @@ -5350,9 +3621,9 @@ bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.2: bn.js@4.11.6: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== -bn.js@4.11.8, bn.js@=4.11.8: +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== @@ -5362,44 +3633,33 @@ 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@^ 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.1.3, bn.js@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.19.0, body-parser@^1.16.0, body-parser@^1.18.3: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== +body-parser@1.20.0, body-parser@^1.16.0, body-parser@^1.19.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== dependencies: - bytes "3.1.0" + bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" -boolbase@^1.0.0, 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 sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -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" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" @@ -5409,14 +3669,12 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= +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: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" + balanced-match "^1.0.0" braces@^2.3.1, braces@^2.3.2: version "2.3.2" @@ -5434,7 +3692,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@~3.0.2: +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== @@ -5444,24 +3702,29 @@ braces@^3.0.1, braces@~3.0.2: 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 sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-headers@^0.4.0, browser-headers@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" - integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== +browser-level@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.1" + module-error "^1.0.2" + run-parallel-limit "^1.1.0" -browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz#f6b8d18e7a35b0321359261a32aa2c70f46921c4" - integrity sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg== +browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" + integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== browser-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.0.6, browserify-aes@^1.2.0: +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== @@ -5515,32 +3778,24 @@ browserify-sign@^4.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.17.6: - version "4.18.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" - integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== +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.30001280" - electron-to-chromium "^1.3.896" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" + 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 sha1-vhYedsNU9veIrkBx9j806MTwpCo= + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" -bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.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== @@ -5549,18 +3804,6 @@ bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: 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-lite@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" - integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= - btoa@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" @@ -5579,52 +3822,35 @@ buffer-alloc@^1.2.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" -buffer-compare@=1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-compare/-/buffer-compare-1.1.1.tgz#5be7be853af89198d1f4ddc090d1d66a48aef596" - integrity sha1-W+e+hTr4kZjR9N3AkNHWakiu9ZY= - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== buffer-from@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" integrity sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ== -buffer-from@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-from@^1.0.0: +buffer-from@1.1.2, 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-pipe@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/buffer-pipe/-/buffer-pipe-0.0.3.tgz#242197681d4591e7feda213336af6c07a5ce2409" - integrity sha512-GlxfuD/NrKvCNs0Ut+7b1IHjylfdegMBxQIlZHj7bObKVQBxB5S84gtm2yu1mQ8/sSggceWBDPY0cPXgvX2MuA== - dependencies: - safe-buffer "^5.1.2" - 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 sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + 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 sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer-xor@^2.0.1: version "2.0.2" @@ -5641,16 +3867,7 @@ buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0, buffer@^5.7.0: +buffer@^5.0.5, buffer@^5.2.1, 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== @@ -5658,31 +3875,21 @@ buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0, buffe base64-js "^1.3.1" ieee754 "^1.1.13" -bufferutil@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.4.tgz#ab81373d313a6ead0d734e98c448c722734ae7bb" - integrity sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw== +bufferutil@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" + integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== dependencies: - node-gyp-build "^4.2.0" - -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 sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + node-gyp-build "^4.3.0" -busboy@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" - integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== +bufferutil@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== dependencies: - dicer "0.3.0" - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + node-gyp-build "^4.3.0" -bytes@^3.1.0: +bytes@3.1.2, bytes@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -5702,10 +3909,20 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-lookup@^6.0.4: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" + integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== + cacheable-request@^2.1.1: version "2.1.4" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= + integrity sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ== dependencies: clone-response "1.0.2" get-stream "3.0.0" @@ -5728,6 +3945,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +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" @@ -5739,47 +3969,31 @@ call-bind@^1.0.0, call-bind@^1.0.2: caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== 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.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" - integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== - dependencies: - pascal-case "^3.1.1" - tslib "^1.10.0" - -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" - camel-case@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== dependencies: no-case "^2.2.0" upper-case "^1.1.1" @@ -5787,39 +4001,39 @@ camel-case@^3.0.0: camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= - -camelcase@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g== camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== -camelcase@^5.0.0, camelcase@^5.3.1: +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== -caniuse-lite@^1.0.30001280: - version "1.0.30001280" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001280.tgz#066a506046ba4be34cde5f74a08db7a396718fb7" - integrity sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA== +camelcase@^6.0.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.30001409" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz#6135da9dcab34cd9761d9cdb12a68e6740c5e96e" + integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== 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 sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -catering@^2.0.0, catering@^2.1.0: +catering@^2.0.0, catering@^2.1.0, catering@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== @@ -5834,7 +4048,7 @@ caw@^2.0.1: tunnel-agent "^0.6.0" url-to-options "^1.0.1" -cbor@^5.0.2, cbor@^5.1.0: +cbor@^5.0.2, cbor@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== @@ -5849,15 +4063,15 @@ cbor@^8.0.0: dependencies: nofilter "^3.1.0" -cborg@^1.3.1, cborg@^1.3.3, cborg@^1.3.4, cborg@^1.5.4, cborg@^1.6.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.8.1.tgz#c54334f70f411783b9f67feb5ec81ecb600be797" - integrity sha512-x49Vf1DUrS9rc+ar8QwOqfvA48H9YRn6UzcvlXpd1jKIzq2ebSR1R/yegu7MsskJew4+yc+3znWmud0PMJkR1Q== +cborg@^1.3.1, cborg@^1.3.3, cborg@^1.3.4, cborg@^1.5.4, cborg@^1.6.0, cborg@^1.9.0: + version "1.9.5" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.9.5.tgz#1e3b8a8407b3665566001f8841c9d72d7a80b2d5" + integrity sha512-fLBv8wmqtlXqy1Yu+pHzevAIkW6k2K0ZtMujNzWphLsA34vzzg9BHn+5GmZqOJkSA9V7EMKsWrf6K976c1QMjQ== center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + integrity sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ== dependencies: align-text "^0.1.3" lazy-cache "^1.0.3" @@ -5868,21 +4082,22 @@ chai-bn@^0.2.1: integrity sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg== chai@^4.2.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" - integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== + version "4.3.6" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" + integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" deep-eql "^3.0.1" get-func-name "^2.0.0" + loupe "^2.3.1" pathval "^1.1.1" type-detect "^4.0.5" -chalk@1.1.3, chalk@^1.1, chalk@^1.1.3: +chalk@^1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -5890,7 +4105,7 @@ chalk@1.1.3, chalk@^1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, 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== @@ -5899,7 +4114,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.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== @@ -5934,7 +4149,7 @@ change-case@3.0.2: character-parser@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" - integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= + integrity sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw== dependencies: is-regex "^1.0.3" @@ -5946,73 +4161,49 @@ chardet@^0.7.0: "charenc@>= 0.0.1": version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== charm@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz#06c21eed1a1b06aeb67553cdc53e23274bac2296" - integrity sha1-BsIe7RobBq62dVPNxT4jJ0usIpY= + integrity sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ== check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== checkpoint-store@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY= + integrity sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg== dependencies: functional-red-black-tree "^1.0.1" -cheerio-select@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823" - integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== - dependencies: - css-select "^4.1.3" - css-what "^5.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - domutils "^2.7.0" - -cheerio@0.20.0: - version "0.20.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.20.0.tgz#5c710f2bab95653272842ba01c6ea61b3545ec35" - integrity sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU= - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "~3.8.1" - lodash "^4.1.0" - optionalDependencies: - jsdom "^7.0.2" - -cheerio@1.0.0-rc.2: - version "1.0.0-rc.2" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" - integrity sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs= +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash "^4.15.0" - parse5 "^3.0.1" + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" cheerio@^1.0.0-rc.2: - version "1.0.0-rc.10" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" - integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== - dependencies: - cheerio-select "^1.5.0" - dom-serializer "^1.3.2" - domhandler "^4.2.0" - htmlparser2 "^6.1.0" - parse5 "^6.0.1" - parse5-htmlparser2-tree-adapter "^6.0.1" - tslib "^2.2.0" + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" chokidar@3.3.0: version "3.3.0" @@ -6029,22 +4220,22 @@ chokidar@3.3.0: optionalDependencies: fsevents "~2.1.1" -chokidar@3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== +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.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.1.2" + fsevents "~2.3.2" -chokidar@^2, chokidar@^2.1.8: +chokidar@^2: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -6063,21 +4254,6 @@ chokidar@^2, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.0, chokidar@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - 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" @@ -6099,16 +4275,6 @@ cids@^0.7.1: multicodec "^1.0.0" multihashes "~0.4.15" -cids@^1.0.0, cids@^1.1.4, cids@^1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/cids/-/cids-1.1.9.tgz#402c26db5c07059377bcd6fb82f2a24e7f2f4a4f" - integrity sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg== - dependencies: - multibase "^4.0.1" - multicodec "^3.0.1" - multihashes "^4.0.1" - uint8arrays "^3.0.0" - 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" @@ -6117,11 +4283,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-json@^0.5.9: - version "0.5.9" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d" - integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== - class-is@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" @@ -6137,10 +4298,21 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +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-css@^4.1.11: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + version "4.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== dependencies: source-map "~0.6.0" @@ -6152,22 +4324,17 @@ clean-stack@^2.0.0: cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== dependencies: restore-cursor "^2.0.0" -cli-cursor@^3.0.0, cli-cursor@^3.1.0: +cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.0.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== - cli-table-redemption@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/cli-table-redemption/-/cli-table-redemption-1.0.1.tgz#0359d8c34df74980029d76dff071a05a127c4fdd" @@ -6186,9 +4353,9 @@ cli-table3@^0.5.0: colors "^1.1.2" cli-table3@^0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" optionalDependencies: @@ -6218,7 +4385,7 @@ cli-width@^2.0.0: cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + integrity sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA== dependencies: center-align "^0.1.1" right-align "^0.1.1" @@ -6227,7 +4394,7 @@ cliui@^2.1.0: cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -6242,61 +4409,48 @@ cliui@^5.0.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== +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 "^6.2.0" + wrap-ansi "^7.0.0" clone-buffer@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= + integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== -clone-response@1.0.2, clone-response@^1.0.2: +clone-response@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== dependencies: mimic-response "^1.0.0" -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= - -clone@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" - integrity sha1-0hfR6WERjjrJpLi7oyhVU79kfNs= - -clone@^1.0.0, clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" clone@^2.0.0, clone@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -code-error-fragment@0.0.230: - version "0.0.230" - resolved "https://registry.yarnpkg.com/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7" - integrity sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw== + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -6315,20 +4469,10 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-logger@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/color-logger/-/color-logger-0.0.3.tgz#d9b22dd1d973e166b18bf313f9f481bba4df2018" - integrity sha1-2bIt0dlz4Waxi/MT+fSBu6TfIBg= - -color-logger@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/color-logger/-/color-logger-0.0.6.tgz#e56245ef29822657110c7cb75a9cd786cb69ed1b" - integrity sha1-5WJF7ymCJlcRDHy3WpzXhstp7Rs= - color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -6336,11 +4480,11 @@ color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -colors@^1.1.2, colors@^1.4.0: +colors@1.4.0, colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -6372,7 +4516,7 @@ commander@3.0.2: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^2.15.0, commander@^2.20.3, commander@^2.8.1: +commander@^2.20.3, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -6382,44 +4526,25 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@^9.3.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" + integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= +compare-versions@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.1.tgz#14c6008436d994c3787aba38d4087fabe858555e" + integrity sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ== component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -compound-subject@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/compound-subject/-/compound-subject-0.0.1.tgz#271554698a15ae608b1dfcafd30b7ba1ea892c4b" - integrity sha1-JxVUaYoVrmCLHfyv0wt7oeqJLEs= - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.1.tgz#f3b80acf9e1f48e3875c0688b41b6c31602eea1c" - integrity sha1-87gKz54fSOOHXAaItBtsMWAu6hw= - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" @@ -6431,10 +4556,10 @@ concat-stream@^1.6.0, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -conf@^10.0.2: - version "10.0.3" - resolved "https://registry.yarnpkg.com/conf/-/conf-10.0.3.tgz#af266186cc754daefd2749398861ec538c50da17" - integrity sha512-4gtQ/Q36qVxBzMe6B7gWOAfni1VdhuHkIzxydHkclnwGmgN+eW4bb6jj73vigCfr7d3WlmqawvhZrpCUCTPYxQ== +conf@^10.1.2: + version "10.2.0" + resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6" + integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg== dependencies: ajv "^8.6.3" ajv-formats "^2.1.1" @@ -6455,20 +4580,15 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== constant-case@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" - integrity sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY= + integrity sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ== dependencies: snake-case "^2.1.0" upper-case "^1.1.1" @@ -6483,17 +4603,12 @@ constantinople@^3.0.1, constantinople@^3.1.2: babel-types "^6.26.0" babylon "^6.18.0" -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3, content-disposition@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== +content-disposition@0.5.4, content-disposition@^0.5.2: + 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.1.2" + safe-buffer "5.2.1" content-hash@^2.5.2: version "2.5.2" @@ -6517,7 +4632,7 @@ continuation-local-storage@^3.1.4: async-listener "^0.6.0" emitter-listener "^1.1.1" -convert-source-map@1.X, convert-source-map@^1.1.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0: +convert-source-map@^1.1.0, convert-source-map@^1.5.1: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== @@ -6527,17 +4642,17 @@ convert-source-map@1.X, convert-source-map@^1.1.0, convert-source-map@^1.5.1, co cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +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.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== cookiejar@^2.1.1: version "2.1.3" @@ -6547,35 +4662,29 @@ cookiejar@^2.1.1: copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -core-js-compat@^3.18.0: - version "3.19.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" - integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== +core-js-compat@^3.25.1: + version "3.25.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138" + integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ== dependencies: - browserslist "^4.17.6" - semver "7.0.0" + browserslist "^4.21.4" -core-js-pure@^3.0.1, core-js-pure@^3.10.2: - version "3.18.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.2.tgz#d8cc11d4885ea919f3de776d45e720e4c769d406" - integrity sha512-4hMMLUlZhKJKOWbbGD1/VDUxGPEhEoN/T01k7bx271WiBKCvCfkgPzy0IeRS4PB50p6/N1q/SZL4B/TRsTE5bA== +core-js-pure@^3.0.1: + version "3.25.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.2.tgz#44a4fd873bdd4fecf6ca11512bcefedbe87e744a" + integrity sha512-ItD7YpW1cUB4jaqFLZXe1AXkyqIxz6GqPnsDV4uF4hVcWh/WAGIqSqw5p0/WdsILM0Xht9s3Koyw05R3K6RtiA== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.2.1: - version "3.18.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.2.tgz#63a551e8a29f305cd4123754846e65896619ba5b" - integrity sha512-zNhPOUoSgoizoSQFdX1MeZO16ORRb9FFQLts8gSYbZU5FcgXhp24iMWMxnOQo5uIaIG7/6FA/IqJPwev1o9ZXQ== - 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 sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" @@ -6601,12 +4710,9 @@ cosmiconfig@^5.0.7: parse-json "^4.0.0" crc-32@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" - integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== - dependencies: - exit-on-epipe "~1.0.1" - printj "~1.1.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" @@ -6640,49 +4746,33 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: sha.js "^2.4.8" cron@^1.3: - version "1.8.2" - resolved "https://registry.yarnpkg.com/cron/-/cron-1.8.2.tgz#4ac5e3c55ba8c163d84f3407bde94632da8370ce" - integrity sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg== + version "1.8.3" + resolved "https://registry.yarnpkg.com/cron/-/cron-1.8.3.tgz#2a61d7b15848716885834ec56ac072f4b9744ebd" + integrity sha512-JYR/QZFklJCIPndBLfd/2nU1nSlCMrUdtQ2mGLXSVM/qqqEK7DOrFR0gsEiyeqs0PdWrs0ve1ggH4V7XksDwXg== dependencies: - moment-timezone "^0.5.x" + luxon "^1.23.x" cross-conf-env@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cross-conf-env/-/cross-conf-env-1.2.1.tgz#03f2dd9eee326f7a6a5890cbcda2de5071ce047a" - integrity sha512-hFskzboUXdGGCmezF324K/34tFIe1dPV/AUgwuFQFtQva5lYZo7QtV2Ot2zo6biPBfccdH0AyMT6FOj1LpsvTQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/cross-conf-env/-/cross-conf-env-1.3.0.tgz#e41fe1ad79c8cf6b581f95762256e537ad95045b" + integrity sha512-ZVgwin28C6FTzsNxGIzg1Tt4gDNXgm/4ZZRUV3vrcUsLJHZG2aGINMWuEPZhdzsvtq/Vr5qNNobCryeLPSBwoA== dependencies: cross-spawn "^7.0.3" -cross-fetch@3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c" - integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ== - dependencies: - node-fetch "2.6.1" - -cross-fetch@3.1.4, cross-fetch@^3.0.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" - integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== - dependencies: - node-fetch "2.6.1" - cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.5.tgz#afaf5729f3b6c78d89c9296115c9f142541a5705" - integrity sha512-xqYAhQb4NhCJSRym03dwxpP1bYXpK3y7UN83Bo2WFi3x1Zmzn0SL/6xGoPr+gpt4WmNrgCCX3HPysvOwFOW36w== + version "2.2.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.6.tgz#2ef0bb39a24ac034787965c457368a28730e220a" + integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== dependencies: - node-fetch "2.6.1" - whatwg-fetch "2.0.4" + node-fetch "^2.6.7" + whatwg-fetch "^2.0.4" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= +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: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" + node-fetch "2.6.7" cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" @@ -6707,7 +4797,7 @@ cross-spawn@^7.0.3: "crypt@>= 0.0.1": version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== crypto-addr-codec@^0.1.7: version "0.1.7" @@ -6722,7 +4812,7 @@ crypto-addr-codec@^0.1.7: safe-buffer "^5.2.0" sha3 "^2.1.1" -crypto-browserify@3.12.0, crypto-browserify@^3.11.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== @@ -6739,63 +4829,26 @@ crypto-browserify@3.12.0, crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== dependencies: boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" - -css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -css-what@^5.0.0, css-what@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" - integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== - -css@2.X: - version "2.2.4" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== cssfilter@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= - -cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0": - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -"cssstyle@>= 0.2.29 < 0.3.0": - version "0.2.37" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" - integrity sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ= - dependencies: - cssom "0.3.x" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== d@1, d@^1.0.1: version "1.0.1" @@ -6816,19 +4869,19 @@ dag-jose@^1.0.0: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" -dataloader@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.0.0.tgz#41eaf123db115987e21ca93c005cd7753c55fe6f" - integrity sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ== +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== datastore-core@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-7.0.1.tgz#f50f30bb55474a569118d41bba6052896b096aec" - integrity sha512-TrV0PRtwwDo2OfzYpnVQmVgDc4HwtpYkzb6da5GZxKElZN7eDT5mBtrkVbXbyTn+Y2+WPiMBm6/KbJD7p0TBfA== + version "7.0.3" + resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-7.0.3.tgz#af04689432110435b863f069adc8b109396967eb" + integrity sha512-DmPsUux63daOfCszxLkcp6LjdJ0k/BQNhIMtoAi5mbraYQnEQkFtKORmTu6XmDX6ujbtaBkeuJAiCBNI7MZklw== dependencies: debug "^4.1.1" err-code "^3.0.1" @@ -6882,7 +4935,7 @@ datastore-pubsub@^2.0.0: death@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" - integrity sha1-AaqcQB7dknUFFEcLgmY5DGbGcxg= + integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== debounce-fn@^4.0.0: version "4.0.0" @@ -6891,16 +4944,7 @@ debounce-fn@^4.0.0: dependencies: mimic-fn "^3.0.0" -debug-fabulous@0.0.X: - version "0.0.4" - resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-0.0.4.tgz#fa071c5d87484685424807421ca4b16b0b1a0763" - integrity sha1-+gccXYdIRoVCSAdCHKSxawsaB2M= - dependencies: - debug "2.X" - lazy-debug-legacy "0.0.X" - object-assign "4.1.0" - -debug@2.6.9, debug@2.X, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -6921,19 +4965,19 @@ debug@3.2.6: dependencies: ms "^2.1.1" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== +debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.0, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +debug@4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: - ms "^2.1.1" + ms "2.1.2" debug@^3, debug@^3.0, debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: version "3.2.7" @@ -6942,30 +4986,35 @@ debug@^3, debug@^3.0, debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.2.0, debug@^4.3.0, debug@^4.3.3, debug@~4.3.1, debug@~4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 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 sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== decompress-response@^3.2.0, decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + 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" + decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -6998,7 +5047,7 @@ decompress-targz@^4.0.0: decompress-unzip@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= + integrity sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw== dependencies: file-type "^3.8.0" get-stream "^2.2.0" @@ -7019,13 +5068,6 @@ decompress@^4.0.0, decompress@^4.2.0: pify "^2.3.0" strip-dirs "^2.0.0" -deep-eql@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" - integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= - dependencies: - type-detect "0.1.1" - deep-eql@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" @@ -7065,22 +5107,20 @@ default-gateway@^6.0.2: default-options@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-options/-/default-options-1.0.0.tgz#6624665a9ac0d09882af74e6e44cb1dac58cab2a" - integrity sha1-ZiRmWprA0JiCr3Tm5Eyx2sWMqyo= + integrity sha512-P/F/EM9s2cnEloZ/b6WEfVCYJztXLU6MoRdhsCp94Vl1NI4hFLRepAgNk2r09nLgxMY6+QW3CN3ftFTENdE7XA== dependencies: lodash "^4.0.0" -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - defer-to-connect@^1.0.1: version "1.1.3" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + deferred-leveldown@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-7.0.0.tgz#39802715fda6ec06d0159a8b28bd1c7e2b1cf0bf" @@ -7104,14 +5144,6 @@ deferred-leveldown@~4.0.0: abstract-leveldown "~5.0.0" inherits "^2.0.3" -deferred-leveldown@~5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.0.1.tgz#1642eb18b535dfb2b6ac4d39fb10a9cbcfd13b09" - integrity sha512-BXohsvTedWOLkj2n/TY+yqVlrCWa2Zs8LSxh3uCAgFOru7/pjxKyZAexGa1j83BaKloER4PqUyQ9rGPJLt9bqA== - dependencies: - abstract-leveldown "~6.0.0" - inherits "^2.0.3" - deferred-leveldown@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" @@ -7120,24 +5152,25 @@ deferred-leveldown@~5.3.0: abstract-leveldown "~6.2.1" inherits "^2.0.3" -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +define-properties@^1.1.2, 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: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" @@ -7157,32 +5190,22 @@ delay@^5.0.0: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -delimit-stream@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" - integrity sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs= + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== denque@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf" integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -deprecated-decorator@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" - integrity sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= +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" @@ -7192,64 +5215,45 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +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-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== dependencies: repeating "^2.0.0" detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= - -detect-installed@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-installed/-/detect-installed-2.0.4.tgz#a0850465e7c3ebcff979d6b6535ad344b80dd7c5" - integrity sha1-oIUEZefD68/5eda2U1rTRLgN18U= - dependencies: - get-installed-path "^2.0.3" + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-newline@2.X: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== detect-port@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" - integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + version "1.5.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.0.tgz#e40d67a0e93b464cbb7dda1e27a6edddd258d2a6" + integrity sha512-XA/tO5uCPYgRO8jWazmM/yaJQtqpya6x3Tm0iQVuKSRq6/dNB0TcoegMSGQWSl8AjFZNJPBBvnz7u12edNAwEQ== dependencies: address "^1.0.1" - debug "^2.6.0" - -dicer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" - integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== - dependencies: - streamsearch "0.1.2" + debug "4" diff@3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== -diff@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +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" @@ -7272,7 +5276,7 @@ dlv@^1.1.3: resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== -dns-over-http-resolver@^1.0.0, dns-over-http-resolver@^1.2.3: +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== @@ -7282,9 +5286,9 @@ dns-over-http-resolver@^1.0.0, dns-over-http-resolver@^1.2.3: receptacle "^1.3.2" dns-packet@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" - integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== + 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" @@ -7305,103 +5309,47 @@ doctrine@^3.0.0: doctypes@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" - integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= - -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" + integrity sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ== -dom-serializer@^1.0.1, dom-serializer@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -dom-serializer@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.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== -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.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.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - -domhandler@2.3: +domelementtype@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - integrity sha1-LeWaCCLVAn+r/28DLCsloqir5zg= - dependencies: - domelementtype "1" - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domhandler@^4.0.0, domhandler@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" - integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== - dependencies: - domelementtype "^2.2.0" - -domutils@1.5, domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== +domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.3.0" -domutils@^2.5.2, domutils@^2.6.0, domutils@^2.7.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== +domutils@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" + integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.1" dot-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" - integrity sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4= + integrity sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug== dependencies: no-case "^2.2.0" @@ -7420,7 +5368,7 @@ dotenv@^8.2.0: double-ended-queue@2.1.0-0: version "2.1.0-0" resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" - integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw= + integrity sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ== download@^7.1.0: version "7.1.0" @@ -7440,29 +5388,10 @@ download@^7.1.0: p-event "^2.1.0" pify "^3.0.0" -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexify@^3.2.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== eastasianwidth@^0.2.0: version "0.2.0" @@ -7472,22 +5401,15 @@ eastasianwidth@^0.2.0: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" -ed2curve@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.3.0.tgz#322b575152a45305429d546b071823a93129a05d" - integrity sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ== - dependencies: - tweetnacl "1.x.x" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-fetch@^1.7.2: version "1.7.4" @@ -7496,22 +5418,22 @@ electron-fetch@^1.7.2: dependencies: encoding "^0.1.13" -electron-to-chromium@^1.3.896: - version "1.3.896" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.896.tgz#4a94efe4870b1687eafd5c378198a49da06e8a1b" - integrity sha512-NcGkBVXePiuUrPLV8IxP43n1EOtdg+dudVjrfVEUd/bOqpQUFZ2diL5PPYzbgEhZFEltdXV3AcyKwGnEQ5lhMA== +electron-to-chromium@^1.4.251: + version "1.4.256" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.256.tgz#c735032f412505e8e0482f147a8ff10cfca45bf4" + integrity sha512-x+JnqyluoJv8I0U9gVe+Sk2st8vF0CzMt78SXxuoWCooLLY2k5VerIBdpvG7ql6GKI4dzNnPjmqgDJ76EdaAKw== elliptic@6.3.3: version "6.3.3" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.3.tgz#5482d9646d54bcb89fd7d994fc9e2e9568876e3f" - integrity sha1-VILZZG1UvLif19mU/J4ulWiHbj8= + integrity sha512-cIky9SO2H8W2eU1NOLySnhOYJnuEWCq9ZJeHvHd/lXzEL9vyraIMfilZSn57X3aVX+wkfYmqkch2LvmTzkjFpA== dependencies: bn.js "^4.4.0" brorand "^1.0.1" hash.js "^1.0.0" inherits "^2.0.1" -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: +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== @@ -7531,15 +5453,20 @@ emitter-listener@^1.1.1: dependencies: shimmer "^1.2.0" +emittery@0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.0.tgz#bb373c660a9d421bb44706ec4967ed50c02a8026" + integrity sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ== + emittery@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.4.1.tgz#abe9d3297389ba424ac87e53d1c701962ce7433d" integrity sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ== -emoji-regex@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.0.0.tgz#96559e19f82231b436403e059571241d627c42b8" - integrity sha512-KmJa8l6uHi1HrBI34udwlzZY1jOEuID/ft4d8BSSEdRyap7PwBEt910453PJa5MuGvxkLqlt4Uvhu7tttFHViw== +emoji-regex@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.1.0.tgz#d50e383743c0f7a5945c47087295afc112e3cf66" + integrity sha512-xAEnNCT3w2Tg6MA7ly6QqYJvEoY1tm9iIjJ3yMKK9JPlWuRHAMoe5iETwQnx3M9TVbFMfsrBgWKR+IsmswwNjg== emoji-regex@^7.0.1: version "7.0.3" @@ -7556,15 +5483,10 @@ emoji-regex@^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== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== encoding-down@^6.3.0: version "6.3.0" @@ -7614,41 +5536,25 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: end-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/end-stream/-/end-stream-0.1.0.tgz#32003f3f438a2b0143168137f8fa6e9866c81ed5" - integrity sha1-MgA/P0OKKwFDFoE3+PpumGbIHtU= + integrity sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA== dependencies: write-stream "~0.4.3" -engine.io-client@~6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.1.1.tgz#800d4b9db5487d169686729e5bd887afa78d36b0" - integrity sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g== +engine.io-client@~6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" + integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== dependencies: - "@socket.io/component-emitter" "~3.0.0" + "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" - engine.io-parser "~5.0.0" - has-cors "1.1.0" - parseqs "0.0.6" - parseuri "0.0.6" + engine.io-parser "~5.0.3" ws "~8.2.3" xmlhttprequest-ssl "~2.0.0" - yeast "0.1.2" - -engine.io-parser@~5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.3.tgz#ca1f0d7b11e290b4bfda251803baea765ed89c09" - integrity sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg== - dependencies: - "@socket.io/base64-arraybuffer" "~1.0.2" -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" +engine.io-parser@~5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" + integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== enquirer@^2.3.0: version "2.3.6" @@ -7657,27 +5563,17 @@ enquirer@^2.3.0: dependencies: ansi-colors "^4.1.1" -entities@1.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" - integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY= - -entities@^1.1.1, entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -err-code@^2.0.0, err-code@^2.0.3: +err-code@^2.0.3: 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== @@ -7687,7 +5583,7 @@ err-code@^3.0.0, err-code@^3.0.1: resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== -errno@^0.1.3, errno@~0.1.1: +errno@~0.1.1: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -7701,50 +5597,46 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0-next.1, es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== +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.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.2.tgz#8495a07bc56d342a3b8ea3ab01bd986700c2ccb3" + integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" - get-intrinsic "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.2" get-symbol-description "^1.0.0" has "^1.0.3" - has-symbols "^1.0.2" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" - is-negative-zero "^2.0.1" + is-negative-zero "^2.0.2" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" + is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" + is-weakref "^1.0.2" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + 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-get-iterator@^1.0.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== +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: - call-bind "^1.0.2" - get-intrinsic "^1.1.0" - has-symbols "^1.0.1" - is-arguments "^1.1.0" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.5" - isarray "^2.0.5" + has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" @@ -7755,66 +5647,35 @@ 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.46, es5-ext@^0.10.50, es5-ext@~0.10.14: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== +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.0.0" - -es6-denodeify@^0.1.1: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-denodeify/-/es6-denodeify-0.1.5.tgz#31d4d5fe9c5503e125460439310e16a2a3f39c1f" - integrity sha1-MdTV/pxVA+ElRgQ5MQ4WoqPznB8= + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" -es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: +es6-iterator@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-promisify@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-7.0.0.tgz#9a710008dd6a4ab75a89e280bad787bfb749927b" - integrity sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q== - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= - dependencies: - d "1" - es5-ext "~0.10.14" +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.1, es6-symbol@~3.1.3: +es6-promisify@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-7.0.0.tgz#9a710008dd6a4ab75a89e280bad787bfb749927b" + integrity sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q== + +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== @@ -7822,35 +5683,25 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -es6-weak-map@^2.0.1: - 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" - 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, escape-html@~1.0.3: +escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-regexp@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/escape-regexp/-/escape-regexp-0.0.1.tgz#f44bda12d45bbdf9cb7f862ee7e4827b3dd32254" - integrity sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ= + integrity sha512-jVgdsYRa7RKxTT6MKNC3gdT+BF0Gfhpel19+HMRZJC2L0PufB0XOBuXBoXj29NKHwuktnAXd1Z1lyiH/8vOTpw== escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: version "4.0.0" @@ -7860,7 +5711,7 @@ escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: escodegen@1.8.x: version "1.8.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - integrity sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg= + integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== dependencies: esprima "^2.7.1" estraverse "^1.9.1" @@ -7869,49 +5720,10 @@ escodegen@1.8.x: optionalDependencies: source-map "~0.2.0" -escodegen@^1.6.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esdoc@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/esdoc/-/esdoc-1.1.0.tgz#07d40ebf791764cd537929c29111e20a857624f3" - integrity sha512-vsUcp52XJkOWg9m1vDYplGZN2iDzvmjDL5M/Mp8qkoDG3p2s0yIQCIjKR5wfPBaM3eV14a6zhQNYiNTCVzPnxA== - dependencies: - babel-generator "6.26.1" - babel-traverse "6.26.0" - babylon "6.18.0" - cheerio "1.0.0-rc.2" - color-logger "0.0.6" - escape-html "1.0.3" - fs-extra "5.0.0" - ice-cap "0.0.4" - marked "0.3.19" - minimist "1.2.0" - taffydb "2.7.3" - eslint-config-defaults@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/eslint-config-defaults/-/eslint-config-defaults-9.0.0.tgz#a090adc13b2935e3f43b3cd048a92701654e5ad5" - integrity sha1-oJCtwTspNeP0OzzQSKknAWVOWtU= + integrity sha512-+7YOx3HLdwG50YWpFNI/CLriyqcScVyFB7AWmR0T+6LyWhZCQrlHGYiQbniv04zACAv0W9hjIrhd8yFIMov6PQ== eslint-config-standard@^11.0.0-beta.0: version "11.0.0" @@ -7926,33 +5738,31 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" - integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ== +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" - find-up "^2.1.0" - pkg-dir "^2.0.0" eslint-plugin-import@^2.20.2: - version "2.25.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz#a554b5f66e08fb4f6dc99221866e57cfff824766" - integrity sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg== + 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.1" + eslint-module-utils "^2.7.3" has "^1.0.3" - is-core-module "^2.8.0" + is-core-module "^2.8.1" is-glob "^4.0.3" - minimatch "^3.0.4" + minimatch "^3.1.2" object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.11.0" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" eslint-plugin-node@^5.2.1: version "5.2.1" @@ -7970,30 +5780,38 @@ eslint-plugin-promise@^3.6.0: integrity sha512-JiFL9UFR15NKpHyGii1ZcvmtIqa3UTwiDAGb8atSffe43qJ3+1czVGN6UtkklpcJ2DVnqvTMzEKRaJdBkAL2aQ== eslint-plugin-react@^7.20.3: - version "7.28.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz#8f3ff450677571a659ce76efc6d80b6a525adbdf" - integrity sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw== + version "7.31.8" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz#3a4f80c10be1bcbc8197be9e8b641b2a3ef219bf" + integrity sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw== dependencies: - array-includes "^3.1.4" - array.prototype.flatmap "^1.2.5" + 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.0.4" + minimatch "^3.1.2" object.entries "^1.1.5" object.fromentries "^2.0.5" - object.hasown "^1.1.0" + object.hasown "^1.1.1" object.values "^1.1.5" - prop-types "^15.7.2" + prop-types "^15.8.1" resolve "^2.0.0-next.3" semver "^6.3.0" - string.prototype.matchall "^4.0.6" + string.prototype.matchall "^4.0.7" eslint-plugin-standard@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.1.0.tgz#2a9e21259ba4c47c02d53b2d0c9135d4b1022d47" integrity sha512-fVcdyuKRr0EZ4fjWl3c+gp1BANFJD1+RaWa2UPYfMZ6jCtp5RG00kSaXnK/dE5sYzt4kaWJ9qdxqUfc0d9kX0w== +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@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -8002,14 +5820,6 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.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-utils@^1.3.1: version "1.4.3" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" @@ -8081,9 +5891,9 @@ espree@^5.0.1: esprima@2.7.x, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -8105,19 +5915,14 @@ esrecurse@^4.1.0, esrecurse@^4.3.0: estraverse@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q= + integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== -estraverse@^4.1.1, estraverse@^4.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: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -estraverse@^5.2.0, estraverse@^5.3.0: +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== @@ -8130,7 +5935,7 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eth-block-tracker@^4.4.2: version "4.4.3" @@ -8147,21 +5952,21 @@ eth-block-tracker@^4.4.2: eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.0, 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 sha1-IprEbsqG1S4MmR58sq74P/D2i88= + integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== dependencies: idna-uts46-hx "^2.3.1" js-sha3 "^0.5.7" -eth-gas-reporter@^0.2.20: - version "0.2.22" - resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.22.tgz#bbe91f5d7b22433d26f099eeb5b20118ced0e575" - integrity sha512-L1FlC792aTf3j/j+gGzSNlGrXKSxNPXQNk6TnV5NNZ2w3jnQCRyJjDl0zUo25Cq2t90IS5vGdbkwqFQK7Ce+kw== +eth-gas-reporter@^0.2.25: + version "0.2.25" + resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz#546dfa946c1acee93cb1a94c2a1162292d6ff566" + integrity sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ== dependencies: "@ethersproject/abi" "^5.0.0-beta.146" - "@solidity-parser/parser" "^0.12.0" + "@solidity-parser/parser" "^0.14.0" cli-table3 "^0.5.0" - colors "^1.1.2" - ethereumjs-util "6.2.0" + colors "1.4.0" + ethereum-cryptography "^1.0.3" ethers "^4.0.40" fs-readdir-recursive "^1.1.0" lodash "^4.17.14" @@ -8190,7 +5995,7 @@ eth-json-rpc-errors@^2.0.2: eth-lib@0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= + integrity sha512-VqEBQKH92jNsaE8lG9CTq8M/bc12gdAfb5MY8Ro1hVyXkh7rOtY3m5tRHK3Hus5HqIAAwU2ivcUjTLVwsvf/kw== dependencies: bn.js "^4.11.6" elliptic "^6.4.0" @@ -8220,7 +6025,7 @@ eth-lib@^0.1.26: 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 sha1-1nQdkAAQa1FRDHLbktY2VFam2l4= + integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== dependencies: json-rpc-random-id "^1.0.0" xtend "^4.0.1" @@ -8277,9 +6082,9 @@ ethereum-common@0.2.0: ethereum-common@^0.0.18: version "0.0.18" resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= + integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== -ethereum-cryptography@^0.1.2, ethereum-cryptography@^0.1.3: +ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.2, 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== @@ -8300,6 +6105,16 @@ ethereum-cryptography@^0.1.2, ethereum-cryptography@^0.1.3: 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" + ethereum-ens@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/ethereum-ens/-/ethereum-ens-0.8.0.tgz#6d0f79acaa61fdbc87d2821779c4e550243d4c57" @@ -8386,13 +6201,6 @@ ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== -ethereumjs-testrpc@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-6.0.3.tgz#7a0b87bf3670f92f607f98fa6a78801d9741b124" - integrity sha512-lAxxsxDKK69Wuwqym2K49VpXtBvLEsXr1sryNG4AkvL5DomMdeCBbu3D87UEevKenLHBiT8GTjARwN6Yj039gA== - dependencies: - webpack "^3.0.0" - ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" @@ -8409,20 +6217,7 @@ ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: ethereumjs-common "^1.5.0" ethereumjs-util "^6.0.0" -ethereumjs-util@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz#23ec79b2488a7d041242f01e25f24e5ad0357960" - integrity sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "0.1.6" - keccak "^2.0.0" - rlp "^2.2.3" - secp256k1 "^3.0.1" - -ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0: +ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0, ethereumjs-util@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== @@ -8448,22 +6243,10 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereum rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.2.tgz#cfd79a9a3f5cdc042d1abf29964de9caf10ec238" - integrity sha512-xCV3PTAhW8Q2k88XZn9VcO4OrjpeXAlDm5LQTaOLp81SjNSSY6+MwuGXrx6vafOMheWSmZGxIXUbue5e9UvUBw== - dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" - integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, 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== dependencies: "@types/bn.js" "^5.1.0" bn.js "^5.1.2" @@ -8552,82 +6335,46 @@ ethers@^4.0.0-beta.1, ethers@^4.0.32, ethers@^4.0.40: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@^5.0.13: - version "5.4.7" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.7.tgz#0fd491a5da7c9793de2d6058d76b41b1e7efba8f" - integrity sha512-iZc5p2nqfWK1sj8RabwsPM28cr37Bpq7ehTQ5rWExBr2Y09Sn1lDKZOED26n+TsZMye7Y6mIgQ/1cwpSD8XZew== - dependencies: - "@ethersproject/abi" "5.4.1" - "@ethersproject/abstract-provider" "5.4.1" - "@ethersproject/abstract-signer" "5.4.1" - "@ethersproject/address" "5.4.0" - "@ethersproject/base64" "5.4.0" - "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.2" - "@ethersproject/bytes" "5.4.0" - "@ethersproject/constants" "5.4.0" - "@ethersproject/contracts" "5.4.1" - "@ethersproject/hash" "5.4.0" - "@ethersproject/hdnode" "5.4.0" - "@ethersproject/json-wallets" "5.4.0" - "@ethersproject/keccak256" "5.4.0" - "@ethersproject/logger" "5.4.1" - "@ethersproject/networks" "5.4.2" - "@ethersproject/pbkdf2" "5.4.0" - "@ethersproject/properties" "5.4.1" - "@ethersproject/providers" "5.4.5" - "@ethersproject/random" "5.4.0" - "@ethersproject/rlp" "5.4.0" - "@ethersproject/sha2" "5.4.0" - "@ethersproject/signing-key" "5.4.0" - "@ethersproject/solidity" "5.4.0" - "@ethersproject/strings" "5.4.0" - "@ethersproject/transactions" "5.4.0" - "@ethersproject/units" "5.4.0" - "@ethersproject/wallet" "5.4.0" - "@ethersproject/web" "5.4.0" - "@ethersproject/wordlists" "5.4.0" - -ethers@^5.0.24, ethers@^5.1.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf" - integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/abstract-provider" "5.5.1" - "@ethersproject/abstract-signer" "5.5.0" - "@ethersproject/address" "5.5.0" - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/constants" "5.5.0" - "@ethersproject/contracts" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/hdnode" "5.5.0" - "@ethersproject/json-wallets" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/logger" "5.5.0" - "@ethersproject/networks" "5.5.0" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/providers" "5.5.0" - "@ethersproject/random" "5.5.0" - "@ethersproject/rlp" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/signing-key" "5.5.0" - "@ethersproject/solidity" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/transactions" "5.5.0" - "@ethersproject/units" "5.5.0" - "@ethersproject/wallet" "5.5.0" - "@ethersproject/web" "5.5.0" - "@ethersproject/wordlists" "5.5.0" +ethers@^5.0.13, ethers@^5.0.24, ethers@^5.1.0: + 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-abi@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.2.1.tgz#e0a7a93a7e81163a94477bad56ede524ab6de533" - integrity sha1-4KepOn6BFjqUR3utVu3lJKtt5TM= + integrity sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA== dependencies: bn.js "4.11.6" js-sha3 "0.5.5" @@ -8636,12 +6383,12 @@ ethjs-abi@^0.2.1: ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== dependencies: bn.js "4.11.6" number-to-bn "1.7.0" -ethjs-util@0.1.6, ethjs-util@^0.1.3: +ethjs-util@0.1.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== @@ -8649,19 +6396,6 @@ ethjs-util@0.1.6, ethjs-util@^0.1.3: 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 sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - -event-iterator@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/event-iterator/-/event-iterator-1.2.0.tgz#2e71dc6ca56f1cf8ebcb2b9be7fdfd10acabbb76" - integrity sha512-Daq7YUl0Mv1i4QEgzGQlz0jrx7hUFNyLGbiF+Ap7NCMCjDLCCnolyj6s0TAc6HmrBziO5rNVHsPwGMp7KdRPvw== - event-iterator@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/event-iterator/-/event-iterator-2.0.0.tgz#10f06740cc1e9fd6bc575f334c2bc1ae9d2dbf62" @@ -8675,14 +6409,14 @@ event-target-shim@^5.0.0: eventemitter2@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-1.0.5.tgz#f983610517b1737c0b9dc643beca93893c04df18" - integrity sha1-+YNhBRexc3wLncZDvsqTiTwE3xg= + integrity sha512-EUFhWUYzqqBZlzBMI+dPU8rnKXfQZEUnitnccQuEIAnvWFHCpt3+4fts2+4dpxLtlsiseVXCMFg37KjYChSxpg== eventemitter2@~0.4.14: version "0.4.14" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" - integrity sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas= + integrity sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ== -eventemitter3@3.1.2, eventemitter3@^3.1.0, eventemitter3@^3.1.2: +eventemitter3@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== @@ -8697,7 +6431,7 @@ eventemitter3@^4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0, events@^3.2.0, events@^3.3.0: +events@^3.0.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -8710,19 +6444,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -8751,22 +6472,10 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exit-on-epipe@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" - integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= - dependencies: - is-posix-bracket "^0.1.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -8776,52 +6485,39 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.0" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -express@^4.0.0, express@^4.14.0, express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== +express@^4.14.0, express@^4.17.1: + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== dependencies: - accepts "~1.3.7" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" + body-parser "1.20.0" + content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.0" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + 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.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" + proxy-addr "~2.0.7" + qs "6.10.3" range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" + 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" @@ -8842,23 +6538,23 @@ ext-name@^5.0.0: sort-keys-length "^1.0.0" ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: - type "^2.5.0" + type "^2.7.2" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" @@ -8877,13 +6573,6 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= - dependencies: - is-extglob "^1.0.0" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -8898,15 +6587,10 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-files@9.0.0, extract-files@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" - integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" @@ -8916,21 +6600,16 @@ extsprintf@^1.2.0: fake-merkle-patricia-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - integrity sha1-S4w6z7Ugr635hgsfFM2M40As3dM= + integrity sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA== dependencies: checkpoint-store "^1.1.0" -faker@^5.3.1: - version "5.5.3" - resolved "https://registry.yarnpkg.com/faker/-/faker-5.5.3.tgz#c57974ee484431b25205c2c8dc09fda861e51e0e" - integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== - -fast-check@^2.12.1: - version "2.17.0" - resolved "https://registry.yarnpkg.com/fast-check/-/fast-check-2.17.0.tgz#9b9637684332be386219a5f73a4799874da7461c" - integrity sha512-fNNKkxNEJP+27QMcEzF6nbpOYoSZIS0p+TyB+xh/jXqRBxRhLkiZSREly4ruyV8uJi7nwH1YWAhi7OOK5TubRw== +fast-check@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-check/-/fast-check-3.1.1.tgz#72c5ae7022a4e86504762e773adfb8a5b0b01252" + integrity sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA== dependencies: - pure-rand "^5.0.0" + pure-rand "^5.0.1" fast-deep-equal@^3.1.1: version "3.1.3" @@ -8943,19 +6622,14 @@ fast-diff@^1.1.2: integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== fast-fifo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.0.0.tgz#9bc72e6860347bb045a876d1c5c0af11e9b984e7" - integrity sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ== - -fast-future@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fast-future/-/fast-future-1.0.2.tgz#8435a9aaa02d79248d17d704e76259301d99280a" - integrity sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo= + 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.0.3, fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== +fast-glob@^3.0.3: + 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" @@ -8963,7 +6637,7 @@ fast-glob@^3.0.3, fast-glob@^3.1.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0: +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== @@ -8971,28 +6645,18 @@ fast-json-stable-stringify@^2.0.0: fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + 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-sha256@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-sha256/-/fast-sha256-1.3.0.tgz#7916ba2054eeb255982608cccd0f6660c79b7ae6" - integrity sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ== - fast-write-atomic@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz#7ee8ef0ce3c1f531043c09ae8e5143361ab17ede" integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw== -fastestsmallesttextencoderdecoder@^1.0.22: - version "1.0.22" - resolved "https://registry.yarnpkg.com/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz#59b47e7b965f45258629cc6c127bf783281c5e93" - integrity sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw== - fastq@^1.6.0: version "1.13.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" @@ -9000,69 +6664,36 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165" - integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg== - dependencies: - cross-fetch "^3.0.4" - fbjs-css-vars "^1.0.0" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - fclone@1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640" - integrity sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA= + integrity sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw== fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" -fetch-cookie@0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-0.10.1.tgz#5ea88f3d36950543c87997c27ae2aeafb4b5c4d4" - integrity sha512-beB+VEd4cNeVG1PY+ee74+PkuCQnik78pgLi5Ah/7qdUfov8IctU0vLUbBT8/10Ma5GMBeI4wtxhGrEfKNYs2g== +fetch-cookie@0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-0.11.0.tgz#e046d2abadd0ded5804ce7e2cae06d4331c15407" + integrity sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA== dependencies: tough-cookie "^2.3.3 || ^3.0.1 || ^4.0.0" -fetch-cookie@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-0.7.0.tgz#a6fc137ad8363aa89125864c6451b86ecb7de802" - integrity sha512-Mm5pGlT3agW6t71xVM7vMZPIvI7T4FaTuFW4jari6dVzYHFDb3WZZsGpN22r/o3XMdkM0E7sPd1EGeyVbH2Tgg== - dependencies: - es6-denodeify "^0.1.1" - tough-cookie "^2.3.1" - fetch-ponyfill@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha1-rjzl9zLGReq4fkroeTQUcJsjmJM= + integrity sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g== dependencies: node-fetch "~1.7.1" figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== dependencies: escape-string-regexp "^1.0.5" @@ -9076,17 +6707,17 @@ file-entry-cache@^5.0.1: file-type@^3.8.0: version "3.9.0" resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== file-type@^4.2.0: version "4.4.0" resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= + integrity sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ== file-type@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= + integrity sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ== file-type@^6.1.0: version "6.2.0" @@ -9103,38 +6734,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filecoin.js@^0.0.5-alpha: - version "0.0.5-alpha" - resolved "https://registry.yarnpkg.com/filecoin.js/-/filecoin.js-0.0.5-alpha.tgz#cf6f14ae0715e88c290aeacfe813ff48a69442cd" - integrity sha512-xPrB86vDnTPfmvtN/rJSrhl4M77694ruOgNXd0+5gP67mgmCDhStLCqcr+zHIDRgDpraf7rY+ELbwjXZcQNdpQ== - dependencies: - "@ledgerhq/hw-transport-webusb" "^5.22.0" - "@nodefactory/filsnap-adapter" "^0.2.1" - "@nodefactory/filsnap-types" "^0.2.1" - "@zondax/filecoin-signing-tools" "github:Digital-MOB-Filecoin/filecoin-signing-tools-js" - bignumber.js "^9.0.0" - bitcore-lib "^8.22.2" - bitcore-mnemonic "^8.22.2" - btoa-lite "^1.0.0" - events "^3.2.0" - isomorphic-ws "^4.0.1" - node-fetch "^2.6.0" - rpc-websockets "^5.3.1" - scrypt-async "^2.0.1" - tweetnacl "^1.0.3" - tweetnacl-util "^0.15.1" - websocket "^1.0.31" - ws "^7.3.1" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= - filename-reserved-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== filenamify@^2.0.0: version "2.1.0" @@ -9145,21 +6748,10 @@ filenamify@^2.0.0: strip-outer "^1.0.0" trim-repeated "^1.0.0" -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -9173,17 +6765,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +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.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" find-up@3.0.0, find-up@^3.0.0: @@ -9204,15 +6796,15 @@ find-up@5.0.0: find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0, find-up@^2.1.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 sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" @@ -9224,11 +6816,6 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= - flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -9245,6 +6832,11 @@ flat@^4.1.0: dependencies: is-buffer "~2.0.3" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" @@ -9253,17 +6845,17 @@ flatted@^2.0.0: flow-stoplight@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/flow-stoplight/-/flow-stoplight-1.0.0.tgz#4a292c5bcff8b39fa6cc0cb1a853d86f27eeff7b" - integrity sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s= + integrity sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA== fnv1a@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fnv1a/-/fnv1a-1.0.1.tgz#915e2d6d023c43d5224ad9f6d2a3c4156f5712f5" - integrity sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU= + version "1.1.1" + resolved "https://registry.yarnpkg.com/fnv1a/-/fnv1a-1.1.1.tgz#4e01d51bae60735d00e54ffde02581fe2e74f465" + integrity sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag== -follow-redirects@^1.10.0, follow-redirects@^1.12.1: - version "1.14.4" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379" - integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g== +follow-redirects@^1.12.1, follow-redirects@^1.14.9: + 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" @@ -9272,45 +6864,25 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -for-in@^1.0.1, for-in@^1.0.2: +for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== -foreach@^2.0.4, foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +foreach@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.6.tgz#87bcc8a1a0e74000ff2bf9802110708cfb02eb6e" + integrity sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg== forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -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-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@^2.2.0: version "2.5.1" @@ -9321,10 +6893,10 @@ form-data@^2.2.0: combined-stream "^1.0.6" mime-types "^2.1.12" -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== +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" @@ -9357,46 +6929,32 @@ fp-ts@^1.0.0: fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== from2@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== dependencies: inherits "^2.0.1" readable-stream "^2.0.0" -fs-capacitor@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" - integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== - 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@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" - integrity sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -9431,7 +6989,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -9456,7 +7014,7 @@ fs-readdir-recursive@^1.1.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 sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^1.2.7: version "1.2.13" @@ -9466,7 +7024,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.1.1, fsevents@~2.1.2: +fsevents@~2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== @@ -9481,12 +7039,27 @@ function-bind@^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" + functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +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== -ganache-cli@^6.0.3, ganache-cli@^6.1.0, ganache-cli@^6.12.2: +ganache-cli@^6.0.3: version "6.12.2" resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.12.2.tgz#c0920f7db0d4ac062ffe2375cb004089806f627a" integrity sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw== @@ -9495,10 +7068,27 @@ ganache-cli@^6.0.3, ganache-cli@^6.1.0, ganache-cli@^6.12.2: source-map-support "0.5.12" yargs "13.2.4" +ganache@7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/ganache/-/ganache-7.4.0.tgz#24c56a55c15f6031ffbbb8a634fbb52d752f155e" + integrity sha512-e1x0ZJsJ5zUP+hWtpSNv+FaavRdcrQhQwe+QZ4kVon5mDm6RgFpe3PzNDJXg82AeqqslohJeK9UinZbZzjewjQ== + dependencies: + "@trufflesuite/bigint-buffer" "1.1.10" + "@types/bn.js" "^5.1.0" + "@types/lru-cache" "5.1.1" + "@types/seedrandom" "3.0.1" + emittery "0.10.0" + keccak "3.0.1" + leveldown "6.1.0" + secp256k1 "4.0.2" + optionalDependencies: + bufferutil "4.0.5" + utf-8-validate "5.0.7" + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -9509,11 +7099,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - get-browser-rtc@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz#d1494e299b00f33fc8e9d6d3343ba4ba99711a2c" @@ -9524,7 +7109,7 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.1: +get-caller-file@^2.0.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== @@ -9532,50 +7117,26 @@ get-caller-file@^2.0.1: get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - -get-installed-path@^2.0.3: - version "2.1.1" - resolved "https://registry.yarnpkg.com/get-installed-path/-/get-installed-path-2.1.1.tgz#a1f33dc6b8af542c9331084e8edbe37fe2634152" - integrity sha512-Qkn9eq6tW5/q9BDVdMpB8tOHljX9OSP0jRC5TRNVA4qRc839t4g8KQaR8t0Uv0EFVL0MlyG7m/ofjEgAROtYsA== - dependencies: - global-modules "1.0.0" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-installed-path@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/get-installed-path/-/get-installed-path-4.0.8.tgz#a4fee849f5f327c12c551bb37477acd5151e5f7d" - integrity sha512-PmANK1xElIHlHH2tXfOoTnSDUjX1X3GvKK6ZyLbUnSCCn1pADwu67eVWttuPzJWrXDDT2MfO6uAaKILOFfitmA== - dependencies: - global-modules "1.0.0" - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.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.1" + 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-params@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/get-params/-/get-params-0.1.2.tgz#bae0dfaba588a0c60d7834c0d8dc2ff60eeef2fe" - integrity sha1-uuDfq6WIoMYNeDTA2Nwv9g7u8v4= - get-port@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" - integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= - -get-prototype-of@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/get-prototype-of/-/get-prototype-of-0.0.0.tgz#98772bd10716d16deb4b322516c469efca28ac44" - integrity sha1-mHcr0QcW0W3rSzIlFsRp78oorEQ= + integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== get-proxy@^2.0.0: version "2.1.0" @@ -9587,12 +7148,12 @@ get-proxy@^2.0.0: get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== get-stream@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + integrity sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA== dependencies: object-assign "^4.0.1" pinkie-promise "^2.0.0" @@ -9611,7 +7172,7 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.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== @@ -9627,12 +7188,12 @@ get-symbol-description@^1.0.0: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" @@ -9648,25 +7209,10 @@ ghost-testrpc@^0.0.2: version "1.0.0" resolved "https://tgz.pm2.io/gkt-1.0.0.tgz#405502b007f319c3f47175c4474527300f2ab5ad" -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.0.0, glob-parent@^3.1.0: +glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -9678,20 +7224,6 @@ glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-stream@^5.3.2: - version "5.3.5" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" - integrity sha1-pVZlqajM3EGRWofHAeMtTgFvrSI= - dependencies: - extend "^3.0.0" - glob "^5.0.3" - glob-parent "^3.0.0" - micromatch "^2.3.7" - ordered-read-streams "^0.3.0" - through2 "^0.6.0" - to-absolute-glob "^0.1.1" - unique-stream "^2.0.2" - glob@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -9704,10 +7236,10 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +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" @@ -9716,10 +7248,10 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^5.0.15, glob@^5.0.3: +glob@^5.0.15: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= + integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== dependencies: inflight "^1.0.4" inherits "2" @@ -9727,34 +7259,25 @@ glob@^5.0.15, glob@^5.0.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.0.0, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.2.0: + 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.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== dependencies: ini "^1.3.4" -global-modules@1.0.0, global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^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" @@ -9762,17 +7285,6 @@ global-modules@^2.0.0: dependencies: global-prefix "^3.0.0" -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - global-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" @@ -9790,46 +7302,15 @@ global@~4.4.0: min-document "^2.19.0" process "^0.11.10" -globals@^11.1.0, globals@^11.7.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@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globalthis@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" - integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== - dependencies: - define-properties "^1.1.3" - -globby@11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" - integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" +globals@^11.7.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@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== globby@^10.0.1: version "10.0.2" @@ -9845,10 +7326,24 @@ globby@^10.0.1: merge2 "^1.2.3" slash "^3.0.0" -google-protobuf@^3.13.0, google-protobuf@^3.17.3: - version "3.18.1" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.18.1.tgz#31de10b65e833aa5bbd44680e8a748fa54c920f6" - integrity sha512-cDqSamZ8rGs+pOzhIsBte7wpezUKg/sggeptDWN5odhnRY/eDLa5VWLeNeQvcfiqjS3yUwgM+6OePCJMB7aWZA== +got@12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" + integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== + dependencies: + "@sindresorhus/is" "^4.6.0" + "@szmarczak/http-timer" "^5.0.1" + "@types/cacheable-request" "^6.0.2" + "@types/responselike" "^1.0.0" + cacheable-lookup "^6.0.4" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + form-data-encoder "1.7.1" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^2.0.0" got@9.6.0: version "9.6.0" @@ -9867,6 +7362,23 @@ got@9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.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" + got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -9910,111 +7422,28 @@ got@^8.3.1: url-parse-lax "^3.0.0" url-to-options "^1.0.1" -graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -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== - -graphql-extensions@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.15.0.tgz#3f291f9274876b0c289fa4061909a12678bd9817" - integrity sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA== - dependencies: - "@apollographql/apollo-tools" "^0.5.0" - apollo-server-env "^3.1.0" - apollo-server-types "^0.9.0" - -graphql-subscriptions@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" - integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== - dependencies: - iterall "^1.3.0" +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graphql-tag@^2.11.0, graphql-tag@^2.12.3: - version "2.12.5" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.5.tgz#5cff974a67b417747d05c8d9f5f3cb4495d0db8f" - integrity sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ== +graphql-tag@^2.11.0, graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== dependencies: tslib "^2.1.0" -graphql-tools@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.8.tgz#e7fb9f0d43408fb0878ba66b522ce871bafe9d30" - integrity sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg== - dependencies: - apollo-link "^1.2.14" - apollo-utilities "^1.0.1" - deprecated-decorator "^0.1.6" - iterall "^1.1.3" - uuid "^3.1.0" - -graphql-tools@^6.2.4: - version "6.2.6" - resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-6.2.6.tgz#557c6d32797a02988f214bd596dec2abd12425dd" - integrity sha512-OyhSvK5ALVVD6bFiWjAqv2+lRyvjIRfb6Br5Tkjrv++rxnXDodPH/zhMbDGRw+W3SD5ioGEEz84yO48iPiN7jA== - dependencies: - "@graphql-tools/batch-delegate" "^6.2.6" - "@graphql-tools/code-file-loader" "^6.2.4" - "@graphql-tools/delegate" "^6.2.4" - "@graphql-tools/git-loader" "^6.2.4" - "@graphql-tools/github-loader" "^6.2.4" - "@graphql-tools/graphql-file-loader" "^6.2.4" - "@graphql-tools/graphql-tag-pluck" "^6.2.4" - "@graphql-tools/import" "^6.2.4" - "@graphql-tools/json-file-loader" "^6.2.4" - "@graphql-tools/links" "^6.2.4" - "@graphql-tools/load" "^6.2.4" - "@graphql-tools/load-files" "^6.2.4" - "@graphql-tools/merge" "^6.2.4" - "@graphql-tools/mock" "^6.2.4" - "@graphql-tools/module-loader" "^6.2.4" - "@graphql-tools/relay-operation-optimizer" "^6.2.4" - "@graphql-tools/resolvers-composition" "^6.2.4" - "@graphql-tools/schema" "^6.2.4" - "@graphql-tools/stitch" "^6.2.4" - "@graphql-tools/url-loader" "^6.2.4" - "@graphql-tools/utils" "^6.2.4" - "@graphql-tools/wrap" "^6.2.4" - tslib "~2.0.1" - -graphql-ws@^4.4.1: - version "4.9.0" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-4.9.0.tgz#5cfd8bb490b35e86583d8322f5d5d099c26e365c" - integrity sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag== - graphql@^15.3.0: - version "15.6.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.6.1.tgz#9125bdf057553525da251e19e96dab3d3855ddfc" - integrity sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw== + version "15.8.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" + integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== growl@1.10.5: version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== -gulp-sourcemaps@^1.5.2: - version "1.12.1" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.12.1.tgz#b437d1f3d980cf26e81184823718ce15ae6597b6" - integrity sha1-tDfR89mAzyboEYSCNxjOFa5ll7Y= - dependencies: - "@gulp-sourcemaps/map-sources" "1.X" - acorn "4.X" - convert-source-map "1.X" - css "2.X" - debug-fabulous "0.0.X" - detect-newline "2.X" - graceful-fs "4.X" - source-map "~0.6.0" - strip-bom "2.X" - through2 "2.X" - vinyl "1.X" - hamt-sharding@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-2.0.1.tgz#f45686d0339e74b03b233bee1bde9587727129b6" @@ -10038,7 +7467,7 @@ handlebars@^4.0.1: har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" @@ -10049,43 +7478,51 @@ har-validator@~5.1.3: har-schema "^2.0.0" hardhat-contract-sizer@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.5.1.tgz#cb0b8dd32593b7a28c8d96ecde04841292bbd603" - integrity sha512-28yRb73e30aBVaZOOHTlHZFIdIasA/iFunIehrUviIJTubvdQjtSiQUo2wexHFtt71mQeMPP8qjw2sdbgatDnQ== + 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== dependencies: chalk "^4.0.0" cli-table3 "^0.6.0" hardhat-dependency-compiler@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/hardhat-dependency-compiler/-/hardhat-dependency-compiler-1.1.1.tgz#0bfe713d450a7fdad14a210b7a9b8a32e56cc744" - integrity sha512-2xubH8aPojhMGbILFlfL28twu6l/5Tyrj4Dpkogvycse6YegKW9GuGA3rnbPH0KP+Nv2xT626ZuR2Ys+w3ifPw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/hardhat-dependency-compiler/-/hardhat-dependency-compiler-1.1.3.tgz#1e49e23f68878bd713f860c66648a711bc4a4a79" + integrity sha512-bCDqsOxGST6WkbMvj4lPchYWidNSSBm5CFnkyAex1T11cGmr9otZTGl81W6f9pmrtBXbKCvr3OSuNJ6Q394sAw== hardhat-gas-reporter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.4.tgz#59e3137e38e0dfeac2e4f90d5c74160b50ad4829" - integrity sha512-G376zKh81G3K9WtDA+SoTLWsoygikH++tD1E7llx+X7J+GbIqfwhDKKgvJjcnEesMrtR9UqQHK02lJuXY1RTxw== + version "1.0.9" + resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz#9a2afb354bc3b6346aab55b1c02ca556d0e16450" + integrity sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg== dependencies: - eth-gas-reporter "^0.2.20" + array-uniq "1.0.3" + eth-gas-reporter "^0.2.25" sha1 "^1.1.1" -hardhat@^2.6.8: - version "2.6.8" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.6.8.tgz#9ef6f8c16f9044acb95609d15a760b89177b8181" - integrity sha512-iRVd5DgcIVV3rNXMlogOfwlXAhHp7Wy/OjjFiUhTey8Unvo6oq5+Is5ANiKVN+Iw07Pcb/HpkGt7jCB6a4ITgg== +hardhat@^2.11.2: + version "2.11.2" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.11.2.tgz#c81388630255823bb1717ec07c4ee651b1fbe97f" + integrity sha512-BdsXC1CFJQDJKmAgCwpmGhFuVU6dcqlgMgT0Kg/xmFAFVugkpYu6NRmh4AaJ3Fah0/BR9DOR4XgQGIbg4eon/Q== dependencies: - "@ethereumjs/block" "^3.4.0" - "@ethereumjs/blockchain" "^5.4.0" - "@ethereumjs/common" "^2.4.0" - "@ethereumjs/tx" "^3.3.0" - "@ethereumjs/vm" "^5.5.2" "@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.0.3" "@sentry/node" "^5.18.1" - "@solidity-parser/parser" "^0.14.0" "@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" @@ -10093,81 +7530,74 @@ hardhat@^2.6.8: debug "^4.1.1" enquirer "^2.3.0" env-paths "^2.2.0" - eth-sig-util "^2.5.2" - ethereum-cryptography "^0.1.2" + ethereum-cryptography "^1.0.3" ethereumjs-abi "^0.6.8" - ethereumjs-util "^7.1.0" find-up "^2.1.0" fp-ts "1.19.3" fs-extra "^7.0.1" - glob "^7.1.3" - https-proxy-agent "^5.0.0" + glob "7.2.0" immutable "^4.0.0-rc.12" io-ts "1.10.4" + keccak "^3.0.2" lodash "^4.17.11" - merkle-patricia-tree "^4.2.0" mnemonist "^0.38.0" - mocha "^7.1.2" - node-fetch "^2.6.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" - slash "^3.0.0" solc "0.7.3" source-map-support "^0.5.13" stacktrace-parser "^0.1.10" - "true-case-path" "^2.2.1" tsort "0.0.1" - uuid "^3.3.2" + undici "^5.4.0" + uuid "^8.3.2" ws "^7.4.6" has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= +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@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + 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-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-symbols@^1.0.0, 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-to-string-tag-x@^1.2.0: version "1.4.1" @@ -10186,12 +7616,12 @@ has-tostringtag@^1.0.0: has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -10200,7 +7630,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -10209,12 +7639,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" @@ -10256,7 +7686,7 @@ hashlru@^2.3.0: resolved "https://registry.yarnpkg.com/hashlru/-/hashlru-2.3.0.tgz#5dc15928b3f6961a2056416bb3a4910216fdfb51" integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A== -he@1.2.0, he@^1.1.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== @@ -10264,7 +7694,7 @@ he@1.2.0, he@^1.1.1: header-case@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" - integrity sha1-lTWXMZfBRLCWE81l0xfvGZY70C0= + integrity sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ== dependencies: no-case "^2.2.0" upper-case "^1.1.3" @@ -10274,89 +7704,42 @@ highlight.js@^10.4.1: resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== -highlight.js@^9.15.8: - version "9.18.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== - -highlightjs-solidity@^1.0.18: - version "1.2.2" - resolved "https://registry.yarnpkg.com/highlightjs-solidity/-/highlightjs-solidity-1.2.2.tgz#049a050c0d8009c99b373537a4e66bf55366de51" - integrity sha512-+cZ+1+nAO5Pi6c70TKuMcPmwqLECxiYhnQc1MxdXckK94zyWFMNZADzu98ECNlf5xCRdNh+XKp+eklmRU+Dniw== - -highlightjs-solidity@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/highlightjs-solidity/-/highlightjs-solidity-2.0.1.tgz#ee1beb6f353d4503aa3a011bbb86577976365b59" - integrity sha512-9YY+HQpXMTrF8HgRByjeQhd21GXAz2ktMPTcs6oWSj5HJR52fgsNoelMOmgigwcpt9j4tu4IVSaWaJB2n2TbvQ== +highlightjs-solidity@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/highlightjs-solidity/-/highlightjs-solidity-2.0.5.tgz#48b945f41886fa49af9f06023e6e87fffc243745" + integrity sha512-ReXxQSGQkODMUgHcWzVSnfDCDrL2HshOYgw3OlIYmfHeRzUPkfJTUIp95pK4CmbiNG2eMTOmNLpfCz9Zq7Cwmg== hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + 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.2: - 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" - home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -htmlparser2@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== +htmlparser2@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" + integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -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" - -htmlparser2@~3.8.1: - version "3.8.3" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" - integrity sha1-mWwosZFRaovoZQGn15dX5ccMEGg= - dependencies: - domelementtype "1" - domhandler "2.3" - domutils "1.5" - entities "1.0" - readable-stream "1.1" + domelementtype "^2.3.0" + domhandler "^5.0.2" + domutils "^3.0.1" + entities "^4.3.0" http-basic@^8.1.1: version "8.1.3" @@ -10378,43 +7761,21 @@ http-cache-semantics@^4.0.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@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@1.7.3, http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" - integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== +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 "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.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 sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= + integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== http-response-object@^3.0.1: version "3.0.2" @@ -10426,21 +7787,32 @@ http-response-object@^3.0.1: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +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.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + 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" @@ -10455,14 +7827,6 @@ husky@^7.0.4: resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== -ice-cap@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/ice-cap/-/ice-cap-0.0.4.tgz#8a6d31ab4cac8d4b56de4fa946df3352561b6e18" - integrity sha1-im0xq0ysjUtW3k+pRt8zUlYbbhg= - dependencies: - cheerio "0.20.0" - color-logger "0.0.3" - iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -10484,7 +7848,7 @@ idna-uts46-hx@^2.3.1: dependencies: punycode "2.1.0" -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: +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== @@ -10506,15 +7870,15 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +ignore@^5.1.1: + 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.6: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== immediate@3.3.0, immediate@^3.2.2, immediate@^3.2.3: version "3.3.0" @@ -10524,22 +7888,17 @@ immediate@3.3.0, immediate@^3.2.2, immediate@^3.2.3: immediate@~3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" - integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= + integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== immutable@^4.0.0-rc.12: - version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== - -immutable@~3.7.6: - version "3.7.6" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" - integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= + version "4.1.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" @@ -10552,17 +7911,10 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== - dependencies: - resolve-from "^5.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" @@ -10572,7 +7924,7 @@ indent-string@^4.0.0: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -10582,15 +7934,15 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1, inherits@=2.0.1: +inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" @@ -10616,20 +7968,7 @@ inquirer@^6.2.2: strip-ansi "^5.1.0" through "^2.3.6" -interface-blockstore@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/interface-blockstore/-/interface-blockstore-1.0.2.tgz#adf35659ac073ffecf33615e051cf7f38ee32626" - integrity sha512-e8rHqaBSOsBPpSaB+wwVa9mR5ntU+t1yzXpOFC16cSKCNsV+h6n8SjekPQcdODVBN2h8t45CsOqRAnUfm1guEw== - dependencies: - err-code "^3.0.1" - interface-store "^1.0.2" - it-all "^1.0.5" - it-drain "^1.0.4" - it-filter "^1.0.2" - it-take "^1.0.1" - multiformats "^9.0.4" - -interface-blockstore@^2.0.2: +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== @@ -10638,19 +7977,14 @@ interface-blockstore@^2.0.2: multiformats "^9.0.4" interface-datastore@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.0.tgz#e8c4821c50c1b708d07d0ee06a77ecca8c2dd79b" - integrity sha512-oNHdsrWBsI/kDwUtEgt+aaZtQFKtQYN0TGZzc3SGiIA6m+plZ6malhmsygtbmDpfpIsNNC7ce9Gyaj+Tki+gVw== + 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.1" + interface-store "^2.0.2" nanoid "^3.0.2" uint8arrays "^3.0.0" -interface-store@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-1.0.2.tgz#1ebd6cbbae387039a3a2de0cae665da52474800f" - integrity sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ== - 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" @@ -10673,12 +8007,12 @@ interpret@^1.0.0: into-stream@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= + integrity sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ== dependencies: from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -10688,7 +8022,7 @@ invariant@^2.2.2, invariant@^2.2.4: invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== invert-kv@^2.0.0: version "2.0.0" @@ -10748,10 +8082,10 @@ ipfs-bitswap@^10.0.1: varint "^6.0.0" varint-decoder "^1.0.0" -ipfs-core-config@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/ipfs-core-config/-/ipfs-core-config-0.3.1.tgz#b3f4efdbe1bfc5eb867ad7324686aa3ba828f484" - integrity sha512-9qAPMlYrxQ6/n59E+v6boiRdqK5FSCKcYHs3YyrCIQYqA0Mq1xqmgzquYSkn0N/xhay59YdzWfiVOu+rb728SA== +ipfs-core-config@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/ipfs-core-config/-/ipfs-core-config-0.3.3.tgz#38d548650008b36289e8dcbce33572f266af493f" + integrity sha512-hF5OE4qKy8vJetI3VYWOYePiW0JSV3i/9ArIrwATT0aJHbPzrRWJFQvvfeAFVEPqRmEBnnIQZCjHyGeVFbYfBg== dependencies: "@chainsafe/libp2p-noise" "^5.0.1" blockstore-datastore-adapter "^2.0.2" @@ -10763,14 +8097,14 @@ ipfs-core-config@^0.3.1: hashlru "^2.3.0" interface-datastore "^6.0.2" ipfs-repo "^14.0.1" - ipfs-utils "^9.0.2" + ipfs-utils "^9.0.6" ipns "^0.16.0" is-ipfs "^6.0.1" it-all "^1.0.4" it-drain "^1.0.3" it-foreach "^0.1.1" libp2p-floodsub "^0.29.0" - libp2p-gossipsub "^0.13.0" + libp2p-gossipsub "0.13.0" libp2p-kad-dht "^0.28.5" libp2p-mdns "^0.18.0" libp2p-mplex "^0.10.2" @@ -10780,37 +8114,30 @@ ipfs-core-config@^0.3.1: p-queue "^6.6.1" uint8arrays "^3.0.0" -ipfs-core-types@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz#53c60f589e4e54c2d566f0c856c2fcf0ea4a5577" - integrity sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw== +ipfs-core-types@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.3.tgz#89ebe98199d4d829f2b20104bfa3299f808c80fe" + integrity sha512-GNid2lRBjR5qgScCglgk7w9Hk3TZAwPHQXxOLQx72wgyc0jF2U5NXRoKW0GRvX8NPbHmsrFszForIqxd23I1Gw== dependencies: + "@ipld/dag-pb" "^2.1.3" interface-datastore "^6.0.2" + ipfs-unixfs "^6.0.3" multiaddr "^10.0.0" multiformats "^9.5.1" -ipfs-core-types@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.2.1.tgz#460bf2116477ce621995468c962c685dbdc4ac6f" - integrity sha512-q93+93qSybku6woZaajE9mCrHeVoMzNtZ7S5m/zx0+xHRhnoLlg8QNnGGsb5/+uFQt/RiBArsIw/Q61K9Jwkzw== - dependencies: - cids "^1.1.5" - multiaddr "^8.0.0" - peer-id "^0.14.1" - -ipfs-core-utils@^0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.14.1.tgz#b2d66f929ca853fc0525dec4043546ebaaa3a627" - integrity sha512-Zm5Ou6zd5W5COaVpE2v7a7QS0KhlYJ4CakxVgoIJWWXSdexLt0M3Z3dTWMlFygWu6QRaKyOURZPdOlPWfqBThQ== +ipfs-core-utils@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.14.3.tgz#d04c631c472507bdefc58d4e8d1d9109efbb411c" + integrity sha512-aBkewVhgAj3NWXPwu6imj0wADGiGVZmJzqKzODOJsibDjkx6FGdMv8kvvqtLnK8LS/dvSk9yk32IDtuDyYoV7Q== dependencies: any-signal "^3.0.0" 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.10.1" + ipfs-core-types "^0.10.3" ipfs-unixfs "^6.0.3" - ipfs-utils "^9.0.2" + ipfs-utils "^9.0.6" it-all "^1.0.4" it-map "^1.0.4" it-peekable "^1.0.2" @@ -10824,34 +8151,13 @@ ipfs-core-utils@^0.14.1: timeout-abort-controller "^3.0.0" uint8arrays "^3.0.0" -ipfs-core-utils@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.6.1.tgz#59d1ca9ff4a33bbf6497c4abe024573c3fd7d784" - integrity sha512-UFIklwE3CFcsNIhYFDuz0qB7E2QtdFauRfc76kskgiqhGWcjqqiDeND5zBCrAy0u8UMaDqAbFl02f/mIq1yKXw== - dependencies: - any-signal "^2.0.0" - blob-to-it "^1.0.1" - browser-readablestream-to-it "^1.0.1" - cids "^1.1.5" - err-code "^2.0.3" - ipfs-core-types "^0.2.1" - ipfs-utils "^5.0.0" - it-all "^1.0.4" - it-map "^1.0.4" - it-peekable "^1.0.1" - multiaddr "^8.0.0" - multiaddr-to-uri "^6.0.0" - parse-duration "^0.4.4" - timeout-abort-controller "^1.1.1" - uint8arrays "^1.1.0" - ipfs-core@^0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/ipfs-core/-/ipfs-core-0.14.1.tgz#62245970d231aef0148928da540b3b83801dfdf8" - integrity sha512-hmIgbRlJoj3frU0R+Ac3ftVAu+Y4ZbnmCOPXXpEIinNMxUTt8/iy4He+69nM0uHz/TZlHMDJEGsnWaR42vcL9g== + version "0.14.3" + resolved "https://registry.yarnpkg.com/ipfs-core/-/ipfs-core-0.14.3.tgz#e2fe617b67d63a839d82a88e1af849181c6453ed" + integrity sha512-2Xxcoesc15IVzIDwAFBaOtLBZo3lKblFQZDX3n4yDckieyHF8TvgBgSgsqp2puTk0szp9lU4xsZA2cRNeJxIbg== dependencies: "@chainsafe/libp2p-noise" "^5.0.0" - "@ipld/car" "^3.1.0" + "@ipld/car" "^4.1.0" "@ipld/dag-cbor" "^7.0.0" "@ipld/dag-json" "^8.0.1" "@ipld/dag-pb" "^2.1.3" @@ -10871,15 +8177,15 @@ ipfs-core@^0.14.1: interface-blockstore "^2.0.2" interface-datastore "^6.0.2" ipfs-bitswap "^10.0.1" - ipfs-core-config "^0.3.1" - ipfs-core-types "^0.10.1" - ipfs-core-utils "^0.14.1" - ipfs-http-client "^56.0.1" + ipfs-core-config "^0.3.3" + ipfs-core-types "^0.10.3" + ipfs-core-utils "^0.14.3" + ipfs-http-client "^56.0.3" ipfs-repo "^14.0.1" ipfs-unixfs "^6.0.3" ipfs-unixfs-exporter "^7.0.3" ipfs-unixfs-importer "^9.0.3" - ipfs-utils "^9.0.2" + ipfs-utils "^9.0.6" ipns "^0.16.0" is-domain-name "^1.0.1" is-ipfs "^6.0.1" @@ -10915,42 +8221,10 @@ ipfs-core@^0.14.1: timeout-abort-controller "^3.0.0" uint8arrays "^3.0.0" -ipfs-http-client@^48.2.2: - version "48.2.2" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-48.2.2.tgz#b570fb99866f94df1c394a6101a2eb750ff46599" - integrity sha512-f3ppfWe913SJLvunm0UgqdA1dxVZSGQJPaEVJtqgjxPa5x0fPDiBDdo60g2MgkW1W6bhF9RGlxvHHIE9sv/tdg== - dependencies: - any-signal "^2.0.0" - bignumber.js "^9.0.0" - cids "^1.1.5" - debug "^4.1.1" - form-data "^3.0.0" - ipfs-core-types "^0.2.1" - ipfs-core-utils "^0.6.1" - ipfs-utils "^5.0.0" - ipld-block "^0.11.0" - ipld-dag-cbor "^0.17.0" - ipld-dag-pb "^0.20.0" - ipld-raw "^6.0.0" - it-last "^1.0.4" - it-map "^1.0.4" - it-tar "^1.2.2" - it-to-stream "^0.1.2" - merge-options "^2.0.0" - multiaddr "^8.0.0" - multibase "^3.0.0" - multicodec "^2.0.1" - multihashes "^3.0.1" - nanoid "^3.1.12" - native-abort-controller "~0.0.3" - parse-duration "^0.4.4" - stream-to-it "^0.2.2" - uint8arrays "^1.1.0" - -ipfs-http-client@^56.0.1: - version "56.0.1" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-56.0.1.tgz#aaa40a1bf3e3d07f5a49fadefd8b6017b91e3fb9" - integrity sha512-U0sUyGZndcIluMJL3gDdCSgF7RwShDklJJxfDf9IRcbO72hqSJsib4amYzqcqfetft6vYa8uRIoJFEIWndHwrg== +ipfs-http-client@^56.0.3: + version "56.0.3" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-56.0.3.tgz#45bbea55347ef13524769d5919cbed84d9d022d6" + integrity sha512-E3L5ylVl6BjyRUsNehvfuRBYp1hj8vQ8in4zskVPMNzXs6JiCFUbif5a6BtcAlSK4xPQyJCeLNNAWLUeFQTLNA== dependencies: "@ipld/dag-cbor" "^7.0.0" "@ipld/dag-json" "^8.0.1" @@ -10959,9 +8233,9 @@ ipfs-http-client@^56.0.1: dag-jose "^1.0.0" debug "^4.1.1" err-code "^3.0.1" - ipfs-core-types "^0.10.1" - ipfs-core-utils "^0.14.1" - ipfs-utils "^9.0.2" + ipfs-core-types "^0.10.3" + ipfs-core-utils "^0.14.3" + ipfs-utils "^9.0.6" it-first "^1.0.6" it-last "^1.0.4" merge-options "^3.0.4" @@ -11023,33 +8297,33 @@ ipfs-repo@^14.0.1: uint8arrays "^3.0.0" ipfs-unixfs-exporter@^7.0.3: - version "7.0.6" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.6.tgz#b7ae19a1355254bd0837b9667d0733cbfae43f83" - integrity sha512-PkKB+hTbHhKLqgj0PqSNQ/n7dKsu/lC29jLK8nUXOX4EM6c+RnedohdCY7khT10/hfC7oADbpFs/QJfuH2DaAg== + 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" "^6.0.4" + "@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 "^1.0.0" - ipfs-unixfs "^6.0.6" + 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.3: - version "9.0.6" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.6.tgz#9d920388e4555f3249136c90a146387e8c88dd8d" - integrity sha512-FgzODqg4pvToEMZ88mFkHcU0s25CljmnqX2VX7K/VQDckiZIxhIiUTQRqQg/C7Em4uCzVp8YCxKUvl++w6kvNg== + 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 "^1.0.0" - ipfs-unixfs "^6.0.6" + 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" @@ -11059,40 +8333,18 @@ ipfs-unixfs-importer@^9.0.3: rabin-wasm "^0.1.4" uint8arrays "^3.0.0" -ipfs-unixfs@^6.0.3, ipfs-unixfs@^6.0.6: - version "6.0.6" - resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-6.0.6.tgz#c44881c1bcd6a474c665e67108cbf31e54c63eec" - integrity sha512-gTkjYKXuHnqIf6EFfS+ESaYEl3I3aaQQ0UX8MhpNzreMLEuMnuqpoI/uLLllTZa31WRplKixabbpRTSmTYRNwA== +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@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-5.0.1.tgz#7c0053d5e77686f45577257a73905d4523e6b4f7" - integrity sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg== - dependencies: - abort-controller "^3.0.0" - any-signal "^2.1.0" - buffer "^6.0.1" - electron-fetch "^1.7.2" - err-code "^2.0.0" - fs-extra "^9.0.1" - is-electron "^2.2.0" - iso-url "^1.0.0" - it-glob "0.0.10" - it-to-stream "^0.1.2" - merge-options "^2.0.0" - nanoid "^3.1.3" - native-abort-controller "0.0.3" - native-fetch "^2.0.0" - node-fetch "^2.6.0" - stream-to-it "^0.2.0" - -ipfs-utils@^9.0.1, ipfs-utils@^9.0.2: - version "9.0.5" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.5.tgz#861c4ae02c71b7f94d0eb7e16b613d91235a96e9" - integrity sha512-GXWfsq/nKtwkcTI4+KGc4CU9EFXjtkWaGcFAsnm177kAhA0Fnn8aWNRaF/C0xFraUIl1wTAUTWkaGKigVyfsTw== +ipfs-utils@^9.0.1, ipfs-utils@^9.0.6: + 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" @@ -11109,49 +8361,6 @@ ipfs-utils@^9.0.1, ipfs-utils@^9.0.2: react-native-fetch-api "^2.0.0" stream-to-it "^0.2.2" -ipld-block@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/ipld-block/-/ipld-block-0.11.1.tgz#c3a7b41aee3244187bd87a73f980e3565d299b6e" - integrity sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw== - dependencies: - cids "^1.0.0" - -ipld-dag-cbor@^0.17.0: - version "0.17.1" - resolved "https://registry.yarnpkg.com/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz#842e6c250603e5791049168831a425ec03471fb1" - integrity sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw== - dependencies: - borc "^2.1.2" - cids "^1.0.0" - is-circular "^1.0.2" - multicodec "^3.0.1" - multihashing-async "^2.0.0" - uint8arrays "^2.1.3" - -ipld-dag-pb@^0.20.0: - version "0.20.0" - resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz#025c0343aafe6cb9db395dd1dc93c8c60a669360" - integrity sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg== - dependencies: - cids "^1.0.0" - class-is "^1.1.0" - multicodec "^2.0.0" - multihashing-async "^2.0.0" - protons "^2.0.0" - reset "^0.1.0" - run "^1.4.0" - stable "^0.1.8" - uint8arrays "^1.0.0" - -ipld-raw@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ipld-raw/-/ipld-raw-6.0.0.tgz#74d947fcd2ce4e0e1d5bb650c1b5754ed8ea6da0" - integrity sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg== - dependencies: - cids "^1.0.0" - multicodec "^2.0.0" - multihashing-async "^2.0.0" - ipns@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/ipns/-/ipns-0.16.0.tgz#656bf36d78a6a9eb829ff798b4ca875ba9a3d0d4" @@ -11172,7 +8381,7 @@ ipns@^0.16.0: is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== dependencies: kind-of "^3.0.2" @@ -11183,7 +8392,7 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-arguments@^1.0.4, is-arguments@^1.1.0: +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== @@ -11194,7 +8403,7 @@ is-arguments@^1.0.4, is-arguments@^1.1.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 sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" @@ -11206,7 +8415,7 @@ is-bigint@^1.0.1: is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== dependencies: binary-extensions "^1.0.0" @@ -11236,36 +8445,21 @@ is-buffer@^2.0.5, is-buffer@~2.0.3: integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-capitalized@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-capitalized/-/is-capitalized-1.0.0.tgz#4c8464b4d91d3e4eeb44889dd2cd8f1b0ac4c136" - integrity sha1-TIRktNkdPk7rRIid0s2PGwrEwTY= - -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== + version "1.2.6" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.6.tgz#fd6170b0b8c7e2cc73de342ef8284a2202023c44" + integrity sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q== -is-class@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/is-class/-/is-class-0.0.4.tgz#e057451705bb34e39e3e33598c93a9837296b736" - integrity sha1-4FdFFwW7NOOePjNZjJOpg3KWtzY= - -is-core-module@^2.2.0, is-core-module@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.8.1, is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: kind-of "^3.0.2" @@ -11304,34 +8498,22 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== is-domain-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-domain-name/-/is-domain-name-1.0.1.tgz#f6eb33b14a497541dca58335137d4466e0c20da1" - integrity sha1-9uszsUpJdUHcpYM1E31EZuDCDaE= - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + integrity sha512-52ToNggHmkZGPl8yLFNrk+cKHUUnkhS0l2jh+yMLq6kj9C5IMLSztvJsW5WO5eMy0OS0jdu4o2tptT9dN0hAFg== is-electron@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.0.tgz#8943084f09e8b731b3a7a0298a7b5d56f6b7eef0" - integrity sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q== - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= - dependencies: - is-primitive "^2.0.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-expression@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f" - integrity sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8= + integrity sha512-vyMeQMq+AiH5uUnoBfMTwf18tO3bM6k1QXBE9D6ueAAquEfCZe3AJPtud9g6qS0+4X8xA7ndpZiDyeb2l2qOBw== dependencies: acorn "~4.0.2" object-assign "^4.0.1" @@ -11339,7 +8521,7 @@ is-expression@^3.0.0: is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" @@ -11348,15 +8530,10 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finite@^1.0.0: version "1.1.0" @@ -11366,19 +8543,19 @@ is-finite@^1.0.0: is-fn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - integrity sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw= + integrity sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg== is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -11402,24 +8579,10 @@ is-generator-function@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-glob@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== dependencies: is-extglob "^2.1.0" @@ -11433,7 +8596,7 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.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 sha1-fY035q135dEnFIkTxXPggtd39VQ= + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== is-installed-globally@^0.2.0: version "0.2.0" @@ -11469,51 +8632,34 @@ is-loopback-addr@^1.0.0: is-lower-case@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" - integrity sha1-fhR75HaNxGbbO/shzGCzHmrWk5M= + integrity sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA== dependencies: lower-case "^1.1.0" -is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - is-natural-number@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= + integrity sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ== -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +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.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + 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@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -11539,7 +8685,7 @@ is-path-inside@^2.1.0: is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: version "2.1.0" @@ -11553,21 +8699,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= - -is-promise@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" - integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== - is-promise@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" @@ -11586,20 +8717,17 @@ is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== -is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +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@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-stream@^2.0.0: version "2.0.1" @@ -11620,47 +8748,47 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.3, is-typed-array@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" - integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== +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.18.5" - foreach "^2.0.5" + 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 sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + 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== is-upper-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" - integrity sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8= + integrity sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw== dependencies: upper-case "^1.1.0" is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== -is-valid-glob@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" - integrity sha1-1LVcafUYhvm2XHDWwmItN+KfSP4= - -is-weakref@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" - integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== +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.0" + call-bind "^1.0.2" -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -11673,22 +8801,17 @@ is@^3.2.0: isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + 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 sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== iso-constants@^0.1.2: version "0.1.2" @@ -11696,41 +8819,31 @@ iso-constants@^0.1.2: integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== iso-random-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/iso-random-stream/-/iso-random-stream-2.0.0.tgz#3f0118166d5443148bbc134345fb100002ad0f1d" - integrity sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/iso-random-stream/-/iso-random-stream-2.0.2.tgz#a24f77c34cfdad9d398707d522a6a0cc640ff27d" + integrity sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ== dependencies: events "^3.3.0" readable-stream "^3.4.0" -iso-url@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.1.5.tgz#875a0f2bf33fa1fc200f8d89e3f49eee57a8f0d9" - integrity sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ== - iso-url@^1.1.2, iso-url@^1.1.3, 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== -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== - isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -isomorphic-ws@4.0.1, isomorphic-ws@^4.0.1: +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== @@ -11738,7 +8851,7 @@ isomorphic-ws@4.0.1, isomorphic-ws@^4.0.1: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== isurl@^1.0.0-alpha5: version "1.0.0" @@ -11748,12 +8861,7 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" -it-all@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.5.tgz#e880510d7e73ebb79063a76296a2eb3cb77bbbdb" - integrity sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA== - -it-all@^1.0.5, it-all@^1.0.6: +it-all@^1.0.4, it-all@^1.0.5, it-all@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== @@ -11771,13 +8879,6 @@ it-buffer@^0.1.2, it-buffer@^0.1.3: bl "^5.0.0" buffer "^6.0.3" -it-concat@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/it-concat/-/it-concat-1.0.3.tgz#84db9376e4c77bf7bc1fd933bb90f184e7cef32b" - integrity sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA== - dependencies: - bl "^4.0.0" - it-concat@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/it-concat/-/it-concat-2.0.0.tgz#b4dc02aeb7365bada05b247c1ee50f3bbc147419" @@ -11785,16 +8886,11 @@ it-concat@^2.0.0: dependencies: bl "^5.0.0" -it-drain@^1.0.1, it-drain@^1.0.4: +it-drain@^1.0.1, it-drain@^1.0.3, 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-drain@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-1.0.4.tgz#15ee0e90fba4b5bc8cff1c61b8c59d4203293baa" - integrity sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ== - it-filter@^1.0.1, it-filter@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-1.0.3.tgz#66ea0cc4bf84af71bebd353c05a9c5735fcba751" @@ -11810,14 +8906,6 @@ it-foreach@^0.1.1: resolved "https://registry.yarnpkg.com/it-foreach/-/it-foreach-0.1.1.tgz#8dce2d16567cfac007977e2daae7699c82c58d70" integrity sha512-ZLxL651N5w5SL/EIIcrXELgYrrkuEKj/TErG93C4lr6lNZziKsf338ljSG85PjQfu7Frg/1wESl5pLrPSFXI9g== -it-glob@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.10.tgz#4defd9286f693847c3ff483d2ff65f22e1359ad8" - integrity sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA== - dependencies: - fs-extra "^9.0.1" - minimatch "^3.0.4" - it-glob@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-1.0.2.tgz#bab9b04d6aaac42884502f3a0bfee84c7a29e15e" @@ -11835,12 +8923,7 @@ it-handshake@^2.0.0: it-reader "^3.0.0" p-defer "^3.0.0" -it-last@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.5.tgz#5c711c7d58948bcbc8e0cb129af3a039ba2a585b" - integrity sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q== - -it-last@^1.0.5: +it-last@^1.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== @@ -11859,12 +8942,7 @@ it-length@^1.0.1, it-length@^1.0.3: resolved "https://registry.yarnpkg.com/it-length/-/it-length-1.0.4.tgz#37aebe0aca444801153325bb673fd5b8e64391d2" integrity sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA== -it-map@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.5.tgz#2f6a9b8f0ba1ed1aeadabf86e00b38c73a1dc299" - integrity sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ== - -it-map@^1.0.5: +it-map@^1.0.4, it-map@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== @@ -11905,11 +8983,6 @@ it-pb-rpc@^0.2.0: it-handshake "^2.0.0" it-length-prefixed "^5.0.3" -it-peekable@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.2.tgz#3b2c7948b765f35b3bb07abbb9b2108c644e73c1" - integrity sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg== - it-peekable@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c" @@ -11927,13 +9000,6 @@ it-pushable@^1.4.0, it-pushable@^1.4.1, it-pushable@^1.4.2: dependencies: fast-fifo "^1.0.0" -it-reader@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-2.1.0.tgz#b1164be343f8538d8775e10fb0339f61ccf71b0f" - integrity sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw== - dependencies: - bl "^4.0.0" - it-reader@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-3.0.0.tgz#56596c7742ec7c63b7f7998f6bfa3f712e333d0e" @@ -11950,20 +9016,8 @@ it-sort@^1.0.0, it-sort@^1.0.1: it-take@^1.0.0, it-take@^1.0.1, it-take@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/it-take/-/it-take-1.0.2.tgz#b5f1570014db7c3454897898b69bb7ac9c3bffc1" - integrity sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw== - -it-tar@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/it-tar/-/it-tar-1.2.2.tgz#8d79863dad27726c781a4bcc491f53c20f2866cf" - integrity sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA== - dependencies: - bl "^4.0.0" - buffer "^5.4.3" - iso-constants "^0.1.2" - it-concat "^1.0.0" - it-reader "^2.0.0" - p-defer "^3.0.0" + resolved "https://registry.yarnpkg.com/it-take/-/it-take-1.0.2.tgz#b5f1570014db7c3454897898b69bb7ac9c3bffc1" + integrity sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw== it-tar@^4.0.0: version "4.0.0" @@ -11984,18 +9038,6 @@ it-to-buffer@^2.0.0: dependencies: uint8arrays "^3.0.0" -it-to-stream@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-0.1.2.tgz#7163151f75b60445e86b8ab1a968666acaacfe7b" - integrity sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ== - dependencies: - buffer "^5.6.0" - 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" - 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" @@ -12018,40 +9060,15 @@ it-ws@^4.0.0: iso-url "^1.1.2" ws "^7.3.1" -iter-tools@^7.0.2: - version "7.1.4" - resolved "https://registry.yarnpkg.com/iter-tools/-/iter-tools-7.1.4.tgz#94160bf2c350494ff393f87b9ac96bf029ee656a" - integrity sha512-4dHXdiinrNbDxN+vWAv16CW99JvT86QdNrKgpYWnzuZBXqNsGMA/VWxbAn8ZOOFCf3/R32krMdyye89/7keRcg== - dependencies: - "@babel/runtime" "^7.12.1" - -iterall@^1.1.3, iterall@^1.2.1, iterall@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - -iterate-iterator@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.2.tgz#551b804c9eaa15b847ea6a7cdc2f5bf1ec150f91" - integrity sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw== - -iterate-value@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" - integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== - dependencies: - es-get-iterator "^1.0.2" - iterate-iterator "^1.0.1" - js-sha3@0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.5.tgz#baf0c0e8c54ad5903447df96ade7a4a1bca79a4a" - integrity sha1-uvDA6MVK1ZA0R9+Wreekobynmko= + integrity sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA== js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= + integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" @@ -12061,7 +9078,7 @@ js-sha3@0.8.0, js-sha3@^0.8.0: js-stringify@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" - integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= + integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -12071,7 +9088,7 @@ js-stringify@^1.0.1: js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== js-yaml@3.13.1: version "3.13.1" @@ -12081,14 +9098,6 @@ js-yaml@3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@3.14.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -12097,76 +9106,52 @@ js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsan@^3.1.13: - version "3.1.13" - resolved "https://registry.yarnpkg.com/jsan/-/jsan-3.1.13.tgz#4de8c7bf8d1cfcd020c313d438f930cec4b91d86" - integrity sha512-9kGpCsGHifmw6oJet+y8HaCl14y7qgAsxVdV3pCHDySNR3BfDC30zgkssd7x5LRVAT22dnpbe9JdzzmXZnq9/g== +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha1-sBMHyym2GKHtJux56RH4A8TaAEA= + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^7.0.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-7.2.2.tgz#40b402770c2bda23469096bee91ab675e3b1fc6e" - integrity sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4= - dependencies: - abab "^1.0.0" - acorn "^2.4.0" - acorn-globals "^1.0.4" - cssom ">= 0.3.0 < 0.4.0" - cssstyle ">= 0.2.29 < 0.3.0" - escodegen "^1.6.1" - nwmatcher ">= 1.3.7 < 2.0.0" - parse5 "^1.5.1" - request "^2.55.0" - sax "^1.1.4" - symbol-tree ">= 3.1.0 < 4.0.0" - tough-cookie "^2.2.0" - webidl-conversions "^2.0.0" - whatwg-url-compat "~0.6.5" - xml-name-validator ">= 2.0.1 < 3.0.0" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== +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-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-pointer@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/json-pointer/-/json-pointer-0.6.1.tgz#3c6caa6ac139e2599f5a1659d39852154015054d" - integrity sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q== +json-pointer@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/json-pointer/-/json-pointer-0.6.2.tgz#f97bd7550be5e9ea901f8c9264c9d436a22a93cd" + integrity sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw== dependencies: foreach "^2.0.4" @@ -12181,7 +9166,7 @@ json-rpc-engine@^5.1.3: 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 sha1-uknZat7RRE27jaPSA3SKy7zeyMg= + integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== json-schema-traverse@^0.4.1: version "0.4.1" @@ -12198,47 +9183,32 @@ json-schema-typed@^7.0.3: resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +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 sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + 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 sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== dependencies: jsonify "~0.0.0" json-stringify-safe@^5.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 sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -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 sha1-py8hfcSvxGKf/1/rME3BvVGi89I= - dependencies: - delimit-stream "0.1.0" - -json-to-ast@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json-to-ast/-/json-to-ast-2.1.0.tgz#041a9fcd03c0845036acb670d29f425cea4faaf9" - integrity sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ== - dependencies: - code-error-fragment "0.0.230" - grapheme-splitter "^1.0.4" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== json5@^1.0.1: version "1.0.1" @@ -12247,32 +9217,17 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsondown@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/jsondown/-/jsondown-1.0.0.tgz#c5cc5cda65f515d2376136a104b5f535534f26e3" - integrity sha512-p6XxPaq59aXwcdDQV3ISMA5xk+1z6fJuctcwwSdR9iQgbYOcIrnknNrhcMGG+0FaUfKHGkdDpQNaZrovfBoyOw== - dependencies: - memdown "1.4.1" - mkdirp "0.5.1" - jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + 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 sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" @@ -12288,43 +9243,38 @@ jsonfile@^6.0.1: jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsonpointer@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc" - integrity sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg== + integrity sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA== jsonschema@^1.2.4: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" - integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" + integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + 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.2.3" + json-schema "0.4.0" verror "1.10.0" jstransformer@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" - integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= + integrity sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A== dependencies: is-promise "^2.0.0" promise "^7.0.1" "jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.2.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" - integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== + 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.3" - object.assign "^4.1.2" + array-includes "^3.1.5" + object.assign "^4.1.3" just-debounce-it@^1.1.0: version "1.5.0" @@ -12348,17 +9298,15 @@ k-bucket@^5.1.0: dependencies: randombytes "^2.1.0" -keccak@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-2.1.0.tgz#734ea53f2edcfd0f42cdb8d5f4c358fef052752b" - integrity sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q== +keccak@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" + integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== dependencies: - bindings "^1.5.0" - inherits "^2.0.4" - nan "^2.14.0" - safe-buffer "^5.2.0" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" -keccak@^3.0.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== @@ -12367,18 +9315,6 @@ keccak@^3.0.0: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keypair@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/keypair/-/keypair-1.0.3.tgz#4314109d94052a0acfd6b885695026ad29529c80" - integrity sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ== - -keypather@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/keypather/-/keypather-1.10.2.tgz#e0449632d4b3e516f21cc014ce7c5644fddce614" - integrity sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ= - dependencies: - "101" "^1.0.0" - keyv@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -12393,17 +9329,24 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" + integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== + dependencies: + json-buffer "3.0.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" @@ -12420,36 +9363,24 @@ kind-of@^6.0.0, kind-of@^6.0.2: klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== optionalDependencies: graceful-fs "^4.1.9" lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - -lazy-debug-legacy@0.0.X: - version "0.0.1" - resolved "https://registry.yarnpkg.com/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz#537716c0776e4cf79e3ed1b621f7658c2911b1b1" - integrity sha1-U3cWwHduTPeePtG2IfdljCkRsbE= + integrity sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ== lazy@~1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/lazy/-/lazy-1.0.11.tgz#daa068206282542c088288e975c297c1ae77b690" - integrity sha1-2qBoIGKCVCwIgojpdcKXwa53tpA= - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= - dependencies: - readable-stream "^2.0.5" + integrity sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA== lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== dependencies: invert-kv "^1.0.0" @@ -12460,19 +9391,6 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" -leb128@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/leb128/-/leb128-0.0.5.tgz#84524a86ef7799fb3933ce41345f6490e27ac948" - integrity sha512-elbNtfmu3GndZbesVF6+iQAfVjOXW9bM/aax9WwMlABZW+oK9sbAZEXoewaPHmL34sxa8kVwWsru8cNE/yn2gg== - dependencies: - bn.js "^5.0.0" - buffer-pipe "0.0.3" - -level-codec@9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.1.tgz#042f4aa85e56d4328ace368c950811ba802b7247" - integrity sha512-ajFP0kJ+nyq4i6kptSM+mAvJKLOg1X5FiFPtLG9M5gCEZyBmgDi3FkDrvlMkEzrUn1cWxtvVmrvoS4ASyO/q+Q== - level-codec@9.0.2, level-codec@^9.0.0: version "9.0.2" resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" @@ -12541,7 +9459,7 @@ level-iterator-stream@^5.0.0: level-iterator-stream@~1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - integrity sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0= + integrity sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw== dependencies: inherits "^2.0.1" level-errors "^1.0.3" @@ -12566,16 +9484,15 @@ level-iterator-stream@~4.0.0: readable-stream "^3.4.0" xtend "^4.0.2" -level-js@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/level-js/-/level-js-4.0.2.tgz#fa51527fa38b87c4d111b0d0334de47fcda38f21" - integrity sha512-PeGjZsyMG4O89KHiez1zoMJxStnkM+oBIqgACjoo5PJqFiSUUm3GNod/KcbqN5ktyZa8jkG7I1T0P2u6HN9lIg== +level-js@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/level-js/-/level-js-5.0.2.tgz#5e280b8f93abd9ef3a305b13faf0b5397c969b55" + integrity sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg== dependencies: - abstract-leveldown "~6.0.1" - immediate "~3.2.3" + abstract-leveldown "~6.2.3" + buffer "^5.5.0" inherits "^2.0.3" ltgt "^2.1.2" - typedarray-to-buffer "~3.1.5" level-js@^6.1.0: version "6.1.0" @@ -12596,15 +9513,7 @@ level-mem@^3.0.1: level-packager "~4.0.0" memdown "~3.0.0" -level-mem@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-5.0.1.tgz#c345126b74f5b8aa376dc77d36813a177ef8251d" - integrity sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg== - dependencies: - level-packager "^5.0.3" - memdown "^5.0.0" - -level-packager@^5.0.0, level-packager@^5.0.3: +level-packager@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== @@ -12633,6 +9542,11 @@ level-supports@^2.0.1: resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f" integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA== +level-supports@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== + level-supports@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" @@ -12640,17 +9554,25 @@ level-supports@~1.0.0: dependencies: xtend "^4.0.2" +level-transcoder@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== + dependencies: + buffer "^6.0.3" + module-error "^1.0.1" + level-write-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/level-write-stream/-/level-write-stream-1.0.0.tgz#3f7fbb679a55137c0feb303dee766e12ee13c1dc" - integrity sha1-P3+7Z5pVE3wP6zA97nZuEu4Twdw= + integrity sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw== dependencies: end-stream "~0.1.0" level-ws@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos= + integrity sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw== dependencies: readable-stream "~1.0.15" xtend "~2.1.1" @@ -12664,24 +9586,14 @@ level-ws@^1.0.0: readable-stream "^2.2.8" xtend "^4.0.1" -level-ws@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-2.0.0.tgz#207a07bcd0164a0ec5d62c304b4615c54436d339" - integrity sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA== - dependencies: - inherits "^2.0.3" - readable-stream "^3.1.0" - xtend "^4.0.1" - -level@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/level/-/level-5.0.1.tgz#8528cc1ee37ac413270129a1eab938c610be3ccb" - integrity sha512-wcak5OQeA4rURGacqS62R/xNHjCYnJSQDBOlm4KNUGJVE9bWv2B04TclqReYejN+oD65PzD4FsqeWoI5wNC5Lg== +level@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/level/-/level-6.0.1.tgz#dc34c5edb81846a6de5079eac15706334b0d7cd6" + integrity sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw== dependencies: - level-js "^4.0.0" - level-packager "^5.0.0" - leveldown "^5.0.0" - opencollective-postinstall "^2.0.0" + level-js "^5.0.0" + level-packager "^5.1.0" + leveldown "^5.4.0" level@^7.0.0: version "7.0.1" @@ -12692,17 +9604,15 @@ level@^7.0.0: level-packager "^6.0.1" leveldown "^6.1.0" -leveldown@5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.0.2.tgz#c8edc2308c8abf893ffc81e66ab6536111cae92c" - integrity sha512-Ib6ygFYBleS8x2gh3C1AkVsdrUShqXpe6jSTnZ6sRycEXKhqVf+xOSkhgSnjidpPzyv0d95LJVFrYQ4NuXAqHA== +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: - abstract-leveldown "~6.0.0" - fast-future "~1.0.2" - napi-macros "~1.8.1" - node-gyp-build "~3.8.0" + browser-level "^1.0.1" + classic-level "^1.2.0" -leveldown@^5.0.0: +leveldown@5.6.0, leveldown@^5.4.0: version "5.6.0" resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== @@ -12711,7 +9621,7 @@ leveldown@^5.0.0: napi-macros "~2.0.0" node-gyp-build "~4.1.0" -leveldown@^6.1.0: +leveldown@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.0.tgz#7ab1297706f70c657d1a72b31b40323aa612b9ee" integrity sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w== @@ -12720,15 +9630,14 @@ leveldown@^6.1.0: napi-macros "~2.0.0" node-gyp-build "^4.3.0" -levelup@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.0.2.tgz#bcb8d28d0a82ee97f1c6d00f20ea6d32c2803c5b" - integrity sha512-cx9PmLENwbGA3svWBEbeO2HazpOSOYSXH4VA+ahVpYyurvD+SDSfURl29VBY2qgyk+Vfy2dJd71SBRckj/EZVA== +leveldown@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.1.tgz#0f0e480fa88fd807abf94c33cb7e40966ea4b5ce" + integrity sha512-88c+E+Eizn4CkQOBHwqlCJaTNEjGpaEIikn1S+cINc5E9HEvJ77bqY4JY/HxT5u0caWqsc3P3DcFIKBI1vHt+A== dependencies: - deferred-leveldown "~5.0.0" - level-errors "~2.0.0" - level-iterator-stream "~4.0.0" - xtend "~4.0.0" + abstract-leveldown "^7.2.0" + napi-macros "~2.0.0" + node-gyp-build "^4.3.0" levelup@4.4.0, levelup@^4.3.2: version "4.4.0" @@ -12776,15 +9685,10 @@ levelup@^5.1.1: level-supports "^2.0.1" queue-microtask "^1.2.3" -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.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -12799,23 +9703,6 @@ libp2p-bootstrap@^0.14.0: multiaddr "^10.0.0" peer-id "^0.16.0" -libp2p-crypto@^0.19.0: - version "0.19.7" - resolved "https://registry.yarnpkg.com/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz#e96a95bd430e672a695209fe0fbd2bcbd348bc35" - integrity sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA== - dependencies: - err-code "^3.0.1" - is-typedarray "^1.0.0" - iso-random-stream "^2.0.0" - keypair "^1.0.1" - multiformats "^9.4.5" - node-forge "^0.10.0" - pem-jwk "^2.0.0" - protobufjs "^6.11.2" - secp256k1 "^4.0.0" - uint8arrays "^3.0.0" - ursa-optional "^0.10.1" - libp2p-crypto@^0.21.0, libp2p-crypto@^0.21.1, libp2p-crypto@^0.21.2: version "0.21.2" resolved "https://registry.yarnpkg.com/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz#7f9875436f24ca3887b077210b217b702bd72916" @@ -12863,7 +9750,7 @@ libp2p-floodsub@^0.29.0: time-cache "^0.3.0" uint8arrays "^3.0.0" -libp2p-gossipsub@^0.13.0: +libp2p-gossipsub@0.13.0: version "0.13.0" resolved "https://registry.yarnpkg.com/libp2p-gossipsub/-/libp2p-gossipsub-0.13.0.tgz#a70db85139c62d7a8ad273be3ba01d1c9f338f7b" integrity sha512-xy2jRZGmJpjy++Di6f1admtjve8Fx0z5l8NISTQS282egwbRMmTPE6/UeYktb6hNGAgtSTIwXdHjXmMOiTarFA== @@ -13105,53 +9992,49 @@ libp2p@^0.36.2: wherearewe "^1.0.0" xsalsa20 "^1.1.0" -lilconfig@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" - integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== - -linked-list@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/linked-list/-/linked-list-0.1.0.tgz#798b0ff97d1b92a4fd08480f55aea4e9d49d37bf" - integrity sha1-eYsP+X0bkqT9CEgPVa6k6dSdN78= +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== lint-staged@^12.3.4: - version "12.3.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.3.4.tgz#4b1ff8c394c3e6da436aaec5afd4db18b5dac360" - integrity sha512-yv/iK4WwZ7/v0GtVkNb3R82pdL9M+ScpIbJLJNyCXkJ1FGaXvRCOg/SeL59SZtPpqZhE7BD6kPKFLIDUhDx2/w== + version "12.5.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.5.0.tgz#d6925747480ae0e380d13988522f9dd8ef9126e3" + integrity sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g== dependencies: cli-truncate "^3.1.0" colorette "^2.0.16" - commander "^8.3.0" - debug "^4.3.3" + commander "^9.3.0" + debug "^4.3.4" execa "^5.1.1" - lilconfig "2.0.4" - listr2 "^4.0.1" - micromatch "^4.0.4" + lilconfig "2.0.5" + listr2 "^4.0.5" + micromatch "^4.0.5" normalize-path "^3.0.0" - object-inspect "^1.12.0" + object-inspect "^1.12.2" + pidtree "^0.5.0" string-argv "^0.3.1" - supports-color "^9.2.1" + supports-color "^9.2.2" yaml "^1.10.2" -listr2@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.4.tgz#d098a1c419284fb26e184b5d5889b235e8912245" - integrity sha512-vJOm5KD6uZXjSsrwajr+mNacIjf87gWvlBEltPWLbTkslUscWAzquyK4xfe9Zd4RDgO5nnwFyV06FC+uVR+5mg== +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== dependencies: cli-truncate "^2.1.0" colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.4" + rxjs "^7.5.5" through "^2.3.8" wrap-ansi "^7.0.0" -load-json-file@^1.0.0, load-json-file@^1.1.0: +load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -13159,34 +10042,10 @@ load-json-file@^1.0.0, load-json-file@^1.1.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -13218,146 +10077,52 @@ lodash-es@^4.2.1: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - lodash.assign@^4.0.3, lodash.assign@^4.0.6: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= - -lodash.assignin@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= - -lodash.assigninwith@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assigninwith/-/lodash.assigninwith-4.2.0.tgz#af02c98432ac86d93da695b4be801401971736af" - integrity sha1-rwLJhDKshtk9ppW0voAUAZcXNq8= - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.escaperegexp@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.findindex@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" - integrity sha1-oyRd7mH7m24GJLU1ElYku2nBEQY= + integrity sha512-9er6Ccz6sEST3bHFtUrCFWk14nE8cdL/RoW1RRDV1BxqN3qsmsT56L14jhfctAqhVPVcdJw4MRxEaVoAK+JVvw== lodash.flatmap@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" - integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= + integrity sha512-/OcpcAGWlrZyoHGeHh3cAoa6nGdX6QYtmzNP84Jqol6UEQQ2gIaU3H+0eICcjcKGl0/XF8LWOujNn9lffsnaOg== lodash.flatten@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== -lodash.isequal@^4.0.0, lodash.isequal@^4.5.0: +lodash.isequal@^4.0.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - -lodash.keys@^4.0.0, lodash.keys@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" - integrity sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU= + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== lodash.merge@^4.6.0, 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.omit@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" - integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= - -lodash.partition@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.partition/-/lodash.partition-4.6.0.tgz#a38e46b73469e0420b0da1212e66d414be364ba4" - integrity sha1-o45GtzRp4EILDaEhLmbUFL42S6Q= - -lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.rest@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" - integrity sha1-lU73UEkmIDjJbR/Jiyj9r58Hcqo= - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.sum@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/lodash.sum/-/lodash.sum-4.0.2.tgz#ad90e397965d803d4f1ff7aa5b2d0197f3b4637b" - integrity sha1-rZDjl5ZdgD1PH/eqWy0Bl/O0Y3s= - -lodash.template@4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.2.4.tgz#d053c19e8e74e38d965bf4fb495d80f109e7f7a4" - integrity sha1-0FPBno50442WW/T7SV2A8Qnn96Q= - dependencies: - lodash._reinterpolate "~3.0.0" - lodash.assigninwith "^4.0.0" - lodash.keys "^4.0.0" - lodash.rest "^4.0.0" - lodash.templatesettings "^4.0.0" - lodash.tostring "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - -lodash.tostring@^4.0.0: - version "4.1.4" - resolved "https://registry.yarnpkg.com/lodash.tostring/-/lodash.tostring-4.1.4.tgz#560c27d1f8eadde03c2cce198fef5c031d8298fb" - integrity sha1-Vgwn0fjq3eA8LM4Zj+9cAx2CmPs= + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== -lodash.without@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" - integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= - -lodash.xor@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6" - integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY= - -lodash.zipwith@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.zipwith/-/lodash.zipwith-4.2.0.tgz#afacf03fd2f384af29e263c3c6bda3b80e3f51fd" - integrity sha1-r6zwP9LzhK8p4mPDxr2juA4/Uf0= - -lodash@4.17.21, lodash@^4.0.0, lodash@^4.1.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, 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.2.1: +lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.2.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -13369,19 +10134,13 @@ log-symbols@3.0.0: dependencies: chalk "^2.4.2" -log-symbols@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== +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 "^2.0.1" + chalk "^4.1.0" + is-unicode-supported "^0.1.0" log-update@^4.0.0: version "4.0.0" @@ -13393,10 +10152,10 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -loglevel@^1.6.6, loglevel@^1.6.7, loglevel@^1.6.8, loglevel@^1.7.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== +loglevel@^1.6.8: + version "1.8.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" + integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== long@^4.0.0: version "4.0.0" @@ -13406,7 +10165,7 @@ long@^4.0.0: longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + integrity sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" @@ -13415,29 +10174,29 @@ 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: + version "2.3.4" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" + integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== + dependencies: + get-func-name "^2.0.0" + lower-case-first@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" - integrity sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E= + integrity sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA== dependencies: lower-case "^1.1.2" lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -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" + integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== lowercase-keys@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= + integrity sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A== lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" @@ -13449,13 +10208,10 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" +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" @@ -13471,15 +10227,25 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.10.1: + version "7.14.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.0.tgz#21be64954a4680e303a09e9468f880b98a0b3c7f" + integrity sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ== + lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0= + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== ltgt@2.2.1, ltgt@^2.1.2, ltgt@~2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= + integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== + +luxon@^1.23.x: + version "1.28.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf" + integrity sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ== mafmt@^10.0.0: version "10.0.0" @@ -13513,17 +10279,12 @@ map-age-cleaner@^0.1.1: map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-stream@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.6.tgz#d2ef4eb811a28644c7a8989985c69c2fdd496827" - integrity sha1-0u9OuBGihkTHqJiZhcacL91JaCc= + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" @@ -13532,20 +10293,10 @@ markdown-table@^1.1.3: resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== -marked@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" - integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== - -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== - math@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/math/-/math-0.0.3.tgz#85b020fd54ce10b26abeabfcd7e1f4bdbc46470f" - integrity sha1-hbAg/VTOELJqvqv81+H0vbxGRw8= + integrity sha512-xyNJxsEwpYBabFmCgwg7TFRljf5oGgV2h1TqP0H9RnykScaSKgoVlBaEz+Gov8NOdxFagoTzRg1aEBfayi8qQQ== mcl-wasm@^0.7.1: version "0.7.9" @@ -13564,14 +10315,7 @@ md5.js@^1.3.4: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= - dependencies: - mimic-fn "^1.0.0" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== mem@^4.0.0: version "4.3.0" @@ -13585,7 +10329,7 @@ mem@^4.0.0: memdown@1.4.1, memdown@^1.0.0: version "1.4.1" resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - integrity sha1-tOThkhdGZP+65BNhqlAPMRnv4hU= + integrity sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w== dependencies: abstract-leveldown "~2.7.1" functional-red-black-tree "^1.0.1" @@ -13594,18 +10338,6 @@ memdown@1.4.1, memdown@^1.0.0: ltgt "~2.2.0" safe-buffer "~5.1.1" -memdown@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-5.1.0.tgz#608e91a9f10f37f5b5fe767667a8674129a833cb" - integrity sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw== - dependencies: - abstract-leveldown "~6.2.1" - functional-red-black-tree "~1.0.1" - immediate "~3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.2.0" - memdown@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/memdown/-/memdown-3.0.0.tgz#93aca055d743b20efc37492e9e399784f2958309" @@ -13618,30 +10350,24 @@ memdown@~3.0.0: ltgt "~2.2.0" safe-buffer "~5.1.1" -memory-fs@^0.4.0, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= +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: - errno "^0.1.3" - readable-stream "^2.0.1" + 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 sha1-htcJCzDORV1j+64S3aUaR93K+bI= + 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 sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-options@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-2.0.0.tgz#36ca5038badfc3974dbde5e58ba89d3df80882c3" - integrity sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ== - dependencies: - is-plain-obj "^2.0.0" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-options@^3.0.4: version "3.0.4" @@ -13650,13 +10376,6 @@ merge-options@^3.0.4: dependencies: is-plain-obj "^2.1.0" -merge-stream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -13694,47 +10413,10 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: rlp "^2.0.0" semaphore ">=1.0.1" -merkle-patricia-tree@^4.2.0, merkle-patricia-tree@^4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.2.tgz#6dec17855370172458244c2f42c989dd60b773a3" - integrity sha512-eqZYNTshcYx9aESkSPr71EqwsR/QmpnObDEV4iLxkt/x/IoLYZYjJvKY72voP/27Vy61iMOrfOG6jrn7ttXD+Q== - dependencies: - "@types/levelup" "^4.3.0" - ethereumjs-util "^7.1.2" - level-mem "^5.0.1" - level-ws "^2.0.0" - readable-stream "^3.6.0" - rlp "^2.2.4" - semaphore-async-await "^1.5.1" - -meros@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/meros/-/meros-1.1.4.tgz#c17994d3133db8b23807f62bec7f0cb276cfd948" - integrity sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ== - methods@^1.1.1, methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^2.3.7: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -13755,13 +10437,13 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== +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.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" miller-rabin@^4.0.0: version "4.0.1" @@ -13771,29 +10453,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.50.0, mime-db@^1.28.0: - version "1.50.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" - integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== - -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.0" +mime-db@1.52.0, mime-db@^1.28.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.16, mime-types@~2.1.24: - version "2.1.33" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" - integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== +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.50.0" + mime-db "1.52.0" mime@1.6.0: version "1.6.0" @@ -13820,18 +10490,18 @@ mimic-response@^1.0.0, mimic-response@^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 sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== dependencies: dom-walk "^0.1.0" -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -13840,29 +10510,45 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 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 sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@*, "minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4: +"minimatch@2 || 3", 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@3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" +minimatch@4.2.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@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" + minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + integrity sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q== -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" @@ -13890,7 +10576,7 @@ mixin-deep@^1.2.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 sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== dependencies: mkdirp "*" @@ -13902,54 +10588,88 @@ mkdirp@*, mkdirp@^1.0.4: mkdirp@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + integrity sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA== dependencies: minimist "0.0.8" -mkdirp@0.5.5, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0: +mkdirp@0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" +mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5: + 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.4" - resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.4.tgz#5d2f2dc4386aef78bfadeea60ce704dcf0ef8f3d" - integrity sha512-mflgW0gEWmVLbDDE2gJbOh3+RltTN7CgV9jV25qyCnyLN9FtoltWr7ZtAEDeD9u8W4oFAoolR6fBWieXdn3u8Q== + version "0.38.5" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" + integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== dependencies: - obliterator "^1.6.1" + obliterator "^2.0.0" -mocha@8.1.2: - version "8.1.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.1.2.tgz#d67fad13300e4f5cd48135a935ea566f96caf827" - integrity sha512-I8FRAcuACNMLQn3lS4qeWLxXqLvGf6r2CaLstDpZmMUUSmvW6Cnm1AuHxgbc7ctZVRcfwspCRbDHymPsi3dkJw== +mocha@9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" + integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== dependencies: + "@ungap/promise-all-settled" "1.1.2" ansi-colors "4.1.1" browser-stdout "1.3.1" - chokidar "3.4.2" - debug "4.1.1" - diff "4.0.2" + chokidar "3.5.3" + debug "4.3.3" + diff "5.0.0" escape-string-regexp "4.0.0" find-up "5.0.0" - glob "7.1.6" + glob "7.2.0" growl "1.10.5" he "1.2.0" - js-yaml "3.14.0" - log-symbols "4.0.0" - minimatch "3.0.4" - ms "2.1.2" - object.assign "4.1.0" - promise.allsettled "1.0.2" - serialize-javascript "4.0.0" - strip-json-comments "3.0.1" - supports-color "7.1.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "4.2.1" + ms "2.1.3" + nanoid "3.3.1" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" which "2.0.2" - wide-align "1.1.3" - workerpool "6.0.0" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.1" + workerpool "6.2.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +mocha@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.0.0.tgz#205447d8993ec755335c4b13deba3d3a13c4def9" + integrity sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" mocha@^7.1.1, mocha@^7.1.2: version "7.2.0" @@ -13986,30 +10706,15 @@ mock-fs@^4.1.0: resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== -module@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/module/-/module-1.2.5.tgz#b503eb06cdc13473f56818426974cde7ec59bf15" - integrity sha1-tQPrBs3BNHP1aBhCaXTN5+xZvxU= - dependencies: - chalk "1.1.3" - concat-stream "1.5.1" - lodash.template "4.2.4" - map-stream "0.0.6" - tildify "1.2.0" - vinyl-fs "2.4.3" - yargs "4.6.0" - -moment-timezone@^0.5.x: - version "0.5.33" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz#b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c" - integrity sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w== - dependencies: - moment ">= 2.9.0" +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== -"moment@>= 2.9.0", moment@^2.19, moment@^2.27.0: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== +moment@^2.19, moment@^2.27.0: + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== mortice@^2.0.0, mortice@^2.0.1: version "2.0.1" @@ -14024,7 +10729,7 @@ mortice@^2.0.0, mortice@^2.0.1: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.1: version "2.1.1" @@ -14036,18 +10741,11 @@ 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.1: +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@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz#8f08a75c6eeb2370d5d24b77b8413e3f0fa9bcc0" - integrity sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A== - dependencies: - multiaddr "^8.0.0" - 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" @@ -14067,20 +10765,6 @@ multiaddr@^10.0.0, multiaddr@^10.0.1: uint8arrays "^3.0.0" varint "^6.0.0" -multiaddr@^8.0.0, multiaddr@^8.1.2: - version "8.1.2" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-8.1.2.tgz#74060ff8636ba1c01b2cf0ffd53950b852fa9b1f" - integrity sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ== - dependencies: - cids "^1.0.0" - class-is "^1.1.0" - dns-over-http-resolver "^1.0.0" - err-code "^2.0.3" - is-ip "^3.1.0" - multibase "^3.0.0" - uint8arrays "^1.1.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" @@ -14089,21 +10773,6 @@ multibase@^0.7.0: base-x "^3.0.8" buffer "^5.5.0" -multibase@^3.0.0, multibase@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-3.1.2.tgz#59314e1e2c35d018db38e4c20bb79026827f0f2f" - integrity sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw== - dependencies: - "@multiformats/base-x" "^4.0.1" - web-encoding "^1.0.6" - -multibase@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-4.0.6.tgz#6e624341483d6123ca1ede956208cb821b440559" - integrity sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ== - dependencies: - "@multiformats/base-x" "^4.0.1" - multibase@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" @@ -14113,9 +10782,9 @@ multibase@~0.6.0: buffer "^5.5.0" multicast-dns@^7.2.0: - version "7.2.4" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.4.tgz#cf0b115c31e922aeb20b64e6556cbeb34cf0dd19" - integrity sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw== + 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" @@ -14135,40 +10804,10 @@ multicodec@^1.0.0: buffer "^5.6.0" varint "^5.0.0" -multicodec@^2.0.0, multicodec@^2.0.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-2.1.3.tgz#b9850635ad4e2a285a933151b55b4a2294152a5d" - integrity sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA== - dependencies: - uint8arrays "1.1.0" - varint "^6.0.0" - -multicodec@^3.0.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-3.2.1.tgz#82de3254a0fb163a107c1aab324f2a91ef51efb2" - integrity sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw== - dependencies: - uint8arrays "^3.0.0" - varint "^6.0.0" - -multiformats@^9.0.0, multiformats@^9.0.2, multiformats@^9.0.4, multiformats@^9.1.0, multiformats@^9.1.2, multiformats@^9.4.7, multiformats@^9.5.1, multiformats@^9.5.4: - version "9.6.4" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.6.4.tgz#5dce1f11a407dbb69aa612cb7e5076069bb759ca" - integrity sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg== - -multiformats@^9.4.2, multiformats@^9.4.5: - version "9.4.8" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.4.8.tgz#46f74ec116f7871f2a334cc6d4ad3d810dbac341" - integrity sha512-EOJL02/kv+FD5hoItMhKgkYUUruJYMYFq4NQ6YkCh3jVQ5CuHo+OKdHeR50hAxEQmXQ9yvrM9BxLIk42xtfwnQ== - -multihashes@3.1.2, multihashes@^3.0.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-3.1.2.tgz#ffa5e50497aceb7911f7b4a3b6cada9b9730edfc" - integrity sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ== - dependencies: - multibase "^3.1.0" - uint8arrays "^2.0.5" - varint "^6.0.0" +multiformats@^9.0.0, multiformats@^9.0.2, multiformats@^9.0.4, multiformats@^9.1.0, multiformats@^9.1.2, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.4.7, multiformats@^9.5.1, multiformats@^9.5.4: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== multihashes@^0.4.15, multihashes@~0.4.15: version "0.4.21" @@ -14179,27 +10818,6 @@ multihashes@^0.4.15, multihashes@~0.4.15: multibase "^0.7.0" varint "^5.0.0" -multihashes@^4.0.1, multihashes@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.3.tgz#426610539cd2551edbf533adeac4c06b3b90fb05" - integrity sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA== - dependencies: - multibase "^4.0.1" - uint8arrays "^3.0.0" - varint "^5.0.2" - -multihashing-async@^2.0.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-2.1.4.tgz#26dce2ec7a40f0e7f9e732fc23ca5f564d693843" - integrity sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg== - dependencies: - blakejs "^1.1.0" - err-code "^3.0.0" - js-sha3 "^0.8.0" - multihashes "^4.0.1" - murmurhash3js-revisited "^3.0.0" - uint8arrays "^3.0.0" - multistream-select@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/multistream-select/-/multistream-select-3.0.2.tgz#18919b3c74c8eac6ae9b1ba9b8ac5af79cfab3e8" @@ -14230,42 +10848,42 @@ mutable-proxy@^1.0.0: mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.12.1, nan@^2.13.2, nan@^2.14.0, nan@^2.14.2: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== +nan@^2.12.1, nan@^2.14.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== nano-base32@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nano-base32/-/nano-base32-1.0.1.tgz#ba548c879efcfb90da1c4d9e097db4a46c9255ef" - integrity sha1-ulSMh578+5DaHE2eCX20pGySVe8= + integrity sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw== nano-json-stream-parser@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" - integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= - -nanoid@^2.0.0: - version "2.1.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" - integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== + integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== -nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23: +nanoid@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== -nanoid@^3.1.12, nanoid@^3.1.3: - version "3.1.29" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.29.tgz#214fb2d7a33e1a5bef4757b779dfaeb6a4e5aeb4" - integrity sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg== +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== nanomatch@^1.2.9: version "1.2.13" @@ -14284,11 +10902,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -napi-macros@~1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-1.8.2.tgz#299265c1d8aa401351ad0675107d751228c03eda" - integrity sha512-Tr0DNY4RzTaBG2W2m3l7ZtFuJChTH6VZhXVhkGGjF/4cZTt+i8GcM9ozD+30Lmr4mDoZ5Xx34t2o4GJqYWDGcg== - napi-macros@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" @@ -14306,25 +10919,6 @@ nat-api@^0.3.1: unordered-array-remove "^1.0.2" xml2js "^0.1.0" -native-abort-controller@0.0.3, native-abort-controller@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-0.0.3.tgz#4c528a6c9c7d3eafefdc2c196ac9deb1a5edf2f8" - integrity sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA== - dependencies: - globalthis "^1.0.1" - -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@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-2.0.1.tgz#319d53741a7040def92d5dc8ea5fe9416b1fad89" - integrity sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ== - dependencies: - globalthis "^1.0.1" - native-fetch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" @@ -14333,7 +10927,7 @@ native-fetch@^3.0.0: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== needle@^2.1.0, needle@^2.2.1: version "2.9.1" @@ -14344,32 +10938,25 @@ needle@^2.1.0, needle@^2.2.1: iconv-lite "^0.4.4" sax "^1.2.4" -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +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.5.0, neo-async@^2.6.0: +neo-async@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -neodoc@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/neodoc/-/neodoc-2.0.2.tgz#ad00b30b9758379dcd3cf752a0659bacbab2c4fb" - integrity sha512-NAppJ0YecKWdhSXFYCHbo6RutiX8vOt/Jo3l46mUg6pQlpJNaqc5cGxdrW2jITQm5JIYySbFVPDl3RrREXNyPw== - dependencies: - ansi-regex "^2.0.0" - netmask@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== nice-try@^1.0.4: version "1.0.5" @@ -14383,13 +10970,10 @@ no-case@^2.2.0, no-case@^2.3.2: dependencies: lower-case "^1.1.1" -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-abort-controller@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e" + integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw== node-addon-api@^2.0.0: version "2.0.2" @@ -14411,25 +10995,10 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-fetch@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.4.1.tgz#b2e38f1117b8acbedbe0524f041fb3177188255d" - integrity sha512-P9UbpFK87NyqBZzUuDBDz4f6Yiys8xm8j7ACDbi6usvFm6KItklQUKjeoqTrYS/S1k6I8oaOC2YLLDr/gg26Mw== - -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.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-fetch@^2.6.0, node-fetch@^2.6.1: - version "2.6.5" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" - integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== +node-fetch@2.6.7, node-fetch@^2.6.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" @@ -14445,36 +11014,26 @@ node-fetch@~1.7.1: encoding "^0.1.11" is-stream "^1.0.1" -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-forge@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c" - integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w== + 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.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== +node-gyp-build@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" + integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== -node-gyp-build@~3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.8.0.tgz#0f57efeb1971f404dfcbfab975c284de7c70f14a" - integrity sha512-bYbpIHyRqZ7sVWXxGpz8QIRug5JZc/hzZH4GbdT9HTZi6WmKCZ8GLvP8OZ9TTiIBvwPFKgtGrlWQSXDAvYdsPw== +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-gyp-build@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - node-interval-tree@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/node-interval-tree/-/node-interval-tree-1.3.3.tgz#15ffb904cde08270214acace8dc7653e89ae32b7" @@ -14482,35 +11041,6 @@ node-interval-tree@^1.3.3: dependencies: shallowequal "^1.0.2" -node-libs-browser@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-pre-gyp@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" @@ -14527,10 +11057,10 @@ node-pre-gyp@^0.11.0: semver "^5.3.0" tar "^4" -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== +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== nofilter@^1.0.4: version "1.0.4" @@ -14545,12 +11075,12 @@ nofilter@^3.1.0: noop-fn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/noop-fn/-/noop-fn-1.0.0.tgz#5f33d47f13d2150df93e0cb036699e982f78ffbf" - integrity sha1-XzPUfxPSFQ35PgywNmmemC94/78= + integrity sha512-pQ8vODlgXt2e7A3mIbFDlizkr46r75V+BJxVAyat8Jl7YmI513gG5cfyRL0FedKraoZ+VAouI1h4/IWpus5pcQ== nopt@3.x: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== dependencies: abbrev "1" @@ -14572,10 +11102,10 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== dependencies: remove-trailing-separator "^1.0.1" @@ -14598,6 +11128,11 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + npm-bundled@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" @@ -14630,7 +11165,7 @@ npm-packlist@^1.1.6: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== dependencies: path-key "^2.0.0" @@ -14654,83 +11189,56 @@ npmlog@^4.0.2: nssocket@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/nssocket/-/nssocket-0.6.0.tgz#59f96f6ff321566f33c70f7dbeeecdfdc07154fa" - integrity sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo= + integrity sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w== dependencies: eventemitter2 "~0.4.14" lazy "~1.0.11" -nth-check@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== +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" -nth-check@~1.0.1: - 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" - -nullthrows@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== number-to-bn@1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== dependencies: bn.js "4.11.6" strip-hex-prefix "1.0.0" -"nwmatcher@>= 1.3.7 < 2.0.0": - version "1.4.4" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" - integrity sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ== - 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.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A= - -object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, 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 sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== - -object-inspect@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== +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.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.11, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -14738,17 +11246,12 @@ object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - -object-path@^0.11.4: - version "0.11.8" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" - integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== + integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" @@ -14762,14 +11265,14 @@ object.assign@4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +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.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + 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: @@ -14791,34 +11294,27 @@ object.fromentries@^2.0.5: es-abstract "^1.19.1" object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== + 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.3" - es-abstract "^1.19.1" - -object.hasown@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" - integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.1" -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= +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: - for-own "^0.1.4" - is-extendable "^0.1.1" + define-properties "^1.1.4" + es-abstract "^1.19.5" object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" @@ -14831,22 +11327,22 @@ object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" -obliterator@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-1.6.1.tgz#dea03e8ab821f6c4d96a299e17aef6a3af994ef3" - integrity sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig== +obliterator@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== oboe@2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" - integrity sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY= + integrity sha512-ymBJ4xSC6GBXLT9Y7lirj+xbqBLa+jADGJldGEYG7u8sZbS9GyG+u1Xk9c5cbriKwSpCg41qUhPjvU5xOpvIyQ== dependencies: http-https "^1.0.0" oboe@2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" - integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== dependencies: http-https "^1.0.0" @@ -14855,24 +11351,24 @@ observable-webworkers@^1.0.0: resolved "https://registry.yarnpkg.com/observable-webworkers/-/observable-webworkers-1.0.0.tgz#dcbd484a9644d512accc351962c6e710313fbb68" integrity sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +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.x, 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 sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== dependencies: mimic-fn "^1.0.0" @@ -14883,24 +11379,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -opencollective-postinstall@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -openzeppelin-solidity@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-2.4.0.tgz#5f0a7b30571c45493449166e57b947203415349d" - integrity sha512-533gc5jkspxW5YT0qJo02Za5q1LHwXK9CJCc48jNj/22ncNM/3M/3JfWLqfpB90uqLwOKOovpl0JfaMQTR+gXQ== - -optimism@^0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.1.tgz#7c8efc1f3179f18307b887e18c15c5b7133f6e7d" - integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg== - dependencies: - "@wry/context" "^0.6.0" - "@wry/trie" "^0.3.0" - optionator@^0.8.1, optionator@^0.8.2: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -14913,56 +11391,22 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" word-wrap "~1.2.3" -ora@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== - dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" - -ordered-read-streams@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" - integrity sha1-cTfmmzKYuzQiR6G77jiByA4v14s= - dependencies: - is-stream "^1.0.1" - readable-stream "^2.0.1" - original-require@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/original-require/-/original-require-1.0.1.tgz#0f130471584cd33511c5ec38c8d59213f9ac5e20" - integrity sha1-DxMEcVhM0zURxew4yNWSE/msXiA= - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + integrity sha512-5vdKMbE58WaE61uVD+PKyh8xdM398UnjPBLotW2sjG5MzHARwta/+NtMBCBA0t2WQblGYBvq5vsiZpWokwno+A== os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== os-locale@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== + integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== dependencies: - execa "^0.7.0" lcid "^1.0.0" - mem "^1.1.0" os-locale@^3.1.0: version "3.1.0" @@ -14976,7 +11420,7 @@ os-locale@^3.1.0: os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== osenv@^0.1.4: version "0.1.5" @@ -15014,10 +11458,15 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== p-defer@^3.0.0: version "3.0.0" @@ -15042,25 +11491,18 @@ p-fifo@^1.0.0: p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-is-promise@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + integrity sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg== p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== -p-limit@3.1.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-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -15075,10 +11517,17 @@ p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: 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@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" @@ -15124,11 +11573,11 @@ p-reflect@^2.1.0: integrity sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg== p-retry@^4.4.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" - integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== + 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" + "@types/retry" "0.12.0" retry "^0.13.1" p-settle@^4.1.1: @@ -15150,7 +11599,7 @@ p-some@^5.0.0: p-timeout@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + integrity sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA== dependencies: p-finally "^1.0.0" @@ -15176,14 +11625,14 @@ p-timeout@^4.1.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 sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + 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== -pako@^1.0.2, pako@^1.0.4, pako@~1.0.5: +pako@^1.0.2, pako@^1.0.4: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== @@ -15191,17 +11640,10 @@ pako@^1.0.2, pako@^1.0.4, pako@~1.0.5: param-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== dependencies: no-case "^2.2.0" -paramap-it@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/paramap-it/-/paramap-it-0.1.1.tgz#dad5963c003315c0993b84402a9c08f8c36e80d9" - integrity sha512-3uZmCAN3xCw7Am/4ikGzjjR59aNMJVXGSU7CjG2Z6DfOAdhnLdCOd0S0m1sTkN4ov9QhlE3/jkzyu953hq0uwQ== - dependencies: - event-iterator "^1.0.0" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -15223,88 +11665,49 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: 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 sha1-juqz5U+laSD+Fro493+iGqzC104= - -parse-duration@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-0.4.4.tgz#11c0f51a689e97d06c57bd772f7fda7dc013243c" - integrity sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg== + integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== 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-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - parse-headers@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" - integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== + version "2.0.5" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parse5-htmlparser2-tree-adapter@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== dependencies: - parse5 "^6.0.1" + domhandler "^5.0.2" + parse5 "^7.0.0" -parse5@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" - integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ= - -parse5@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" - integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== +parse5@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" + integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== dependencies: - "@types/node" "*" - -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseqs@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" - integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== + entities "^4.4.0" -parseuri@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" - integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== - -parseurl@^1.3.2, parseurl@~1.3.3: +parseurl@^1.3.3, 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== @@ -15312,52 +11715,39 @@ parseurl@^1.3.2, parseurl@~1.3.3: pascal-case@^2.0.0, pascal-case@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" - integrity sha1-LVeNNFX2YNpl7KGO+VtODekSdh4= + integrity sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ== dependencies: camel-case "^3.0.0" upper-case-first "^1.1.0" -pascal-case@^3.1.1, pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" - integrity sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU= + integrity sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q== dependencies: no-case "^2.2.0" path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -15367,24 +11757,24 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.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== @@ -15392,24 +11782,17 @@ path-parse@^1.0.6: 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 sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== dependencies: graceful-fs "^4.1.2" pify "^2.0.0" pinkie-promise "^2.0.0" -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -15420,7 +11803,7 @@ pathval@^1.1.1: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== -pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: +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== @@ -15431,19 +11814,6 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: safe-buffer "^5.0.1" sha.js "^2.4.8" -peer-id@^0.14.1: - version "0.14.8" - resolved "https://registry.yarnpkg.com/peer-id/-/peer-id-0.14.8.tgz#667c6bedc8ab313c81376f6aca0baa2140266fab" - integrity sha512-GpuLpob/9FrEFvyZrKKsISEkaBYsON2u0WtiawLHj1ii6ewkoeRiSDFLyIefYhw0jGvQoeoZS05jaT52X7Bvig== - dependencies: - cids "^1.1.5" - class-is "^1.1.0" - libp2p-crypto "^0.19.0" - minimist "^1.2.5" - multihashes "^4.0.2" - protobufjs "^6.10.2" - uint8arrays "^2.0.5" - peer-id@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/peer-id/-/peer-id-0.16.0.tgz#0913062cfa4378707fe69c949b5720b3efadbf32" @@ -15455,32 +11825,30 @@ peer-id@^0.16.0: protobufjs "^6.10.2" uint8arrays "^3.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" - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + 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: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +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== + +pidtree@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" + integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== pidusage@^1.2.0: version "1.2.0" @@ -15490,12 +11858,12 @@ pidusage@^1.2.0: pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + 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 sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" @@ -15505,31 +11873,14 @@ pify@^4.0.1: pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-conf@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-1.1.3.tgz#378e56d6fd13e88bfb6f4a25df7a83faabddba5b" - integrity sha1-N45W1v0T6Iv7b0ol33qD+qvduls= - dependencies: - find-up "^1.0.0" - load-json-file "^1.1.0" - object-assign "^4.0.1" - symbol "^0.2.1" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pkg-up@^3.1.0: version "3.1.0" @@ -15571,7 +11922,7 @@ pm2-deploy@^0.3.9: pm2-multimeter@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz#1a1e55153d41a05534cea23cfe860abaa0eb4ace" - integrity sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4= + integrity sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA== dependencies: charm "~0.1.1" @@ -15625,50 +11976,50 @@ pmx@^1.6: posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -pouchdb-abstract-mapreduce@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.2.2.tgz#dd1b10a83f8d24361dce9aaaab054614b39f766f" - integrity sha512-7HWN/2yV2JkwMnGnlp84lGvFtnm0Q55NiBUdbBcaT810+clCGKvhssBCrXnmwShD1SXTwT83aszsgiSfW+SnBA== - dependencies: - pouchdb-binary-utils "7.2.2" - pouchdb-collate "7.2.2" - pouchdb-collections "7.2.2" - pouchdb-errors "7.2.2" - pouchdb-fetch "7.2.2" - pouchdb-mapreduce-utils "7.2.2" - pouchdb-md5 "7.2.2" - pouchdb-utils "7.2.2" - -pouchdb-adapter-leveldb-core@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.2.2.tgz#e0aa6a476e2607d7ae89f4a803c9fba6e6d05a8a" - integrity sha512-K9UGf1Ivwe87mjrMqN+1D07tO/DfU7ariVDrGffuOjvl+3BcvUF25IWrxsBObd4iPOYCH7NVQWRpojhBgxULtQ== + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +pouchdb-abstract-mapreduce@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.0.tgz#cc178cb5d07f73b7c3f0f47a7f963defd4872b1c" + integrity sha512-+2fVt3SDh7D776lIGbYZOsKX5js1aUyUw7iJaTGitxSdQ2ObWSTrr3SUrj5Qo1CkgPXwRM3Tdoq/53JYAa2qCA== + dependencies: + pouchdb-binary-utils "7.3.0" + pouchdb-collate "7.3.0" + pouchdb-collections "7.3.0" + pouchdb-errors "7.3.0" + pouchdb-fetch "7.3.0" + pouchdb-mapreduce-utils "7.3.0" + pouchdb-md5 "7.3.0" + pouchdb-utils "7.3.0" + +pouchdb-adapter-leveldb-core@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.0.tgz#91fa1fbc35e744252ae73f9e88911883c1841c9a" + integrity sha512-OyUsEae1JlqR2jSGMohP03gj6VANh9fDR/3nPIa1vYyoQWlwQzOS7knKqDaJm7Nui3JC5q/lWos7/FGZBFuF5Q== dependencies: argsarray "0.0.1" - buffer-from "1.1.1" + buffer-from "1.1.2" double-ended-queue "2.1.0-0" levelup "4.4.0" - pouchdb-adapter-utils "7.2.2" - pouchdb-binary-utils "7.2.2" - pouchdb-collections "7.2.2" - pouchdb-errors "7.2.2" - pouchdb-json "7.2.2" - pouchdb-md5 "7.2.2" - pouchdb-merge "7.2.2" - pouchdb-utils "7.2.2" - sublevel-pouchdb "7.2.2" + pouchdb-adapter-utils "7.3.0" + pouchdb-binary-utils "7.3.0" + pouchdb-collections "7.3.0" + pouchdb-errors "7.3.0" + pouchdb-json "7.3.0" + pouchdb-md5 "7.3.0" + pouchdb-merge "7.3.0" + pouchdb-utils "7.3.0" + sublevel-pouchdb "7.3.0" through2 "3.0.2" pouchdb-adapter-memory@^7.1.1: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.2.2.tgz#c0ec2e87928d516ca9d1b5badc7269df6f95e5ea" - integrity sha512-9o+zdItPEq7rIrxdkUxgsLNaZkDJAGEqqoYgeYdrHidOCZnlhxhX3g7/R/HcpDKC513iEPqJWDJQSfeT6nVKkw== + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.0.tgz#ddd5b9ab9d30209d066374648abc761c68444db3" + integrity sha512-nUdYi5KpbUa0uv0L3IJorpiUnIOBPxX9qplCX9i7JE8OtLPeLyKuX3WC+3M1//8Lmmxg3b1wXSNIod6FJy4wAQ== dependencies: memdown "1.4.1" - pouchdb-adapter-leveldb-core "7.2.2" - pouchdb-utils "7.2.2" + pouchdb-adapter-leveldb-core "7.3.0" + pouchdb-utils "7.3.0" pouchdb-adapter-node-websql@^7.0.0: version "7.0.0" @@ -15691,17 +12042,17 @@ pouchdb-adapter-utils@7.0.0: pouchdb-merge "7.0.0" pouchdb-utils "7.0.0" -pouchdb-adapter-utils@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.2.2.tgz#c64426447d9044ba31517a18500d6d2d28abd47d" - integrity sha512-2CzZkTyTyHZkr3ePiWFMTiD5+56lnembMjaTl8ohwegM0+hYhRyJux0biAZafVxgIL4gnCUC4w2xf6WVztzKdg== +pouchdb-adapter-utils@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.0.tgz#1747e4ea0b519a9d817c6eda0e2f0ebc3dc18c41" + integrity sha512-mU1+smcagWSpInVx/VQk7VVjjnJlyagKtusUS3OdCMFZY35L6RbXC8eIhoNVDbkBfEv3cIwqQ3t7fdvkaa1odQ== dependencies: - pouchdb-binary-utils "7.2.2" - pouchdb-collections "7.2.2" - pouchdb-errors "7.2.2" - pouchdb-md5 "7.2.2" - pouchdb-merge "7.2.2" - pouchdb-utils "7.2.2" + pouchdb-binary-utils "7.3.0" + pouchdb-collections "7.3.0" + pouchdb-errors "7.3.0" + pouchdb-md5 "7.3.0" + pouchdb-merge "7.3.0" + pouchdb-utils "7.3.0" pouchdb-adapter-websql-core@7.0.0: version "7.0.0" @@ -15723,27 +12074,27 @@ pouchdb-binary-utils@7.0.0: dependencies: buffer-from "1.1.0" -pouchdb-binary-utils@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-binary-utils/-/pouchdb-binary-utils-7.2.2.tgz#0690b348052c543b1e67f032f47092ca82bcb10e" - integrity sha512-shacxlmyHbUrNfE6FGYpfyAJx7Q0m91lDdEAaPoKZM3SzAmbtB1i+OaDNtYFztXjJl16yeudkDb3xOeokVL3Qw== +pouchdb-binary-utils@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.0.tgz#ecc235d28e7f226c168affcf53959675f78d5aaf" + integrity sha512-xvBH/XGHGcou2vkEzszJxkCc7YElfRUrkLUg51Jbdmh1mogLDUO0bU3Tj6TOIIJfRkQrU/HV+dDkMAhsil0amQ== dependencies: - buffer-from "1.1.1" + buffer-from "1.1.2" -pouchdb-collate@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-collate/-/pouchdb-collate-7.2.2.tgz#fc261f5ef837c437e3445fb0abc3f125d982c37c" - integrity sha512-/SMY9GGasslknivWlCVwXMRMnQ8myKHs4WryQ5535nq1Wj/ehpqWloMwxEQGvZE1Sda3LOm7/5HwLTcB8Our+w== +pouchdb-collate@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-collate/-/pouchdb-collate-7.3.0.tgz#9276de7459a21a6aded71e3090d9b5d5488be19f" + integrity sha512-ys7rXKtEr6cfghgUjknwFJiOkITebV6JmeTybJKCzMV0r2luXu0OoPQsKVpE/wbM/3F5LxfpbFKGFpPcfGMvTA== pouchdb-collections@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pouchdb-collections/-/pouchdb-collections-7.0.0.tgz#fd1f632337dc6301b0ff8649732ca79204e41780" integrity sha512-DaoUr/vU24Q3gM6ghj0va9j/oBanPwkbhkvnqSyC3Dm5dgf5pculNxueLF9PKMo3ycApoWzHMh6N2N8KJbDU2Q== -pouchdb-collections@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-collections/-/pouchdb-collections-7.2.2.tgz#aeed77f33322429e3f59d59ea233b48ff0e68572" - integrity sha512-6O9zyAYlp3UdtfneiMYuOCWdUCQNo2bgdjvNsMSacQX+3g8WvIoFQCYJjZZCpTttQGb+MHeRMr8m2U95lhJTew== +pouchdb-collections@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-collections/-/pouchdb-collections-7.3.0.tgz#3197dfbee8d69c3760229705fc5a73d0c8a896f1" + integrity sha512-Xr54m2+fErShXn+qAT4xwqJ+8NwddNPeTMJT4z4k1sZsrwfHmZsWbsKAyGPMF04eQaaU+7DDRMciu2VzaBUXyg== pouchdb-debug@^7.1.1: version "7.2.1" @@ -15759,34 +12110,34 @@ pouchdb-errors@7.0.0: dependencies: inherits "2.0.3" -pouchdb-errors@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-errors/-/pouchdb-errors-7.2.2.tgz#80d811d65c766c9d20b755c6e6cc123f8c3c4792" - integrity sha512-6GQsiWc+7uPfgEHeavG+7wuzH3JZW29Dnrvz8eVbDFE50kVFxNDVm3EkYHskvo5isG7/IkOx7PV7RPTA3keG3g== +pouchdb-errors@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-errors/-/pouchdb-errors-7.3.0.tgz#23bc328108778be0bfe22d69c0df67eab94aeca5" + integrity sha512-dTBbIC1BbCy6J9W/Csg5xROgb3wJN3HpbgAJHHSEtAkb8oA45KZmU3ZwEpNhf0AfPuQm4XgW1936PvlDlGgJiw== dependencies: inherits "2.0.4" -pouchdb-fetch@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-fetch/-/pouchdb-fetch-7.2.2.tgz#492791236d60c899d7e9973f9aca0d7b9cc02230" - integrity sha512-lUHmaG6U3zjdMkh8Vob9GvEiRGwJfXKE02aZfjiVQgew+9SLkuOxNw3y2q4d1B6mBd273y1k2Lm0IAziRNxQnA== +pouchdb-fetch@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-fetch/-/pouchdb-fetch-7.3.0.tgz#92b5d3b067d79ecbb9a61cbd52dce36e94dbbf28" + integrity sha512-8/lcg8iMDG+GVs1dHNXA4ktJSEpH71dHU3xesMJ25tNQOqfAaaWrkfz9j71ZYDDkveLYE6UjUzl/sDacu2hSjw== dependencies: abort-controller "3.0.0" - fetch-cookie "0.10.1" - node-fetch "2.6.0" + fetch-cookie "0.11.0" + node-fetch "2.6.7" pouchdb-find@^7.0.0: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-find/-/pouchdb-find-7.2.2.tgz#1227afdd761812d508fe0794b3e904518a721089" - integrity sha512-BmFeFVQ0kHmDehvJxNZl9OmIztCjPlZlVSdpijuFbk/Fi1EFPU1BAv3kLC+6DhZuOqU/BCoaUBY9sn66pPY2ag== - dependencies: - pouchdb-abstract-mapreduce "7.2.2" - pouchdb-collate "7.2.2" - pouchdb-errors "7.2.2" - pouchdb-fetch "7.2.2" - pouchdb-md5 "7.2.2" - pouchdb-selector-core "7.2.2" - pouchdb-utils "7.2.2" + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-find/-/pouchdb-find-7.3.0.tgz#27291c3d069f4f1a1a4913f63b1a148dac1b345b" + integrity sha512-EwhnfyxCAkKf8PG4tfndTTygEmtuz+o1LiZkxfPrflfXA3m1jo1ithib0hwBYtEwEYWuZxH6B8pRZutbLoQCGA== + dependencies: + pouchdb-abstract-mapreduce "7.3.0" + pouchdb-collate "7.3.0" + pouchdb-errors "7.3.0" + pouchdb-fetch "7.3.0" + pouchdb-md5 "7.3.0" + pouchdb-selector-core "7.3.0" + pouchdb-utils "7.3.0" pouchdb-json@7.0.0: version "7.0.0" @@ -15795,22 +12146,22 @@ pouchdb-json@7.0.0: dependencies: vuvuzela "1.0.3" -pouchdb-json@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-json/-/pouchdb-json-7.2.2.tgz#b939be24b91a7322e9a24b8880a6e21514ec5e1f" - integrity sha512-3b2S2ynN+aoB7aCNyDZc/4c0IAdx/ir3nsHB+/RrKE9cM3QkQYbnnE3r/RvOD1Xvr6ji/KOCBie+Pz/6sxoaug== +pouchdb-json@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-json/-/pouchdb-json-7.3.0.tgz#94c2d876202c6879cb525db05e7633b926346e5d" + integrity sha512-D4wyi20ltyiFpuziQeMk3CbXs/Q58VoGTYTJQY8MWBw37OidtHGQAt1Kh5yJ435wJqDzJZyxMA5RxGZxEOBDVg== dependencies: vuvuzela "1.0.3" -pouchdb-mapreduce-utils@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.2.2.tgz#13a46a3cc2a3f3b8e24861da26966904f2963146" - integrity sha512-rAllb73hIkU8rU2LJNbzlcj91KuulpwQu804/F6xF3fhZKC/4JQMClahk+N/+VATkpmLxp1zWmvmgdlwVU4HtQ== +pouchdb-mapreduce-utils@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.0.tgz#21d42ea9a376b0fa2e61c8c1ac53f886ffdf3409" + integrity sha512-KDVSd+H2r+XWTrQfKWV71SknDDYRjYXoeWs0ZQl3xITHCcTl+fIgqyagg/XN+Zy/U9LeLPGMe2JdgPx9H8lJgw== dependencies: argsarray "0.0.1" inherits "2.0.4" - pouchdb-collections "7.2.2" - pouchdb-utils "7.2.2" + pouchdb-collections "7.3.0" + pouchdb-utils "7.3.0" pouchdb-md5@7.0.0: version "7.0.0" @@ -15820,31 +12171,31 @@ pouchdb-md5@7.0.0: pouchdb-binary-utils "7.0.0" spark-md5 "3.0.0" -pouchdb-md5@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-md5/-/pouchdb-md5-7.2.2.tgz#415401acc5a844112d765bd1fb4e5d9f38fb0838" - integrity sha512-c/RvLp2oSh8PLAWU5vFBnp6ejJABIdKqboZwRRUrWcfGDf+oyX8RgmJFlYlzMMOh4XQLUT1IoaDV8cwlsuryZw== +pouchdb-md5@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-md5/-/pouchdb-md5-7.3.0.tgz#3a094e45ccce87271530ad3f37d7e82c53562bb0" + integrity sha512-wL04QgoKyd/L/TV5gxgcvlEyCJiZoXCOEFJklTzkdza/kBQNJGPH7i0ZhKa7Sb+AvZYoWZHddf1Zgv7rBScHkA== dependencies: - pouchdb-binary-utils "7.2.2" - spark-md5 "3.0.1" + pouchdb-binary-utils "7.3.0" + spark-md5 "3.0.2" pouchdb-merge@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pouchdb-merge/-/pouchdb-merge-7.0.0.tgz#9f476ce7e32aae56904ad770ae8a1dfe14b57547" integrity sha512-tci5u6NpznQhGcPv4ho1h0miky9rs+ds/T9zQ9meQeDZbUojXNaX1Jxsb0uYEQQ+HMqdcQs3Akdl0/u0mgwPGg== -pouchdb-merge@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-merge/-/pouchdb-merge-7.2.2.tgz#940d85a2b532d6a93a6cab4b250f5648511bcc16" - integrity sha512-6yzKJfjIchBaS7Tusuk8280WJdESzFfQ0sb4jeMUNnrqs4Cx3b0DIEOYTRRD9EJDM+je7D3AZZ4AT0tFw8gb4A== +pouchdb-merge@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-merge/-/pouchdb-merge-7.3.0.tgz#dfde5b54aa6dd203ac62d768fe33e7bdbd56e38e" + integrity sha512-E7LmchMzwYFm6V8OBxejzARLisanpksOju2LEfuiYnotGfNDeW7MByP0qBH0/zF8BfUyyjA1cl7ByaEpsapkeQ== -pouchdb-selector-core@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-selector-core/-/pouchdb-selector-core-7.2.2.tgz#264d7436a8c8ac3801f39960e79875ef7f3879a0" - integrity sha512-XYKCNv9oiNmSXV5+CgR9pkEkTFqxQGWplnVhO3W9P154H08lU0ZoNH02+uf+NjZ2kjse7Q1fxV4r401LEcGMMg== +pouchdb-selector-core@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-selector-core/-/pouchdb-selector-core-7.3.0.tgz#1860afeec069ba4d5b79583b4b520dd2b643e3a3" + integrity sha512-sK/cCrIGeL9ImcMhKGcwa54+bzX7Wv4hhVV+oUW3T1Nasaoxh+Muem1GuA+x1+SbTCE8y37rUg8i6DIOhX51ew== dependencies: - pouchdb-collate "7.2.2" - pouchdb-utils "7.2.2" + pouchdb-collate "7.3.0" + pouchdb-utils "7.3.0" pouchdb-utils@7.0.0: version "7.0.0" @@ -15860,69 +12211,65 @@ pouchdb-utils@7.0.0: pouchdb-md5 "7.0.0" uuid "3.2.1" -pouchdb-utils@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/pouchdb-utils/-/pouchdb-utils-7.2.2.tgz#c17c4788f1d052b0daf4ef8797bbc4aaa3945aa4" - integrity sha512-XmeM5ioB4KCfyB2MGZXu1Bb2xkElNwF1qG+zVFbQsKQij0zvepdOUfGuWvLRHxTOmt4muIuSOmWZObZa3NOgzQ== +pouchdb-utils@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb-utils/-/pouchdb-utils-7.3.0.tgz#782df5ab3309edd5dc8c0f8ae4663bf0e67962e2" + integrity sha512-HH+5IXXWn/ZgVCSnrlydBMYn6MabT7RS7SNoo9w8qVH9efpZSp3eLchw6yMQNLw8LQefWmbbskiHV9VgJmSVWQ== dependencies: argsarray "0.0.1" clone-buffer "1.0.0" immediate "3.3.0" inherits "2.0.4" - pouchdb-collections "7.2.2" - pouchdb-errors "7.2.2" - pouchdb-md5 "7.2.2" - uuid "8.1.0" + pouchdb-collections "7.3.0" + pouchdb-errors "7.3.0" + pouchdb-md5 "7.3.0" + uuid "8.3.2" -pouchdb@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/pouchdb/-/pouchdb-7.1.1.tgz#f5f8dcd1fc440fb76651cb26f6fc5d97a39cd6ce" - integrity sha512-8bXWclixNJZqokvxGHRsG19zehSJiaZaz4dVYlhXhhUctz7gMcNTElHjPBzBdZlKKvt9aFDndmXN1VVE53Co8g== +pouchdb@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/pouchdb/-/pouchdb-7.3.0.tgz#440fbef12dfd8f9002320802528665e883a3b7f8" + integrity sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw== dependencies: + abort-controller "3.0.0" argsarray "0.0.1" - buffer-from "1.1.0" + buffer-from "1.1.2" clone-buffer "1.0.0" double-ended-queue "2.1.0-0" - fetch-cookie "0.7.0" - immediate "3.0.6" - inherits "2.0.3" - level "5.0.1" - level-codec "9.0.1" + fetch-cookie "0.11.0" + immediate "3.3.0" + inherits "2.0.4" + level "6.0.1" + level-codec "9.0.2" level-write-stream "1.0.0" - leveldown "5.0.2" - levelup "4.0.2" + leveldown "5.6.0" + levelup "4.4.0" ltgt "2.2.1" - node-fetch "2.4.1" - readable-stream "1.0.33" - spark-md5 "3.0.0" - through2 "3.0.1" - uuid "3.2.1" + node-fetch "2.6.7" + readable-stream "1.1.14" + spark-md5 "3.0.2" + through2 "3.0.2" + uuid "8.3.2" vuvuzela "1.0.3" precond@0.2: version "0.2.3" resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw= + integrity sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ== prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== prettier-linter-helpers@^1.0.0: version "1.0.0" @@ -15931,27 +12278,15 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier-plugin-solidity@^1.0.0-alpha.59: - version "1.0.0-beta.18" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.18.tgz#9705453bacd55b3242110d472f23f624ae6777fc" - integrity sha512-ezWdsG/jIeClmYBzg8V9Voy8jujt+VxWF8OS3Vld+C3c+3cPVib8D9l8ahTod7O5Df1anK9zo+WiiS5wb1mLmg== - dependencies: - "@solidity-parser/parser" "^0.13.2" - emoji-regex "^9.2.2" - escape-string-regexp "^4.0.0" - semver "^7.3.5" - solidity-comments-extractor "^0.0.7" - string-width "^4.2.2" - prettier-plugin-solidity@^1.0.0-beta.19: - version "1.0.0-beta.19" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.19.tgz#7c3607fc4028f5e6a425259ff03e45eedf733df3" - integrity sha512-xxRQ5ZiiZyUoMFLE9h7HnUDXI/daf1tnmL1msEdcKmyh7ZGQ4YklkYLC71bfBpYU2WruTb5/SFLUaEb3RApg5g== + version "1.0.0-beta.24" + resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.24.tgz#67573ca87098c14f7ccff3639ddd8a4cab2a87eb" + integrity sha512-6JlV5BBTWzmDSq4kZ9PTXc3eLOX7DF5HpbqmmaF+kloyUwOZbJ12hIYsUaZh2fVgZdV2t0vWcvY6qhILhlzgqg== dependencies: - "@solidity-parser/parser" "^0.14.0" - emoji-regex "^10.0.0" + "@solidity-parser/parser" "^0.14.3" + emoji-regex "^10.1.0" escape-string-regexp "^4.0.0" - semver "^7.3.5" + semver "^7.3.7" solidity-comments-extractor "^0.0.7" string-width "^4.2.3" @@ -15960,20 +12295,15 @@ prettier@^1.14.3: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.0.5, prettier@^2.1.2: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" - integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== - -printj@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" - integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== +prettier@^2.0.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== private-ip@^2.1.0, private-ip@^2.1.1, private-ip@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.3.tgz#1e80ff8443e5ac78f555631aec3ea6ff027fa6aa" - integrity sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw== + version "2.3.4" + resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.4.tgz#e2944f2a7a0142ec6640efda323af4b96307524e" + integrity sha512-ts/YFVwfBeLq61f9+KsOhXW6RH0wvY0gU50R6QZYzgFhggyyLK6WDFeYdjfi/HMnBm2hecLvsR3PB3JcRxDk+A== dependencies: ip-regex "^4.3.0" ipaddr.js "^2.0.1" @@ -15985,11 +12315,6 @@ private@^0.1.6, private@^0.1.8: resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= - 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" @@ -15998,7 +12323,7 @@ process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.0: version "2.0.3" @@ -16013,23 +12338,12 @@ promise-timeout@^1.3.0: promise-to-callback@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - integrity sha1-XSp0kBC/tn2WNZj805YHRqaP7vc= + integrity sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA== dependencies: is-fn "^1.0.0" set-immediate-shim "^1.0.1" -promise.allsettled@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9" - integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg== - dependencies: - array.prototype.map "^1.0.1" - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - iterate-value "^1.0.0" - -promise@^7.0.1, promise@^7.1.1: +promise@^7.0.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== @@ -16037,34 +12351,34 @@ promise@^7.0.1, promise@^7.1.1: asap "~2.0.3" promise@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" - integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + 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" promisify@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/promisify/-/promisify-0.0.3.tgz#754db61f29ee6476ab543c45b464d21f5ef55686" - integrity sha1-dU22HynuZHarVDxFtGTSH171VoY= + integrity sha512-CcBGsRhhq466fsZVyHfptuKqon6eih0CqMsJE0kWIIjbpVNEyDoaKLELm2WVs//W/WXRBHip+6xhTExTkHUwtA== dependencies: when "" promptly@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/promptly/-/promptly-2.2.0.tgz#2a13fa063688a2a5983b161fff0108a07d26fc74" - integrity sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ= + integrity sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA== dependencies: read "^1.0.4" -prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== +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.8.1" + react-is "^16.13.1" proper-lockfile@^4.0.0, proper-lockfile@^4.1.1: version "4.1.2" @@ -16078,12 +12392,12 @@ proper-lockfile@^4.0.0, proper-lockfile@^4.1.1: proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== protobufjs@^6.10.2, protobufjs@^6.11.2: - version "6.11.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" - integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== + 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" @@ -16099,22 +12413,7 @@ protobufjs@^6.10.2, protobufjs@^6.11.2: "@types/node" ">=13.7.0" long "^4.0.0" -protocol-buffers-schema@^3.3.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" - integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== - -protons@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/protons/-/protons-2.0.3.tgz#94f45484d04b66dfedc43ad3abff1e8907994bb2" - integrity sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA== - dependencies: - protocol-buffers-schema "^3.3.1" - signed-varint "^2.0.1" - uint8arrays "^3.0.0" - varint "^5.0.0" - -proxy-addr@~2.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== @@ -16125,17 +12424,12 @@ proxy-addr@~2.0.5: prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + 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" @@ -16262,47 +12556,39 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - punycode@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + 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== -pure-rand@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-5.0.0.tgz#87f5bdabeadbd8904e316913a5c0b8caac517b37" - integrity sha512-lD2/y78q+7HqBx2SaT6OT4UcwtvXNRfEpzYEzl0EQ+9gZq2Qi3fa0HDnYPeqQwhlHJFBUhT7AO3mLU3+8bynHA== +pure-rand@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-5.0.3.tgz#a2f15dfbc3be8433d1d8ed67ee411aa83fb90406" + integrity sha512-9N8x1h8dptBQpHyC7aZMS+iNOAm97WMGY0AFrguU1cpfW3I5jINkWe5BIY5md0ofy+1TCIELsVcm/GJXZSaPbw== -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" qs@^6.4.0, qs@^6.7.0: - version "6.10.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" - integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + 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.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + 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" @@ -16313,26 +12599,21 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystring@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== +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.1.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== + rabin-wasm@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.1.5.tgz#5b625ca007d6a2cbc1456c78ae71d550addbc9c9" @@ -16345,15 +12626,6 @@ rabin-wasm@^0.1.4: node-fetch "^2.6.1" readable-stream "^3.6.0" -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.3, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -16372,30 +12644,20 @@ randomfill@^1.0.3: randomhex@0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= + integrity sha512-2+Kkw7UiZGQWOz7rw8hPW44utkBYMEciQfziaZ71RcyDu+refQWzS/0DgfUSa5MwclrOD3sf3vI5vmrTYjwpjQ== 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.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" - integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== +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.0" - http-errors "1.7.3" + bytes "3.1.2" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" @@ -16409,7 +12671,7 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.13.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -16424,75 +12686,38 @@ react-native-fetch-api@^2.0.0: read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== dependencies: find-up "^1.0.0" read-pkg "^1.0.0" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - read@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" -readable-stream@1.0.33: - version "1.0.33" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.33.tgz#3a360dd66c1b1d7fd4705389860eda1d0f61126c" - integrity sha1-OjYN1mwbHX/UcFOJhg7aHQ9hEmw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@1.1: - version "1.1.13" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" - integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@1.1.14, readable-stream@^1.0.33: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@2 || 3", readable-stream@^3.0.6, readable-stream@^3.1.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@^3.0.6, 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== @@ -16501,17 +12726,7 @@ readable-stream@1.1.14, readable-stream@^1.0.33: string_decoder "^1.1.1" util-deprecate "^1.0.1" -"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6: 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== @@ -16527,19 +12742,17 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable readable-stream@~0.0.2: version "0.0.4" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-0.0.4.tgz#f32d76e3fb863344a548d79923007173665b3b8d" - integrity sha1-8y124/uGM0SlSNeZIwBxc2ZbO40= + integrity sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw== -readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= +readable-stream@~1.0.15: + 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 "~1.0.0" - process-nextick-args "~1.0.6" + isarray "0.0.1" string_decoder "~0.10.x" - util-deprecate "~1.0.1" readdirp@^2.2.1: version "2.2.1" @@ -16557,13 +12770,6 @@ readdirp@~3.2.0: dependencies: picomatch "^2.0.4" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -16581,7 +12787,7 @@ receptacle@^1.3.2: rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" @@ -16592,25 +12798,6 @@ recursive-readdir@^2.2.2: dependencies: minimatch "3.0.4" -redux-devtools-core@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/redux-devtools-core/-/redux-devtools-core-0.2.1.tgz#4e43cbe590a1f18c13ee165d2d42e0bc77a164d8" - integrity sha512-RAGOxtUFdr/1USAvxrWd+Gq/Euzgw7quCZlO5TgFpDfG7rB5tMhZUrNyBjpzgzL2yMk0eHnPYIGm7NkIfRzHxQ== - dependencies: - get-params "^0.1.2" - jsan "^3.1.13" - lodash "^4.17.11" - nanoid "^2.0.0" - remotedev-serialize "^0.1.8" - -redux-devtools-instrument@^1.9.4: - version "1.10.0" - resolved "https://registry.yarnpkg.com/redux-devtools-instrument/-/redux-devtools-instrument-1.10.0.tgz#036caf79fa1e5f25ec4bae38a9af4f08c69e323a" - integrity sha512-X8JRBCzX2ADSMp+iiV7YQ8uoTNyEm0VPFPd4T854coz6lvRiBrFSqAr9YAS2n8Kzxx8CJQotR0QF9wsMM+3DvA== - dependencies: - lodash "^4.17.19" - symbol-observable "^1.2.0" - redux-saga@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.0.0.tgz#acb8b3ed9180fecbe75f342011d75af3ac11045b" @@ -16629,9 +12816,9 @@ redux@^3.7.2: symbol-observable "^1.0.3" redux@^4.0.4: - version "4.1.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.1.tgz#76f1c439bb42043f985fbd9bf21990e60bd67f47" - integrity sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13" + integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA== dependencies: "@babel/runtime" "^7.9.2" @@ -16643,7 +12830,7 @@ regenerate@^1.2.1: regenerator-runtime@^0.10.5: version "0.10.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + integrity sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w== regenerator-runtime@^0.11.0: version "0.11.1" @@ -16664,13 +12851,6 @@ regenerator-transform@^0.10.0: babel-types "^6.19.0" private "^0.1.6" -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== - dependencies: - is-equal-shallow "^0.1.3" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -16679,13 +12859,14 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== +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@^2.0.1: version "2.0.1" @@ -16695,7 +12876,7 @@ regexpp@^2.0.1: regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= + integrity sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" @@ -16704,70 +12885,19 @@ regexpu-core@^2.0.0: regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + integrity sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + integrity sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== dependencies: jsesc "~0.5.0" -relay-compiler@11.0.2: - version "11.0.2" - resolved "https://registry.yarnpkg.com/relay-compiler/-/relay-compiler-11.0.2.tgz#e1e09a1c881d169a7a524ead728ad6a89c7bd4af" - integrity sha512-nDVAURT1YncxSiDOKa39OiERkAr0DUcPmlHlg+C8zD+EiDo2Sgczf2R6cDsN4UcDvucYtkLlDLFErPwgLs8WzA== - dependencies: - "@babel/core" "^7.0.0" - "@babel/generator" "^7.5.0" - "@babel/parser" "^7.0.0" - "@babel/runtime" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - babel-preset-fbjs "^3.3.0" - chalk "^4.0.0" - fb-watchman "^2.0.0" - fbjs "^3.0.0" - glob "^7.1.1" - immutable "~3.7.6" - invariant "^2.2.4" - nullthrows "^1.1.1" - relay-runtime "11.0.2" - signedsource "^1.0.0" - yargs "^15.3.1" - -relay-runtime@11.0.2: - version "11.0.2" - resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-11.0.2.tgz#c3650477d45665b9628b852b35f203e361ad55e8" - integrity sha512-xxZkIRnL8kNE1cxmwDXX8P+wSeWLR+0ACFyAiAhvfWWAyjXb+bhjJ2FSsRGlNYfkqaTNEuDqpnodQV1/fF7Idw== - dependencies: - "@babel/runtime" "^7.0.0" - fbjs "^3.0.0" - invariant "^2.2.4" - -remote-redux-devtools@^0.5.12: - version "0.5.16" - resolved "https://registry.yarnpkg.com/remote-redux-devtools/-/remote-redux-devtools-0.5.16.tgz#95b1a4a1988147ca04f3368f3573b661748b3717" - integrity sha512-xZ2D1VRIWzat5nsvcraT6fKEX9Cfi+HbQBCwzNnUAM8Uicm/anOc60XGalcaDPrVmLug7nhDl2nimEa3bL3K9w== - dependencies: - jsan "^3.1.13" - querystring "^0.2.0" - redux-devtools-core "^0.2.1" - redux-devtools-instrument "^1.9.4" - rn-host-detect "^1.1.5" - socketcluster-client "^14.2.1" - -remotedev-serialize@^0.1.8: - version "0.1.9" - resolved "https://registry.yarnpkg.com/remotedev-serialize/-/remotedev-serialize-0.1.9.tgz#5e67e05cbca75d408d769d057dc59d0f56cd2c43" - integrity sha512-5tFdZg9mSaAWTv6xmQ7HtHjKMLSFQFExEZOtJe10PLsv1wb7cy7kYHtBvTYRro27/3fRGEcQBRNKSaixOpb69w== - dependencies: - jsan "^3.1.13" - 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 sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== repeat-element@^1.1.2: version "1.1.4" @@ -16777,31 +12907,26 @@ repeat-element@^1.1.2: repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== dependencies: is-finite "^1.0.0" -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= - req-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-2.0.0.tgz#d4082b4d44598036640fb73ddea01ed53db49ebc" - integrity sha1-1AgrTURZgDZkD7c93qAe1T20nrw= + integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== dependencies: req-from "^2.0.0" req-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/req-from/-/req-from-2.0.0.tgz#d74188e47f93796f4aa71df6ee35ae689f3e0e70" - integrity sha1-10GI5H+TeW9Kpx327jWuaJ8+DnA= + integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== dependencies: resolve-from "^3.0.0" @@ -16821,7 +12946,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.55.0, request@^2.79.0, request@^2.85.0, request@^2.88.0, request@^2.88.2: +request@^2.79.0, request@^2.85.0, request@^2.88.0, 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== @@ -16850,12 +12975,12 @@ request@^2.55.0, request@^2.79.0, request@^2.85.0, request@^2.88.0, request@^2.8 require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^1.1.0: version "1.2.1" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - integrity sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg= + integrity sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q== require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" @@ -16865,51 +12990,41 @@ require-from-string@^2.0.0, require-from-string@^2.0.2: require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -reselect-tree@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/reselect-tree/-/reselect-tree-1.3.4.tgz#449629728e2dc79bf0602571ec8859ac34737089" - integrity sha512-1OgNq1IStyJFqIqOoD3k3Ge4SsYCMP9W88VQOfvgyLniVKLfvbYO1Vrl92SyEK5021MkoBX6tWb381VxTDyPBQ== +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-tree@^1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/reselect-tree/-/reselect-tree-1.3.7.tgz#c3eca58765d9df96bae0017f6ff3504c304cdea0" + integrity sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg== dependencies: debug "^3.1.0" - esdoc "^1.0.4" - json-pointer "^0.6.0" + json-pointer "^0.6.1" reselect "^4.0.0" - source-map-support "^0.5.3" reselect@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" - integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== - -reset@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/reset/-/reset-0.1.0.tgz#9fc7314171995ae6cb0b7e58b06ce7522af4bafb" - integrity sha1-n8cxQXGZWubLC35YsGznUir0uvs= - -resolve-dir@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" + version "4.1.6" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.6.tgz#19ca2d3d0b35373a74dc1c98692cdaffb6602656" + integrity sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ== -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-alpn@^1.0.0, resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" @@ -16919,12 +13034,12 @@ resolve-from@^4.0.0: resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== resolve@1.17.0: version "1.17.0" @@ -16933,33 +13048,42 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.3: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.3.3: + 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.2.0" - path-parse "^1.0.6" + 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.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + 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.2.0" - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" responselike@1.0.2, responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -16977,11 +13101,6 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -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== - retimer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df" @@ -16995,7 +13114,7 @@ retry@0.13.1, retry@^0.13.1: retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== reusify@^1.0.4: version "1.0.4" @@ -17010,7 +13129,7 @@ rfdc@^1.3.0: right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + integrity sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg== dependencies: align-text "^0.1.1" @@ -17048,24 +13167,6 @@ rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4: dependencies: bn.js "^5.2.0" -rn-host-detect@^1.1.5: - version "1.2.0" - resolved "https://registry.yarnpkg.com/rn-host-detect/-/rn-host-detect-1.2.0.tgz#8b0396fc05631ec60c1cb8789e5070cdb04d0da0" - integrity sha512-btNg5kzHcjZZ7t7mvvV/4wNJ9e3MPgrWivkRgWURzXL0JJ0pwWlU4zrbmdlz3HHzHOxhBhHB4D+/dbMFfu4/4A== - -rpc-websockets@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-5.3.1.tgz#678ca24315e4fe34a5f42ac7c2744764c056eb08" - integrity sha512-rIxEl1BbXRlIA9ON7EmY/2GUM7RLMy8zrUPTiLPFiYnYOz0I3PXfCmDDrge5vt4pW4oIcAXBDvgZuJ1jlY5+VA== - dependencies: - "@babel/runtime" "^7.8.7" - assert-args "^1.2.1" - babel-runtime "^6.26.0" - circular-json "^0.5.9" - eventemitter3 "^3.1.2" - uuid "^3.4.0" - ws "^5.2.2" - run-async@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -17088,47 +13189,40 @@ run-parallel@^1.1.9: run-with-ganache@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/run-with-ganache/-/run-with-ganache-0.1.1.tgz#55393006db4f18e2dca8084221aa4f8a10bf31fb" - integrity sha1-VTkwBttPGOLcqAhCIapPihC/Mfs= + integrity sha512-C9EFIRNhc8weUxZjuxOTiK3BFD2/6+1gtrjOTBqLJNw0SYeWOmLLR6xeeaM2HJk564hy4B42zoKSHoegU3gtbA== dependencies: colors "^1.1.2" ganache-cli "^6.0.3" -run@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/run/-/run-1.4.0.tgz#e17d9e9043ab2fe17776cb299e1237f38f0b4ffa" - integrity sha1-4X2ekEOrL+F3dsspnhI3848LT/o= - dependencies: - minimatch "*" - rustbn.js@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -rxjs@6, rxjs@^6.4.0: +rxjs@^6.4.0: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -rxjs@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.4.tgz#3d6bd407e6b7ce9a123e76b1e770dc5761aa368d" - integrity sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ== +rxjs@^7.5.5: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== dependencies: tslib "^2.1.0" -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.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-event-emitter@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" @@ -17139,7 +13233,7 @@ safe-event-emitter@^1.0.1: safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" @@ -17155,28 +13249,11 @@ sanitize-filename@^1.6.3: dependencies: truncate-utf8-bytes "^1.0.0" -sax@>=0.1.1, sax@^1.1.4, sax@^1.2.4: +sax@>=0.1.1, 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== -sc-channel@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/sc-channel/-/sc-channel-1.2.0.tgz#d9209f3a91e3fa694c66b011ce55c4ad8c3087d9" - integrity sha512-M3gdq8PlKg0zWJSisWqAsMmTVxYRTpVRqw4CWAdKBgAfVKumFcTjoCV0hYu7lgUXccCtCD8Wk9VkkE+IXCxmZA== - dependencies: - component-emitter "1.2.1" - -sc-errors@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/sc-errors/-/sc-errors-2.0.1.tgz#3af2d934dfd82116279a4b2c1552c1e021ddcb03" - integrity sha512-JoVhq3Ud+3Ujv2SIG7W0XtjRHsrNgl6iXuHHsh0s+Kdt5NwI6N2EGAZD4iteitdDv68ENBkpjtSvN597/wxPSQ== - -sc-formatter@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/sc-formatter/-/sc-formatter-3.0.2.tgz#9abdb14e71873ce7157714d3002477bbdb33c4e6" - integrity sha512-9PbqYBpCq+OoEeRQ3QfFIGE6qwjjBcd2j7UjgDlhnZbtSnuGgHdcRklPKYGuYFH82V/dwd+AIpu8XvA1zqTd+A== - sc-istanbul@^0.4.5: version "0.4.6" resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" @@ -17197,15 +13274,10 @@ sc-istanbul@^0.4.5: which "^1.1.1" wordwrap "^1.0.0" -scrypt-async@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/scrypt-async/-/scrypt-async-2.0.1.tgz#4318dae48a8b7cc3b8fe05f75f4164a7d973d25d" - integrity sha512-wHR032jldwZNy7Tzrfu7RccOgGf8r5hyDMSP2uV6DpLiBUsR8JsDcx/in73o2UGVVrH5ivRFdNsFPcjtl3LErQ== - scrypt-js@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.3.tgz#bb0040be03043da9a012a2cea9fc9f852cfc87d4" - integrity sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q= + integrity sha512-d8DzQxNivoNDogyYmb/9RD5mEQE/Q7vG2dLDUgvfPmKL9xCVzgqUntOdS0me9Cq9Sh9VxIZuoNEFcsfyXRnyUw== scrypt-js@2.0.4: version "2.0.4" @@ -17222,21 +13294,7 @@ scryptsy@2.1.0: resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== -secp256k1@^3.0.1: - 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.0, secp256k1@^4.0.1: +secp256k1@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== @@ -17245,10 +13303,14 @@ secp256k1@^4.0.0, secp256k1@^4.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -seedrandom@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" - integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== +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" seek-bzip@^1.0.5: version "1.0.6" @@ -17257,11 +13319,6 @@ seek-bzip@^1.0.5: dependencies: commander "^2.8.1" -semaphore-async-await@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz#857bef5e3644601ca4b9570b87e9df5ca12974fa" - integrity sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo= - semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" @@ -17275,78 +13332,73 @@ semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: semver@5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + integrity sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw== semver@6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" integrity sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@7.3.7, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^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.4, 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@~5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== +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 "~1.1.2" - destroy "~1.0.4" + 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 "~1.7.2" + http-errors "2.0.0" mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" + ms "2.1.3" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" sentence-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" - integrity sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ= + integrity sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ== dependencies: no-case "^2.2.0" upper-case-first "^1.1.2" -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== +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.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== +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.17.1" + send "0.18.0" servify@^0.1.12: version "0.1.12" @@ -17362,7 +13414,7 @@ servify@^0.1.12: set-blocking@^2.0.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 sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-delayed-interval@^1.0.0: version "1.0.0" @@ -17372,7 +13424,7 @@ set-delayed-interval@^1.0.0: set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" @@ -17387,17 +13439,12 @@ set-value@^2.0.0, set-value@^2.0.1: setimmediate@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= + integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" @@ -17415,7 +13462,7 @@ sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: sha1@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" - integrity sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg= + integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== dependencies: charenc ">= 0.0.1" crypt ">= 0.0.1" @@ -17435,7 +13482,7 @@ shallowequal@^1.0.2: shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" @@ -17449,7 +13496,7 @@ shebang-command@^2.0.0: shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shebang-regex@^3.0.0: version "3.0.0" @@ -17459,16 +13506,16 @@ shebang-regex@^3.0.0: shelljs@0.7.8: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" - integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM= + integrity sha512-/YF5Uk8hcwi7ima04ppkbA4RaRMdPMBfwAvAf8sufYOxsJRtbdoBsT8vGvlb+799BrlGdYrd+oczIA2eN2JdWA== dependencies: glob "^7.0.0" interpret "^1.0.0" rechoir "^0.6.2" shelljs@^0.8.3: - version "0.8.4" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -17488,37 +13535,20 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== - -signal-exit@^3.0.3: +signal-exit@^3.0.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== -signed-varint@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" - integrity sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk= - dependencies: - varint "~5.0.0" - -signedsource@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" - integrity sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo= - 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.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== + 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" @@ -17527,7 +13557,7 @@ simple-get@^2.7.0: slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== slash@^2.0.0: version "2.0.0" @@ -17577,7 +13607,7 @@ slice-ansi@^5.0.0: snake-case@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" - integrity sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8= + integrity sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q== dependencies: no-case "^2.2.0" @@ -17612,41 +13642,23 @@ snapdragon@^0.8.1: use "^3.1.0" socket.io-client@^4.1.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.4.1.tgz#b6aa9448149d09b8d0b2bbf3d2fac310631fdec9" - integrity sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ== + version "4.5.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.2.tgz#9481518c560388c980c88b01e3cf62f367f04c96" + integrity sha512-naqYfFu7CLDiQ1B7AlLhRXKX3gdeaIMfgigwavDzgJoIUYulc1qHH5+2XflTsXTPY7BlPH5rppJyUjhjrKQKLg== dependencies: - "@socket.io/component-emitter" "~3.0.0" - backo2 "~1.0.2" + "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" - engine.io-client "~6.1.1" - parseuri "0.0.6" - socket.io-parser "~4.1.1" + engine.io-client "~6.2.1" + socket.io-parser "~4.2.0" -socket.io-parser@~4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.1.2.tgz#0a97d4fb8e67022158a568450a6e41887e42035e" - integrity sha512-j3kk71QLJuyQ/hh5F/L2t1goqzdTL0gvDzuhTuNSwihfuFUrcSji0qFZmJJPtG6Rmug153eOPsUizeirf1IIog== +socket.io-parser@~4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" + integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== dependencies: - "@socket.io/component-emitter" "~3.0.0" + "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -socketcluster-client@^14.2.1: - version "14.3.2" - resolved "https://registry.yarnpkg.com/socketcluster-client/-/socketcluster-client-14.3.2.tgz#c0d245233b114a4972857dc81049c710b7691fb7" - integrity sha512-xDtgW7Ss0ARlfhx53bJ5GY5THDdEOeJnT+/C9Rmrj/vnZr54xeiQfrCZJbcglwe732nK3V+uZq87IvrRl7Hn4g== - dependencies: - buffer "^5.2.1" - clone "2.1.1" - component-emitter "1.2.1" - linked-list "0.1.0" - querystring "0.2.0" - sc-channel "^1.2.0" - sc-errors "^2.0.1" - sc-formatter "^3.0.1" - uuid "3.2.1" - ws "^7.5.0" - solc@0.6.8: version "0.6.8" resolved "https://registry.yarnpkg.com/solc/-/solc-0.6.8.tgz#accf03634554938e166ba9b9853d17ca5c728131" @@ -17695,11 +13707,11 @@ solhint-plugin-prettier@^0.0.5: prettier-linter-helpers "^1.0.0" solhint@^3.3.5: - version "3.3.6" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.3.6.tgz#abe9af185a9a7defefba480047b3e42cbe9a1210" - integrity sha512-HWUxTAv2h7hx3s3hAab3ifnlwb02ZWhwFU/wSudUHqteMS3ll9c+m1FlGn9V8ztE2rf3Z82fQZA005Wv7KpcFA== + version "3.3.7" + resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.3.7.tgz#b5da4fedf7a0fee954cb613b6c55a5a2b0063aa7" + integrity sha512-NjjjVmXI3ehKkb3aNtRJWw55SUVJ8HMKKodwe0HnejA+k0d2kmhw7jvpa+MCTbcEgt8IWSwx0Hu6aCo/iYOZzQ== dependencies: - "@solidity-parser/parser" "^0.13.2" + "@solidity-parser/parser" "^0.14.1" ajv "^6.6.1" antlr4 "4.7.1" ast-parents "0.0.1" @@ -17717,9 +13729,9 @@ solhint@^3.3.5: prettier "^1.14.3" solidity-ast@^0.4.15: - version "0.4.28" - resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.28.tgz#5589998512b9a3602e6ba612cbe7fed7401294f4" - integrity sha512-RtZCP5tSvZMadVtg9/IfLmAMKDOnQEvG2HA6VnPuoTMxqxsbbn4lQy8jgH3RVbqW0eO1hd7cSCKecb72/OeOIw== + version "0.4.35" + resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.35.tgz#82e064b14dc989338123264bde2235cad751f128" + integrity sha512-F5bTDLh3rmDxRmLSrs3qt3nvxJprWSEkS7h2KmuXDx7XTfJ6ZKVTV1rtPIYCqJAuPsU/qa8YUeFn7jdOAZcTPA== solidity-comments-extractor@^0.0.7: version "0.0.7" @@ -17727,17 +13739,16 @@ solidity-comments-extractor@^0.0.7: integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== solidity-coverage@^0.7.16: - version "0.7.17" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.17.tgz#5139de8f6666d4755d88f453d8e35632a7bb3444" - integrity sha512-Erw2hd2xdACAvDX8jUdYkmgJlIIazGznwDJA5dhRaw4def2SisXN9jUjneeyOZnl/E7j6D3XJYug4Zg9iwodsg== + version "0.7.22" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.22.tgz#168f414be4c0f5303addcf3ab9714cf64f72c080" + integrity sha512-I6Zd5tsFY+gmj1FDIp6w7OrUePx6ZpMgKQZg7dWgPaQHePLi3Jk+iJ8lwZxsWEoNy2Lcv91rMxATWHqRaFdQpw== dependencies: - "@solidity-parser/parser" "^0.13.2" + "@solidity-parser/parser" "^0.14.0" "@truffle/provider" "^0.2.24" chalk "^2.4.2" death "^1.1.0" detect-port "^1.3.0" fs-extra "^8.1.0" - ganache-cli "^6.12.2" ghost-testrpc "^0.0.2" global-modules "^2.0.0" globby "^10.0.1" @@ -17754,21 +13765,21 @@ solidity-coverage@^0.7.16: sort-keys-length@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= + integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== dependencies: sort-keys "^1.0.0" sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== dependencies: is-plain-obj "^1.0.0" sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== dependencies: is-plain-obj "^1.0.0" @@ -17779,12 +13790,7 @@ sort-keys@^4.2.0: dependencies: is-plain-obj "^2.0.0" -source-list-map@^2.0.0: - 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-resolve@^0.5.0, source-map-resolve@^0.5.2: +source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -17810,10 +13816,10 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5, source-map-support@^0.5.13, source-map-support@^0.5.19, source-map-support@^0.5.3: - version "0.5.20" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== +source-map-support@^0.5, source-map-support@^0.5.13, source-map-support@^0.5.19: + 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" @@ -17823,12 +13829,12 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: +source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -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, 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== @@ -17836,19 +13842,19 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: source-map@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - integrity sha1-2rc/vPwrqBm03gO9b26qSBZLP50= + integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== dependencies: amdefine ">=0.0.4" spark-md5@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.0.tgz#3722227c54e2faf24b1dc6d933cc144e6f71bfef" - integrity sha1-NyIifFTi+vJLHcbZM8wUTm9xv+8= + integrity sha512-BpPFB0Oh83mi+6DRcFwxPx96f3OL8Tkq3hdvaHuXaQUsy5F3saI3zIPNQ/UsTQgyAXIHnML1waeCe1WoCPXbpQ== -spark-md5@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.1.tgz#83a0e255734f2ab4e5c466e5a2cfc9ba2aa2124d" - integrity sha512-0tF3AGSD1ppQeuffsLDIOWlKUd3lS92tFxcsrh5Pe3ZphhnoK+oXIBTzOAThZCiuINZLvpiLH/1VS1/ANEJVig== +spark-md5@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" + integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== sparse-array@^1.3.1: version "1.3.2" @@ -17877,18 +13883,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -spinnies@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/spinnies/-/spinnies-0.5.1.tgz#6ac88455d9117c7712d52898a02c969811819a7e" - integrity sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A== - dependencies: - chalk "^2.4.2" - cli-cursor "^3.0.0" - strip-ansi "^5.2.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== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -17900,7 +13897,7 @@ split-string@^3.0.1, split-string@^3.0.2: sprintf-js@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" - integrity sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw= + integrity sha512-h/U+VScR2Ft+aXDjGTLtguUEIrYuOjTj79BAOElUvdahYMaaa7SNLjJpOIn+Uzt0hsgHfYvlbcno3e9yXOSo8Q== sprintf-js@1.1.2: version "1.1.2" @@ -17910,7 +13907,7 @@ sprintf-js@1.1.2: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sqlite3@^4.0.0: version "4.2.0" @@ -17921,9 +13918,9 @@ sqlite3@^4.0.0: node-pre-gyp "^0.11.0" sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + 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" @@ -17935,11 +13932,6 @@ sshpk@^1.7.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== - stacktrace-parser@^0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -17950,51 +13942,22 @@ stacktrace-parser@^0.1.10: static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +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== stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -stoppable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" - integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.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.0, stream-to-it@^0.2.2: +stream-to-it@^0.2.2: version "0.2.4" resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== @@ -18006,15 +13969,10 @@ streaming-iterables@^6.0.0: resolved "https://registry.yarnpkg.com/streaming-iterables/-/streaming-iterables-6.2.0.tgz#e8079bc56272335b287e2f13274602fbef008e56" integrity sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA== -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - 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 sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== string-argv@^0.3.1: version "0.3.1" @@ -18024,13 +13982,13 @@ string-argv@^0.3.1: string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -18038,6 +13996,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -18047,55 +14014,48 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.0.tgz#5ab00980cfb29f43e736b113a120a73a0fb569d3" - integrity sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.matchall@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa" - integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg== +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.2" + has-symbols "^1.0.3" internal-slot "^1.0.3" - regexp.prototype.flags "^1.3.1" + regexp.prototype.flags "^1.4.1" side-channel "^1.0.4" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +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.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +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.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string_decoder@^1.0.0, string_decoder@^1.1.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== @@ -18105,7 +14065,7 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" @@ -18117,14 +14077,14 @@ string_decoder@~1.1.1: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" @@ -18149,25 +14109,17 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -strip-bom-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" - integrity sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4= - dependencies: - first-chunk-stream "^1.0.0" - strip-bom "^2.0.0" - -strip-bom@2.X, strip-bom@^2.0.0: +strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-dirs@^2.0.0: version "2.1.0" @@ -18179,7 +14131,7 @@ strip-dirs@^2.0.0: strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== strip-final-newline@^2.0.0: version "2.0.0" @@ -18189,24 +14141,24 @@ strip-final-newline@^2.0.0: 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 sha1-DF8VX+8RUTczd96du1iNoFUA428= + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -strip-json-comments@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-outer@^1.0.0: version "1.0.1" @@ -18215,32 +14167,16 @@ strip-outer@^1.0.0: dependencies: escape-string-regexp "^1.0.2" -sublevel-pouchdb@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz#49e46cd37883bf7ff5006d7c5b9bcc7bcc1f422f" - integrity sha512-y5uYgwKDgXVyPZceTDGWsSFAhpSddY29l9PJbXqMJLfREdPmQTY8InpatohlEfCXX7s1LGcrfYAhxPFZaJOLnQ== +sublevel-pouchdb@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/sublevel-pouchdb/-/sublevel-pouchdb-7.3.0.tgz#d27138c34d98c3d5c8c3ee85c1662add3ad04525" + integrity sha512-zp7u4jmv2N/s+dXZkWTtL4BjREs3SZ1nGBNNJ8RWX4yqN59oHgKmti4CfVOqfsAW9RMasmTqQAEPxL9hX8+CIA== dependencies: inherits "2.0.4" level-codec "9.0.2" ltgt "2.2.1" readable-stream "1.1.14" -subscriptions-transport-ws@^0.9.18, subscriptions-transport-ws@^0.9.19: - version "0.9.19" - resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz#10ca32f7e291d5ee8eb728b9c02e43c52606cdcf" - integrity sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw== - dependencies: - backo2 "^1.0.2" - eventemitter3 "^3.1.0" - iterall "^1.2.1" - symbol-observable "^1.0.4" - ws "^5.2.0 || ^6.0.0 || ^7.0.0" - -super-split@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/super-split/-/super-split-1.1.0.tgz#43b3ba719155f4d43891a32729d59b213d9155fc" - integrity sha512-I4bA5mgcb6Fw5UJ+EkpzqXfiuvVGS/7MuND+oBxNFmxu3ugLNrdIatzBLfhFRMVMLxgSsRy+TjIktgkF9RFSNQ== - supports-color@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" @@ -18248,32 +14184,25 @@ supports-color@6.0.0: dependencies: has-flag "^3.0.0" -supports-color@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== supports-color@^3.1.0: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== dependencies: has-flag "^1.0.0" -supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= - dependencies: - has-flag "^2.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" @@ -18288,15 +14217,20 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.1.tgz#599dc9d45acf74c6176e0d880bab1d7d718fe891" - integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ== +supports-color@^9.2.2: + version "9.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.3.tgz#a6e2c97fc20c80abecd69e50aebe4783ff77d45a" + integrity sha512-aszYUX/DVK/ed5rFLb/dDinVJrQjG/vmU433wtqVSD800rYsJNWxh2R3USV90aLSU+UsyQkbNeffVLzc6B6foA== + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== swap-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" - integrity sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM= + integrity sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ== dependencies: lower-case "^1.1.1" upper-case "^1.1.1" @@ -18320,15 +14254,15 @@ swarm-js@0.1.39: xhr-request-promise "^0.1.2" swarm-js@^0.1.40: - version "0.1.40" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" - integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + 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 "^7.1.0" + got "^11.8.5" mime-types "^2.1.16" mkdirp-promise "^5.0.1" mock-fs "^4.1.0" @@ -18336,34 +14270,11 @@ swarm-js@^0.1.40: tar "^4.0.2" xhr-request "^1.0.1" -symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.2.0: +symbol-observable@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -symbol-observable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" - integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== - -"symbol-tree@>= 3.1.0 < 4.0.0": - 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== - -symbol@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/symbol/-/symbol-0.2.3.tgz#3b9873b8a901e47c6efe21526a3ac372ef28bbc7" - integrity sha1-O5hzuKkB5Hxu/iFSajrDcu8ou8c= - -sync-fetch@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/sync-fetch/-/sync-fetch-0.3.0.tgz#77246da949389310ad978ab26790bb05f88d1335" - integrity sha512-dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g== - dependencies: - buffer "^5.7.0" - node-fetch "^2.6.1" - sync-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" @@ -18390,16 +14301,6 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -taffydb@2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.7.3.tgz#2ad37169629498fca5bc84243096d3cde0ec3a34" - integrity sha1-KtNxaWKUmPylvIQkMJbTzeDsOjQ= - -tapable@^0.2.7: - version "0.2.9" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" - integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== - tar-stream@^1.5.2: version "1.6.2" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" @@ -18434,7 +14335,7 @@ testrpc@0.0.1: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== then-request@^6.0.0: version "6.0.2" @@ -18453,37 +14354,6 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" -through2-filter@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" - integrity sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw= - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" - integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@2.X, through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== - dependencies: - readable-stream "2 || 3" - through2@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" @@ -18492,50 +14362,27 @@ through2@3.0.2: inherits "^2.0.4" readable-stream "2 || 3" -through2@^0.6.0: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= - dependencies: - readable-stream ">=1.0.33-1 <1.1.0-0" - xtend ">=4.0.0 <4.1.0-0" - through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + 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== -tildify@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" - integrity sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo= - dependencies: - os-homedir "^1.0.0" - time-cache@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/time-cache/-/time-cache-0.3.0.tgz#ed0dfcf0fda45cdc95fbd601fda830ebf1bd5d8b" - integrity sha1-7Q388P2kXNyV+9YB/agw6/G9XYs= + integrity sha512-/vreKr4tHo8bcgcRF0WzedPiiErDpX8FmBN8ddq5OhX7JmWtZVMp8HdwvHz9Fh/ZWZKX2ket8l/JaNVeL16Tew== dependencies: lodash.throttle "^4.1.1" timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -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" + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== timeout-abort-controller@^3.0.0: version "3.0.0" @@ -18544,13 +14391,6 @@ timeout-abort-controller@^3.0.0: dependencies: retimer "^3.0.0" -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - timestamp-nano@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/timestamp-nano/-/timestamp-nano-1.0.0.tgz#03bf0b43c2bdcb913a6a02fbaae6f97d68650f3a" @@ -18559,23 +14399,17 @@ timestamp-nano@^1.0.0: tiny-queue@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.1.tgz#25a67f2c6e253b2ca941977b5ef7442ef97a6046" - integrity sha1-JaZ/LG4lOyypQZd7XvdELvl6YEY= + integrity sha512-EijGsv7kzd9I9g0ByCl6h42BWNGUZrlCSejfrb3AKeHC33SGbASu1VDf5O3rRiiUOhAC9CHdZxFPbZu0HmR70A== -tiny-secp256k1@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c" - integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA== - dependencies: - bindings "^1.3.0" - bn.js "^4.11.8" - create-hmac "^1.1.7" - elliptic "^6.4.0" - nan "^2.13.2" +tiny-typed-emitter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz#b3b027fdd389ff81a152c8e847ee2f5be9fad7b5" + integrity sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA== title-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" - integrity sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o= + integrity sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q== dependencies: no-case "^2.2.0" upper-case "^1.0.3" @@ -18587,54 +14421,25 @@ tmp@0.0.33, tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -to-absolute-glob@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" - integrity sha1-HN+kcqnvUMI57maZm2YsoOs5k38= - dependencies: - extend-shallow "^2.0.1" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - 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-data-view@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/to-data-view/-/to-data-view-1.1.0.tgz#08d6492b0b8deb9b29bdf1f61c23eadfa8994d00" - integrity sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ== - to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-json-schema@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/to-json-schema/-/to-json-schema-0.2.5.tgz#ef3c3f11ad64460dcfbdbafd0fd525d69d62a98f" - integrity sha512-jP1ievOee8pec3tV9ncxLSS48Bnw7DIybgy112rhMCEhf3K4uyVNZZHr03iQQBzbV5v5Hos+dlZRRyk6YSMNDw== - dependencies: - lodash.isequal "^4.5.0" - lodash.keys "^4.2.0" - lodash.merge "^4.6.2" - lodash.omit "^4.5.0" - lodash.without "^4.4.0" - lodash.xor "^4.5.0" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" @@ -18646,7 +14451,7 @@ to-readable-stream@^1.0.0: to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -18668,17 +14473,17 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== token-stream@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" - integrity sha1-zu78cXp2xDFvEm0LnbqlXX598Bo= + integrity sha512-nfjOAu/zAWmX9tgwi5NRp7O7zTDUD1miHiB40klUnAh9qnL1iXdgzcz/i5dMaL5jahcBAaSfmNOBBJBLJW8TEg== -tough-cookie@^2.2.0, tough-cookie@^2.3.1, tough-cookie@^2.3.3, tough-cookie@~2.5.0: +tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -18687,43 +14492,39 @@ tough-cookie@^2.2.0, tough-cookie@^2.3.1, tough-cookie@^2.3.3, tough-cookie@~2.5 punycode "^2.1.1" "tough-cookie@^2.3.3 || ^3.0.1 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + 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.1.2" + universalify "^0.2.0" + url-parse "^1.5.3" -tr46@~0.0.1, tr46@~0.0.3: +tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== trim-repeated@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== dependencies: escape-string-regexp "^1.0.2" trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -"true-case-path@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf" - integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q== + integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== truffle-flattener@^1.4.4: - version "1.5.0" - resolved "https://registry.yarnpkg.com/truffle-flattener/-/truffle-flattener-1.5.0.tgz#c358fa3e5cb0a663429f7912a58c4f0879414e64" - integrity sha512-vmzWG/L5OXoNruMV6u2l2IaheI091e+t+fFCOR9sl46EE3epkSRIwGCmIP/EYDtPsFBIG7e6exttC9/GlfmxEQ== + version "1.6.0" + resolved "https://registry.yarnpkg.com/truffle-flattener/-/truffle-flattener-1.6.0.tgz#abb64488b711e6cca0a9d3e449f6a85e35964c5d" + integrity sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q== dependencies: "@resolver-engine/imports-fs" "^0.2.2" - "@solidity-parser/parser" "^0.8.0" + "@solidity-parser/parser" "^0.14.1" find-up "^2.1.0" mkdirp "^1.0.4" tsort "0.0.1" @@ -18739,26 +14540,23 @@ truffle-hdwallet-provider@^1.0.17: websocket "^1.0.28" truffle@^5.1.28: - version "5.4.14" - resolved "https://registry.yarnpkg.com/truffle/-/truffle-5.4.14.tgz#ecc9d263e15f98fc9e7736c34800a161729b25b9" - integrity sha512-upCCheE1H/p4AV7suISyJ45HnPgolnXEHVMqonRsbiNn9aKpmyrhNqF5grtMC95B1AVV9TtccKCCTozxkL/9Mg== + version "5.5.30" + resolved "https://registry.yarnpkg.com/truffle/-/truffle-5.5.30.tgz#f2c095d5d0a5bd0a0fd1e5665cf17a75a6209575" + integrity sha512-XJ+qQkQ4ulDCp7Losf5tnIPUzJxmQfFrYceiSfRxvgCjBByzP4EpzQVywlkBQo49t0lEgOWiWrbf+9p2ZE+s5Q== dependencies: - "@truffle/db-loader" "^0.0.13" - "@truffle/debugger" "^9.1.19" + "@truffle/db-loader" "^0.1.32" + "@truffle/debugger" "^11.0.8" app-module-path "^2.2.0" - mocha "8.1.2" + ganache "7.4.0" + mocha "9.2.2" original-require "^1.0.1" optionalDependencies: - "@truffle/db" "^0.5.34" - "@truffle/preserve-fs" "^0.2.4" - "@truffle/preserve-to-buckets" "^0.2.4" - "@truffle/preserve-to-filecoin" "^0.2.4" - "@truffle/preserve-to-ipfs" "^0.2.4" + "@truffle/db" "^1.0.22" truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== dependencies: utf8-byte-length "^1.0.1" @@ -18767,104 +14565,65 @@ ts-essentials@^2.0.7: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== -ts-invariant@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" - integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== - dependencies: - tslib "^1.9.3" - -ts-invariant@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.9.3.tgz#4b41e0a80c2530a56ce4b8fd4e14183aaac0efa8" - integrity sha512-HinBlTbFslQI0OHP07JLsSXPibSegec6r9ai5xxq/qHYCsIQbzpymLpDhAUsnXcSrDEcd0L62L8vsOEdzM0qlA== - dependencies: - tslib "^2.1.0" - -tsconfig-paths@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" - integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== +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.0" + minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@~2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tslib@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" - integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== - -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - -tslib@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" - integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== +tslib@^2.1.0, tslib@^2.4.0, tslib@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" - integrity sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y= - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + 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 sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tv4@^1.3: version "1.3.0" resolved "https://registry.yarnpkg.com/tv4/-/tv4-1.3.0.tgz#d020c846fadd50c855abb25ebaecc68fc10f7963" - integrity sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM= + integrity sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw== tweetnacl-util@^0.15.0, tweetnacl-util@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== -tweetnacl@1.x.x, tweetnacl@^1.0.0, tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - 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 sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + 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-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" -type-detect@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" - integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= - type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -18880,7 +14639,7 @@ type-fest@^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.16, type-is@~1.6.17, type-is@~1.6.18: +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== @@ -18893,27 +14652,22 @@ type@^1.0.1: resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== -type@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== +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, typedarray-to-buffer@~3.1.5: +typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" -typedarray@^0.0.6, typedarray@~0.0.5: +typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typeforce@^1.11.5: - version "1.18.0" - resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" - integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript-compare@^0.0.2: version "0.0.2" @@ -18934,15 +14688,10 @@ typescript-tuple@^2.2.1: dependencies: typescript-compare "^0.0.2" -ua-parser-js@^0.7.18: - version "0.7.28" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" - integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== - -uglify-js@^2.6.1, uglify-js@^2.8.29: +uglify-js@^2.6.1: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= + integrity sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w== dependencies: source-map "~0.5.1" yargs "~3.10.0" @@ -18950,48 +14699,24 @@ uglify-js@^2.6.1, uglify-js@^2.8.29: uglify-to-browserify "~1.0.0" uglify-js@^3.1.4: - version "3.14.2" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.2.tgz#d7dd6a46ca57214f54a2d0a43cad0f35db82ac99" - integrity sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A== + version "3.17.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.1.tgz#1258a2a488147a8266b3034499ce6959978ba7f4" + integrity sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q== uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= - -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" - integrity sha1-uVH0q7a9YX5m9j64kUmOORdj4wk= - dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" + integrity sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q== uint32@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/uint32/-/uint32-0.2.1.tgz#e618d802d7fffd28b708fccecc7315608bac47f2" - integrity sha1-5hjYAtf//Si3CPzOzHMVYIusR/I= - -uint8arrays@1.1.0, uint8arrays@^1.0.0, uint8arrays@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-1.1.0.tgz#d034aa65399a9fd213a1579e323f0b29f67d0ed2" - integrity sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA== - dependencies: - multibase "^3.0.0" - web-encoding "^1.0.2" - -uint8arrays@^2.0.5, uint8arrays@^2.1.3: - version "2.1.10" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-2.1.10.tgz#34d023c843a327c676e48576295ca373c56e286a" - integrity sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A== - dependencies: - multiformats "^9.4.2" + integrity sha512-d3i8kc/4s1CFW5g3FctmF1Bu2GVXGBMTn82JY2BW0ZtTtI8pRx1YWGPCFBwRF4uYVSJ7ua4y+qYEPqS+x+3w7Q== uint8arrays@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.0.0.tgz#260869efb8422418b6f04e3fac73a3908175c63b" - integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA== + 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" @@ -19000,14 +14725,14 @@ ultron@~1.1.0: resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +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: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" unbzip2-stream@^1.0.9: @@ -19018,20 +14743,20 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" -underscore@1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" - integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== - underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== underscore@^1.8.3: - version "1.13.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" - integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== + version "1.13.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.4.tgz#7886b46bbdf07f768e0052f1828e1dcab40c0dee" + integrity sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ== + +undici@^5.4.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.10.0.tgz#dd9391087a90ccfbd007568db458674232ebf014" + integrity sha512-c8HsD3IbwmjjbLvoZuRI26TZic+TSEe8FPMLLOkN1AfYRhdjnKBU6yL+IwcSCbdZiX4e5t0lfMDLDCqj4Sq70g== union-value@^1.0.0: version "1.0.1" @@ -19043,50 +14768,35 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" - integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== - dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" - -universalify@^0.1.0, universalify@^0.1.2: +universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + universalify@^2.0.0: version "2.0.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 sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA= - dependencies: - normalize-path "^2.1.1" - unordered-array-remove@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz#c546e8f88e317a0cf2644c97ecb57dba66d250ef" - integrity sha1-xUbo+I4xegzyZEyX7LV9umbSUO8= - -unorm@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" - integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== + integrity sha512-45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw== 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 sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -19096,17 +14806,25 @@ upath@^1.1.1: 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.9" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" + integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + upper-case-first@^1.1.0, upper-case-first@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" - integrity sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU= + integrity sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ== dependencies: upper-case "^1.1.1" upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== uri-js@^4.2.2: version "4.4.1" @@ -19118,64 +14836,63 @@ uri-js@^4.2.2: urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== dependencies: prepend-http "^1.0.1" url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== dependencies: prepend-http "^2.0.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== url-to-options@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -ursa-optional@^0.10.1: - 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" + integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +utf-8-validate@5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" + integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== + dependencies: + node-gyp-build "^4.3.0" + utf-8-validate@^5.0.2: - version "5.0.6" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.6.tgz#e1b3e0a5cc8648a3b44c1799fbb170d1aaaffe80" - integrity sha512-hoY0gOf9EkCw+nimK21FVKHUIG1BMqSiRwxB/q3A9yKZOrOI99PP77BxmarDqWz6rG3vVYiBWfhG8z2Tl+7fZA== + version "5.0.9" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" + integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== dependencies: - node-gyp-build "^4.2.0" + node-gyp-build "^4.3.0" utf8-byte-length@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== utf8@3.0.0, utf8@^3.0.0: version "3.0.0" @@ -19185,9 +14902,9 @@ utf8@3.0.0, utf8@^3.0.0: 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 sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util.promisify@^1.0.0, util.promisify@^1.0.1: +util.promisify@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== @@ -19198,21 +14915,7 @@ util.promisify@^1.0.0, util.promisify@^1.0.1: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.1" -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -util@^0.12.0, util@^0.12.3: +util@^0.12.0: version "0.12.4" resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== @@ -19227,12 +14930,12 @@ util@^0.12.0, util@^0.12.3: utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= + integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== uuid@3.2.1: version "3.2.1" @@ -19244,36 +14947,21 @@ uuid@3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.1.0.tgz#6f1536eb43249f473abc6bd58ff983da1ca30d8d" - integrity sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg== +uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.0.1, 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.0.0, 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@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" integrity sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA== -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - integrity sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY= - -valid-url@1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" - integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= - 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" @@ -19282,15 +14970,10 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -value-or-promise@1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.10.tgz#5bf041f1e9a8e7043911875547636768a836e446" - integrity sha512-1OwTzvcfXkAfabk60UVr5NdjtjJ0Fg0T5+B1bhxtrOEwSH2fe8y4DnLgoksfCyd8yZCOQQHB0qLMQnwgCjbXLQ== - -value-or-promise@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.6.tgz#218aa4794aa2ee24dcf48a29aba4413ed584747f" - integrity sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg== +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-decoder@^1.0.0: version "1.0.0" @@ -19299,7 +14982,7 @@ varint-decoder@^1.0.0: dependencies: varint "^5.0.0" -varint@^5.0.0, varint@^5.0.2, 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== @@ -19312,75 +14995,38 @@ varint@^6.0.0: vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + 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 sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" -vinyl-fs@2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.3.tgz#3d97e562ebfdd4b66921dea70626b84bde9d2d07" - integrity sha1-PZflYuv91LZpId6nBia4S96dLQc= - dependencies: - duplexify "^3.2.0" - glob-stream "^5.3.2" - graceful-fs "^4.0.0" - gulp-sourcemaps "^1.5.2" - is-valid-glob "^0.3.0" - lazystream "^1.0.0" - lodash.isequal "^4.0.0" - merge-stream "^1.0.0" - mkdirp "^0.5.0" - object-assign "^4.0.0" - readable-stream "^2.0.4" - strip-bom "^2.0.0" - strip-bom-stream "^1.0.0" - through2 "^2.0.0" - through2-filter "^2.0.0" - vali-date "^1.0.0" - vinyl "^1.0.0" - -vinyl@1.X, vinyl@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" - integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - vizion@^0.2: version "0.2.13" resolved "https://registry.yarnpkg.com/vizion/-/vizion-0.2.13.tgz#1314cdee2b34116f9f5b1248536f95dbfcd6ef5f" - integrity sha1-ExTN7is0EW+fWxJIU2+V2/zW718= + integrity sha512-pDK351YiXu1f5K3PF+/ix8hu9DwWGaWUGU1hjPbLbmmCnt9fPsFmkEJoBrssAGH9r2NX+I1F7NF9HD/6CtcLqQ== dependencies: async "1.5" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - void-elements@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== vuvuzela@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b" - integrity sha1-O+FF5YJxxzylUnndhR8SpoIRSws= + integrity sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ== vxx@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/vxx/-/vxx-1.2.2.tgz#741fb51c6f11d3383da6f9b92018a5d7ba807611" - integrity sha1-dB+1HG8R0zg9pvm5IBil17qAdhE= + integrity sha512-qtvep4hGo0DmEAeLhycBYotM8+S6eL86/HebORc/214jyYIb64o0vad8k0OXwt0XfFErqQ3ap2lWvP3M4UjmhQ== dependencies: continuation-local-storage "^3.1.4" debug "^2.6.3" @@ -19394,40 +15040,6 @@ vxx@^1.2.0: shimmer "^1.0.0" uuid "^3.0.1" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.4.0: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -web-encoding@^1.0.2, web-encoding@^1.0.6: - 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" - web3-bzz@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.1.tgz#c3bd1e8f0c02a13cd6d4e3c3e9e1713f144f6f0d" @@ -19437,32 +15049,22 @@ web3-bzz@1.2.1: swarm-js "0.1.39" underscore "1.9.1" -web3-bzz@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.6.tgz#95f370aecc3ff6ad07f057e6c0c916ef09b04dde" - integrity sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw== - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - underscore "1.12.1" - -web3-bzz@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.5.3.tgz#e36456905ce051138f9c3ce3623cbc73da088c2b" - integrity sha512-SlIkAqG0eS6cBS9Q2eBOTI1XFzqh83RqGJWnyrNZMDxUwsTVHL+zNnaPShVPvrWQA1Ub5b0bx1Kc5+qJVxsTJg== +web3-bzz@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.4.tgz#9419e606e38a9777443d4ce40506ebd796e06075" + integrity sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q== dependencies: "@types/node" "^12.12.6" got "9.6.0" swarm-js "^0.1.40" -web3-bzz@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.6.0.tgz#584b51339f21eedff159abc9239b4b7ef6ded840" - integrity sha512-ugYV6BsinwhIi0CsLWINBz4mqN9wR9vNG0WmyEbdECjxcPyr6vkaWt4qi0zqlUxEnYAwGj4EJXNrbjPILntQTQ== +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 "9.6.0" + got "12.1.0" swarm-js "^0.1.40" web3-core-helpers@1.2.1: @@ -19474,30 +15076,21 @@ web3-core-helpers@1.2.1: web3-eth-iban "1.2.1" web3-utils "1.2.1" -web3-core-helpers@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz#c478246a9abe4e5456acf42657dac2f7c330be74" - integrity sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA== - dependencies: - underscore "1.12.1" - web3-eth-iban "1.3.6" - web3-utils "1.3.6" - -web3-core-helpers@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz#099030235c477aadf39a94199ef40092151d563c" - integrity sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw== +web3-core-helpers@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz#f8f808928560d3e64e0c8d7bdd163aa4766bcf40" + integrity sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg== dependencies: - web3-eth-iban "1.5.3" - web3-utils "1.5.3" + web3-eth-iban "1.7.4" + web3-utils "1.7.4" -web3-core-helpers@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.6.0.tgz#77e161b6ba930a4008a0df804ab379e0aa7e1e7f" - integrity sha512-H/IAH/0mrgvad/oxVKiAMC7qDzMrPPe/nRKmJOoIsupRg9/frvL62kZZiHhqVD1HMyyswbQFC69QRl7JqWzvxg== +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.6.0" - web3-utils "1.6.0" + web3-eth-iban "1.8.0" + web3-utils "1.8.0" web3-core-method@1.2.1: version "1.2.1" @@ -19510,41 +15103,27 @@ web3-core-method@1.2.1: web3-core-subscriptions "1.2.1" web3-utils "1.2.1" -web3-core-method@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.6.tgz#4b0334edd94b03dfec729d113c69a4eb6ebc68ae" - integrity sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.12.1" - web3-core-helpers "1.3.6" - web3-core-promievent "1.3.6" - web3-core-subscriptions "1.3.6" - web3-utils "1.3.6" - -web3-core-method@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.5.3.tgz#6cff97ed19fe4ea2e9183d6f703823a079f5132c" - integrity sha512-8wJrwQ2qD9ibWieF9oHXwrJsUGrv3XAtEkNeyvyNMpktNTIjxJ2jaFGQUuLiyUrMubD18XXgLk4JS6PJU4Loeg== +web3-core-method@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.4.tgz#3873c6405e1a0a8a1efc1d7b28de8b7550b00c15" + integrity sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ== dependencies: - "@ethereumjs/common" "^2.4.0" - "@ethersproject/transactions" "^5.0.0-beta.135" - web3-core-helpers "1.5.3" - web3-core-promievent "1.5.3" - web3-core-subscriptions "1.5.3" - web3-utils "1.5.3" + "@ethersproject/transactions" "^5.6.2" + web3-core-helpers "1.7.4" + web3-core-promievent "1.7.4" + web3-core-subscriptions "1.7.4" + web3-utils "1.7.4" -web3-core-method@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.6.0.tgz#ebe4ea51f5a4fa809bb68185576186359d3982e9" - integrity sha512-cHekyEil4mtcCOk6Q1Zh4y+2o5pTwsLIxP6Bpt4BRtZgdsyPiadYJpkLAVT/quch5xN7Qs5ZwG5AvRCS3VwD2g== +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: - "@ethereumjs/common" "^2.4.0" - "@ethersproject/transactions" "^5.0.0-beta.135" - web3-core-helpers "1.6.0" - web3-core-promievent "1.6.0" - web3-core-subscriptions "1.6.0" - web3-utils "1.6.0" + "@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.2.1: version "1.2.1" @@ -19554,24 +15133,17 @@ web3-core-promievent@1.2.1: any-promise "1.3.0" eventemitter3 "3.1.2" -web3-core-promievent@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz#6c27dc79de8f71b74f5d17acaf9aaf593d3cb0c9" - integrity sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw== - dependencies: - eventemitter3 "4.0.4" - -web3-core-promievent@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz#3f11833c3dc6495577c274350b61144e0a4dba01" - integrity sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg== +web3-core-promievent@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz#80a75633fdfe21fbaae2f1e38950edb2f134868c" + integrity sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA== dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.6.0.tgz#8b6053ae83cb47164540167fc361469fc604d2dd" - integrity sha512-ZzsevjMXWkhqW9dnVfTfb1OUcK7jKcKPvPIbQ4boJccNgvNZPZKlo8xB4pkAX38n4c59O5mC7Lt/z2QL/M5CeQ== +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" @@ -19586,39 +15158,27 @@ web3-core-requestmanager@1.2.1: web3-providers-ipc "1.2.1" web3-providers-ws "1.2.1" -web3-core-requestmanager@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz#4fea269fe913fd4fca464b4f7c65cb94857b5b2a" - integrity sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA== - dependencies: - underscore "1.12.1" - util "^0.12.0" - web3-core-helpers "1.3.6" - web3-providers-http "1.3.6" - web3-providers-ipc "1.3.6" - web3-providers-ws "1.3.6" - -web3-core-requestmanager@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz#b339525815fd40e3a2a81813c864ddc413f7b6f7" - integrity sha512-9k/Bze2rs8ONix5IZR+hYdMNQv+ark2Ek2kVcrFgWO+LdLgZui/rn8FikPunjE+ub7x7pJaKCgVRbYFXjo3ZWg== +web3-core-requestmanager@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz#2dc8a526dab8183dca3fef54658621801b1d0469" + integrity sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA== dependencies: util "^0.12.0" - web3-core-helpers "1.5.3" - web3-providers-http "1.5.3" - web3-providers-ipc "1.5.3" - web3-providers-ws "1.5.3" + web3-core-helpers "1.7.4" + web3-providers-http "1.7.4" + web3-providers-ipc "1.7.4" + web3-providers-ws "1.7.4" -web3-core-requestmanager@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.6.0.tgz#8ef3a3b89cd08983bd94574f9c5893f70a8a6aea" - integrity sha512-CY5paPdiDXKTXPWaEUZekDfUXSuoE2vPxolwqzsvKwFWH5+H1NaXgrc+D5HpufgSvTXawTw0fy7IAicg8+PWqA== +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.6.0" - web3-providers-http "1.6.0" - web3-providers-ipc "1.6.0" - web3-providers-ws "1.6.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.2.1: version "1.2.1" @@ -19629,30 +15189,21 @@ web3-core-subscriptions@1.2.1: underscore "1.9.1" web3-core-helpers "1.2.1" -web3-core-subscriptions@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz#ee24e7974d1d72ff6c992c599deba4ef9b308415" - integrity sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g== - dependencies: - eventemitter3 "4.0.4" - underscore "1.12.1" - web3-core-helpers "1.3.6" - -web3-core-subscriptions@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.5.3.tgz#d7d69c4caad65074212028656e9dc56ca5c2159d" - integrity sha512-L2m9vG1iRN6thvmv/HQwO2YLhOQlmZU8dpLG6GSo9FBN14Uch868Swk0dYVr3rFSYjZ/GETevSXU+O+vhCummA== +web3-core-subscriptions@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz#cfbd3fa71081a8c8c6f1a64577a1a80c5bd9826f" + integrity sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.5.3" + web3-core-helpers "1.7.4" -web3-core-subscriptions@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.6.0.tgz#8c23b15b434a7c9f937652ecca45d7108e2c54df" - integrity sha512-kY9WZUY/m1URSOv3uTLshoZD9ZDiFKReIzHuPUkxFpD5oYNmr1/aPQNPCrrMxKODR7UVX/D90FxWwCYqHhLaxQ== +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.6.0" + web3-core-helpers "1.8.0" web3-core@1.2.1: version "1.2.1" @@ -19664,44 +15215,31 @@ web3-core@1.2.1: web3-core-requestmanager "1.2.1" web3-utils "1.2.1" -web3-core@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.6.tgz#a6a761d1ff2f3ee462b8dab679229d2f8e267504" - integrity sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-requestmanager "1.3.6" - web3-utils "1.3.6" - -web3-core@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.5.3.tgz#59f8728b27c8305b349051326aa262b9b7e907bf" - integrity sha512-ACTbu8COCu+0eUNmd9pG7Q9EVsNkAg2w3Y7SqhDr+zjTgbSHZV01jXKlapm9z+G3AN/BziV3zGwudClJ4u4xXQ== +web3-core@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.4.tgz#943fff99134baedafa7c65b4a0bbd424748429ff" + integrity sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q== dependencies: - "@types/bn.js" "^4.11.5" + "@types/bn.js" "^5.1.0" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-core-requestmanager "1.5.3" - web3-utils "1.5.3" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-requestmanager "1.7.4" + web3-utils "1.7.4" -web3-core@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.6.0.tgz#144eb00f651c9812faf7176abd7ee99d5f45e212" - integrity sha512-o0WsLrJ2yD+HAAc29lGMWJef/MutTyuzpJC0UzLJtIAQJqtpDalzWINEu4j8XYXGk34N/V6vudtzRPo23QEE6g== +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" "^4.11.5" + "@types/bn.js" "^5.1.0" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-core-requestmanager "1.6.0" - web3-utils "1.6.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.2.1: version "1.2.1" @@ -19712,30 +15250,21 @@ web3-eth-abi@1.2.1: underscore "1.9.1" web3-utils "1.2.1" -web3-eth-abi@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz#4272ca48d817aa651bbf97b269f5ff10abc2b8a9" - integrity sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ== - dependencies: - "@ethersproject/abi" "5.0.7" - underscore "1.12.1" - web3-utils "1.3.6" - -web3-eth-abi@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz#5aea9394d797f99ca0d9bd40c3417eb07241c96c" - integrity sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg== +web3-eth-abi@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz#3fee967bafd67f06b99ceaddc47ab0970f2a614a" + integrity sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg== dependencies: - "@ethersproject/abi" "5.0.7" - web3-utils "1.5.3" + "@ethersproject/abi" "^5.6.3" + web3-utils "1.7.4" -web3-eth-abi@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.6.0.tgz#4225608f61ebb0607d80849bb2b20f910780253d" - integrity sha512-fImomGE9McuTMJLwK8Tp0lTUzXqCkWeMm00qPVIwpJ/h7lCw9UFYV9+4m29wSqW6FF+FIZKwc6UBEf9dlx3orA== +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.0.7" - web3-utils "1.6.0" + "@ethersproject/abi" "^5.6.3" + web3-utils "1.8.0" web3-eth-accounts@1.2.1: version "1.2.1" @@ -19754,56 +15283,39 @@ web3-eth-accounts@1.2.1: web3-core-method "1.2.1" web3-utils "1.2.1" -web3-eth-accounts@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz#f9fcb50b28ee58090ab292a10d996155caa2b474" - integrity sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA== +web3-eth-accounts@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz#7a24a4dfe947f7e9d1bae678529e591aa146167a" + integrity sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw== dependencies: - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - scrypt-js "^3.0.1" - underscore "1.12.1" - uuid "3.3.2" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-utils "1.3.6" - -web3-eth-accounts@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz#076c816ff4d68c9dffebdc7fd2bfaddcfc163d77" - integrity sha512-pdGhXgeBaEJENMvRT6W9cmji3Zz/46ugFSvmnLLw79qi5EH7XJhKISNVb41eWCrs4am5GhI67GLx5d2s2a72iw== - dependencies: - "@ethereumjs/common" "^2.3.0" - "@ethereumjs/tx" "^3.2.1" + "@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.5.3" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-utils "1.5.3" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-utils "1.7.4" -web3-eth-accounts@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.6.0.tgz#530927f4c5b78df93b3ea1203abbb467de29cd04" - integrity sha512-2f6HS4KIH4laAsNCOfbNX3dRiQosqSY2TRK86C8jtAA/QKGdx+5qlPfYzbI2RjG81iayb2+mVbHIaEaBGZ8sGw== +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.3.0" - "@ethereumjs/tx" "^3.2.1" + "@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.6.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-utils "1.6.0" + 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.2.1: version "1.2.1" @@ -19819,48 +15331,33 @@ web3-eth-contract@1.2.1: web3-eth-abi "1.2.1" web3-utils "1.2.1" -web3-eth-contract@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz#cccf4d32dc56917fb6923e778498a9ba2a5ba866" - integrity sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA== - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-promievent "1.3.6" - web3-core-subscriptions "1.3.6" - web3-eth-abi "1.3.6" - web3-utils "1.3.6" - -web3-eth-contract@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.5.3.tgz#12b03a4a16ce583a945f874bea2ff2fb4c5b81ad" - integrity sha512-Gdlt1L6cdHe83k7SdV6xhqCytVtOZkjD0kY/15x441AuuJ4JLubCHuqu69k2Dr3tWifHYVys/vG8QE/W16syGg== +web3-eth-contract@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz#e5761cfb43d453f57be4777b2e5e7e1082078ff7" + integrity sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ== dependencies: - "@types/bn.js" "^4.11.5" - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-core-promievent "1.5.3" - web3-core-subscriptions "1.5.3" - web3-eth-abi "1.5.3" - web3-utils "1.5.3" - -web3-eth-contract@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.6.0.tgz#deb946867ad86d32bcbba899d733b681b25ea674" - integrity sha512-ZUtO77zFnxuFtrc+D+iJ3AzNgFXAVcKnhEYN7f1PNz/mFjbtE6dJ+ujO0mvMbxIZF02t9IZv0CIXRpK0rDvZAw== + "@types/bn.js" "^5.1.0" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-promievent "1.7.4" + web3-core-subscriptions "1.7.4" + web3-eth-abi "1.7.4" + web3-utils "1.7.4" + +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" "^4.11.5" - web3-core "1.6.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-core-promievent "1.6.0" - web3-core-subscriptions "1.6.0" - web3-eth-abi "1.6.0" - web3-utils "1.6.0" + "@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.2.1: version "1.2.1" @@ -19876,48 +15373,33 @@ web3-eth-ens@1.2.1: web3-eth-contract "1.2.1" web3-utils "1.2.1" -web3-eth-ens@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz#0d28c5d4ea7b4462ef6c077545a77956a6cdf175" - integrity sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-promievent "1.3.6" - web3-eth-abi "1.3.6" - web3-eth-contract "1.3.6" - web3-utils "1.3.6" - -web3-eth-ens@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.5.3.tgz#ef6eee1ddf32b1ff9536fc7c599a74f2656bafe1" - integrity sha512-QmGFFtTGElg0E+3xfCIFhiUF+1imFi9eg/cdsRMUZU4F1+MZCC/ee+IAelYLfNTGsEslCqfAusliKOT9DdGGnw== +web3-eth-ens@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz#346720305379c0a539e226141a9602f1da7bc0c8" + integrity sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-promievent "1.5.3" - web3-eth-abi "1.5.3" - web3-eth-contract "1.5.3" - web3-utils "1.5.3" - -web3-eth-ens@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.6.0.tgz#af13852168d56fa71b9198eb097e96fb93831c2a" - integrity sha512-AG24PNv9qbYHSpjHcU2pViOII0jvIR7TeojJ2bxXSDqfcgHuRp3NZGKv6xFvT4uNI4LEQHUhSC7bzHoNF5t8CA== + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-promievent "1.7.4" + web3-eth-abi "1.7.4" + web3-eth-contract "1.7.4" + web3-utils "1.7.4" + +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.6.0" - web3-core-helpers "1.6.0" - web3-core-promievent "1.6.0" - web3-eth-abi "1.6.0" - web3-eth-contract "1.6.0" - web3-utils "1.6.0" + 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.2.1: version "1.2.1" @@ -19927,29 +15409,21 @@ web3-eth-iban@1.2.1: bn.js "4.11.8" web3-utils "1.2.1" -web3-eth-iban@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz#0d6ba21fe78f190af8919e9cd5453882457209e0" - integrity sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.3.6" - -web3-eth-iban@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz#91b1475893a877b10eac1de5cce6eb379fb81b5d" - integrity sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw== +web3-eth-iban@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz#711fb2547fdf0f988060027331b2b6c430505753" + integrity sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w== dependencies: - bn.js "^4.11.9" - web3-utils "1.5.3" + bn.js "^5.2.1" + web3-utils "1.7.4" -web3-eth-iban@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.6.0.tgz#edbe46cedc5b148d53fa455edea6b4eef53b2be7" - integrity sha512-HM/bKBS/e8qg0+Eh7B8C/JVG+GkR4AJty17DKRuwMtrh78YsonPj7GKt99zS4n5sDLFww1Imu/ZIk3+K5uJCjw== +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 "^4.11.9" - web3-utils "1.6.0" + bn.js "^5.2.1" + web3-utils "1.8.0" web3-eth-personal@1.2.1: version "1.2.1" @@ -19962,41 +15436,29 @@ web3-eth-personal@1.2.1: web3-net "1.2.1" web3-utils "1.2.1" -web3-eth-personal@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz#226137916754c498f0284f22c55924c87a2efcf0" - integrity sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-net "1.3.6" - web3-utils "1.3.6" - -web3-eth-personal@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz#4ebe09e9a77dd49d23d93b36b36cfbf4a6dae713" - integrity sha512-JzibJafR7ak/Icas8uvos3BmUNrZw1vShuNR5Cxjo+vteOC8XMqz1Vr7RH65B4bmlfb3bm9xLxetUHO894+Sew== +web3-eth-personal@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz#22c399794cb828a75703df8bb4b3c1331b471546" + integrity sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g== dependencies: "@types/node" "^12.12.6" - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-net "1.5.3" - web3-utils "1.5.3" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-net "1.7.4" + web3-utils "1.7.4" -web3-eth-personal@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.6.0.tgz#b75a61c0737b8b8bcc11d05db2ed7bfce7e4b262" - integrity sha512-8ohf4qAwbShf4RwES2tLHVqa+pHZnS5Q6tV80sU//bivmlZeyO1W4UWyNn59vu9KPpEYvLseOOC6Muxuvr8mFQ== +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.6.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-net "1.6.0" - web3-utils "1.6.0" + 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.2.1: version "1.2.1" @@ -20017,60 +15479,41 @@ web3-eth@1.2.1: web3-net "1.2.1" web3-utils "1.2.1" -web3-eth@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.6.tgz#2c650893d540a7a0eb1365dd5b2dca24ac919b7c" - integrity sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA== - dependencies: - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-subscriptions "1.3.6" - web3-eth-abi "1.3.6" - web3-eth-accounts "1.3.6" - web3-eth-contract "1.3.6" - web3-eth-ens "1.3.6" - web3-eth-iban "1.3.6" - web3-eth-personal "1.3.6" - web3-net "1.3.6" - web3-utils "1.3.6" - -web3-eth@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.5.3.tgz#d7d1ac7198f816ab8a2088c01e0bf1eda45862fe" - integrity sha512-saFurA1L23Bd7MEf7cBli6/jRdMhD4X/NaMiO2mdMMCXlPujoudlIJf+VWpRWJpsbDFdu7XJ2WHkmBYT5R3p1Q== - dependencies: - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-core-subscriptions "1.5.3" - web3-eth-abi "1.5.3" - web3-eth-accounts "1.5.3" - web3-eth-contract "1.5.3" - web3-eth-ens "1.5.3" - web3-eth-iban "1.5.3" - web3-eth-personal "1.5.3" - web3-net "1.5.3" - web3-utils "1.5.3" - -web3-eth@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.6.0.tgz#4c9d5fb4eccf9f8744828281757e6ea76af58cbd" - integrity sha512-qJMvai//r0be6I9ghU24/152f0zgJfYC23TMszN3Y6jse1JtjCBP2TlTibFcvkUN1RRdIUY5giqO7ZqAYAmp7w== - dependencies: - web3-core "1.6.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-core-subscriptions "1.6.0" - web3-eth-abi "1.6.0" - web3-eth-accounts "1.6.0" - web3-eth-contract "1.6.0" - web3-eth-ens "1.6.0" - web3-eth-iban "1.6.0" - web3-eth-personal "1.6.0" - web3-net "1.6.0" - web3-utils "1.6.0" +web3-eth@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.4.tgz#a7c1d3ccdbba4de4a82df7e3c4db716e4a944bf2" + integrity sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug== + dependencies: + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-subscriptions "1.7.4" + web3-eth-abi "1.7.4" + web3-eth-accounts "1.7.4" + web3-eth-contract "1.7.4" + web3-eth-ens "1.7.4" + web3-eth-iban "1.7.4" + web3-eth-personal "1.7.4" + web3-net "1.7.4" + web3-utils "1.7.4" + +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.2.1: version "1.2.1" @@ -20081,32 +15524,23 @@ web3-net@1.2.1: web3-core-method "1.2.1" web3-utils "1.2.1" -web3-net@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.6.tgz#a56492e2227475e38db29394f8bac305a2446e41" - integrity sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw== - dependencies: - web3-core "1.3.6" - web3-core-method "1.3.6" - web3-utils "1.3.6" - -web3-net@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.5.3.tgz#545fee49b8e213b0c55cbe74ffd0295766057463" - integrity sha512-0W/xHIPvgVXPSdLu0iZYnpcrgNnhzHMC888uMlGP5+qMCt8VuflUZHy7tYXae9Mzsg1kxaJAS5lHVNyeNw4CoQ== +web3-net@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.4.tgz#3153dfd3423262dd6fbec7aae5467202c4cad431" + integrity sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg== dependencies: - web3-core "1.5.3" - web3-core-method "1.5.3" - web3-utils "1.5.3" + web3-core "1.7.4" + web3-core-method "1.7.4" + web3-utils "1.7.4" -web3-net@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.6.0.tgz#2c28f8787073110a7c2310336889d2dad647e500" - integrity sha512-LFfG95ovTT2sNHkO1TEfsaKpYcxOSUtbuwHQ0K3G0e5nevKDJkPEFIqIcob40yiwcWoqEjENJP9Bjk8CRrZ99Q== +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.6.0" - web3-core-method "1.6.0" - web3-utils "1.6.0" + web3-core "1.8.0" + web3-core-method "1.8.0" + web3-utils "1.8.0" web3-providers-http@1.2.1: version "1.2.1" @@ -20116,29 +15550,23 @@ web3-providers-http@1.2.1: web3-core-helpers "1.2.1" xhr2-cookies "1.1.0" -web3-providers-http@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.6.tgz#36e8724a7424d52827819d53fd75dbf31f5422c2" - integrity sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q== - dependencies: - web3-core-helpers "1.3.6" - xhr2-cookies "1.1.0" - -web3-providers-http@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.5.3.tgz#74f170fc3d79eb7941d9fbc34e2a067d61ced0b2" - integrity sha512-5DpUyWGHtDAr2RYmBu34Fu+4gJuBAuNx2POeiJIooUtJ+Mu6pIx4XkONWH6V+Ez87tZAVAsFOkJRTYuzMr3rPw== +web3-providers-http@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.4.tgz#8209cdcb115db5ccae1f550d1c4e3005e7538d02" + integrity sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA== dependencies: - web3-core-helpers "1.5.3" + web3-core-helpers "1.7.4" xhr2-cookies "1.1.0" -web3-providers-http@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.6.0.tgz#8db4e589abf7197f5d65b12af1bf9726c45f4160" - integrity sha512-sNxHFNv3lnxpmULt34AS6M36IYB/Hzm2Et4yPNzdP1XE644D8sQBZQZaJQdTaza5HfrlwoqU6AOK935armqGuA== +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: - web3-core-helpers "1.6.0" - xhr2-cookies "1.1.0" + 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.2.1: version "1.2.1" @@ -20149,30 +15577,21 @@ web3-providers-ipc@1.2.1: underscore "1.9.1" web3-core-helpers "1.2.1" -web3-providers-ipc@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz#cef8d12c1ebb47adce5ebf597f553c623362cb4a" - integrity sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA== - dependencies: - oboe "2.1.5" - underscore "1.12.1" - web3-core-helpers "1.3.6" - -web3-providers-ipc@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.5.3.tgz#4bd7f5e445c2f3c2595fce0929c72bb879320a3f" - integrity sha512-JmeAptugVpmXI39LGxUSAymx0NOFdgpuI1hGQfIhbEAcd4sv7fhfd5D+ZU4oLHbRI8IFr4qfGU0uhR8BXhDzlg== +web3-providers-ipc@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz#02e85e99e48f432c9d34cee7d786c3685ec9fcfa" + integrity sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw== dependencies: oboe "2.1.5" - web3-core-helpers "1.5.3" + web3-core-helpers "1.7.4" -web3-providers-ipc@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.6.0.tgz#6a3410fd47a67c4a36719fb97f99534ae12aac98" - integrity sha512-ETYdfhpGiGoWpmmSJnONvnPfd3TPivHEGjXyuX+L5FUsbMOVZj9MFLNIS19Cx/YGL8UWJ/8alLJoTcWSIdz/aA== +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.6.0" + web3-core-helpers "1.8.0" web3-providers-ws@1.2.1: version "1.2.1" @@ -20183,32 +15602,22 @@ web3-providers-ws@1.2.1: web3-core-helpers "1.2.1" websocket "github:web3-js/WebSocket-Node#polyfill/globalThis" -web3-providers-ws@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz#e1df617bc89d66165abdf2191da0014c505bfaac" - integrity sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ== - dependencies: - eventemitter3 "4.0.4" - underscore "1.12.1" - web3-core-helpers "1.3.6" - websocket "^1.0.32" - -web3-providers-ws@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.5.3.tgz#eec6cfb32bb928a4106de506f13a49070a21eabf" - integrity sha512-6DhTw4Q7nm5CFYEUHOJM0gAb3xFx+9gWpVveg3YxJ/ybR1BUvEWo3bLgIJJtX56cYX0WyY6DS35a7f0LOI1kVg== +web3-providers-ws@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz#6e60bcefb456f569a3e766e386d7807a96f90595" + integrity sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.5.3" + web3-core-helpers "1.7.4" websocket "^1.0.32" -web3-providers-ws@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.6.0.tgz#dc15dc18c30089efda992015fd5254bd2b77af5f" - integrity sha512-eNRmlhOPCpuVYwBrKBBQRLGPFb4U1Uo44r9EWV69Cpo4gP6XeBTl6nkawhLz6DS0fq79apyPfItJVuSfAy77pA== +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.6.0" + web3-core-helpers "1.8.0" websocket "^1.0.32" web3-shh@1.2.1: @@ -20221,35 +15630,25 @@ web3-shh@1.2.1: web3-core-subscriptions "1.2.1" web3-net "1.2.1" -web3-shh@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.6.tgz#4e3486c7eca5cbdb87f88910948223a5b7ea6c20" - integrity sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw== - dependencies: - web3-core "1.3.6" - web3-core-method "1.3.6" - web3-core-subscriptions "1.3.6" - web3-net "1.3.6" - -web3-shh@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.5.3.tgz#3c04aa4cda9ba0b746d7225262401160f8e38b13" - integrity sha512-COfEXfsqoV/BkcsNLRxQqnWc1Teb8/9GxdGag5GtPC5gQC/vsN+7hYVJUwNxY9LtJPKYTij2DHHnx6UkITng+Q== +web3-shh@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.4.tgz#bee91cce2737c529fd347274010b548b6ea060f1" + integrity sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A== dependencies: - web3-core "1.5.3" - web3-core-method "1.5.3" - web3-core-subscriptions "1.5.3" - web3-net "1.5.3" + web3-core "1.7.4" + web3-core-method "1.7.4" + web3-core-subscriptions "1.7.4" + web3-net "1.7.4" -web3-shh@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.6.0.tgz#838a3435dce1039f669a48e53e948062de197931" - integrity sha512-ymN0OFL81WtEeSyb+PFpuUv39fR3frGwsZnIg5EVPZvrOIdaDSFcGSLDmafUt0vKSubvLMVYIBOCskRD6YdtEQ== +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.6.0" - web3-core-method "1.6.0" - web3-core-subscriptions "1.6.0" - web3-net "1.6.0" + 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.2.1: version "1.2.1" @@ -20264,53 +15663,25 @@ web3-utils@1.2.1: underscore "1.9.1" utf8 "3.0.0" -web3-utils@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.9.tgz#abe11735221627da943971ef1a630868fb9c61f3" - integrity sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w== - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.6.tgz#390bc9fa3a7179746963cfaca55bb80ac4d8dc10" - integrity sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.12.1" - utf8 "3.0.0" - -web3-utils@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.5.3.tgz#e914c9320cd663b2a09a5cb920ede574043eb437" - integrity sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q== +web3-utils@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.4.tgz#eb6fa3706b058602747228234453811bbee017f5" + integrity sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA== dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" + bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" ethjs-unit "0.1.6" number-to-bn "1.7.0" randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.6.0, web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.6.0.tgz#1975c5ee5b7db8a0836eb7004848a7cd962d1ddc" - integrity sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg== +web3-utils@1.8.0, web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.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 "^4.11.9" + bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" ethereumjs-util "^7.1.0" ethjs-unit "0.1.6" @@ -20331,92 +15702,38 @@ web3@1.2.1: web3-shh "1.2.1" web3-utils "1.2.1" -web3@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.6.tgz#599425461c3f9a8cbbefa70616438995f4a064cc" - integrity sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA== - dependencies: - web3-bzz "1.3.6" - web3-core "1.3.6" - web3-eth "1.3.6" - web3-eth-personal "1.3.6" - web3-net "1.3.6" - web3-shh "1.3.6" - web3-utils "1.3.6" - -web3@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.5.3.tgz#11882679453c645bf33620fbc255a243343075aa" - integrity sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w== - dependencies: - web3-bzz "1.5.3" - web3-core "1.5.3" - web3-eth "1.5.3" - web3-eth-personal "1.5.3" - web3-net "1.5.3" - web3-shh "1.5.3" - web3-utils "1.5.3" - -web3@^1.0.0-beta.34, web3@^1.2.5: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.6.0.tgz#d8fa0cd9e7bf252f9fe43bb77dc42bc6671affde" - integrity sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q== - dependencies: - web3-bzz "1.6.0" - web3-core "1.6.0" - web3-eth "1.6.0" - web3-eth-personal "1.6.0" - web3-net "1.6.0" - web3-shh "1.6.0" - web3-utils "1.6.0" - -webidl-conversions@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-2.0.1.tgz#3bf8258f7d318c7443c36f2e169402a1a6703506" - integrity sha1-O/glj30xjHRDw28uFpQCoaZwNQY= +web3@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.4.tgz#00c9aef8e13ade92fd773d845fff250535828e93" + integrity sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A== + dependencies: + web3-bzz "1.7.4" + web3-core "1.7.4" + web3-eth "1.7.4" + web3-eth-personal "1.7.4" + web3-net "1.7.4" + web3-shh "1.7.4" + web3-utils "1.7.4" + +web3@^1.0.0-beta.34, web3@^1.2.5, 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 sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -webpack-sources@^1.0.1: - 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@^3.0.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74" - integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ== - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" - -websocket@^1.0.28, websocket@^1.0.31, websocket@^1.0.32: +websocket@^1.0.28, 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== @@ -20449,22 +15766,20 @@ websql@1.0.0: sqlite3 "^4.0.0" tiny-queue "^0.2.1" -whatwg-fetch@2.0.4: +whatwg-fetch@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== -whatwg-url-compat@~0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz#00898111af689bb097541cd5a45ca6c8798445bf" - integrity sha1-AImBEa9om7CXVBzVpFymyHmERb8= - dependencies: - tr46 "~0.0.1" +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -20472,12 +15787,12 @@ whatwg-url@^5.0.0: when@: version "3.7.8" resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" - integrity sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I= + integrity sha512-5cZ7mecD3eYcMiCH4wtRPA5iFJZ50BJYDfckI5RRpQiktMiYTcn0ccLTZOvcbBume+1304fQztxeNzNS9Gvrnw== wherearewe@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wherearewe/-/wherearewe-1.0.1.tgz#6e5959d29231bea3b87b18bb96ad50e3a8217352" - integrity sha512-K77B01OHS3MqBQAMh1o51g0hwKJpj+NgF9YLZPnqgK0xhKSexxlvCXVt3sL/0+0V73Qwni2n0licJv9KpFbtOw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/wherearewe/-/wherearewe-1.0.2.tgz#6129a5c5a4c90bdb5c0840d75906884c8420e423" + integrity sha512-HyLZ7n1Yox+w1qWaFEgP/sMs5D7ka2UXmoVNaY0XzbEHLGljo4ScBchYm6cWRYNO33tmFX3Mgg4BiZkDOjihyw== dependencies: is-electron "^2.2.0" @@ -20495,26 +15810,26 @@ which-boxed-primitive@^1.0.2: which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== which-typed-array@^1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" - integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== + 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.18.5" - foreach "^2.0.5" + es-abstract "^1.20.0" + for-each "^0.3.3" has-tostringtag "^1.0.0" - is-typed-array "^1.1.7" + is-typed-array "^1.1.9" -which@1.3.1, which@^1.1.1, which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@1.3.1, which@^1.1.1, which@^1.2.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== @@ -20528,34 +15843,34 @@ which@2.0.2, which@^2.0.1: dependencies: isexe "^2.0.0" -wide-align@1.1.3, wide-align@^1.1.0: +wide-align@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" -wif@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" - integrity sha1-CNP1IFbGZnkplyb63g1DKudLRwQ= +wide-align@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: - bs58check "<3.0.0" + string-width "^1.0.2 || 2 || 3 || 4" window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + integrity sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg== window-size@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" - integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= + integrity sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw== with@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe" - integrity sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4= + integrity sha512-uAnSsFGfSpF6DNhBXStvlZILfHJfJu4eUkfbRGk94kGO1Ta7bg6FwfvoOhhyHAJuFbCw+0xk4uJ3u57jLvlCJg== dependencies: acorn "^3.1.0" acorn-globals "^3.0.0" @@ -20568,22 +15883,27 @@ word-wrap@~1.2.3: wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + integrity sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q== wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -workerpool@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.0.tgz#85aad67fa1a2c8ef9386a1b43539900f61d03d58" - integrity sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA== +workerpool@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" + integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -20618,12 +15938,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-stream@~0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/write-stream/-/write-stream-0.4.3.tgz#83cc8c0347d0af6057a93862b4e3ae01de5c81c1" - integrity sha1-g8yMA0fQr2BXqThitOOuAd5cgcE= + integrity sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A== dependencies: readable-stream "~0.0.2" @@ -20634,11 +15954,6 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@7.4.5: - version "7.4.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" - integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== - ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" @@ -20653,17 +15968,17 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^5.1.1, ws@^5.2.2: +ws@^5.1.1: version "5.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== dependencies: async-limiter "~1.0.0" -"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.2.1, ws@^7.3.1, ws@^7.4.3, ws@^7.4.6, ws@^7.5.0: - version "7.5.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" - integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== +ws@^7.2.0, ws@^7.2.1, ws@^7.3.1, 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.2.3: version "8.2.3" @@ -20693,7 +16008,7 @@ xhr-request@^1.0.1, xhr-request@^1.1.0: xhr2-cookies@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= + integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== dependencies: cookiejar "^2.1.1" @@ -20707,15 +16022,10 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: parse-headers "^2.0.0" xtend "^4.0.0" -"xml-name-validator@>= 2.0.1 < 3.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" - integrity sha1-TYuPHszTQZqjYgYb7O9RXh5VljU= - xml2js@^0.1.0: version "0.1.14" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.1.14.tgz#5274e67f5a64c5f92974cd85139e0332adc6b90c" - integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw= + integrity sha512-pbdws4PPPNc1HPluSUKamY4GWMk592K7qwcj6BExbVOhhubub8+pMda/ql68b6L3luZs/OGjGSB5goV7SnmgnA== dependencies: sax ">=0.1.1" @@ -20727,7 +16037,7 @@ xmlhttprequest-ssl@~2.0.0: xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== xsalsa20@^1.1.0: version "1.2.0" @@ -20735,14 +16045,14 @@ xsalsa20@^1.1.0: integrity sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w== xss@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.10.tgz#5cd63a9b147a755a14cb0455c7db8866120eb4d2" - integrity sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw== + version "1.0.14" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" + integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== dependencies: commander "^2.20.3" cssfilter "0.0.10" -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -20750,7 +16060,7 @@ xss@^1.0.8: xtend@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= + integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== dependencies: object-keys "~0.4.0" @@ -20764,15 +16074,15 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yaeti@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" @@ -20805,36 +16115,23 @@ yargs-parser@13.1.2, yargs-parser@^13.1.0, yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^15.0.1: - version "15.0.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" - integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^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.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@^2.4.0, yargs-parser@^2.4.1: +yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" - integrity sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ= + integrity sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA== dependencies: camelcase "^3.0.0" lodash.assign "^4.0.6" -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= - dependencies: - camelcase "^4.1.0" +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-unparser@1.6.0: version "1.6.0" @@ -20845,16 +16142,15 @@ yargs-unparser@1.6.0: lodash "^4.17.15" yargs "^13.3.0" -yargs-unparser@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.1.tgz#bd4b0ee05b4c94d058929c32cb09e3fce71d3c5f" - integrity sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA== +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 "^5.3.1" - decamelize "^1.2.0" - flat "^4.1.0" - is-plain-obj "^1.1.0" - yargs "^14.2.3" + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" yargs@13.2.4: version "13.2.4" @@ -20889,62 +16185,23 @@ yargs@13.3.2, yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.6.0.tgz#cb4050c0159bfb6bb649c0f4af550526a84619dc" - integrity sha1-y0BQwBWb+2u2ScD0r1UFJqhGGdw= - dependencies: - camelcase "^2.0.1" - cliui "^3.2.0" - decamelize "^1.1.1" - lodash.assign "^4.0.3" - os-locale "^1.4.0" - pkg-conf "^1.1.2" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - string-width "^1.0.1" - window-size "^0.2.0" - y18n "^3.2.1" - yargs-parser "^2.4.0" - -yargs@^14.2.3: - version "14.2.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^15.0.1" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== +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 "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" + y18n "^5.0.5" + yargs-parser "^20.2.2" yargs@^4.7.1: version "4.8.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" - integrity sha1-wMQpJMpKqmsObaFznfshZDn53cA= + integrity sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA== dependencies: cliui "^3.2.0" decamelize "^1.1.1" @@ -20961,29 +16218,10 @@ yargs@^4.7.1: y18n "^3.2.1" yargs-parser "^2.4.1" -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + integrity sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A== dependencies: camelcase "^1.0.2" cliui "^2.1.0" @@ -20993,38 +16231,12 @@ yargs@~3.10.0: yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - 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== - -zen-observable-ts@^0.8.21: - version "0.8.21" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" - integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== - dependencies: - tslib "^1.9.3" - zen-observable "^0.8.0" - -zen-observable-ts@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz#2d1aa9d79b87058e9b75698b92791c1838551f83" - integrity sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA== - dependencies: - "@types/zen-observable" "0.8.3" - zen-observable "0.8.15" - -zen-observable@0.8.15, zen-observable@^0.8.0: - version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==