diff --git a/package.json b/package.json index 1b4feb3..a8b0150 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "test": "npx hardhat test test/exchangeAgent.test.js", + "test": "npx hardhat test", "test:local": "npx hardhat test --network hardhat", "test:test-deploy": "npx hardhat run scripts/sample-script.js --network hardhat", "bscTest:test-deploy": "npx hardhat run scripts/sample-script.js --network bscTest", @@ -63,4 +63,4 @@ "eth-sig-util": "^3.0.1" }, "repository": "git@github.com:Uno-Re/SSIP-SSRP-contracts.git" -} \ No newline at end of file +} diff --git a/scripts/abis/CapitalAgent..json b/scripts/abis/CapitalAgent.json similarity index 100% rename from scripts/abis/CapitalAgent..json rename to scripts/abis/CapitalAgent.json diff --git a/scripts/abis/exchangeAgentAbi.json b/scripts/abis/exchangeAgentAbi.json new file mode 100644 index 0000000..5121b56 --- /dev/null +++ b/scripts/abis/exchangeAgentAbi.json @@ -0,0 +1,770 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "_usdcToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_WETH", + "type": "address" + }, + { + "internalType": "address", + "name": "_oraclePriceFeed", + "type": "address" + }, + { + "internalType": "address", + "name": "_uniswapRouter", + "type": "address" + }, + { + "internalType": "address", + "name": "_uniswapFactory", + "type": "address" + }, + { + "internalType": "address", + "name": "_multiSigWallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_swapDeadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "AddressInsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "EnforcedPause", + "type": "error" + }, + { + "inputs": [], + "name": "ExpectedPause", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "ReentrancyGuardReentrantCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "SafeERC20FailedOperation", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_dexAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_convertToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_convertAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_desiredAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_convertedAmount", + "type": "uint256" + } + ], + "name": "ConvertedTokenToETH", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_dexAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_convertToken", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_convertedToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_convertAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_desiredAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_convertedAmount", + "type": "uint256" + } + ], + "name": "ConvertedTokenToToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_exchangeAgent", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_whiteListAddress", + "type": "address" + } + ], + "name": "LogAddWhiteList", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_exchangeAgent", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_whiteListAddress", + "type": "address" + } + ], + "name": "LogRemoveWhiteList", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_exchangeAgent", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_oraclePriceFeed", + "type": "address" + } + ], + "name": "LogSetOraclePriceFeed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_exchangeAgent", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_slippage", + "type": "uint256" + } + ], + "name": "LogSetSlippage", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "inputs": [], + "name": "UNISWAP_FACTORY", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "UNISWAP_ROUTER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "WETH", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_whiteListAddress", + "type": "address" + } + ], + "name": "addWhiteList", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_convertAmount", + "type": "uint256" + } + ], + "name": "convertForETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token0", + "type": "address" + }, + { + "internalType": "address", + "name": "_token1", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_token0Amount", + "type": "uint256" + } + ], + "name": "convertForToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "getETHAmountForToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_usdtAmount", + "type": "uint256" + } + ], + "name": "getETHAmountForUSDC", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token0", + "type": "address" + }, + { + "internalType": "address", + "name": "_token1", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_token0Amount", + "type": "uint256" + } + ], + "name": "getNeededTokenAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_ethAmount", + "type": "uint256" + } + ], + "name": "getTokenAmountForETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_usdtAmount", + "type": "uint256" + } + ], + "name": "getTokenAmountForUSDC", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "killPool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oraclePriceFeed", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_whiteListAddress", + "type": "address" + } + ], + "name": "removeWhiteList", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "revivePool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_oraclePriceFeed", + "type": "address" + } + ], + "name": "setOraclePriceFeed", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_slippage", + "type": "uint256" + } + ], + "name": "setSlippage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_swapDeadline", + "type": "uint256" + } + ], + "name": "setSwapDeadline", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "slippage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "swapDeadline", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "usdcToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "whiteList", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } +] diff --git a/scripts/abis/salesPolicyFactoryAbi.json b/scripts/abis/salesPolicyFactoryAbi.json new file mode 100644 index 0000000..08be26c --- /dev/null +++ b/scripts/abis/salesPolicyFactoryAbi.json @@ -0,0 +1,663 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "_usdcToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_exchangeAgent", + "type": "address" + }, + { + "internalType": "address", + "name": "_premiumPool", + "type": "address" + }, + { + "internalType": "address", + "name": "_capitalAgent", + "type": "address" + }, + { + "internalType": "address", + "name": "_multiSigWallet", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "ReentrancyGuardReentrantCall", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_premiumCurrency", + "type": "address" + } + ], + "name": "LogApprovePremiumInPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_protocolId", + "type": "uint16" + }, + { + "indexed": true, + "internalType": "address", + "name": "_protocol", + "type": "address" + } + ], + "name": "LogSetBlackListProtocol", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_maxDeadline", + "type": "uint256" + } + ], + "name": "LogSetBuyPolicyMaxDeadlineInPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_capitalAgent", + "type": "address" + } + ], + "name": "LogSetCapitalAgentInPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_exchangeAgent", + "type": "address" + } + ], + "name": "LogSetExchangeAgentInPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_premiumPool", + "type": "address" + } + ], + "name": "LogSetPremiumPool", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_premiumPool", + "type": "address" + } + ], + "name": "LogSetPremiumPoolInPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "_uri", + "type": "string" + } + ], + "name": "LogSetProtocolURIInPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_signer", + "type": "address" + } + ], + "name": "LogSetSignerInPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "_status", + "type": "bool" + } + ], + "name": "LogUpdateCheckIfProtocolInWhitelistArray", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_protocolIdx", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "address", + "name": "_protocol", + "type": "address" + } + ], + "name": "ProtocolCreated", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protocolAddress", + "type": "address" + } + ], + "name": "addProtocol", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "allProtocolsLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_premiumCurrency", + "type": "address" + } + ], + "name": "approvePremiumInPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "capitalAgent", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "checkIfProtocolInWhitelistArray", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "exchangeAgent", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "name": "getProtocol", + "outputs": [ + { + "internalType": "address", + "name": "protocolAddress", + "type": "address" + }, + { + "internalType": "bool", + "name": "isBlackList", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_protocolIdx", + "type": "uint16" + } + ], + "name": "getProtocolData", + "outputs": [ + { + "internalType": "address", + "name": "protocolAddress", + "type": "address" + }, + { + "internalType": "bool", + "name": "isBlackList", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "getProtocolId", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "killSalesPolicyPool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_exchangeAgent", + "type": "address" + }, + { + "internalType": "address", + "name": "_premiumPool", + "type": "address" + }, + { + "internalType": "address", + "name": "_capitalAgent", + "type": "address" + } + ], + "name": "newSalesPolicy", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "premiumPool", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "reviveSalesPolicyPool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "salesPolicy", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protocol", + "type": "address" + } + ], + "name": "setBlackListProtocolByAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_protocolId", + "type": "uint16" + } + ], + "name": "setBlackListProtocolById", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxDeadline", + "type": "uint256" + } + ], + "name": "setBuyPolicyMaxDeadlineInPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_capitalAgent", + "type": "address" + } + ], + "name": "setCapitalAgentInPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_exchangeAgent", + "type": "address" + } + ], + "name": "setExchangeAgentInPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_premiumPool", + "type": "address" + } + ], + "name": "setPremiumPool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_premiumPool", + "type": "address" + } + ], + "name": "setPremiumPoolInPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_uri", + "type": "string" + } + ], + "name": "setProtocolURIInPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_signer", + "type": "address" + } + ], + "name": "setSignerInPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_status", + "type": "bool" + } + ], + "name": "updateCheckIfProtocolInWhitelistArray", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "usdcToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/test/fork-tests/rollux/salesPolicy.test.js b/test/fork-tests/rollux/salesPolicy.test.js new file mode 100644 index 0000000..0e1f427 --- /dev/null +++ b/test/fork-tests/rollux/salesPolicy.test.js @@ -0,0 +1,1544 @@ +const { expect } = require("chai") +const { ethers, network, upgrades } = require("hardhat") + +const { + getBigNumber, + getPaddedHexStrFromBN, + getPaddedHexStrFromBNArray, + getChainId, + getSignatureParameters, + advanceBlockTo, +} = require("../../../scripts/shared/utilities") + +const UniswapV2Router = require("../../../scripts/abis/UniswapV2Router.json") + +const { WETH_ADDRESS, UNISWAP_FACTORY_ADDRESS, UNISWAP_ROUTER_ADDRESS } = require("../../../scripts/shared/constants") +const OptimisticOracleV3Abi = require("../../../scripts/abis/OptimisticOracleV3.json") +const mockUnoAbi = require("../../../scripts/abis/MockUNO.json") +const mockWSYS = require("../../../scripts/abis/WETH9.json") +const riskPoolFactoryAbi = require("../../../scripts/abis/riskPoolFactoryAbi.json") +const MockOraclePriceFeedAbi = require("../../../scripts/abis/mockOracle.json") +const exchangeAgentAbi = require("../../../scripts/abis/exchangeAgentAbi.json") +const premiumPoolAbi = require("../../../scripts/abis/PremiumPool.json") +const capitalAgentAbi = require("../../../scripts/abis/CapitalAgent.json") +const salesPolicyFactoryAbi = require("../../../scripts/abis/salesPolicyFactoryAbi.json") +const singleSidedInsurancePoolAbi = require("../../../scripts/abis/SingleSidedInsurancePool.json") + +describe("SalesPolicy", function () { + before(async function () { + this.multisig = await ethers.getContractFactory("MultiSigWallet") + this.CapitalAgent = await ethers.getContractFactory("CapitalAgent") + this.CapitalAgent1 = await ethers.getContractFactory("CapitalAgent") + this.PremiumPool = await ethers.getContractFactory("PremiumPool") + this.Rewarder = await ethers.getContractFactory("Rewarder") + this.RewarderFactory = await ethers.getContractFactory("RewarderFactory") + this.RiskPoolFactory = await ethers.getContractFactory("RiskPoolFactory") + this.RiskPool = await ethers.getContractFactory("RiskPool") + this.ExchangeAgent = await ethers.getContractFactory("ExchangeAgent") + this.MockUNO = await ethers.getContractFactory("MockUNO") + this.stakingAsset = await ethers.getContractFactory("MockUSDT") + this.SalesPolicyFactory = await ethers.getContractFactory("SalesPolicyFactory") + this.SalesPolicy = await ethers.getContractFactory("SalesPolicy") + this.SingleSidedInsurancePool = await ethers.getContractFactory("SingleSidedInsurancePool") + this.MockOraclePriceFeed = await ethers.getContractFactory("PriceOracle") + this.EscalationManager = await ethers.getContractFactory("EscalationManager") + this.signers = await ethers.getSigners() + this.zeroAddress = ethers.ZeroAddress + this.routerContract = new ethers.Contract( + UNISWAP_ROUTER_ADDRESS.sepolia, + JSON.stringify(UniswapV2Router.abi), + ethers.provider, + ) + this.chainId = (await ethers.provider.getNetwork()).chainId + this.domainType = [ + { name: "name", type: "string" }, + { name: "version", type: "string" }, + { name: "verifyingContract", type: "address" }, + { name: "salt", type: "bytes32" }, + ] + this.metaTransactionType = [ + { name: "nonce", type: "uint256" }, + { name: "from", type: "address" }, + { name: "functionSignature", type: "bytes" }, + ] + + this.owners = [ + this.signers[0].address, + this.signers[1].address, + this.signers[2].address, + this.signers[3].address, + this.signers[4].address, + ] + + this.numConfirmationsRequired = 2 + }) + + beforeEach(async function () { + this.mockUNO = await ethers.getContractAt(mockUnoAbi, "0x553A7E44043C98eAaAc71334d49Ecbec92916c36") + this.stakingAsset = await ethers.getContractAt(mockWSYS, "0x4200000000000000000000000000000000000006") + this.multisig = await ethers.getSigner("0x15E18e012cb6635b228e0DF0b6FC72627C8b2429") + await hre.network.provider.request({ + method: "hardhat_impersonateAccount", + params: ["0x15E18e012cb6635b228e0DF0b6FC72627C8b2429"], + }) + + this.admin = await ethers.getSigner("0x3ad22Ae2dE3dCF105E8DaA12acDd15bD47596863") + await hre.network.provider.request({ + method: "hardhat_impersonateAccount", + params: ["0x3ad22Ae2dE3dCF105E8DaA12acDd15bD47596863"], + }) + + // Account that has enought tokens to transfer all test account a bunch of times + this.stakingAssetMillionaire = await ethers.getSigner("0x3F0e40bC7e9cb5f46E906dAEd18651Fb6212Aa8E") + await hre.network.provider.request({ + method: "hardhat_impersonateAccount", + params: ["0x3F0e40bC7e9cb5f46E906dAEd18651Fb6212Aa8E"], + }) + await network.provider.send("hardhat_setBalance", [ + "0x3F0e40bC7e9cb5f46E906dAEd18651Fb6212Aa8E", + "0x900000000000000000000000000000000000", + ]) + + await this.stakingAssetMillionaire.sendTransaction({ to: this.stakingAsset, value: getBigNumber("50000000") }) + console.log(await this.stakingAsset.balanceOf(this.stakingAssetMillionaire.address)) + + this.UNOMillionaire = await ethers.getSigner("0xBB6Ae6BaE1356226cfFE33d131EE66194FE4E0aD") + await hre.network.provider.request({ + method: "hardhat_impersonateAccount", + params: ["0xBB6Ae6BaE1356226cfFE33d131EE66194FE4E0aD"], + }) + + await this.stakingAssetMillionaire.sendTransaction({ + to: this.UNOMillionaire.address, + value: ethers.parseUnits("1", "ether"), + }) + await this.mockUNO.connect(this.signers[0]).mint(getBigNumber("50000"), { from: this.signers[0] }) + await this.mockUNO.connect(this.signers[1]).mint(getBigNumber("50000"), { from: this.signers[1] }) + await this.mockUNO.connect(this.signers[2]).mint(getBigNumber("50000"), { from: this.signers[2] }) + + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[0], getBigNumber("500000")) + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[1], getBigNumber("500000")) + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[2], getBigNumber("500000")) + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[3], getBigNumber("500000")) + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[4], getBigNumber("500000")) + await this.stakingAssetMillionaire.sendTransaction({ to: this.multisig, value: getBigNumber("5000") }) + + this.masterChefOwner = this.signers[0].address + this.claimAssessor = this.signers[3].address + this.riskPoolFactory = await ethers.getContractAt(riskPoolFactoryAbi, "0x188A7092f2020088052D589F1C626Bb955AB5436") + + await this.mockUNO.connect(this.signers[1]).mint(getBigNumber("3000000"), { from: this.signers[1] }) + await this.mockUNO.connect(this.signers[2]).mint(getBigNumber("3000000"), { from: this.signers[2] }) + const assetArray = [this.stakingAsset.address, this.mockUNO.address, this.zeroAddress] + const timestamp = new Date().getTime() + + await ( + await this.mockUNO + .connect(this.signers[0]) + .approve(UNISWAP_ROUTER_ADDRESS.sepolia, getBigNumber("10000000"), { from: this.signers[0].address }) + ).wait() + await ( + await this.stakingAsset + .connect(this.signers[0]) + .approve(UNISWAP_ROUTER_ADDRESS.sepolia, getBigNumber("10000000"), { from: this.signers[0].address }) + ).wait() + + await ( + await this.routerContract + .connect(this.signers[0]) + .addLiquidity( + this.mockUNO.target, + this.stakingAsset.target, + getBigNumber("3000000"), + getBigNumber("3000", 6), + getBigNumber("3000000"), + getBigNumber("3000", 6), + this.signers[0].address, + timestamp, + { from: this.signers[0].address, gasLimit: 9999999 }, + ) + ).wait() + + this.mockOraclePriceFeed = await ethers.getContractAt(MockOraclePriceFeedAbi, "0x14eF9C6cD5A8C78af407cEcCA3E4668e466F2B18") + + this.exchangeAgent = await ethers.getContractAt(exchangeAgentAbi, "0x83f618d714B9464C8e63F1d95592BaAa2d51a54E") + + this.premiumPool = await ethers.getContractAt(premiumPoolAbi, "0xc94002a997d4e4E90D423778170588f695c5f242") + + this.capitalAgent = await ethers.getContractAt(capitalAgentAbi, "0xB754842C7b0FA838e08fe5C028dB0ecd919f2d30") + + this.salesPolicyFactory = await ethers.getContractAt(salesPolicyFactoryAbi, "0xD86D9be9143Dc514340C73502f2B77d93d0B11f4") + + // add 2 protocols + await this.salesPolicyFactory.connect(this.multisig).addProtocol(this.signers[7].address) + await this.salesPolicyFactory.connect(this.multisig).addProtocol(this.signers[8].address) + await this.salesPolicyFactory.connect(this.multisig).addProtocol(this.signers[5].address) + + // await this.salesPolicyFactory.addProtocol(this.signers[idx + 1].address) + // await (await this.premiumPool.addCurrency(this.stakingAsset.address)).wait() + await this.salesPolicyFactory.connect(this.multisig).setSignerInPolicy(this.signers[0].address) + + this.optimisticOracleV3 = await ethers.getContractAt(OptimisticOracleV3Abi, "0x9923D42eF695B5dd9911D05Ac944d4cAca3c4EAB") + this.escalationManager = await this.EscalationManager.deploy(this.optimisticOracleV3.target, this.signers[0].address) + + this.singleSidedInsurancePool = await ethers.getContractAt( + singleSidedInsurancePoolAbi, + "0x3B61743180857c9D898c336b1604f4742887aa74", + ) + + await this.stakingAsset.approve(this.singleSidedInsurancePool.target, getBigNumber("1000000")) + await this.stakingAsset + .connect(this.signers[1]) + .approve(this.singleSidedInsurancePool.target, getBigNumber("1000000"), { from: this.signers[1].address }) + + await this.singleSidedInsurancePool.connect(this.signers[0]).enterInPool(getBigNumber("100000")) + + // block number when deposit in pool for the first time + const beforeBlockNumber = await ethers.provider.getBlockNumber() + + await advanceBlockTo(beforeBlockNumber + 10000) + // another one will deposit in pool with the same amount + await this.singleSidedInsurancePool + .connect(this.signers[1]) + .enterInPool(getBigNumber("100000"), { from: this.signers[1].address }) + + await this.capitalAgent.connect(this.admin).setMCR(getBigNumber("1", 16)) + + this.salesPolicyAddress = await this.salesPolicyFactory.salesPolicy() + this.salesPolicy = await this.SalesPolicy.attach(await this.salesPolicyFactory.salesPolicy()) + }) + + describe("Sales policy Action", function () { + // it("Should update premium pool address", async function () { + // const premiumPoolAddressBefore = await this.salesPolicyFactory.premiumPool() + // await this.salesPolicyFactory.connect(this.multisig).setPremiumPool(this.signers[3].address) + // const premiumPoolAddressAfter = await this.salesPolicyFactory.premiumPool() + // expect(premiumPoolAddressBefore).to.be.not.equal(premiumPoolAddressAfter) + // expect(premiumPoolAddressAfter).to.equal(this.signers[3].address) + // }) + + it("Should buy policy in USDT", async function () { + let hexData + const currentDate = new Date() + timestamp = (await ethers.provider.getBlock("latest")).timestamp + const privateKey = process.env.PRIVATE_KEY + + const protocol = await this.salesPolicyFactory.getProtocol(1) + + // await (await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.address)).wait() + // await (await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address)).wait() + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("1000000000"))).wait() + // await (await this.premiumPool.addWhiteList(this.salesPolicy.address)).wait() + // await (await this.salesPolicyFactory.updateCheckIfProtocolInWhitelistArray(true)).wait() + // await (await this.salesPolicyFactory.setBlackListProtocolById(0)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.salesPolicy.target.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[0].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const chainId = await getChainId() + + const functionSignature = await this.salesPolicy + .connect(this.multisig) + .interface.encodeFunctionData("buyPolicy", [ + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + ]) + + const domainData = { + name: "BuyPolicyMetaTransaction", + version: "1", + verifyingContract: this.salesPolicyAddress, + salt: getPaddedHexStrFromBN(chainId), + } + + const types = { + MetaTransaction: [ + { name: "nonce", type: "uint256" }, + { name: "from", type: "address" }, + { name: "functionSignature", type: "bytes" }, + ], + } + + const message = { + nonce: Number(nonce), + from: this.signers[0].address, + functionSignature: functionSignature, + } + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + const signature = await this.signers[0].signTypedData(domainData, types, message) + + let { r, s, v } = getSignatureParameters(signature) + try { + let tx = await this.salesPolicy + .connect(this.signers[0]) + .executeMetaTransaction(this.signers[0].address, functionSignature, r, s, v, { + gasLimit: 1000000, + }) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + const premiumPoolBalanceAfter = await this.stakingAsset.balanceOf(this.premiumPool.target) + //const premiumForSSRP = await this.premiumPool.ssrpPremium(this.stakingAsset.target) + // const premiumForSSIP = await this.premiumPool.ssipPremium(this.stakingAsset.target) + const premiumForBackBurn = await this.premiumPool.backBurnUnoPremium(this.stakingAsset.target) + expect(premiumPoolBalanceAfter).to.equal(getBigNumber("300", 6)) + //expect(premiumForSSRP).to.equal(getBigNumber("30", 6)) + // expect(premiumForSSIP).to.equal(getBigNumber("210", 6)) + expect(premiumForBackBurn).to.equal(getBigNumber("60", 6)) + + console.log("this.txIdx", this.txIdx) + }) + it("Should buy policy in USDT directly", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + console.log("this.signers[5].address", this.signers[5].address) + await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address) + + await this.premiumPool.addWhiteList(this.salesPolicy.target) + + // await (await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.address)).wait() + // await (await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address)).wait() + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("100000000"))).wait() + // await (await this.premiumPool.addWhiteList(this.salesPolicy.address)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + try { + let tx = await this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + console.log("this.salesPolicyAddress", this.salesPolicyAddress) + console.log( + "await this.stakingAsset.balanceOf(this.salesPolicyAddress)", + await this.stakingAsset.balanceOf(this.salesPolicyAddress), + ) + console.log("await this.stakingAsset.balanceOf(this.premium)", await this.stakingAsset.balanceOf(this.premiumPool.target)) + + const premiumPoolBalanceAfter = await this.stakingAsset.balanceOf(this.premiumPool.target) + const premiumForSSRP = await this.premiumPool.ssrpPremium(this.stakingAsset.target) + const premiumForSSIP = await this.premiumPool.ssipPremium(this.stakingAsset.target) + const premiumForBackBurn = await this.premiumPool.backBurnUnoPremium(this.stakingAsset.target) + expect(premiumPoolBalanceAfter).to.equal(getBigNumber("300", 6)) + expect(premiumForSSRP).to.equal(getBigNumber("30", 6)) + expect(premiumForSSIP).to.equal(getBigNumber("210", 6)) + expect(premiumForBackBurn).to.equal(getBigNumber("60", 6)) + }) + it("Should revert when invalid signer buy policy", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.target) + + await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address) + + await this.premiumPool.addWhiteList(this.salesPolicy.target) + + // await (await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.address)).wait() + // await (await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address)).wait() + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("100000000"))).wait() + // await (await this.premiumPool.addWhiteList(this.salesPolicy.address)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[1].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + await expect( + this.salesPolicy + .connect(this.signers[10]) + .buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ), + ).to.be.revertedWith("UnoRe: invalid signer") + }) + + it("Should buy policy in ETH ", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.target) + + await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address) + + await this.premiumPool.addWhiteList(this.salesPolicy.target) + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const value = await this.exchangeAgent.getETHAmountForUSDC(policyPrice) + + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.zeroAddress.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + try { + let tx = await this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.zeroAddress, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + value: value, + }, + ) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + + // const premiumPoolBalanceAfter = await this.ethers.provider.getBalance(this.premiumPool.target) + // const premiumForSSRP = await this.premiumPool.ssrpPremiumEth() + //const premiumForSSIP = await this.premiumPool.ssipPremiumEth() + const premiumForBackBurn = await this.premiumPool.backBurnPremiumEth() + //expect(premiumForSSRP).to.equal(13780) + + //expect(premiumForSSIP).to.equal(96462) + + expect(premiumForBackBurn).to.equal(27562) + }) + it("Should revert when less premium paid in ETH", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.target) + + await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address) + + await this.premiumPool.addWhiteLis(this.salesPolicy.target) + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.zeroAddress.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.zeroAddress, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + value: 0, + }, + ), + ).to.be.revertedWith("UnoRe: insufficient paid") + }) + it("Should revert when protocol in blacklist", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.target) + + await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address) + + await this.salesPolicyFactory.updateCheckIfProtocolInWhitelistArray(true) + + await this.salesPolicyFactory.setBlackListProtocolByAddress(this.signers[1].address) + + await this.premiumPool.addWhiteList(this.salesPolicy.target) + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.zeroAddress.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + const value = await this.exchangeAgent.getETHAmountForUSDC(policyPrice) + + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.zeroAddress, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + value: value, + }, + ), + ).to.be.revertedWith("UnoRe: unavailable policy") + }) + + it("Should revert on Policy purchase cancelled when no remaining insurance capacity available", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + //setting MLR to 1 + let encodedCallData = await this.capitalAgent.interface.encodeFunctionData("setMLR", [1]) + + await expect(this.multisig.submitTransaction(this.capitalAgent.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.capitalAgent.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + const amount = await this.capitalAgent.totalCapitalStaked() + await (await this.stakingAsset.approve(this.salesPolicyAddress, amount)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [amount, amount] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = await ethers.Signature.from(flatSig) + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ), + ).to.be.revertedWith("UnoRe: maximum leverage overflow") + }) + it("Decrease in capacity after buying policy", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("100000000"))).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const totalCoverageAmount = coverageAmount.reduce((acc, currentValue) => acc + currentValue, getBigNumber("0")) + console.log(totalCoverageAmount) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + const totalUtilizedAmountBefore = await this.capitalAgent.totalUtilizedAmount() + + try { + let tx = await this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + const totalUtilizedAmountAfter = await this.capitalAgent.totalUtilizedAmount() + console.log(totalUtilizedAmountAfter, totalUtilizedAmountBefore) + expect(totalUtilizedAmountAfter - totalUtilizedAmountBefore).to.equal(totalCoverageAmount) + }) + it("Increase in capacity after users stakes more capital in new pools.", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + //const protocol = await this.salesPolicyFactory.getProtocol(0); + + //setting MLR to 1 + let encodedCallData = await this.capitalAgent.interface.encodeFunctionData("setMLR", [100]) + + await expect(this.multisig.submitTransaction(this.capitalAgent.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.capitalAgent.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + const amount = await this.capitalAgent.totalCapitalStaked() + await (await this.stakingAsset.approve(this.salesPolicyAddress, amount)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 4), getBigNumber("100", 4)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ), + ).to.be.revertedWith("UnoRe: maximum leverage overflow") + + //enter in pools + await this.mockUNO.approve(this.singleSidedInsurancePool.target, getBigNumber("2000000")) + await this.mockUNO + .connect(this.signers[1]) + .approve(this.singleSidedInsurancePool.target, getBigNumber("2000000"), { from: this.signers[1].address }) + await this.singleSidedInsurancePool.enterInPool(getBigNumber("200000")) + + // another one will deposit in pool with the same amount + await this.singleSidedInsurancePool + .connect(this.signers[1]) + .enterInPool(getBigNumber("200000"), { from: this.signers[1].address }) + + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ), + ).not.to.be.reverted + }) + it("Increase in capacity after policy expiration", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("100000000"))).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + let nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const totalCoverageAmount = coverageAmount.reduce((acc, currentValue) => acc + currentValue, getBigNumber("0")) + console.log(totalCoverageAmount) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + try { + let tx = await this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + + let totalUtilizedAmountBefore = await this.capitalAgent.totalUtilizedAmount() + //console.log('totalUtilizedAmountBefore', totalUtilizedAmountBefore); + + const coverageBefore = await this.salesPolicy.getPolicyData(1) + const _coverStartAt = coverageBefore[2] + const _coverageDuration = coverageBefore[1] + const coveregeAmountBefore = coverageBefore[0] + + await hre.ethers.provider.send("evm_increaseTime", [Number(_coverStartAt) + Number(_coverageDuration) + 100]) + + encodedCallData = await this.capitalAgent.interface.encodeFunctionData("updatePolicyStatus", [1]) + + await expect(this.multisig.submitTransaction(this.capitalAgent.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.capitalAgent.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + let totalUtilizedAmountAfter = await this.capitalAgent.totalUtilizedAmount() + //console.log('totalUtilizedAmountAfter', totalUtilizedAmountAfter); + expect(totalUtilizedAmountBefore - totalUtilizedAmountAfter).to.equal(coveregeAmountBefore) + expect(totalUtilizedAmountAfter).to.equal(getBigNumber("100", 6)) + }) + it("Should revert when signature time expired", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.zeroAddress.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + const value = await this.exchangeAgent.getETHAmountForUSDC(policyPrice) + + await hre.ethers.provider.send("evm_increaseTime", [Number(deadline)]) + + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.zeroAddress, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + value: value, + }, + ), + ).to.be.revertedWith("UnoRe: signature expired") + }) + it("Should buy policy in USDT after proxy upgrade", async function () { + this.txIdx = this.txIdx1 + this.capitalAgent = await upgrades.upgradeProxy(this.capitalAgent.target, this.CapitalAgent1) + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const privateKey = process.env.PRIVATE_KEY + + const protocol = await this.salesPolicyFactory.getProtocol(1) + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[0].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + // await (await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.address)).wait() + // await (await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address)).wait() + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("1000000000"))).wait() + // await (await this.premiumPool.addWhiteList(this.salesPolicy.address)).wait() + // await (await this.salesPolicyFactory.updateCheckIfProtocolInWhitelistArray(true)).wait() + // await (await this.salesPolicyFactory.setBlackListProtocolById(0)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + let nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.salesPolicy.target.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[0].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const chainId = await getChainId() + + const functionSignature = await this.salesPolicy.interface.encodeFunctionData("buyPolicy", [ + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + ]) + + const domainData = { + name: "BuyPolicyMetaTransaction", + version: "1", + verifyingContract: this.salesPolicyAddress, + salt: getPaddedHexStrFromBN(chainId), + } + + const types = { + MetaTransaction: [ + { name: "nonce", type: "uint256" }, + { name: "from", type: "address" }, + { name: "functionSignature", type: "bytes" }, + ], + } + + nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const message = { + nonce: Number(nonce), + from: this.signers[0].address, + functionSignature: functionSignature, + } + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + const signature = await this.signers[0].signTypedData(domainData, types, message) + let { r, s, v } = getSignatureParameters(signature) + try { + let tx = await this.salesPolicy.executeMetaTransaction(this.signers[0].address, functionSignature, r, s, v, { + gasLimit: 1000000, + }) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + const premiumPoolBalanceAfter = await this.stakingAsset.balanceOf(this.premiumPool.target) + const premiumForSSRP = await this.premiumPool.ssrpPremium(this.stakingAsset.target) + const premiumForSSIP = await this.premiumPool.ssipPremium(this.stakingAsset.target) + const premiumForBackBurn = await this.premiumPool.backBurnUnoPremium(this.stakingAsset.target) + expect(premiumPoolBalanceAfter).to.equal(getBigNumber("300", 6)) + expect(premiumForSSRP).to.equal(getBigNumber("30", 6)) + expect(premiumForSSIP).to.equal(getBigNumber("210", 6)) + expect(premiumForBackBurn).to.equal(getBigNumber("60", 6)) + }) + }) +}) diff --git a/test/fork-tests/salesPolicy.test.js b/test/fork-tests/salesPolicy.test.js new file mode 100644 index 0000000..02cf9ac --- /dev/null +++ b/test/fork-tests/salesPolicy.test.js @@ -0,0 +1,1781 @@ +const { expect } = require("chai") +const { ethers, network, upgrades } = require("hardhat") + +const { + getBigNumber, + getPaddedHexStrFromBN, + getPaddedHexStrFromBNArray, + getChainId, + getSignatureParameters, + advanceBlockTo, +} = require("../../../scripts/shared/utilities") + +const UniswapV2Router = require("../../../scripts/abis/UniswapV2Router.json") + +const { WETH_ADDRESS, UNISWAP_FACTORY_ADDRESS, UNISWAP_ROUTER_ADDRESS } = require("../../../scripts/shared/constants") +const OptimisticOracleV3Abi = require("../../../scripts/abis/OptimisticOracleV3.json") +const mockUnoAbi = require("../../../scripts/abis/MockUNO.json") +const mockWSYS = require("../../../scripts/abis/WETH9.json") +const riskPoolFactoryAbi = require("../../../scripts/abis/riskPoolFactoryAbi.json") +const MockOraclePriceFeedAbi = require("../../../scripts/abis/mockOracle.json") +const exchangeAgentAbi = require("../../../scripts/abis/exchangeAgentAbi.json") +const premiumPoolAbi = require("../../../scripts/abis/PremiumPool.json") +const capitalAgentAbi = require("../../../scripts/abis/CapitalAgent.json") +const salesPolicyFactoryAbi = require("../../../scripts/abis/salesPolicyFactoryAbi.json") +const singleSidedInsurancePoolAbi = require("../../../scripts/abis/SingleSidedInsurancePool.json") + +describe("SalesPolicy", function () { + before(async function () { + this.multisig = await ethers.getContractFactory("MultiSigWallet") + this.CapitalAgent = await ethers.getContractFactory("CapitalAgent") + this.CapitalAgent1 = await ethers.getContractFactory("CapitalAgent") + this.PremiumPool = await ethers.getContractFactory("PremiumPool") + this.Rewarder = await ethers.getContractFactory("Rewarder") + this.RewarderFactory = await ethers.getContractFactory("RewarderFactory") + this.RiskPoolFactory = await ethers.getContractFactory("RiskPoolFactory") + this.RiskPool = await ethers.getContractFactory("RiskPool") + this.ExchangeAgent = await ethers.getContractFactory("ExchangeAgent") + this.MockUNO = await ethers.getContractFactory("MockUNO") + this.stakingAsset = await ethers.getContractFactory("MockUSDT") + this.SalesPolicyFactory = await ethers.getContractFactory("SalesPolicyFactory") + this.SalesPolicy = await ethers.getContractFactory("SalesPolicy") + this.SingleSidedInsurancePool = await ethers.getContractFactory("SingleSidedInsurancePool") + this.MockOraclePriceFeed = await ethers.getContractFactory("PriceOracle") + this.EscalationManager = await ethers.getContractFactory("EscalationManager") + this.signers = await ethers.getSigners() + this.zeroAddress = ethers.ZeroAddress + this.routerContract = new ethers.Contract( + UNISWAP_ROUTER_ADDRESS.sepolia, + JSON.stringify(UniswapV2Router.abi), + ethers.provider, + ) + this.devWallet = this.signers[0] + this.chainId = (await ethers.provider.getNetwork()).chainId + this.domainType = [ + { name: "name", type: "string" }, + { name: "version", type: "string" }, + { name: "verifyingContract", type: "address" }, + { name: "salt", type: "bytes32" }, + ] + this.metaTransactionType = [ + { name: "nonce", type: "uint256" }, + { name: "from", type: "address" }, + { name: "functionSignature", type: "bytes" }, + ] + + this.owners = [ + this.signers[0].address, + this.signers[1].address, + this.signers[2].address, + this.signers[3].address, + this.signers[4].address, + ] + + this.numConfirmationsRequired = 2 + }) + + beforeEach(async function () { + this.mockUNO = await ethers.getContractAt(mockUnoAbi, "0x553A7E44043C98eAaAc71334d49Ecbec92916c36") + this.stakingAsset = await ethers.getContractAt(mockWSYS, "0x4200000000000000000000000000000000000006") + this.multisig = await ethers.getSigner("0x15E18e012cb6635b228e0DF0b6FC72627C8b2429") + await hre.network.provider.request({ + method: "hardhat_impersonateAccount", + params: ["0x15E18e012cb6635b228e0DF0b6FC72627C8b2429"], + }) + + this.admin = await ethers.getSigner("0x3ad22Ae2dE3dCF105E8DaA12acDd15bD47596863") + await hre.network.provider.request({ + method: "hardhat_impersonateAccount", + params: ["0x3ad22Ae2dE3dCF105E8DaA12acDd15bD47596863"], + }) + + // Account that has enought tokens to transfer all test account a bunch of times + this.stakingAssetMillionaire = await ethers.getSigner("0x3F0e40bC7e9cb5f46E906dAEd18651Fb6212Aa8E") + await hre.network.provider.request({ + method: "hardhat_impersonateAccount", + params: ["0x3F0e40bC7e9cb5f46E906dAEd18651Fb6212Aa8E"], + }) + await network.provider.send("hardhat_setBalance", [ + "0x3F0e40bC7e9cb5f46E906dAEd18651Fb6212Aa8E", + "0x900000000000000000000000000000000000", + ]) + + await this.stakingAssetMillionaire.sendTransaction({ to: this.stakingAsset, value: getBigNumber("50000000") }) + console.log(await this.stakingAsset.balanceOf(this.stakingAssetMillionaire.address)) + + this.UNOMillionaire = await ethers.getSigner("0xBB6Ae6BaE1356226cfFE33d131EE66194FE4E0aD") + await hre.network.provider.request({ + method: "hardhat_impersonateAccount", + params: ["0xBB6Ae6BaE1356226cfFE33d131EE66194FE4E0aD"], + }) + + await this.stakingAssetMillionaire.sendTransaction({ + to: this.UNOMillionaire.address, + value: ethers.parseUnits("1", "ether"), + }) + await this.mockUNO.connect(this.signers[0]).mint(getBigNumber("50000"), { from: this.signers[0] }) + await this.mockUNO.connect(this.signers[1]).mint(getBigNumber("50000"), { from: this.signers[1] }) + await this.mockUNO.connect(this.signers[2]).mint(getBigNumber("50000"), { from: this.signers[2] }) + + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[0], getBigNumber("500000")) + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[1], getBigNumber("500000")) + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[2], getBigNumber("500000")) + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[3], getBigNumber("500000")) + await this.stakingAsset.connect(this.stakingAssetMillionaire).transfer(this.signers[4], getBigNumber("500000")) + await this.stakingAssetMillionaire.sendTransaction({ to: this.multisig, value: getBigNumber("5000") }) + + this.masterChefOwner = this.signers[0].address + this.claimAssessor = this.signers[3].address + this.riskPoolFactory = await ethers.getContractAt(riskPoolFactoryAbi, "0x188A7092f2020088052D589F1C626Bb955AB5436") + + await this.mockUNO.connect(this.signers[1]).mint(getBigNumber("3000000"), { from: this.signers[1] }) + await this.mockUNO.connect(this.signers[2]).mint(getBigNumber("3000000"), { from: this.signers[2] }) + const assetArray = [this.stakingAsset.address, this.mockUNO.address, this.zeroAddress] + const timestamp = new Date().getTime() + + await ( + await this.mockUNO + .connect(this.signers[0]) + .approve(UNISWAP_ROUTER_ADDRESS.sepolia, getBigNumber("10000000"), { from: this.signers[0].address }) + ).wait() + await ( + await this.stakingAsset + .connect(this.signers[0]) + .approve(UNISWAP_ROUTER_ADDRESS.sepolia, getBigNumber("10000000"), { from: this.signers[0].address }) + ).wait() + + await ( + await this.routerContract + .connect(this.signers[0]) + .addLiquidity( + this.mockUNO.target, + this.stakingAsset.target, + getBigNumber("3000000"), + getBigNumber("3000", 6), + getBigNumber("3000000"), + getBigNumber("3000", 6), + this.signers[0].address, + timestamp, + { from: this.signers[0].address, gasLimit: 9999999 }, + ) + ).wait() + + this.mockOraclePriceFeed = await ethers.getContractAt(MockOraclePriceFeedAbi, "0x14eF9C6cD5A8C78af407cEcCA3E4668e466F2B18") + + this.exchangeAgent = await ethers.getContractAt(exchangeAgentAbi, "0x83f618d714B9464C8e63F1d95592BaAa2d51a54E") + + this.premiumPool = await ethers.getContractAt(premiumPoolAbi, "0xc94002a997d4e4E90D423778170588f695c5f242") + + this.capitalAgent = await ethers.getContractAt(capitalAgentAbi, "0xB754842C7b0FA838e08fe5C028dB0ecd919f2d30") + + this.salesPolicyFactory = await ethers.getContractAt(salesPolicyFactoryAbi, "0xD86D9be9143Dc514340C73502f2B77d93d0B11f4") + + // add 2 protocols + await this.salesPolicyFactory.connect(this.multisig).addProtocol(this.signers[7].address) + await this.salesPolicyFactory.connect(this.multisig).addProtocol(this.signers[8].address) + await this.salesPolicyFactory.connect(this.multisig).addProtocol(this.signers[5].address) + + // await this.salesPolicyFactory.addProtocol(this.signers[idx + 1].address) + // await (await this.premiumPool.addCurrency(this.stakingAsset.address)).wait() + await this.salesPolicyFactory.connect(this.multisig).setSignerInPolicy(this.signers[0].address) + + this.optimisticOracleV3 = await ethers.getContractAt(OptimisticOracleV3Abi, "0x9923D42eF695B5dd9911D05Ac944d4cAca3c4EAB") + this.escalationManager = await this.EscalationManager.deploy(this.optimisticOracleV3.target, this.signers[0].address) + + this.singleSidedInsurancePool = await ethers.getContractAt( + singleSidedInsurancePoolAbi, + "0x3B61743180857c9D898c336b1604f4742887aa74", + ) + + await this.stakingAsset.approve(this.singleSidedInsurancePool.target, getBigNumber("1000000")) + await this.stakingAsset + .connect(this.signers[1]) + .approve(this.singleSidedInsurancePool.target, getBigNumber("1000000"), { from: this.signers[1].address }) + + await this.singleSidedInsurancePool.connect(this.signers[0]).enterInPool(getBigNumber("100000")) + + // block number when deposit in pool for the first time + const beforeBlockNumber = await ethers.provider.getBlockNumber() + + await advanceBlockTo(beforeBlockNumber + 10000) + // another one will deposit in pool with the same amount + await this.singleSidedInsurancePool + .connect(this.signers[1]) + .enterInPool(getBigNumber("100000"), { from: this.signers[1].address }) + + await this.capitalAgent.connect(this.admin).setMCR(getBigNumber("1", 16)) + + this.salesPolicyAddress = await this.salesPolicyFactory.salesPolicy() + this.salesPolicy = await this.SalesPolicy.attach(await this.salesPolicyFactory.salesPolicy()) + }) + + describe("Sales policy Action", function () { + // it("Should update premium pool address", async function () { + // const premiumPoolAddressBefore = await this.salesPolicyFactory.premiumPool() + // await this.salesPolicyFactory.connect(this.multisig).setPremiumPool(this.signers[3].address) + // const premiumPoolAddressAfter = await this.salesPolicyFactory.premiumPool() + // expect(premiumPoolAddressBefore).to.be.not.equal(premiumPoolAddressAfter) + // expect(premiumPoolAddressAfter).to.equal(this.signers[3].address) + // }) + + it("Should buy policy in USDT", async function () { + let hexData + const currentDate = new Date() + timestamp = (await ethers.provider.getBlock("latest")).timestamp + const privateKey = process.env.PRIVATE_KEY + + const protocol = await this.salesPolicyFactory.getProtocol(1) + + // await (await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.address)).wait() + // await (await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address)).wait() + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("1000000000"))).wait() + // await (await this.premiumPool.addWhiteList(this.salesPolicy.address)).wait() + // await (await this.salesPolicyFactory.updateCheckIfProtocolInWhitelistArray(true)).wait() + // await (await this.salesPolicyFactory.setBlackListProtocolById(0)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.salesPolicy.target.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[0].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const chainId = await getChainId() + + const functionSignature = await this.salesPolicy + .connect(this.multisig) + .interface.encodeFunctionData("buyPolicy", [ + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + ]) + + const domainData = { + name: "BuyPolicyMetaTransaction", + version: "1", + verifyingContract: this.salesPolicyAddress, + salt: getPaddedHexStrFromBN(chainId), + } + + const types = { + MetaTransaction: [ + { name: "nonce", type: "uint256" }, + { name: "from", type: "address" }, + { name: "functionSignature", type: "bytes" }, + ], + } + + const message = { + nonce: Number(nonce), + from: this.signers[0].address, + functionSignature: functionSignature, + } + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + const signature = await this.signers[0].signTypedData(domainData, types, message) + + let { r, s, v } = getSignatureParameters(signature) + try { + let tx = await this.salesPolicy + .connect(this.signers[0]) + .executeMetaTransaction(this.signers[0].address, functionSignature, r, s, v, { + gasLimit: 1000000, + }) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + const premiumPoolBalanceAfter = await this.stakingAsset.balanceOf(this.premiumPool.target) + //const premiumForSSRP = await this.premiumPool.ssrpPremium(this.stakingAsset.target) + // const premiumForSSIP = await this.premiumPool.ssipPremium(this.stakingAsset.target) + const premiumForBackBurn = await this.premiumPool.backBurnUnoPremium(this.stakingAsset.target) + expect(premiumPoolBalanceAfter).to.equal(getBigNumber("300", 6)) + //expect(premiumForSSRP).to.equal(getBigNumber("30", 6)) + // expect(premiumForSSIP).to.equal(getBigNumber("210", 6)) + expect(premiumForBackBurn).to.equal(getBigNumber("60", 6)) + + console.log("this.txIdx", this.txIdx) + }) + it("Should buy policy in USDT directly", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + await this.salesPolicyFactory.connect(this.multisig).interface.approvePremiumInPolicy(this.stakingAsset.target) + + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + // await (await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.address)).wait() + // await (await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address)).wait() + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("100000000"))).wait() + // await (await this.premiumPool.addWhiteList(this.salesPolicy.address)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + try { + let tx = await this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + console.log("this.salesPolicyAddress", this.salesPolicyAddress) + console.log( + "await this.stakingAsset.balanceOf(this.salesPolicyAddress)", + await this.stakingAsset.balanceOf(this.salesPolicyAddress), + ) + console.log("await this.stakingAsset.balanceOf(this.premium)", await this.stakingAsset.balanceOf(this.premiumPool.target)) + + const premiumPoolBalanceAfter = await this.stakingAsset.balanceOf(this.premiumPool.target) + const premiumForSSRP = await this.premiumPool.ssrpPremium(this.stakingAsset.target) + const premiumForSSIP = await this.premiumPool.ssipPremium(this.stakingAsset.target) + const premiumForBackBurn = await this.premiumPool.backBurnUnoPremium(this.stakingAsset.target) + expect(premiumPoolBalanceAfter).to.equal(getBigNumber("300", 6)) + expect(premiumForSSRP).to.equal(getBigNumber("30", 6)) + expect(premiumForSSIP).to.equal(getBigNumber("210", 6)) + expect(premiumForBackBurn).to.equal(getBigNumber("60", 6)) + }) + it("Should revert when invalid signer buy policy", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + // await (await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.address)).wait() + // await (await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address)).wait() + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("100000000"))).wait() + // await (await this.premiumPool.addWhiteList(this.salesPolicy.address)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[1].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + await expect( + this.salesPolicy + .connect(this.signers[10]) + .buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ), + ).to.be.revertedWith("UnoRe: invalid signer") + }) + + it("Should buy policy in ETH ", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const value = await this.exchangeAgent.getETHAmountForUSDC(policyPrice) + + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.zeroAddress.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + try { + let tx = await this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.zeroAddress, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + value: value, + }, + ) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + + // const premiumPoolBalanceAfter = await this.ethers.provider.getBalance(this.premiumPool.target) + const premiumForSSRP = await this.premiumPool.ssrpPremiumEth() + const premiumForSSIP = await this.premiumPool.ssipPremiumEth() + const premiumForBackBurn = await this.premiumPool.backBurnPremiumEth() + expect(premiumForSSRP).to.equal(13780) + + expect(premiumForSSIP).to.equal(96462) + + expect(premiumForBackBurn).to.equal(27562) + }) + it("Should revert when less premium paid in ETH", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.zeroAddress.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.zeroAddress, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + value: 0, + }, + ), + ).to.be.revertedWith("UnoRe: insufficient paid") + }) + it("Should revert when protocol in blacklist", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("updateCheckIfProtocolInWhitelistArray", [ + true, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setBlackListProtocolByAddress", [ + this.signers[1].address, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.zeroAddress.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + const value = await this.exchangeAgent.getETHAmountForUSDC(policyPrice) + + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.zeroAddress, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + value: value, + }, + ), + ).to.be.revertedWith("UnoRe: unavailable policy") + }) + + it("Should revert on Policy purchase cancelled when no remaining insurance capacity available", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + //setting MLR to 1 + let encodedCallData = await this.capitalAgent.interface.encodeFunctionData("setMLR", [1]) + + await expect(this.multisig.submitTransaction(this.capitalAgent.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.capitalAgent.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + const amount = await this.capitalAgent.totalCapitalStaked() + await (await this.stakingAsset.approve(this.salesPolicyAddress, amount)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [amount, amount] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = await ethers.Signature.from(flatSig) + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ), + ).to.be.revertedWith("UnoRe: maximum leverage overflow") + }) + it("Decrease in capacity after buying policy", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("100000000"))).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const totalCoverageAmount = coverageAmount.reduce((acc, currentValue) => acc + currentValue, getBigNumber("0")) + console.log(totalCoverageAmount) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + const totalUtilizedAmountBefore = await this.capitalAgent.totalUtilizedAmount() + + try { + let tx = await this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + const totalUtilizedAmountAfter = await this.capitalAgent.totalUtilizedAmount() + console.log(totalUtilizedAmountAfter, totalUtilizedAmountBefore) + expect(totalUtilizedAmountAfter - totalUtilizedAmountBefore).to.equal(totalCoverageAmount) + }) + it("Increase in capacity after users stakes more capital in new pools.", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + //const protocol = await this.salesPolicyFactory.getProtocol(0); + + //setting MLR to 1 + let encodedCallData = await this.capitalAgent.interface.encodeFunctionData("setMLR", [100]) + + await expect(this.multisig.submitTransaction(this.capitalAgent.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.capitalAgent.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + const amount = await this.capitalAgent.totalCapitalStaked() + await (await this.stakingAsset.approve(this.salesPolicyAddress, amount)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 4), getBigNumber("100", 4)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ), + ).to.be.revertedWith("UnoRe: maximum leverage overflow") + + //enter in pools + await this.mockUNO.approve(this.singleSidedInsurancePool.target, getBigNumber("2000000")) + await this.mockUNO + .connect(this.signers[1]) + .approve(this.singleSidedInsurancePool.target, getBigNumber("2000000"), { from: this.signers[1].address }) + await this.singleSidedInsurancePool.enterInPool(getBigNumber("200000")) + + // another one will deposit in pool with the same amount + await this.singleSidedInsurancePool + .connect(this.signers[1]) + .enterInPool(getBigNumber("200000"), { from: this.signers[1].address }) + + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ), + ).not.to.be.reverted + }) + it("Increase in capacity after policy expiration", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + console.log("this.signers[5].address", this.signers[5].address) + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("100000000"))).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + let nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const totalCoverageAmount = coverageAmount.reduce((acc, currentValue) => acc + currentValue, getBigNumber("0")) + console.log(totalCoverageAmount) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + try { + let tx = await this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + }, + ) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + + let totalUtilizedAmountBefore = await this.capitalAgent.totalUtilizedAmount() + //console.log('totalUtilizedAmountBefore', totalUtilizedAmountBefore); + + const coverageBefore = await this.salesPolicy.getPolicyData(1) + const _coverStartAt = coverageBefore[2] + const _coverageDuration = coverageBefore[1] + const coveregeAmountBefore = coverageBefore[0] + + await hre.ethers.provider.send("evm_increaseTime", [Number(_coverStartAt) + Number(_coverageDuration) + 100]) + + encodedCallData = await this.capitalAgent.interface.encodeFunctionData("updatePolicyStatus", [1]) + + await expect(this.multisig.submitTransaction(this.capitalAgent.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.capitalAgent.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + let totalUtilizedAmountAfter = await this.capitalAgent.totalUtilizedAmount() + //console.log('totalUtilizedAmountAfter', totalUtilizedAmountAfter); + expect(totalUtilizedAmountBefore - totalUtilizedAmountAfter).to.equal(coveregeAmountBefore) + expect(totalUtilizedAmountAfter).to.equal(getBigNumber("100", 6)) + }) + it("Should revert when signature time expired", async function () { + this.txIdx = this.txIdx1 + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const protocol = await this.salesPolicyFactory.getProtocol(0) + + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[5].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + const nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.zeroAddress.slice(2) + + paddedNonceHexStr.slice(2) + + this.signers[0].address.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[5].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + const value = await this.exchangeAgent.getETHAmountForUSDC(policyPrice) + + await hre.ethers.provider.send("evm_increaseTime", [Number(deadline)]) + + await expect( + this.salesPolicy.buyPolicy( + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.zeroAddress, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + { + gasLimit: 1000000, + value: value, + }, + ), + ).to.be.revertedWith("UnoRe: signature expired") + }) + it("Should buy policy in USDT after proxy upgrade", async function () { + this.txIdx = this.txIdx1 + this.capitalAgent = await upgrades.upgradeProxy(this.capitalAgent.target, this.CapitalAgent1) + let hexData + const currentDate = new Date() + let timestamp = (await ethers.provider.getBlock("latest")).timestamp + const privateKey = process.env.PRIVATE_KEY + + const protocol = await this.salesPolicyFactory.getProtocol(1) + let encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("approvePremiumInPolicy", [ + this.stakingAsset.target, + ]) + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.salesPolicyFactory.interface.encodeFunctionData("setSignerInPolicy", [this.signers[0].address]) + + await expect(this.multisig.submitTransaction(this.salesPolicyFactory.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.salesPolicyFactory.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + encodedCallData = await this.premiumPool.interface.encodeFunctionData("addWhiteList", [this.salesPolicy.target]) + + await expect(this.multisig.submitTransaction(this.premiumPool.target, 0, encodedCallData)) + .to.emit(this.multisig, "SubmitTransaction") + .withArgs(this.signers[0].address, this.txIdx, this.premiumPool.target, 0, encodedCallData) + + await expect(this.multisig.confirmTransaction(this.txIdx, false)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[0].address, this.txIdx) + + await expect(this.multisig.connect(this.signers[1]).confirmTransaction(this.txIdx, true)) + .to.emit(this.multisig, "ConfirmTransaction") + .withArgs(this.signers[1].address, this.txIdx) + + this.txIdx++ + + // await (await this.salesPolicyFactory.approvePremiumInPolicy(this.stakingAsset.address)).wait() + // await (await this.salesPolicyFactory.setSignerInPolicy(this.signers[5].address)).wait() + await (await this.stakingAsset.approve(this.salesPolicyAddress, getBigNumber("1000000000"))).wait() + // await (await this.premiumPool.addWhiteList(this.salesPolicy.address)).wait() + // await (await this.salesPolicyFactory.updateCheckIfProtocolInWhitelistArray(true)).wait() + // await (await this.salesPolicyFactory.setBlackListProtocolById(0)).wait() + + // prepare sign data + const assets = [this.stakingAsset.target, this.stakingAsset.target] + const policyPrice = getBigNumber("300", 6) + const protocols = [this.signers[0].address, this.signers[1].address] + const coverageDuration = [getBigNumber(`${24 * 3600 * 30}`, 1), getBigNumber(`${24 * 3600 * 15}`, 1)] + const coverageAmount = [getBigNumber("100", 6), getBigNumber("100", 6)] + const deadline = getBigNumber(`${timestamp - 7 * 3600}`, 0) + let nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const paddedPolicyPriceHexStr = getPaddedHexStrFromBN(policyPrice) + const paddedProtocolsHexStr = + "000000000000000000000000" + protocols[0].slice(2) + "000000000000000000000000" + protocols[1].slice(2) + const paddedCoverageDurationHexStr = getPaddedHexStrFromBNArray(coverageDuration) + const paddedCoverageAmountHexStr = getPaddedHexStrFromBNArray(coverageAmount) + const paddedDeadlineHexStr = getPaddedHexStrFromBN(deadline) + const paddedNonceHexStr = getPaddedHexStrFromBN(nonce) + const paddedChainId = getPaddedHexStrFromBN(this.chainId) + + hexData = + "0x" + + paddedPolicyPriceHexStr.slice(2) + + paddedProtocolsHexStr + + paddedCoverageDurationHexStr.slice(2) + + paddedCoverageAmountHexStr.slice(2) + + paddedDeadlineHexStr.slice(2) + + this.stakingAsset.target.slice(2) + + paddedNonceHexStr.slice(2) + + this.salesPolicy.target.slice(2) + + paddedChainId.slice(2) + + const flatSig = await this.signers[0].signMessage(ethers.getBytes(ethers.keccak256(hexData))) + const splitSig = ethers.Signature.from(flatSig) + + const chainId = await getChainId() + + const functionSignature = await this.salesPolicy.interface.encodeFunctionData("buyPolicy", [ + assets, + protocols, + coverageAmount, + coverageDuration, + policyPrice, + deadline, + this.stakingAsset.target, + splitSig.r, + splitSig.s, + splitSig.v, + nonce, + ]) + + const domainData = { + name: "BuyPolicyMetaTransaction", + version: "1", + verifyingContract: this.salesPolicyAddress, + salt: getPaddedHexStrFromBN(chainId), + } + + const types = { + MetaTransaction: [ + { name: "nonce", type: "uint256" }, + { name: "from", type: "address" }, + { name: "functionSignature", type: "bytes" }, + ], + } + + nonce = await this.salesPolicy.getNonce(this.signers[0].address) + const message = { + nonce: Number(nonce), + from: this.signers[0].address, + functionSignature: functionSignature, + } + + const premiumPoolBalanceBefore = await this.stakingAsset.balanceOf(this.premiumPool.target) + expect(premiumPoolBalanceBefore).to.equal(0) + + const signature = await this.signers[0].signTypedData(domainData, types, message) + let { r, s, v } = getSignatureParameters(signature) + try { + let tx = await this.salesPolicy.executeMetaTransaction(this.signers[0].address, functionSignature, r, s, v, { + gasLimit: 1000000, + }) + const receipt = await tx.wait() + console.log("metatransaction receipt", receipt.status) + } catch (error) { + console.log("[error]", error) + } + const premiumPoolBalanceAfter = await this.stakingAsset.balanceOf(this.premiumPool.target) + const premiumForSSRP = await this.premiumPool.ssrpPremium(this.stakingAsset.target) + const premiumForSSIP = await this.premiumPool.ssipPremium(this.stakingAsset.target) + const premiumForBackBurn = await this.premiumPool.backBurnUnoPremium(this.stakingAsset.target) + expect(premiumPoolBalanceAfter).to.equal(getBigNumber("300", 6)) + expect(premiumForSSRP).to.equal(getBigNumber("30", 6)) + expect(premiumForSSIP).to.equal(getBigNumber("210", 6)) + expect(premiumForBackBurn).to.equal(getBigNumber("60", 6)) + }) + }) +}) diff --git a/yarn.lock b/yarn.lock index f560ce6..d38cebd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -61,7 +61,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@^7.0.0", "@babel/core@^7.12.13": +"@babel/core@^7.12.13": version "7.23.7" resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz" integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== @@ -354,21 +354,6 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.7.0", "@ethersproject/abi@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" - integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/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" @@ -384,18 +369,22 @@ "@ethersproject/properties" ">=5.0.0-beta.131" "@ethersproject/strings" ">=5.0.0-beta.130" -"@ethersproject/abstract-provider@^5.0.8": - version "5.0.8" +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== dependencies: - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/networks" "^5.0.7" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/transactions" "^5.0.9" - "@ethersproject/web" "^5.0.12" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -408,16 +397,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@^5.0.10": - version "5.0.10" - dependencies: - "@ethersproject/abstract-provider" "^5.0.8" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - -"@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -428,7 +408,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0", "@ethersproject/address@5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -439,28 +419,14 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/address@^5.0.9", "@ethersproject/address@>=5.0.0-beta.128": - version "5.0.9" - dependencies: - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/rlp" "^5.0.7" - -"@ethersproject/base64@^5.0.7": - version "5.0.7" - dependencies: - "@ethersproject/bytes" "^5.0.9" - -"@ethersproject/base64@^5.7.0", "@ethersproject/base64@5.7.0": +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@^5.7.0", "@ethersproject/basex@5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -468,14 +434,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@^5.0.13", "@ethersproject/bignumber@>=5.0.0-beta.130": - version "5.0.13" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - bn.js "^4.4.0" - -"@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -484,31 +443,21 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@^5.0.9", "@ethersproject/bytes@>=5.0.0-beta.129": - version "5.0.9" - dependencies: - "@ethersproject/logger" "^5.0.8" - -"@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@^5.0.8", "@ethersproject/constants@>=5.0.0-beta.128": - version "5.0.8" - dependencies: - "@ethersproject/bignumber" "^5.0.13" - -"@ethersproject/constants@^5.7.0", "@ethersproject/constants@5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@^5.7.0", "@ethersproject/contracts@5.7.0": +"@ethersproject/contracts@5.7.0", "@ethersproject/contracts@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== @@ -524,7 +473,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@^5.7.0", "@ethersproject/hash@5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -539,19 +488,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hash@>=5.0.0-beta.128": - version "5.0.10" - dependencies: - "@ethersproject/abstract-signer" "^5.0.10" - "@ethersproject/address" "^5.0.9" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/strings" "^5.0.8" - -"@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@5.7.0": +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== @@ -569,7 +506,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@^5.7.0", "@ethersproject/json-wallets@5.7.0": +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== @@ -588,13 +525,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.0.7", "@ethersproject/keccak256@>=5.0.0-beta.127": - version "5.0.7" - dependencies: - "@ethersproject/bytes" "^5.0.9" - js-sha3 "0.5.7" - -"@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -602,27 +533,19 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.0.8", "@ethersproject/logger@>=5.0.0-beta.129": - version "5.0.8" - -"@ethersproject/logger@^5.7.0", "@ethersproject/logger@5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@^5.0.7": - version "5.0.7" - dependencies: - "@ethersproject/logger" "^5.0.8" - -"@ethersproject/networks@^5.7.0", "@ethersproject/networks@5.7.1": +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@^5.7.0", "@ethersproject/pbkdf2@5.7.0": +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== @@ -630,19 +553,14 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@^5.0.7", "@ethersproject/properties@>=5.0.0-beta.131": - version "5.0.7" - dependencies: - "@ethersproject/logger" "^5.0.8" - -"@ethersproject/properties@^5.7.0", "@ethersproject/properties@5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@^5.7.2", "@ethersproject/providers@5.7.2": +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -668,7 +586,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@^5.7.0", "@ethersproject/random@5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -676,13 +594,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@^5.0.7": - version "5.0.7" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - -"@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@5.7.0": +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== @@ -690,7 +602,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@^5.7.0", "@ethersproject/sha2@5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -699,15 +611,7 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@^5.0.8": - version "5.0.8" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - elliptic "6.5.3" - -"@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@5.7.0": +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== @@ -719,7 +623,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@^5.7.0", "@ethersproject/solidity@5.7.0": +"@ethersproject/solidity@5.7.0", "@ethersproject/solidity@^5.0.9", "@ethersproject/solidity@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== @@ -731,14 +635,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@^5.0.8", "@ethersproject/strings@>=5.0.0-beta.130": - version "5.0.8" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/constants" "^5.0.8" - "@ethersproject/logger" "^5.0.8" - -"@ethersproject/strings@^5.7.0", "@ethersproject/strings@5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -747,20 +644,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.9": - version "5.0.9" - dependencies: - "@ethersproject/address" "^5.0.9" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/constants" "^5.0.8" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/rlp" "^5.0.7" - "@ethersproject/signing-key" "^5.0.8" - -"@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -784,7 +668,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/wallet@^5.7.0", "@ethersproject/wallet@5.7.0": +"@ethersproject/wallet@5.7.0", "@ethersproject/wallet@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== @@ -805,16 +689,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@^5.0.12": - version "5.0.12" - dependencies: - "@ethersproject/base64" "^5.0.7" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/strings" "^5.0.8" - -"@ethersproject/web@^5.7.0", "@ethersproject/web@5.7.1": +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -825,7 +700,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@^5.7.0", "@ethersproject/wordlists@5.7.0": +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== @@ -873,6 +748,20 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@ljharb/resumer@~0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ljharb/resumer/-/resumer-0.0.1.tgz#8a940a9192dd31f6a1df17564bbd26dc6ad3e68d" + integrity sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw== + dependencies: + "@ljharb/through" "^2.3.9" + +"@ljharb/through@^2.3.9", "@ljharb/through@~2.3.9": + version "2.3.13" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.13.tgz#b7e4766e0b65aa82e529be945ab078de79874edc" + integrity sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ== + dependencies: + call-bind "^1.0.7" + "@metamask/abi-utils@^2.0.4": version "2.0.4" resolved "https://registry.npmjs.org/@metamask/abi-utils/-/abi-utils-2.0.4.tgz" @@ -924,106 +813,87 @@ semver "^7.5.4" uuid "^9.0.1" -"@noble/curves@~1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz" - integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== dependencies: - "@noble/hashes" "1.3.1" + "@noble/hashes" "1.3.2" -"@noble/curves@~1.4.0", "@noble/curves@1.4.2": +"@noble/curves@1.4.2", "@noble/curves@~1.4.0": version "1.4.2" resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz" integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== dependencies: "@noble/hashes" "1.4.0" -"@noble/curves@1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz" - integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== - dependencies: - "@noble/hashes" "1.3.1" - -"@noble/curves@1.2.0": +"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" - integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== - dependencies: - "@noble/hashes" "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" + integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@^1.3.1", "@noble/hashes@~1.3.0", "@noble/hashes@1.3.2": +"@noble/hashes@1.3.2", "@noble/hashes@^1.3.1": version "1.3.2" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== -"@noble/hashes@~1.2.0", "@noble/hashes@1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" - integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== - -"@noble/hashes@~1.3.1", "@noble/hashes@1.3.1": - version "1.3.1" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz" - integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== - -"@noble/hashes@~1.4.0", "@noble/hashes@1.4.0": +"@noble/hashes@1.4.0", "@noble/hashes@~1.4.0": version "1.4.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== -"@noble/secp256k1@~1.7.0", "@noble/secp256k1@1.7.1": +"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": version "1.7.1" resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== -"@nomicfoundation/edr-darwin-arm64@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.4.1.tgz" - integrity sha512-XuiUUnWAVNw7JYv7nRqDWfpBm21HOxCRBQ8lQnRnmiets9Ss2X5Ul9mvBheIPh/D0wBzwJ8TRtsSrorpwE79cA== +"@nomicfoundation/edr-darwin-arm64@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.5.2.tgz#72f7a826c9f0f2c91308edca562de3b9484ac079" + integrity sha512-Gm4wOPKhbDjGTIRyFA2QUAPfCXA1AHxYOKt3yLSGJkQkdy9a5WW+qtqKeEKHc/+4wpJSLtsGQfpzyIzggFfo/A== -"@nomicfoundation/edr-darwin-x64@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.4.1.tgz" - integrity sha512-N1MfJqEX5ixaXlyyrHnaYxzwIT27Nc/jUgLI7ts4/9kRvPTvyZRYmXS1ciKhmUFr/WvFckTCix2RJbZoGGtX7g== +"@nomicfoundation/edr-darwin-x64@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.5.2.tgz#6d0fedb219d664631c6feddc596ab8c3bbc36fa8" + integrity sha512-ClyABq2dFCsrYEED3/UIO0c7p4H1/4vvlswFlqUyBpOkJccr75qIYvahOSJRM62WgUFRhbSS0OJXFRwc/PwmVg== -"@nomicfoundation/edr-linux-arm64-gnu@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.4.1.tgz" - integrity sha512-bSPOfmcFjJwDgWOV5kgZHeqg2OWu1cINrHSGjig0aVHehjcoX4Sgayrj6fyAxcOV5NQKA6WcyTFll6NrCxzWRA== +"@nomicfoundation/edr-linux-arm64-gnu@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.5.2.tgz#60e4d52d963141bc2bb4a02639dc590a7fbdda2f" + integrity sha512-HWMTVk1iOabfvU2RvrKLDgtFjJZTC42CpHiw2h6rfpsgRqMahvIlx2jdjWYzFNy1jZKPTN1AStQ/91MRrg5KnA== -"@nomicfoundation/edr-linux-arm64-musl@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.4.1.tgz" - integrity sha512-F/+DgOdeBFQDrk+SX4aFffJFBgJfd75ZtE2mjcWNAh/qWiS7NfUxdQX/5OvNo/H6EY4a+3bZH6Bgzqg4mEWvMw== +"@nomicfoundation/edr-linux-arm64-musl@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.5.2.tgz#6676a09eab57c435a16ffc144658c896acca9baa" + integrity sha512-CwsQ10xFx/QAD5y3/g5alm9+jFVuhc7uYMhrZAu9UVF+KtVjeCvafj0PaVsZ8qyijjqVuVsJ8hD1x5ob7SMcGg== -"@nomicfoundation/edr-linux-x64-gnu@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.4.1.tgz" - integrity sha512-POHhTWczIXCPhzKtY0Vt/l+VCqqCx5gNR5ErwSrNnLz/arfQobZFAU+nc61BX3Jch82TW8b3AbfGI73Kh7gO0w== +"@nomicfoundation/edr-linux-x64-gnu@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.5.2.tgz#f558d9697ce961410e7a7468f9ab8c8a601b9df6" + integrity sha512-CWVCEdhWJ3fmUpzWHCRnC0/VLBDbqtqTGTR6yyY1Ep3S3BOrHEAvt7h5gx85r2vLcztisu2vlDq51auie4IU1A== -"@nomicfoundation/edr-linux-x64-musl@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.4.1.tgz" - integrity sha512-uu8oNp4Ozg3H1x1We0FF+rwXfFiAvsOm5GQ+OBx9YYOXnfDPWqguQfGIkhrti9GD0iYhfQ/WOG5wvp0IzzgGSg== +"@nomicfoundation/edr-linux-x64-musl@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.5.2.tgz#c9c9cbb2997499f75c1d022be724b0551d44569f" + integrity sha512-+aJDfwhkddy2pP5u1ISg3IZVAm0dO836tRlDTFWtvvSMQ5hRGqPcWwlsbobhDQsIxhPJyT7phL0orCg5W3WMeA== -"@nomicfoundation/edr-win32-x64-msvc@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.4.1.tgz" - integrity sha512-PaZHFw455z89ZiKYNTnKu+/TiVZVRI+mRJsbRTe2N0VlYfUBS1o2gdXBM12oP1t198HR7xQwEPPAslTFxGBqHA== +"@nomicfoundation/edr-win32-x64-msvc@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.5.2.tgz#f16db88bf4fe09a996af0a25096e09deecb72bfa" + integrity sha512-CcvvuA3sAv7liFNPsIR/68YlH6rrybKzYttLlMr80d4GKJjwJ5OKb3YgE6FdZZnOfP19HEHhsLcE0DPLtY3r0w== -"@nomicfoundation/edr@^0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.4.1.tgz" - integrity sha512-NgrMo2rI9r28uidumvd+K2/AJLdxtXsUlJr3hj/pM6S1FCd/HiWaLeLa/cjCVPcE2u1rYAa3W6UFxLCB7S5Dhw== +"@nomicfoundation/edr@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.5.2.tgz#e8c7b3d3dd4a312432ab3930dec60f76dc5c4926" + integrity sha512-hW/iLvUQZNTVjFyX/I40rtKvvDOqUEyIi96T28YaLfmPL+3LW2lxmYLUXEJ6MI14HzqxDqrLyhf6IbjAa2r3Dw== dependencies: - "@nomicfoundation/edr-darwin-arm64" "0.4.1" - "@nomicfoundation/edr-darwin-x64" "0.4.1" - "@nomicfoundation/edr-linux-arm64-gnu" "0.4.1" - "@nomicfoundation/edr-linux-arm64-musl" "0.4.1" - "@nomicfoundation/edr-linux-x64-gnu" "0.4.1" - "@nomicfoundation/edr-linux-x64-musl" "0.4.1" - "@nomicfoundation/edr-win32-x64-msvc" "0.4.1" + "@nomicfoundation/edr-darwin-arm64" "0.5.2" + "@nomicfoundation/edr-darwin-x64" "0.5.2" + "@nomicfoundation/edr-linux-arm64-gnu" "0.5.2" + "@nomicfoundation/edr-linux-arm64-musl" "0.5.2" + "@nomicfoundation/edr-linux-x64-gnu" "0.5.2" + "@nomicfoundation/edr-linux-x64-musl" "0.5.2" + "@nomicfoundation/edr-win32-x64-msvc" "0.5.2" "@nomicfoundation/ethereumjs-common@4.0.4": version "4.0.4" @@ -1065,7 +935,7 @@ deep-eql "^4.0.1" ordinal "^1.0.3" -"@nomicfoundation/hardhat-ethers@^3.0.0", "@nomicfoundation/hardhat-ethers@^3.0.2", "@nomicfoundation/hardhat-ethers@^3.0.5": +"@nomicfoundation/hardhat-ethers@^3.0.5": version "3.0.5" resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz" integrity sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw== @@ -1087,7 +957,7 @@ dependencies: ethereumjs-util "^7.1.4" -"@nomicfoundation/hardhat-verify@^2.0.0", "@nomicfoundation/hardhat-verify@^2.0.2": +"@nomicfoundation/hardhat-verify@^2.0.2": version "2.0.3" resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.3.tgz" integrity sha512-ESbRu9by53wu6VvgwtMtm108RSmuNsVqXtzg061D+/4R7jaWh/Wl/8ve+p6SdDX7vA1Z3L02hDO1Q3BY4luLXQ== @@ -1102,6 +972,91 @@ table "^6.8.0" undici "^5.14.0" +"@nomicfoundation/slang-darwin-arm64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-darwin-arm64/-/slang-darwin-arm64-0.17.0.tgz#8cded3c24322624e3b6618760caba8e840bd1c1d" + integrity sha512-O0q94EUtoWy9A5kOTOa9/khtxXDYnLqmuda9pQELurSiwbQEVCPQL8kb34VbOW+ifdre66JM/05Xw9JWhIZ9sA== + +"@nomicfoundation/slang-darwin-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-darwin-x64/-/slang-darwin-x64-0.17.0.tgz#6ebeb33a2ced89fc6023f6cda4af96403486038a" + integrity sha512-IaDbHzvT08sBK2HyGzonWhq1uu8IxdjmTqAWHr25Oh/PYnamdi8u4qchZXXYKz/DHLoYN3vIpBXoqLQIomhD/g== + +"@nomicfoundation/slang-linux-arm64-gnu@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-linux-arm64-gnu/-/slang-linux-arm64-gnu-0.17.0.tgz#41c7e57a9b1a3aee6911f0cab22e683c149fb470" + integrity sha512-Lj4anvOsQZxs1SycG8VyT2Rl2oqIhyLSUCgGepTt3CiJ/bM+8r8bLJIgh8vKkki4BWz49YsYIgaJB2IPv8FFTw== + +"@nomicfoundation/slang-linux-arm64-musl@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-linux-arm64-musl/-/slang-linux-arm64-musl-0.17.0.tgz#9c4b51689274ae75c2c8a4cddd2e1cc0a79c191d" + integrity sha512-/xkTCa9d5SIWUBQE3BmLqDFfJRr4yUBwbl4ynPiGUpRXrD69cs6pWKkwjwz/FdBpXqVo36I+zY95qzoTj/YhOA== + +"@nomicfoundation/slang-linux-x64-gnu@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-linux-x64-gnu/-/slang-linux-x64-gnu-0.17.0.tgz#c3a3b6a7b775fc617832958d10e6664bf86d39d0" + integrity sha512-oe5IO5vntOqYvTd67deCHPIWuSuWm6aYtT2/0Kqz2/VLtGz4ClEulBSRwfnNzBVtw2nksWipE1w8BzhImI7Syg== + +"@nomicfoundation/slang-linux-x64-musl@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-linux-x64-musl/-/slang-linux-x64-musl-0.17.0.tgz#725118ff99a7217b9f1d1bd84411d9442084077d" + integrity sha512-PpYCI5K/kgLAMXaPY0V4VST5gCDprEOh7z/47tbI8kJQumI5odjsj/Cs8MpTo7/uRH6flKYbVNgUzcocWVYrAQ== + +"@nomicfoundation/slang-win32-arm64-msvc@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-win32-arm64-msvc/-/slang-win32-arm64-msvc-0.17.0.tgz#9c8bc4ccf21eaaac0cfcb6d3954ede4e2dea4c02" + integrity sha512-u/Mkf7OjokdBilP7QOJj6QYJU4/mjkbKnTX21wLyCIzeVWS7yafRPYpBycKIBj2pRRZ6ceAY5EqRpb0aiCq+0Q== + +"@nomicfoundation/slang-win32-ia32-msvc@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-win32-ia32-msvc/-/slang-win32-ia32-msvc-0.17.0.tgz#3fc5d00a3f8c1d85a5e94146af78a5526a4f3d27" + integrity sha512-XJBVQfNnZQUv0tP2JSJ573S+pmgrLWgqSZOGaMllnB/TL1gRci4Z7dYRJUF2s82GlRJE+FHSI2Ro6JISKmlXCg== + +"@nomicfoundation/slang-win32-x64-msvc@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang-win32-x64-msvc/-/slang-win32-x64-msvc-0.17.0.tgz#f6a5e3250fa07cbda49151edeb80f09090e5b71a" + integrity sha512-zPGsAeiTfqfPNYHD8BfrahQmYzA78ZraoHKTGraq/1xwJwzBK4bu/NtvVA4pJjBV+B4L6DCxVhSbpn40q26JQA== + +"@nomicfoundation/slang@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang/-/slang-0.17.0.tgz#d9c25cd711ebf3490c9d0c99e9b4ca2481341a6b" + integrity sha512-1GlkGRcGpVnjFw9Z1vvDKOKo2mzparFt7qrl2pDxWp+jrVtlvej98yCMX52pVyrYE7ZeOSZFnx/DtsSgoukStQ== + dependencies: + "@nomicfoundation/slang-darwin-arm64" "0.17.0" + "@nomicfoundation/slang-darwin-x64" "0.17.0" + "@nomicfoundation/slang-linux-arm64-gnu" "0.17.0" + "@nomicfoundation/slang-linux-arm64-musl" "0.17.0" + "@nomicfoundation/slang-linux-x64-gnu" "0.17.0" + "@nomicfoundation/slang-linux-x64-musl" "0.17.0" + "@nomicfoundation/slang-win32-arm64-msvc" "0.17.0" + "@nomicfoundation/slang-win32-ia32-msvc" "0.17.0" + "@nomicfoundation/slang-win32-x64-msvc" "0.17.0" + +"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" + integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== + +"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" + integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== + +"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" + integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== + +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" + integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== + +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" + integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== + "@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": version "0.1.1" resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz" @@ -1112,6 +1067,21 @@ resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz" integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" + integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== + +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" + integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== + +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" + integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== + "@nomicfoundation/solidity-analyzer@^0.1.0": version "0.1.1" resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz" @@ -1128,11 +1098,6 @@ "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" -"@nomiclabs/hardhat-ethers@^2.0.0": - version "2.2.3" - resolved "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz" - integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== - "@nomiclabs/hardhat-waffle@^2.0.6": version "2.0.6" resolved "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz" @@ -1143,62 +1108,88 @@ resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.1.tgz" integrity sha512-MvaLoPnVcoZr/qqZP+4cl9piuR4gg0iIGgxVSZ/AL1iId3M6IdEHzz9Naw5Lirl4KKBI6ciTVnX07yL4dOMIJg== -"@openzeppelin/contracts@^5.0.0", "@openzeppelin/contracts@5.0.1": +"@openzeppelin/contracts@3.4.1-solc-0.7-2": + version "3.4.1-solc-0.7-2" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz#371c67ebffe50f551c3146a9eec5fe6ffe862e92" + integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== + +"@openzeppelin/contracts@3.4.2-solc-0.7": + version "3.4.2-solc-0.7" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.2-solc-0.7.tgz#38f4dbab672631034076ccdf2f3201fab1726635" + integrity sha512-W6QmqgkADuFcTLzHL8vVoNBtkwjvQRpYIAom7KiUNoLKghyx3FgH0GBjt8NRvigV1ZmMOBllvE1By1C+bi8WpA== + +"@openzeppelin/contracts@^5.0.0": version "5.0.1" resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.1.tgz" integrity sha512-yQJaT5HDp9hYOOp4jTYxMsR02gdFZFXhewX5HW9Jo4fsqSVqqyIO/xTHdWDaKX5a3pv1txmf076Lziz+sO7L1w== -"@openzeppelin/defender-sdk-base-client@^1.10.0", "@openzeppelin/defender-sdk-base-client@^1.13.4": - version "1.13.4" - resolved "https://registry.npmjs.org/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.13.4.tgz" - integrity sha512-fZjDxdL5WBt6kjKN8j6WlfIsggZKv37W1KoRkT0XwYv7Jslmr22i2qUs8ZreAzATD3ESYQs7YlO7ge0ElqdOKg== +"@openzeppelin/defender-admin-client@^1.52.0": + version "1.54.6" + resolved "https://registry.yarnpkg.com/@openzeppelin/defender-admin-client/-/defender-admin-client-1.54.6.tgz#935374ff54f087048c127e4852f8aefe5b2ac894" + integrity sha512-P4lxJDySrekWNuPa7FeyW/UmuxnuIXIAGYr5gZnmnMHRsYNaw+XfgkiCDfoGtjEyJbXYxXttYF6iAZhWQPdf1g== dependencies: - amazon-cognito-identity-js "^6.3.6" + "@openzeppelin/defender-base-client" "1.54.6" + axios "^1.4.0" + ethers "^5.7.2" + lodash "^4.17.19" + node-fetch "^2.6.0" + +"@openzeppelin/defender-base-client@1.54.6", "@openzeppelin/defender-base-client@^1.52.0": + version "1.54.6" + resolved "https://registry.yarnpkg.com/@openzeppelin/defender-base-client/-/defender-base-client-1.54.6.tgz#b65a90dba49375ac1439d638832382344067a0b9" + integrity sha512-PTef+rMxkM5VQ7sLwLKSjp2DBakYQd661ZJiSRywx+q/nIpm3B/HYGcz5wPZCA5O/QcEP6TatXXDoeMwimbcnw== + dependencies: + amazon-cognito-identity-js "^6.0.1" async-retry "^1.3.3" + axios "^1.4.0" + lodash "^4.17.19" + node-fetch "^2.6.0" -"@openzeppelin/defender-sdk-deploy-client@^1.10.0": - version "1.13.4" - resolved "https://registry.npmjs.org/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.13.4.tgz" - integrity sha512-1SbdImpjCYmjpDgK7Bff4vak29r/aECabVuQi5TB+7TdbOuRdVxDHu7vFhEpt3yrcPKW1joaNiUNDEc/noUsNQ== +"@openzeppelin/defender-sdk-base-client@1.14.3", "@openzeppelin/defender-sdk-base-client@^1.8.0": + version "1.14.3" + resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.14.3.tgz#f44d6cdf709c1cfd44f5f5120679eb7c81678e71" + integrity sha512-4yG9E8N1c/ZP2jNR+Ah19wi7SBKpauAV/VcYcm7rg1dltDbzbH/oZnnXJlymT7IfjTPXkKHW8TPsaqz3EjS7tA== dependencies: - "@openzeppelin/defender-sdk-base-client" "^1.13.4" - axios "^1.6.8" - lodash "^4.17.21" + amazon-cognito-identity-js "^6.3.6" + async-retry "^1.3.3" -"@openzeppelin/defender-sdk-network-client@^1.10.0": - version "1.13.4" - resolved "https://registry.npmjs.org/@openzeppelin/defender-sdk-network-client/-/defender-sdk-network-client-1.13.4.tgz" - integrity sha512-m76WQzqFET4jtFgA74V6Ui4czRoTvBy7leS+BbsIxoKX+NGODhs78y5zq7jSxsLu3c2iY69rujRkzj0Z+sCiiQ== +"@openzeppelin/defender-sdk-deploy-client@^1.8.0": + version "1.14.3" + resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.14.3.tgz#4676f454ba333664174edcf8c419a1fc0d04e780" + integrity sha512-51WIZJz251lndK7uQU4gBE0gBX+2ZNTgf+hemtJUEPCpHtkooBRFFMID3EPGMKXVqf872pU8K3Huu9PyYQu6bw== dependencies: - "@openzeppelin/defender-sdk-base-client" "^1.13.4" - axios "^1.6.8" + "@openzeppelin/defender-sdk-base-client" "1.14.3" + axios "^1.7.2" lodash "^4.17.21" -"@openzeppelin/hardhat-upgrades@^3.2.0": - version "3.2.0" - resolved "https://registry.npmjs.org/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.2.0.tgz" - integrity sha512-xybXIHQIZK2a1HH7ukMToRbIcU9LHfL49gtB0KYptY6f/r9lqrFOupN8aOBueRZW4Ymhc6HGL9bvj7u7t5lDdQ== - dependencies: - "@openzeppelin/defender-sdk-base-client" "^1.10.0" - "@openzeppelin/defender-sdk-deploy-client" "^1.10.0" - "@openzeppelin/defender-sdk-network-client" "^1.10.0" - "@openzeppelin/upgrades-core" "^1.32.0" +"@openzeppelin/hardhat-upgrades@^2.5.0": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-2.5.1.tgz#cc7db363807751a02ea1b1fa2f25d34c03384234" + integrity sha512-wRwq9f2PqlfIdNGFApsqRpqptqy98exSFp8SESb6Brgw4L07sExySInNJhscM/tWVSnR1Qnuws9Ck6Fs5zIxvg== + dependencies: + "@openzeppelin/defender-admin-client" "^1.52.0" + "@openzeppelin/defender-base-client" "^1.52.0" + "@openzeppelin/defender-sdk-base-client" "^1.8.0" + "@openzeppelin/defender-sdk-deploy-client" "^1.8.0" + "@openzeppelin/upgrades-core" "^1.31.2" chalk "^4.1.0" debug "^4.1.1" ethereumjs-util "^7.1.5" proper-lockfile "^4.1.1" - undici "^6.11.1" + undici "^5.14.0" -"@openzeppelin/upgrades-core@^1.32.0": - version "1.32.2" - resolved "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.32.2.tgz" - integrity sha512-EkXriOHZfn6u00Tbq0zUuhHDeTQB9WyAZKZo3UeYdqULb7E3vqxZgxgXmWJwEzAb6E77DvprzQ4gwCAjMV/S4Q== +"@openzeppelin/upgrades-core@^1.31.2": + version "1.37.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.37.0.tgz#088a5b4c3d30eaf800a40133bffc7f61712c7510" + integrity sha512-vpxe60KrbFubY09vlGZqBJdBXs0IqvZmH7+UueFiM0xK/V12lMwxyiNXkFv8+HZ7K8abRevYphVtEzrUWelQhQ== dependencies: + "@nomicfoundation/slang" "^0.17.0" cbor "^9.0.0" chalk "^4.1.0" compare-versions "^6.0.0" debug "^4.1.1" ethereumjs-util "^7.0.3" + minimatch "^9.0.5" minimist "^1.2.7" proper-lockfile "^4.1.1" solidity-ast "^0.4.51" @@ -1254,15 +1245,6 @@ "@noble/secp256k1" "~1.7.0" "@scure/base" "~1.1.0" -"@scure/bip32@1.3.1": - version "1.3.1" - resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz" - integrity sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A== - dependencies: - "@noble/curves" "~1.1.0" - "@noble/hashes" "~1.3.1" - "@scure/base" "~1.1.0" - "@scure/bip32@1.4.0": version "1.4.0" resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz" @@ -1280,14 +1262,6 @@ "@noble/hashes" "~1.2.0" "@scure/base" "~1.1.0" -"@scure/bip39@1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz" - integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== - dependencies: - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" - "@scure/bip39@1.3.0": version "1.3.0" resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz" @@ -1369,6 +1343,11 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + "@smithy/types@^3.3.0": version "3.3.0" resolved "https://registry.npmjs.org/@smithy/types/-/types-3.3.0.tgz" @@ -1395,6 +1374,13 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + "@typechain/ethers-v5@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz" @@ -1416,6 +1402,16 @@ dependencies: "@types/node" "*" +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + "@types/chai-as-promised@^7.1.3": version "7.1.8" resolved "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz" @@ -1449,6 +1445,18 @@ dependencies: "@types/node" "*" +"@types/http-cache-semantics@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + "@types/lru-cache@^5.1.0": version "5.1.1" resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" @@ -1481,24 +1489,26 @@ dependencies: undici-types "~5.26.4" +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + "@types/node@^10.0.3": version "10.17.60" resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.6": - version "12.19.12" + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^8.0.0": version "8.10.66" resolved "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz" integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== -"@types/node@18.15.13": - version "18.15.13" - resolved "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz" - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - "@types/pbkdf2@^3.0.0": version "3.1.2" resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz" @@ -1523,6 +1533,13 @@ dependencies: "@types/node" "*" +"@types/responselike@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== + dependencies: + "@types/node" "*" + "@types/secp256k1@^4.0.1": version "4.0.6" resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz" @@ -1530,49 +1547,107 @@ dependencies: "@types/node" "*" -"@types/sinon-chai@^3.2.3": - version "3.2.12" - resolved "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz" - integrity sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ== - dependencies: - "@types/chai" "*" - "@types/sinon" "*" - -"@types/sinon@*": - version "17.0.3" - resolved "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz" - integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== - dependencies: - "@types/sinonjs__fake-timers" "*" - -"@types/sinonjs__fake-timers@*": - version "8.1.5" - resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz" - integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ== - "@uniswap/lib@^4.0.1-alpha": version "4.0.1-alpha" resolved "https://registry.npmjs.org/@uniswap/lib/-/lib-4.0.1-alpha.tgz" integrity sha512-f6UIliwBbRsgVLxIaBANF6w09tYqc6Y/qXdsrbEmXHyFA7ILiKrIwRFXe1yOg8M3cksgVsO9N7yuL2DdCGQKBA== +"@uniswap/sdk-core@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@uniswap/sdk-core/-/sdk-core-5.3.1.tgz#22d753e9ef8666c2f3b4d9a89b9658d169be4ce8" + integrity sha512-XLJY8PcMZnKYBGLABJnLXcr3EgWql3mmnmpHyV1/MmEh9pLJLHYz4HLwVHb8pGDCqpOFX0e+Ei44/qhC7Q5Dsg== + dependencies: + "@ethersproject/address" "^5.0.2" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/strings" "5.7.0" + big.js "^5.2.2" + decimal.js-light "^2.5.0" + jsbi "^3.1.4" + tiny-invariant "^1.1.0" + toformat "^2.0.0" + +"@uniswap/swap-router-contracts@^1.3.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@uniswap/swap-router-contracts/-/swap-router-contracts-1.3.1.tgz#0ebbb93eb578625618ed9489872de381f9c66fb4" + integrity sha512-mh/YNbwKb7Mut96VuEtL+Z5bRe0xVIbjjiryn+iMMrK2sFKhR4duk/86mEz0UO5gSx4pQIw9G5276P5heY/7Rg== + dependencies: + "@openzeppelin/contracts" "3.4.2-solc-0.7" + "@uniswap/v2-core" "^1.0.1" + "@uniswap/v3-core" "^1.0.0" + "@uniswap/v3-periphery" "^1.4.4" + dotenv "^14.2.0" + hardhat-watcher "^2.1.1" + "@uniswap/v2-core@^1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@uniswap/v2-core/-/v2-core-1.0.1.tgz" integrity sha512-MtybtkUPSyysqLY2U210NBDeCHX+ltHt3oADGdjqoThZaFRDKwM6k1Nb3F0A3hk5hwuQvytFWhrWHOEq6nVJ8Q== +"@uniswap/v3-core@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@uniswap/v3-core/-/v3-core-1.0.0.tgz#6c24adacc4c25dceee0ba3ca142b35adbd7e359d" + integrity sha512-kSC4djMGKMHj7sLMYVnn61k9nu+lHjMIxgg9CDQT+s2QYLoA56GbSK9Oxr+qJXzzygbkrmuY6cwgP6cW2JXPFA== + +"@uniswap/v3-core@^1.0.0", "@uniswap/v3-core@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@uniswap/v3-core/-/v3-core-1.0.1.tgz#b6d2bdc6ba3c3fbd610bdc502395d86cd35264a0" + integrity sha512-7pVk4hEm00j9tc71Y9+ssYpO6ytkeI0y7WE9P6UcmNzhxPePwyAxImuhVsTqWK9YFvzgtvzJHi64pBl4jUzKMQ== + +"@uniswap/v3-periphery@^1.0.1", "@uniswap/v3-periphery@^1.1.1", "@uniswap/v3-periphery@^1.4.4": + version "1.4.4" + resolved "https://registry.yarnpkg.com/@uniswap/v3-periphery/-/v3-periphery-1.4.4.tgz#d2756c23b69718173c5874f37fd4ad57d2f021b7" + integrity sha512-S4+m+wh8HbWSO3DKk4LwUCPZJTpCugIsHrWR86m/OrUyvSqGDTXKFfc2sMuGXCZrD1ZqO3rhQsKgdWg3Hbb2Kw== + dependencies: + "@openzeppelin/contracts" "3.4.2-solc-0.7" + "@uniswap/lib" "^4.0.1-alpha" + "@uniswap/v2-core" "^1.0.1" + "@uniswap/v3-core" "^1.0.0" + base64-sol "1.0.1" + +"@uniswap/v3-sdk@^3.11.0": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@uniswap/v3-sdk/-/v3-sdk-3.13.1.tgz#67421727b18bb9c449bdf3c92cf3d01530ff3f8f" + integrity sha512-MCc96HrUZy17DINwrGnMtCvr+yXQlWUJJVaIiRRKe1DQzSuv97/G4lzM+zAaSymrxbR2qnHHWL5vMFjmwzCN9Q== + dependencies: + "@ethersproject/abi" "^5.5.0" + "@ethersproject/solidity" "^5.0.9" + "@uniswap/sdk-core" "^5.3.1" + "@uniswap/swap-router-contracts" "^1.3.0" + "@uniswap/v3-periphery" "^1.1.1" + "@uniswap/v3-staker" "1.0.0" + tiny-invariant "^1.1.0" + tiny-warning "^1.0.3" + +"@uniswap/v3-staker@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@uniswap/v3-staker/-/v3-staker-1.0.0.tgz#9a6915ec980852479dfc903f50baf822ff8fa66e" + integrity sha512-JV0Qc46Px5alvg6YWd+UIaGH9lDuYG/Js7ngxPit1SPaIP30AlVer1UYB7BRYeUVVxE+byUyIeN5jeQ7LLDjIw== + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/v3-core" "1.0.0" + "@uniswap/v3-periphery" "^1.0.1" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -abstract-leveldown@^2.4.1: +abstract-leveldown@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz" + integrity sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ== + dependencies: + xtend "~4.0.0" + +abstract-leveldown@^2.4.1, abstract-leveldown@~2.7.1: version "2.7.2" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz" integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== dependencies: xtend "~4.0.0" -abstract-leveldown@^5.0.0: +abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz" integrity sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A== @@ -1586,43 +1661,19 @@ abstract-leveldown@~2.6.0: dependencies: xtend "~4.0.0" -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz" - integrity sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz" - integrity sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ== - dependencies: - xtend "~4.0.0" - -accepts@~1.3.7: - version "1.3.7" +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + mime-types "~2.1.34" + negotiator "0.6.3" adm-zip@^0.4.16: version "0.4.16" resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== -aes-js@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - aes-js@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" @@ -1633,8 +1684,13 @@ aes-js@4.0.0-beta.5: resolved "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz" integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== -agent-base@6: - version "6.0.2" +aes-js@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz" + integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== + +agent-base@6: + version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: @@ -1668,9 +1724,9 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" -amazon-cognito-identity-js@^6.3.6: +amazon-cognito-identity-js@^6.0.1, amazon-cognito-identity-js@^6.3.6: version "6.3.12" - resolved "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.12.tgz" + resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.12.tgz#af73df033094ad4c679c19cf6122b90058021619" integrity sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg== dependencies: "@aws-crypto/sha256-js" "1.2.2" @@ -1686,16 +1742,16 @@ ansi-align@^3.0.0: dependencies: string-width "^4.1.0" -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" @@ -1730,14 +1786,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -1777,14 +1826,7 @@ arr-union@^3.1.0: resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== -array-back@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz" - integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== - dependencies: - typical "^2.6.0" - -array-back@^1.0.4: +array-back@^1.0.3, array-back@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz" integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== @@ -1806,6 +1848,14 @@ array-buffer-byte-length@^1.0.0: call-bind "^1.0.2" is-array-buffer "^3.0.1" +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" @@ -1832,6 +1882,19 @@ array.prototype.findlast@^1.2.2: es-shim-unscopables "^1.0.0" get-intrinsic "^1.2.1" +array.prototype.reduce@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz#6aadc2f995af29cb887eb866d981dc85ab6f7dc7" + integrity sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-array-method-boxes-properly "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + is-string "^1.0.7" + arraybuffer.prototype.slice@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz" @@ -1845,11 +1908,34 @@ arraybuffer.prototype.slice@^1.0.2: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + asap@~2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +asn1.js@^4.10.1: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" @@ -1867,7 +1953,7 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -assert-plus@^1.0.0, assert-plus@1.0.0: +assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== @@ -1906,18 +1992,18 @@ async-retry@^1.3.3: dependencies: retry "0.13.1" -async@^1.4.2: - version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0, async@^2.6.1, async@2.6.2: +async@2.6.2, async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0, async@^2.6.1: version "2.6.2" resolved "https://registry.npmjs.org/async/-/async-2.6.2.tgz" integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== dependencies: lodash "^4.17.11" +async@^1.4.2: + version "1.5.2" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -1938,6 +2024,13 @@ available-typed-arrays@^1.0.5: resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" @@ -1955,7 +2048,16 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" -axios@^1.5.1, axios@^1.6.8: +axios@^1.4.0, axios@^1.7.2: + version "1.7.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axios@^1.5.1: version "1.7.2" resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz" integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== @@ -2503,10 +2605,22 @@ base-x@^3.0.2: safe-buffer "^5.0.1" base-x@^3.0.8: - version "3.0.8" + version "3.0.10" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.10.tgz#62de58653f8762b5d6f8d9fe30fa75f7b2585a75" + integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ== dependencies: safe-buffer "^5.0.1" +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64-sol@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/base64-sol/-/base64-sol-1.0.1.tgz#91317aa341f0bc763811783c5729f1c2574600f6" + integrity sha512-ld3cCNMeXt4uJXmLZBHFGMvVpK9KsLVEhPpFRXnvSVAqABKbuNZg/+dsq3NuM+wxFLb/UrVkz7m1ciWmkMfTbg== + base@^0.11.1: version "0.11.2" resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" @@ -2520,16 +2634,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" @@ -2542,8 +2646,15 @@ bech32@1.1.4: resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bignumber.js@^9.0.0: - version "9.0.1" +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bignumber.js@^9.0.0, bignumber.js@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: version "2.2.0" @@ -2566,58 +2677,43 @@ blakejs@^1.1.0: resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bluebird@^3.5.2: +bluebird@^3.5.0, bluebird@^3.5.2: version "3.7.2" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.4.0, bn.js@^4.8.0: - version "4.11.9" - -bn.js@^4.11.0, bn.js@^4.11.8: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== -bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.8.0: version "4.12.0" resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0: - version "5.1.3" - -bn.js@^5.1.1: - version "5.1.3" - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -body-parser@^1.16.0, body-parser@1.19.0: - version "1.19.0" +body-parser@1.20.2, 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.0" - content-type "~1.0.4" + bytes "3.1.2" + content-type "~1.0.5" debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" boxen@^5.1.2: version "5.1.2" @@ -2671,12 +2767,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -brorand@^1.1.0: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== @@ -2717,7 +2808,7 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: +browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== @@ -2726,17 +2817,20 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.2.1" + version "4.2.3" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208" + integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" + bn.js "^5.2.1" + browserify-rsa "^4.1.0" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.3" + elliptic "^6.5.5" + hash-base "~3.0" inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + parse-asn1 "^5.1.7" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" browserslist@^3.2.6: version "3.2.8" @@ -2746,7 +2840,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.22.2, "browserslist@>= 4.21.0": +browserslist@^4.22.2: version "4.22.2" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -2794,14 +2888,6 @@ buffer-xor@^2.0.1: dependencies: safe-buffer "^5.1.1" -buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - buffer@4.9.2: version "4.9.2" resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" @@ -2811,13 +2897,20 @@ buffer@4.9.2: ieee754 "^1.1.4" isarray "^1.0.0" -bufferutil@^4.0.1: - version "4.0.3" +buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: - node-gyp-build "^4.2.0" + base64-js "^1.3.1" + ieee754 "^1.1.13" -bytes@3.1.0: - version "3.1.0" +bufferutil@^4.0.1: + version "4.0.8" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== + dependencies: + node-gyp-build "^4.3.0" bytes@3.1.2: version "3.1.2" @@ -2854,6 +2947,11 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" @@ -2867,6 +2965,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + cachedown@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/cachedown/-/cachedown-1.0.0.tgz" @@ -2884,6 +2995,17 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" +call-bind@^1.0.6, call-bind@^1.0.7, call-bind@~1.0.2: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + camelcase@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz" @@ -2895,7 +3017,9 @@ camelcase@^6.0.0, camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30000844: - version "1.0.30001174" + version "1.0.30001657" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001657.tgz#29fd504bffca719d1c6b63a1f6f840be1973a660" + integrity sha512-DPbJAlP8/BAXy3IgiWmZKItubb3TYGP0WscQQlVGIfT4s/YlFYVuJgyOsQNP7rJRChx/qdMeLJQJP0Sgg2yjNA== caniuse-lite@^1.0.30001565: version "1.0.30001576" @@ -2937,7 +3061,7 @@ chai-eventemitter2@^0.2.1: lodash.groupby "^4.6.0" lodash.ismatch "^4.4.0" -chai@^4.2.0, chai@^4.3.8, "chai@>= 2.1.2 < 5": +chai@^4.3.8: version "4.4.0" resolved "https://registry.npmjs.org/chai/-/chai-4.4.0.tgz" integrity sha512-x9cHNq1uvkCdU+5xTkNh5WtgD4e4yDFCsp9jVc7N7qVeKeftv3gO/ZrviX5d+3ZfxdYnZXZYujjRInu1RogU6A== @@ -2970,23 +3094,7 @@ chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3013,7 +3121,7 @@ checkpoint-store@^1.1.0: dependencies: functional-red-black-tree "^1.0.1" -chokidar@^3.4.0, chokidar@^3.5.2, chokidar@3.5.3: +chokidar@3.5.3, chokidar@^3.4.0, chokidar@^3.5.2: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -3028,8 +3136,25 @@ chokidar@^3.4.0, chokidar@^3.5.2, chokidar@3.5.3: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.4: version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== ci-info@^2.0.0: version "2.0.0" @@ -3118,11 +3243,13 @@ cliui@^7.0.2: wrap-ansi "^7.0.0" clone-response@^1.0.2: - version "1.0.2" + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== dependencies: mimic-response "^1.0.0" -clone@^2.0.0, clone@2.1.2: +clone@2.1.2, clone@^2.0.0: version "2.1.2" resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== @@ -3154,17 +3281,17 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -colors@^1.1.2, colors@1.4.0: +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.4.0, colors@^1.1.2: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -3190,40 +3317,32 @@ command-line-args@^4.0.7: find-replace "^1.0.3" typical "^2.6.1" -commander@^8.1.0: - version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - commander@3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== +commander@^8.1.0: + version "8.3.0" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + compare-versions@^6.0.0: version "6.1.0" resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz" integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== component-emitter@^1.2.1: - version "1.3.0" + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.5.1: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^1.6.0, concat-stream@^1.6.2: +concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -3233,10 +3352,12 @@ concat-stream@^1.6.0, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -content-disposition@0.5.3: - version "0.5.3" +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: - safe-buffer "5.1.2" + safe-buffer "5.2.1" content-hash@^2.5.2: version "2.5.2" @@ -3247,13 +3368,15 @@ content-hash@^2.5.2: multicodec "^0.5.5" multihashes "^0.4.15" -content-type@~1.0.4: - version "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== convert-source-map@^1.5.1: - version "1.7.0" - dependencies: - safe-buffer "~5.1.1" + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== convert-source-map@^2.0.0: version "2.0.0" @@ -3265,16 +3388,20 @@ cookie-signature@1.0.6: resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + cookie@^0.4.1: version "0.4.2" resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -cookie@0.4.0: - version "0.4.0" - cookiejar@^2.1.1: - version "2.1.2" + version "2.1.4" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" + integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== copy-descriptor@^0.1.0: version "0.1.1" @@ -3282,14 +3409,16 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-pure@^3.0.1: - version "3.8.2" + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.38.1.tgz#e8534062a54b7221344884ba9b52474be495ada3" + integrity sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@~1.0.0, core-util-is@1.0.2: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== @@ -3339,10 +3468,12 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: sha.js "^2.4.8" cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.3" + version "2.2.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.6.tgz#2ef0bb39a24ac034787965c457368a28730e220a" + integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== dependencies: - node-fetch "2.1.2" - whatwg-fetch "2.0.4" + node-fetch "^2.6.7" + whatwg-fetch "^2.0.4" cross-fetch@^3.1.4: version "3.1.8" @@ -3384,7 +3515,7 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -d@^1.0.1, d@1: +d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== @@ -3392,6 +3523,14 @@ d@^1.0.1, d@1: es5-ext "^0.10.50" type "^1.0.1" +d@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" @@ -3399,59 +3538,58 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -debug@^2.2.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== dependencies: - ms "2.0.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" -debug@^2.3.3: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== dependencies: - ms "2.0.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" -debug@^2.6.8: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== dependencies: - ms "2.0.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" -debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4, debug@4.3.4: +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: 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@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.2.6: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" @@ -3465,16 +3603,30 @@ decamelize@^4.0.0: resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== +decimal.js-light@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" + integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== + decode-uri-component@^0.2.0: - version "0.2.0" + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -decompress-response@^3.2.0, decompress-response@^3.3.0: +decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== dependencies: mimic-response "^1.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + deep-eql@^4.0.1, deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz" @@ -3507,20 +3659,27 @@ deep-equal@^2.0.5: which-typed-array "^1.1.13" deep-equal@~1.1.1: - version "1.1.1" + version "1.1.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" + integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + object-is "^1.1.5" object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" + regexp.prototype.flags "^1.5.1" defer-to-connect@^1.0.1: version "1.1.3" resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + deferred-leveldown@~1.2.1: version "1.2.2" resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz" @@ -3545,6 +3704,15 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" @@ -3576,30 +3744,33 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@~1.0.0: - version "1.0.0" +defined@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@~1.1.2: - version "1.1.2" - depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== des.js@^1.0.0: - version "1.0.1" + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@~1.0.4: - version "1.0.4" +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-indent@^4.0.0: version "4.0.0" @@ -3632,6 +3803,11 @@ dotenv@^10.0.0: resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== +dotenv@^14.2.0: + version "14.3.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-14.3.2.tgz#7c30b3a5f777c79a3429cb2db358eef6751e8369" + integrity sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ== + dotignore@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" @@ -3640,7 +3816,9 @@ dotignore@~0.1.2: minimatch "^3.0.4" duplexer3@^0.1.4: - version "0.1.4" + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== ecc-jsbn@~0.1.1: version "0.1.2" @@ -3656,25 +3834,16 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.3.47: - version "1.3.636" + version "1.5.14" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.14.tgz#8de5fd941f4deede999f90503c4b5923fbe1962b" + integrity sha512-bEfPECb3fJ15eaDnu9LEJ2vPGD6W1vt7vZleSVyFhYuMIKm3vz/g9lt7IvEzgdwj58RjbPKUF2rXTCN/UW47tQ== electron-to-chromium@^1.4.601: version "1.4.628" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz" integrity sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw== -elliptic@^6.4.0, elliptic@^6.5.3, elliptic@6.5.3: - version "6.5.3" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -elliptic@^6.5.2, elliptic@^6.5.4, elliptic@6.5.4: +elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -3687,6 +3856,19 @@ elliptic@^6.5.2, elliptic@^6.5.4, elliptic@6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.5: + version "6.5.7" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b" + integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" @@ -3702,7 +3884,7 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding-down@~5.0.0, encoding-down@5.0.4: +encoding-down@5.0.4, encoding-down@~5.0.0: version "5.0.4" resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz" integrity sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw== @@ -3754,37 +3936,6 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0-next.1: - version "1.17.7" - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - es-abstract@^1.22.1: version "1.22.3" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz" @@ -3830,6 +3981,75 @@ es-abstract@^1.22.1: unbox-primitive "^1.0.2" which-typed-array "^1.1.13" +es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-get-iterator@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz" @@ -3845,6 +4065,13 @@ es-get-iterator@^1.1.3: isarray "^2.0.5" stop-iteration-iterator "^1.0.0" +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz" @@ -3854,6 +4081,15 @@ es-set-tostringtag@^2.0.1: has-tostringtag "^1.0.0" hasown "^2.0.0" +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + es-shim-unscopables@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" @@ -3870,21 +4106,26 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14: + version "0.10.64" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" -es6-iterator@~2.0.3: +es6-iterator@^2.0.3: version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-symbol@^3.1.1, es6-symbol@~3.1.3: +es6-symbol@^3.1.1: version "3.1.3" resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== @@ -3892,6 +4133,14 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" +es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" @@ -3902,15 +4151,25 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" esutils@^2.0.2: version "2.0.3" @@ -3935,15 +4194,7 @@ eth-block-tracker@^3.0.0: pify "^2.3.0" tape "^4.6.3" -eth-ens-namehash@^2.0.8: - version "2.0.8" - resolved "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz" - integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-ens-namehash@2.0.8: +eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.8: version "2.0.8" resolved "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz" integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== @@ -3999,6 +4250,15 @@ eth-json-rpc-middleware@^1.5.0: promise-to-callback "^1.0.0" tape "^4.6.3" +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + eth-lib@^0.1.26: version "0.1.29" resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz" @@ -4011,15 +4271,6 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz" @@ -4028,6 +4279,18 @@ eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: json-rpc-random-id "^1.0.0" xtend "^4.0.1" +eth-sig-util@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.0.tgz" + integrity sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ== + dependencies: + buffer "^5.2.1" + elliptic "^6.4.0" + ethereumjs-abi "0.6.5" + ethereumjs-util "^5.1.1" + tweetnacl "^1.0.0" + tweetnacl-util "^0.15.0" + eth-sig-util@^1.4.2: version "1.4.2" resolved "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz" @@ -4046,18 +4309,6 @@ eth-sig-util@^3.0.1: tweetnacl "^1.0.3" tweetnacl-util "^0.15.0" -eth-sig-util@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.0.tgz" - integrity sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ== - dependencies: - buffer "^5.2.1" - elliptic "^6.4.0" - ethereumjs-abi "0.6.5" - ethereumjs-util "^5.1.1" - tweetnacl "^1.0.0" - tweetnacl-util "^0.15.0" - eth-tx-summary@^3.1.2: version "3.2.4" resolved "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz" @@ -4091,17 +4342,17 @@ ethereum-bloom-filters@^1.0.6: dependencies: js-sha3 "^0.8.0" -ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz" - integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== - ethereum-common@0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz" integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== -ethereum-cryptography@^0.1.3, ethereum-cryptography@0.1.3: +ethereum-common@^0.0.18: + version "0.0.18" + resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz" + integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== + +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== @@ -4132,17 +4383,7 @@ ethereum-cryptography@^1.0.3: "@scure/bip32" "1.1.5" "@scure/bip39" "1.1.1" -ethereum-cryptography@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz" - integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg== - dependencies: - "@noble/curves" "1.4.2" - "@noble/hashes" "1.4.0" - "@scure/bip32" "1.4.0" - "@scure/bip39" "1.3.0" - -ethereum-cryptography@^2.1.2: +ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: version "2.2.1" resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz" integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg== @@ -4159,7 +4400,7 @@ ethereum-tx-decoder@^3.0.0: dependencies: ethers "^4.0.37" -ethereum-waffle@*, ethereum-waffle@^3.4.0: +ethereum-waffle@^3.4.0: version "3.4.4" resolved "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz" integrity sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q== @@ -4170,13 +4411,6 @@ ethereum-waffle@*, ethereum-waffle@^3.4.0: "@ethereum-waffle/provider" "^3.4.4" ethers "^5.0.1" -ethereumjs-abi@^0.6.8, ethereumjs-abi@0.6.8, "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version "0.6.8" - resolved "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - ethereumjs-abi@0.6.5: version "0.6.5" resolved "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz" @@ -4185,16 +4419,14 @@ ethereumjs-abi@0.6.5: bn.js "^4.10.0" ethereumjs-util "^4.3.0" -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== +ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.8, "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": + version "0.6.8" + resolved "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" + bn.js "^4.11.8" + ethereumjs-util "^6.0.0" -ethereumjs-account@^3.0.0, ethereumjs-account@3.0.0: +ethereumjs-account@3.0.0, ethereumjs-account@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz" integrity sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA== @@ -4203,40 +4435,16 @@ ethereumjs-account@^3.0.0, ethereumjs-account@3.0.0: rlp "^2.2.1" safe-buffer "^5.1.1" -ethereumjs-block@^1.2.2: - version "1.7.1" - resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@^1.4.1: - version "1.7.1" - resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== +ethereumjs-account@^2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz" + integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" + rlp "^2.0.0" + safe-buffer "^5.1.1" -ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.2, ethereumjs-block@2.2.2: +ethereumjs-block@2.2.2, ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.0, ethereumjs-block@~2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz" integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== @@ -4247,14 +4455,14 @@ ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.2, ethereumjs-block@2.2.2: ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== +ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: + version "1.7.1" + resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" + integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== dependencies: async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" + ethereum-common "0.2.0" + ethereumjs-tx "^1.2.2" ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" @@ -4274,11 +4482,19 @@ ethereumjs-blockchain@^4.0.3: rlp "^2.2.2" semaphore "^1.1.0" -ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0, ethereumjs-common@1.5.0: +ethereumjs-common@1.5.0, ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz" integrity sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ== +ethereumjs-tx@2.1.2, ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz" + integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== + dependencies: + ethereumjs-common "^1.5.0" + ethereumjs-util "^6.0.0" + ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3: version "1.3.7" resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz" @@ -4287,13 +4503,18 @@ ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@ ethereum-common "^0.0.18" ethereumjs-util "^5.0.0" -ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2, ethereumjs-tx@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== +ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0, ethereumjs-util@^6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" ethereumjs-util@^4.3.0: version "4.5.1" @@ -4306,7 +4527,7 @@ ethereumjs-util@^4.3.0: ethereum-cryptography "^0.1.3" rlp "^2.0.0" -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.3, ethereumjs-util@^5.1.5: +ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.3, ethereumjs-util@^5.1.5, ethereumjs-util@^5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== @@ -4319,56 +4540,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@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0, ethereumjs-util@6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^7.0.2: - version "7.0.7" - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.3, 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== @@ -4379,57 +4551,6 @@ ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethereumjs-vm@^2.1.0: - version "2.6.0" - resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethereumjs-vm@^2.3.4: - version "2.6.0" - resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - ethereumjs-vm@4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz" @@ -4451,230 +4572,54 @@ ethereumjs-vm@4.2.0: safe-buffer "^5.1.1" util.promisify "^1.0.0" -ethereumjs-wallet@0.6.5: - version "0.6.5" - resolved "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz" - integrity sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA== +ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" + integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== dependencies: - aes-js "^3.1.1" - bs58check "^2.1.2" - ethereum-cryptography "^0.1.3" + async "^2.1.2" + async-eventemitter "^0.2.2" + ethereumjs-account "^2.0.3" + ethereumjs-block "~2.2.0" + ethereumjs-common "^1.1.0" ethereumjs-util "^6.0.0" - randombytes "^2.0.6" - safe-buffer "^5.1.2" - scryptsy "^1.2.1" - utf8 "^3.0.0" - uuid "^3.3.2" - -ethers@^4.0.37: - version "4.0.49" - resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" - integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== - dependencies: - aes-js "3.0.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^5.0.0, ethers@^6.1.0, ethers@^6.13.1, ethers@^6.6.0: - version "6.13.1" - resolved "https://registry.npmjs.org/ethers/-/ethers-6.13.1.tgz" - integrity sha512-hdJ2HOxg/xx97Lm9HdCWk949BfYqYWpyw4//78SiwOLgASyfrNszfMUNB2joKjvGUdwhHfaiMMFFwacVVoLR9A== - dependencies: - "@adraffy/ens-normalize" "1.10.1" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@types/node" "18.15.13" - aes-js "4.0.0-beta.5" - tslib "2.4.0" - ws "8.17.1" - -ethers@^5.0.1: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" - -ethers@^5.0.2: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" - -ethers@^5.0.24: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" + fake-merkle-patricia-tree "^1.0.1" + functional-red-black-tree "^1.0.1" + merkle-patricia-tree "^2.3.2" + rustbn.js "~0.2.0" + safe-buffer "^5.1.1" -ethers@^5.5.2: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== +ethereumjs-wallet@0.6.5: + version "0.6.5" + resolved "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz" + integrity sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA== dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" + aes-js "^3.1.1" + bs58check "^2.1.2" + ethereum-cryptography "^0.1.3" + ethereumjs-util "^6.0.0" + randombytes "^2.0.6" + safe-buffer "^5.1.2" + scryptsy "^1.2.1" + utf8 "^3.0.0" + uuid "^3.3.2" -ethers@^5.7.0: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== +ethers@^4.0.37: + version "4.0.49" + resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" + aes-js "3.0.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" -ethers@^5.7.2: +ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.24, ethers@^5.5.2, ethers@^5.7.0, ethers@^5.7.2, ethers@~5.7.0: version "5.7.2" resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -4710,6 +4655,19 @@ ethers@^5.7.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" +ethers@^6.9.0: + version "6.13.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" + integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.17.1" + ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" @@ -4718,7 +4676,7 @@ ethjs-unit@0.1.6: bn.js "4.11.6" number-to-bn "1.7.0" -ethjs-util@^0.1.3, ethjs-util@^0.1.6, ethjs-util@0.1.6: +ethjs-util@0.1.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: version "0.1.6" resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== @@ -4726,6 +4684,14 @@ ethjs-util@^0.1.3, ethjs-util@^0.1.6, ethjs-util@0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + eventemitter3@4.0.4: version "4.0.4" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz" @@ -4758,43 +4724,48 @@ expand-brackets@^2.1.4: to-regex "^3.0.1" express@^4.14.0: - version "4.17.1" + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: - accepts "~1.3.7" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" + body-parser "1.20.2" + content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" + proxy-addr "~2.0.7" + qs "6.11.0" range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" -ext@^1.1.2: - version "1.4.0" +ext@^1.1.2, ext@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: - type "^2.0.0" + type "^2.7.2" extend-shallow@^2.0.1: version "2.0.1" @@ -4830,7 +4801,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extsprintf@^1.2.0, extsprintf@1.3.0: +extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== @@ -4881,15 +4852,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" find-replace@^1.0.3: @@ -4900,6 +4873,14 @@ find-replace@^1.0.3: array-back "^1.0.4" test-value "^2.1.0" +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" @@ -4915,14 +4896,6 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-yarn-workspace-root@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz" @@ -5004,10 +4977,12 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fp-ts@^1.0.0, fp-ts@1.19.3: +fp-ts@1.19.3, fp-ts@^1.0.0: version "1.19.3" resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== @@ -5044,16 +5019,7 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^4.0.3: +fs-extra@^4.0.2, fs-extra@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== @@ -5081,8 +5047,10 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^1.2.5: +fs-minipass@^1.2.7: version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: minipass "^2.6.0" @@ -5096,8 +5064,10 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -function-bind@^1.1.1, function-bind@~1.1.1: - version "1.1.1" +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: version "1.1.2" @@ -5191,14 +5161,22 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-port@^3.1.0: version "3.2.0" resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== -get-stream@^3.0.0: - version "3.0.0" - get-stream@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" @@ -5221,6 +5199,15 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" @@ -5240,7 +5227,7 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.1.2, glob@^7.1.3, glob@7.2.0: +glob@7.2.0, glob@^7.1.2, glob@^7.1.3: version "7.2.0" resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -5252,13 +5239,15 @@ glob@^7.1.2, glob@^7.1.3, glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@~7.1.6: - version "7.1.6" +glob@~7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -5294,24 +5283,6 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -got@^7.1.0: - version "7.1.0" - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - got@9.6.0: version "9.6.0" resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" @@ -5329,6 +5300,23 @@ got@9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" +got@^11.8.5: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" @@ -5361,7 +5349,7 @@ hardhat-deploy-ethers@^0.4.1: resolved "https://registry.npmjs.org/hardhat-deploy-ethers/-/hardhat-deploy-ethers-0.4.1.tgz" integrity sha512-RM6JUcD0dOCjemxnKLtK7XQQI7NWn+LxF5qicGYax0PtWayEUXAewOb4WIHZ/yearhj+s2t6dL0MnHyLTENwJg== -hardhat-deploy@^0.11.34, hardhat-deploy@^0.11.44: +hardhat-deploy@^0.11.44: version "0.11.45" resolved "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.11.45.tgz" integrity sha512-aC8UNaq3JcORnEUIwV945iJuvBwi65tjHVDU3v6mOcqik7WAzHVCJ7cwmkkipsHrWysrB5YvGF1q9S1vIph83w== @@ -5389,7 +5377,7 @@ hardhat-deploy@^0.11.34, hardhat-deploy@^0.11.44: match-all "^1.2.6" murmur-128 "^0.2.1" qs "^6.9.4" - zksync-ethers "^5.0.0" + zksync-web3 "^0.14.3" hardhat-gas-reporter@^1.0.9: version "1.0.9" @@ -5400,14 +5388,21 @@ hardhat-gas-reporter@^1.0.9: eth-gas-reporter "^0.2.25" sha1 "^1.1.1" -hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.16.0, hardhat@^2.17.2, hardhat@^2.22.5, hardhat@^2.9.4, hardhat@^2.9.5: - version "2.22.6" - resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.22.6.tgz" - integrity sha512-abFEnd9QACwEtSvZZGSmzvw7N3zhQN1cDKz5SLHAupfG24qTHofCjqvD5kT5Wwsq5XOL0ON1Mq5rr4v0XX5ciw== +hardhat-watcher@^2.1.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hardhat-watcher/-/hardhat-watcher-2.5.0.tgz#3ee76c3cb5b99f2875b78d176207745aa484ed4a" + integrity sha512-Su2qcSMIo2YO2PrmJ0/tdkf+6pSt8zf9+4URR5edMVti6+ShI8T3xhPrwugdyTOFuyj8lKHrcTZNKUFYowYiyA== + dependencies: + chokidar "^3.5.3" + +hardhat@^2.22.1: + version "2.22.10" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.10.tgz#826ab56e47af98406e6dd105ba6d2dbb148013d9" + integrity sha512-JRUDdiystjniAvBGFmJRsiIZSOP2/6s++8xRDe3TzLeQXlWWHsXBrd9wd3JWFyKXvgMqMeLL5Sz/oNxXKYw9vg== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/edr" "^0.4.1" + "@nomicfoundation/edr" "^0.5.2" "@nomicfoundation/ethereumjs-common" "4.0.4" "@nomicfoundation/ethereumjs-tx" "5.0.4" "@nomicfoundation/ethereumjs-util" "9.0.4" @@ -5478,27 +5473,28 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.2.2" +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + has-proto@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== -has-symbol-support-x@^1.4.1: - version "1.4.2" - -has-symbols@^1.0.1: - version "1.0.1" +has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-to-string-tag-x@^1.2.0: - version "1.4.1" - dependencies: - has-symbol-support-x "^1.4.1" - has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" @@ -5506,6 +5502,13 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + has-value@^0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" @@ -5537,10 +5540,10 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.3, has@~1.0.3: - version "1.0.3" - dependencies: - function-bind "^1.1.1" +has@~1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== hash-base@^3.0.0: version "3.1.0" @@ -5551,13 +5554,13 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7, hash.js@1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== +hash-base@~3.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow== dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" + inherits "^2.0.1" + safe-buffer "^5.0.1" hash.js@1.1.3: version "1.1.3" @@ -5567,6 +5570,14 @@ hash.js@1.1.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + hasown@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" @@ -5574,6 +5585,13 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + he@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" @@ -5584,13 +5602,6 @@ heap@0.2.6: resolved "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz" integrity sha512-MzzWcnfB1e4EG2vHi3dXHoBupmuXNZzx6pY6HldVS55JKKBoq3xOyzfSaZRkJp37HIhEYC78knabHff3zc4dQQ== -hmac-drbg@^1.0.0: - version "1.0.1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" @@ -5624,16 +5635,9 @@ http-basic@^8.1.1: parse-cache-control "^1.0.1" http-cache-semantics@^4.0.0: - version "4.1.0" - -http-errors@~1.7.2, http-errors@1.7.2: - version "1.7.2" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-errors@2.0.0: version "2.0.0" @@ -5667,6 +5671,14 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" @@ -5675,11 +5687,6 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -iconv-lite@^0.6.2: - version "0.6.2" - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" @@ -5687,6 +5694,13 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + idna-uts46-hx@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz" @@ -5694,12 +5708,7 @@ idna-uts46-hx@^2.3.1: dependencies: punycode "2.1.0" -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -5732,14 +5741,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz" @@ -5749,6 +5755,15 @@ internal-slot@^1.0.4, internal-slot@^1.0.5: hasown "^2.0.0" side-channel "^1.0.4" +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + invariant@^2.2.2: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" @@ -5773,20 +5788,12 @@ ipaddr.js@1.9.1: resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.0" +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== dependencies: - call-bind "^1.0.0" + hasown "^2.0.0" is-arguments@^1.1.1: version "1.1.1" @@ -5805,6 +5812,14 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: get-intrinsic "^1.2.0" is-typed-array "^1.1.10" +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" @@ -5842,9 +5857,6 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-callable@^1.2.2: - version "1.2.2" - is-ci@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" @@ -5852,15 +5864,26 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-data-descriptor@^0.1.4: - version "0.1.4" +is-core-module@^2.13.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: - kind-of "^3.0.2" + hasown "^2.0.2" -is-data-descriptor@^1.0.0: - version "1.0.0" +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== dependencies: - kind-of "^6.0.0" + is-typed-array "^1.1.13" is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" @@ -5870,18 +5893,20 @@ is-date-object@^1.0.1, is-date-object@^1.0.5: has-tostringtag "^1.0.0" is-descriptor@^0.1.0: - version "0.1.6" + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" is-docker@^2.0.0: version "2.2.1" @@ -5893,11 +5918,6 @@ is-extendable@^0.1.0, is-extendable@^0.1.1: resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - is-extendable@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" @@ -5959,14 +5979,16 @@ is-map@^2.0.1, is-map@^2.0.2: resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== -is-negative-zero@^2.0.0: - version "2.0.1" - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" @@ -5986,12 +6008,6 @@ is-number@^7.0.0: resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-object@^1.0.1: - version "1.0.2" - -is-plain-obj@^1.1.0: - version "1.1.0" - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" @@ -6004,12 +6020,7 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.1.1: - version "1.1.1" - dependencies: - has-symbols "^1.0.1" - -is-regex@^1.1.4: +is-regex@^1.1.4, is-regex@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -6017,14 +6028,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-regex@~1.0.5: - version "1.0.5" - dependencies: - has "^1.0.3" - -is-retry-allowed@^1.0.0: - version "1.2.0" - is-set@^2.0.1, is-set@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" @@ -6037,8 +6040,12 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-stream@^1.0.0: - version "1.1.0" +is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" is-stream@^1.0.1: version "1.1.0" @@ -6066,6 +6073,13 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: dependencies: which-typed-array "^1.1.11" +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" @@ -6118,7 +6132,12 @@ is-wsl@^2.1.1: dependencies: is-docker "^2.0.0" -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== @@ -6128,11 +6147,6 @@ isarray@^2.0.5: resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -6163,28 +6177,22 @@ isstream@~0.1.2: resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== -isurl@^1.0.0-alpha5: - version "1.0.0" - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - js-cookie@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== -js-sha3@^0.5.7, js-sha3@0.5.7: +js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== -js-sha3@^0.8.0, js-sha3@0.8.0: +js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== -"js-tokens@^3.0.0 || ^4.0.0": +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== @@ -6194,11 +6202,6 @@ js-tokens@^3.0.2: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - js-yaml@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" @@ -6206,6 +6209,11 @@ js-yaml@4.1.0: dependencies: argparse "^2.0.1" +jsbi@^3.1.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.2.5.tgz#b37bb90e0e5c2814c1c2a1bcd8c729888a2e37d6" + integrity sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ== + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" @@ -6231,6 +6239,11 @@ json-buffer@3.0.0: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: version "3.8.0" resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz" @@ -6265,18 +6278,20 @@ json-schema-traverse@^1.0.0: resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.2.3: - version "0.2.3" - json-schema@0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify@^1.0.1: - version "1.0.1" + version "1.1.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454" + integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== dependencies: - jsonify "~0.0.0" + call-bind "^1.0.5" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" json-stringify-safe@~5.0.1: version "5.0.1" @@ -6316,8 +6331,10 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== jsprim@^1.2.2: version "1.4.2" @@ -6329,6 +6346,14 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" +keccak@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" + integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + keccak@^3.0.0, keccak@^3.0.2: version "3.0.4" resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" @@ -6338,14 +6363,6 @@ keccak@^3.0.0, keccak@^3.0.2: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keccak@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" @@ -6353,14 +6370,14 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -kind-of@^3.0.2, kind-of@^3.0.3: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== +keyv@^4.0.0: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: - is-buffer "^1.1.5" + json-buffer "3.0.1" -kind-of@^3.2.0: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== @@ -6374,10 +6391,7 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0: - version "5.1.0" - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -6496,6 +6510,14 @@ level-sublevel@6.6.4: typewiselite "~1.0.0" xtend "~4.0.0" +level-ws@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz" + integrity sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw== + dependencies: + readable-stream "~1.0.15" + xtend "~2.1.1" + level-ws@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz" @@ -6505,13 +6527,15 @@ level-ws@^1.0.0: readable-stream "^2.2.8" xtend "^4.0.1" -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz" - integrity sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw== +levelup@3.1.1, levelup@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz" + integrity sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg== dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" + deferred-leveldown "~4.0.0" + level-errors "~2.0.0" + level-iterator-stream "~3.0.0" + xtend "~4.0.0" levelup@^1.2.1: version "1.3.9" @@ -6526,16 +6550,6 @@ levelup@^1.2.1: semver "~5.4.1" xtend "~4.0.0" -levelup@^3.0.0, levelup@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz" - integrity sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg== - dependencies: - deferred-leveldown "~4.0.0" - level-errors "~2.0.0" - level-iterator-stream "~3.0.0" - xtend "~4.0.0" - load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" @@ -6592,16 +6606,16 @@ lodash.truncate@^4.4.2: resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lodash@^4.17.4, lodash@4.17.20: +lodash@4.17.20, lodash@^4.17.4: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + log-symbols@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" @@ -6644,10 +6658,12 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== +lru-cache@5.1.1, lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" lru-cache@^3.2.0: version "3.2.0" @@ -6656,19 +6672,10 @@ lru-cache@^3.2.0: dependencies: pseudomap "^1.0.1" -lru-cache@^5.1.1, lru-cache@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== ltgt@^2.1.2, ltgt@~2.1.1: version "2.1.3" @@ -6750,6 +6757,19 @@ merge-descriptors@1.0.1: resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== +merkle-patricia-tree@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz" + integrity sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ== + dependencies: + async "^2.6.1" + ethereumjs-util "^5.2.0" + level-mem "^3.0.1" + level-ws "^1.0.0" + readable-stream "^3.0.6" + rlp "^2.0.0" + semaphore ">=1.0.1" + merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz" @@ -6764,19 +6784,6 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: rlp "^2.0.0" semaphore ">=1.0.1" -merkle-patricia-tree@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz" - integrity sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ== - dependencies: - async "^2.6.1" - ethereumjs-util "^5.2.0" - level-mem "^3.0.1" - level-ws "^1.0.0" - readable-stream "^3.0.6" - rlp "^2.0.0" - semaphore ">=1.0.1" - methods@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" @@ -6822,26 +6829,18 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.45.0: - version "1.45.0" - mime-db@1.52.0: version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.19: +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime-types@^2.1.16, mime-types@~2.1.24: - version "2.1.28" - dependencies: - mime-db "1.45.0" - mime@1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" @@ -6852,6 +6851,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" @@ -6864,42 +6868,38 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^3.0.4: +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== +minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.5: - version "1.2.5" - -minimist@^1.2.6, minimist@^1.2.7: +minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.7, minimist@~1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass@^2.6.0, minipass@^2.8.6: - version "2.9.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^2.9.0: +minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -6907,8 +6907,10 @@ minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -minizlib@^1.2.1: +minizlib@^1.3.3: version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: minipass "^2.9.0" @@ -6927,12 +6929,12 @@ mkdirp-promise@^5.0.1: dependencies: mkdirp "*" -mkdirp@*, mkdirp@^0.5.0: - version "0.5.5" - dependencies: - minimist "^1.2.5" +mkdirp@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== -mkdirp@^0.5.1: +mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.6" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -6974,20 +6976,31 @@ mocha@^10.0.0, mocha@^10.2.0: yargs-unparser "2.0.0" mock-fs@^4.1.0: - version "4.13.0" + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== -ms@^2.1.1, ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +mock-property@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mock-property/-/mock-property-1.0.3.tgz#3e37c50a56609d548cabd56559fde3dd8767b10c" + integrity sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ== + dependencies: + define-data-property "^1.1.1" + functions-have-names "^1.2.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + hasown "^2.0.0" + isarray "^2.0.5" ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.1: - version "2.1.1" +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@2.1.3: version "2.1.3" @@ -7070,11 +7083,15 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -negotiator@0.6.2: - version "0.6.2" +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -next-tick@~1.0.0: - version "1.0.0" +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== nice-try@^1.0.4: version "1.0.5" @@ -7086,7 +7103,7 @@ node-addon-api@^2.0.0: resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@^2.6.1, node-fetch@^2.6.12: +node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -7101,14 +7118,16 @@ node-fetch@~1.7.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@2.1.2: - version "2.1.2" - node-gyp-build@^4.2.0: version "4.8.0" resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz" integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== +node-gyp-build@^4.3.0: + version "4.8.2" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.2.tgz#4f802b71c1ab2ca16af830e6c1ea7dd1ad9496fa" + integrity sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw== + node-releases@^2.0.14: version "2.0.14" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" @@ -7135,7 +7154,14 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^4.1.0: - version "4.5.0" + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== number-is-nan@^1.0.0: version "1.0.1" @@ -7174,17 +7200,10 @@ object-inspect@^1.13.1, object-inspect@^1.9.0: resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -object-inspect@^1.8.0: - version "1.9.0" - -object-inspect@~1.7.0: - version "1.7.0" - -object-is@^1.0.1: - version "1.1.4" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" +object-inspect@~1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== object-is@^1.1.5: version "1.1.5" @@ -7194,7 +7213,7 @@ object-is@^1.1.5: call-bind "^1.0.2" define-properties "^1.1.3" -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -7211,15 +7230,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.1: - version "4.1.2" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.assign@^4.1.4: +object.assign@^4.1.4, object.assign@^4.1.5: version "4.1.5" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== @@ -7229,12 +7240,18 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.1.1: - version "2.1.1" +object.getownpropertydescriptors@^2.1.6: + version "2.1.8" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" + integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + array.prototype.reduce "^1.0.6" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + gopd "^1.0.1" + safe-array-concat "^1.1.2" object.pick@^1.3.0: version "1.3.0" @@ -7255,8 +7272,10 @@ oboe@2.1.4: dependencies: http-https "^1.0.0" -on-finished@~2.3.0: - version "2.3.0" +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" @@ -7297,16 +7316,15 @@ os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-cancelable@^0.3.0: - version "0.3.0" - p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-finally@^1.0.0: - version "1.0.0" +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== p-limit@^1.1.0: version "1.3.0" @@ -7341,19 +7359,14 @@ p-map@^4.0.0: resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: - aggregate-error "^3.0.0" - -p-timeout@^1.1.1: - version "1.2.1" - dependencies: - p-finally "^1.0.0" + aggregate-error "^3.0.0" p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== -parse-asn1@^5.0.0, parse-asn1@^5.1.5: +parse-asn1@^5.0.0: version "5.1.6" resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== @@ -7364,13 +7377,27 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-asn1@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06" + integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== + dependencies: + asn1.js "^4.10.1" + browserify-aes "^1.2.0" + evp_bytestokey "^1.0.3" + hash-base "~3.0" + pbkdf2 "^3.1.2" + safe-buffer "^5.2.1" + parse-cache-control@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== parse-headers@^2.0.0: - version "2.0.3" + version "2.0.5" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== parse-json@^2.2.0: version "2.2.0" @@ -7389,43 +7416,43 @@ pascalcase@^0.1.1: resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== -patch-package@^6.2.2: - version "6.5.1" - resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz" - integrity sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA== +patch-package@6.2.2: + version "6.2.2" + resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz" + integrity sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg== dependencies: "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.2" + chalk "^2.4.2" cross-spawn "^6.0.5" - find-yarn-workspace-root "^2.0.0" - fs-extra "^9.0.0" + find-yarn-workspace-root "^1.2.1" + fs-extra "^7.0.1" is-ci "^2.0.0" klaw-sync "^6.0.0" - minimist "^1.2.6" - open "^7.4.2" + minimist "^1.2.0" rimraf "^2.6.3" semver "^5.6.0" slash "^2.0.0" tmp "^0.0.33" - yaml "^1.10.2" -patch-package@6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz" - integrity sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg== +patch-package@^6.2.2: + version "6.5.1" + resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz" + integrity sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA== dependencies: "@yarnpkg/lockfile" "^1.1.0" - chalk "^2.4.2" + chalk "^4.1.2" cross-spawn "^6.0.5" - find-yarn-workspace-root "^1.2.1" - fs-extra "^7.0.1" + find-yarn-workspace-root "^2.0.0" + fs-extra "^9.0.0" is-ci "^2.0.0" klaw-sync "^6.0.0" - minimist "^1.2.0" + minimist "^1.2.6" + open "^7.4.2" rimraf "^2.6.3" semver "^5.6.0" slash "^2.0.0" tmp "^0.0.33" + yaml "^1.10.2" path-browserify@^1.0.0: version "1.0.1" @@ -7459,7 +7486,7 @@ path-key@^2.0.1: resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -7483,7 +7510,7 @@ pathval@^1.1.1: resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== -pbkdf2@^3.0.17: +pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -7494,15 +7521,6 @@ pbkdf2@^3.0.17: safe-buffer "^5.0.1" sha.js "^2.4.8" -pbkdf2@^3.0.3, pbkdf2@^3.0.9: - version "3.1.1" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" @@ -7518,12 +7536,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^2.3.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== @@ -7550,6 +7563,11 @@ posix-character-classes@^0.1.0: resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + postinstall-postinstall@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz" @@ -7560,9 +7578,6 @@ precond@0.2: resolved "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz" integrity sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ== -prepend-http@^1.0.1: - version "1.0.4" - prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" @@ -7577,7 +7592,7 @@ prettier-plugin-solidity@^1.0.0-beta.16: semver "^7.5.4" solidity-comments-extractor "^0.0.8" -prettier@^2.1.2, prettier@^2.3.2, prettier@>=2.3.0: +prettier@^2.1.2, prettier@^2.3.2: version "2.8.8" resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== @@ -7621,10 +7636,12 @@ proper-lockfile@^4.1.1: retry "^0.12.0" signal-exit "^3.0.2" -proxy-addr@~2.0.5: - version "2.0.6" +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: - forwarded "~0.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" proxy-from-env@^1.1.0: @@ -7696,7 +7713,9 @@ pull-pushable@^2.0.0: integrity sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg== pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.6.8: - version "3.6.14" + version "3.7.0" + resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.7.0.tgz#85de0e44ff38a4d2ad08cc43fc458e1922f9bf0b" + integrity sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw== pull-window@^2.1.4: version "2.1.4" @@ -7713,18 +7732,27 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@2.1.0, punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz" + integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== + punycode@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0, punycode@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== - punycode@^2.1.1: - version "2.1.1" + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" qs@^6.11.2, qs@^6.4.0, qs@^6.9.4: version "6.11.2" @@ -7734,10 +7762,9 @@ qs@^6.11.2, qs@^6.4.0, qs@^6.9.4: side-channel "^1.0.4" qs@~6.5.2: - version "6.5.2" - -qs@6.7.0: - version "6.7.0" + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== query-string@^5.0.1: version "5.1.1" @@ -7748,6 +7775,11 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" @@ -7768,9 +7800,9 @@ range-parser@~1.2.1: resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@^2.4.1: +raw-body@2.5.2, raw-body@^2.4.1: version "2.5.2" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" + 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" @@ -7778,14 +7810,6 @@ raw-body@^2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@2.4.0: - version "2.4.0" - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" @@ -7813,18 +7837,7 @@ readable-stream@^1.0.33: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^2.2.2: +readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -7837,14 +7850,7 @@ readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6: - version "3.6.0" - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -7902,12 +7908,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: - version "1.3.0" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" @@ -7917,6 +7917,16 @@ regexp.prototype.flags@^1.5.1: define-properties "^1.2.0" set-function-name "^2.0.0" +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz" @@ -7939,7 +7949,9 @@ regjsparser@^0.1.4: jsesc "~0.5.0" repeat-element@^1.1.2: - version "1.1.3" + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" @@ -8013,6 +8025,11 @@ require-main-filename@^1.0.1: resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" @@ -8023,17 +8040,21 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve@^1.10.0, resolve@^1.8.1, resolve@1.17.0: +resolve@1.17.0, resolve@^1.10.0, resolve@^1.8.1: version "1.17.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" -resolve@~1.17.0: - version "1.17.0" +resolve@~1.22.6: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - path-parse "^1.0.6" + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" responselike@^1.0.2: version "1.0.2" @@ -8042,26 +8063,28 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" -resumer@~0.0.0: - version "0.0.0" +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== dependencies: - through "~2.3.4" + lowercase-keys "^2.0.0" ret@~0.1.10: version "0.1.15" resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - retry@0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + rimraf@^2.2.8, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" @@ -8077,23 +8100,28 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4: +rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4: version "2.2.7" resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== dependencies: bn.js "^5.2.0" -rlp@^2.2.1, rlp@^2.2.2: - version "2.2.6" - dependencies: - bn.js "^4.11.1" - rustbn.js@~0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== +safe-array-concat@^1.0.0, safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-array-concat@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz" @@ -8104,7 +8132,7 @@ safe-array-concat@^1.0.1: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -8114,9 +8142,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.1.2: - version "5.1.2" - safe-event-emitter@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz" @@ -8133,6 +8158,15 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.2.2" is-regex "^1.1.4" +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" @@ -8140,21 +8174,21 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scrypt-js@^3.0.0, scrypt-js@^3.0.1, scrypt-js@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - scrypt-js@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + scryptsy@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz" @@ -8176,22 +8210,12 @@ seedrandom@3.0.1: resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.1.tgz" integrity sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg== -semaphore@^1.0.3, semaphore@^1.1.0, semaphore@>=1.0.1: +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" integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== -semver@^5.3.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^5.5.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -8211,27 +8235,24 @@ semver@~5.4.1: resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz" integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== -"semver@2 || 3 || 4 || 5": - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -send@0.17.1: - version "0.17.1" +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.7.2" + http-errors "2.0.0" mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" + ms "2.1.3" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" serialize-javascript@6.0.0: version "6.0.0" @@ -8240,13 +8261,15 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -serve-static@1.14.1: - version "1.14.1" +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.1" + send "0.18.0" servify@^0.1.12: version "0.1.12" @@ -8274,6 +8297,18 @@ set-function-length@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + set-function-name@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" @@ -8283,6 +8318,16 @@ set-function-name@^2.0.0: functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" @@ -8298,18 +8343,15 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - setimmediate@1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz" integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== -setprototypeof@1.1.1: - version "1.1.1" +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" @@ -8364,7 +8406,9 @@ simple-concat@^1.0.0: integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^2.7.0: - version "2.8.1" + version "2.8.2" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" + integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== dependencies: decompress-response "^3.3.0" once "^1.3.1" @@ -8419,6 +8463,19 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" +solc@0.8.26: + version "0.8.26" + resolved "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz" + integrity sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g== + dependencies: + command-exists "^1.2.8" + commander "^8.1.0" + follow-redirects "^1.12.1" + js-sha3 "0.8.0" + memorystream "^0.3.1" + semver "^5.5.0" + tmp "0.0.33" + solc@^0.4.20: version "0.4.26" resolved "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz" @@ -8444,19 +8501,6 @@ solc@^0.6.3: semver "^5.5.0" tmp "0.0.33" -solc@0.8.26: - version "0.8.26" - resolved "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz" - integrity sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g== - dependencies: - command-exists "^1.2.8" - commander "^8.1.0" - follow-redirects "^1.12.1" - js-sha3 "0.8.0" - memorystream "^0.3.1" - semver "^5.5.0" - tmp "0.0.33" - solidity-ast@^0.4.51: version "0.4.55" resolved "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.55.tgz" @@ -8480,6 +8524,14 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@0.5.12: + version "0.5.12" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" @@ -8495,16 +8547,10 @@ source-map-support@^0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@0.5.12: - version "0.5.12" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-url@^0.4.0: - version "0.4.0" + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" @@ -8579,9 +8625,6 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" @@ -8597,34 +8640,15 @@ stop-iteration-iterator@^1.0.0: stream-to-pull-stream@^1.7.1: version "1.7.3" resolved "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz" - integrity sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg== - dependencies: - looper "^3.0.0" - pull-stream "^3.2.3" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + integrity sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg== dependencies: - safe-buffer "~5.1.0" + looper "^3.0.0" + pull-stream "^3.2.3" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== string-width@^1.0.1: version "1.0.2" @@ -8661,18 +8685,15 @@ string.prototype.trim@^1.2.8: define-properties "^1.2.0" es-abstract "^1.22.1" -string.prototype.trim@~1.2.1: - version "1.2.3" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -string.prototype.trimend@^1.0.1: - version "1.0.3" +string.prototype.trim@^1.2.9, string.prototype.trim@~1.2.8: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" string.prototype.trimend@^1.0.7: version "1.0.7" @@ -8683,11 +8704,14 @@ string.prototype.trimend@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.1: - version "1.0.3" +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" string.prototype.trimstart@^1.0.7: version "1.0.7" @@ -8698,6 +8722,34 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" @@ -8738,6 +8790,13 @@ strip-json-comments@3.1.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" @@ -8757,21 +8816,21 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== swarm-js@^0.1.40: - version "0.1.40" + version "0.1.42" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" + integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== dependencies: bluebird "^3.5.0" buffer "^5.0.5" eth-lib "^0.1.26" fs-extra "^4.0.2" - got "^7.1.0" + got "^11.8.5" mime-types "^2.1.16" mkdirp-promise "^5.0.1" mock-fs "^4.1.0" @@ -8807,34 +8866,39 @@ table@^6.8.0: strip-ansi "^6.0.1" tape@^4.6.3: - version "4.13.3" + version "4.17.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.17.0.tgz#de89f3671ddc5dad178d04c28dc6b0183f42268e" + integrity sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw== dependencies: + "@ljharb/resumer" "~0.0.1" + "@ljharb/through" "~2.3.9" + call-bind "~1.0.2" deep-equal "~1.1.1" - defined "~1.0.0" + defined "~1.0.1" dotignore "~0.1.2" for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.6" + glob "~7.2.3" has "~1.0.3" inherits "~2.0.4" - is-regex "~1.0.5" - minimist "~1.2.5" - object-inspect "~1.7.0" - resolve "~1.17.0" - resumer "~0.0.0" - string.prototype.trim "~1.2.1" - through "~2.3.8" + is-regex "~1.1.4" + minimist "~1.2.8" + mock-property "~1.0.0" + object-inspect "~1.12.3" + resolve "~1.22.6" + string.prototype.trim "~1.2.8" tar@^4.0.2: - version "4.4.13" + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" test-value@^2.1.0: version "2.1.0" @@ -8866,9 +8930,6 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" -through@~2.3.4, through@~2.3.8: - version "2.3.8" - through2@^2.0.3: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" @@ -8877,12 +8938,22 @@ through2@^2.0.3: readable-stream "~2.3.6" xtend "~4.0.1" -timed-out@^4.0.0, timed-out@^4.0.1: +timed-out@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== -tmp@^0.0.33, tmp@0.0.33: +tiny-invariant@^1.1.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tmp@0.0.33, tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -8943,8 +9014,10 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toidentifier@1.0.0: - version "1.0.0" +toformat@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/toformat/-/toformat-2.0.0.tgz#7a043fd2dfbe9021a4e36e508835ba32056739d8" + integrity sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ== toidentifier@1.0.1: version "1.0.1" @@ -8994,26 +9067,21 @@ ts-generator@^0.1.1: resolve "^1.8.1" ts-essentials "^1.0.0" +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tslib@^1.11.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.3.1: - version "2.6.3" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== - -tslib@^2.6.2: +tslib@^2.3.1, tslib@^2.6.2: version "2.6.3" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== -tslib@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - tsort@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz" @@ -9031,26 +9099,16 @@ tweetnacl-util@^0.15.0, tweetnacl-util@^0.15.1: resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== -tweetnacl@^0.14.3: +tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== -tweetnacl@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -tweetnacl@^1.0.3: +tweetnacl@^1.0.0, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" @@ -9071,7 +9129,7 @@ type-fest@^0.7.1: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== -type-is@~1.6.17, type-is@~1.6.18: +type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -9084,8 +9142,10 @@ type@^1.0.1: resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== -type@^2.0.0: - version "2.1.0" +type@^2.7.2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486" + integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== typechain@^3.0.0: version "3.0.0" @@ -9109,6 +9169,15 @@ typed-array-buffer@^1.0.0: get-intrinsic "^1.2.1" is-typed-array "^1.1.10" +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + typed-array-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" @@ -9119,6 +9188,17 @@ typed-array-byte-length@^1.0.0: has-proto "^1.0.1" is-typed-array "^1.1.10" +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + typed-array-byte-offset@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" @@ -9130,6 +9210,18 @@ typed-array-byte-offset@^1.0.0: has-proto "^1.0.1" is-typed-array "^1.1.10" +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" @@ -9139,6 +9231,18 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" @@ -9151,11 +9255,6 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@*, typescript@>=3.7.0: - version "5.5.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz" - integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ== - typewise-core@^1.2, typewise-core@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz" @@ -9210,11 +9309,6 @@ undici@^5.14.0: dependencies: "@fastify/busboy" "^2.0.0" -undici@^6.11.1: - version "6.19.2" - resolved "https://registry.npmjs.org/undici/-/undici-6.19.2.tgz" - integrity sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA== - unfetch@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz" @@ -9245,7 +9339,7 @@ unorm@^1.3.3: resolved "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz" integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -9278,11 +9372,6 @@ urix@^0.1.0: resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== -url-parse-lax@^1.0.0: - version "1.0.0" - dependencies: - prepend-http "^1.0.1" - url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" @@ -9295,9 +9384,6 @@ url-set-query@^1.0.0: resolved "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz" integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== -url-to-options@^1.0.1: - version "1.0.1" - url@^0.11.0: version "0.11.3" resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" @@ -9312,11 +9398,13 @@ use@^3.1.0: integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== utf-8-validate@^5.0.2: - version "5.0.4" + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== dependencies: - node-gyp-build "^4.2.0" + node-gyp-build "^4.3.0" -utf8@^3.0.0, utf8@3.0.0: +utf8@3.0.0, utf8@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== @@ -9327,19 +9415,33 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util.promisify@^1.0.0: - version "1.1.1" + version "1.1.2" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.2.tgz#02b3dbadbb80071eee4c43aed58747afdfc516db" + integrity sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" + call-bind "^1.0.2" + define-properties "^1.2.0" for-each "^0.3.3" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.1" + has-proto "^1.0.1" + has-symbols "^1.0.3" + object.getownpropertydescriptors "^2.1.6" + safe-array-concat "^1.0.0" utils-merge@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz" + integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + uuid@^3.3.2: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" @@ -9355,16 +9457,6 @@ uuid@^9.0.1: resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz" - integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" @@ -9630,20 +9722,6 @@ web3-shh@1.2.11: web3-core-subscriptions "1.2.11" web3-net "1.2.11" -web3-utils@^1.0.0-beta.31: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz" - integrity sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ== - dependencies: - "@ethereumjs/util" "^8.1.0" - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereum-cryptography "^2.1.2" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - web3-utils@1.2.11: version "1.2.11" resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz" @@ -9658,6 +9736,20 @@ web3-utils@1.2.11: underscore "1.9.1" utf8 "3.0.0" +web3-utils@^1.0.0-beta.31: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz" + integrity sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ== + dependencies: + "@ethereumjs/util" "^8.1.0" + bn.js "^5.2.1" + ethereum-bloom-filters "^1.0.6" + ethereum-cryptography "^2.1.2" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + web3@1.2.11: version "1.2.11" resolved "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz" @@ -9676,7 +9768,7 @@ webidl-conversions@^3.0.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -websocket@^1.0.31, websocket@1.0.32: +websocket@1.0.32, websocket@^1.0.31: version "1.0.32" resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz" integrity sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q== @@ -9688,8 +9780,10 @@ websocket@^1.0.31, websocket@1.0.32: utf-8-validate "^5.0.2" yaeti "^0.0.6" -whatwg-fetch@2.0.4: +whatwg-fetch@^2.0.4: version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== whatwg-url@^5.0.0: version "5.0.0" @@ -9736,6 +9830,17 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13: gopd "^1.0.1" has-tostringtag "^1.0.0" +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + which@^1.2.9: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" @@ -9782,6 +9887,16 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +ws@7.4.6: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@8.17.1: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + ws@^3.0.0: version "3.3.3" resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" @@ -9792,7 +9907,9 @@ ws@^3.0.0: ultron "~1.1.0" ws@^5.1.1: - version "5.2.2" + version "5.2.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.4.tgz#c7bea9f1cfb5f410de50e70e82662e562113f9a7" + integrity sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ== dependencies: async-limiter "~1.0.0" @@ -9801,16 +9918,6 @@ ws@^7.4.6: resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@7.4.6: - version "7.4.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -ws@8.17.1: - version "8.17.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - xhr-request-promise@^0.1.2: version "0.1.3" resolved "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz" @@ -9831,6 +9938,13 @@ xhr-request@^1.0.1, xhr-request@^1.1.0: url-set-query "^1.0.0" xhr "^2.0.4" +xhr2-cookies@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz" + integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== + dependencies: + cookiejar "^2.1.1" + xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: version "2.6.0" resolved "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz" @@ -9841,13 +9955,6 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: parse-headers "^2.0.0" xtend "^4.0.0" -xhr2-cookies@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz" - integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== - dependencies: - cookiejar "^2.1.1" - xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz" @@ -9880,21 +9987,21 @@ yaeti@^0.0.6: resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yaml@^1.10.2: version "1.10.2" resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yargs-parser@20.2.4, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz" @@ -9903,11 +10010,6 @@ yargs-parser@^2.4.1: camelcase "^3.0.0" lodash.assign "^4.0.6" -yargs-parser@^20.2.2, yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-unparser@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" @@ -9918,6 +10020,19 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yargs@^4.7.1: version "4.8.1" resolved "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz" @@ -9938,27 +10053,19 @@ yargs@^4.7.1: y18n "^3.2.1" yargs-parser "^2.4.1" -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zksync-ethers@^5.0.0: - version "5.9.1" - resolved "https://registry.npmjs.org/zksync-ethers/-/zksync-ethers-5.9.1.tgz" - integrity sha512-Y1zxoVxOz1cujw+5RcJVR6rANpX398DVFtUIOkovciltyk1hKetavGmCTA5fCmfqoA074Jjxl6SpX7vrDcUVSg== +zksync-web3@^0.14.3: + version "0.14.4" + resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.14.4.tgz#0b70a7e1a9d45cc57c0971736079185746d46b1f" + integrity sha512-kYehMD/S6Uhe1g434UnaMN+sBr9nQm23Ywn0EUP5BfQCsbjcr3ORuS68PosZw8xUTu3pac7G6YMSnNHk+fwzvg== + +zksync-web3@^0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.17.1.tgz#809c3b31295c29aae924ec2fe47f87701b539012" + integrity sha512-jMV4gfAQyehkIbNs81i4uvccHLe+XBu/tNPFb0Rm38pXccWY5VXzVE6XWS0dBiHlMfjdfUGn/sxwzJbWZDGYGQ== dependencies: ethers "~5.7.0"