diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..e5daba7
Binary files /dev/null and b/.DS_Store differ
diff --git a/contracts/erc1155/ERC1155Base.sol b/contracts/erc1155/ERC1155Base.sol
new file mode 100644
index 0000000..c84c8d0
--- /dev/null
+++ b/contracts/erc1155/ERC1155Base.sol
@@ -0,0 +1,565 @@
+// SPDX-License-Identifier: UNLICENSED
+pragma solidity 0.8.10;
+
+import "../royaltyManager/interfaces/IRoyaltyManager.sol";
+import "../tokenManager/interfaces/ITokenManager.sol";
+import "../utils/Ownable.sol";
+import "../utils/ERC2981/IERC2981Upgradeable.sol";
+import "../utils/ERC165/ERC165CheckerUpgradeable.sol";
+import "../metatx/ERC2771ContextUpgradeable.sol";
+import "../observability/IObservability.sol";
+
+import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
+import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
+import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
+
+/**
+ * @title Base ERC1155
+ * @author highlight.xyz
+ * @notice Core piece of Highlight NFT contracts (v2)
+ */
+abstract contract ERC1155Base is
+ OwnableUpgradeable,
+ IERC2981Upgradeable,
+ ERC2771ContextUpgradeable,
+ ReentrancyGuardUpgradeable
+{
+ using EnumerableSet for EnumerableSet.AddressSet;
+ using ERC165CheckerUpgradeable for address;
+
+ /**
+ * @notice Throw when token or royalty manager is invalid
+ */
+ error InvalidManager();
+
+ /**
+ * @notice Throw when token or royalty manager does not exist
+ */
+ error ManagerDoesNotExist();
+
+ /**
+ * @notice Throw when sender is unauthorized to perform action
+ */
+ error Unauthorized();
+
+ /**
+ * @notice Throw when sender is not a minter
+ */
+ error NotMinter();
+
+ /**
+ * @notice Throw when token manager or royalty manager swap is blocked
+ */
+ error ManagerSwapBlocked();
+
+ /**
+ * @notice Throw when token manager or royalty manager remove is blocked
+ */
+ error ManagerRemoveBlocked();
+
+ /**
+ * @notice Throw when setting default or granular royalty is blocked
+ */
+ error RoyaltySetBlocked();
+
+ /**
+ * @notice Throw when royalty BPS is invalid
+ */
+ error RoyaltyBPSInvalid();
+
+ /**
+ * @notice Throw when minter registration is invalid
+ */
+ error MinterRegistrationInvalid();
+
+ /**
+ * @notice Set of minters allowed to mint on contract
+ */
+ EnumerableSet.AddressSet internal _minters;
+
+ /**
+ * @notice Global token/edition manager default
+ */
+ address public defaultManager;
+
+ /**
+ * @notice Token/edition managers per token grouping.
+ * Edition ID if implemented by Editions contract, and token ID if implemented by General contract.
+ */
+ mapping(uint256 => address) internal _managers;
+
+ /**
+ * @notice Default royalty for entire contract
+ */
+ IRoyaltyManager.Royalty internal _defaultRoyalty;
+
+ /**
+ * @notice Royalty per token grouping.
+ * Edition ID if implemented by Editions contract, and token ID if implemented by General contract.
+ */
+ mapping(uint256 => IRoyaltyManager.Royalty) internal _royalties;
+
+ /**
+ * @notice Royalty manager - optional contract that defines the conditions around setting royalties
+ */
+ address public royaltyManager;
+
+ /**
+ * @notice Freezes minting on smart contract forever
+ */
+ uint8 internal _mintFrozen;
+
+ /**
+ * @notice Observability contract
+ */
+ IObservability public observability;
+
+ /**
+ * @notice Emitted when minter is registered or unregistered
+ * @param minter Minter that was changed
+ * @param registered True if the minter was registered, false if unregistered
+ */
+ event MinterRegistrationChanged(address indexed minter, bool indexed registered);
+
+ /**
+ * @notice Emitted when token managers are set for token/edition ids
+ * @param _ids Edition / token ids
+ * @param _tokenManagers Token managers to set for tokens / editions
+ */
+ event GranularTokenManagersSet(uint256[] _ids, address[] _tokenManagers);
+
+ /**
+ * @notice Emitted when token managers are removed for token/edition ids
+ * @param _ids Edition / token ids to remove token managers for
+ */
+ event GranularTokenManagersRemoved(uint256[] _ids);
+
+ /**
+ * @notice Emitted when default token manager changed
+ * @param newDefaultTokenManager New default token manager. Zero address if old one was removed
+ */
+ event DefaultTokenManagerChanged(address indexed newDefaultTokenManager);
+
+ /**
+ * @notice Emitted when default royalty is set
+ * @param recipientAddress Royalty recipient
+ * @param royaltyPercentageBPS Percentage of sale (in basis points) owed to royalty recipient
+ */
+ event DefaultRoyaltySet(address indexed recipientAddress, uint16 indexed royaltyPercentageBPS);
+
+ /**
+ * @notice Emitted when royalties are set for edition / token ids
+ * @param ids Token / edition ids
+ * @param _newRoyalties New royalties for each token / edition
+ */
+ event GranularRoyaltiesSet(uint256[] ids, IRoyaltyManager.Royalty[] _newRoyalties);
+
+ /**
+ * @notice Emitted when royalty manager is updated
+ * @param newRoyaltyManager New royalty manager. Zero address if old one was removed
+ */
+ event RoyaltyManagerChanged(address indexed newRoyaltyManager);
+
+ /**
+ * @notice Emitted when mints are frozen permanently
+ */
+ event MintsFrozen();
+
+ /**
+ * @notice Restricts calls to minters
+ */
+ modifier onlyMinter() {
+ if (!_minters.contains(_msgSender())) {
+ _revert(NotMinter.selector);
+ }
+ _;
+ }
+
+ /**
+ * @notice Restricts calls if input royalty bps is over 10000
+ */
+ modifier royaltyValid(uint16 _royaltyBPS) {
+ if (!_royaltyBPSValid(_royaltyBPS)) {
+ _revert(RoyaltyBPSInvalid.selector);
+ }
+ _;
+ }
+
+ /**
+ * @notice Registers a minter
+ * @param minter New minter
+ */
+ function registerMinter(address minter) external onlyOwner {
+ if (!_minters.add(minter)) {
+ _revert(MinterRegistrationInvalid.selector);
+ }
+
+ emit MinterRegistrationChanged(minter, true);
+ observability.emitMinterRegistrationChanged(minter, true);
+ }
+
+ /**
+ * @notice Unregisters a minter
+ * @param minter Minter to unregister
+ */
+ function unregisterMinter(address minter) external onlyOwner {
+ if (!_minters.remove(minter)) {
+ _revert(MinterRegistrationInvalid.selector);
+ }
+
+ emit MinterRegistrationChanged(minter, false);
+ observability.emitMinterRegistrationChanged(minter, false);
+ }
+
+ /**
+ * @notice Sets granular token managers if current token manager(s) allow it
+ * @param _ids Edition / token ids
+ * @param _tokenManagers Token managers to set for tokens / editions
+ */
+ function setGranularTokenManagers(
+ uint256[] calldata _ids,
+ address[] calldata _tokenManagers
+ ) external nonReentrant {
+ address msgSender = _msgSender();
+ address tempOwner = owner();
+
+ uint256 idsLength = _ids.length;
+ for (uint256 i = 0; i < idsLength; i++) {
+ if (!_isValidTokenManager(_tokenManagers[i])) {
+ _revert(InvalidManager.selector);
+ }
+ address currentTokenManager = tokenManager(_ids[i]);
+ if (currentTokenManager == address(0)) {
+ if (msgSender != tempOwner) {
+ _revert(Unauthorized.selector);
+ }
+ } else {
+ if (!ITokenManager(currentTokenManager).canSwap(msgSender, _ids[i], _managers[i])) {
+ _revert(ManagerSwapBlocked.selector);
+ }
+ }
+
+ _managers[_ids[i]] = _tokenManagers[i];
+ }
+
+ emit GranularTokenManagersSet(_ids, _tokenManagers);
+ observability.emitGranularTokenManagersSet(_ids, _tokenManagers);
+ }
+
+ /**
+ * @notice Remove granular token managers
+ * @param _ids Edition / token ids to remove token managers for
+ */
+ function removeGranularTokenManagers(uint256[] calldata _ids) external nonReentrant {
+ address msgSender = _msgSender();
+
+ uint256 idsLength = _ids.length;
+ for (uint256 i = 0; i < idsLength; i++) {
+ address currentTokenManager = _managers[_ids[i]];
+ if (currentTokenManager == address(0)) {
+ _revert(ManagerDoesNotExist.selector);
+ }
+ if (!ITokenManager(currentTokenManager).canRemoveItself(msgSender, _ids[i])) {
+ _revert(ManagerRemoveBlocked.selector);
+ }
+
+ _managers[_ids[i]] = address(0);
+ }
+
+ emit GranularTokenManagersRemoved(_ids);
+ observability.emitGranularTokenManagersRemoved(_ids);
+ }
+
+ /**
+ * @notice Set default token manager if current token manager allows it
+ * @param _defaultTokenManager New default token manager
+ */
+ function setDefaultTokenManager(address _defaultTokenManager) external nonReentrant {
+ if (!_isValidTokenManager(_defaultTokenManager)) {
+ _revert(InvalidManager.selector);
+ }
+ address msgSender = _msgSender();
+
+ address currentTokenManager = defaultManager;
+ if (currentTokenManager == address(0)) {
+ if (msgSender != owner()) {
+ _revert(Unauthorized.selector);
+ }
+ } else {
+ if (!ITokenManager(currentTokenManager).canSwap(msgSender, 0, _defaultTokenManager)) {
+ _revert(ManagerSwapBlocked.selector);
+ }
+ }
+
+ defaultManager = _defaultTokenManager;
+
+ emit DefaultTokenManagerChanged(_defaultTokenManager);
+ observability.emitDefaultTokenManagerChanged(_defaultTokenManager);
+ }
+
+ /**
+ * @notice Removes default token manager if current token manager allows it
+ */
+ function removeDefaultTokenManager() external nonReentrant {
+ address msgSender = _msgSender();
+
+ address currentTokenManager = defaultManager;
+ if (currentTokenManager == address(0)) {
+ _revert(ManagerDoesNotExist.selector);
+ }
+ if (!ITokenManager(currentTokenManager).canRemoveItself(msgSender, 0)) {
+ _revert(ManagerRemoveBlocked.selector);
+ }
+
+ defaultManager = address(0);
+
+ emit DefaultTokenManagerChanged(address(0));
+ observability.emitDefaultTokenManagerChanged(address(0));
+ }
+
+ /**
+ * @notice Sets default royalty if royalty manager allows it
+ * @param _royalty New default royalty
+ */
+ function setDefaultRoyalty(
+ IRoyaltyManager.Royalty calldata _royalty
+ ) external nonReentrant royaltyValid(_royalty.royaltyPercentageBPS) {
+ address msgSender = _msgSender();
+
+ address _royaltyManager = royaltyManager;
+ if (_royaltyManager == address(0)) {
+ if (msgSender != owner()) {
+ _revert(Unauthorized.selector);
+ }
+ } else {
+ if (!IRoyaltyManager(_royaltyManager).canSetDefaultRoyalty(_royalty, msgSender)) {
+ _revert(RoyaltySetBlocked.selector);
+ }
+ }
+
+ _defaultRoyalty = _royalty;
+
+ emit DefaultRoyaltySet(_royalty.recipientAddress, _royalty.royaltyPercentageBPS);
+ observability.emitDefaultRoyaltySet(_royalty.recipientAddress, _royalty.royaltyPercentageBPS);
+ }
+
+ /**
+ * @notice Sets granular royalties (per token-grouping) if royalty manager allows it
+ * @param ids Token / edition ids
+ * @param _newRoyalties New royalties for each token / edition
+ */
+ function setGranularRoyalties(
+ uint256[] calldata ids,
+ IRoyaltyManager.Royalty[] calldata _newRoyalties
+ ) external nonReentrant {
+ address msgSender = _msgSender();
+ address tempOwner = owner();
+
+ address _royaltyManager = royaltyManager;
+ uint256 idsLength = ids.length;
+ if (_royaltyManager == address(0)) {
+ if (msgSender != tempOwner) {
+ _revert(Unauthorized.selector);
+ }
+
+ for (uint256 i = 0; i < idsLength; i++) {
+ if (!_royaltyBPSValid(_newRoyalties[i].royaltyPercentageBPS)) {
+ _revert(RoyaltyBPSInvalid.selector);
+ }
+ _royalties[ids[i]] = _newRoyalties[i];
+ }
+ } else {
+ for (uint256 i = 0; i < idsLength; i++) {
+ if (!_royaltyBPSValid(_newRoyalties[i].royaltyPercentageBPS)) {
+ _revert(RoyaltyBPSInvalid.selector);
+ }
+ if (!IRoyaltyManager(_royaltyManager).canSetGranularRoyalty(ids[i], _newRoyalties[i], msgSender)) {
+ _revert(RoyaltySetBlocked.selector);
+ }
+ _royalties[ids[i]] = _newRoyalties[i];
+ }
+ }
+
+ emit GranularRoyaltiesSet(ids, _newRoyalties);
+ observability.emitGranularRoyaltiesSet(ids, _newRoyalties);
+ }
+
+ /**
+ * @notice Sets royalty manager if current one allows it
+ * @param _royaltyManager New royalty manager
+ */
+ function setRoyaltyManager(address _royaltyManager) external nonReentrant {
+ if (!_isValidRoyaltyManager(_royaltyManager)) {
+ _revert(InvalidManager.selector);
+ }
+ address msgSender = _msgSender();
+
+ address currentRoyaltyManager = royaltyManager;
+ if (currentRoyaltyManager == address(0)) {
+ if (msgSender != owner()) {
+ _revert(Unauthorized.selector);
+ }
+ } else {
+ if (!IRoyaltyManager(currentRoyaltyManager).canSwap(_royaltyManager, msgSender)) {
+ _revert(ManagerSwapBlocked.selector);
+ }
+ }
+
+ royaltyManager = _royaltyManager;
+
+ emit RoyaltyManagerChanged(_royaltyManager);
+ observability.emitRoyaltyManagerChanged(_royaltyManager);
+ }
+
+ /**
+ * @notice Removes royalty manager if current one allows it
+ */
+ function removeRoyaltyManager() external nonReentrant {
+ address msgSender = _msgSender();
+
+ address currentRoyaltyManager = royaltyManager;
+ if (currentRoyaltyManager == address(0)) {
+ _revert(ManagerDoesNotExist.selector);
+ }
+ if (!IRoyaltyManager(currentRoyaltyManager).canRemoveItself(msgSender)) {
+ _revert(ManagerRemoveBlocked.selector);
+ }
+
+ royaltyManager = address(0);
+
+ emit RoyaltyManagerChanged(address(0));
+ observability.emitRoyaltyManagerChanged(address(0));
+ }
+
+ /**
+ * @notice Freeze mints on contract forever
+ */
+ function freezeMints() external onlyOwner nonReentrant {
+ _mintFrozen = 1;
+
+ emit MintsFrozen();
+ observability.emitMintsFrozen();
+ }
+
+ /**
+ * @notice Return allowed minters on contract
+ */
+ function minters() external view returns (address[] memory) {
+ return _minters.values();
+ }
+
+ /**
+ * @notice Conforms to ERC-2981. Editions should overwrite to return royalty for entire edition
+ * @param _tokenGroupingId Token id if on general, and edition id if on editions
+ * @param _salePrice Sale price of token
+ */
+ function royaltyInfo(
+ uint256 _tokenGroupingId,
+ uint256 _salePrice
+ ) public view virtual override returns (address receiver, uint256 royaltyAmount) {
+ IRoyaltyManager.Royalty memory royalty = _royalties[_tokenGroupingId];
+ if (royalty.recipientAddress == address(0)) {
+ royalty = _defaultRoyalty;
+ }
+
+ receiver = royalty.recipientAddress;
+ royaltyAmount = (_salePrice * uint256(royalty.royaltyPercentageBPS)) / 10000;
+ }
+
+ /**
+ * @notice Returns the token manager for the id passed in.
+ * @param id Token ID or Edition ID for Editions implementing contracts
+ */
+ function tokenManager(uint256 id) public view returns (address manager) {
+ manager = defaultManager;
+ address granularManager = _managers[id];
+
+ if (granularManager != address(0)) {
+ manager = granularManager;
+ }
+ }
+
+ /**
+ * @notice Initializes the contract, setting the creator as the initial owner.
+ * @param _creator Contract creator
+ * @param defaultRoyalty Default royalty for the contract
+ * @param _defaultTokenManager Default token manager for the contract
+ */
+ function __ERC1155Base_initialize(
+ address _creator,
+ IRoyaltyManager.Royalty memory defaultRoyalty,
+ address _defaultTokenManager
+ ) internal onlyInitializing royaltyValid(defaultRoyalty.royaltyPercentageBPS) {
+ __Ownable_init();
+ __ReentrancyGuard_init();
+ _transferOwnership(_creator);
+
+ if (defaultRoyalty.recipientAddress != address(0)) {
+ _defaultRoyalty = defaultRoyalty;
+ }
+
+ if (_defaultTokenManager != address(0)) {
+ defaultManager = _defaultTokenManager;
+ }
+ }
+
+ /**
+ * @notice Returns true if address is a valid tokenManager
+ * @param _tokenManager Token manager being checked
+ */
+ function _isValidTokenManager(address _tokenManager) internal view returns (bool) {
+ return _tokenManager.supportsInterface(type(ITokenManager).interfaceId);
+ }
+
+ /**
+ * @notice Returns true if address is a valid royaltyManager
+ * @param _royaltyManager Royalty manager being checked
+ */
+ function _isValidRoyaltyManager(address _royaltyManager) internal view returns (bool) {
+ return _royaltyManager.supportsInterface(type(IRoyaltyManager).interfaceId);
+ }
+
+ /**
+ * @notice Used for meta-transactions
+ */
+ function _msgSender()
+ internal
+ view
+ virtual
+ override(ContextUpgradeable, ERC2771ContextUpgradeable)
+ returns (address sender)
+ {
+ return ERC2771ContextUpgradeable._msgSender();
+ }
+
+ /**
+ * @dev For more efficient reverts.
+ */
+ function _revert(bytes4 errorSelector) internal pure virtual {
+ assembly {
+ mstore(0x00, errorSelector)
+ revert(0x00, 0x04)
+ }
+ }
+
+ /**
+ * @notice Used for meta-transactions
+ */
+ function _msgData()
+ internal
+ view
+ virtual
+ override(ContextUpgradeable, ERC2771ContextUpgradeable)
+ returns (bytes calldata)
+ {
+ return ERC2771ContextUpgradeable._msgData();
+ }
+
+ /**
+ * @notice Returns true if royalty bps passed in is valid (<= 10000)
+ * @param _royaltyBPS Royalty basis points
+ */
+ function _royaltyBPSValid(uint16 _royaltyBPS) private pure returns (bool) {
+ return _royaltyBPS <= 10000;
+ }
+}
diff --git a/contracts/erc1155/ERC1155YungWkndBase.sol b/contracts/erc1155/ERC1155YungWkndBase.sol
new file mode 100644
index 0000000..ac562cb
--- /dev/null
+++ b/contracts/erc1155/ERC1155YungWkndBase.sol
@@ -0,0 +1,358 @@
+// SPDX-License-Identifier: UNLICENSED
+pragma solidity 0.8.10;
+
+import "./ERC1155Base.sol";
+import "../metadata/MetadataEncryption.sol";
+import "../tokenManager/interfaces/IPostTransfer.sol";
+import "../tokenManager/interfaces/IPostBurn.sol";
+import "./interfaces/IHighlightRenderer.sol";
+import "../utils/ERC1155/ERC1155URIStorageUpgradeable.sol";
+import "./interfaces/IERC1155YungWkndMint.sol";
+
+/**
+ * @title Generalized Base ERC1155
+ * @author highlight.xyz
+ * @notice Generalized Base NFT smart contract
+ */
+abstract contract ERC1155YungWkndBase is ERC1155Base, ERC1155URIStorageUpgradeable, IERC1155YungWkndMint {
+ using EnumerableSet for EnumerableSet.AddressSet;
+
+ uint256 _tokenCount = 1;
+
+ /**
+ * @notice Throw when attempting to mint, while mint is frozen
+ */
+ error MintFrozen();
+
+ /**
+ * @notice Throw when requested token is not in range within bounds of limit supply
+ */
+ error TokenNotInRange();
+
+ /**
+ * @notice Throw when new supply is over limit supply
+ */
+ error OverLimitSupply();
+
+ /**
+ * @notice Throw when array lengths are mismatched
+ */
+ error MismatchedArrayLengths();
+
+ /**
+ * @notice Throw when string is empty
+ */
+ error EmptyString();
+
+ /**
+ * @notice Custom renderer config, used for collections where metadata is rendered "in-chain"
+ * @param renderer Renderer address
+ * @param processMintDataOnRenderer If true, process mint data on renderer
+ */
+ struct CustomRendererConfig {
+ address renderer;
+ bool processMintDataOnRenderer;
+ }
+
+ /**
+ * @notice Contract metadata
+ */
+ string public contractURI;
+
+ /**
+ * @notice Limit the supply to take advantage of over-promising in summation with multiple mint vectors
+ */
+ uint256 public limitSupply;
+
+ /**
+ * @notice Custom renderer config
+ */
+ CustomRendererConfig public customRendererConfig;
+
+ /**
+ * @notice Emitted when uris are set for tokens
+ * @param ids IDs of tokens to set uris for
+ * @param uris Uris to set on tokens
+ */
+ event TokenURIsSet(uint256[] ids, string[] uris);
+
+ /**
+ * @notice Emitted when limit supply is set
+ * @param newLimitSupply Limit supply to set
+ */
+ event LimitSupplySet(uint256 indexed newLimitSupply);
+
+ /**
+ * @notice See {IERC1155YungWkndMint-mintOneToOneRecipient}
+ */
+ function mintOneToOneRecipient(address recipient) external virtual onlyMinter nonReentrant returns (uint256) {
+ if (_mintFrozen == 1) {
+ _revert(MintFrozen.selector);
+ }
+
+ uint256 tempSupply = _tokenCount;
+ _requireLimitSupply(_tokenCount);
+
+ _mint(recipient, tempSupply, 1, "");
+
+ // process mint on custom renderer if present
+ CustomRendererConfig memory _customRendererConfig = customRendererConfig;
+ if (_customRendererConfig.processMintDataOnRenderer) {
+ // Processes mint / randomness on renderer contract
+ IHighlightRenderer(_customRendererConfig.renderer).processOneRecipientMint(tempSupply, 1, recipient);
+ }
+
+ return tempSupply;
+ }
+
+ /**
+ * @notice See {IERC1155YungWkndMint-mintExistingOneToOneRecipient}
+ */
+ function mintExistingOneToOneRecipient(address recipient, uint256 tokenId) external virtual onlyMinter nonReentrant returns (uint256) {
+ if (_mintFrozen == 1) {
+ _revert(MintFrozen.selector);
+ }
+
+ uint256 tempSupply = tokenId;
+ _requireLimitSupply(tempSupply);
+
+ _mint(recipient, tokenId, 1, "");
+ return tempSupply;
+ }
+
+ /**
+ * @notice See {IERC1155YungWkndMint-mintSeedToOneRecipient}
+ */
+ function mintSeedToOneRecipient(address recipient, bytes32 seed) external virtual onlyMinter nonReentrant returns (uint256) {
+ if (_mintFrozen == 1) {
+ _revert(MintFrozen.selector);
+ }
+
+ uint256 tempSupply = _tokenCount;
+ _requireLimitSupply(_tokenCount);
+
+ _mint(recipient, tempSupply, 1, "");
+
+ // process mint on custom renderer if present
+ CustomRendererConfig memory _customRendererConfig = customRendererConfig;
+ if (_customRendererConfig.processMintDataOnRenderer) {
+ // Processes mint / randomness on renderer contract
+ IHighlightRenderer(_customRendererConfig.renderer).processRecipientMintWithHash(tempSupply, seed);
+ }
+
+ return tempSupply;
+ }
+
+ /**
+ * @notice Set custom renderer and processing config
+ * @param _customRendererConfig New custom renderer config
+ */
+ function setCustomRenderer(CustomRendererConfig calldata _customRendererConfig) external onlyOwner {
+ require(_customRendererConfig.renderer != address(0), "Invalid input");
+ customRendererConfig = _customRendererConfig;
+ }
+
+ /**
+ * @notice Override base URI system for select tokens, with custom per-token metadata
+ * @param ids IDs of tokens to override base uri system for with custom uris
+ * @param uris Custom uris
+ */
+ function setTokenURIs(uint256[] calldata ids, string[] calldata uris) external nonReentrant {
+ uint256 idsLength = ids.length;
+ if (idsLength != uris.length) {
+ _revert(MismatchedArrayLengths.selector);
+ }
+
+ for (uint256 i = 0; i < idsLength; i++) {
+ _setTokenURI(ids[i], uris[i]);
+ }
+
+ emit TokenURIsSet(ids, uris);
+ observability.emitTokenURIsSet(ids, uris);
+ }
+
+ /**
+ * @notice Set base uri
+ * @param newBaseURI New base uri to set
+ */
+ function setBaseURI(string calldata newBaseURI) external nonReentrant {
+ if (bytes(newBaseURI).length == 0) {
+ _revert(EmptyString.selector);
+ }
+
+ address _manager = defaultManager;
+
+ if (_manager == address(0)) {
+ if (_msgSender() != owner()) {
+ _revert(Unauthorized.selector);
+ }
+ } else {
+ if (!ITokenManager(_manager).canUpdateMetadata(_msgSender(), 0, bytes(newBaseURI))) {
+ _revert(Unauthorized.selector);
+ }
+ }
+
+ _setBaseURI(newBaseURI);
+ observability.emitBaseUriSet(newBaseURI);
+ }
+
+ /**
+ * @notice Set limit supply
+ * @param _limitSupply Limit supply to set
+ */
+ function setLimitSupply(uint256 _limitSupply) external onlyOwner nonReentrant {
+ // allow it to be 0, for post-mint
+ limitSupply = _limitSupply;
+
+ emit LimitSupplySet(_limitSupply);
+ observability.emitLimitSupplySet(_limitSupply);
+ }
+
+ /**
+ * @notice Set contract name
+ * @param newName New name
+ * @param newSymbol New symbol
+ * @param newContractUri New contractURI
+ */
+ function setContractMetadata(
+ string calldata newName,
+ string calldata newSymbol,
+ string calldata newContractUri
+ ) external onlyOwner {
+ _setContractMetadata(newName, newSymbol);
+ contractURI = newContractUri;
+
+ observability.emitContractMetadataSet(newName, newSymbol, newContractUri);
+ }
+
+ /**
+ * @notice Return the total number of minted tokens on the collection
+ */
+ function supply() external view returns (uint256) {
+ return _tokenCount;
+ }
+
+ /**
+ * @notice See {IERC1155-burn}. Overrides default behaviour to check associated tokenManager.
+ */
+ function burn(address from, uint256 id, uint256 amount) public nonReentrant {
+ address _manager = tokenManager(id);
+ address msgSender = _msgSender();
+
+ if (_manager != address(0) && IERC165Upgradeable(_manager).supportsInterface(type(IPostBurn).interfaceId)) {
+ IPostBurn(_manager).postBurn(msgSender, msgSender, id);
+ } else {
+ // default to restricting burn to owner or operator if a valid TM isn't present
+ if (!isApprovedForAll(msgSender, address(this))) {
+ _revert(Unauthorized.selector);
+ }
+ }
+
+ _burn(from, id, amount);
+
+ observability.emitTransfer(msgSender, address(0), id);
+ }
+
+ /**
+ * @notice Overrides tokenURI to first rotate the token id
+ * @param tokenId ID of token to get uri for
+ */
+ function uri(uint256 tokenId) public view virtual override returns (string memory) {
+ if (customRendererConfig.renderer != address(0)) {
+ return IHighlightRenderer(customRendererConfig.renderer).tokenURI(tokenId);
+ }
+ return ERC1155URIStorageUpgradeable.uri(tokenId);
+ }
+
+ /**
+ * @notice See {IERC165-supportsInterface}.
+ */
+ function supportsInterface(
+ bytes4 interfaceId
+ ) public view virtual override(IERC165Upgradeable, ERC1155Upgradeable) returns (bool) {
+ return ERC1155Upgradeable.supportsInterface(interfaceId);
+ }
+
+ /**
+ * @notice Hook called after transfers
+ * @param operator Address which called the function
+ * @param from Account token is being transferred from
+ * @param to Account token is being transferred to
+ * @param ids IDs of tokens being transferred
+ * @param amounts Amounts of tokens being transferred
+ * @param data Additional data passed to hook
+ */
+ function _afterTokenTransfer(
+ address operator,
+ address from,
+ address to,
+ uint256[] memory ids,
+ uint256[] memory amounts,
+ bytes memory data
+ ) internal override {
+ for (uint i = 0; i < ids.length; i++) {
+ uint tokenId = ids[i];
+ address _manager = tokenManager(tokenId);
+ if (_manager != address(0) && IERC165Upgradeable(_manager).supportsInterface(type(IPostTransfer).interfaceId)) {
+ IPostTransfer(_manager).postSafeTransferFrom(_msgSender(), from, to, tokenId, "");
+ }
+
+ observability.emitTransfer(from, to, tokenId);
+ }
+ }
+
+ /**
+ * @notice Used for meta-transactions
+ */
+ function _msgSender() internal view virtual override(ERC1155Base, ContextUpgradeable) returns (address sender) {
+ return ERC2771ContextUpgradeable._msgSender();
+ }
+
+ /**
+ * @notice Used for meta-transactions
+ */
+ function _msgData() internal view virtual override(ERC1155Base, ContextUpgradeable) returns (bytes calldata) {
+ return ERC2771ContextUpgradeable._msgData();
+ }
+
+ /**
+ * @dev For more efficient reverts.
+ */
+ function _revert(bytes4 errorSelector) internal pure virtual override(ERC1155Upgradeable, ERC1155Base) {
+ ERC1155Upgradeable._revert(errorSelector);
+ }
+
+ /**
+ * @notice Override base URI system for select tokens, with custom per-token metadata
+ * @param tokenId Token to set uri for
+ * @param _uri Uri to set on token
+ */
+ function _setTokenURI(uint256 tokenId, string calldata _uri) private {
+ address _manager = tokenManager(tokenId);
+ address msgSender = _msgSender();
+
+ address tempOwner = owner();
+ if (_manager == address(0)) {
+ if (msgSender != tempOwner) {
+ _revert(Unauthorized.selector);
+ }
+ } else {
+ if (!ITokenManager(_manager).canUpdateMetadata(msgSender, tokenId, bytes(_uri))) {
+ _revert(Unauthorized.selector);
+ }
+ }
+
+ _tokenURIs[tokenId] = _uri;
+ }
+
+ /**
+ * @notice Require the new supply of tokens after mint to be less than limit supply
+ * @param newSupply New supply
+ */
+ function _requireLimitSupply(uint256 newSupply) internal view {
+ uint256 _limitSupply = limitSupply;
+ if (_limitSupply != 0 && newSupply > _limitSupply) {
+ _revert(OverLimitSupply.selector);
+ }
+ }
+}
diff --git a/contracts/erc1155/ERC1155YungWkndRenderer.sol b/contracts/erc1155/ERC1155YungWkndRenderer.sol
new file mode 100644
index 0000000..7a572b3
--- /dev/null
+++ b/contracts/erc1155/ERC1155YungWkndRenderer.sol
@@ -0,0 +1,469 @@
+//SPDX-License-Identifier: UNLICENSED
+pragma solidity 0.8.10;
+
+import "./interfaces/IHighlightRenderer.sol";
+import "./interfaces/IHLFS.sol";
+import "@openzeppelin/contracts/utils/Strings.sol";
+import "@openzeppelin/contracts/utils/Base64.sol";
+import "../utils/Ownable.sol";
+
+/**
+ * @notice YungWknd Renderer for ERC1155 tokens
+ * @dev Currently supports a fairly fixed configuratoin
+ * @author highlight.xyz
+ */
+contract ERC1155YungWkndRenderer is IHighlightRenderer {
+
+ /**
+ *
+ * @notice Emitted when custom seed is set for a token
+ * @param collection Collection address
+ * @param seed Seed for token
+ * @param tokenId Token ID
+ */
+ event CustomSeed(address indexed collection, bytes32 indexed seed, uint256 indexed tokenId);
+
+ /**
+ * @notice Throw when invalid input to process mint data
+ */
+ error InvalidMintData();
+
+ /**
+ * @notice Throw when seed input for a token cannot be found
+ */
+ error SeedInputNotFound();
+
+ /**
+ * @notice Throw when transaction sender isn't collection owner
+ */
+ error NotCollectionOwner();
+
+ /**
+ * @notice Input that seeds token metadata
+ * @param previousBlockHash Hash of the block before the one the tokens were minted on
+ * @param blockTimestamp Timestamp of block that tokens were minted on
+ * @param startTokenId ID of first token of minted batch
+ */
+ struct SeedInput {
+ bytes32 previousBlockHash;
+ uint48 blockTimestamp;
+ uint176 startTokenId;
+ uint32 numMinted;
+ }
+
+ struct UserInputHash {
+ bytes32 inputHash;
+ uint176 tokenId;
+ }
+
+ /**
+ * @notice Simple collection config (to be made more complex)
+ */
+ struct CollectionConfig {
+ string name;
+ string previewsBaseUri;
+ string htmlLang;
+ bool htmlBodyExpected;
+ bool useCDN;
+ }
+
+ uint256 private constant _32_BIT_MAX_MINUS_1 = 2 ** 32 - 1;
+
+ /**
+ * @notice Store the seed inputs for each token batch (for each nft contract)
+ * @dev Assume startTokenIds are incrementing (up to implementer), assume first batch's startTokenId is 1
+ */
+ mapping(address => SeedInput[]) public collectionSeedInputs;
+
+ mapping(address => UserInputHash[]) public userInputHashes;
+
+ /**
+ * @notice Store config per collection
+ */
+ mapping(address => CollectionConfig) public collectionConfig;
+
+ /**
+ * @notice Set a collection's config
+ */
+ function setCollectionConfig(CollectionConfig calldata config, address collection) external {
+ if (Ownable(collection).owner() == msg.sender || msg.sender == collection) {
+ collectionConfig[collection] = config;
+ } else {
+ _revert(NotCollectionOwner.selector);
+ }
+ }
+
+ /**
+ * @notice See {IHlRenderer-processOneRecipientMint}
+ */
+ function processOneRecipientMint(uint256 firstTokenId, uint256 numTokens, address recipient) external {
+ collectionSeedInputs[msg.sender].push(
+ SeedInput(blockhash(block.number - 1), uint48(block.timestamp), uint176(firstTokenId), uint32(numTokens))
+ );
+ }
+
+ function processMultipleRecipientMint(
+ uint256 firstTokenId,
+ uint256 numTokensPerRecipient,
+ address[] calldata orderedRecipients
+ ) external {
+ for (uint i = 0; i < orderedRecipients.length; i++) {
+ collectionSeedInputs[msg.sender].push(
+ SeedInput(blockhash(block.number - 1), uint48(block.timestamp), uint176(firstTokenId), uint32(numTokensPerRecipient))
+ );
+ }
+ }
+
+ /**
+ * @notice See {IHlRenderer-processRecipientMintWithHash}
+ */
+ function processRecipientMintWithHash(uint256 tokenId, bytes32 inputHash) external {
+ userInputHashes[msg.sender].push(
+ UserInputHash(inputHash, uint176(tokenId))
+ );
+
+ emit CustomSeed(msg.sender, inputHash, tokenId);
+ }
+
+ /**
+ * @notice See {IHLRenderer-tokenURI}
+ */
+ function tokenURI(uint256 tokenId) public view virtual returns (string memory) {
+ address collection = msg.sender;
+ SeedInput memory _seedInput = getSeedInput(tokenId, collection);
+ bytes32 curatedHash = getCuratedHash(tokenId, collection);
+
+ string memory tokenIdStr = Strings.toString(tokenId);
+
+ bytes[] memory metadata = new bytes[](3);
+ bytes[] memory encodedJson = new bytes[](2);
+
+ // inject values in JS
+ string memory injectedToken = string(
+ abi.encodePacked(
+ 'const injectedToken = {"blockHash": "',
+ Strings.toHexString(uint256(_seedInput.previousBlockHash)),
+ '", "',
+ 'tokenId": "',
+ tokenIdStr,
+ '", "',
+ 'timestamp": "',
+ Strings.toString(_seedInput.blockTimestamp),
+ '", "',
+ 'hash": "',
+ Strings.toHexString(uint256(curatedHash)),
+ '", "',
+ 'isCurated": "1"',
+ "};"
+ )
+ );
+
+ metadata[0] = abi.encodePacked(
+ '{"name": "',
+ collectionConfig[collection].name,
+ " #",
+ tokenIdStr,
+ '", "',
+ 'description": "',
+ IHLFS(collection).fileContents("description.txt"),
+ '", "',
+ 'image": "',
+ collectionConfig[collection].previewsBaseUri,
+ "/",
+ Strings.toString(tokenId),
+ ".png",
+ '", "'
+ 'animation_url": "data:text/html;base64,'
+ );
+ metadata[1] = bytes(Base64.encode(_generateHTML(collection, injectedToken, false)));
+ metadata[2] = bytes('"}');
+
+ encodedJson[0] = bytes("data:application/json;base64,");
+ encodedJson[1] = bytes(Base64.encode(concat(metadata)));
+ return string(concat(encodedJson));
+ }
+
+ /**
+ * @notice See {IHLRenderer-tokenURI}
+ */
+ function tokenURIWithCDN(uint256 tokenId, address collection) public view virtual returns (string memory) {
+ SeedInput memory _seedInput = getSeedInput(tokenId, collection);
+ bytes32 curatedHash = getCuratedHash(tokenId, collection);
+
+ string memory tokenIdStr = Strings.toString(tokenId);
+
+ bytes[] memory metadata = new bytes[](3);
+ bytes[] memory encodedJson = new bytes[](2);
+
+ // inject values in JS
+ string memory injectedToken = string(
+ abi.encodePacked(
+ 'const injectedToken = {"blockHash": "',
+ Strings.toHexString(uint256(_seedInput.previousBlockHash)),
+ '", "',
+ 'tokenId": "',
+ tokenIdStr,
+ '", "',
+ 'timestamp": "',
+ Strings.toString(_seedInput.blockTimestamp),
+ '", "',
+ 'hash": "',
+ Strings.toHexString(uint256(curatedHash)),
+ '", "',
+ 'isCurated": "1"',
+ "};"
+ )
+ );
+
+ metadata[0] = abi.encodePacked(
+ '{"name": "',
+ collectionConfig[collection].name,
+ " #",
+ tokenIdStr,
+ '", "',
+ 'description": "',
+ IHLFS(collection).fileContents("description.txt"),
+ '", "',
+ 'image": "',
+ collectionConfig[collection].previewsBaseUri,
+ "/",
+ Strings.toString(tokenId),
+ ".png",
+ '", "'
+ 'animation_url": "data:text/html;base64,'
+ );
+ metadata[1] = bytes(Base64.encode(_generateHTML(collection, injectedToken, true)));
+ metadata[2] = bytes('"}');
+
+ encodedJson[0] = bytes("data:application/json;base64,");
+ encodedJson[1] = bytes(Base64.encode(concat(metadata)));
+ return string(concat(encodedJson));
+ }
+
+ /**
+ * Get a token's seed
+ */
+ function getSeed(uint256 tokenId, address collection) public view returns (bytes32) {
+ SeedInput memory _seedInput = getSeedInput(tokenId, collection);
+ return _getSeed(_seedInput, tokenId);
+ }
+
+ /**
+ * @notice Get a token's seed input
+ */
+ function getSeedInput(uint256 tokenId, address collection) public view returns (SeedInput memory) {
+ SeedInput[] memory _seedInputs = collectionSeedInputs[collection];
+ uint256 numInputs = _seedInputs.length;
+ if (numInputs == 0) {
+ _revert(SeedInputNotFound.selector);
+ }
+ for (uint256 i = numInputs - 1; i >= 0; i--) {
+ if (tokenId >= _seedInputs[i].startTokenId) {
+ // assume first batch's startTokenId is 1
+ if (_seedInputs[i].startTokenId + _seedInputs[i].numMinted <= tokenId) {
+ _revert(SeedInputNotFound.selector);
+ } else {
+ return _seedInputs[i];
+ }
+ }
+ }
+ }
+
+ /**
+ * @notice Get a token's seed input
+ */
+ function getCuratedHash(uint256 tokenId, address collection) public view returns (bytes32) {
+ // First, check the userInputHashes
+ UserInputHash[] memory _userInputHashes = userInputHashes[collection];
+ uint256 numInputs = _userInputHashes.length;
+ for (uint256 i = numInputs - 1; i >= 0; i--) {
+ if (tokenId == _userInputHashes[i].tokenId) {
+ return _userInputHashes[i].inputHash;
+ }
+ }
+
+ // Otherwise, construct the hash ourselves...
+
+ SeedInput[] memory _seedInputs = collectionSeedInputs[collection];
+ numInputs = _seedInputs.length;
+ if (numInputs == 0) {
+ _revert(SeedInputNotFound.selector);
+ }
+ for (uint256 i = numInputs - 1; i >= 0; i--) {
+ if (tokenId == _seedInputs[i].startTokenId) {
+ return getSeed(tokenId, collection);
+ }
+ }
+ _revert(SeedInputNotFound.selector);
+ }
+
+ /**
+ * @notice Generate the project's HTML file
+ */
+ function _generateHTML(address collection, string memory injectedToken, bool useCDNOverride) public view returns (bytes memory) {
+ bytes[] memory html = new bytes[](4);
+
+ bool useCDN = useCDNOverride ? true : collectionConfig[collection].useCDN;
+ string memory libScriptPrefix = useCDN ? ' src="' : ">";
+ string memory libScriptSuffix = useCDN ? '">' : "";
+ html[0] = abi.encodePacked(
+ '',
+ "
",
+ IHLFS(collection).fileContents("headPrefix.html"),
+ "",
+ "",
+ ""
+ );
+
+ string memory HTMLBody = "";
+ if (collectionConfig[collection].htmlBodyExpected) {
+ HTMLBody = IHLFS(collection).fileContents("body.html");
+ }
+ html[3] = abi.encodePacked("", HTMLBody, "", "");
+
+ return concat(html);
+ }
+
+ /**
+ * @notice Base64 Encode a metadata JSON
+ */
+ function _encodeMetadataJSON(bytes memory json) private pure returns (string memory) {
+ return string(abi.encodePacked("data:application/json;base64,", Base64.encode(json)));
+ }
+
+ /**
+ * @notice Concatenate byte arrays
+ */
+ function concat(bytes[] memory arrays) public pure returns (bytes memory) {
+ uint totalLength = 0;
+ for (uint i = 0; i < arrays.length; i++) {
+ totalLength += arrays[i].length;
+ }
+
+ bytes memory result = new bytes(totalLength);
+ uint resultPtr;
+ assembly {
+ resultPtr := add(result, 0x20)
+ }
+
+ for (uint i = 0; i < arrays.length; i++) {
+ bytes memory array = arrays[i];
+ uint arrayLength = array.length;
+
+ uint arrayPtr;
+ assembly {
+ arrayPtr := add(array, 0x20)
+ }
+
+ // Efficiently copy memory block
+ for (uint j = 0; j < arrayLength; j += 32) {
+ assembly {
+ let chunk := mload(add(arrayPtr, j))
+ mstore(add(resultPtr, j), chunk)
+ }
+ }
+
+ resultPtr += arrayLength;
+ }
+
+ return result;
+ }
+
+ /**
+ * @notice Parse a byte value represented in string to the byte representation of the value
+ */
+ function _parseHexChar(bytes1 char) internal pure returns (bytes1) {
+ if (uint8(char) >= 48 && uint8(char) <= 57) {
+ return bytes1(uint8(char) - 48); // 0-9
+ }
+ if (uint8(char) >= 65 && uint8(char) <= 70) {
+ return bytes1(uint8(char) - 55); // A-F
+ }
+ if (uint8(char) >= 97 && uint8(char) <= 102) {
+ return bytes1(uint8(char) - 87); // a-f
+ }
+ revert("Invalid hex character");
+ }
+
+ /**
+ * @notice Generate an index via a prng, given seed input and a max value
+ */
+ function _prngSeedInput(
+ bytes32 generalHash,
+ bytes32 blockHash,
+ uint256 tokenId,
+ uint256 max
+ ) private pure returns (uint256) {
+ uint256 seed = tokenId;
+
+ // process each byte of generalHash and blockHash
+ for (uint256 i = 0; i < 32; i++) {
+ // extract and process high and low nibbles for generalHash
+ uint8 highNibbleTx = uint8(generalHash[i]) >> 4;
+ uint8 lowNibbleTx = uint8(generalHash[i]) & 0x0F;
+ if (highNibbleTx <= 9) {
+ seed += highNibbleTx;
+ }
+ if (lowNibbleTx <= 9) {
+ seed += lowNibbleTx;
+ }
+
+ // extract and process high and low nibbles for blockHash
+ uint8 highNibbleBlock = uint8(blockHash[i]) >> 4;
+ uint8 lowNibbleBlock = uint8(blockHash[i]) & 0x0F;
+ if (highNibbleBlock <= 9) {
+ seed += highNibbleBlock;
+ }
+ if (lowNibbleBlock <= 9) {
+ seed += lowNibbleBlock;
+ }
+ }
+
+ uint256 t = (seed + 0x6D2B79F5) & (_32_BIT_MAX_MINUS_1);
+ t = imul(t ^ (t >> 15), t | 1) & (_32_BIT_MAX_MINUS_1);
+ t ^= (t + imul(t ^ (t >> 7), t | 61)) & (_32_BIT_MAX_MINUS_1);
+ t = (t ^ (t >> 14)) & (_32_BIT_MAX_MINUS_1);
+ return t % max;
+ }
+
+ /**
+ * @notice Replicate js Math.imul
+ */
+ function imul(uint256 a, uint256 b) private pure returns (uint256) {
+ return (a * b) % (_32_BIT_MAX_MINUS_1 + 1);
+ }
+
+ /**
+ * @notice Get a token's seed util
+ */
+ function _getSeed(SeedInput memory _seedInput, uint256 tokenId) private view returns (bytes32) {
+ return keccak256(abi.encodePacked(_seedInput.previousBlockHash, tokenId, _seedInput.blockTimestamp));
+ }
+
+ /**
+ * @notice Efficient revert
+ */
+ function _revert(bytes4 errorSelector) private pure {
+ assembly {
+ mstore(0x00, errorSelector)
+ revert(0x00, 0x04)
+ }
+ }
+}
diff --git a/contracts/erc1155/interfaces/IERC1155YungWkndMint.sol b/contracts/erc1155/interfaces/IERC1155YungWkndMint.sol
new file mode 100644
index 0000000..69fdf89
--- /dev/null
+++ b/contracts/erc1155/interfaces/IERC1155YungWkndMint.sol
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: UNLICENSED
+pragma solidity 0.8.10;
+
+/**
+ * @notice General1155 mint interface for sequentially minted collections
+ * @author highlight.xyz
+ */
+interface IERC1155YungWkndMint {
+ /**
+ * @notice Mint one token to one recipient
+ * @param recipient Recipient of minted NFT
+ */
+ function mintOneToOneRecipient(address recipient) external returns (uint256);
+
+ /**
+ * @notice Mint one token to one recipient
+ * @param recipient Recipient of minted NFT
+ * @param tokenId Token id to mint another copy of
+ */
+ function mintExistingOneToOneRecipient(address recipient, uint256 tokenId) external returns (uint256);
+
+ /**
+ * @notice Mint one token to one recipient
+ * @param recipient Recipient of minted NFT
+ * @param seed Seed to mint specifically
+ */
+ function mintSeedToOneRecipient(address recipient, bytes32 seed) external returns (uint256);
+}
diff --git a/contracts/erc1155/interfaces/IHLFS.sol b/contracts/erc1155/interfaces/IHLFS.sol
new file mode 100644
index 0000000..1a5d17a
--- /dev/null
+++ b/contracts/erc1155/interfaces/IHLFS.sol
@@ -0,0 +1,19 @@
+//SPDX-License-Identifier: UNLICENSED
+pragma solidity 0.8.10;
+
+interface IHLFS {
+ /**
+ * @notice Return registered file names
+ */
+ function files() external view returns (string[] memory);
+
+ /**
+ * @notice Return storage bytecode addresses for a file
+ */
+ function fileStorage(string calldata fileName) external view returns (address[] memory);
+
+ /**
+ * @notice Return file contents
+ */
+ function fileContents(string calldata fileName) external view returns (string memory);
+}
\ No newline at end of file
diff --git a/contracts/erc1155/interfaces/IHighlightRenderer.sol b/contracts/erc1155/interfaces/IHighlightRenderer.sol
new file mode 100644
index 0000000..b79f44a
--- /dev/null
+++ b/contracts/erc1155/interfaces/IHighlightRenderer.sol
@@ -0,0 +1,46 @@
+//SPDX-License-Identifier: UNLICENSED
+pragma solidity 0.8.10;
+
+/**
+ * @notice Highlight's custom renderer interface for collections
+ */
+interface IHighlightRenderer {
+ /**
+ * @notice Process a mint to multiple recipients (likely store mint details)
+ * @dev Implementations should assume msg.sender to be the NFT contract
+ * @param firstTokenId ID of first token to be minted (next ones are minted sequentially)
+ * @param numTokensPerRecipient Number of tokens minted to each recipient
+ * @param orderedRecipients Recipients to mint tokens to, sequentially
+ */
+ function processMultipleRecipientMint(
+ uint256 firstTokenId,
+ uint256 numTokensPerRecipient,
+ address[] calldata orderedRecipients
+ ) external;
+
+ /**
+ * @notice Process a mint to one recipient (likely store mint details)
+ * @dev Implementations should assume msg.sender to be the NFT contract
+ * @param firstTokenId ID of first token to be minted (next ones are minted sequentially)
+ * @param numTokens Number of tokens minted
+ * @param recipient Recipient to mint to
+ */
+ function processOneRecipientMint(uint256 firstTokenId, uint256 numTokens, address recipient) external;
+
+
+ /**
+ * @notice Process a mint to one recipient with a hash (likely store mint details)
+ * @dev Implementations should assume msg.sender to be the NFT contract
+ * @param tokenId ID of token to be minted
+ * @param inputHash hash that idempotently re-creates the art
+ */
+ function processRecipientMintWithHash(uint256 tokenId, bytes32 inputHash) external;
+
+
+ /**
+ * @notice Return token metadata for a token
+ * @dev Implementations should assume msg.sender to be the NFT contract
+ * @param tokenId ID of token to return metadata for
+ */
+ function tokenURI(uint256 tokenId) external view returns (string memory);
+}
diff --git a/contracts/erc1155/onchain/ERC1155YungWkndOnChain.sol b/contracts/erc1155/onchain/ERC1155YungWkndOnChain.sol
new file mode 100644
index 0000000..cd77701
--- /dev/null
+++ b/contracts/erc1155/onchain/ERC1155YungWkndOnChain.sol
@@ -0,0 +1,127 @@
+//SPDX-License-Identifier: UNLICENSED
+pragma solidity 0.8.10;
+
+import "../ERC1155Base.sol";
+import "../../tokenManager/interfaces/IPostTransfer.sol";
+import "../../tokenManager/interfaces/IPostBurn.sol";
+import "../ERC1155YungWkndBase.sol";
+import "./OnchainFileStorage.sol";
+
+/**
+ * @title Generative ERC1155
+ * @dev Inherits from OnchainFileStorage for file handling
+ * @author highlight.xyz
+ * @notice Generative NFT smart contract
+ */
+contract ERC1155YungWkndOnChain is ERC1155YungWkndBase, OnchainFileStorage {
+ using EnumerableSet for EnumerableSet.AddressSet;
+
+ /**
+ * @notice Generative Code URI
+ */
+ string private _generativeCodeURI;
+
+ /**
+ * @notice Initialize the contract
+ * @param data Data to initialize the contract
+ * @ param creator Creator/owner of contract
+ * @ param _contractURI Contract metadata
+ * @ param defaultRoyalty Default royalty object for contract (optional)
+ * @ param _defaultTokenManager Default token manager for contract (optional)
+ * @ param _name Name of token edition
+ * @ param _symbol Symbol of the token edition
+ * @ param trustedForwarder Trusted minimal forwarder
+ * @ param initialMinter Initial minter to register
+ * @ param _generativeCodeURI Generative code URI
+ * @ param newBaseURI Base URI for contract
+ * @ param _limitSupply Initial limit supply
+ * @ param useMarketplaceFiltererRegistry Denotes whether to use marketplace filterer registry
+ * @param _observability Observability contract address
+ */
+ function initialize(bytes calldata data, address _observability) external initializer {
+ (
+ address creator,
+ string memory _contractURI,
+ IRoyaltyManager.Royalty memory defaultRoyalty,
+ address _defaultTokenManager,
+ string memory _name,
+ string memory _symbol,
+ address trustedForwarder,
+ address initialMinter,
+ string memory _codeURI,
+ string memory newBaseURI,
+ uint256 _limitSupply,
+ bool useMarketplaceFiltererRegistry
+ ) = abi.decode(
+ data,
+ (
+ address,
+ string,
+ IRoyaltyManager.Royalty,
+ address,
+ string,
+ string,
+ address,
+ address,
+ string,
+ string,
+ uint256,
+ bool
+ )
+ );
+
+ __ERC1155URIStorage_init();
+ __ERC1155Base_initialize(creator, defaultRoyalty, _defaultTokenManager);
+ __ERC2771ContextUpgradeable__init__(trustedForwarder);
+ __ERC1155_init(_name, _symbol);
+ // deprecate but keep input for backwards-compatibility:
+ // __MarketplaceFilterer__init__(useMarketplaceFiltererRegistry);
+ _minters.add(initialMinter);
+ contractURI = _contractURI;
+ _generativeCodeURI = _codeURI;
+ IObservability(_observability).emitGenerativeSeriesDeployed(address(this));
+ observability = IObservability(_observability);
+
+ if (bytes(newBaseURI).length > 0) {
+ _setBaseURI(newBaseURI);
+ // don't emit on observability contract here
+ }
+
+ if (_limitSupply > 0) {
+ limitSupply = _limitSupply;
+ // don't emit on observability contract here
+ }
+ }
+
+ function generativeCodeUri() external view returns (string memory) {
+ return _generativeCodeURI;
+ }
+
+ /**
+ * @notice Used for meta-transactions
+ */
+ function _msgSender()
+ internal
+ view
+ override(ERC1155YungWkndBase, ContextUpgradeable)
+ returns (address sender)
+ {
+ return ERC1155YungWkndBase._msgSender();
+ }
+
+ /**
+ * @notice Used for meta-transactions
+ */
+ function _msgData() internal view override(ERC1155YungWkndBase, ContextUpgradeable) returns (bytes calldata) {
+ return ERC1155YungWkndBase._msgData();
+ }
+
+ /**
+ * @dev For more efficient reverts.
+ */
+ function _revert(
+ bytes4 errorSelector
+ ) internal pure virtual override(ERC1155YungWkndBase, OnchainFileStorage) {
+ ERC1155YungWkndBase._revert(errorSelector);
+ }
+}
diff --git a/contracts/erc1155/onchain/OnchainFileStorage.sol b/contracts/erc1155/onchain/OnchainFileStorage.sol
new file mode 100644
index 0000000..2ecd0c4
--- /dev/null
+++ b/contracts/erc1155/onchain/OnchainFileStorage.sol
@@ -0,0 +1,153 @@
+//SPDX-License-Identifier: UNLICENSED
+pragma solidity 0.8.10;
+
+import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
+
+/**
+ * @title Onchain File Storage
+ * @notice Introduces file handling to place utilities onchain
+ * @author highlight.xyz
+ */
+abstract contract OnchainFileStorage is OwnableUpgradeable {
+ /**
+ * @notice File existence errors
+ */
+ error FileAlreadyRegistered();
+ error FileNotRegistered();
+
+ /**
+ * @notice File storage
+ * @dev File-scoped bytecode addresses (pointers) holding contents
+ */
+ mapping(bytes => address[]) private _fileStorage;
+
+ /**
+ * @notice File storage path names
+ * @dev Store registered file names (all will be present as keys in `fileStorage`)
+ */
+ bytes[] private _files;
+
+ /**
+ * @notice Add a file via its name and associated storage bytecode addresses
+ */
+ function addFile(string calldata fileName, address[] calldata fileStorageAddresses) external onlyOwner {
+ bytes memory _fileName = bytes(fileName);
+ if (_fileStorage[_fileName].length != 0) {
+ _revert(FileAlreadyRegistered.selector);
+ }
+
+ _files.push(_fileName);
+ _fileStorage[_fileName] = fileStorageAddresses;
+ }
+
+ /**
+ * @notice Remove a file from registered list of file names, and its associated storage bytecode addresses
+ */
+ function removeFile(string calldata fileName) external onlyOwner {
+ bytes memory _fileName = bytes(fileName);
+ if (_fileStorage[_fileName].length == 0) {
+ _revert(FileNotRegistered.selector);
+ }
+
+ bytes[] memory oldFiles = _files;
+ bytes[] memory newFiles = new bytes[](oldFiles.length - 1);
+ uint256 fileIndexOffset = 0;
+ uint256 oldFilesLength = oldFiles.length;
+
+ for (uint256 i = 0; i < oldFilesLength; i++) {
+ if (keccak256(oldFiles[i]) == keccak256(_fileName)) {
+ fileIndexOffset = 1;
+ } else {
+ newFiles[i - fileIndexOffset] = oldFiles[i];
+ }
+ }
+
+ _files = newFiles;
+ delete _fileStorage[_fileName];
+ }
+
+ /**
+ * @notice Return registered file names
+ */
+ function files() external view returns (string[] memory) {
+ bytes[] memory fileNames = _files;
+ string[] memory fileNamesHumanReadable = new string[](fileNames.length);
+
+ for (uint256 i = 0; i < fileNames.length; i++) {
+ fileNamesHumanReadable[i] = string(fileNames[i]);
+ }
+
+ return fileNamesHumanReadable;
+ }
+
+ /**
+ * @notice Return storage bytecode addresses for a file
+ */
+ function fileStorage(string calldata fileName) external view returns (address[] memory) {
+ bytes memory _fileName = bytes(fileName);
+ if (_fileStorage[_fileName].length == 0) {
+ _revert(FileNotRegistered.selector);
+ }
+
+ return _fileStorage[bytes(fileName)];
+ }
+
+ /**
+ * @notice Return file contents
+ */
+ function fileContents(string calldata fileName) external view returns (string memory) {
+ bytes memory _fileName = bytes(fileName);
+ if (_fileStorage[_fileName].length == 0) {
+ _revert(FileNotRegistered.selector);
+ }
+
+ address[] memory fileStorageAddresses = _fileStorage[bytes(fileName)];
+ uint256 fileStorageAddressesLength = fileStorageAddresses.length;
+ string memory contents = "";
+
+ for (uint256 i = 0; i < fileStorageAddressesLength; i++) {
+ contents = string(
+ abi.encodePacked(
+ contents,
+ string(_readBytecode(fileStorageAddresses[i], 1, fileStorageAddresses[i].code.length - 1))
+ )
+ );
+ }
+
+ return contents;
+ }
+
+ /**
+ * @notice Read bytecode at an address
+ * @ author SOLMATE
+ */
+ function _readBytecode(address pointer, uint256 start, uint256 size) private view returns (bytes memory data) {
+ /// @solidity memory-safe-assembly
+ assembly {
+ // Get a pointer to some free memory.
+ data := mload(0x40)
+
+ // Update the free memory pointer to prevent overriding our data.
+ // We use and(x, not(31)) as a cheaper equivalent to sub(x, mod(x, 32)).
+ // Adding 31 to size and running the result through the logic above ensures
+ // the memory pointer remains word-aligned, following the Solidity convention.
+ mstore(0x40, add(data, and(add(add(size, 32), 31), not(31))))
+
+ // Store the size of the data in the first 32 byte chunk of free memory.
+ mstore(data, size)
+
+ // Copy the code into memory right after the 32 bytes we used to store the size.
+ extcodecopy(pointer, add(data, 32), start, size)
+ }
+ }
+
+ /**
+ * @dev For more efficient reverts.
+ */
+ function _revert(bytes4 errorSelector) internal pure virtual {
+ assembly {
+ mstore(0x00, errorSelector)
+ revert(0x00, 0x04)
+ }
+ }
+}
diff --git a/contracts/tokenManager/CheckerboardTokenManager.sol b/contracts/tokenManager/CheckerboardTokenManager.sol
index 46983e5..c74bc7c 100644
--- a/contracts/tokenManager/CheckerboardTokenManager.sol
+++ b/contracts/tokenManager/CheckerboardTokenManager.sol
@@ -97,6 +97,12 @@ contract CheckerboardTokenManager is ITokenManagerEditions, IPostBurn, Interface
*/
function postBurn(address /* operator */, address /* sender */, uint256 /* id */) external pure override {}
+ /* solhint-disable no-empty-blocks */
+ /**
+ * @notice See {IPostBurn-postBurnAmount}
+ */
+ function postBurnAmount(address /* operator */, address /* sender */, uint256 /* id */, uint256 /* amount */) external pure override {}
+
/* solhint-enable no-empty-blocks */
/**
diff --git a/contracts/tokenManager/ConsensualNonTransferableTokenManager.sol b/contracts/tokenManager/ConsensualNonTransferableTokenManager.sol
index 0c0a7c7..4ff3b0b 100644
--- a/contracts/tokenManager/ConsensualNonTransferableTokenManager.sol
+++ b/contracts/tokenManager/ConsensualNonTransferableTokenManager.sol
@@ -81,6 +81,12 @@ contract ConsensualNonTransferableTokenManager is
*/
function postBurn(address /* operator */, address /* sender */, uint256 /* id */) external pure override {}
+ /* solhint-disable no-empty-blocks */
+ /**
+ * @notice See {IPostBurn-postBurnAmount}
+ */
+ function postBurnAmount(address /* operator */, address /* sender */, uint256 /* id */, uint256 /* amount */) external pure override {}
+
/* solhint-enable no-empty-blocks */
/**
diff --git a/contracts/tokenManager/ConsensualNonTransferableTokenManager2.sol b/contracts/tokenManager/ConsensualNonTransferableTokenManager2.sol
index 2d049f6..893ed82 100644
--- a/contracts/tokenManager/ConsensualNonTransferableTokenManager2.sol
+++ b/contracts/tokenManager/ConsensualNonTransferableTokenManager2.sol
@@ -95,6 +95,12 @@ contract ConsensualNonTransferableTokenManager2 is
*/
function postBurn(address /* operator */, address /* sender */, uint256 /* id */) external pure override {}
+ /* solhint-disable no-empty-blocks */
+ /**
+ * @notice See {IPostBurn-postBurnAmount}
+ */
+ function postBurnAmount(address /* operator */, address /* sender */, uint256 /* id */, uint256 /* amount */) external pure override {}
+
/* solhint-enable no-empty-blocks */
/**
diff --git a/contracts/tokenManager/TransferAndBurnLockedTokenManager.sol b/contracts/tokenManager/TransferAndBurnLockedTokenManager.sol
index 7b54007..ea5a8fd 100644
--- a/contracts/tokenManager/TransferAndBurnLockedTokenManager.sol
+++ b/contracts/tokenManager/TransferAndBurnLockedTokenManager.sol
@@ -72,6 +72,13 @@ contract TransferAndBurnLockedTokenManager is ITokenManager, IPostTransfer, IPos
revert("Burns disallowed");
}
+ /**
+ * @notice See {IPostBurn-postBurnAmount}
+ */
+ function postBurnAmount(address /* operator */, address /* sender */, uint256 /* id */, uint256 /* amount */) external pure override {
+ revert("Burns disallowed");
+ }
+
/**
* @notice See {IERC165-supportsInterface}.
*/
diff --git a/contracts/tokenManager/interfaces/IPostBurn.sol b/contracts/tokenManager/interfaces/IPostBurn.sol
index 4e0672c..4c9cf70 100644
--- a/contracts/tokenManager/interfaces/IPostBurn.sol
+++ b/contracts/tokenManager/interfaces/IPostBurn.sol
@@ -16,4 +16,14 @@ interface IPostBurn {
* @param id Burned token's id or id of edition of token that is burned
*/
function postBurn(address operator, address sender, uint256 id) external;
+
+ /**
+ * @notice Hook called by contract after burn, if token manager of burned token implements this
+ * interface.
+ * @param operator Operator burning tokens
+ * @param sender Msg sender
+ * @param id Burned token's id or id of edition of token that is burned
+ * @param amount Amount of tokens burned (in 1155 case)
+ */
+ function postBurnAmount(address operator, address sender, uint256 id, uint256 amount) external;
}
diff --git a/contracts/utils/ERC1155/ERC1155URIStorageUpgradeable.sol b/contracts/utils/ERC1155/ERC1155URIStorageUpgradeable.sol
new file mode 100644
index 0000000..b7e56a4
--- /dev/null
+++ b/contracts/utils/ERC1155/ERC1155URIStorageUpgradeable.sol
@@ -0,0 +1,78 @@
+// SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC1155/extensions/ERC1155URIStorage.sol)
+
+pragma solidity ^0.8.0;
+
+import "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol";
+import "./ERC1155Upgradeable.sol";
+import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
+
+/**
+ * @dev ERC1155 token with storage based token URI management.
+ * Inspired by the ERC721URIStorage extension
+ *
+ * _Available since v4.6._
+ */
+abstract contract ERC1155URIStorageUpgradeable is Initializable, ERC1155Upgradeable {
+ function __ERC1155URIStorage_init() internal onlyInitializing {
+ __ERC1155URIStorage_init_unchained();
+ }
+
+ function __ERC1155URIStorage_init_unchained() internal onlyInitializing {
+ _baseURI = "";
+ }
+ using StringsUpgradeable for uint256;
+
+ // Optional base URI
+ string private _baseURI;
+
+ // Optional mapping for token URIs
+ mapping(uint256 => string) internal _tokenURIs;
+
+ /**
+ * @dev See {IERC1155MetadataURI-uri}.
+ *
+ * This implementation returns the concatenation of the `_baseURI`
+ * and the token-specific uri if the latter is set
+ *
+ * This enables the following behaviors:
+ *
+ * - if `_tokenURIs[tokenId]` is set, then the result is the concatenation
+ * of `_baseURI` and `_tokenURIs[tokenId]` (keep in mind that `_baseURI`
+ * is empty per default);
+ *
+ * - if `_tokenURIs[tokenId]` is NOT set then we fallback to `super.uri()`
+ * which in most cases will contain `ERC1155._uri`;
+ *
+ * - if `_tokenURIs[tokenId]` is NOT set, and if the parents do not have a
+ * uri value set, then the result is empty.
+ */
+ function uri(uint256 tokenId) public view virtual override returns (string memory) {
+ string memory tokenURI = _tokenURIs[tokenId];
+
+ // If token URI is set, concatenate base URI and tokenURI (via abi.encodePacked).
+ return bytes(tokenURI).length > 0 ? string(abi.encodePacked(_baseURI, tokenURI)) : super.uri(tokenId);
+ }
+
+ /**
+ * @dev Sets `tokenURI` as the tokenURI of `tokenId`.
+ */
+ function _setURI(uint256 tokenId, string memory tokenURI) internal virtual {
+ _tokenURIs[tokenId] = tokenURI;
+ emit URI(uri(tokenId), tokenId);
+ }
+
+ /**
+ * @dev Sets `baseURI` as the `_baseURI` for all tokens
+ */
+ function _setBaseURI(string memory baseURI) internal virtual {
+ _baseURI = baseURI;
+ }
+
+ /**
+ * @dev This empty reserved space is put in place to allow future versions to add new
+ * variables without shifting down storage in the inheritance chain.
+ * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
+ */
+ uint256[48] private __gap;
+}
diff --git a/contracts/utils/ERC1155/ERC1155Upgradeable.sol b/contracts/utils/ERC1155/ERC1155Upgradeable.sol
new file mode 100644
index 0000000..0fa029d
--- /dev/null
+++ b/contracts/utils/ERC1155/ERC1155Upgradeable.sol
@@ -0,0 +1,548 @@
+// SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/ERC1155.sol)
+
+pragma solidity ^0.8.0;
+
+import "./IERC1155Upgradeable.sol";
+import "./IERC1155ReceiverUpgradeable.sol";
+import "./IERC1155MetadataURIUpgradeable.sol";
+import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";
+import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
+import "../ERC165/ERC165Upgradeable.sol";
+import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
+
+/**
+ * @dev Implementation of the basic standard multi-token.
+ * See https://eips.ethereum.org/EIPS/eip-1155
+ * Originally based on code by Enjin: https://github.com/enjin/erc-1155
+ *
+ * _Available since v3.1._
+ */
+contract ERC1155Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeable, IERC1155Upgradeable, IERC1155MetadataURIUpgradeable {
+ // Token name
+ string private _name;
+
+ // Token symbol
+ string private _symbol;
+
+ using AddressUpgradeable for address;
+
+ // Mapping from token ID to account balances
+ mapping(uint256 => mapping(address => uint256)) private _balances;
+
+ // Mapping from account to operator approvals
+ mapping(address => mapping(address => bool)) private _operatorApprovals;
+
+ // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json
+ string private _uri;
+
+ /**
+ * @dev See {_setURI}.
+ */
+ function __ERC1155_init(string memory name_, string memory symbol_) internal onlyInitializing {
+ __ERC1155_init_unchained(name_, symbol_);
+ }
+
+ function __ERC1155_init_unchained(string memory name_, string memory symbol_) internal onlyInitializing {
+ _name = name_;
+ _symbol = symbol_;
+ }
+
+ /**
+ * @dev See {IERC165-supportsInterface}.
+ */
+ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165Upgradeable, IERC165Upgradeable) returns (bool) {
+ return
+ interfaceId == type(IERC1155Upgradeable).interfaceId ||
+ interfaceId == type(IERC1155MetadataURIUpgradeable).interfaceId ||
+ super.supportsInterface(interfaceId);
+ }
+
+ /**
+ * @dev See {IERC1155MetadataURI-uri}.
+ *
+ * This implementation returns the same URI for *all* token types. It relies
+ * on the token type ID substitution mechanism
+ * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
+ *
+ * Clients calling this function must replace the `\{id\}` substring with the
+ * actual token type ID.
+ */
+ function uri(uint256) public view virtual override returns (string memory) {
+ return _uri;
+ }
+
+ /**
+ * @dev See {IERC1155-balanceOf}.
+ *
+ * Requirements:
+ *
+ * - `account` cannot be the zero address.
+ */
+ function balanceOf(address account, uint256 id) public view virtual override returns (uint256) {
+ require(account != address(0), "ERC1155: address zero is not a valid owner");
+ return _balances[id][account];
+ }
+
+ /**
+ * @dev See {IERC1155-balanceOfBatch}.
+ *
+ * Requirements:
+ *
+ * - `accounts` and `ids` must have the same length.
+ */
+ function balanceOfBatch(
+ address[] memory accounts,
+ uint256[] memory ids
+ ) public view virtual override returns (uint256[] memory) {
+ require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch");
+
+ uint256[] memory batchBalances = new uint256[](accounts.length);
+
+ for (uint256 i = 0; i < accounts.length; ++i) {
+ batchBalances[i] = balanceOf(accounts[i], ids[i]);
+ }
+
+ return batchBalances;
+ }
+
+ /**
+ * @dev See {IERC1155-setApprovalForAll}.
+ */
+ function setApprovalForAll(address operator, bool approved) public virtual override {
+ _setApprovalForAll(_msgSender(), operator, approved);
+ }
+
+ /**
+ * @dev Added by Highlight for convenience
+ */
+ function name() public view virtual returns (string memory) {
+ return _name;
+ }
+
+ /**
+ * @dev Added by Highlight for convenience
+ */
+ function symbol() public view virtual returns (string memory) {
+ return _symbol;
+ }
+
+ /**
+ * @dev Added by Highlight to facilitate updating of name and symbol
+ */
+ function _setContractMetadata(string calldata newName, string calldata newSymbol) internal {
+ _name = newName;
+ _symbol = newSymbol;
+ }
+
+ /**
+ * @dev See {IERC1155-isApprovedForAll}.
+ */
+ function isApprovedForAll(address account, address operator) public view virtual override returns (bool) {
+ return _operatorApprovals[account][operator];
+ }
+
+ /**
+ * @dev See {IERC1155-safeTransferFrom}.
+ */
+ function safeTransferFrom(
+ address from,
+ address to,
+ uint256 id,
+ uint256 amount,
+ bytes memory data
+ ) public virtual override {
+ require(
+ from == _msgSender() || isApprovedForAll(from, _msgSender()),
+ "ERC1155: caller is not token owner or approved"
+ );
+ _safeTransferFrom(from, to, id, amount, data);
+ }
+
+ /**
+ * @dev See {IERC1155-safeBatchTransferFrom}.
+ */
+ function safeBatchTransferFrom(
+ address from,
+ address to,
+ uint256[] memory ids,
+ uint256[] memory amounts,
+ bytes memory data
+ ) public virtual override {
+ require(
+ from == _msgSender() || isApprovedForAll(from, _msgSender()),
+ "ERC1155: caller is not token owner or approved"
+ );
+ _safeBatchTransferFrom(from, to, ids, amounts, data);
+ }
+
+ /**
+ * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
+ *
+ * Emits a {TransferSingle} event.
+ *
+ * Requirements:
+ *
+ * - `to` cannot be the zero address.
+ * - `from` must have a balance of tokens of type `id` of at least `amount`.
+ * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
+ * acceptance magic value.
+ */
+ function _safeTransferFrom(
+ address from,
+ address to,
+ uint256 id,
+ uint256 amount,
+ bytes memory data
+ ) internal virtual {
+ require(to != address(0), "ERC1155: transfer to the zero address");
+
+ address operator = _msgSender();
+ uint256[] memory ids = _asSingletonArray(id);
+ uint256[] memory amounts = _asSingletonArray(amount);
+
+ _beforeTokenTransfer(operator, from, to, ids, amounts, data);
+
+ uint256 fromBalance = _balances[id][from];
+ require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
+ unchecked {
+ _balances[id][from] = fromBalance - amount;
+ }
+ _balances[id][to] += amount;
+
+ emit TransferSingle(operator, from, to, id, amount);
+
+ _afterTokenTransfer(operator, from, to, ids, amounts, data);
+
+ _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
+ }
+
+ /**
+ * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.
+ *
+ * Emits a {TransferBatch} event.
+ *
+ * Requirements:
+ *
+ * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
+ * acceptance magic value.
+ */
+ function _safeBatchTransferFrom(
+ address from,
+ address to,
+ uint256[] memory ids,
+ uint256[] memory amounts,
+ bytes memory data
+ ) internal virtual {
+ require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
+ require(to != address(0), "ERC1155: transfer to the zero address");
+
+ address operator = _msgSender();
+
+ _beforeTokenTransfer(operator, from, to, ids, amounts, data);
+
+ for (uint256 i = 0; i < ids.length; ++i) {
+ uint256 id = ids[i];
+ uint256 amount = amounts[i];
+
+ uint256 fromBalance = _balances[id][from];
+ require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
+ unchecked {
+ _balances[id][from] = fromBalance - amount;
+ }
+ _balances[id][to] += amount;
+ }
+
+ emit TransferBatch(operator, from, to, ids, amounts);
+
+ _afterTokenTransfer(operator, from, to, ids, amounts, data);
+
+ _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);
+ }
+
+ /**
+ * @dev Sets a new URI for all token types, by relying on the token type ID
+ * substitution mechanism
+ * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
+ *
+ * By this mechanism, any occurrence of the `\{id\}` substring in either the
+ * URI or any of the amounts in the JSON file at said URI will be replaced by
+ * clients with the token type ID.
+ *
+ * For example, the `https://token-cdn-domain/\{id\}.json` URI would be
+ * interpreted by clients as
+ * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`
+ * for token type ID 0x4cce0.
+ *
+ * See {uri}.
+ *
+ * Because these URIs cannot be meaningfully represented by the {URI} event,
+ * this function emits no events.
+ */
+ function _setURI(string memory newuri) internal virtual {
+ _uri = newuri;
+ }
+
+ /**
+ * @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
+ *
+ * Emits a {TransferSingle} event.
+ *
+ * Requirements:
+ *
+ * - `to` cannot be the zero address.
+ * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
+ * acceptance magic value.
+ */
+ function _mint(address to, uint256 id, uint256 amount, bytes memory data) internal virtual {
+ require(to != address(0), "ERC1155: mint to the zero address");
+
+ address operator = _msgSender();
+ uint256[] memory ids = _asSingletonArray(id);
+ uint256[] memory amounts = _asSingletonArray(amount);
+
+ _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);
+
+ _balances[id][to] += amount;
+ emit TransferSingle(operator, address(0), to, id, amount);
+
+ _afterTokenTransfer(operator, address(0), to, ids, amounts, data);
+
+ _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data);
+ }
+
+ /**
+ * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.
+ *
+ * Emits a {TransferBatch} event.
+ *
+ * Requirements:
+ *
+ * - `ids` and `amounts` must have the same length.
+ * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
+ * acceptance magic value.
+ */
+ function _mintBatch(
+ address to,
+ uint256[] memory ids,
+ uint256[] memory amounts,
+ bytes memory data
+ ) internal virtual {
+ require(to != address(0), "ERC1155: mint to the zero address");
+ require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
+
+ address operator = _msgSender();
+
+ _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);
+
+ for (uint256 i = 0; i < ids.length; i++) {
+ _balances[ids[i]][to] += amounts[i];
+ }
+
+ emit TransferBatch(operator, address(0), to, ids, amounts);
+
+ _afterTokenTransfer(operator, address(0), to, ids, amounts, data);
+
+ _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data);
+ }
+
+ /**
+ * @dev Destroys `amount` tokens of token type `id` from `from`
+ *
+ * Emits a {TransferSingle} event.
+ *
+ * Requirements:
+ *
+ * - `from` cannot be the zero address.
+ * - `from` must have at least `amount` tokens of token type `id`.
+ */
+ function _burn(address from, uint256 id, uint256 amount) internal virtual {
+ require(from != address(0), "ERC1155: burn from the zero address");
+
+ address operator = _msgSender();
+ uint256[] memory ids = _asSingletonArray(id);
+ uint256[] memory amounts = _asSingletonArray(amount);
+
+ _beforeTokenTransfer(operator, from, address(0), ids, amounts, "");
+
+ uint256 fromBalance = _balances[id][from];
+ require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
+ unchecked {
+ _balances[id][from] = fromBalance - amount;
+ }
+
+ emit TransferSingle(operator, from, address(0), id, amount);
+
+ _afterTokenTransfer(operator, from, address(0), ids, amounts, "");
+ }
+
+ /**
+ * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.
+ *
+ * Emits a {TransferBatch} event.
+ *
+ * Requirements:
+ *
+ * - `ids` and `amounts` must have the same length.
+ */
+ function _burnBatch(address from, uint256[] memory ids, uint256[] memory amounts) internal virtual {
+ require(from != address(0), "ERC1155: burn from the zero address");
+ require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
+
+ address operator = _msgSender();
+
+ _beforeTokenTransfer(operator, from, address(0), ids, amounts, "");
+
+ for (uint256 i = 0; i < ids.length; i++) {
+ uint256 id = ids[i];
+ uint256 amount = amounts[i];
+
+ uint256 fromBalance = _balances[id][from];
+ require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
+ unchecked {
+ _balances[id][from] = fromBalance - amount;
+ }
+ }
+
+ emit TransferBatch(operator, from, address(0), ids, amounts);
+
+ _afterTokenTransfer(operator, from, address(0), ids, amounts, "");
+ }
+
+ /**
+ * @dev Approve `operator` to operate on all of `owner` tokens
+ *
+ * Emits an {ApprovalForAll} event.
+ */
+ function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {
+ require(owner != operator, "ERC1155: setting approval status for self");
+ _operatorApprovals[owner][operator] = approved;
+ emit ApprovalForAll(owner, operator, approved);
+ }
+
+ /**
+ * @dev Hook that is called before any token transfer. This includes minting
+ * and burning, as well as batched variants.
+ *
+ * The same hook is called on both single and batched variants. For single
+ * transfers, the length of the `ids` and `amounts` arrays will be 1.
+ *
+ * Calling conditions (for each `id` and `amount` pair):
+ *
+ * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
+ * of token type `id` will be transferred to `to`.
+ * - When `from` is zero, `amount` tokens of token type `id` will be minted
+ * for `to`.
+ * - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
+ * will be burned.
+ * - `from` and `to` are never both zero.
+ * - `ids` and `amounts` have the same, non-zero length.
+ *
+ * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
+ */
+ function _beforeTokenTransfer(
+ address operator,
+ address from,
+ address to,
+ uint256[] memory ids,
+ uint256[] memory amounts,
+ bytes memory data
+ ) internal virtual {}
+
+ /**
+ * @dev Hook that is called after any token transfer. This includes minting
+ * and burning, as well as batched variants.
+ *
+ * The same hook is called on both single and batched variants. For single
+ * transfers, the length of the `id` and `amount` arrays will be 1.
+ *
+ * Calling conditions (for each `id` and `amount` pair):
+ *
+ * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
+ * of token type `id` will be transferred to `to`.
+ * - When `from` is zero, `amount` tokens of token type `id` will be minted
+ * for `to`.
+ * - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
+ * will be burned.
+ * - `from` and `to` are never both zero.
+ * - `ids` and `amounts` have the same, non-zero length.
+ *
+ * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
+ */
+ function _afterTokenTransfer(
+ address operator,
+ address from,
+ address to,
+ uint256[] memory ids,
+ uint256[] memory amounts,
+ bytes memory data
+ ) internal virtual {}
+
+ function _doSafeTransferAcceptanceCheck(
+ address operator,
+ address from,
+ address to,
+ uint256 id,
+ uint256 amount,
+ bytes memory data
+ ) private {
+ if (to.isContract()) {
+ try IERC1155ReceiverUpgradeable(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) {
+ if (response != IERC1155ReceiverUpgradeable.onERC1155Received.selector) {
+ revert("ERC1155: ERC1155Receiver rejected tokens");
+ }
+ } catch Error(string memory reason) {
+ revert(reason);
+ } catch {
+ revert("ERC1155: transfer to non-ERC1155Receiver implementer");
+ }
+ }
+ }
+
+ function _doSafeBatchTransferAcceptanceCheck(
+ address operator,
+ address from,
+ address to,
+ uint256[] memory ids,
+ uint256[] memory amounts,
+ bytes memory data
+ ) private {
+ if (to.isContract()) {
+ try IERC1155ReceiverUpgradeable(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (
+ bytes4 response
+ ) {
+ if (response != IERC1155ReceiverUpgradeable.onERC1155BatchReceived.selector) {
+ revert("ERC1155: ERC1155Receiver rejected tokens");
+ }
+ } catch Error(string memory reason) {
+ revert(reason);
+ } catch {
+ revert("ERC1155: transfer to non-ERC1155Receiver implementer");
+ }
+ }
+ }
+
+ function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
+ uint256[] memory array = new uint256[](1);
+ array[0] = element;
+
+ return array;
+ }
+
+ /**
+ * @dev For more efficient reverts.
+ */
+ function _revert(bytes4 errorSelector) internal pure virtual {
+ assembly {
+ mstore(0x00, errorSelector)
+ revert(0x00, 0x04)
+ }
+ }
+
+ /**
+ * @dev This empty reserved space is put in place to allow future versions to add new
+ * variables without shifting down storage in the inheritance chain.
+ * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
+ */
+ uint256[47] private __gap;
+}
diff --git a/contracts/utils/ERC1155/IERC1155MetadataURIUpgradeable.sol b/contracts/utils/ERC1155/IERC1155MetadataURIUpgradeable.sol
new file mode 100644
index 0000000..cac53ff
--- /dev/null
+++ b/contracts/utils/ERC1155/IERC1155MetadataURIUpgradeable.sol
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol)
+
+pragma solidity ^0.8.0;
+
+import "./IERC1155Upgradeable.sol";
+
+/**
+ * @dev Interface of the optional ERC1155MetadataExtension interface, as defined
+ * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].
+ *
+ * _Available since v3.1._
+ */
+interface IERC1155MetadataURIUpgradeable is IERC1155Upgradeable {
+ /**
+ * @dev Returns the URI for token type `id`.
+ *
+ * If the `\{id\}` substring is present in the URI, it must be replaced by
+ * clients with the actual token type ID.
+ */
+ function uri(uint256 id) external view returns (string memory);
+}
diff --git a/contracts/utils/ERC1155/IERC1155ReceiverUpgradeable.sol b/contracts/utils/ERC1155/IERC1155ReceiverUpgradeable.sol
new file mode 100644
index 0000000..2e9677d
--- /dev/null
+++ b/contracts/utils/ERC1155/IERC1155ReceiverUpgradeable.sol
@@ -0,0 +1,58 @@
+// SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)
+
+pragma solidity ^0.8.0;
+
+import "../ERC165/IERC165Upgradeable.sol";
+
+/**
+ * @dev _Available since v3.1._
+ */
+interface IERC1155ReceiverUpgradeable is IERC165Upgradeable {
+ /**
+ * @dev Handles the receipt of a single ERC1155 token type. This function is
+ * called at the end of a `safeTransferFrom` after the balance has been updated.
+ *
+ * NOTE: To accept the transfer, this must return
+ * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
+ * (i.e. 0xf23a6e61, or its own function selector).
+ *
+ * @param operator The address which initiated the transfer (i.e. msg.sender)
+ * @param from The address which previously owned the token
+ * @param id The ID of the token being transferred
+ * @param value The amount of tokens being transferred
+ * @param data Additional data with no specified format
+ * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
+ */
+ function onERC1155Received(
+ address operator,
+ address from,
+ uint256 id,
+ uint256 value,
+ bytes calldata data
+ ) external returns (bytes4);
+
+ /**
+ * @dev Handles the receipt of a multiple ERC1155 token types. This function
+ * is called at the end of a `safeBatchTransferFrom` after the balances have
+ * been updated.
+ *
+ * NOTE: To accept the transfer(s), this must return
+ * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
+ * (i.e. 0xbc197c81, or its own function selector).
+ *
+ * @param operator The address which initiated the batch transfer (i.e. msg.sender)
+ * @param from The address which previously owned the token
+ * @param ids An array containing ids of each token being transferred (order and length must match values array)
+ * @param values An array containing amounts of each token being transferred (order and length must match ids array)
+ * @param data Additional data with no specified format
+ * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
+ */
+ function onERC1155BatchReceived(
+ address operator,
+ address from,
+ uint256[] calldata ids,
+ uint256[] calldata values,
+ bytes calldata data
+ ) external returns (bytes4);
+}
diff --git a/contracts/utils/ERC1155/IERC1155Upgradeable.sol b/contracts/utils/ERC1155/IERC1155Upgradeable.sol
new file mode 100644
index 0000000..f40c246
--- /dev/null
+++ b/contracts/utils/ERC1155/IERC1155Upgradeable.sol
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/IERC1155.sol)
+
+pragma solidity ^0.8.0;
+
+import "../ERC165/IERC165Upgradeable.sol";
+
+/**
+ * @dev Required interface of an ERC1155 compliant contract, as defined in the
+ * https://eips.ethereum.org/EIPS/eip-1155[EIP].
+ *
+ * _Available since v3.1._
+ */
+interface IERC1155Upgradeable is IERC165Upgradeable {
+ /**
+ * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
+ */
+ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);
+
+ /**
+ * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
+ * transfers.
+ */
+ event TransferBatch(
+ address indexed operator,
+ address indexed from,
+ address indexed to,
+ uint256[] ids,
+ uint256[] values
+ );
+
+ /**
+ * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
+ * `approved`.
+ */
+ event ApprovalForAll(address indexed account, address indexed operator, bool approved);
+
+ /**
+ * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
+ *
+ * If an {URI} event was emitted for `id`, the standard
+ * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
+ * returned by {IERC1155MetadataURI-uri}.
+ */
+ event URI(string value, uint256 indexed id);
+
+ /**
+ * @dev Returns the amount of tokens of token type `id` owned by `account`.
+ *
+ * Requirements:
+ *
+ * - `account` cannot be the zero address.
+ */
+ function balanceOf(address account, uint256 id) external view returns (uint256);
+
+ /**
+ * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
+ *
+ * Requirements:
+ *
+ * - `accounts` and `ids` must have the same length.
+ */
+ function balanceOfBatch(
+ address[] calldata accounts,
+ uint256[] calldata ids
+ ) external view returns (uint256[] memory);
+
+ /**
+ * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
+ *
+ * Emits an {ApprovalForAll} event.
+ *
+ * Requirements:
+ *
+ * - `operator` cannot be the caller.
+ */
+ function setApprovalForAll(address operator, bool approved) external;
+
+ /**
+ * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
+ *
+ * See {setApprovalForAll}.
+ */
+ function isApprovedForAll(address account, address operator) external view returns (bool);
+
+ /**
+ * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
+ *
+ * Emits a {TransferSingle} event.
+ *
+ * Requirements:
+ *
+ * - `to` cannot be the zero address.
+ * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.
+ * - `from` must have a balance of tokens of type `id` of at least `amount`.
+ * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
+ * acceptance magic value.
+ */
+ function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external;
+
+ /**
+ * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
+ *
+ * Emits a {TransferBatch} event.
+ *
+ * Requirements:
+ *
+ * - `ids` and `amounts` must have the same length.
+ * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
+ * acceptance magic value.
+ */
+ function safeBatchTransferFrom(
+ address from,
+ address to,
+ uint256[] calldata ids,
+ uint256[] calldata amounts,
+ bytes calldata data
+ ) external;
+}
diff --git a/package.json b/package.json
index 2251747..6a1843a 100644
--- a/package.json
+++ b/package.json
@@ -51,7 +51,7 @@
"shx": "^0.3.4",
"solhint": "^3.3.7",
"solhint-plugin-prettier": "^0.0.5",
- "solidity-coverage": "^0.7.21",
+ "solidity-coverage": "^0.8.3",
"ts-generator": "^0.1.1",
"ts-node": "^10.9.1",
"typechain": "^8.1.0",
@@ -73,7 +73,7 @@
"prettier:fix": "yarn prettier:check -w",
"test": "yarn test:separate",
"test:individual": "AUTO_MINING_ON=true hardhat test",
- "test:separate": "yarn test:individual test/AuctionsTest.ts && yarn test:individual test/EditionsMetadataRendererTest.ts && yarn test:individual test/ERC721BaseTest.ts && yarn test:individual test/ERC721EditionsTest.ts && yarn test:individual test/ERC721GeneralTest.ts && yarn test:individual test/ERC721GeneralSequenceTest.ts && yarn test:individual test/ERC721GenerativeTest.ts && yarn test:individual test/ERC721SingleEditionTest.ts && yarn test:individual test/ERC721StandardTest.ts && yarn test:individual test/MetaTransactionsTest.ts && yarn test:individual test/MintManagerTest.ts && yarn test:individual test/MechanicMintVectorsTest.ts && yarn test:individual test/UpgradesTest.ts",
+ "test:separate": "yarn test:individual test/ERC1155YungWkndOnChain.test.ts",
"typechain": "cross-env TS_NODE_TRANSPILE_ONLY=true hardhat typechain",
"local": "hardhat node",
"local:ipv4": "hardhat node --hostname 127.0.0.1",
diff --git a/test/ERC1155YungWkndOnChain.ts b/test/ERC1155YungWkndOnChain.ts
new file mode 100644
index 0000000..f0b432a
--- /dev/null
+++ b/test/ERC1155YungWkndOnChain.ts
@@ -0,0 +1,619 @@
+import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
+import { expect } from "chai";
+import { ethers } from "hardhat";
+
+import {
+ AuctionManager,
+ EditionsMetadataRenderer,
+ InvalidRoyaltyManager,
+ InvalidTokenManager,
+ LockedRoyaltyManager,
+ LockedTokenManager,
+ MinimalForwarder,
+ MintManager,
+ Observability,
+ OwnerOnlyRoyaltyManager,
+ OwnerOnlyTokenManager,
+ ERC1155YungWkndOnChain,
+} from "../types";
+import { Errors } from "./__utils__/data";
+import { setupSystem, setupYungWknd } from "./__utils__/helpers";
+
+enum BaseEvents {
+ MinterRegistrationChanged = "MinterRegistrationChanged",
+ GranularTokenManagersSet = "GranularTokenManagersSet",
+ GranularTokenManagersRemoved = "GranularTokenManagersRemoved",
+ DefaultTokenManagerChanged = "DefaultTokenManagerChanged",
+ DefaultRoyaltySet = "DefaultRoyaltySet",
+ GranularRoyaltiesSet = "GranularRoyaltiesSet",
+ RoyaltyManagerChanged = "RoyaltyManagerChanged",
+ MintsFrozen = "MintsFrozen",
+}
+
+const defaultEditionInfo = ethers.utils.defaultAbiCoder.encode(
+ ["tuple(string, string, string, string, string, string)"],
+ [["name", "description", "imageUrl", "animationUrl", "externalUrl", "attributes"]],
+);
+
+describe("ERC1155 YungWknd functionality", () => {
+ let invalidRoyaltyManager: InvalidRoyaltyManager;
+ let lockedRoyaltyManager: LockedRoyaltyManager;
+ let ownerOnlyRoyaltyManager: OwnerOnlyRoyaltyManager;
+ let invalidTokenManager: InvalidTokenManager;
+ let lockedTokenManager: LockedTokenManager;
+ let ownerOnlyTokenManager: OwnerOnlyTokenManager;
+ let initialPlatformExecutor: SignerWithAddress,
+ mintManagerOwner: SignerWithAddress,
+ editionsMetadataOwner: SignerWithAddress,
+ platformPaymentAddress: SignerWithAddress,
+ editionsOwner: SignerWithAddress,
+ fan1: SignerWithAddress;
+
+ let emr: EditionsMetadataRenderer;
+ let mintManager: MintManager;
+ let auctionManager: AuctionManager;
+ let trustedForwarder: MinimalForwarder;
+ let observability: Observability;
+ let editionsImplementation: string;
+ let singleEditionImplementation: string;
+
+ const zeroRoyalty = {
+ recipientAddress: ethers.constants.AddressZero,
+ royaltyPercentageBPS: 0,
+ };
+
+ before(async () => {
+ [initialPlatformExecutor, mintManagerOwner, editionsMetadataOwner, platformPaymentAddress, editionsOwner, fan1] =
+ await ethers.getSigners();
+ const {
+ emrProxy,
+ mintManagerProxy,
+ minimalForwarder,
+ auctionManagerProxy,
+ observability: observabilityInstance,
+ editionsImplementationAddress,
+ singleEditionImplementationAddress,
+ } = await setupSystem(
+ platformPaymentAddress.address,
+ mintManagerOwner.address,
+ initialPlatformExecutor.address,
+ editionsMetadataOwner.address,
+ editionsOwner,
+ );
+
+ emr = emrProxy;
+ mintManager = mintManagerProxy;
+ trustedForwarder = minimalForwarder;
+ auctionManager = auctionManagerProxy;
+ observability = observabilityInstance;
+ editionsImplementation = editionsImplementationAddress;
+ singleEditionImplementation = singleEditionImplementationAddress;
+
+ invalidRoyaltyManager = await (await ethers.getContractFactory("InvalidRoyaltyManager")).deploy();
+ lockedRoyaltyManager = await (await ethers.getContractFactory("LockedRoyaltyManager")).deploy();
+ ownerOnlyRoyaltyManager = await (await ethers.getContractFactory("OwnerOnlyRoyaltyManager")).deploy();
+
+ invalidTokenManager = await (await ethers.getContractFactory("InvalidTokenManager")).deploy();
+ lockedTokenManager = await (await ethers.getContractFactory("LockedTokenManager")).deploy();
+ ownerOnlyTokenManager = await (await ethers.getContractFactory("OwnerOnlyTokenManager")).deploy();
+ });
+
+ describe("ERC1155YungWkndRenderer", function () {
+ let yw: ERC1155YungWkndOnChain;
+
+ beforeEach(async () => {
+ yw = await setupYungWknd(
+ observability.address,
+ editionsImplementation,
+ mintManager.address,
+ auctionManager.address,
+ trustedForwarder.address,
+ emr.address,
+ editionsOwner,
+ );
+ });
+
+ describe("Minter registration", function () {
+ it("Non-owners cannot register or unregister minters2", async function () {
+ yw = yw.connect(fan1);
+ await expect(yw.registerMinter(fan1.address)).to.be.revertedWith("Ownable: caller is not the owner");
+
+ await expect(yw.unregisterMinter(fan1.address)).to.be.revertedWith("Ownable: caller is not the owner");
+ });
+
+ it("Can only register unregistered minters", async function () {
+ await expect(yw.registerMinter(fan1.address))
+ .to.emit(yw, BaseEvents.MinterRegistrationChanged)
+ .withArgs(fan1.address, true)
+ .to.emit(observability, BaseEvents.MinterRegistrationChanged)
+ .withArgs(yw.address, fan1.address, true);
+
+ await expect(yw.registerMinter(fan1.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.MinterRegistrationInvalid,
+ );
+ });
+
+ it("Can only unregister registered minters", async function () {
+ await expect(yw.unregisterMinter(fan1.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.MinterRegistrationInvalid,
+ );
+
+ await yw.registerMinter(fan1.address);
+
+ await expect(yw.unregisterMinter(fan1.address))
+ .to.emit(yw, BaseEvents.MinterRegistrationChanged)
+ .withArgs(fan1.address, false)
+ .to.emit(observability, BaseEvents.MinterRegistrationChanged)
+ .withArgs(yw.address, fan1.address, false);
+ });
+ });
+
+ describe("Granular token managers management", function () {
+ describe("Current token manager not existing", function () {
+ it("An invalid token manager cannot be set", async function () {
+ await expect(
+ yw.setGranularTokenManagers([0, 1], [invalidTokenManager.address, invalidTokenManager.address]),
+ ).to.be.revertedWithCustomError(yw, Errors.InvalidManager);
+
+ await expect(
+ yw.setGranularTokenManagers([0, 1], [lockedTokenManager.address, invalidTokenManager.address]),
+ ).to.be.revertedWithCustomError(yw, Errors.InvalidManager);
+
+ await expect(
+ yw.setGranularTokenManagers([0, 1], [invalidTokenManager.address, lockedTokenManager.address]),
+ ).to.be.revertedWithCustomError(yw, Errors.InvalidManager);
+ });
+
+ it("Non owners cannot call", async function () {
+ yw = yw.connect(fan1);
+ await expect(
+ yw.setGranularTokenManagers([0, 1], [lockedTokenManager.address, lockedTokenManager.address]),
+ ).to.be.revertedWithCustomError(yw, Errors.Unauthorized);
+ });
+
+ it("Owner can set granular token managers", async function () {
+ await expect(
+ yw.setGranularTokenManagers([0, 1], [lockedTokenManager.address, lockedTokenManager.address]),
+ )
+ .to.be.emit(yw, BaseEvents.GranularTokenManagersSet)
+ .withArgs([0, 1], [lockedTokenManager.address, lockedTokenManager.address]);
+
+ expect(await yw.tokenManager(0)).to.eql(lockedTokenManager.address);
+ expect(await yw.tokenManager(1)).to.eql(lockedTokenManager.address);
+ });
+
+ it("Cannot remove non-existent token manager", async function () {
+ await expect(yw.removeGranularTokenManagers([0])).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerDoesNotExist,
+ );
+ });
+ });
+
+ describe("Current token manager exists", async function () {
+ beforeEach(async function () {
+ await yw.setGranularTokenManagers(
+ [0, 1],
+ [ownerOnlyTokenManager.address, ownerOnlyTokenManager.address],
+ );
+
+ expect(await yw.tokenManager(0)).to.eql(ownerOnlyTokenManager.address);
+ expect(await yw.tokenManager(1)).to.eql(ownerOnlyTokenManager.address);
+ });
+
+ it("Swap attempts respect the wishes of current token managers", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(
+ yw.setGranularTokenManagers([0, 1], [lockedTokenManager.address, lockedTokenManager.address]),
+ ).to.be.revertedWithCustomError(yw, Errors.ManagerSwapBlocked);
+
+ yw = yw.connect(editionsOwner);
+
+ await expect(yw.setGranularTokenManagers([0], [lockedTokenManager.address]))
+ .to.be.emit(yw, BaseEvents.GranularTokenManagersSet)
+ .withArgs([0], [lockedTokenManager.address]);
+
+ expect(await yw.tokenManager(0)).to.eql(lockedTokenManager.address);
+
+ await expect(
+ yw.setGranularTokenManagers([0, 1], [ownerOnlyTokenManager.address, lockedTokenManager.address]),
+ ).to.be.revertedWithCustomError(yw, Errors.ManagerSwapBlocked);
+
+ await expect(yw.setGranularTokenManagers([1], [lockedTokenManager.address]))
+ .to.be.emit(yw, BaseEvents.GranularTokenManagersSet)
+ .withArgs([1], [lockedTokenManager.address]);
+
+ expect(await yw.tokenManager(1)).to.eql(lockedTokenManager.address);
+ });
+
+ it("Remove attempts respect the wishes of current token managers", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(yw.removeGranularTokenManagers([0, 1])).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerRemoveBlocked,
+ );
+
+ yw = yw.connect(editionsOwner);
+
+ await expect(yw.removeGranularTokenManagers([0]))
+ .to.emit(yw, BaseEvents.GranularTokenManagersRemoved)
+ .withArgs([0])
+ .to.emit(observability, BaseEvents.GranularTokenManagersRemoved)
+ .withArgs(yw.address, [0]);
+
+ expect(await yw.tokenManager(0)).to.eql(ethers.constants.AddressZero);
+ });
+ });
+ });
+
+ describe("Default token manager management", function () {
+ describe("Current default token manager not existing", function () {
+ it("An invalid default token manager cannot be set", async function () {
+ await expect(yw.setDefaultTokenManager(invalidTokenManager.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.InvalidManager,
+ );
+ });
+
+ it("Non owners cannot call", async function () {
+ yw = yw.connect(fan1);
+ await expect(yw.setDefaultTokenManager(lockedTokenManager.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.Unauthorized,
+ );
+ });
+
+ it("Owner can set default token manager", async function () {
+ await expect(yw.setDefaultTokenManager(lockedTokenManager.address))
+ .to.be.emit(yw, BaseEvents.DefaultTokenManagerChanged)
+ .withArgs(lockedTokenManager.address);
+
+ for (let i = 0; i < 5; i++) {
+ expect(await yw.tokenManager(0)).to.eql(lockedTokenManager.address);
+ }
+ });
+
+ it("Cannot remove non-existent default token manager", async function () {
+ await expect(yw.removeDefaultTokenManager()).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerDoesNotExist,
+ );
+ });
+ });
+
+ describe("Current default token manager existing", function () {
+ beforeEach(async function () {
+ yw = await setupYungWknd(
+ observability.address,
+ editionsImplementation,
+ mintManager.address,
+ auctionManager.address,
+ trustedForwarder.address,
+ emr.address,
+ editionsOwner,
+ null,
+ null,
+ ownerOnlyTokenManager.address,
+ );
+
+ for (let i = 0; i < 5; i++) {
+ expect(await yw.tokenManager(0)).to.eql(ownerOnlyTokenManager.address);
+ }
+ });
+
+ it("Swap attempts respect the wishes of current default token manager", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(yw.setDefaultTokenManager(lockedTokenManager.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerSwapBlocked,
+ );
+
+ yw = yw.connect(editionsOwner);
+
+ await expect(yw.setDefaultTokenManager(lockedTokenManager.address))
+ .to.emit(yw, BaseEvents.DefaultTokenManagerChanged)
+ .withArgs(lockedTokenManager.address)
+ .to.emit(observability, BaseEvents.DefaultTokenManagerChanged)
+ .withArgs(yw.address, lockedTokenManager.address);
+
+ for (let i = 0; i < 5; i++) {
+ expect(await yw.tokenManager(0)).to.eql(lockedTokenManager.address);
+ }
+
+ await expect(yw.setDefaultTokenManager(ownerOnlyTokenManager.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerSwapBlocked,
+ );
+ });
+
+ it("Remove attempts respect the wishes of current default token", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(yw.removeDefaultTokenManager()).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerRemoveBlocked,
+ );
+
+ yw = yw.connect(editionsOwner);
+
+ await expect(yw.removeDefaultTokenManager())
+ .to.emit(yw, BaseEvents.DefaultTokenManagerChanged)
+ .withArgs(ethers.constants.AddressZero);
+
+ for (let i = 0; i < 5; i++) {
+ expect(await yw.tokenManager(0)).to.eql(ethers.constants.AddressZero);
+ }
+ });
+ });
+ });
+
+ describe("Royalty manager management", function () {
+ describe("Current royalty manager not existing", function () {
+ it("An invalid royalty manager cannot be set", async function () {
+ await expect(yw.setRoyaltyManager(invalidRoyaltyManager.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.InvalidManager,
+ );
+ });
+
+ it("Non owners cannot call", async function () {
+ yw = yw.connect(fan1);
+ await expect(yw.setRoyaltyManager(ownerOnlyRoyaltyManager.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.Unauthorized,
+ );
+ });
+
+ it("Owner can set royalty manager", async function () {
+ await expect(yw.setRoyaltyManager(ownerOnlyRoyaltyManager.address))
+ .to.be.emit(yw, BaseEvents.RoyaltyManagerChanged)
+ .withArgs(ownerOnlyRoyaltyManager.address);
+
+ expect(await yw.royaltyManager()).to.eql(ownerOnlyRoyaltyManager.address);
+ });
+
+ it("Cannot remove non-existent royalty manager", async function () {
+ await expect(yw.removeRoyaltyManager()).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerDoesNotExist,
+ );
+ });
+ });
+
+ describe("Current royalty manager exists", function () {
+ beforeEach(async function () {
+ await expect(yw.setRoyaltyManager(ownerOnlyRoyaltyManager.address))
+ .to.be.emit(yw, BaseEvents.RoyaltyManagerChanged)
+ .withArgs(ownerOnlyRoyaltyManager.address);
+
+ expect(await yw.royaltyManager()).to.eql(ownerOnlyRoyaltyManager.address);
+ });
+
+ it("Swap attempts respect the wishes of current royalty manager", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(yw.setRoyaltyManager(lockedRoyaltyManager.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerSwapBlocked,
+ );
+
+ yw = yw.connect(editionsOwner);
+
+ await expect(yw.setRoyaltyManager(lockedRoyaltyManager.address))
+ .to.be.emit(yw, BaseEvents.RoyaltyManagerChanged)
+ .withArgs(lockedRoyaltyManager.address)
+ .to.be.emit(observability, BaseEvents.RoyaltyManagerChanged)
+ .withArgs(yw.address, lockedRoyaltyManager.address);
+
+ expect(await yw.royaltyManager()).to.eql(lockedRoyaltyManager.address);
+
+ await expect(yw.setRoyaltyManager(ownerOnlyRoyaltyManager.address)).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerSwapBlocked,
+ );
+ });
+
+ it("Remove attempts respect the wishes of current royalty manager", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(yw.removeRoyaltyManager()).to.be.revertedWithCustomError(
+ yw,
+ Errors.ManagerRemoveBlocked,
+ );
+
+ yw = yw.connect(editionsOwner);
+
+ await expect(yw.removeRoyaltyManager())
+ .to.emit(yw, BaseEvents.RoyaltyManagerChanged)
+ .withArgs(ethers.constants.AddressZero);
+
+ expect(await yw.royaltyManager()).to.eql(ethers.constants.AddressZero);
+ });
+ });
+ });
+
+ describe("Royalty management", function () {
+ describe("Current royalty manager does not exist", async function () {
+ it("Royalty perentage BPS cannot be greater than 10000 for setting default royalty", async function () {
+ await expect(
+ yw.setDefaultRoyalty({ recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 10001 }),
+ ).to.be.revertedWithCustomError(yw, Errors.RoyaltyBPSInvalid);
+ });
+
+ it("Non-owner cannot set default royalty", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(
+ yw.setDefaultRoyalty({ recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 100 }),
+ ).to.be.revertedWithCustomError(yw, Errors.Unauthorized);
+ });
+
+ it("Owner can set default royalty", async function () {
+ await expect(
+ yw.setDefaultRoyalty({ recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 100 }),
+ )
+ .to.emit(yw, BaseEvents.DefaultRoyaltySet)
+ .withArgs(ethers.constants.AddressZero, 100)
+ .to.emit(observability, BaseEvents.DefaultRoyaltySet)
+ .withArgs(yw.address, ethers.constants.AddressZero, 100);
+
+ // mint some tokens to test royalties
+ // await expect(
+ // yw.createEdition(defaultEditionInfo, 4, ethers.constants.AddressZero, zeroRoyalty, "0x"),
+ // ).to.emit(yw, "EditionCreated");
+
+ await expect(yw.registerMinter(editionsOwner.address)).to.emit(yw, "MinterRegistrationChanged");
+
+ await expect(yw.mintOneToOneRecipient(editionsOwner.address)).to.emit(yw, "TransferSingle");
+
+ const royaltyInfo = await yw.royaltyInfo(1, 10000);
+ expect(royaltyInfo.receiver).to.eql(ethers.constants.AddressZero);
+ expect(royaltyInfo.royaltyAmount.toNumber()).to.eql(100);
+ });
+
+ it("Royalty perentage BPS cannot be greater than 10000 for setting granular royalties", async function () {
+ await expect(
+ yw.setGranularRoyalties(
+ [0, 1],
+ [
+ { recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 100 },
+ { recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 10001 },
+ ],
+ ),
+ ).to.be.revertedWithCustomError(yw, Errors.RoyaltyBPSInvalid);
+ });
+
+ it("Non-owner cannot set granular royalties", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(
+ yw.setGranularRoyalties(
+ [0, 1],
+ [
+ { recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 100 },
+ { recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 1000 },
+ ],
+ ),
+ ).to.be.revertedWithCustomError(yw, Errors.Unauthorized);
+ });
+
+ it("Owner can set granular royalties", async function () {
+ await expect(
+ yw.setGranularRoyalties(
+ [1, 2],
+ [
+ { recipientAddress: fan1.address, royaltyPercentageBPS: 100 },
+ { recipientAddress: fan1.address, royaltyPercentageBPS: 1000 },
+ ],
+ ),
+ )
+ .to.emit(yw, BaseEvents.GranularRoyaltiesSet)
+ .to.emit(observability, BaseEvents.GranularRoyaltiesSet);
+
+ // mint some tokens to test royalties
+ // await expect(
+ // yw.createEdition(defaultEditionInfo, 1, ethers.constants.AddressZero, zeroRoyalty, "0x"),
+ // ).to.emit(yw, "EditionCreated");
+
+ // await expect(
+ // yw.createEdition(defaultEditionInfo, 1, ethers.constants.AddressZero, zeroRoyalty, "0x"),
+ // ).to.emit(yw, "EditionCreated");
+
+ await expect(yw.registerMinter(editionsOwner.address)).to.emit(yw, "MinterRegistrationChanged");
+
+ await expect(yw.mintOneToOneRecipient(editionsOwner.address)).to.emit(yw, "TransferSingle");
+
+ await expect(yw.mintOneToOneRecipient(editionsOwner.address)).to.emit(yw, "TransferSingle");
+
+ const royaltyInfo1 = await yw.royaltyInfo(1, 10000);
+ expect(royaltyInfo1.receiver).to.eql(fan1.address);
+ expect(royaltyInfo1.royaltyAmount.toNumber()).to.eql(100);
+
+ const royaltyInfo2 = await yw.royaltyInfo(2, 10000);
+ expect(royaltyInfo2.receiver).to.eql(fan1.address);
+ expect(royaltyInfo2.royaltyAmount.toNumber()).to.eql(1000);
+ });
+ });
+
+ describe("Current royalty manager does exist", async function () {
+ beforeEach(async function () {
+ await expect(yw.setRoyaltyManager(ownerOnlyRoyaltyManager.address))
+ .to.be.emit(yw, BaseEvents.RoyaltyManagerChanged)
+ .withArgs(ownerOnlyRoyaltyManager.address);
+ });
+
+ it("Setting royalties respects the wishes of current royalty manager", async function () {
+ yw = yw.connect(fan1);
+
+ await expect(
+ yw.setDefaultRoyalty({ recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 100 }),
+ ).to.be.revertedWithCustomError(yw, Errors.RoyaltySetBlocked);
+
+ await expect(
+ yw.setGranularRoyalties(
+ [1, 2],
+ [
+ { recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 100 },
+ { recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 1000 },
+ ],
+ ),
+ ).to.be.revertedWithCustomError(yw, Errors.RoyaltySetBlocked);
+
+ yw = yw.connect(editionsOwner);
+
+ // // mint some tokens to test royalties
+ // await expect(
+ // yw.createEdition(defaultEditionInfo, 2, ethers.constants.AddressZero, zeroRoyalty, "0x"),
+ // ).to.emit(yw, "EditionCreated");
+
+ await expect(yw.registerMinter(editionsOwner.address)).to.emit(yw, "MinterRegistrationChanged");
+
+ await expect(yw.mintOneToOneRecipient(editionsOwner.address)).to.emit(yw, "TransferSingle");
+ await expect(yw.mintExistingOneToOneRecipient(editionsOwner.address, 0)).to.emit(yw, "TransferSingle");
+
+ await expect(yw.setDefaultRoyalty({ recipientAddress: fan1.address, royaltyPercentageBPS: 100 }))
+ .to.emit(yw, BaseEvents.DefaultRoyaltySet)
+ .withArgs(fan1.address, 100);
+
+ const royaltyInfo1 = await yw.royaltyInfo(1, 10000);
+ expect(royaltyInfo1.receiver).to.eql(fan1.address);
+ expect(royaltyInfo1.royaltyAmount.toNumber()).to.eql(100);
+
+ await expect(
+ yw.setGranularRoyalties(
+ [1],
+ [{ recipientAddress: editionsOwner.address, royaltyPercentageBPS: 1000 }],
+ ),
+ ).to.emit(yw, BaseEvents.GranularRoyaltiesSet);
+
+ const royaltyInfo2 = await yw.royaltyInfo(1, 10000);
+ expect(royaltyInfo2.receiver).to.eql(editionsOwner.address);
+ expect(royaltyInfo2.royaltyAmount.toNumber()).to.eql(1000);
+
+ await expect(yw.setRoyaltyManager(lockedRoyaltyManager.address))
+ .to.be.emit(yw, BaseEvents.RoyaltyManagerChanged)
+ .withArgs(lockedRoyaltyManager.address);
+
+ await expect(
+ yw.setDefaultRoyalty({ recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 100 }),
+ ).to.be.revertedWithCustomError(yw, Errors.RoyaltySetBlocked);
+
+ await expect(
+ yw.setGranularRoyalties(
+ [0, 1],
+ [
+ { recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 100 },
+ { recipientAddress: ethers.constants.AddressZero, royaltyPercentageBPS: 1000 },
+ ],
+ ),
+ ).to.be.revertedWithCustomError(yw, Errors.RoyaltySetBlocked);
+ });
+ });
+ });
+ });
+});
diff --git a/test/__utils__/helpers.ts b/test/__utils__/helpers.ts
index 5fd559b..1fe6304 100644
--- a/test/__utils__/helpers.ts
+++ b/test/__utils__/helpers.ts
@@ -6,6 +6,8 @@ import {
AuctionManager__factory,
DiscreteDutchAuctionMechanic,
DiscreteDutchAuctionMechanic__factory,
+ ERC1155YungWkndOnChain,
+ ERC1155YungWkndOnChain__factory,
ERC721Editions,
ERC721EditionsDFS,
ERC721EditionsDFS__factory,
@@ -305,6 +307,96 @@ export const setupEditions = async (
return multipleEditionsCreator;
};
+// sets up MultipleEditions without first edition
+export const setupYungWknd = async (
+ observabilityAddress: string,
+ editionsImplementationAddress: string,
+ mintManagerAddress: string,
+ auctionManagerAddress: string,
+ trustedForwarderAddress: string,
+ emrAddress: string,
+ creator: SignerWithAddress,
+ _directMint: OnchainMintVectorParams | null = null,
+ _mechanicMint: OnchainDutchAuctionParams | null = null,
+ defaultTokenManager = ethers.constants.AddressZero,
+ royaltyRecipient = ethers.constants.AddressZero,
+ royaltyPercentage = 0,
+ useMarketplaceFilter = false,
+ name = "dummy",
+ symbol = "DMY",
+ contractUri = "dummyContractMetadata",
+ baseUri = "baseUri",
+ codeUri = "codeUri",
+ limitSupply = 0,
+): Promise => {
+ const initializeData = ethers.utils.defaultAbiCoder.encode(
+ [
+ "address",
+ "string",
+ "tuple(address, uint16)",
+ "address",
+ "string",
+ "string",
+ "address",
+ "address",
+ "string",
+ "string",
+ "uint256",
+ "bool",
+ ],
+ [
+ creator.address,
+ contractUri,
+ [royaltyRecipient, royaltyPercentage],
+ defaultTokenManager,
+ name,
+ symbol,
+ trustedForwarderAddress,
+ mintManagerAddress,
+ codeUri,
+ baseUri,
+ limitSupply,
+ useMarketplaceFilter,
+ ],
+ );
+
+ const OnChainC = await (
+ await ethers.getContractFactory("ERC1155YungWkndOnChain", creator)
+ ).deploy();
+
+
+
+ // editionsImplementationAddress,
+ // initializeData,
+ // ethers.utils.arrayify("0x"),
+ // 0,
+ // ethers.constants.AddressZero,
+ // {
+ // recipientAddress: royaltyRecipient,
+ // royaltyPercentageBPS: royaltyPercentage,
+ // },
+ // ethers.utils.arrayify("0x"),
+ // mintVectorData,
+ // encodeMechanicVectorData(mintManagerAddress, creator.address, mechanicMint),
+ // );
+ const onChainC = await OnChainC.deployed();
+
+ await onChainC.initialize(
+ initializeData,
+ observabilityAddress
+ )
+
+ const multipleEditionsCreator = ERC1155YungWkndOnChain__factory.connect(onChainC.address, creator);
+
+ // if (defaultTokenManager != ethers.constants.AddressZero) {
+ // const tx = await multipleEditionsCreator.setDefaultTokenManager(defaultTokenManager);
+ // await tx.wait();
+ // }
+
+ return multipleEditionsCreator;
+};
+
+
// sets up MultipleEditionsDFS without first edition
export const setupEditionsDFS = async (
observabilityAddress: string,
diff --git a/yarn.lock b/yarn.lock
index 2e0363a..50cf4a5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -473,43 +473,11 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb"
integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==
-"@ethereumjs/common@2.5.0":
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268"
- integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==
- dependencies:
- crc-32 "^1.2.0"
- ethereumjs-util "^7.1.1"
-
-"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4":
- version "2.6.5"
- resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30"
- integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==
- dependencies:
- crc-32 "^1.2.0"
- ethereumjs-util "^7.1.5"
-
"@ethereumjs/rlp@^4.0.1":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41"
integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==
-"@ethereumjs/tx@3.3.2":
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00"
- integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==
- dependencies:
- "@ethereumjs/common" "^2.5.0"
- ethereumjs-util "^7.1.2"
-
-"@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"
-
"@ethereumjs/util@^8.1.0":
version "8.1.0"
resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4"
@@ -519,7 +487,7 @@
ethereum-cryptography "^2.0.0"
micro-ftch "^0.3.1"
-"@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.6.4", "@ethersproject/abi@^5.7.0":
+"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.6.4", "@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==
@@ -794,7 +762,7 @@
"@ethersproject/constants" "^5.7.0"
"@ethersproject/logger" "^5.7.0"
-"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0":
+"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b"
integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==
@@ -1340,16 +1308,6 @@
"@sentry/types" "5.30.0"
tslib "^1.9.3"
-"@sindresorhus/is@^0.14.0":
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
- integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
-
-"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0":
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"
- integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==
-
"@solidity-parser/parser@^0.14.0":
version "0.14.5"
resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804"
@@ -1364,26 +1322,10 @@
dependencies:
antlr4ts "^0.5.0-alpha.4"
-"@szmarczak/http-timer@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
- integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
- dependencies:
- defer-to-connect "^1.0.1"
-
-"@szmarczak/http-timer@^4.0.5":
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"
- integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==
- dependencies:
- defer-to-connect "^2.0.0"
-
-"@szmarczak/http-timer@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a"
- integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==
- dependencies:
- defer-to-connect "^2.0.1"
+"@solidity-parser/parser@^0.18.0":
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.18.0.tgz#8e77a02a09ecce957255a2f48c9a7178ec191908"
+ integrity sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==
"@trivago/prettier-plugin-sort-imports@^3.3.0":
version "3.4.0"
@@ -1399,30 +1341,6 @@
javascript-natural-sort "0.7.1"
lodash "4.17.21"
-"@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/interface-adapter@^0.5.25":
- version "0.5.35"
- resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.35.tgz#f0eb1c4a2803190ca249143f545029a8b641fe96"
- integrity sha512-B5gtJnvsum5j2do393n0UfCT8MklrlAZxuqvEFBeMM9UKnreYct0/D368FVMlZwWo1N50HgGeZ0hlpSJqR/nvg==
- dependencies:
- bn.js "^5.1.3"
- ethers "^4.0.32"
- web3 "1.10.0"
-
-"@truffle/provider@^0.2.24":
- version "0.2.64"
- resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.2.64.tgz#7dd55117307fd019dcf81d08db5dc2bc5728f51c"
- integrity sha512-ZwPsofw4EsCq/2h0t73SPnnFezu4YQWBmK4FxFaOUX0F+o8NsZuHKyfJzuZwyZbiktYmefM3yD9rM0Dj4BhNbw==
- dependencies:
- "@truffle/error" "^0.1.1"
- "@truffle/interface-adapter" "^0.5.25"
- debug "^4.3.1"
- web3 "1.7.4"
-
"@tsconfig/node10@^1.0.7":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
@@ -1465,23 +1383,13 @@
dependencies:
"@types/node" "*"
-"@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1":
+"@types/bn.js@^5.1.0":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682"
integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==
dependencies:
"@types/node" "*"
-"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2":
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183"
- integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==
- dependencies:
- "@types/http-cache-semantics" "*"
- "@types/keyv" "^3.1.4"
- "@types/node" "*"
- "@types/responselike" "^1.0.0"
-
"@types/chai-as-promised@^7.1.3":
version "7.1.5"
resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz#6e016811f6c7a64f2eed823191c3a6955094e255"
@@ -1523,23 +1431,11 @@
"@types/minimatch" "*"
"@types/node" "*"
-"@types/http-cache-semantics@*":
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812"
- integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==
-
"@types/json-schema@^7.0.9":
version "7.0.12"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb"
integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==
-"@types/keyv@^3.1.4":
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6"
- integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==
- dependencies:
- "@types/node" "*"
-
"@types/lru-cache@^5.1.0":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef"
@@ -1582,11 +1478,6 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b"
integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==
-"@types/node@^12.12.6":
- version "12.20.55"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240"
- integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==
-
"@types/node@^18.0.6":
version "18.17.11"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.11.tgz#c04054659d88bfeba94095f41ef99a8ddf4e1813"
@@ -1634,13 +1525,6 @@
dependencies:
"@types/node" "*"
-"@types/responselike@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
- integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==
- dependencies:
- "@types/node" "*"
-
"@types/secp256k1@^4.0.1":
version "4.0.3"
resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c"
@@ -1813,11 +1697,6 @@ abbrev@1.0.x:
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==
-abortcontroller-polyfill@^1.7.3:
- version "1.7.5"
- resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed"
- integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==
-
abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741"
@@ -1831,14 +1710,6 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3:
module-error "^1.0.1"
queue-microtask "^1.2.3"
-accepts@~1.3.8:
- version "1.3.8"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
- integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
- dependencies:
- mime-types "~2.1.34"
- negotiator "0.6.3"
-
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
@@ -1854,11 +1725,6 @@ acorn@^8.4.1, acorn@^8.9.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
-address@^1.0.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e"
- integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==
-
adm-zip@^0.4.16:
version "0.4.16"
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365"
@@ -2030,11 +1896,6 @@ array-buffer-byte-length@^1.0.0:
call-bind "^1.0.2"
is-array-buffer "^3.0.1"
-array-flatten@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
- integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
-
array-ify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
@@ -2083,16 +1944,6 @@ asap@~2.0.6:
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
-asn1.js@^5.2.0:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
- integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
- dependencies:
- bn.js "^4.0.0"
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
- safer-buffer "^2.1.0"
-
asn1@~0.2.3:
version "0.2.6"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
@@ -2120,11 +1971,6 @@ astral-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-async-limiter@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
- integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
-
async@1.x:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
@@ -2169,7 +2015,7 @@ 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.8:
+base-x@^3.0.2:
version "3.0.9"
resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320"
integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==
@@ -2198,7 +2044,7 @@ bigint-crypto-utils@^3.0.23:
resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77"
integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==
-bignumber.js@^9.0.0, bignumber.js@^9.0.1:
+bignumber.js@^9.0.1:
version "9.1.1"
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6"
integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==
@@ -2222,7 +2068,7 @@ blakejs@^1.1.0:
resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814"
integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==
-bluebird@^3.5.0, bluebird@^3.7.2:
+bluebird@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
@@ -2232,52 +2078,16 @@ bn.js@4.11.6:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"
integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9:
+bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1:
+bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
-body-parser@1.20.1:
- version "1.20.1"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
- integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
- dependencies:
- bytes "3.1.2"
- content-type "~1.0.4"
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- on-finished "2.4.1"
- qs "6.11.0"
- raw-body "2.5.1"
- type-is "~1.6.18"
- unpipe "1.0.0"
-
-body-parser@^1.16.0:
- version "1.20.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
- integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
- dependencies:
- bytes "3.1.2"
- content-type "~1.0.5"
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- on-finished "2.4.1"
- qs "6.11.0"
- raw-body "2.5.2"
- type-is "~1.6.18"
- unpipe "1.0.0"
-
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -2300,7 +2110,7 @@ braces@^3.0.2, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
-brorand@^1.0.1, brorand@^1.1.0:
+brorand@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
@@ -2320,7 +2130,7 @@ browser-stdout@1.3.1:
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
-browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0:
+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==
@@ -2332,48 +2142,6 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0:
inherits "^2.0.1"
safe-buffer "^5.0.1"
-browserify-cipher@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
- integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
- dependencies:
- browserify-aes "^1.0.4"
- browserify-des "^1.0.0"
- evp_bytestokey "^1.0.0"
-
-browserify-des@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
- integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
- dependencies:
- cipher-base "^1.0.1"
- des.js "^1.0.0"
- inherits "^2.0.1"
- safe-buffer "^5.1.2"
-
-browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
- integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
- dependencies:
- bn.js "^5.0.0"
- randombytes "^2.0.1"
-
-browserify-sign@^4.0.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
- integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
- dependencies:
- bn.js "^5.1.1"
- browserify-rsa "^4.0.1"
- create-hash "^1.2.0"
- create-hmac "^1.1.7"
- elliptic "^6.5.3"
- inherits "^2.0.4"
- parse-asn1 "^5.1.5"
- readable-stream "^3.6.0"
- safe-buffer "^5.2.0"
-
browserslist@^4.21.9:
version "4.21.10"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
@@ -2410,17 +2178,12 @@ buffer-reverse@^1.0.1:
resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60"
integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==
-buffer-to-arraybuffer@^0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a"
- integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==
-
buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
-buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0:
+buffer@^5.5.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -2436,13 +2199,6 @@ buffer@^6.0.3:
base64-js "^1.3.1"
ieee754 "^1.2.1"
-bufferutil@^4.0.1:
- version "4.0.7"
- resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad"
- integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==
- dependencies:
- node-gyp-build "^4.3.0"
-
busboy@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
@@ -2455,42 +2211,6 @@ bytes@3.1.2:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-cacheable-lookup@^5.0.3:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
- integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==
-
-cacheable-lookup@^6.0.4:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385"
- integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==
-
-cacheable-request@^6.0.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
- integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
- dependencies:
- clone-response "^1.0.2"
- get-stream "^5.1.0"
- http-cache-semantics "^4.0.0"
- keyv "^3.0.0"
- lowercase-keys "^2.0.0"
- normalize-url "^4.1.0"
- responselike "^1.0.2"
-
-cacheable-request@^7.0.2:
- version "7.0.4"
- resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817"
- integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==
- dependencies:
- clone-response "^1.0.2"
- get-stream "^5.1.0"
- http-cache-semantics "^4.0.0"
- keyv "^4.0.0"
- lowercase-keys "^2.0.0"
- normalize-url "^6.0.1"
- responselike "^2.0.0"
-
cachedir@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8"
@@ -2642,27 +2362,11 @@ chokidar@3.5.3, chokidar@^3.4.0:
optionalDependencies:
fsevents "~2.3.2"
-chownr@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
- integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
-
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
-cids@^0.7.1:
- version "0.7.5"
- resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2"
- integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==
- dependencies:
- buffer "^5.5.0"
- class-is "^1.1.0"
- multibase "~0.6.0"
- multicodec "^1.0.0"
- multihashes "~0.4.15"
-
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
@@ -2671,11 +2375,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"
-class-is@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825"
- integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==
-
classic-level@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8"
@@ -2781,13 +2480,6 @@ cliui@^8.0.1:
strip-ansi "^6.0.1"
wrap-ansi "^7.0.0"
-clone-response@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3"
- integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
- dependencies:
- mimic-response "^1.0.0"
-
clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
@@ -2929,27 +2621,6 @@ console-table-printer@^2.9.0:
dependencies:
simple-wcswidth "^1.0.1"
-content-disposition@0.5.4:
- version "0.5.4"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
- integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
- dependencies:
- safe-buffer "5.2.1"
-
-content-hash@^2.5.2:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211"
- integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==
- dependencies:
- cids "^0.7.1"
- multicodec "^0.5.5"
- multihashes "^0.4.15"
-
-content-type@~1.0.4, content-type@~1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
- integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
-
conventional-changelog-angular@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz#a9a9494c28b7165889144fd5b91573c4aa9ca541"
@@ -2984,26 +2655,11 @@ convert-source-map@^1.7.0:
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
-cookie-signature@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
- integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
-
-cookie@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
- integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
-
cookie@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
-cookiejar@^2.1.1:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b"
- integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==
-
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"
@@ -3014,14 +2670,6 @@ core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
-cors@^2.8.1:
- version "2.8.5"
- resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
- integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
- dependencies:
- object-assign "^4"
- vary "^1"
-
cosmiconfig-typescript-loader@^4.0.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz#f3feae459ea090f131df5474ce4b1222912319f9"
@@ -3042,14 +2690,6 @@ crc-32@^1.2.0:
resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
-create-ecdh@^4.0.0:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
- integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
- dependencies:
- bn.js "^4.1.0"
- elliptic "^6.5.3"
-
create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
@@ -3061,7 +2701,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
ripemd160 "^2.0.1"
sha.js "^2.4.0"
-create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
+create-hmac@^1.1.4, create-hmac@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
@@ -3085,13 +2725,6 @@ cross-env@^7.0.3:
dependencies:
cross-spawn "^7.0.1"
-cross-fetch@^3.1.4:
- version "3.1.8"
- resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82"
- integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==
- dependencies:
- node-fetch "^2.6.12"
-
cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -3106,23 +2739,6 @@ cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==
-crypto-browserify@3.12.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
- integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
- dependencies:
- browserify-cipher "^1.0.0"
- browserify-sign "^4.0.0"
- create-ecdh "^4.0.0"
- create-hash "^1.1.0"
- create-hmac "^1.1.0"
- diffie-hellman "^5.0.0"
- inherits "^2.0.1"
- pbkdf2 "^3.0.3"
- public-encrypt "^4.0.0"
- randombytes "^2.0.0"
- randomfill "^1.0.3"
-
crypto-js@^3.1.9-1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b"
@@ -3172,13 +2788,6 @@ death@^1.1.0:
resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318"
integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==
-debug@2.6.9, debug@^2.2.0:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
debug@3.2.6:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
@@ -3211,25 +2820,6 @@ decamelize@^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.2"
- resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
- integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
-
-decompress-response@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
- integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==
- dependencies:
- mimic-response "^1.0.0"
-
-decompress-response@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
- integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
- dependencies:
- mimic-response "^3.1.0"
-
dedent@0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
@@ -3259,16 +2849,6 @@ defaults@^1.0.3:
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==
-
define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5"
@@ -3287,19 +2867,6 @@ depd@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.1.0"
- resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da"
- integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==
- dependencies:
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
-
-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-file@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
@@ -3310,14 +2877,6 @@ detect-indent@6.1.0:
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
-detect-port@^1.3.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b"
- integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==
- dependencies:
- address "^1.0.1"
- debug "4"
-
diff@3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
@@ -3333,14 +2892,12 @@ diff@^4.0.1:
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-diffie-hellman@^5.0.0:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
- integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
+difflib@^0.2.4:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e"
+ integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==
dependencies:
- bn.js "^4.1.0"
- miller-rabin "^4.0.0"
- randombytes "^2.0.0"
+ heap ">= 0.2.0"
dir-glob@^3.0.1:
version "3.0.1"
@@ -3356,11 +2913,6 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
-dom-walk@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
- integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
-
dot-prop@^5.1.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
@@ -3373,11 +2925,6 @@ dotenv@^16.0.1:
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e"
integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==
-duplexer3@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e"
- integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
-
eastasianwidth@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
@@ -3391,17 +2938,12 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
- integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-
electron-to-chromium@^1.4.477:
version "1.4.502"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.502.tgz#531cda8774813d97d6cfa2fb9d8ee3e2c75851fa"
integrity sha512-xqeGw3Gr6o3uyHy/yKjdnDQHY2RQvXcGC2cfHjccK1IGkH6cX1WQBN8EeC/YpwPhGkBaikDTecJ8+ssxSVRQlw==
-elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4:
+elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
@@ -3429,18 +2971,6 @@ emoji-regex@^9.2.2:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
-encodeurl@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
- integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
-
-end-of-stream@^1.1.0:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
- integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
- dependencies:
- once "^1.4.0"
-
enquirer@^2.3.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56"
@@ -3547,11 +3077,6 @@ es6-iterator@^2.0.3:
es5-ext "^0.10.35"
es6-symbol "^3.1.1"
-es6-promise@^4.2.8:
- version "4.2.8"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
- integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
-
es6-symbol@^3.1.1, es6-symbol@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
@@ -3575,11 +3100,6 @@ escalade@^3.1.1:
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
-escape-html@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
- integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
-
escape-string-regexp@1.0.5, 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"
@@ -3729,19 +3249,6 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-etag@~1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
- integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
-
-eth-ens-namehash@2.0.8:
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf"
- integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==
- dependencies:
- idna-uts46-hx "^2.3.1"
- js-sha3 "^0.5.7"
-
eth-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"
@@ -3763,27 +3270,6 @@ eth-gas-reporter@^0.2.25:
sha1 "^1.1.1"
sync-request "^6.0.0"
-eth-lib@0.2.8:
- version "0.2.8"
- resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8"
- integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==
- dependencies:
- bn.js "^4.11.6"
- elliptic "^6.4.0"
- xhr-request-promise "^0.1.2"
-
-eth-lib@^0.1.26:
- version "0.1.29"
- resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9"
- integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==
- dependencies:
- bn.js "^4.11.6"
- elliptic "^6.4.0"
- nano-json-stream-parser "^0.1.2"
- servify "^0.1.12"
- ws "^3.0.0"
- xhr-request-promise "^0.1.2"
-
ethereum-bloom-filters@^1.0.6:
version "1.0.10"
resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a"
@@ -3853,7 +3339,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1:
ethjs-util "0.1.6"
rlp "^2.2.3"
-ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5:
+ethereumjs-util@^7.1.4:
version "7.1.5"
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181"
integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==
@@ -3864,7 +3350,7 @@ ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereu
ethereum-cryptography "^0.1.3"
rlp "^2.2.4"
-ethers@^4.0.32, ethers@^4.0.40:
+ethers@^4.0.40:
version "4.0.49"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894"
integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==
@@ -3939,17 +3425,12 @@ event-emitter@^0.3.5:
d "1"
es5-ext "~0.10.14"
-eventemitter3@4.0.4:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"
- integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==
-
eventemitter3@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4"
integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==
-evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+evp_bytestokey@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
@@ -3994,43 +3475,6 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-express@^4.14.0:
- version "4.18.2"
- resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
- integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
- dependencies:
- accepts "~1.3.8"
- array-flatten "1.1.1"
- body-parser "1.20.1"
- content-disposition "0.5.4"
- content-type "~1.0.4"
- cookie "0.5.0"
- cookie-signature "1.0.6"
- debug "2.6.9"
- depd "2.0.0"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- finalhandler "1.2.0"
- fresh "0.5.2"
- http-errors "2.0.0"
- merge-descriptors "1.0.1"
- methods "~1.1.2"
- on-finished "2.4.1"
- parseurl "~1.3.3"
- path-to-regexp "0.1.7"
- proxy-addr "~2.0.7"
- qs "6.11.0"
- range-parser "~1.2.1"
- safe-buffer "5.2.1"
- send "0.18.0"
- serve-static "1.15.0"
- setprototypeof "1.2.0"
- statuses "2.0.1"
- type-is "~1.6.18"
- utils-merge "1.0.1"
- vary "~1.1.2"
-
ext@^1.1.2:
version "1.7.0"
resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
@@ -4121,19 +3565,6 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
-finalhandler@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
- integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
- dependencies:
- debug "2.6.9"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- on-finished "2.4.1"
- parseurl "~1.3.3"
- statuses "2.0.1"
- unpipe "~1.0.0"
-
find-node-modules@^2.1.2:
version "2.1.3"
resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.1.3.tgz#3c976cff2ca29ee94b4f9eafc613987fc4c0ee44"
@@ -4241,11 +3672,6 @@ forever-agent@~0.6.1:
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
-form-data-encoder@1.7.1:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96"
- integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==
-
form-data@^2.2.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4"
@@ -4273,11 +3699,6 @@ form-data@~2.3.2:
combined-stream "^1.0.6"
mime-types "^2.1.12"
-forwarded@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
- integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
-
fp-ts@1.19.3:
version "1.19.3"
resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f"
@@ -4288,11 +3709,6 @@ fp-ts@^1.0.0:
resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a"
integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A==
-fresh@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
- integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
-
fs-extra@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"
@@ -4332,15 +3748,6 @@ fs-extra@^11.0.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
-fs-extra@^4.0.2:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
- integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
fs-extra@^7.0.0, fs-extra@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
@@ -4359,13 +3766,6 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-minipass@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
- integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
- dependencies:
- minipass "^2.6.0"
-
fs-readdir-recursive@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
@@ -4441,20 +3841,6 @@ get-port@^3.1.0:
resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc"
integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==
-get-stream@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
- integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
- dependencies:
- pump "^3.0.0"
-
-get-stream@^5.1.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
- integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
- dependencies:
- pump "^3.0.0"
-
get-stream@^6.0.0, get-stream@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
@@ -4556,6 +3942,17 @@ glob@7.2.3, glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.7:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@8.1.0, glob@^8.0.3:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
+ integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^5.0.1"
+ once "^1.3.0"
+
glob@^5.0.15:
version "5.0.15"
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
@@ -4567,17 +3964,6 @@ glob@^5.0.15:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^8.0.3:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
- integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^5.0.1"
- once "^1.3.0"
-
global-dirs@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
@@ -4621,14 +4007,6 @@ global-prefix@^3.0.0:
kind-of "^6.0.2"
which "^1.3.1"
-global@~4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
- integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
- dependencies:
- min-document "^2.19.0"
- process "^0.11.10"
-
globals@^11.1.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
@@ -4681,59 +4059,6 @@ gopd@^1.0.1:
dependencies:
get-intrinsic "^1.1.3"
-got@12.1.0:
- version "12.1.0"
- resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4"
- integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==
- dependencies:
- "@sindresorhus/is" "^4.6.0"
- "@szmarczak/http-timer" "^5.0.1"
- "@types/cacheable-request" "^6.0.2"
- "@types/responselike" "^1.0.0"
- cacheable-lookup "^6.0.4"
- cacheable-request "^7.0.2"
- decompress-response "^6.0.0"
- form-data-encoder "1.7.1"
- get-stream "^6.0.1"
- http2-wrapper "^2.1.10"
- lowercase-keys "^3.0.0"
- p-cancelable "^3.0.0"
- responselike "^2.0.0"
-
-got@9.6.0:
- version "9.6.0"
- resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
- integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
- dependencies:
- "@sindresorhus/is" "^0.14.0"
- "@szmarczak/http-timer" "^1.1.2"
- cacheable-request "^6.0.0"
- decompress-response "^3.3.0"
- duplexer3 "^0.1.4"
- get-stream "^4.1.0"
- lowercase-keys "^1.0.1"
- mimic-response "^1.0.1"
- p-cancelable "^1.0.0"
- to-readable-stream "^1.0.0"
- url-parse-lax "^3.0.0"
-
-got@^11.8.5:
- version "11.8.6"
- resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a"
- integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==
- dependencies:
- "@sindresorhus/is" "^4.0.0"
- "@szmarczak/http-timer" "^4.0.5"
- "@types/cacheable-request" "^6.0.1"
- "@types/responselike" "^1.0.0"
- cacheable-lookup "^5.0.3"
- cacheable-request "^7.0.2"
- decompress-response "^6.0.0"
- http2-wrapper "^1.0.0-beta.5.2"
- lowercase-keys "^2.0.0"
- p-cancelable "^2.0.0"
- responselike "^2.0.0"
-
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
@@ -4939,6 +4264,11 @@ he@1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+"heap@>= 0.2.0":
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc"
+ integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==
+
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -4977,11 +4307,6 @@ http-basic@^8.1.1:
http-response-object "^3.0.1"
parse-cache-control "^1.0.1"
-http-cache-semantics@^4.0.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
- integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
-
http-errors@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
@@ -4993,11 +4318,6 @@ http-errors@2.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 sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==
-
http-response-object@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810"
@@ -5014,22 +4334,6 @@ http-signature@~1.2.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
-http2-wrapper@^1.0.0-beta.5.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
- integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
- dependencies:
- quick-lru "^5.1.1"
- resolve-alpn "^1.0.0"
-
-http2-wrapper@^2.1.10:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3"
- integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==
- dependencies:
- quick-lru "^5.1.1"
- resolve-alpn "^1.2.0"
-
https-proxy-agent@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
@@ -5060,13 +4364,6 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24:
dependencies:
safer-buffer ">= 2.1.2 < 3"
-idna-uts46-hx@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9"
- integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==
- dependencies:
- punycode "2.1.0"
-
ieee754@^1.1.13, ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
@@ -5160,19 +4457,6 @@ io-ts@1.10.4:
dependencies:
fp-ts "^1.0.0"
-ipaddr.js@1.9.1:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
- integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
-
-is-arguments@^1.0.4:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
- integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
- dependencies:
- call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
-
is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe"
@@ -5253,18 +4537,6 @@ is-fullwidth-code-point@^4.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
-is-function@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
- integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
-
-is-generator-function@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
- integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
- dependencies:
- has-tostringtag "^1.0.0"
-
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
@@ -5370,14 +4642,14 @@ is-text-path@^1.0.1:
dependencies:
text-extensions "^1.0.0"
-is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9:
+is-typed-array@^1.1.10, is-typed-array@^1.1.9:
version "1.1.12"
resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
dependencies:
which-typed-array "^1.1.11"
-is-typedarray@^1.0.0, is-typedarray@~1.0.0:
+is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
@@ -5434,7 +4706,7 @@ js-sdsl@^4.1.4:
resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847"
integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==
-js-sha3@0.5.7, js-sha3@^0.5.7:
+js-sha3@0.5.7:
version "0.5.7"
resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7"
integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==
@@ -5482,16 +4754,6 @@ jsesc@^2.5.1:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-json-buffer@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
- integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==
-
-json-buffer@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
- integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
-
json-parse-even-better-errors@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
@@ -5588,20 +4850,6 @@ keccak@^3.0.0, keccak@^3.0.2:
node-gyp-build "^4.2.0"
readable-stream "^3.6.0"
-keyv@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
- integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
- dependencies:
- json-buffer "3.0.0"
-
-keyv@^4.0.0:
- version "4.5.3"
- resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25"
- integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==
- dependencies:
- json-buffer "3.0.1"
-
kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
@@ -5822,21 +5070,6 @@ loupe@^2.3.1:
dependencies:
get-func-name "^2.0.0"
-lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
- integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
-
-lowercase-keys@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
- integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
-
-lowercase-keys@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2"
- integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==
-
lru-cache@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
@@ -5904,11 +5137,6 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
-media-typer@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
- integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
-
memoizee@^0.4.15:
version "0.4.15"
resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72"
@@ -5954,11 +5182,6 @@ meow@^8.0.0, meow@^8.1.2:
type-fest "^0.18.0"
yargs-parser "^20.2.3"
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
- integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
-
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -5985,11 +5208,6 @@ merkletreejs@^0.2.32:
treeify "^1.1.0"
web3-utils "^1.3.4"
-methods@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
- integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
-
micro-ftch@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f"
@@ -6003,31 +5221,18 @@ micromatch@4.0.5, micromatch@^4.0.2, micromatch@^4.0.4:
braces "^3.0.2"
picomatch "^2.3.1"
-miller-rabin@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
- integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
- dependencies:
- bn.js "^4.0.0"
- brorand "^1.0.1"
-
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-mime-types@^2.1.12, mime-types@^2.1.16, mime-types@^2.1.35, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.19:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
-mime@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
@@ -6038,23 +5243,6 @@ mimic-fn@^4.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
-mimic-response@^1.0.0, mimic-response@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
- integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
-
-mimic-response@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
- integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
-
-min-document@^2.19.0:
- version "2.19.0"
- resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
- integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==
- dependencies:
- dom-walk "^0.1.0"
-
min-indent@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
@@ -6117,33 +5305,6 @@ minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-minipass@^2.6.0, minipass@^2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
- integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
- dependencies:
- safe-buffer "^5.1.2"
- yallist "^3.0.0"
-
-minizlib@^1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
- integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
- dependencies:
- minipass "^2.9.0"
-
-mkdirp-promise@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1"
- integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==
- dependencies:
- mkdirp "*"
-
-mkdirp@*:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50"
- integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==
-
mkdirp@0.5.5:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
@@ -6151,7 +5312,7 @@ mkdirp@0.5.5:
dependencies:
minimist "^1.2.5"
-mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5:
+mkdirp@0.5.x, mkdirp@^0.5.1:
version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
@@ -6197,6 +5358,32 @@ mocha@^10.0.0:
yargs-parser "20.2.4"
yargs-unparser "2.0.0"
+mocha@^10.2.0:
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9"
+ integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==
+ dependencies:
+ ansi-colors "4.1.1"
+ browser-stdout "1.3.1"
+ chokidar "3.5.3"
+ debug "4.3.4"
+ diff "5.0.0"
+ escape-string-regexp "4.0.0"
+ find-up "5.0.0"
+ glob "8.1.0"
+ he "1.2.0"
+ js-yaml "4.1.0"
+ log-symbols "4.1.0"
+ minimatch "5.0.1"
+ ms "2.1.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:
version "7.2.0"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.2.0.tgz#01cc227b00d875ab1eed03a75106689cfed5a604"
@@ -6227,21 +5414,11 @@ mocha@^7.1.1:
yargs-parser "13.1.2"
yargs-unparser "1.6.0"
-mock-fs@^4.1.0:
- version "4.14.0"
- resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18"
- integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==
-
module-error@^1.0.1, module-error@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86"
integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
-
ms@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
@@ -6257,56 +5434,11 @@ ms@2.1.3, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-multibase@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b"
- integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==
- dependencies:
- base-x "^3.0.8"
- buffer "^5.5.0"
-
-multibase@~0.6.0:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b"
- integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==
- dependencies:
- base-x "^3.0.8"
- buffer "^5.5.0"
-
-multicodec@^0.5.5:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd"
- integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==
- dependencies:
- varint "^5.0.0"
-
-multicodec@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f"
- integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==
- dependencies:
- buffer "^5.6.0"
- varint "^5.0.0"
-
-multihashes@^0.4.15, multihashes@~0.4.15:
- version "0.4.21"
- resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5"
- integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==
- dependencies:
- buffer "^5.5.0"
- multibase "^0.7.0"
- varint "^5.0.0"
-
mute-stream@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
-nano-json-stream-parser@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f"
- integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==
-
nanoid@3.3.3:
version "3.3.3"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"
@@ -6332,11 +5464,6 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-negotiator@0.6.3:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
- integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
-
neo-async@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
@@ -6367,13 +5494,6 @@ node-environment-flags@1.0.6:
object.getownpropertydescriptors "^2.0.3"
semver "^5.7.0"
-node-fetch@^2.6.12:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
- integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
- dependencies:
- whatwg-url "^5.0.0"
-
node-gyp-build@^4.2.0, node-gyp-build@^4.3.0:
version "4.6.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.1.tgz#24b6d075e5e391b8d5539d98c7fc5c210cac8a3e"
@@ -6421,16 +5541,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-normalize-url@^4.1.0:
- version "4.5.1"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
- integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
-
-normalize-url@^6.0.1:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
- integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
-
npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
@@ -6458,7 +5568,7 @@ oauth-sign@~0.9.0:
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1:
+object-assign@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
@@ -6509,21 +5619,7 @@ obliterator@^2.0.0:
resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816"
integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==
-oboe@2.1.5:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd"
- integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==
- dependencies:
- http-https "^1.0.0"
-
-on-finished@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
- integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
- dependencies:
- ee-first "1.1.1"
-
-once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0:
+once@1.x, once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
@@ -6593,21 +5689,6 @@ os-tmpdir@~1.0.2:
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
-p-cancelable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
- integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
-
-p-cancelable@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
- integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
-
-p-cancelable@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050"
- integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==
-
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
@@ -6681,27 +5762,11 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
-parse-asn1@^5.0.0, parse-asn1@^5.1.5:
- version "5.1.6"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
- integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
- dependencies:
- asn1.js "^5.2.0"
- browserify-aes "^1.0.0"
- evp_bytestokey "^1.0.0"
- pbkdf2 "^3.0.3"
- safe-buffer "^5.1.1"
-
parse-cache-control@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e"
integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==
-parse-headers@^2.0.0:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9"
- integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==
-
parse-json@^5.0.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -6717,11 +5782,6 @@ parse-passwd@^1.0.0:
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==
-parseurl@~1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
- integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -6752,11 +5812,6 @@ path-parse@^1.0.6, path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
- integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
-
path-type@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
@@ -6767,7 +5822,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.17:
version "3.1.2"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
@@ -6832,11 +5887,6 @@ prelude-ls@~1.1.2:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
-prepend-http@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
- integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
-
prettier-linter-helpers@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
@@ -6863,11 +5913,6 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-process@^0.11.10:
- version "0.11.10"
- resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
- integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
-
promise@^8.0.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a"
@@ -6875,14 +5920,6 @@ promise@^8.0.0:
dependencies:
asap "~2.0.6"
-proxy-addr@~2.0.7:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
- integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
- dependencies:
- forwarded "0.2.0"
- ipaddr.js "1.9.1"
-
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
@@ -6893,43 +5930,11 @@ psl@^1.1.28:
resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
-public-encrypt@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
- integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
- dependencies:
- bn.js "^4.1.0"
- browserify-rsa "^4.0.0"
- create-hash "^1.1.0"
- parse-asn1 "^5.0.0"
- randombytes "^2.0.1"
- safe-buffer "^5.1.2"
-
-pump@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
- integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
-punycode@2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d"
- integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==
-
punycode@^2.1.0, punycode@^2.1.1:
version "2.3.0"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
-qs@6.11.0:
- version "6.11.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
- integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
- dependencies:
- side-channel "^1.0.4"
-
qs@^6.4.0:
version "6.11.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9"
@@ -6942,15 +5947,6 @@ qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
-query-string@^5.0.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"
- integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==
- dependencies:
- decode-uri-component "^0.2.0"
- object-assign "^4.1.0"
- strict-uri-encode "^1.0.0"
-
queue-microtask@^1.2.2, queue-microtask@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -6961,42 +5957,14 @@ quick-lru@^4.0.1:
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
-quick-lru@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
- integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
-
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
+randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
dependencies:
safe-buffer "^5.1.0"
-randomfill@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
- integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
- dependencies:
- randombytes "^2.0.5"
- safe-buffer "^5.1.0"
-
-range-parser@~1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
- integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-raw-body@2.5.1:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
- integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
- dependencies:
- bytes "3.1.2"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- unpipe "1.0.0"
-
-raw-body@2.5.2, raw-body@^2.4.1:
+raw-body@^2.4.1:
version "2.5.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
@@ -7127,7 +6095,7 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.79.0, request@^2.88.0:
+request@^2.88.0:
version "2.88.2"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -7168,11 +6136,6 @@ require-main-filename@^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==
-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-dir@^1.0.0, resolve-dir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
@@ -7224,20 +6187,6 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.8.1:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-responselike@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
- integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==
- dependencies:
- lowercase-keys "^1.0.0"
-
-responselike@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc"
- integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==
- dependencies:
- lowercase-keys "^2.0.0"
-
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@@ -7334,7 +6283,7 @@ safe-array-concat@^1.0.0:
has-symbols "^1.0.3"
isarray "^2.0.5"
-safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -7383,7 +6332,7 @@ scrypt-js@2.0.4:
resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16"
integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==
-scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1:
+scrypt-js@3.0.1, scrypt-js@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312"
integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==
@@ -7414,25 +6363,6 @@ semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-send@0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
- integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
- dependencies:
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "2.0.0"
- mime "1.6.0"
- ms "2.1.3"
- on-finished "2.4.1"
- range-parser "~1.2.1"
- statuses "2.0.1"
-
serialize-javascript@6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
@@ -7440,27 +6370,6 @@ serialize-javascript@6.0.0:
dependencies:
randombytes "^2.1.0"
-serve-static@1.15.0:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
- integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
- dependencies:
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- parseurl "~1.3.3"
- send "0.18.0"
-
-servify@^0.1.12:
- version "0.1.12"
- resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95"
- integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==
- dependencies:
- body-parser "^1.16.0"
- cors "^2.8.1"
- express "^4.14.0"
- request "^2.79.0"
- xhr "^2.3.3"
-
set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -7540,20 +6449,6 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-simple-concat@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
- integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
-
-simple-get@^2.7.0:
- version "2.8.2"
- resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019"
- integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==
- dependencies:
- decompress-response "^3.3.0"
- once "^1.3.1"
- simple-concat "^1.0.0"
-
simple-wcswidth@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz#8ab18ac0ae342f9d9b629604e54d2aa1ecb018b2"
@@ -7646,29 +6541,30 @@ solidity-comments-extractor@^0.0.7:
resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19"
integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==
-solidity-coverage@^0.7.21:
- version "0.7.22"
- resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.22.tgz#168f414be4c0f5303addcf3ab9714cf64f72c080"
- integrity sha512-I6Zd5tsFY+gmj1FDIp6w7OrUePx6ZpMgKQZg7dWgPaQHePLi3Jk+iJ8lwZxsWEoNy2Lcv91rMxATWHqRaFdQpw==
+solidity-coverage@^0.8.3:
+ version "0.8.11"
+ resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.11.tgz#c95798f2c3e885c49dcfc9c43ee570d112214785"
+ integrity sha512-yy0Yk+olovBbXn0Me8BWULmmv7A69ZKkP5aTOJGOO8u61Tu2zS989erfjtFlUjDnfWtxRAVkd8BsQD704yLWHw==
dependencies:
- "@solidity-parser/parser" "^0.14.0"
- "@truffle/provider" "^0.2.24"
+ "@ethersproject/abi" "^5.0.9"
+ "@solidity-parser/parser" "^0.18.0"
chalk "^2.4.2"
death "^1.1.0"
- detect-port "^1.3.0"
+ difflib "^0.2.4"
fs-extra "^8.1.0"
ghost-testrpc "^0.0.2"
global-modules "^2.0.0"
globby "^10.0.1"
jsonschema "^1.2.4"
lodash "^4.17.15"
+ mocha "^10.2.0"
node-emoji "^1.10.0"
pify "^4.0.1"
recursive-readdir "^2.2.2"
sc-istanbul "^0.4.5"
semver "^7.3.4"
shelljs "^0.8.3"
- web3-utils "^1.3.0"
+ web3-utils "^1.3.6"
source-map-js@^1.0.2:
version "1.0.2"
@@ -7782,11 +6678,6 @@ streamsearch@^1.1.0:
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
-strict-uri-encode@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
- integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
-
string-argv@0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
@@ -7980,23 +6871,6 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-swarm-js@^0.1.40:
- version "0.1.42"
- resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979"
- integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==
- dependencies:
- bluebird "^3.5.0"
- buffer "^5.0.5"
- eth-lib "^0.1.26"
- fs-extra "^4.0.2"
- got "^11.8.5"
- mime-types "^2.1.16"
- mkdirp-promise "^5.0.1"
- mock-fs "^4.1.0"
- setimmediate "^1.0.5"
- tar "^4.0.2"
- xhr-request "^1.0.1"
-
sync-request@^6.0.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68"
@@ -8034,19 +6908,6 @@ table@^6.8.0, table@^6.8.1:
string-width "^4.2.3"
strip-ansi "^6.0.1"
-tar@^4.0.2:
- version "4.4.19"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3"
- integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==
- dependencies:
- chownr "^1.1.4"
- fs-minipass "^1.2.7"
- minipass "^2.9.0"
- minizlib "^1.3.3"
- mkdirp "^0.5.5"
- safe-buffer "^5.2.1"
- yallist "^3.1.1"
-
text-extensions@^1.0.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26"
@@ -8086,11 +6947,6 @@ through2@^4.0.0:
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
-timed-out@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
- integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==
-
timers-ext@^0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6"
@@ -8111,11 +6967,6 @@ to-fast-properties@^2.0.0:
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
-to-readable-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
- integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
-
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -8136,11 +6987,6 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
-tr46@~0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
- integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
-
treeify@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8"
@@ -8303,14 +7149,6 @@ type-fest@^1.0.2:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
-type-is@~1.6.18:
- version "1.6.18"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
- integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
- dependencies:
- media-typer "0.3.0"
- mime-types "~2.1.24"
-
type@^1.0.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
@@ -8376,13 +7214,6 @@ typed-array-length@^1.0.4:
for-each "^0.3.3"
is-typed-array "^1.1.9"
-typedarray-to-buffer@^3.1.5:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
- integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
- dependencies:
- is-typedarray "^1.0.0"
-
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -8413,11 +7244,6 @@ uglify-js@^3.1.4:
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==
-ultron@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
- integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
-
unbox-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
@@ -8445,7 +7271,7 @@ universalify@^2.0.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
-unpipe@1.0.0, unpipe@~1.0.0:
+unpipe@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
@@ -8465,25 +7291,6 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
-url-parse-lax@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
- integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==
- dependencies:
- prepend-http "^2.0.0"
-
-url-set-query@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339"
- integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==
-
-utf-8-validate@^5.0.2:
- version "5.0.10"
- resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2"
- integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==
- dependencies:
- node-gyp-build "^4.3.0"
-
utf8@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1"
@@ -8494,32 +7301,11 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-util@^0.12.0, util@^0.12.5:
- version "0.12.5"
- resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
- integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
- dependencies:
- inherits "^2.0.3"
- is-arguments "^1.0.4"
- is-generator-function "^1.0.7"
- is-typed-array "^1.1.3"
- which-typed-array "^1.1.2"
-
-utils-merge@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
- integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
-
uuid@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac"
integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==
-uuid@3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
- integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
-
uuid@^3.3.2:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
@@ -8530,11 +7316,6 @@ uuid@^8.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-uuid@^9.0.0:
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
- integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
-
v8-compile-cache-lib@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
@@ -8548,16 +7329,6 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.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==
-
-vary@^1, vary@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
- integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
@@ -8574,441 +7345,24 @@ wcwidth@^1.0.1:
dependencies:
defaults "^1.0.3"
-web3-bzz@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.10.0.tgz#ac74bc71cdf294c7080a79091079192f05c5baed"
- integrity sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==
- dependencies:
- "@types/node" "^12.12.6"
- got "12.1.0"
- swarm-js "^0.1.40"
-
-web3-bzz@1.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-core-helpers@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz#1016534c51a5df77ed4f94d1fcce31de4af37fad"
- integrity sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==
- dependencies:
- web3-eth-iban "1.10.0"
- web3-utils "1.10.0"
-
-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.7.4"
- web3-utils "1.7.4"
-
-web3-core-method@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.10.0.tgz#82668197fa086e8cc8066742e35a9d72535e3412"
- integrity sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==
- dependencies:
- "@ethersproject/transactions" "^5.6.2"
- web3-core-helpers "1.10.0"
- web3-core-promievent "1.10.0"
- web3-core-subscriptions "1.10.0"
- web3-utils "1.10.0"
-
-web3-core-method@1.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:
- "@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-promievent@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz#cbb5b3a76b888df45ed3a8d4d8d4f54ccb66a37b"
- integrity sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==
- dependencies:
- eventemitter3 "4.0.4"
-
-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-requestmanager@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz#4b34f6e05837e67c70ff6f6993652afc0d54c340"
- integrity sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==
- dependencies:
- util "^0.12.5"
- web3-core-helpers "1.10.0"
- web3-providers-http "1.10.0"
- web3-providers-ipc "1.10.0"
- web3-providers-ws "1.10.0"
-
-web3-core-requestmanager@1.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.7.4"
- web3-providers-http "1.7.4"
- web3-providers-ipc "1.7.4"
- web3-providers-ws "1.7.4"
-
-web3-core-subscriptions@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz#b534592ee1611788fc0cb0b95963b9b9b6eacb7c"
- integrity sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==
- dependencies:
- eventemitter3 "4.0.4"
- web3-core-helpers "1.10.0"
-
-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.7.4"
-
-web3-core@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.0.tgz#9aa07c5deb478cf356c5d3b5b35afafa5fa8e633"
- integrity sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==
- dependencies:
- "@types/bn.js" "^5.1.1"
- "@types/node" "^12.12.6"
- bignumber.js "^9.0.0"
- web3-core-helpers "1.10.0"
- web3-core-method "1.10.0"
- web3-core-requestmanager "1.10.0"
- web3-utils "1.10.0"
-
-web3-core@1.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" "^5.1.0"
- "@types/node" "^12.12.6"
- bignumber.js "^9.0.0"
- web3-core-helpers "1.7.4"
- web3-core-method "1.7.4"
- web3-core-requestmanager "1.7.4"
- web3-utils "1.7.4"
-
-web3-eth-abi@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz#53a7a2c95a571e205e27fd9e664df4919483cce1"
- integrity sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==
- dependencies:
- "@ethersproject/abi" "^5.6.3"
- web3-utils "1.10.0"
-
-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.6.3"
- web3-utils "1.7.4"
-
-web3-eth-accounts@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz#2942beca0a4291455f32cf09de10457a19a48117"
- integrity sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==
- dependencies:
- "@ethereumjs/common" "2.5.0"
- "@ethereumjs/tx" "3.3.2"
- eth-lib "0.2.8"
- ethereumjs-util "^7.1.5"
- scrypt-js "^3.0.1"
- uuid "^9.0.0"
- web3-core "1.10.0"
- web3-core-helpers "1.10.0"
- web3-core-method "1.10.0"
- web3-utils "1.10.0"
-
-web3-eth-accounts@1.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:
- "@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.7.4"
- web3-core-helpers "1.7.4"
- web3-core-method "1.7.4"
- web3-utils "1.7.4"
-
-web3-eth-contract@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz#8e68c7654576773ec3c91903f08e49d0242c503a"
- integrity sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==
- dependencies:
- "@types/bn.js" "^5.1.1"
- web3-core "1.10.0"
- web3-core-helpers "1.10.0"
- web3-core-method "1.10.0"
- web3-core-promievent "1.10.0"
- web3-core-subscriptions "1.10.0"
- web3-eth-abi "1.10.0"
- web3-utils "1.10.0"
-
-web3-eth-contract@1.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" "^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-ens@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz#96a676524e0b580c87913f557a13ed810cf91cd9"
- integrity sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==
- dependencies:
- content-hash "^2.5.2"
- eth-ens-namehash "2.0.8"
- web3-core "1.10.0"
- web3-core-helpers "1.10.0"
- web3-core-promievent "1.10.0"
- web3-eth-abi "1.10.0"
- web3-eth-contract "1.10.0"
- web3-utils "1.10.0"
-
-web3-eth-ens@1.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.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-iban@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz#5a46646401965b0f09a4f58e7248c8a8cd22538a"
- integrity sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==
- dependencies:
- bn.js "^5.2.1"
- web3-utils "1.10.0"
-
-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 "^5.2.1"
- web3-utils "1.7.4"
-
-web3-eth-personal@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz#94d525f7a29050a0c2a12032df150ac5ea633071"
- integrity sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==
- dependencies:
- "@types/node" "^12.12.6"
- web3-core "1.10.0"
- web3-core-helpers "1.10.0"
- web3-core-method "1.10.0"
- web3-net "1.10.0"
- web3-utils "1.10.0"
-
-web3-eth-personal@1.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.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@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.10.0.tgz#38b905e2759697c9624ab080cfcf4e6c60b3a6cf"
- integrity sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==
- dependencies:
- web3-core "1.10.0"
- web3-core-helpers "1.10.0"
- web3-core-method "1.10.0"
- web3-core-subscriptions "1.10.0"
- web3-eth-abi "1.10.0"
- web3-eth-accounts "1.10.0"
- web3-eth-contract "1.10.0"
- web3-eth-ens "1.10.0"
- web3-eth-iban "1.10.0"
- web3-eth-personal "1.10.0"
- web3-net "1.10.0"
- web3-utils "1.10.0"
-
-web3-eth@1.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-net@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.10.0.tgz#be53e7f5dafd55e7c9013d49c505448b92c9c97b"
- integrity sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==
- dependencies:
- web3-core "1.10.0"
- web3-core-method "1.10.0"
- web3-utils "1.10.0"
-
-web3-net@1.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.7.4"
- web3-core-method "1.7.4"
- web3-utils "1.7.4"
-
-web3-providers-http@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.10.0.tgz#864fa48675e7918c9a4374e5f664b32c09d0151b"
- integrity sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==
- dependencies:
- abortcontroller-polyfill "^1.7.3"
- cross-fetch "^3.1.4"
- es6-promise "^4.2.8"
- web3-core-helpers "1.10.0"
-
-web3-providers-http@1.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.7.4"
- xhr2-cookies "1.1.0"
-
-web3-providers-ipc@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz#9747c7a6aee96a51488e32fa7c636c3460b39889"
- integrity sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==
- dependencies:
- oboe "2.1.5"
- web3-core-helpers "1.10.0"
-
-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.7.4"
-
-web3-providers-ws@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz#cb0b87b94c4df965cdf486af3a8cd26daf3975e5"
- integrity sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==
- dependencies:
- eventemitter3 "4.0.4"
- web3-core-helpers "1.10.0"
- websocket "^1.0.32"
-
-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.7.4"
- websocket "^1.0.32"
-
-web3-shh@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.0.tgz#c2979b87e0f67a7fef2ce9ee853bd7bfbe9b79a8"
- integrity sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==
- dependencies:
- web3-core "1.10.0"
- web3-core-method "1.10.0"
- web3-core-subscriptions "1.10.0"
- web3-net "1.10.0"
-
-web3-shh@1.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.7.4"
- web3-core-method "1.7.4"
- web3-core-subscriptions "1.7.4"
- web3-net "1.7.4"
-
-web3-utils@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.0.tgz#ca4c1b431a765c14ac7f773e92e0fd9377ccf578"
- integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==
- dependencies:
- 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.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==
+web3-utils@^1.3.4:
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.1.tgz#97532130d85358628bc0ff14d94b7e9449786983"
+ integrity sha512-r6iUUw/uMnNcWXjhRv33Nyrhxq3VGOPBXeSzxhOXIci4SvC/LPTpROY0uTrMX7ztKyODYrHp8WhTkEf+ZnHssw==
dependencies:
+ "@ethereumjs/util" "^8.1.0"
bn.js "^5.2.1"
ethereum-bloom-filters "^1.0.6"
- ethereumjs-util "^7.1.0"
+ ethereum-cryptography "^2.1.2"
ethjs-unit "0.1.6"
number-to-bn "1.7.0"
randombytes "^2.1.0"
utf8 "3.0.0"
-web3-utils@^1.3.0, web3-utils@^1.3.4:
- version "1.10.1"
- resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.1.tgz#97532130d85358628bc0ff14d94b7e9449786983"
- integrity sha512-r6iUUw/uMnNcWXjhRv33Nyrhxq3VGOPBXeSzxhOXIci4SvC/LPTpROY0uTrMX7ztKyODYrHp8WhTkEf+ZnHssw==
+web3-utils@^1.3.6:
+ version "1.10.4"
+ resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.4.tgz#0daee7d6841641655d8b3726baf33b08eda1cbec"
+ integrity sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==
dependencies:
"@ethereumjs/util" "^8.1.0"
bn.js "^5.2.1"
@@ -9019,57 +7373,6 @@ web3-utils@^1.3.0, web3-utils@^1.3.4:
randombytes "^2.1.0"
utf8 "3.0.0"
-web3@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.0.tgz#2fde0009f59aa756c93e07ea2a7f3ab971091274"
- integrity sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==
- dependencies:
- web3-bzz "1.10.0"
- web3-core "1.10.0"
- web3-eth "1.10.0"
- web3-eth-personal "1.10.0"
- web3-net "1.10.0"
- web3-shh "1.10.0"
- web3-utils "1.10.0"
-
-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"
-
-webidl-conversions@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
- integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
-
-websocket@^1.0.32:
- version "1.0.34"
- resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111"
- integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==
- dependencies:
- bufferutil "^4.0.1"
- debug "^2.2.0"
- es5-ext "^0.10.50"
- typedarray-to-buffer "^3.1.5"
- utf-8-validate "^5.0.2"
- yaeti "^0.0.6"
-
-whatwg-url@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
- integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
- dependencies:
- tr46 "~0.0.3"
- webidl-conversions "^3.0.0"
-
which-boxed-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
@@ -9086,7 +7389,7 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
-which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.2:
+which-typed-array@^1.1.10, which-typed-array@^1.1.11:
version "1.1.11"
resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a"
integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==
@@ -9178,67 +7481,16 @@ ws@7.4.6:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
-ws@^3.0.0:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
- integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
- dependencies:
- async-limiter "~1.0.0"
- safe-buffer "~5.1.0"
- ultron "~1.1.0"
-
ws@^7.4.6:
version "7.5.9"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
-xhr-request-promise@^0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c"
- integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==
- dependencies:
- xhr-request "^1.1.0"
-
-xhr-request@^1.0.1, xhr-request@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed"
- integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==
- dependencies:
- buffer-to-arraybuffer "^0.0.5"
- object-assign "^4.1.1"
- query-string "^5.0.1"
- simple-get "^2.7.0"
- timed-out "^4.0.1"
- url-set-query "^1.0.0"
- xhr "^2.0.4"
-
-xhr2-cookies@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48"
- integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g==
- dependencies:
- cookiejar "^2.1.1"
-
-xhr@^2.0.4, xhr@^2.3.3:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d"
- integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==
- dependencies:
- global "~4.4.0"
- is-function "^1.0.1"
- parse-headers "^2.0.0"
- xtend "^4.0.0"
-
xmlhttprequest@1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==
-xtend@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
y18n@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
@@ -9249,12 +7501,7 @@ y18n@^5.0.5:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-yaeti@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577"
- integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==
-
-yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1:
+yallist@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==