diff --git a/CHANGELOG.md b/CHANGELOG.md index a0b2d9d..9b8347a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ CHANGELOG === -Last ens-contracts sync time: Feb 13, 2023 +Last ens-contracts sync time: Feb 23, 2023 ## v0.2.3 diff --git a/contracts/web3registrar/NameWhitelist.sol b/contracts/web3registrar/NameWhitelist.sol index 9541594..dfc1ed3 100644 --- a/contracts/web3registrar/NameWhitelist.sol +++ b/contracts/web3registrar/NameWhitelist.sol @@ -127,6 +127,6 @@ contract NameWhitelist is Ownable, INameWhitelist { } function keccak(string memory str) private pure returns (bytes32) { - return keccak256(abi.encode(str)); + return keccak256(bytes(str)); } } diff --git a/contracts/web3registrar/Web3RegistrarController.sol b/contracts/web3registrar/Web3RegistrarController.sol index 8f7709a..c86e452 100644 --- a/contracts/web3registrar/Web3RegistrarController.sol +++ b/contracts/web3registrar/Web3RegistrarController.sol @@ -16,7 +16,6 @@ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.s import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; import {INameWhitelist} from "./INameWhitelist.sol"; // CNS UPDATE import {IFiatPriceOracle} from "./IFiatPriceOracle.sol"; // CNS UPDATE -import {ICNameWrapper} from '../wrapper/ICNameWrapper.sol'; // CNS UPDATE error CommitmentTooNew(bytes32 commitment); error CommitmentTooOld(bytes32 commitment); @@ -51,7 +50,7 @@ contract Web3RegistrarController is uint256 public minCommitmentAge; uint256 public maxCommitmentAge; ReverseRegistrar public reverseRegistrar; - ICNameWrapper public nameWrapper; // CNS UPDATE + INameWrapper public nameWrapper; mapping(bytes32 => uint256) public commitments; @@ -71,8 +70,7 @@ contract Web3RegistrarController is ); INameWhitelist public nameWhitelist; // CNS UPDATE - uint256 private validLen = 4; // CNS UPDATE - uint256 private label45Quota = 50000; // CNS UPDATE + uint256 private validLen = 5; // CNS UPDATE // CNS UPDATE enum LabelStatus { @@ -92,7 +90,7 @@ contract Web3RegistrarController is uint256 _minCommitmentAge, uint256 _maxCommitmentAge, ReverseRegistrar _reverseRegistrar, - ICNameWrapper _nameWrapper + INameWrapper _nameWrapper ) { _setupRole(ADMIN_ROLE, msg.sender); _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); @@ -105,7 +103,7 @@ contract Web3RegistrarController is uint256 _minCommitmentAge, uint256 _maxCommitmentAge, ReverseRegistrar _reverseRegistrar, - ICNameWrapper _nameWrapper, + INameWrapper _nameWrapper, address _admin ) public initializer { _setupRole(ADMIN_ROLE, _admin); @@ -119,7 +117,7 @@ contract Web3RegistrarController is uint256 _minCommitmentAge, uint256 _maxCommitmentAge, ReverseRegistrar _reverseRegistrar, - ICNameWrapper _nameWrapper + INameWrapper _nameWrapper ) internal { if (_maxCommitmentAge <= _minCommitmentAge) { revert MaxCommitmentAgeTooLow(); @@ -135,8 +133,7 @@ contract Web3RegistrarController is maxCommitmentAge = _maxCommitmentAge; reverseRegistrar = _reverseRegistrar; nameWrapper = _nameWrapper; - validLen = 4; - label45Quota = 50000; + validLen = 5; } function rentPrice(string memory name, uint256 duration) @@ -433,9 +430,6 @@ contract Web3RegistrarController is if (!available(_label)) { return LabelStatus.Registered; } - if ((_label.strlen() == 4 || _label.strlen() == 5) && nameWrapper.label45Count() >= label45Quota) { - return LabelStatus.SoldOut; - } return LabelStatus.Valid; } @@ -497,12 +491,6 @@ contract Web3RegistrarController is validLen = _len; } - // CNS UPDATE - function setLabel45Quota(uint256 _quota) public onlyRole(ADMIN_ROLE) { - require(_quota > label45Quota, "invalid quota"); - label45Quota = _quota; - } - // CNS UPDATE function addAdmin(address addr) public onlyRole(ADMIN_ROLE) { _setupRole(ADMIN_ROLE, addr); diff --git a/contracts/wrapper/ICNameWrapper.sol b/contracts/wrapper/ICNameWrapper.sol deleted file mode 100644 index 108fa4d..0000000 --- a/contracts/wrapper/ICNameWrapper.sol +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED - -pragma solidity >=0.8.4; - -import {INameWrapper} from "@ensdomains/ens-contracts/contracts/wrapper/INameWrapper.sol"; - -interface ICNameWrapper is INameWrapper { - function tokenCount() external view returns (uint256); - function label45Count() external view returns (uint256); -} \ No newline at end of file diff --git a/contracts/wrapper/NameWrapper.sol b/contracts/wrapper/NameWrapper.sol index 6cdf0d4..5e8664d 100644 --- a/contracts/wrapper/NameWrapper.sol +++ b/contracts/wrapper/NameWrapper.sol @@ -1,7 +1,7 @@ //SPDX-License-Identifier: MIT pragma solidity ~0.8.17; -import {ERC1155Fuse, IERC165} from "@ensdomains/ens-contracts/contracts/wrapper/ERC1155Fuse.sol"; +import {ERC1155Fuse, IERC165, IERC1155MetadataURI} from "@ensdomains/ens-contracts/contracts/wrapper/ERC1155Fuse.sol"; import {Controllable} from "@ensdomains/ens-contracts/contracts/wrapper/Controllable.sol"; import {INameWrapper, CANNOT_UNWRAP, CANNOT_BURN_FUSES, CANNOT_TRANSFER, CANNOT_SET_RESOLVER, CANNOT_SET_TTL, CANNOT_CREATE_SUBDOMAIN, PARENT_CANNOT_CONTROL, CAN_DO_EVERYTHING, IS_DOT_ETH, CAN_EXTEND_EXPIRY, PARENT_CONTROLLED_FUSES, USER_SETTABLE_FUSES} from "@ensdomains/ens-contracts/contracts/wrapper/INameWrapper.sol"; import {INameWrapperUpgrade} from "@ensdomains/ens-contracts/contracts/wrapper/INameWrapperUpgrade.sol"; @@ -12,7 +12,6 @@ import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Recei import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {BytesUtils} from "@ensdomains/ens-contracts/contracts/wrapper/BytesUtils.sol"; import {ERC20Recoverable} from "@ensdomains/ens-contracts/contracts/utils/ERC20Recoverable.sol"; - import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; // CNS UPDATE import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; // CNS UPDATE import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; // CNS UPDATE @@ -41,17 +40,17 @@ contract NameWrapper is using BytesUtils for bytes; using EnumerableSet for EnumerableSet.Bytes32Set; // CNS UPDATE - ENS public override ens; - IBaseRegistrar public override registrar; - IMetadataService public override metadataService; - mapping(bytes32 => bytes) public override names; - string public constant name = "NameWrapper"; + ENS public ens; + IBaseRegistrar public registrar; + IMetadataService public metadataService; + mapping(bytes32 => bytes) public names; + string public constant name = "CNSNameWrapper"; uint64 private constant GRACE_PERIOD = 90 days; bytes32 private constant ETH_NODE = - 0x587d09fe5fa45354680537d38145a28b772971e0f293af3ee0c536fc919710fb; // CNS UPDATE eth -> web3 + 0x587d09fe5fa45354680537d38145a28b772971e0f293af3ee0c536fc919710fb; // CNS UPDATE eth -> web3 bytes32 private constant ETH_LABELHASH = - 0x906f4bd26db04205451741914e3591af122a9ecb412fd5a0a8e0146b48a9d4c6; // CNS UPDATE eth -> web3 + 0x906f4bd26db04205451741914e3591af122a9ecb412fd5a0a8e0146b48a9d4c6; // CNS UPDATE eth -> web3 bytes32 private constant ROOT_NODE = 0x0000000000000000000000000000000000000000000000000000000000000000; @@ -63,8 +62,6 @@ contract NameWrapper is // owner => web3 node set // Update places: _mint, _burn, transfer mapping(address => EnumerableSet.Bytes32Set) private _userNodes; - uint256 public tokenCount; - uint256 public label45Count; // count of label lengh is 4-5 constructor( ENS _ens, @@ -108,7 +105,7 @@ contract NameWrapper is public view virtual - override(ERC1155Fuse, IERC165) + override(ERC1155Fuse, INameWrapper) returns (bool) { return @@ -177,7 +174,12 @@ contract NameWrapper is * @return string uri of the metadata service */ - function uri(uint256 tokenId) public view override returns (string memory) { + function uri(uint256 tokenId) + public + view + override(INameWrapper, IERC1155MetadataURI) + returns (string memory) + { return metadataService.uri(tokenId); } @@ -228,7 +230,6 @@ contract NameWrapper is function canModifyName(bytes32 node, address addr) public view - override returns (bool) { (address owner, uint32 fuses, uint64 expiry) = getData(uint256(node)); @@ -252,7 +253,7 @@ contract NameWrapper is address wrappedOwner, uint16 ownerControlledFuses, address resolver - ) public override { + ) public { uint256 tokenId = uint256(keccak256(bytes(label))); address registrant = registrar.ownerOf(tokenId); if ( @@ -271,7 +272,15 @@ contract NameWrapper is // transfer the ens record back to the new owner (this contract) registrar.reclaim(tokenId, address(this)); - _wrapETH2LD(label, wrappedOwner, ownerControlledFuses, resolver); + uint64 expiry = uint64(registrar.nameExpires(tokenId)) + GRACE_PERIOD; + + _wrapETH2LD( + label, + wrappedOwner, + ownerControlledFuses, + expiry, + resolver + ); } /** @@ -291,10 +300,16 @@ contract NameWrapper is uint256 duration, address resolver, uint16 ownerControlledFuses - ) external override onlyController returns (uint256 registrarExpiry) { + ) external onlyController returns (uint256 registrarExpiry) { uint256 tokenId = uint256(keccak256(bytes(label))); registrarExpiry = registrar.register(tokenId, address(this), duration); - _wrapETH2LD(label, wrappedOwner, ownerControlledFuses, resolver); + _wrapETH2LD( + label, + wrappedOwner, + ownerControlledFuses, + uint64(registrarExpiry) + GRACE_PERIOD, + resolver + ); } /** @@ -307,7 +322,6 @@ contract NameWrapper is function renew(uint256 tokenId, uint256 duration) external - override onlyController returns (uint256 expires) { @@ -349,7 +363,7 @@ contract NameWrapper is bytes calldata name, address wrappedOwner, address resolver - ) public override { + ) public { (bytes32 labelhash, uint256 offset) = name.readLabel(0); bytes32 parentNode = name.namehash(offset); bytes32 node = _makeNode(parentNode, labelhash); @@ -387,7 +401,7 @@ contract NameWrapper is bytes32 labelhash, address registrant, address controller - ) public override onlyTokenOwner(_makeNode(ETH_NODE, labelhash)) { + ) public onlyTokenOwner(_makeNode(ETH_NODE, labelhash)) { if (registrant == address(this)) { revert IncorrectTargetOwner(registrant); } @@ -411,7 +425,7 @@ contract NameWrapper is bytes32 parentNode, bytes32 labelhash, address controller - ) public override onlyTokenOwner(_makeNode(parentNode, labelhash)) { + ) public onlyTokenOwner(_makeNode(parentNode, labelhash)) { if (parentNode == ETH_NODE) { revert IncompatibleParent(); } @@ -425,7 +439,7 @@ contract NameWrapper is * @notice Sets fuses of a name * @param node Namehash of the name * @param ownerControlledFuses Owner-controlled fuses to burn - * @return New fuses + * @return Old fuses */ function setFuses(bytes32 node, uint16 ownerControlledFuses) @@ -439,7 +453,7 @@ contract NameWrapper is uint256(node) ); _setFuses(node, owner, ownerControlledFuses | oldFuses, expiry, expiry); - return ownerControlledFuses; + return oldFuses; } /** @@ -483,71 +497,35 @@ contract NameWrapper is } /** - * @notice Upgrades a .eth wrapped domain by calling the wrapETH2LD function of the upgradeContract - * and burning the token of this contract - * @dev Can be called by the owner of the name in this contract - * @param label Label as a string of the .eth name to upgrade - * @param wrappedOwner The owner of the wrapped name + * @notice Upgrades a domain of any kind. Could be a .eth name vitalik.eth, a DNSSEC name vitalik.xyz, or a subdomain + * @dev Can be called by the owner or an authorised caller + * @param name The name to upgrade, in DNS format + * @param extraData Extra data to pass to the upgrade contract */ - function upgradeETH2LD( - string calldata label, - address wrappedOwner, - address resolver - ) public { - bytes32 labelhash = keccak256(bytes(label)); - bytes32 node = _makeNode(ETH_NODE, labelhash); - (address currentOwner, uint32 fuses, uint64 expiry) = _prepareUpgrade( - node - ); + function upgrade(bytes calldata name, bytes calldata extraData) public { + bytes32 node = name.namehash(0); - if (wrappedOwner != currentOwner) { - _preTransferCheck(uint256(node), fuses, expiry); + if (address(upgradeContract) == address(0)) { + revert CannotUpgrade(); } - upgradeContract.wrapETH2LD( - label, - wrappedOwner, - fuses, - expiry, - resolver - ); - } - - /** - * @notice Upgrades a non .eth domain of any kind. Could be a DNSSEC name vitalik.xyz or a subdomain - * @dev Can be called by the owner or an authorised caller - * Requires upgraded Namewrapper to permit old Namewrapper to call `setSubnodeRecord` for all names - * @param parentNode Namehash of the parent name - * @param label Label as a string of the name to upgrade - * @param wrappedOwner Owner of the name in this contract - * @param resolver Resolver contract for this name - */ + if (!canModifyName(node, msg.sender)) { + revert Unauthorised(node, msg.sender); + } - function upgrade( - bytes32 parentNode, - string calldata label, - address wrappedOwner, - address resolver - ) public { - bytes32 labelhash = keccak256(bytes(label)); - bytes32 node = _makeNode(parentNode, labelhash); - (address currentOwner, uint32 fuses, uint64 expiry) = _prepareUpgrade( - node + (address currentOwner, uint32 fuses, uint64 expiry) = getData( + uint256(node) ); - if (wrappedOwner != currentOwner) { - _preTransferCheck(uint256(node), fuses, expiry); - } + _burn(uint256(node)); - upgradeContract.setSubnodeRecord( - parentNode, - label, - wrappedOwner, - resolver, - 0, + upgradeContract.wrapFromUpgrade( + name, + currentOwner, fuses, - expiry + expiry, + extraData ); } @@ -624,7 +602,7 @@ contract NameWrapper is bytes memory name = _saveLabel(parentNode, node, label); expiry = _checkParentFusesAndExpiry(parentNode, node, fuses, expiry); - if (!isWrapped(node)) { + if (!_isWrapped(node)) { ens.setSubnodeOwner(parentNode, labelhash, address(this)); _wrap(node, name, owner, fuses, expiry); } else { @@ -659,7 +637,7 @@ contract NameWrapper is _checkFusesAreSettable(node, fuses); _saveLabel(parentNode, node, label); expiry = _checkParentFusesAndExpiry(parentNode, node, fuses, expiry); - if (!isWrapped(node)) { + if (!_isWrapped(node)) { ens.setSubnodeRecord( parentNode, labelhash, @@ -695,7 +673,6 @@ contract NameWrapper is uint64 ttl ) public - override onlyTokenOwner(node) operationAllowed( node, @@ -723,7 +700,6 @@ contract NameWrapper is function setResolver(bytes32 node, address resolver) public - override onlyTokenOwner(node) operationAllowed(node, CANNOT_SET_RESOLVER) { @@ -738,7 +714,6 @@ contract NameWrapper is function setTTL(bytes32 node, uint64 ttl) public - override onlyTokenOwner(node) operationAllowed(node, CANNOT_SET_TTL) { @@ -811,17 +786,46 @@ contract NameWrapper is function allFusesBurned(bytes32 node, uint32 fuseMask) public view - override returns (bool) { (, uint32 fuses, ) = getData(uint256(node)); return fuses & fuseMask == fuseMask; } + /** + * @notice Checks if a name is wrapped + * @param node Namehash of the name + * @return Boolean of whether or not the name is wrapped + */ + function isWrapped(bytes32 node) public view returns (bool) { - return - ownerOf(uint256(node)) != address(0) && - ens.owner(node) == address(this); + bytes memory name = names[node]; + if (name.length == 0) { + return false; + } + (bytes32 labelhash, uint256 offset) = name.readLabel(0); + bytes32 parentNode = name.namehash(offset); + return isWrapped(parentNode, labelhash); + } + + /** + * @notice Checks if a name is wrapped in a more gas efficient way + * @param parentNode Namehash of the name + * @param labelhash Namehash of the name + * @return Boolean of whether or not the name is wrapped + */ + + function isWrapped(bytes32 parentNode, bytes32 labelhash) public view returns (bool) { + bytes32 node = _makeNode(parentNode, labelhash); + bool wrapped = _isWrapped(node); + if (parentNode != ETH_NODE) { + return wrapped; + } + try registrar.ownerOf(uint256(labelhash)) returns (address owner) { + return owner == address(this); + } catch { + return false; + } } function onERC721Received( @@ -829,7 +833,7 @@ contract NameWrapper is address, uint256 tokenId, bytes calldata data - ) public override returns (bytes4) { + ) public returns (bytes4) { //check if it's the eth registrar ERC721 if (msg.sender != address(registrar)) { revert IncorrectTokenType(); @@ -852,59 +856,11 @@ contract NameWrapper is // transfer the ens record back to the new owner (this contract) registrar.reclaim(uint256(labelhash), address(this)); - _wrapETH2LD(label, owner, ownerControlledFuses, resolver); - - return IERC721Receiver(to).onERC721Received.selector; - } - - // CNS UPDATE - function safeTransferFrom( - address from, - address to, - uint256 id, - uint256 amount, - bytes memory data - ) public virtual override(ERC1155Fuse, IERC1155) { - super.safeTransferFrom(from, to, id, amount, data); - - _updateNodeOwner(from, to, id); - } - - // CNS UPDATE - function safeBatchTransferFrom( - address from, - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) public virtual override(ERC1155Fuse, IERC1155) { - super.safeBatchTransferFrom(from, to, ids, amounts, data); - - for(uint i = 0; i < ids.length; i++) { - _updateNodeOwner(from, to, ids[i]); - } - } - - // CNS UPDATE - function _updateNodeOwner(address from, address to, uint256 id) internal { - bytes32 node = bytes32(id); - _userNodes[from].remove(node); - _userNodes[to].add(node); - } + uint64 expiry = uint64(registrar.nameExpires(tokenId)) + GRACE_PERIOD; - // CNS UPDATE - function userNodeSet(address user) public view returns (bytes32[] memory) { - return _userNodes[user].values(); - } + _wrapETH2LD(label, owner, ownerControlledFuses, expiry, resolver); - // CNS UPDATE - function userDomains(address user) public view returns (string[] memory) { - bytes32[] memory nodes = userNodeSet(user); - string[] memory domains = new string[](nodes.length); - for(uint i = 0; i < nodes.length; i++) { - domains[i] = string(names[nodes[i]]); - } - return domains; + return IERC721Receiver(to).onERC721Received.selector; } /***** Internal functions */ @@ -986,23 +942,6 @@ contract NameWrapper is // CNS UPDATE: update userNodes _userNodes[owner].add(node); - tokenCount += 1; - if (names[node].length == 11 || names[node].length == 12) { - label45Count += 1; - } - } - - function _burn(uint256 tokenId) internal override { - // CNS UPDATE: update userNodes - (address oldOwner, ,) = getData(tokenId); - bytes32 node = bytes32(tokenId); - _userNodes[oldOwner].remove(node); - tokenCount -= 1; - if (names[node].length == 11 || names[node].length == 12) { - label45Count -= 1; - } - - super._burn(tokenId); } function _wrap( @@ -1038,27 +977,6 @@ contract NameWrapper is return name; } - function _prepareUpgrade(bytes32 node) - private - returns ( - address owner, - uint32 fuses, - uint64 expiry - ) - { - if (address(upgradeContract) == address(0)) { - revert CannotUpgrade(); - } - - if (!canModifyName(node, msg.sender)) { - revert Unauthorised(node, msg.sender); - } - - (owner, fuses, expiry) = getData(uint256(node)); - - _burn(uint256(node)); - } - function _updateName( bytes32 parentNode, bytes32 node, @@ -1131,23 +1049,21 @@ contract NameWrapper is function _wrapETH2LD( string memory label, address wrappedOwner, - uint16 ownerControlledFuses, + uint32 fuses, + uint64 expiry, address resolver ) private { bytes32 labelhash = keccak256(bytes(label)); bytes32 node = _makeNode(ETH_NODE, labelhash); // hardcode dns-encoded eth string for gas savings - bytes memory name = _addLabel(label, "\x04web3\x00"); + bytes memory name = _addLabel(label, "\x04web3\x00"); // CNS UPDATE names[node] = name; - uint64 expiry = uint64(registrar.nameExpires(uint256(labelhash))) + - GRACE_PERIOD; - _wrap( node, name, wrappedOwner, - ownerControlledFuses | PARENT_CANNOT_CONTROL | IS_DOT_ETH, + fuses | PARENT_CANNOT_CONTROL | IS_DOT_ETH, expiry ); @@ -1209,4 +1125,69 @@ contract NameWrapper is revert OperationProhibited(node); } } + + function _isWrapped(bytes32 node) internal view returns (bool) { + return + ownerOf(uint256(node)) != address(0) && + ens.owner(node) == address(this); + } + + // CNS UPDATE + function safeTransferFrom( + address from, + address to, + uint256 id, + uint256 amount, + bytes memory data + ) public virtual override(ERC1155Fuse, IERC1155) { + super.safeTransferFrom(from, to, id, amount, data); + + _updateNodeOwner(from, to, id); + } + + // CNS UPDATE + function safeBatchTransferFrom( + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) public virtual override(ERC1155Fuse, IERC1155) { + super.safeBatchTransferFrom(from, to, ids, amounts, data); + + for(uint i = 0; i < ids.length; i++) { + _updateNodeOwner(from, to, ids[i]); + } + } + + // CNS UPDATE + function _updateNodeOwner(address from, address to, uint256 id) internal { + bytes32 node = bytes32(id); + _userNodes[from].remove(node); + _userNodes[to].add(node); + } + + // CNS UPDATE + function userNodeSet(address user) public view returns (bytes32[] memory) { + return _userNodes[user].values(); + } + + // CNS UPDATE + function userDomains(address user) public view returns (string[] memory) { + bytes32[] memory nodes = userNodeSet(user); + string[] memory domains = new string[](nodes.length); + for(uint i = 0; i < nodes.length; i++) { + domains[i] = string(names[nodes[i]]); + } + return domains; + } + + // CNS UPDATE: update userNodes + function _burn(uint256 tokenId) internal override { + (address oldOwner, ,) = getData(tokenId); + bytes32 node = bytes32(tokenId); + _userNodes[oldOwner].remove(node); + + super._burn(tokenId); + } } diff --git a/docs/README.md b/docs/README.md index 9c93544..5c44f9d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -38,6 +38,20 @@ Check detail in [NameWrapper](./NameWrapper.md). ## Deployment +### Conflux Core Mainnet + +```shell +ENS_REGISTRY=cfx:acemru7fu1u8brtyn3hrtae17kbcd4pd9uwbspvnnm +REVERSE_REGISTRAR=cfx:acfarpzehntpre0thg8x7dp0ajw4ms328ps634v1zk +BASE_REGISTRAR=cfx:acg08bujp0kmsup1zk11c9mad7zd6648eybmv2kbha +NAME_WRAPPER=cfx:acdpx5pyc9xkry6x84bdstvt52grxpj69uadprjs7p +WEB3_CONTROLLER=cfx:ace0bgf408jt5kmw34k3mxx03tpsfpt8by010ma8ww +PUBLIC_RESOLVER=cfx:acasaruvgf44ss67pxzfs1exvj7k2vyt863f72n6up +FIFS_REGISTRAR=cfx:achbbpdja6c3f4s6efuh7ckr85p5pf8xheet9nucz0 +REVERSE_RECORDS=cfx:achsgpgs5dgpmgpj2zd87apj6js33c07pjth6k33mj +CNS_UTIL=cfx:ace8hzgt9rcwejnh7dw1861r881g9rcgyy04r298hn +``` + ### Conflux Core Testnet Deployed at 2023.2.9 @@ -45,13 +59,9 @@ Deployed at 2023.2.9 ENS_REGISTRY=cfxtest:acemru7fu1u8brtyn3hrtae17kbcd4pd9u2m761bta REVERSE_REGISTRAR=cfxtest:acfarpzehntpre0thg8x7dp0ajw4ms328pe1mm17vd BASE_REGISTRAR=cfxtest:acg08bujp0kmsup1zk11c9mad7zd6648eynbcjtndm -STATIC_METADATA_SERVICE=cfxtest:acabg4pkfentf6pugssc10e3jdvn6r4u2pz27nwne3 NAME_WRAPPER=cfxtest:acapc3y2j7atme3bawvaex18hs36tn40uu5h6j3mtu -CFX_PRICE_ORACLE=cfxtest:acd5ganc3tmc8p2935u1rbz6fp207gm59ybd8rxxnx -STABLE_ORACLE=cfxtest:acdeywdrjb48ast7e4gug5pv3t30t4h1wam6mnggs6 WEB3_CONTROLLER=cfxtest:aca1858y5a9fnyx9rxd1c9knr517cd0e6afzzhgj01 PUBLIC_RESOLVER=cfxtest:acbfyf69zaxau5a23w10dgyrmb0hrz4p9pewn6sejp -NAME_WHITELIST=cfxtest:acex1d5fm2tcd2s9wd7p1ak9t47advbwvud2yhjw3v FIFS_REGISTRAR=cfxtest:achbbpdja6c3f4s6efuh7ckr85p5pf8xhesep50jv6 REVERSE_RECORDS=cfxtest:acgddsj3kah2f4f4c6959bvc4732f4juyj90h0zmg2 CNS_UTIL=cfxtest:aca4w63ypgup8tryphprzfcrh5kh0hpbgasb2z3s0j diff --git a/hardhat.config.ts b/hardhat.config.ts index eed88fd..32868bb 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -16,9 +16,14 @@ const config: HardhatUserConfig = { allowUnlimitedContractSize: true, }, cfxtest: { - url: process.env.RPC_URL, + url: 'https://test.confluxrpc.com', accounts: [PRIVATE_KEY], - chainId: Number(process.env.NETWORK_ID as unknown as number), + chainId: 1, + }, + cfx: { + url: 'https://main.confluxrpc.com', + accounts: [PRIVATE_KEY], + chainId: 1029, } }, abiExporter: { diff --git a/package.json b/package.json index 543ac6f..095e8a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3identity/cns-contracts", - "version": "0.3.0", + "version": "0.3.1", "description": "", "main": "index.js", "scripts": { @@ -18,6 +18,7 @@ "build/contracts/NameWrapper.json", "build/contracts/ReverseRegistrar.json", "build/contracts/ReverseRecords.json", + "build/contracts/CNSPublicResolver.json", "build/contracts/CNSUtil.json", "contracts/**/*.sol", "artifacts/contracts" diff --git a/scripts/deployInCore/5-deployPriceOracles.ts b/scripts/deployInCore/5-deployPriceOracles.ts index 175eae1..5ecaff1 100644 --- a/scripts/deployInCore/5-deployPriceOracles.ts +++ b/scripts/deployInCore/5-deployPriceOracles.ts @@ -10,7 +10,7 @@ async function main() { // @ts-ignore const DummyOracle = await conflux.getContractFactory('CFXPriceOracle'); - const cfxPrice = BigInt(0.05 * 1e8); + const cfxPrice = BigInt(0.0001 * 1e8); const receipt1 = await DummyOracle.constructor(cfxPrice).sendTransaction({ from: account.address, }).executed(); diff --git a/scripts/deployInCore/feed-reserved-names.ts b/scripts/deployInCore/feed-reserved-names.ts index aa89037..3508c30 100644 --- a/scripts/deployInCore/feed-reserved-names.ts +++ b/scripts/deployInCore/feed-reserved-names.ts @@ -2,6 +2,7 @@ import hre from 'hardhat'; import { logReceipt } from '../utils'; import path from 'path'; import fs from 'fs'; +import { sign } from 'js-conflux-sdk'; const { conflux, // The Conflux instance } = hre; @@ -24,9 +25,15 @@ async function feedReservedNames(nameWhitelist: any, account: any) { console.log('Reserved word length', reserved.length); const step = 1000 for(let i = 0; i < reserved.length; i += step) { - let receipt = await nameWhitelist.setSpecialNameBatch(reserved.slice(i, i + step), true).sendTransaction({ + const names = reserved.slice(i, i + step).map(keccak); + let receipt = await nameWhitelist.setSpecialNameBatch(names, true).sendTransaction({ from: account.address }).executed(); logReceipt(receipt, `Set Reserved Names ${i} - ${i + step}`); } +} + +function keccak(str: string) { + const hash = sign.keccak256(Buffer.from(str)) + return '0x' + hash.toString('hex'); } \ No newline at end of file diff --git a/scripts/play.ts b/scripts/play.ts index 543d75d..08da41f 100644 --- a/scripts/play.ts +++ b/scripts/play.ts @@ -31,7 +31,7 @@ async function main() { const [account] = await conflux.getSigners(); console.log('Account', account.address); - // await purchaseDomain(account, 'jiuhuaw'); + // await purchaseDomain(account, 'minix'); // await claimReverseDomain(account, 'jihuaw'); @@ -43,68 +43,15 @@ async function main() { // await setWhitelist(account); - // @ts-ignore - const Web3Controller = await conflux.getContractAt('Web3RegistrarController', WEB3_CONTROLLER); - let receipt = await Web3Controller.addAdmin('cfxtest:aangm324bxnw9umenr26sg0yf0ek4fv2bun05unabb').sendTransaction({ - from: account.address - }).executed(); - logReceipt(receipt, 'grant role'); - - /* await Web3Controller.setPriceOracle('cfxtest:acd51b7m6gufh1przxthzakrnm9w3g544ykhbt3pv5').sendTransaction({ - from: account.address - }).executed(); */ - - /* await Web3Controller.setCommitmentAge(10, 600).sendTransaction({ - from: account.address - }).executed(); */ - - - /* await Web3Controller.setLabel45Quota(50000).sendTransaction({ - from: account.address, - }).executed(); */ - - /* await Web3Controller.setValidLen(5).sendTransaction({ - from: account.address, - }).executed(); */ - - - // const status = await Web3Controller.labelStatus('1234'); - // console.log(status); - - /* const txs = await Web3Controller.setValidLen(4).sendTransaction({ - from: account.address, - }).executed(); */ - - // const status = await Web3Controller.valid('12'); - // console.log(status); + // await setMetadataUrlService(); - // @ts-ignore - /* const StablePriceOracle = await conflux.getContractAt('contracts/web3registrar/StablePirceOracles.sol:StablePriceOracle', STABLE_ORACLE); + await web3Controller(account); // @ts-ignore - let fiatpricesForOneYear = [10000n, 6100n, 3600n, 600n, 30n]; // cny - for(let i = 0; i < fiatpricesForOneYear.length; i++) { - fiatpricesForOneYear[i] = fiatpricesForOneYear[i] * BigInt(1e8) / (3600n * 24n * 365n); - if (i === 4) fiatpricesForOneYear[i] = 0n; - } - console.log(fiatpricesForOneYear); - const receipt2 = await StablePriceOracle.setFiatRentPrice(fiatpricesForOneYear).sendTransaction({ - from: account.address, - }).executed(); - logReceipt(receipt2, 'StablePriceOracle setFiatPrice'); */ - - // let p1 = await StablePriceOracle.fiatPrice5Letter(); - // console.log(p1); + // let nameWhitelist = await conflux.getContractAt('NameWhitelist', process.env.NAME_WHITELIST); + // let val = await nameWhitelist.isReserved('mini'); + // console.log(val); - // const price = await Web3Controller.rentPriceInFiat('hi', ONE_YEAR); - // console.log(price); - - // await setMetadataUrlService(); - - // @ts-ignore - // const baseRegistrar = await conflux.getContractAt('BaseRegistrarImplementation', BASE_REGISTRAR); - // let owner = await baseRegistrar.ownerOf(namehash('hexxxhexdsssxxx.web3')); - // console.log(owner); } main().catch(console.log); @@ -234,7 +181,7 @@ async function nameWrapper() { // @ts-ignore const contract = await conflux.getContractAt('NameWrapper', NAME_WRAPPER); - let name = 'heyman2.web3'; + let name = 'jiuhuaw.web3'; let node = namehash(name); const owner = await contract.ownerOf(node); @@ -253,6 +200,11 @@ async function nameWrapper() { // from: account.address // }).executed(); // console.log(receipt); + + /* let receipt = await contract.safeTransferFrom(account.address, 'cfxtest:aak7fsws4u4yf38fk870218p1h3gxut3ku00u1k1da', node, 1, '0x').sendTransaction({ + from: account.address + }).executed(); + console.log(receipt); */ } async function setWhitelistContract(account: any, whiteList: string) { @@ -293,4 +245,82 @@ async function setMetadataUrlService() { from: account.address, }).executed(); logReceipt(receipt2, 'NameWrapper.setMetadataService'); +} + +async function web3Controller(account: any) { + // @ts-ignore + const Web3Controller = await conflux.getContractAt('Web3RegistrarController', WEB3_CONTROLLER); + /* let receipt = await Web3Controller.setNameWhitelist(process.env.NAME_WHITELIST).sendTransaction({ + from: account.address + }).executed(); + + logReceipt(receipt, 'set name whitelist'); */ + + + /* const addr = 'cfx:aangm324bxnw9umenr26sg0yf0ek4fv2bub7jarmfn'; + let receipt = await Web3Controller.addAdmin(addr).sendTransaction({ + from: account.address + }).executed(); + logReceipt(receipt, 'grant role'); + const adminRole = await Web3Controller.ADMIN_ROLE(); + + const hasRole = await Web3Controller.hasRole(adminRole, addr); + console.log(hasRole); */ + + /* await Web3Controller.setPriceOracle('cfxtest:acd51b7m6gufh1przxthzakrnm9w3g544ykhbt3pv5').sendTransaction({ + from: account.address + }).executed(); */ + + /* await Web3Controller.setCommitmentAge(10, 600).sendTransaction({ + from: account.address + }).executed(); */ + + + /* await Web3Controller.setLabel45Quota(50000).sendTransaction({ + from: account.address, + }).executed(); */ + + /* await Web3Controller.setValidLen(5).sendTransaction({ + from: account.address, + }).executed(); */ + + // const status = await Web3Controller.labelStatus('1234'); + // console.log(status); + + /* const txs = await Web3Controller.setValidLen(4).sendTransaction({ + from: account.address, + }).executed(); */ + + // const status = await Web3Controller.valid('12'); + // console.log(status); + + // const price = await Web3Controller.rentPriceInFiat('hi', ONE_YEAR); + // console.log(price); +} + +async function stalePriceOracle() { + // @ts-ignore + /* const StablePriceOracle = await conflux.getContractAt('contracts/web3registrar/StablePirceOracles.sol:StablePriceOracle', STABLE_ORACLE); + + // @ts-ignore + let fiatpricesForOneYear = [10000n, 6100n, 3600n, 600n, 30n]; // cny + for(let i = 0; i < fiatpricesForOneYear.length; i++) { + fiatpricesForOneYear[i] = fiatpricesForOneYear[i] * BigInt(1e8) / (3600n * 24n * 365n); + if (i === 4) fiatpricesForOneYear[i] = 0n; + } + console.log(fiatpricesForOneYear); + const receipt2 = await StablePriceOracle.setFiatRentPrice(fiatpricesForOneYear).sendTransaction({ + from: account.address, + }).executed(); + logReceipt(receipt2, 'StablePriceOracle setFiatPrice'); */ + + // let p1 = await StablePriceOracle.fiatPrice5Letter(); + // console.log(p1); +} + +async function baseRegistrar() { + // @ts-ignore + // const baseRegistrar = await conflux.getContractAt('BaseRegistrarImplementation', BASE_REGISTRAR); + // let owner = await baseRegistrar.ownerOf(namehash('hexxxhexdsssxxx.web3')); + // console.log(owner); } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index b5bb480..4206a95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,9 +3,9 @@ "@babel/runtime@^7.4.4": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== dependencies: regenerator-runtime "^0.13.11" @@ -45,7 +45,7 @@ "@ensdomains/ens-contracts@https://github.com/ensdomains/ens-contracts": version "0.0.13" - resolved "https://github.com/ensdomains/ens-contracts#06d01843d0369bfaf998f05ffe4cbb9a54b3cf63" + resolved "https://github.com/ensdomains/ens-contracts#b68b301ec9d95e1bbabbd4a0d80b892742a57ecc" dependencies: "@ensdomains/buffer" "^0.0.13" "@ensdomains/solsha1" "0.0.3" @@ -942,27 +942,27 @@ dependencies: defer-to-connect "^2.0.1" -"@truffle/abi-utils@^0.3.6": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-0.3.6.tgz#ab35bc437e4c059a5c9a0595cd6df367199493a9" - integrity sha512-61aTH2QmwVA1INaPMufRHTsS6jsEhS+GCkuCDdvBDmwctSnCKGDOr185BGt65QrpMRxYmIoH6WFBSNMYxW9GRw== +"@truffle/abi-utils@^0.3.8": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-0.3.8.tgz#23cafa152673dfff8d0d22f08f44b8c0f9719a52" + integrity sha512-RevMtlEuQw9cE2VWzQuvLDSYPCVSZQQUOsaK8ArcwxXct6ugiJCDC7tNouhHzP1Y4ccdZtG2y/XPHQJdzgYdZQ== dependencies: change-case "3.0.2" fast-check "3.1.1" - web3-utils "1.8.1" + web3-utils "1.8.2" "@truffle/blockchain-utils@^0.1.3": version "0.1.6" resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.1.6.tgz#7ea0a16b8135e5aeb688bf3bd014fa8f6ba45adb" integrity sha512-SldoNRIFSm3+HMBnSc2jFsu5TWDkCN4X6vL3wrd0t6DIeF7nD6EoPPjxwbFSoqCnkkRxMuZeL6sUx7UMJS/wSA== -"@truffle/codec@^0.14.13": - version "0.14.13" - resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.14.13.tgz#f8cab4c2de6fb425d4b70668835aa2a60a9ee3de" - integrity sha512-x9fx5IH7K7caQ8CVK9rdiyxmMHxBfHFR/CTr11CYsS+WcS3bdJ3FJrnOFfLydAQJb21oLX9PeiErU0fOYoYY6Q== +"@truffle/codec@^0.14.15": + version "0.14.15" + resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.14.15.tgz#79d253c05c09a036ccba86a2a909519ebf14309a" + integrity sha512-cooWy8blmvYQQRBKgzWJnDUS6mZE9cvnmpVN15jU6TseAQkBtmfYfCH12QCKEWMq2+R4yQICP54WNCYg78g72g== dependencies: - "@truffle/abi-utils" "^0.3.6" - "@truffle/compile-common" "^0.9.2" + "@truffle/abi-utils" "^0.3.8" + "@truffle/compile-common" "^0.9.3" big.js "^6.0.3" bn.js "^5.1.3" cbor "^5.2.0" @@ -970,35 +970,35 @@ lodash "^4.17.21" semver "7.3.7" utf8 "^3.0.0" - web3-utils "1.8.1" + web3-utils "1.8.2" -"@truffle/compile-common@^0.9.2": - version "0.9.2" - resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.9.2.tgz#da8aed5c9c8da119cb4b7ee5a425d2559a99bfb7" - integrity sha512-n7MF/4/dntccj44RGe3PRMD8Vk46PU8dJtzd1VLAfgokK2Y2N+SjAzDskBnmAydZVWAM315nZIUQsgnY8xoATw== +"@truffle/compile-common@^0.9.3": + version "0.9.3" + resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.9.3.tgz#d8e78195992669430d21e2b3c63c5a4bc72d8e10" + integrity sha512-9S86H5DRC0zEj164KeClP/6jVt1M/nRd7St89h6QbuIU0JjpqSz1SXpkvqhbFoV9hhW+4ZGh0NysjrdPlk7gFw== dependencies: "@truffle/error" "^0.2.0" colors "1.4.0" "@truffle/contract-schema@^3.4.7": - version "3.4.11" - resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.11.tgz#ac5fc8be656b786c2bd5d3a2ca6faeb2949e7ff3" - integrity sha512-wReyVZUPyU9Zy5PSCugBLG1nnruBmRAJ/gmoirQiJ9N2n+s1iGBTY49tkDqFMz3XUUE0kplfdb9YKZJlLkTWzQ== + version "3.4.12" + resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.12.tgz#038518c7a6af81d8ce3df16e8b0d114062d04d0c" + integrity sha512-XpMMps/bqHwiRuCyLiEEGWEAvGGzGj4u1X1+lzxrtIsrwbQhSZcdgEbXl9vGxOOJWOup3HXRCIsjlao27kS4OA== dependencies: ajv "^6.10.0" debug "^4.3.1" "@truffle/debug-utils@^6.0.22": - version "6.0.44" - resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-6.0.44.tgz#f117f1c347d294723f9c376bc9e951f94a569b1e" - integrity sha512-JYJ6C1+g9KloF3h+i9VbWFh08JTdme2nXsyaMcidgdCbZaenPxUHtdOUM6WI+nIpw8dgdjXgqXbuRsAnVb9vnQ== + version "6.0.46" + resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-6.0.46.tgz#1fba4d76bb737a90ca510e24d30e381e2aaefd1b" + integrity sha512-MWko3c1M0NI8IT0yNh8Dh2xoDgR2R1apP8hc/9VsR/4Q7P6OE/578WRpZnvo2HWXYBiJ2PrWBDtMYBHntImrrA== dependencies: - "@truffle/codec" "^0.14.13" + "@truffle/codec" "^0.14.15" "@trufflesuite/chromafi" "^3.0.0" bn.js "^5.1.3" chalk "^2.4.2" debug "^4.3.1" - highlightjs-solidity "^2.0.5" + highlightjs-solidity "^2.0.6" "@truffle/error@^0.1.0": version "0.1.1" @@ -1011,13 +1011,13 @@ integrity sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ== "@truffle/interface-adapter@^0.5.16": - version "0.5.27" - resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.27.tgz#1abfb6a8a3315dfe12d58df4f2424b14157b70d1" - integrity sha512-cKNPVFshlohIdVPnfrZehMs0LuqOpd0yzCOTqlFFile2hCsdB/KkiWeK8nqaDV9o3n/5eXNkqPutbXtbs8Cl+g== + version "0.5.29" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.29.tgz#e75e5b5dd120e699774bbea6465c6d1d7c75056e" + integrity sha512-6UlJ+f87z7y/dWk9UfbIU+4e80iRsp8h03LEiE5B+PvZbr6cuMjLJUBtBBQZMo3+xrIcS/2u3p5hOxW8OJm8tw== dependencies: bn.js "^5.1.3" ethers "^4.0.32" - web3 "1.8.1" + web3 "1.8.2" "@trufflesuite/chromafi@^3.0.0": version "3.0.0" @@ -1456,16 +1456,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" @@ -1650,17 +1640,17 @@ 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.6, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.20.1, body-parser@^1.16.0: +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== @@ -1678,6 +1668,24 @@ body-parser@1.20.1, body-parser@^1.16.0: type-is "~1.6.18" unpipe "1.0.0" +body-parser@^1.16.0: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -1705,7 +1713,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== @@ -1725,7 +1733,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.0.6, browserify-aes@^1.2.0: +browserify-aes@^1.0.6, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -1737,48 +1745,6 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify- 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" - bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -2255,7 +2221,7 @@ content-hash@^2.5.2: multicodec "^0.5.5" multihashes "^0.4.15" -content-type@~1.0.4: +content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== @@ -2303,14 +2269,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" @@ -2322,7 +2280,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== @@ -2364,23 +2322,6 @@ crypto-addr-codec@^0.1.7: safe-buffer "^5.2.0" sha3 "^2.1.1" -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - css-select@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" @@ -2524,14 +2465,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.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" @@ -2565,15 +2498,6 @@ 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== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - difflib@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e" @@ -2664,7 +2588,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -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.4.0, 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== @@ -2975,7 +2899,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.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -3099,7 +3023,7 @@ eventemitter3@4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: +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== @@ -3902,7 +3826,7 @@ highlight.js@^10.4.1: resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== -highlightjs-solidity@^2.0.5: +highlightjs-solidity@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz#e7a702a2b05e0a97f185e6ba39fd4846ad23a990" integrity sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg== @@ -4700,14 +4624,6 @@ 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" @@ -5316,17 +5232,6 @@ param-case@^2.1.0: dependencies: no-case "^2.2.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" @@ -5435,7 +5340,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== @@ -5518,18 +5423,6 @@ 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" @@ -5584,21 +5477,13 @@ quick-lru@^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" @@ -5614,6 +5499,16 @@ raw-body@2.5.1, raw-body@^2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -6826,7 +6721,7 @@ 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: +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== @@ -6894,15 +6789,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -web3-bzz@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.1.tgz#81397be5ce262d03d82b92e9d8acc11f8a609ea1" - integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - web3-bzz@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.2.tgz#67ea1c775874056250eece551ded22905ed08784" @@ -6912,14 +6798,6 @@ web3-bzz@1.8.2: got "12.1.0" swarm-js "^0.1.40" -web3-core-helpers@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz#7904747b23fd0afa4f2c86ed98ea9418ccad7672" - integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== - dependencies: - web3-eth-iban "1.8.1" - web3-utils "1.8.1" - web3-core-helpers@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz#82066560f8085e6c7b93bcc8e88b441289ea9f9f" @@ -6928,17 +6806,6 @@ web3-core-helpers@1.8.2: web3-eth-iban "1.8.2" web3-utils "1.8.2" -web3-core-method@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.1.tgz#0fc5a433a9fc784c447522f141c0a8e0163c7790" - integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-utils "1.8.1" - web3-core-method@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.2.tgz#ba5ec68084e903f0516415010477618be017eac2" @@ -6950,13 +6817,6 @@ web3-core-method@1.8.2: web3-core-subscriptions "1.8.2" web3-utils "1.8.2" -web3-core-promievent@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz#f334c8b2ceac6c2228f06d2a515f6d103157f036" - integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== - dependencies: - eventemitter3 "4.0.4" - web3-core-promievent@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz#e670d6b4453632e6ecfd9ad82da44f77ac1585c9" @@ -6964,17 +6824,6 @@ web3-core-promievent@1.8.2: dependencies: eventemitter3 "4.0.4" -web3-core-requestmanager@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz#272ffa55b7b568ecbc8e4a257ca080355c31c60e" - integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== - dependencies: - util "^0.12.0" - web3-core-helpers "1.8.1" - web3-providers-http "1.8.1" - web3-providers-ipc "1.8.1" - web3-providers-ws "1.8.1" - web3-core-requestmanager@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz#dda95e83ca4808949612a41e54ecea557f78ef26" @@ -6986,14 +6835,6 @@ web3-core-requestmanager@1.8.2: web3-providers-ipc "1.8.2" web3-providers-ws "1.8.2" -web3-core-subscriptions@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz#f5ae1380e92746eadfab6475b8a70ef5a1be6bbf" - integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - web3-core-subscriptions@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz#0c8bd49439d83c6f0a03c70f00b24a915a70a5ed" @@ -7002,19 +6843,6 @@ web3-core-subscriptions@1.8.2: eventemitter3 "4.0.4" web3-core-helpers "1.8.2" -web3-core@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.1.tgz#050b1c408d1f9b7ae539e90f7f7d1b7a7d10578b" - integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-requestmanager "1.8.1" - web3-utils "1.8.1" - web3-core@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.2.tgz#333e93d7872b1a36efe758ed8b89a7acbdd962c2" @@ -7028,14 +6856,6 @@ web3-core@1.8.2: web3-core-requestmanager "1.8.2" web3-utils "1.8.2" -web3-eth-abi@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz#47455d6513217c4b0866fea6f97b1c4afa0b6535" - integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.1" - web3-eth-abi@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz#16e1e9be40e2527404f041a4745111211488f31a" @@ -7044,23 +6864,6 @@ web3-eth-abi@1.8.2: "@ethersproject/abi" "^5.6.3" web3-utils "1.8.2" -web3-eth-accounts@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz#1ce7387721f118aeb0376291e4d8bbe2ac323406" - integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== - dependencies: - "@ethereumjs/common" "2.5.0" - "@ethereumjs/tx" "3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "^9.0.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - web3-eth-accounts@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz#b894f5d5158fcae429da42de75d96520d0712971" @@ -7077,20 +6880,6 @@ web3-eth-accounts@1.8.2: web3-core-method "1.8.2" web3-utils "1.8.2" -web3-eth-contract@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz#bdf3e33bbcb79a1b6144dffd6a0deefd2e459272" - integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-utils "1.8.1" - web3-eth-contract@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz#5388b7130923d2b790c09a420391a81312a867fb" @@ -7105,20 +6894,6 @@ web3-eth-contract@1.8.2: web3-eth-abi "1.8.2" web3-utils "1.8.2" -web3-eth-ens@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz#e78a9651fea8282abe8565b001819e2d645e5929" - integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-contract "1.8.1" - web3-utils "1.8.1" - web3-eth-ens@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz#0a086ad4d919102e28b9fd3036df246add9df22a" @@ -7133,14 +6908,6 @@ web3-eth-ens@1.8.2: web3-eth-contract "1.8.2" web3-utils "1.8.2" -web3-eth-iban@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz#c6484e5d68ca644aa78431301e7acd5df24598d1" - integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== - dependencies: - bn.js "^5.2.1" - web3-utils "1.8.1" - web3-eth-iban@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz#5cb3022234b13986f086353b53f0379a881feeaf" @@ -7149,18 +6916,6 @@ web3-eth-iban@1.8.2: bn.js "^5.2.1" web3-utils "1.8.2" -web3-eth-personal@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz#00b5ff1898b62044d25ed5fddd8486168d4827cf" - integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - web3-eth-personal@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz#3526c1ebaa4e7bf3a0a8ec77e34f067cc9a750b2" @@ -7173,24 +6928,6 @@ web3-eth-personal@1.8.2: web3-net "1.8.2" web3-utils "1.8.2" -web3-eth@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.1.tgz#395f6cd56edaac5dbb23e8cec9886c3fd32c430e" - integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== - dependencies: - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-accounts "1.8.1" - web3-eth-contract "1.8.1" - web3-eth-ens "1.8.1" - web3-eth-iban "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - web3-eth@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.2.tgz#8562287ae1803c30eb54dc7d832092e5739ce06a" @@ -7209,15 +6946,6 @@ web3-eth@1.8.2: web3-net "1.8.2" web3-utils "1.8.2" -web3-net@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.1.tgz#2bed4d4b93166724129ec33d0e5dea98880285f4" - integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - web3-net@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.2.tgz#97e1e0015fabc4cda31017813e98d0b5468dd04f" @@ -7227,16 +6955,6 @@ web3-net@1.8.2: web3-core-method "1.8.2" web3-utils "1.8.2" -web3-providers-http@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.1.tgz#8aa89c11a9272f11ddb74b871273c92225faa28d" - integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== - dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.8.1" - web3-providers-http@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.2.tgz#fbda3a3bbc8db004af36e91bec35f80273b37885" @@ -7247,14 +6965,6 @@ web3-providers-http@1.8.2: es6-promise "^4.2.8" web3-core-helpers "1.8.2" -web3-providers-ipc@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz#6128a3a3a824d06bf0efcfe86325401f8691a5ca" - integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.8.1" - web3-providers-ipc@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz#e52a7250f40c83b99a2482ec5b4cf2728377ae5c" @@ -7263,15 +6973,6 @@ web3-providers-ipc@1.8.2: oboe "2.1.5" web3-core-helpers "1.8.2" -web3-providers-ws@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz#5e5370e07eb8c615ed298ebc8602b283c7b7d649" - integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - websocket "^1.0.32" - web3-providers-ws@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz#56a2b701387011aca9154ca4bc06ea4b5f27e4ef" @@ -7281,16 +6982,6 @@ web3-providers-ws@1.8.2: web3-core-helpers "1.8.2" websocket "^1.0.32" -web3-shh@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.1.tgz#028a95cf9d3a36020380938b9a127610efbb9be7" - integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-net "1.8.1" - web3-shh@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.2.tgz#217a417f0d6e243dd4d441848ffc2bd164cea8a0" @@ -7301,19 +6992,6 @@ web3-shh@1.8.2: web3-core-subscriptions "1.8.2" web3-net "1.8.2" -web3-utils@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.1.tgz#f2f7ca7eb65e6feb9f3d61056d0de6bbd57125ff" - integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== - dependencies: - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereumjs-util "^7.1.0" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - web3-utils@1.8.2, web3-utils@^1.0.0-beta.31: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.2.tgz#c32dec5e9b955acbab220eefd7715bc540b75cc9" @@ -7340,20 +7018,7 @@ web3-utils@^1.3.6: randombytes "^2.1.0" utf8 "3.0.0" -web3@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.1.tgz#8ea67215ef5f3a6f6d3381800b527242ea22885a" - integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== - dependencies: - web3-bzz "1.8.1" - web3-core "1.8.1" - web3-eth "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-shh "1.8.1" - web3-utils "1.8.1" - -web3@^1.0.0-beta.34: +web3@1.8.2, web3@^1.0.0-beta.34: version "1.8.2" resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.2.tgz#95a4e5398fd0f01325264bf8e5e8cdc69a7afe86" integrity sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==