diff --git a/contracts/lending/ITokenInfo.sol b/contracts/lending/ITokenInfo.sol deleted file mode 100644 index 5ae551d..0000000 --- a/contracts/lending/ITokenInfo.sol +++ /dev/null @@ -1,13 +0,0 @@ - // SPDX-License-Identifier: MIT - pragma solidity 0.8.13; - -interface ITokenInfo{ - struct TokenInfo { - bool isLP; - address tokenAddress; - address oracleAddress; - address wrappedTokenAddress; - uint256 LTV; - uint256 liquidationIncentive; - } -} \ No newline at end of file diff --git a/contracts/lending/IVaultController.sol b/contracts/lending/IVaultController.sol index 71af689..59e0a8d 100644 --- a/contracts/lending/IVaultController.sol +++ b/contracts/lending/IVaultController.sol @@ -1,7 +1,14 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.13; -import "./ITokenInfo.sol"; +struct TokenInfo { + bool isLP; + address tokenAddress; + address oracleAddress; + address wrappedTokenAddress; + uint256 LTV; + uint256 liquidationIncentive; +} // @title VaultController Events /// @notice interface which contains any events which the VaultController contract emits @@ -31,24 +38,31 @@ interface VaultControllerEvents { event Withdrawn(uint256 vaultId, address asset_address, uint256 amount); } -struct VaultSummary { - uint96 id; - uint192 borrowingPower; - uint192 vaultLiability; - address[] tokenAddresses; - uint256[] tokenBalances; -} - -/// @title VaultController Interface -/// @notice extends VaultControllerEvents -interface IVaultController is VaultControllerEvents, ITokenInfo { +interface IVaultControllerState { // initializer - function initialize(address convex, address vaultControllerRewards, address vaultControllerCoreLogic, address vaultControllerSetter) external; - - function FEE_DENOMINATOR() external view returns (uint256); + function initialize( + address convex, + address _vaultControllerRewards, + address _vaultControllerCoreLogic, + address _vaultControllerSetter + ) external; function earmarkIncentive() external view returns (uint256); + function vaultControllerRewards() external view returns (address); + + function lockIncentive() external view returns (uint256); + + function stakerIncentive() external view returns (uint256); + + function platformFee() external view returns (uint256); + + function MaxFees() external view returns (uint256); + + function FEE_DENOMINATOR() external view returns (uint256); +} + +interface IVaultControllerSetter is VaultControllerEvents { function tokensRegistered() external view returns (uint256); function vaultsMinted() external view returns (uint96); @@ -65,29 +79,63 @@ interface IVaultController is VaultControllerEvents, ITokenInfo { function vaultIDs(address wallet) external view returns (uint96[] memory); - function amountToSolvency(uint96 id) external view returns (uint256); + function isEnabledLPToken(address) external view returns (bool); - function vaultLiability(uint96 id) external view returns (uint192); + // vault management business + function mintVault() external returns (address); - function vaultBorrowingPower(uint96 id) external view returns (uint192); + function getOracleMaster() external view returns (address); - function tokensToLiquidate(uint96 id, address token) external view returns (uint256); + function registerOracleMaster(address master_oracle_address) external; - function checkVault(uint96 id) external view returns (bool); + function getCurveMaster() external view returns (address); - function isEnabledLPToken(address) external view returns (bool); + function registerCurveMaster(address master_curve_address) external; + + function changeProtocolFee(uint192 new_protocol_fee) external; + + function registerErc20( + address token_address, + uint256 LTV, + address oracle_address, + uint256 liquidationIncentive, + address gauge, + bool isLP + ) external; + + function registerUSDa(address usda_address) external; + + function updateRegisteredErc20( + address token_address, + uint256 LTV, + address oracle_address, + uint256 liquidationIncentive + ) external; + + function tokenAddress_tokenId(address) external returns (uint256); + + function tokenId_tokenInfo(uint256) external view returns (TokenInfo memory); +} + +interface IVaultControllerCoreLogic is VaultControllerEvents { + struct VaultSummary { + uint96 id; + uint192 borrowingPower; + uint192 vaultLiability; + address[] tokenAddresses; + uint256[] tokenBalances; + } function pay_interest() external returns (uint256); function vaultSummaries(uint96 start, uint96 stop) external view returns (VaultSummary[] memory); - // interest calculations - function calculateInterest() external returns (uint256); + function checkVault(uint96 id) external view returns (bool); - // vault management business - function mintVault() external returns (address); + // admin + function pause() external; - function patchTBL() external; + function unpause() external; function liquidateVault( uint96 id, @@ -113,42 +161,22 @@ interface IVaultController is VaultControllerEvents, ITokenInfo { function repayAllUSDa(uint96 id) external; - // admin - function pause() external; - - function unpause() external; - - function getOracleMaster() external view returns (address); - - function registerOracleMaster(address master_oracle_address) external; - - function getCurveMaster() external view returns (address); - - function registerCurveMaster(address master_curve_address) external; + function tokensToLiquidate(uint96 id, address token) external view returns (uint256); - function changeProtocolFee(uint192 new_protocol_fee) external; + function patchTBL() external; - function registerErc20( - address token_address, - uint256 LTV, - address oracle_address, - uint256 liquidationIncentive, - address gauge, - bool isLP - ) external; + function amountToSolvency(uint96 id) external view returns (uint256); - function registerUSDa(address usda_address) external; + function vaultLiability(uint96 id) external view returns (uint192); - function updateRegisteredErc20( - address token_address, - uint256 LTV, - address oracle_address, - uint256 liquidationIncentive - ) external; + function vaultBorrowingPower(uint96 id) external view returns (uint192); - function _tokenAddress_tokenId(address) external returns (uint256); + // interest calculations + function calculateInterest() external returns (uint256); +} - function tokenId_tokenInfo(uint256) external view returns (TokenInfo memory); +/// @title VaultController Interface +/// @notice extends VaultControllerEvents +interface IVaultController is IVaultControllerSetter, IVaultControllerCoreLogic, IVaultControllerState { - function vaultControllerRewards() external view returns (address); } diff --git a/contracts/lending/Vault.sol b/contracts/lending/Vault.sol index 3d6e5c7..006c06e 100644 --- a/contracts/lending/Vault.sol +++ b/contracts/lending/Vault.sol @@ -28,15 +28,6 @@ struct PoolInfo { address rewardPool; } -struct TokenInfo { - bool isLP; - address tokenAddress; - address oracleAddress; - address wrappedTokenAddress; - uint256 LTV; - uint256 liquidationIncentive; -} - /// @title Vault /// @notice our implentation of maker-vault like vault /// major differences: @@ -145,9 +136,9 @@ contract Vault is IVault, Context { IVaultControllerRewards vaultControllerRewards = IVaultControllerRewards(controllerRewards); IVaultController(_controller).pay_interest(); // get pool info and token info - uint256 _id = _controller._tokenAddress_tokenId(asset_address); + uint256 _id = _controller.tokenAddress_tokenId(asset_address); (address depositToken, , , address rewardPool) = vaultControllerRewards.poolInfo(_id - 1); - IVaultController.TokenInfo memory token_info = _controller.tokenId_tokenInfo(_id); + TokenInfo memory token_info = _controller.tokenId_tokenInfo(_id); // deposit token to the wrapped token WrappedToken(token_info.wrappedTokenAddress).deposit(msg.sender, amount); SafeERC20Upgradeable.safeTransfer(IERC20Upgradeable(token_info.wrappedTokenAddress), address(this), amount); @@ -165,8 +156,8 @@ contract Vault is IVault, Context { IVaultControllerRewards vaultControllerRewards = IVaultControllerRewards(controllerRewards); IVaultController(_controller).pay_interest(); // get pool info and token info - uint256 _id = _controller._tokenAddress_tokenId(asset_address); - IVaultController.TokenInfo memory token_info = _controller.tokenId_tokenInfo(_id); + uint256 _id = _controller.tokenAddress_tokenId(asset_address); + TokenInfo memory token_info = _controller.tokenId_tokenInfo(_id); (address depositToken, , address stash, ) = vaultControllerRewards.poolInfo(_id - 1); // burn depositToken from reward pool ITokenMinter(depositToken).burn(address(this), amount); diff --git a/contracts/lending/VaultControllerCoreLogic.sol b/contracts/lending/VaultControllerCoreLogic.sol index 4f23ef6..878f7f3 100644 --- a/contracts/lending/VaultControllerCoreLogic.sol +++ b/contracts/lending/VaultControllerCoreLogic.sol @@ -1,9 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.13; -import "./VaultController.sol"; +import "./VaultControllerState.sol"; +import "./IVaultController.sol"; -contract VaultControllerCoreLogic is VaultController { +contract VaultControllerCoreLogic is VaultControllerState, IVaultControllerCoreLogic { using SafeERC20 for IERC20; /// @notice any function with this modifier will call the pay_interest() function before modifier paysInterest() { @@ -206,10 +207,10 @@ contract VaultControllerCoreLogic is VaultController { //decrease liquidator's USDa balance _usda.vaultControllerBurn(_msgSender(), usda_to_repurchase); - IVaultControllerRewards _vaultControllerRewards = IVaultControllerRewards(vaultControllerRewards); + IVaultControllerRewards vaultControllerRewards = IVaultControllerRewards(vaultControllerRewards); // get pool info and token info uint256 poolID = _tokenAddress_tokenId[asset_address] - 1; - (address depositToken, , address stash, ) = _vaultControllerRewards.poolInfo(poolID); + (address depositToken, , address stash, ) = vaultControllerRewards.poolInfo(poolID); TokenInfo memory token_info = _tokenId_tokenInfo[_tokenAddress_tokenId[asset_address]]; // withdraw and burn depositToken from reward pool diff --git a/contracts/lending/VaultControllerRewards.sol b/contracts/lending/VaultControllerRewards.sol index a97dfea..d355afe 100644 --- a/contracts/lending/VaultControllerRewards.sol +++ b/contracts/lending/VaultControllerRewards.sol @@ -4,7 +4,6 @@ pragma solidity 0.8.13; import "./interfaces.sol"; contract VaultControllerRewards { - struct PoolInfo { address depositToken; address gauge; @@ -41,7 +40,11 @@ contract VaultControllerRewards { owner = msg.sender; } - function setFactories(address _rfactory, address _sfactory, address _tfactory) external { + function setFactories( + address _rfactory, + address _sfactory, + address _tfactory + ) external { require(msg.sender == owner); //Unlike Convex, we leave these open to allow future upgrades to support new protocols _rewardFactory = _rfactory; @@ -51,15 +54,20 @@ contract VaultControllerRewards { _stashFactory = _sfactory; } - function setRewardContracts(address _rewards, address _stakerRewards) external { + function setRewardContracts(address _rewards, address _stakerRewards) external { require(msg.sender == owner); //also add flexibility for rewards. lockRewards = _rewards; stakerRewards = _stakerRewards; } - //callback from reward contract when crv is received. - function rewardClaimed(uint256 _pid, address _tokenEarned, address _address, uint256 _amount) external returns(bool){ + //callback from reward contract when crv is received. + function rewardClaimed( + uint256 _pid, + address _tokenEarned, + address _address, + uint256 _amount + ) external returns (bool) { address rewardContract = poolInfo[_pid].rewardPool; require(msg.sender == poolInfo[_pid].stash || msg.sender == lockRewards); address _from = msg.sender; @@ -70,16 +78,13 @@ contract VaultControllerRewards { return true; } - function addPool(address _depositToken, address _gauge, address _stash, address _rewardPool) public { + function addPool( + address _depositToken, + address _gauge, + address _stash, + address _rewardPool + ) public { require(msg.sender == vaultController); - poolInfo.push( - PoolInfo({ - depositToken: _depositToken, - gauge: _gauge, - stash: _stash, - rewardPool: _rewardPool - }) - ); + poolInfo.push(PoolInfo({depositToken: _depositToken, gauge: _gauge, stash: _stash, rewardPool: _rewardPool})); } - -} \ No newline at end of file +} diff --git a/contracts/lending/VaultControllerSetter.sol b/contracts/lending/VaultControllerSetter.sol index cfb1c09..4ab681d 100644 --- a/contracts/lending/VaultControllerSetter.sol +++ b/contracts/lending/VaultControllerSetter.sol @@ -1,16 +1,21 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.13; -import "./VaultController.sol"; +import "./VaultControllerState.sol"; +import "./IVaultController.sol"; /// @title Controller of all vaults in the USDa borrow/lend system /// @notice VaultController contains all business logic for borrowing and lending through the protocol. /// It is also in charge of accruing interest. -contract VaultControllerSetter is VaultController { +contract VaultControllerSetter is VaultControllerState, IVaultControllerSetter { function tokenId_tokenInfo(uint256 _id) external view returns (TokenInfo memory) { return _tokenId_tokenInfo[_id]; } + function tokenAddress_tokenId(address _token) external view returns (uint256) { + return _tokenAddress_tokenId[_token]; + } + /// @notice get current interest factor /// @return interest factor function interestFactor() external view returns (uint192) { diff --git a/contracts/lending/VaultController.sol b/contracts/lending/VaultControllerState.sol similarity index 56% rename from contracts/lending/VaultController.sol rename to contracts/lending/VaultControllerState.sol index 1b1e18e..647adde 100644 --- a/contracts/lending/VaultController.sol +++ b/contracts/lending/VaultControllerState.sol @@ -22,44 +22,62 @@ import "../_external/ozproxy/Proxy.sol"; /// @title Controller of all vaults in the USDa borrow/lend system /// @notice VaultController contains all business logic for borrowing and lending through the protocol. /// It is also in charge of accruing interest. -contract VaultController is Proxy, Initializable, PausableUpgradeable, ExponentialNoError, OwnableUpgradeable { +contract VaultControllerState is + IVaultControllerState, + Proxy, + Initializable, + PausableUpgradeable, + ExponentialNoError, + OwnableUpgradeable +{ using SafeERC20 for IERC20; struct Interest { uint64 lastTime; uint192 factor; } - Interest public _interest; - - address public vaultControllerRewards; + Interest internal _interest; // mapping of vault id to vault address - mapping(uint96 => address) public _vaultId_vaultAddress; + mapping(uint96 => address) internal _vaultId_vaultAddress; //mapping of wallet address to vault IDs [] - mapping(address => uint96[]) public _wallet_vaultIDs; + mapping(address => uint96[]) internal _wallet_vaultIDs; // mapping of token address to token info - mapping(address => uint256) public _tokenAddress_tokenId; + mapping(address => uint256) internal _tokenAddress_tokenId; - mapping(uint256 => TokenInfo) public _tokenId_tokenInfo; + mapping(uint256 => TokenInfo) internal _tokenId_tokenInfo; // when getting the live price of the underlying token of the wrapped token, // we need a mapping from the wrapped token address to the underlying token address - mapping(address => address) public _wrappedTokenAddress_tokenAddress; + mapping(address => address) internal _wrappedTokenAddress_tokenAddress; - address public lockIncentiveReciever; - address public stakerIncentiveReciever; - address public platformFeeReciever; + // address public lockIncentiveReciever; + // address public stakerIncentiveReciever; + // address public platformFeeReciever; - address[] public _enabledTokens; + address[] internal _enabledTokens; //mappings of the enabled tokens for gas efficient single lookup - mapping(address => bool) public _enabledTokenLookup; + mapping(address => bool) internal _enabledTokenLookup; + + OracleMaster internal _oracleMaster; + CurveMaster internal _curveMaster; + + IUSDA internal _usda; + uint96 internal _vaultsMinted; + + uint256 internal _tokensRegistered; + uint256 internal _lpTokensRegistered; + uint192 internal _totalBaseLiability; + uint192 internal _protocolFee; - address public _treasury; - address public _convex; - uint256 public _feeBasis; + address internal _treasury; + address internal _convex; + uint256 internal _feeBasis; + + address public vaultControllerRewards; uint256 public lockIncentive = 1000; //incentive to crv stakers //this is likely cvxCRV uint256 public stakerIncentive = 450; //incentive to native token stakers //what is native incentive? @@ -68,17 +86,6 @@ contract VaultController is Proxy, Initializable, PausableUpgradeable, Exponenti uint256 public constant MaxFees = 2000; uint256 public constant FEE_DENOMINATOR = 10000; - OracleMaster public _oracleMaster; - CurveMaster public _curveMaster; - - IUSDA public _usda; - uint96 public _vaultsMinted; - - uint256 public _tokensRegistered; - uint256 public _lpTokensRegistered; - uint192 public _totalBaseLiability; - uint192 public _protocolFee; - address public vaultControllerCoreLogic; address public vaultControllerSetter; @@ -88,7 +95,7 @@ contract VaultController is Proxy, Initializable, PausableUpgradeable, Exponenti address _vaultControllerRewards, address _vaultControllerCoreLogic, address _vaultControllerSetter - ) external initializer { + ) external override initializer { __Ownable_init(); __Pausable_init(); _interest = Interest(uint64(block.timestamp), 1e18); @@ -110,23 +117,23 @@ contract VaultController is Proxy, Initializable, PausableUpgradeable, Exponenti bytes4 sig = msg.sig; if ( - sig == IVaultController.checkVault.selector || - sig == IVaultController.pause.selector || - sig == IVaultController.unpause.selector || - sig == IVaultController.borrowUsdi.selector || - sig == IVaultController.borrowUSDAto.selector || - sig == IVaultController.borrowUSDCto.selector || - sig == IVaultController.repayUSDa.selector || - sig == IVaultController.repayAllUSDa.selector || - sig == IVaultController.liquidateVault.selector || - sig == IVaultController.tokensToLiquidate.selector || - sig == IVaultController.patchTBL.selector || - sig == IVaultController.amountToSolvency.selector || - sig == IVaultController.vaultLiability.selector || - sig == IVaultController.vaultBorrowingPower.selector || - sig == IVaultController.calculateInterest.selector || - sig == IVaultController.pay_interest.selector || - sig == IVaultController.vaultSummaries.selector + sig == IVaultControllerCoreLogic.checkVault.selector || + sig == IVaultControllerCoreLogic.pause.selector || + sig == IVaultControllerCoreLogic.unpause.selector || + sig == IVaultControllerCoreLogic.borrowUsdi.selector || + sig == IVaultControllerCoreLogic.borrowUSDAto.selector || + sig == IVaultControllerCoreLogic.borrowUSDCto.selector || + sig == IVaultControllerCoreLogic.repayUSDa.selector || + sig == IVaultControllerCoreLogic.repayAllUSDa.selector || + sig == IVaultControllerCoreLogic.liquidateVault.selector || + sig == IVaultControllerCoreLogic.tokensToLiquidate.selector || + sig == IVaultControllerCoreLogic.patchTBL.selector || + sig == IVaultControllerCoreLogic.amountToSolvency.selector || + sig == IVaultControllerCoreLogic.vaultLiability.selector || + sig == IVaultControllerCoreLogic.vaultBorrowingPower.selector || + sig == IVaultControllerCoreLogic.calculateInterest.selector || + sig == IVaultControllerCoreLogic.pay_interest.selector || + sig == IVaultControllerCoreLogic.vaultSummaries.selector ) { return vaultControllerCoreLogic; } else { diff --git a/hardhat.config.ts b/hardhat.config.ts index db10865..e4dcb3d 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -27,6 +27,7 @@ const config: HardhatUserConfig = { mining: { auto: true, }, + allowUnlimitedContractSize: true, }, mainnet: { url: process.env.MAINNET_URL ? process.env.MAINNET_URL : zaddr, diff --git a/package.json b/package.json index 22f46a1..a50ac86 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "chai-bignumber": "^3.0.0", "ethereum-waffle": "^3.4.4", "ethers": "^5.6.2", - "hardhat": "^2.9.7", + "hardhat": "^2.12.1", "hardhat-docgen": "^1.3.0", "prettier": "^2.6.2", "prettier-plugin-solidity": "^1.0.0-beta.19", @@ -70,4 +70,4 @@ "ts-node": "^10.7.0", "typechain": "^8.0.0" } -} +} \ No newline at end of file diff --git a/test/mainnet/1_setup.ts b/test/mainnet/1_setup.ts index c29e259..49d69b5 100644 --- a/test/mainnet/1_setup.ts +++ b/test/mainnet/1_setup.ts @@ -43,10 +43,10 @@ describe("hardhat settings", () => { it("reset hardhat network each run", async () => { expect(await reset(0)).to.not.throw; }); - it("set automine OFF", async () => { - expect(await network.provider.send("evm_setAutomine", [false])).to.not - .throw; - }); + // it("set automine OFF", async () => { + // expect(await network.provider.send("evm_setAutomine", [false])).to.not + // .throw; + // }); }); describe("Token Setup", () => { diff --git a/test/mainnet/2_deploy.ts b/test/mainnet/2_deploy.ts index 86d3293..c1cedc0 100644 --- a/test/mainnet/2_deploy.ts +++ b/test/mainnet/2_deploy.ts @@ -1,5 +1,5 @@ import { s } from "./scope"; -import { upgrades, ethers } from "hardhat"; +import hre, { upgrades, ethers } from "hardhat"; import { expect, assert } from "chai"; import { showBody, showBodyCyan } from "../../util/format"; import { BN } from "../../util/number"; @@ -33,7 +33,7 @@ import { USDA__factory, Vault, VaultController, - VaultController__factory, + VaultControllerState__factory, VaultControllerCoreLogic, VaultControllerCoreLogic__factory, VaultControllerSetter, @@ -42,6 +42,7 @@ import { VaultControllerRewards__factory, IVOTE, IVOTE__factory, + IVaultController, } from "../../typechain-types"; import { advanceBlockHeight, @@ -53,78 +54,75 @@ import { import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers"; import { DeployContract, DeployContractWithProxy } from "../../util/deploy"; +import { Contract } from "ethers"; let ProxyController: ProxyAdmin; +export async function getContractAt(abiType: string, address: string) { + return (await hre.ethers.getContractAt(abiType, address)) as CType; +} + const deployProxy = async () => { s.ProxyAdmin = await DeployContract( new ProxyAdmin__factory(s.Frank), s.Frank ); - await mineBlock(); - s.VaultControllerCoreLogic = await DeployContractWithProxy( + s.VaultControllerCoreLogic = await DeployContract( new VaultControllerCoreLogic__factory(s.Frank), s.Frank, - s.ProxyAdmin ); - s.VaultControllerSetter = await DeployContractWithProxy( + s.VaultControllerSetter = await DeployContract( new VaultControllerSetter__factory(s.Frank), s.Frank, - s.ProxyAdmin ); - s.VaultController = await DeployContractWithProxy( - new VaultController__factory(s.Frank), + s.VaultController = await DeployContract( + new VaultControllerState__factory(s.Frank), s.Frank, - s.ProxyAdmin ); - s.VaultControllerRewards = await DeployContractWithProxy( + s.VaultControllerRewards = await DeployContract( new VaultControllerRewards__factory(s.Frank), s.Frank, - s.ProxyAdmin ); - s.ExtraRewardStashConvex = await DeployContractWithProxy( + s.ExtraRewardStashConvex = await DeployContract( new ExtraRewardStashConvex__factory(s.Frank), s.Frank, - s.ProxyAdmin ); - s.RewardFactory = await DeployContractWithProxy( + s.RewardFactory = await DeployContract( new RewardFactory__factory(s.Frank), s.Frank, - s.ProxyAdmin + s.ProxyAdmin.address, ); - s.StashFactory = await DeployContractWithProxy( + s.StashFactory = await DeployContract( new StashFactoryV2__factory(s.Frank), s.Frank, - s.ProxyAdmin, s.VaultController.address, s.RewardFactory.address, s.ProxyAdmin.address, - s.ExtraRewardStashConvex + s.ExtraRewardStashConvex.address ); - s.TokenFactory = await DeployContractWithProxy( + s.TokenFactory = await DeployContract( new TokenFactory__factory(s.Frank), s.Frank, - s.ProxyAdmin + s.ProxyAdmin.address ); - s.VaultControllerRewards = await DeployContractWithProxy( + s.VaultControllerRewards = await DeployContract( new VaultControllerRewards__factory(s.Frank), - s.Frank, - s.ProxyAdmin, + s.Frank ); - await expect(s.VaultControllerRewards.initialize(s.VaultControllerRewards.address,s.TokenFactory.address,s.RewardFactory.address,s.StashFactory.address)) - + await s.VaultControllerRewards.connect(s.Frank).initialize(s.VaultControllerRewards.address, s.TokenFactory.address, s.RewardFactory.address, s.StashFactory.address); - s.USDA = await DeployContractWithProxy( + s.USDA = await DeployContract( new USDA__factory(s.Frank), - s.Frank, - s.ProxyAdmin, - s.usdcAddress + s.Frank ); - await mineBlock(); - await expect(s.VaultController.initialize(s.VaultControllerRewards.address,s.VaultControllerRewards.address,s.VaultControllerCoreLogic.address,s.VaultControllerSetter.address)) - await expect(s.USDA.setVaultController(s.VaultController.address)).to.not.reverted - await mineBlock(); + await s.VaultController.connect(s.Frank).initialize(s.VaultControllerRewards.address, s.VaultControllerRewards.address, s.VaultControllerCoreLogic.address, s.VaultControllerSetter.address); + + await s.USDA.connect(s.Frank).initialize(s.usdcAddress); + + await s.USDA.connect(s.Frank).setVaultController(s.VaultController.address); + + s.VaultController = await getContractAt("contracts/lending/IVaultController.sol:IVaultController", s.VaultController.address); }; require("chai").should(); @@ -359,7 +357,7 @@ describe("Deploy Contracts", () => { false ) ).to.not.reverted; - //showBody("register WBTC") + // showBody("register WBTC") await expect( s.VaultController.connect(s.Frank).registerErc20( s.wbtcAddress, diff --git a/yarn.lock b/yarn.lock index c777d02..37d7b7b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -99,31 +99,7 @@ patch-package "^6.2.2" postinstall-postinstall "^2.1.0" -"@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.6.2": - version "3.6.2" - resolved "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.2.tgz" - integrity sha512-mOqYWwMlAZpYUEOEqt7EfMFuVL2eyLqWWIzcf4odn6QgXY8jBI2NhVuJncrMCKeMZrsJAe7/auaRRB6YcdH+Qw== - dependencies: - "@ethereumjs/common" "^2.6.3" - "@ethereumjs/tx" "^3.5.1" - ethereumjs-util "^7.1.4" - merkle-patricia-tree "^4.2.4" - -"@ethereumjs/blockchain@^5.5.2", "@ethereumjs/blockchain@^5.5.3": - version "5.5.3" - resolved "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz" - integrity sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw== - dependencies: - "@ethereumjs/block" "^3.6.2" - "@ethereumjs/common" "^2.6.4" - "@ethereumjs/ethash" "^1.1.0" - debug "^4.3.3" - ethereumjs-util "^7.1.5" - level-mem "^5.0.1" - lru-cache "^5.1.1" - semaphore-async-await "^1.5.1" - -"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.3", "@ethereumjs/common@^2.6.4": +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": version "2.6.4" resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.4.tgz" integrity sha512-RDJh/R/EAr+B7ZRg5LfJ0BIpf/1LydFgYdvZEuTraojCbVypO2sQ+QnpP5u2wJf9DASyooKqu8O4FJEWUV6NXw== @@ -131,18 +107,7 @@ crc-32 "^1.2.0" ethereumjs-util "^7.1.4" -"@ethereumjs/ethash@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz" - integrity sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA== - dependencies: - "@ethereumjs/block" "^3.5.0" - "@types/levelup" "^4.3.0" - buffer-xor "^2.0.1" - ethereumjs-util "^7.1.1" - miller-rabin "^4.0.0" - -"@ethereumjs/tx@^3.3.2", "@ethereumjs/tx@^3.5.1", "@ethereumjs/tx@^3.5.2": +"@ethereumjs/tx@^3.3.2": version "3.5.2" resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== @@ -150,24 +115,6 @@ "@ethereumjs/common" "^2.6.4" ethereumjs-util "^7.1.5" -"@ethereumjs/vm@^5.9.0": - version "5.9.2" - resolved "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.9.2.tgz" - integrity sha512-6zvH7iuMI7+74aGak6j9+GDYpV2T08vy2FL4iSK1PId7lNyjFELCAzDCSTQcVoyPoRMkZvRHy79W+djwvguMCA== - dependencies: - "@ethereumjs/block" "^3.6.2" - "@ethereumjs/blockchain" "^5.5.3" - "@ethereumjs/common" "^2.6.4" - "@ethereumjs/tx" "^3.5.2" - async-eventemitter "^0.2.4" - core-js-pure "^3.0.1" - debug "^4.3.3" - ethereumjs-util "^7.1.5" - functional-red-black-tree "^1.0.1" - mcl-wasm "^0.7.1" - merkle-patricia-tree "^4.2.4" - rustbn.js "~0.2.0" - "@ethersproject/abi@5.0.0-beta.153": version "5.0.0-beta.153" resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz" @@ -656,11 +603,209 @@ resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.5.tgz" integrity sha512-sZ1W6gQzYnu45wPrWx8D3kwI2/U29VYTx9OjbDAd7jwRItJ0cSTMPRL/C8AWZFn9kWFLQGqEXVEE86w4Z8LpIQ== +"@nomicfoundation/ethereumjs-block@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz#fdd5c045e7baa5169abeed0e1202bf94e4481c49" + integrity sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA== + dependencies: + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-tx" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-blockchain@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz#1a8c243a46d4d3691631f139bfb3a4a157187b0c" + integrity sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw== + dependencies: + "@nomicfoundation/ethereumjs-block" "^4.0.0" + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-ethash" "^2.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + abstract-level "^1.0.3" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + level "^8.0.0" + lru-cache "^5.1.1" + memory-level "^1.0.0" + +"@nomicfoundation/ethereumjs-common@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz#f6bcc7753994555e49ab3aa517fc8bcf89c280b9" + integrity sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA== + dependencies: + "@nomicfoundation/ethereumjs-util" "^8.0.0" + crc-32 "^1.2.0" + +"@nomicfoundation/ethereumjs-ethash@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz#11539c32fe0990e1122ff987d1b84cfa34774e81" + integrity sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew== + dependencies: + "@nomicfoundation/ethereumjs-block" "^4.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + abstract-level "^1.0.3" + bigint-crypto-utils "^3.0.23" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-evm@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz#99cd173c03b59107c156a69c5e215409098a370b" + integrity sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q== + dependencies: + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + "@types/async-eventemitter" "^0.2.1" + async-eventemitter "^0.2.4" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/ethereumjs-rlp@^4.0.0", "@nomicfoundation/ethereumjs-rlp@^4.0.0-beta.2": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz#d9a9c5f0f10310c8849b6525101de455a53e771d" + integrity sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw== + +"@nomicfoundation/ethereumjs-statemanager@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz#14a9d4e1c828230368f7ab520c144c34d8721e4b" + integrity sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ== + dependencies: + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + functional-red-black-tree "^1.0.1" + +"@nomicfoundation/ethereumjs-trie@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz#dcfbe3be53a94bc061c9767a396c16702bc2f5b7" + integrity sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + ethereum-cryptography "0.1.3" + readable-stream "^3.6.0" + +"@nomicfoundation/ethereumjs-tx@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz#59dc7452b0862b30342966f7052ab9a1f7802f52" + integrity sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w== + dependencies: + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-util@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz#deb2b15d2c308a731e82977aefc4e61ca0ece6c5" + integrity sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "^4.0.0-beta.2" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-vm@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz#2bb50d332bf41790b01a3767ffec3987585d1de6" + integrity sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w== + dependencies: + "@nomicfoundation/ethereumjs-block" "^4.0.0" + "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-evm" "^1.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-tx" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + "@types/async-eventemitter" "^0.2.1" + async-eventemitter "^0.2.4" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + functional-red-black-tree "^1.0.1" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + "@nomicfoundation/hardhat-toolbox@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-1.0.2.tgz#342b79e19c456a56d8e76bc2e9cc8474cbcfc774" integrity sha512-8CEgWSKUK2aMit+76Sez8n7UB0Ze1lwT+LcWxj4EFP30lQWOwOws048t6MTPfThH0BlSWjC6hJRr0LncIkc1Sw== +"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.0.tgz#83a7367342bd053a76d04bbcf4f373fef07cf760" + integrity sha512-vEF3yKuuzfMHsZecHQcnkUrqm8mnTWfJeEVFHpg+cO+le96xQA4lAJYdUan8pXZohQxv1fSReQsn4QGNuBNuCw== + +"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.0.tgz#1225f7da647ae1ad25a87125664704ecc0af6ccc" + integrity sha512-dlHeIg0pTL4dB1l9JDwbi/JG6dHQaU1xpDK+ugYO8eJ1kxx9Dh2isEUtA4d02cQAl22cjOHTvifAk96A+ItEHA== + +"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.0.tgz#dbc052dcdfd50ae50fd5ae1788b69b4e0fa40040" + integrity sha512-WFCZYMv86WowDA4GiJKnebMQRt3kCcFqHeIomW6NMyqiKqhK1kIZCxSLDYsxqlx396kKLPN1713Q1S8tu68GKg== + +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.0.tgz#e6b2eea633995b557e74e881d2a43eab4760903d" + integrity sha512-DTw6MNQWWlCgc71Pq7CEhEqkb7fZnS7oly13pujs4cMH1sR0JzNk90Mp1zpSCsCs4oKan2ClhMlLKtNat/XRKQ== + +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.0.tgz#af81107f5afa794f19988a368647727806e18dc4" + integrity sha512-wUpUnR/3GV5Da88MhrxXh/lhb9kxh9V3Jya2NpBEhKDIRCDmtXMSqPMXHZmOR9DfCwCvG6vLFPr/+YrPCnUN0w== + +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.0.tgz#6877e1da1a06a9f08446070ab6e0a5347109f868" + integrity sha512-lR0AxK1x/MeKQ/3Pt923kPvwigmGX3OxeU5qNtQ9pj9iucgk4PzhbS3ruUeSpYhUxG50jN4RkIGwUMoev5lguw== + +"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.0.tgz#bb6cd83a0c259eccef4183796b6329a66cf7ebd9" + integrity sha512-A1he/8gy/JeBD3FKvmI6WUJrGrI5uWJNr5Xb9WdV+DK0F8msuOqpEByLlnTdLkXMwW7nSl3awvLezOs9xBHJEg== + +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.0.tgz#9d4bca1cc9a1333fde985675083b0b7d165f6076" + integrity sha512-7x5SXZ9R9H4SluJZZP8XPN+ju7Mx+XeUMWZw7ZAqkdhP5mK19I4vz3x0zIWygmfE8RT7uQ5xMap0/9NPsO+ykw== + +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.0.tgz#0db5bfc6aa952bea4098d8d2c8947b4e5c4337ee" + integrity sha512-m7w3xf+hnE774YRXu+2mGV7RiF3QJtUoiYU61FascCkQhX3QMQavh7saH/vzb2jN5D24nT/jwvaHYX/MAM9zUw== + +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.0.tgz#2e0f39a2924dcd77db6b419828595e984fabcb33" + integrity sha512-xCuybjY0sLJQnJhupiFAXaek2EqF0AP0eBjgzaalPXSNvCEN6ZYHvUzdA50ENDVeSYFXcUsYf3+FsD3XKaeptA== + +"@nomicfoundation/solidity-analyzer@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.0.tgz#e5ddc43ad5c0aab96e5054520d8e16212e125f50" + integrity sha512-xGWAiVCGOycvGiP/qrlf9f9eOn7fpNbyJygcB0P21a1MDuVPlKt0Srp7rvtBEutYQ48ouYnRXm33zlRnlTOPHg== + optionalDependencies: + "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.0" + "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.0" + "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.1.0" + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.0" + "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.0" + "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.0" + "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.0" + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.1.0" + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.0" + "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.0" + "@nomiclabs/hardhat-ethers@^2.0.1": version "2.0.6" resolved "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.6.tgz" @@ -933,10 +1078,10 @@ lodash "^4.17.15" ts-essentials "^7.0.1" -"@types/abstract-leveldown@*": - version "7.2.0" - resolved "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz" - integrity sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ== +"@types/async-eventemitter@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz#f8e6280e87e8c60b2b938624b0a3530fb3e24712" + integrity sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg== "@types/bn.js@*", "@types/bn.js@^5.1.0": version "5.1.0" @@ -1007,20 +1152,6 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/level-errors@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz" - integrity sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ== - -"@types/levelup@^4.3.0": - version "4.3.3" - resolved "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz" - integrity sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA== - dependencies: - "@types/abstract-leveldown" "*" - "@types/level-errors" "*" - "@types/node" "*" - "@types/lodash@*": version "4.14.182" resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" @@ -1142,11 +1273,6 @@ "@types/bn.js" "*" "@types/underscore" "*" -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - "@uniswap/v3-core@^1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@uniswap/v3-core/-/v3-core-1.0.1.tgz" @@ -1311,6 +1437,19 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" +abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== + dependencies: + buffer "^6.0.3" + catering "^2.1.0" + is-buffer "^2.0.5" + level-supports "^4.0.0" + level-transcoder "^1.0.1" + module-error "^1.0.1" + queue-microtask "^1.2.3" + abstract-leveldown@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz" @@ -1332,17 +1471,6 @@ abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: dependencies: xtend "~4.0.0" -abstract-leveldown@^6.2.1: - version "6.3.0" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz" - integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== - dependencies: - buffer "^5.5.0" - immediate "^3.2.3" - level-concat-iterator "~2.0.0" - level-supports "~1.0.0" - xtend "~4.0.0" - abstract-leveldown@~2.6.0: version "2.6.3" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz" @@ -1350,17 +1478,6 @@ abstract-leveldown@~2.6.0: dependencies: xtend "~4.0.0" -abstract-leveldown@~6.2.1: - version "6.2.3" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" - integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== - dependencies: - buffer "^5.5.0" - immediate "^3.2.3" - level-concat-iterator "~2.0.0" - level-supports "~1.0.0" - xtend "~4.0.0" - accepts@~1.3.8: version "1.3.8" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" @@ -2313,6 +2430,18 @@ big.js@^5.2.2: resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bigint-crypto-utils@^3.0.23: + version "3.1.7" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.7.tgz#c4c1b537c7c1ab7aadfaecf3edfd45416bf2c651" + integrity sha512-zpCQpIE2Oy5WIQpjC9iYZf8Uh9QqoS51ZCooAcNvzv1AQ3VWdT52D0ksr1+/faeK8HVIej1bxXcP75YcqH3KPA== + dependencies: + bigint-mod-arith "^3.1.0" + +bigint-mod-arith@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz#658e416bc593a463d97b59766226d0a3021a76b1" + integrity sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ== + bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.0.2" resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" @@ -2390,6 +2519,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1: version "2.3.2" resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" @@ -2418,6 +2554,16 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== +browser-level@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.1" + module-error "^1.0.2" + run-parallel-limit "^1.1.0" + browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" @@ -2547,6 +2693,14 @@ buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + bufferutil@^4.0.1: version "4.0.6" resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz" @@ -2675,6 +2829,11 @@ caseless@^0.12.0, caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== +catering@^2.1.0, catering@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== + cbor@^5.0.2: version "5.2.0" resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" @@ -2837,6 +2996,17 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +classic-level@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" + integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.0" + module-error "^1.0.1" + napi-macros "~2.0.0" + node-gyp-build "^4.3.0" + clean-css@^5.2.2: version "5.3.0" resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz" @@ -3300,20 +3470,13 @@ debug@3.2.6: dependencies: ms "^2.1.1" -debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3: +debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@4.3.3: - version "4.3.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - debug@^3.1.0: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" @@ -3397,14 +3560,6 @@ deferred-leveldown@~4.0.0: abstract-leveldown "~5.0.0" inherits "^2.0.3" -deferred-leveldown@~5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz" - integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== - dependencies: - abstract-leveldown "~6.2.1" - inherits "^2.0.3" - define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" @@ -3635,16 +3790,6 @@ encoding-down@5.0.4, encoding-down@~5.0.0: level-errors "^2.0.0" xtend "^4.0.1" -encoding-down@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz" - integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== - dependencies: - abstract-leveldown "^6.2.1" - inherits "^2.0.3" - level-codec "^9.0.0" - level-errors "^2.0.0" - encoding@^0.1.11: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" @@ -4073,7 +4218,7 @@ ethereum-common@^0.0.18: resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz" integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== -ethereum-cryptography@^0.1.2, ethereum-cryptography@^0.1.3: +ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== @@ -4265,7 +4410,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -5147,20 +5292,25 @@ hardhat-watcher@^2.1.1: dependencies: chokidar "^3.5.3" -hardhat@^2.9.7: - version "2.9.9" - resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.9.9.tgz" - integrity sha512-Qv7SXnRc0zq1kGXruNnSKpP3eFccXMR5Qv6GVX9hBIJ5efN0PflKPq92aQ5Cv3jrjJeRevLznWZVz7bttXhVfw== +hardhat@^2.12.1: + version "2.12.1" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.1.tgz#28b0d7979b55eba379e7de5246240c121c399357" + integrity sha512-ihqYoaAKMceVWRcc3VddftFM7Q4/WL5Xan8nrklfDRwwST0W1rWWEE8SrxGikW58IJdREsC/HXVHs0zKfYpiCA== dependencies: - "@ethereumjs/block" "^3.6.2" - "@ethereumjs/blockchain" "^5.5.2" - "@ethereumjs/common" "^2.6.4" - "@ethereumjs/tx" "^3.5.1" - "@ethereumjs/vm" "^5.9.0" "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" + "@nomicfoundation/ethereumjs-block" "^4.0.0" + "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-evm" "^1.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-tx" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + "@nomicfoundation/ethereumjs-vm" "^6.0.0" + "@nomicfoundation/solidity-analyzer" "^0.1.0" "@sentry/node" "^5.18.1" - "@solidity-parser/parser" "^0.14.1" "@types/bn.js" "^5.1.0" "@types/lru-cache" "^5.1.0" abort-controller "^3.0.0" @@ -5173,29 +5323,26 @@ hardhat@^2.9.7: debug "^4.1.1" enquirer "^2.3.0" env-paths "^2.2.0" - ethereum-cryptography "^0.1.2" + ethereum-cryptography "^1.0.3" ethereumjs-abi "^0.6.8" - ethereumjs-util "^7.1.4" find-up "^2.1.0" fp-ts "1.19.3" fs-extra "^7.0.1" glob "7.2.0" immutable "^4.0.0-rc.12" io-ts "1.10.4" + keccak "^3.0.2" lodash "^4.17.11" - merkle-patricia-tree "^4.2.4" mnemonist "^0.38.0" - mocha "^9.2.0" + mocha "^10.0.0" p-map "^4.0.0" qs "^6.7.0" raw-body "^2.4.1" resolve "1.17.0" semver "^6.3.0" - slash "^3.0.0" solc "0.7.3" source-map-support "^0.5.13" stacktrace-parser "^0.1.10" - "true-case-path" "^2.2.1" tsort "0.0.1" undici "^5.4.0" uuid "^8.3.2" @@ -5469,7 +5616,7 @@ idna-uts46-hx@^2.3.1: dependencies: punycode "2.1.0" -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -5639,7 +5786,7 @@ is-buffer@^1.1.5: resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@~2.0.3: +is-buffer@^2.0.5, is-buffer@~2.0.3: version "2.0.5" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== @@ -6166,7 +6313,7 @@ keccak@3.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -keccak@^3.0.0: +keccak@^3.0.0, keccak@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -6256,11 +6403,6 @@ level-codec@~7.0.0: resolved "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz" integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== -level-concat-iterator@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz" - integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== - level-errors@^1.0.3: version "1.1.2" resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.1.2.tgz" @@ -6310,15 +6452,6 @@ level-iterator-stream@~3.0.0: readable-stream "^2.3.6" xtend "^4.0.0" -level-iterator-stream@~4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz" - integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== - dependencies: - inherits "^2.0.4" - readable-stream "^3.4.0" - xtend "^4.0.2" - level-mem@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz" @@ -6327,22 +6460,6 @@ level-mem@^3.0.1: level-packager "~4.0.0" memdown "~3.0.0" -level-mem@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz" - integrity sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg== - dependencies: - level-packager "^5.0.3" - memdown "^5.0.0" - -level-packager@^5.0.3: - version "5.1.1" - resolved "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz" - integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== - dependencies: - encoding-down "^6.3.0" - levelup "^4.3.2" - level-packager@~4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz" @@ -6374,12 +6491,18 @@ level-sublevel@6.6.4: typewiselite "~1.0.0" xtend "~4.0.0" -level-supports@~1.0.0: +level-supports@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== + +level-transcoder@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz" - integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== + resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== dependencies: - xtend "^4.0.2" + buffer "^6.0.3" + module-error "^1.0.1" level-ws@0.0.0: version "0.0.0" @@ -6398,14 +6521,13 @@ level-ws@^1.0.0: readable-stream "^2.2.8" xtend "^4.0.1" -level-ws@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz" - integrity sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA== +level@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" + integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== dependencies: - inherits "^2.0.3" - readable-stream "^3.1.0" - xtend "^4.0.1" + browser-level "^1.0.1" + classic-level "^1.2.0" levelup@3.1.1, levelup@^3.0.0: version "3.1.1" @@ -6430,17 +6552,6 @@ levelup@^1.2.1: semver "~5.4.1" xtend "~4.0.0" -levelup@^4.3.2: - version "4.4.0" - resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" - integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== - dependencies: - deferred-leveldown "~5.3.0" - level-errors "~2.0.0" - level-iterator-stream "~4.0.0" - level-supports "~1.0.0" - xtend "~4.0.0" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" @@ -6686,18 +6797,6 @@ memdown@^1.0.0: ltgt "~2.2.0" safe-buffer "~5.1.1" -memdown@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz" - integrity sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw== - dependencies: - abstract-leveldown "~6.2.1" - functional-red-black-tree "~1.0.1" - immediate "~3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.2.0" - memdown@~3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz" @@ -6710,6 +6809,15 @@ memdown@~3.0.0: ltgt "~2.2.0" safe-buffer "~5.1.1" +memory-level@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" + integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== + dependencies: + abstract-level "^1.0.0" + functional-red-black-tree "^1.0.1" + module-error "^1.0.1" + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" @@ -6759,18 +6867,6 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: rlp "^2.0.0" semaphore ">=1.0.1" -merkle-patricia-tree@^4.2.4: - version "4.2.4" - resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz" - integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== - dependencies: - "@types/levelup" "^4.3.0" - ethereumjs-util "^7.1.4" - level-mem "^5.0.1" - level-ws "^2.0.0" - readable-stream "^3.6.0" - semaphore-async-await "^1.5.1" - merkletreejs@^0.2.31: version "0.2.31" resolved "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.2.31.tgz" @@ -6873,12 +6969,12 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: - brace-expansion "^1.1.7" + brace-expansion "^2.0.1" minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" @@ -6948,6 +7044,33 @@ mnemonist@^0.38.0: dependencies: obliterator "^2.0.0" +mocha@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.1.0.tgz#dbf1114b7c3f9d0ca5de3133906aea3dfc89ef7a" + integrity sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + mocha@^7.1.1: version "7.2.0" resolved "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" @@ -6978,41 +7101,16 @@ mocha@^7.1.1: yargs-parser "13.1.2" yargs-unparser "1.6.0" -mocha@^9.2.0: - version "9.2.2" - resolved "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz" - integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.3" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - growl "1.10.5" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "4.2.1" - ms "2.1.3" - nanoid "3.3.1" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - which "2.0.2" - workerpool "6.2.0" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - mock-fs@^4.1.0: version "4.14.0" resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" 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.npmjs.org/ms/-/ms-2.0.0.tgz" @@ -7083,10 +7181,10 @@ nano-json-stream-parser@^0.1.2: resolved "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz" integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== -nanoid@3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== nanoid@^3.3.4: version "3.3.4" @@ -7110,6 +7208,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-macros@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" @@ -8003,6 +8106,11 @@ querystring@0.2.0: resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== +queue-microtask@^1.2.2, queue-microtask@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" @@ -8073,7 +8181,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -8384,6 +8492,13 @@ run-async@^2.2.0: resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +run-parallel-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" + integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== + dependencies: + queue-microtask "^1.2.2" + rustbn.js@~0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" @@ -8465,11 +8580,6 @@ seedrandom@3.0.1: resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.1.tgz" integrity sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg== -semaphore-async-await@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz" - integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== - semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz" @@ -8645,11 +8755,6 @@ slash@^2.0.0: resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" @@ -9359,11 +9464,6 @@ trim-right@^1.0.1: resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -"true-case-path@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz" - integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q== - ts-command-line-args@^2.2.0: version "2.3.1" resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.3.1.tgz" @@ -10457,13 +10557,6 @@ which@1.3.1, which@^1.2.9: dependencies: isexe "^2.0.0" -which@2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - wide-align@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" @@ -10489,10 +10582,10 @@ wordwrapjs@^4.0.0: reduce-flatten "^2.0.0" typical "^5.2.0" -workerpool@6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz" - integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== wrap-ansi@^2.0.0: version "2.1.0" @@ -10600,7 +10693,7 @@ xmlhttprequest@1.8.0: resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==