fix: sintax wise issues for compilation
This commit is contained in:
parent
7891068b9a
commit
c9578c88fd
|
|
@ -1,31 +0,0 @@
|
||||||
// SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
pragma solidity ^0.8.7;
|
|
||||||
|
|
||||||
import "../interfaces/IFleek.sol";
|
|
||||||
import "./FleekBuilds.sol";
|
|
||||||
import "./FleekAccessControl.sol";
|
|
||||||
|
|
||||||
abstract contract Fleek is IFleek, FleekBuilds {
|
|
||||||
string public name;
|
|
||||||
string public description;
|
|
||||||
|
|
||||||
constructor(string memory _name, string memory _description) {
|
|
||||||
name = _name;
|
|
||||||
description = _description;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setName(
|
|
||||||
string calldata _name
|
|
||||||
) external override requireController {
|
|
||||||
name = _name;
|
|
||||||
emit MetadataUpdated(name, description);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setDescription(
|
|
||||||
string calldata _description
|
|
||||||
) external override requireController {
|
|
||||||
description = _description;
|
|
||||||
emit MetadataUpdated(name, description);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
pragma solidity ^0.8.7;
|
pragma solidity ^0.8.7;
|
||||||
|
|
||||||
import "../interfaces/IFleekSite.sol";
|
|
||||||
import "@openzeppelin/contracts/access/AccessControl.sol";
|
import "@openzeppelin/contracts/access/AccessControl.sol";
|
||||||
|
|
||||||
abstract contract FleekAccessControl is AccessControl {
|
abstract contract FleekAccessControl is AccessControl {
|
||||||
|
|
@ -26,7 +25,7 @@ abstract contract FleekAccessControl is AccessControl {
|
||||||
|
|
||||||
modifier requireCollectionController() {
|
modifier requireCollectionController() {
|
||||||
require(
|
require(
|
||||||
hasRole(COOLECTION_OWNER_ROLE, msg.sender) ||
|
hasRole(COLLECTION_OWNER_ROLE, msg.sender) ||
|
||||||
hasRole(COLLECTION_CONTROLLER_ROLE, msg.sender),
|
hasRole(COLLECTION_CONTROLLER_ROLE, msg.sender),
|
||||||
"FleekAccessControl: must have collection controller role"
|
"FleekAccessControl: must have collection controller role"
|
||||||
);
|
);
|
||||||
|
|
@ -41,23 +40,9 @@ abstract contract FleekAccessControl is AccessControl {
|
||||||
_;
|
_;
|
||||||
}
|
}
|
||||||
|
|
||||||
function addTokenController(
|
|
||||||
uint256 tokenId,
|
|
||||||
address controller
|
|
||||||
) public require requireMinted(tokenId) requireTokenOwner(tokenId) {
|
|
||||||
_grantRole(_tokenRole(tokenId, "CONTROLLER"), controller);
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeTokenController(
|
|
||||||
uint256 tokenId,
|
|
||||||
address controller
|
|
||||||
) public require requireMinted(tokenId) requireTokenOwner(tokenId) {
|
|
||||||
_revokeRole(_tokenRole(tokenId, "CONTROLLER"), controller);
|
|
||||||
}
|
|
||||||
|
|
||||||
function _tokenRole(
|
function _tokenRole(
|
||||||
uint256 tokenId,
|
uint256 tokenId,
|
||||||
string role
|
string memory role
|
||||||
) internal pure returns (bytes32) {
|
) internal pure returns (bytes32) {
|
||||||
return keccak256(abi.encodePacked("TOKEN_", role, tokenId));
|
return keccak256(abi.encodePacked("TOKEN_", role, tokenId));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ abstract contract FleekBuilds is IFleekBuilds, FleekAccessControl {
|
||||||
|
|
||||||
function update(
|
function update(
|
||||||
build calldata _newBuild
|
build calldata _newBuild
|
||||||
) external override requireController {
|
) external override requireCollectionController {
|
||||||
builds.push(_newBuild);
|
builds.push(_newBuild);
|
||||||
emit Upgraded(_newBuild);
|
emit Upgraded(_newBuild);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,6 @@ pragma solidity ^0.8.7;
|
||||||
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
|
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
|
||||||
import "@openzeppelin/contracts/utils/Counters.sol";
|
import "@openzeppelin/contracts/utils/Counters.sol";
|
||||||
import "./FleekAccessControl.sol";
|
import "./FleekAccessControl.sol";
|
||||||
import "../interfaces/IFleekERC721.sol";
|
|
||||||
import "./FleekSite.sol";
|
|
||||||
|
|
||||||
contract FleekERC721 is ERC721, FleekAccessControl {
|
contract FleekERC721 is ERC721, FleekAccessControl {
|
||||||
using Strings for uint256;
|
using Strings for uint256;
|
||||||
|
|
@ -27,8 +25,17 @@ contract FleekERC721 is ERC721, FleekAccessControl {
|
||||||
Counters.Counter private _tokenIds;
|
Counters.Counter private _tokenIds;
|
||||||
mapping(uint256 => Site) private _sites;
|
mapping(uint256 => Site) private _sites;
|
||||||
|
|
||||||
modifier requireMinted(uint256 tokenId) {
|
constructor(
|
||||||
require(_requireMinted(tokenId), "FleekERC721: token not minted");
|
string memory _name,
|
||||||
|
string memory _symbol
|
||||||
|
) ERC721(_name, _symbol) {}
|
||||||
|
|
||||||
|
modifier requireTokenOwner(uint256 tokenId) {
|
||||||
|
require(
|
||||||
|
msg.sender == ownerOf(tokenId),
|
||||||
|
"FleekERC721: must be token owner"
|
||||||
|
);
|
||||||
|
_;
|
||||||
}
|
}
|
||||||
|
|
||||||
function mint(
|
function mint(
|
||||||
|
|
@ -42,7 +49,10 @@ contract FleekERC721 is ERC721, FleekAccessControl {
|
||||||
_mint(to, tokenId);
|
_mint(to, tokenId);
|
||||||
addTokenController(tokenId, to);
|
addTokenController(tokenId, to);
|
||||||
_tokenIds.increment();
|
_tokenIds.increment();
|
||||||
_sites[tokenId] = Site(URI, ENS, 0, [Build(commit, repository)]);
|
|
||||||
|
Build[] memory _builds = new Build[](1);
|
||||||
|
_builds[0] = Build(commit, repository);
|
||||||
|
_sites[tokenId] = Site(URI, ENS, 0, _builds);
|
||||||
return tokenId;
|
return tokenId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -50,21 +60,16 @@ contract FleekERC721 is ERC721, FleekAccessControl {
|
||||||
uint256 tokenId,
|
uint256 tokenId,
|
||||||
string memory commit,
|
string memory commit,
|
||||||
string memory repository
|
string memory repository
|
||||||
) public payable require requireMinted(tokenId) requireTokenOwner(tokenId) {
|
) public payable requireTokenOwner(tokenId) {
|
||||||
_setTokenBuild(commit, repository);
|
_requireMinted(tokenId);
|
||||||
|
_setTokenBuild(tokenId, commit, repository);
|
||||||
}
|
}
|
||||||
|
|
||||||
function tokenURI(
|
function tokenURI(
|
||||||
uint256 tokenId
|
uint256 tokenId
|
||||||
)
|
) public view virtual override returns (string memory) {
|
||||||
public
|
_requireMinted(tokenId);
|
||||||
view
|
address owner = ownerOf(tokenId);
|
||||||
virtual
|
|
||||||
override
|
|
||||||
requireMinted(tokenId)
|
|
||||||
returns (string memory)
|
|
||||||
{
|
|
||||||
address memory owner = ownerOf(tokenId);
|
|
||||||
Site memory site = _sites[tokenId];
|
Site memory site = _sites[tokenId];
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
|
|
@ -84,6 +89,28 @@ contract FleekERC721 is ERC721, FleekAccessControl {
|
||||||
return string(abi.encodePacked(_baseURI(), dataURI));
|
return string(abi.encodePacked(_baseURI(), dataURI));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addTokenController(
|
||||||
|
uint256 tokenId,
|
||||||
|
address controller
|
||||||
|
) public requireTokenOwner(tokenId) {
|
||||||
|
_requireMinted(tokenId);
|
||||||
|
_grantRole(_tokenRole(tokenId, "CONTROLLER"), controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeTokenController(
|
||||||
|
uint256 tokenId,
|
||||||
|
address controller
|
||||||
|
) public requireTokenOwner(tokenId) {
|
||||||
|
_requireMinted(tokenId);
|
||||||
|
_revokeRole(_tokenRole(tokenId, "CONTROLLER"), controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
function supportsInterface(
|
||||||
|
bytes4 interfaceId
|
||||||
|
) public view virtual override(ERC721, AccessControl) returns (bool) {
|
||||||
|
return super.supportsInterface(interfaceId);
|
||||||
|
}
|
||||||
|
|
||||||
function _baseURI() internal view virtual override returns (string memory) {
|
function _baseURI() internal view virtual override returns (string memory) {
|
||||||
return "data:application/json;base64,";
|
return "data:application/json;base64,";
|
||||||
}
|
}
|
||||||
|
|
@ -91,14 +118,16 @@ contract FleekERC721 is ERC721, FleekAccessControl {
|
||||||
function _setTokenURI(
|
function _setTokenURI(
|
||||||
uint256 tokenId,
|
uint256 tokenId,
|
||||||
string memory _tokenURI
|
string memory _tokenURI
|
||||||
) internal virtual requireMinted(tokenId) requireTokenController(tokenId) {
|
) internal virtual requireTokenController(tokenId) {
|
||||||
|
_requireMinted(tokenId);
|
||||||
_sites[tokenId].URI = _tokenURI;
|
_sites[tokenId].URI = _tokenURI;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _setTokenENS(
|
function _setTokenENS(
|
||||||
uint256 tokenId,
|
uint256 tokenId,
|
||||||
string memory _tokenENS
|
string memory _tokenENS
|
||||||
) internal virtual requireMinted(tokenId) requireTokenController(tokenId) {
|
) internal virtual requireTokenController(tokenId) {
|
||||||
|
_requireMinted(tokenId);
|
||||||
_sites[tokenId].ENS = _tokenENS;
|
_sites[tokenId].ENS = _tokenENS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -106,7 +135,8 @@ contract FleekERC721 is ERC721, FleekAccessControl {
|
||||||
uint256 tokenId,
|
uint256 tokenId,
|
||||||
string memory _commit,
|
string memory _commit,
|
||||||
string memory _repository
|
string memory _repository
|
||||||
) internal virtual requireMinted(tokenId) requireTokenController(tokenId) {
|
) internal virtual requireTokenController(tokenId) {
|
||||||
|
_requireMinted(tokenId);
|
||||||
_sites[tokenId].builds.push(Build(_commit, _repository));
|
_sites[tokenId].builds.push(Build(_commit, _repository));
|
||||||
_sites[tokenId].currentBuild = _sites[tokenId].builds.length - 1;
|
_sites[tokenId].currentBuild = _sites[tokenId].builds.length - 1;
|
||||||
}
|
}
|
||||||
|
|
@ -118,7 +148,7 @@ contract FleekERC721 is ERC721, FleekAccessControl {
|
||||||
);
|
);
|
||||||
super._burn(tokenId);
|
super._burn(tokenId);
|
||||||
|
|
||||||
if (bytes(_sites[tokenId]).length != 0) {
|
if (bytes(_sites[tokenId].URI).length != 0) {
|
||||||
delete _sites[tokenId];
|
delete _sites[tokenId];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
// SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
pragma solidity ^0.8.7;
|
|
||||||
|
|
||||||
import "./Fleek.sol";
|
|
||||||
import "../interfaces/IFleekSite.sol";
|
|
||||||
|
|
||||||
contract FleekSite is IFleekSite, Fleek {
|
|
||||||
string public thumbnail;
|
|
||||||
string public external_url;
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
string memory _name,
|
|
||||||
string memory _description,
|
|
||||||
string memory _thumbnail,
|
|
||||||
string memory _external_url
|
|
||||||
) Fleek(_name, _description) {
|
|
||||||
thumbnail = _thumbnail;
|
|
||||||
external_url = _external_url;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setThumbnail(
|
|
||||||
string calldata _thumbnail
|
|
||||||
) external override requireController {
|
|
||||||
thumbnail = _thumbnail;
|
|
||||||
emit MetadataUpdated(name, description, thumbnail, external_url);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setExternalUrl(
|
|
||||||
string calldata _external_url
|
|
||||||
) external override requireController {
|
|
||||||
external_url = _external_url;
|
|
||||||
emit MetadataUpdated(name, description, thumbnail, external_url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
require('@nomiclabs/hardhat-waffle');
|
require('@nomiclabs/hardhat-waffle');
|
||||||
require('@nomiclabs/hardhat-etherscan');
|
require('@nomiclabs/hardhat-etherscan');
|
||||||
|
require('@nomiclabs/hardhat-ethers');
|
||||||
require('hardhat-deploy');
|
require('hardhat-deploy');
|
||||||
require('solidity-coverage');
|
require('solidity-coverage');
|
||||||
require('hardhat-gas-reporter');
|
require('hardhat-gas-reporter');
|
||||||
|
|
@ -22,8 +23,7 @@ const POLYGON_MAINNET_RPC_URL =
|
||||||
'https://polygon-mainnet.alchemyapi.io/v2/your-api-key';
|
'https://polygon-mainnet.alchemyapi.io/v2/your-api-key';
|
||||||
|
|
||||||
const POLYGON_MUMBAI_RPC_URL =
|
const POLYGON_MUMBAI_RPC_URL =
|
||||||
process.env.POLYGON_MUMBAI_RPC_URL ||
|
process.env.API_KEY || 'https://polygon-mumbai.g.alchemy.com/v2/your-api-key';
|
||||||
'https://polygon-mumbai.g.alchemy.com/v2/aIjNlC4r4aLYOHrdCTFT_JUX6OJsOsu0';
|
|
||||||
const PRIVATE_KEY = process.env.PRIVATE_KEY || '0x';
|
const PRIVATE_KEY = process.env.PRIVATE_KEY || '0x';
|
||||||
// optional
|
// optional
|
||||||
const MNEMONIC = process.env.MNEMONIC || 'your mnemonic';
|
const MNEMONIC = process.env.MNEMONIC || 'your mnemonic';
|
||||||
|
|
@ -36,14 +36,14 @@ const POLYGONSCAN_API_KEY =
|
||||||
const REPORT_GAS = process.env.REPORT_GAS || false;
|
const REPORT_GAS = process.env.REPORT_GAS || false;
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
defaultNetwork: 'hardhat',
|
defaultNetwork: 'polygon_mumbai',
|
||||||
networks: {
|
networks: {
|
||||||
hardhat: {
|
hardhat: {
|
||||||
// // If you want to do some forking, uncomment this
|
// // If you want to do some forking, uncomment this
|
||||||
// forking: {
|
// forking: {
|
||||||
// url: MAINNET_RPC_URL
|
// url: MAINNET_RPC_URL
|
||||||
// }
|
// }
|
||||||
chainId: 31337,
|
// chainId: 31337,
|
||||||
},
|
},
|
||||||
localhost: {
|
localhost: {
|
||||||
chainId: 31337,
|
chainId: 31337,
|
||||||
|
|
@ -78,6 +78,10 @@ module.exports = {
|
||||||
// saveDeployments: true,
|
// saveDeployments: true,
|
||||||
// chainId: 80001,
|
// chainId: 80001,
|
||||||
// }
|
// }
|
||||||
|
polygon_mumbai: {
|
||||||
|
url: POLYGON_MUMBAI_RPC_URL,
|
||||||
|
accounts: [`0x${PRIVATE_KEY}`],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
etherscan: {
|
etherscan: {
|
||||||
// npx hardhat verify --network <NETWORK> <CONTRACT_ADDRESS> <CONSTRUCTOR_PARAMETERS>
|
// npx hardhat verify --network <NETWORK> <CONTRACT_ADDRESS> <CONSTRUCTOR_PARAMETERS>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
// SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
pragma solidity ^0.8.7;
|
|
||||||
|
|
||||||
import "./IFleekBuilds.sol";
|
|
||||||
import "../node_modules/@openzeppelin/contracts/access/IAccessControl.sol";
|
|
||||||
|
|
||||||
interface IFleek is IFleekBuilds, IAccessControl {
|
|
||||||
event MetadataUpdated(string name, string description);
|
|
||||||
|
|
||||||
function setName(string calldata _name) external;
|
|
||||||
|
|
||||||
function setDescription(string calldata _description) external;
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
// SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
pragma solidity ^0.8.7;
|
|
||||||
|
|
||||||
import "../node_modules/@openzeppelin/contracts/interfaces/IERC721.sol";
|
|
||||||
import "../node_modules/@openzeppelin/contracts/access/IAccessControl.sol";
|
|
||||||
|
|
||||||
/// @title IFleekERC721 - A contract for managing sites NFTs
|
|
||||||
interface IFleekERC721 is IERC721 {
|
|
||||||
enum FleekContract {
|
|
||||||
Site
|
|
||||||
}
|
|
||||||
|
|
||||||
function mint(
|
|
||||||
uint8 fleekContract,
|
|
||||||
string memory base64EncodedMetadata,
|
|
||||||
address account
|
|
||||||
) external returns (uint256);
|
|
||||||
|
|
||||||
function updateTokenURI(
|
|
||||||
address tokenHolderAddress,
|
|
||||||
uint256 tokenId,
|
|
||||||
string memory base64EncodedMetadata
|
|
||||||
) external;
|
|
||||||
|
|
||||||
function getCurrentTokenId() external view returns (uint256);
|
|
||||||
|
|
||||||
function tokenContract(uint256 tokenId) external view returns (address);
|
|
||||||
}
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
// SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
pragma solidity ^0.8.7;
|
|
||||||
|
|
||||||
import "./IFleek.sol";
|
|
||||||
|
|
||||||
interface IFleekSite is IFleek {
|
|
||||||
event MetadataUpdated(
|
|
||||||
string name,
|
|
||||||
string description,
|
|
||||||
string thumbnail,
|
|
||||||
string external_url
|
|
||||||
);
|
|
||||||
|
|
||||||
function setThumbnail(string calldata _thumbnail) external;
|
|
||||||
|
|
||||||
function setExternalUrl(string calldata _external_url) external;
|
|
||||||
}
|
|
||||||
|
|
@ -5,7 +5,8 @@
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "hardhat test",
|
"test": "hardhat test",
|
||||||
"format": "prettier --write \"./**/*.{js,ts,sol}\""
|
"format": "prettier --write \"./**/*.{js,ts,sol}\"",
|
||||||
|
"deploy:mumbai": "node scripts/deploy.js --network polygon_mumbai --contract FleekERC721 --param \"Fleek Sites Test\" --param FST"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
@ -26,10 +27,12 @@
|
||||||
"chai": "^4.3.6",
|
"chai": "^4.3.6",
|
||||||
"dotenv": "^16.0.2",
|
"dotenv": "^16.0.2",
|
||||||
"ethereum-waffle": "^3.4.4",
|
"ethereum-waffle": "^3.4.4",
|
||||||
|
"ethers": "^5.0.0",
|
||||||
"hardhat": "^2.11.2",
|
"hardhat": "^2.11.2",
|
||||||
"hardhat-contract-sizer": "^2.6.1",
|
"hardhat-contract-sizer": "^2.6.1",
|
||||||
"hardhat-deploy": "^0.11.15",
|
"hardhat-deploy": "^0.11.15",
|
||||||
"hardhat-gas-reporter": "^1.0.9",
|
"hardhat-gas-reporter": "^1.0.9",
|
||||||
|
"minimist": "^1.2.7",
|
||||||
"prettier": "^2.7.1",
|
"prettier": "^2.7.1",
|
||||||
"prettier-plugin-solidity": "^1.0.0",
|
"prettier-plugin-solidity": "^1.0.0",
|
||||||
"solidity-coverage": "^0.8.2"
|
"solidity-coverage": "^0.8.2"
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,26 @@
|
||||||
|
const argv = require('minimist')(process.argv.slice(2));
|
||||||
|
const contractName = argv.contract;
|
||||||
|
const params = argv.param || [];
|
||||||
|
|
||||||
|
if (!contractName) {
|
||||||
|
console.log('No contract name provided');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
console.log('Deploying contract:', contractName);
|
||||||
|
console.log('With params:', params);
|
||||||
|
|
||||||
const [deployer] = await ethers.getSigners();
|
const [deployer] = await ethers.getSigners();
|
||||||
|
|
||||||
console.log('Deploying contracts with the account:', deployer.address);
|
console.log('Deploying contracts with the account:', deployer.address);
|
||||||
|
|
||||||
console.log('Account balance:', (await deployer.getBalance()).toString());
|
console.log('Account balance:', (await deployer.getBalance()).toString());
|
||||||
|
|
||||||
const SitesNFTs = await ethers.getContractFactory('SitesNFTs');
|
// const factory = await ethers.getContractFactory(contractName);
|
||||||
const sitesNFTs = await SitesNFTs.deploy('Sites NFTs', 'SNFT');
|
|
||||||
|
|
||||||
console.log('SitesNFTs address:', sitesNFTs.address);
|
// // Start deployment, returning a promise that resolves to a contract object
|
||||||
|
// const contract = await factory.deploy(...params);
|
||||||
|
// console.log('Contract deployed to address:', contract.address);
|
||||||
}
|
}
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|
|
||||||
|
|
@ -3759,7 +3759,7 @@ ethers@^4.0.40:
|
||||||
uuid "2.0.1"
|
uuid "2.0.1"
|
||||||
xmlhttprequest "1.8.0"
|
xmlhttprequest "1.8.0"
|
||||||
|
|
||||||
ethers@^5.0.1, ethers@^5.0.2, ethers@^5.5.2, ethers@^5.5.3:
|
ethers@^5.0.0, ethers@^5.0.1, ethers@^5.0.2, ethers@^5.5.2, ethers@^5.5.3:
|
||||||
version "5.7.2"
|
version "5.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
|
resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
|
||||||
integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==
|
integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==
|
||||||
|
|
@ -6056,7 +6056,7 @@ minimatch@5.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^2.0.1"
|
brace-expansion "^2.0.1"
|
||||||
|
|
||||||
minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.6:
|
minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.7, minimist@~1.2.6:
|
||||||
version "1.2.7"
|
version "1.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
||||||
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue