diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index cff1eedc..de8cadbb 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -8,14 +8,15 @@ jobs: steps: - name: Checkout the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive - - uses: actions/cache@v3 + - name: Setup Node.js + uses: actions/setup-node@v4 with: - path: "**/node_modules" - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} + node-version: '22' + cache: 'yarn' - name: Install Yarn dependencies run: yarn install diff --git a/.gitignore b/.gitignore index c9d91b2e..6469541b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,15 +6,12 @@ node_modules /artifacts # TypeChain files -/typechain -/typechain-types +/types # solidity-coverage files /coverage /coverage.json -# Hardhat Ignition default folder for deployments against a local node -ignition/deployments/chain-31337 - +# Local deployments deployments/localhost.json diff --git a/contracts/core/test/chainlink/CLContractImports0.8.sol b/contracts/core/test/chainlink/CLContractImports0.8.sol deleted file mode 100644 index c54bd150..00000000 --- a/contracts/core/test/chainlink/CLContractImports0.8.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.0; - -import "@chainlink/contracts/src/v0.8/operatorforwarder/Operator.sol"; diff --git a/contracts/core/test/ChainlinkAggregatorMock.sol b/contracts/core/test/chainlink/ChainlinkAggregatorMock.sol similarity index 100% rename from contracts/core/test/ChainlinkAggregatorMock.sol rename to contracts/core/test/chainlink/ChainlinkAggregatorMock.sol diff --git a/hardhat.config.ts b/hardhat.config.ts index b090d00c..fa77a78d 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,7 +1,12 @@ -import { HardhatUserConfig } from 'hardhat/config' -import '@nomicfoundation/hardhat-toolbox' -import '@nomicfoundation/hardhat-ledger' -import '@openzeppelin/hardhat-upgrades' +import { defineConfig, configVariable } from 'hardhat/config' +import hardhatLedger from '@nomicfoundation/hardhat-ledger' +import hardhatVerify from '@nomicfoundation/hardhat-verify' +import hardhatTypechain from '@nomicfoundation/hardhat-typechain' +import hardhatNetworkHelpers from '@nomicfoundation/hardhat-network-helpers' +import hardhatEthers from '@nomicfoundation/hardhat-ethers' +import hardhatChaiMatchers from '@nomicfoundation/hardhat-ethers-chai-matchers' +import hardhatMocha from '@nomicfoundation/hardhat-mocha' +import hardhatUpgrades from '@openzeppelin/hardhat-upgrades' const balance = '100000000000000000000000' const accounts = [ @@ -28,24 +33,30 @@ const ledgerConfig = { }, } -const config: HardhatUserConfig = { - defaultNetwork: 'localhost', +export default defineConfig({ networks: { localhost: { + type: 'http', url: 'http://127.0.0.1:8545', gas: 'auto', ...ledgerConfig, }, mainnet: { - url: '', + type: 'http', + url: configVariable('MAINNET_RPC_URL'), + gasMultiplier: 1.3, ...ledgerConfig, }, polygon: { - url: '', - accounts, + type: 'http', + url: configVariable('POLYGON_RPC_URL'), + gasMultiplier: 1.3, + ...ledgerConfig, }, hardhat: { + type: 'edr-simulated', chainId: 1337, + hardfork: 'cancun', // required to bypass EIP-7825 when running pre EIP-7825 contract tests (new contracts should adhere to the gas limit) accounts: accounts.map((acct) => ({ privateKey: acct, balance })), mining: { auto: true, @@ -54,13 +65,23 @@ const config: HardhatUserConfig = { gas: 'auto', }, }, - etherscan: { - apiKey: '', - }, - sourcify: { - enabled: false, + verify: { + etherscan: { + apiKey: '', + }, }, + plugins: [ + hardhatLedger, + hardhatVerify, + hardhatTypechain, + hardhatNetworkHelpers, + hardhatEthers, + hardhatChaiMatchers, + hardhatMocha, + hardhatUpgrades, + ], solidity: { + npmFilesToBuild: ['@chainlink/contracts/src/v0.8/operatorforwarder/Operator.sol'], compilers: [ { version: '0.8.22', @@ -100,6 +121,4 @@ const config: HardhatUserConfig = { }, ], }, -} - -export default config +}) diff --git a/package.json b/package.json index a39265d2..be424bba 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "repository": "git@github.com:stakedotlink/contracts.git", "license": "MIT", + "type": "module", "scripts": { "start": "npx hardhat node --network hardhat", "test": "npx hardhat test --network hardhat", @@ -17,21 +18,19 @@ "solhint": "solhint contracts/**/*.sol" }, "devDependencies": { - "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", - "@nomicfoundation/hardhat-ethers": "^3.0.0", - "@nomicfoundation/hardhat-ignition": "^0.15.0", - "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", - "@nomicfoundation/hardhat-ledger": "^1.0.3", - "@nomicfoundation/hardhat-network-helpers": "^1.0.0", - "@nomicfoundation/hardhat-toolbox": "^5.0.0", - "@nomicfoundation/hardhat-verify": "2.1.1", - "@openzeppelin/hardhat-upgrades": "^3.2.0", + "@nomicfoundation/hardhat-ethers": "^4.0.4", + "@nomicfoundation/hardhat-ethers-chai-matchers": "^3.0.2", + "@nomicfoundation/hardhat-ledger": "^3.0.1", + "@nomicfoundation/hardhat-mocha": "^3.0.9", + "@nomicfoundation/hardhat-network-helpers": "^3.0.3", + "@nomicfoundation/hardhat-typechain": "^3.0.1", + "@nomicfoundation/hardhat-verify": "^3.0.8", + "@openzeppelin/hardhat-upgrades": "4.0.0-alpha.0", "@openzeppelin/merkle-tree": "^1.0.6", "@safe-global/api-kit": "^4.0.1", "@safe-global/protocol-kit": "^6.1.2", "@safe-global/types-kit": "^3.0.0", "@typechain/ethers-v6": "^0.5.0", - "@typechain/hardhat": "^9.0.0", "@types/chai": "^4.2.0", "@types/fs-extra": "^11.0.4", "@types/mocha": ">=9.1.0", @@ -40,11 +39,10 @@ "chai": "^4.2.0", "ethers": "^6.4.0", "fs-extra": "^11.2.0", - "hardhat": "^2.22.19", - "hardhat-gas-reporter": "^1.0.8", + "hardhat": "^3.1.5", + "mocha": "^11.7.5", "prettier-plugin-solidity": "^1.3.1", - "solhint": "^5.0.1", - "solidity-coverage": "^0.8.0", + "solhint": "^6.0.3", "ts-node": ">=8.0.0", "typechain": "^8.3.0", "typescript": ">=4.5.0" diff --git a/scripts/utils/deployment.ts b/scripts/utils/deployment.ts index 4c7f8ee5..13d6e547 100644 --- a/scripts/utils/deployment.ts +++ b/scripts/utils/deployment.ts @@ -1,7 +1,8 @@ import { Addressable } from 'ethers' import fse from 'fs-extra' -import { ethers, upgrades, network } from 'hardhat' -import { getLedgerSigner } from './helpers' +import { getConnection, getLedgerSigner } from './helpers' + +const { connection, ethers, upgradesApi } = await getConnection() export const deploy = async (contractName: string, args: any[] = []): Promise => { const ledgerSigner = await getLedgerSigner() @@ -11,13 +12,13 @@ export const deploy = async (contractName: string, args: any[] = []): Promise { const ledgerSigner = await getLedgerSigner() const Contract = await ethers.getContractFactory(contractName, ledgerSigner) - return upgrades.deployProxy(Contract, args, { kind: 'uups', ...options }) as any + return upgradesApi.deployProxy(Contract, args, { kind: 'uups', ...options }) as any } export const deployImplementation = async (contractName: string) => { const ledgerSigner = await getLedgerSigner() const Contract = await ethers.getContractFactory(contractName, ledgerSigner) - return upgrades.deployImplementation(Contract, { kind: 'uups' }) + return upgradesApi.deployImplementation(Contract, { kind: 'uups' }) } export const upgradeProxy = async ( @@ -28,20 +29,21 @@ export const upgradeProxy = async ( ) => { const ledgerSigner = await getLedgerSigner() const Contract = await ethers.getContractFactory(implementationContractName, ledgerSigner) - const contract = await upgrades.upgradeProxy(proxyAddress, Contract, { + return upgradesApi.upgradeProxy(proxyAddress, Contract, { useDeployedImplementation, call, kind: 'uups', - }) - await contract.deployed() - return contract + }) as any } export const getDeployments = (networkName?: string) => { - fse.ensureFileSync(`deployments/${networkName || network.name}.json`) - const deployments = fse.readJSONSync(`deployments/${networkName || network.name}.json`, { - throws: false, - }) + fse.ensureFileSync(`deployments/${networkName || connection.networkName}.json`) + const deployments = fse.readJSONSync( + `deployments/${networkName || connection.networkName}.json`, + { + throws: false, + } + ) if (!deployments) { return {} @@ -65,7 +67,7 @@ export const updateDeployments = ( ) fse.outputJSONSync( - `deployments/${network.name}.json`, + `deployments/${connection.networkName}.json`, { ...deployments, ...newDeploymentsWithArtifacts }, { spaces: 2 } ) @@ -86,8 +88,10 @@ export const getContract = async (contractName: string, networkName?: string): P } export const printDeployments = () => { - fse.ensureFileSync(`deployments/${network.name}.json`) - const deployments = fse.readJSONSync(`deployments/${network.name}.json`, { throws: false }) + fse.ensureFileSync(`deployments/${connection.networkName}.json`) + const deployments = fse.readJSONSync(`deployments/${connection.networkName}.json`, { + throws: false, + }) if (!deployments) { console.log('Deployments: Nothing to print') diff --git a/scripts/utils/helpers.ts b/scripts/utils/helpers.ts index 6737354d..5b377a0c 100644 --- a/scripts/utils/helpers.ts +++ b/scripts/utils/helpers.ts @@ -1,17 +1,25 @@ -import { ethers } from 'hardhat' +import hre, { network } from 'hardhat' +import { parseEther, formatEther } from 'ethers' +import { upgrades } from '@openzeppelin/hardhat-upgrades' import axios from 'axios' +const connection = await network.connect(hre.globalOptions.network) +const ethers = (connection as any).ethers +const upgradesApi = await upgrades(hre, connection) + +export const getConnection = async () => ({ connection, ethers, upgradesApi }) + export const toEther = (amount: string | number) => { - return ethers.parseEther(amount.toString()) + return parseEther(amount.toString()) } export const fromEther = (amount: bigint) => { - return Number(ethers.formatEther(amount)) + return Number(formatEther(amount)) } export const getAccounts = async (): Promise => { const signers = await ethers.getSigners() - const accounts = await Promise.all(signers.map(async (signer) => signer.getAddress())) + const accounts = await Promise.all(signers.map(async (signer: any) => signer.getAddress())) return { signers, accounts } } diff --git a/test/core/curveGaugeDistributor/curve-gauge-ccip-receiver.test.ts b/test/core/curveGaugeDistributor/curve-gauge-ccip-receiver.test.ts index 8091046e..339dd75e 100644 --- a/test/core/curveGaugeDistributor/curve-gauge-ccip-receiver.test.ts +++ b/test/core/curveGaugeDistributor/curve-gauge-ccip-receiver.test.ts @@ -1,14 +1,13 @@ -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' import { assert, expect } from 'chai' -import { ethers } from 'hardhat' -import { id, AbiCoder } from 'ethers' -import { +import type { CCIPCurveGaugeReceiver, CurveGaugeDistributorMock, MockCCIPRouter, -} from '../../../typechain-types' -import { deploy, fromEther, getAccounts, toEther } from '../../utils/helpers' -import { ERC677 } from '../../../typechain-types/contracts/core/tokens/base' + ERC677, +} from '../../../types/ethers-contracts' +import { deploy, fromEther, getAccounts, getConnection, toEther } from '../../utils/helpers' + +const { ethers, loadFixture } = getConnection() const chainSelector = 7777n @@ -66,8 +65,8 @@ describe('CCIPCurveGaugeReceiver', function () { ] const gasLimit = 200000 - const functionSelector = id('CCIP EVMExtraArgsV1').slice(0, 10) - const defaultAbiCoder = AbiCoder.defaultAbiCoder() + const functionSelector = ethers.id('CCIP EVMExtraArgsV1').slice(0, 10) + const defaultAbiCoder = ethers.AbiCoder.defaultAbiCoder() const extraArgs = defaultAbiCoder.encode(['uint256'], [gasLimit]) const encodedExtraArgs = `${functionSelector}${extraArgs.slice(2)}` @@ -79,10 +78,10 @@ describe('CCIPCurveGaugeReceiver', function () { extraArgs: encodedExtraArgs, } - await expect(ccipRouter.connect(signers[1]).ccipSend(chainSelector, message)).to.be.reverted + await expect(ccipRouter.connect(signers[1]).ccipSend(chainSelector, message)).to.revert(ethers) await expect( ccipRouter.connect(signers[1]).ccipSend(chainSelector, { ...message, tokenAmounts: [] }) - ).to.be.reverted + ).to.revert(ethers) await ccipRouter.ccipSend(chainSelector, message) diff --git a/test/core/curveGaugeDistributor/curve-gauge-ccip-sender.test.ts b/test/core/curveGaugeDistributor/curve-gauge-ccip-sender.test.ts index 4289f78a..aa4b3162 100644 --- a/test/core/curveGaugeDistributor/curve-gauge-ccip-sender.test.ts +++ b/test/core/curveGaugeDistributor/curve-gauge-ccip-sender.test.ts @@ -1,24 +1,30 @@ -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' import { assert, expect } from 'chai' -import { ethers } from 'hardhat' -import { id, AbiCoder } from 'ethers' -import { +import type { CCIPCurveGaugeReceiver, CCIPCurveGaugeSender, CurveGaugeDistributorMock, MockCCIPRouter, StakingPool, WrappedSDToken, -} from '../../../typechain-types' -import { deploy, deployUpgradeable, fromEther, getAccounts, toEther } from '../../utils/helpers' -import { ERC677 } from '../../../typechain-types/contracts/core/tokens/base' + ERC677, +} from '../../../types/ethers-contracts' +import { + deploy, + deployUpgradeable, + fromEther, + getAccounts, + getConnection, + toEther, +} from '../../utils/helpers' + +const { ethers, loadFixture } = getConnection() const sourceChainSelector = 7777n const destChainSelector = 8888n const gasLimit = 200000 -const functionSelector = id('CCIP EVMExtraArgsV1').slice(0, 10) -const extraArgs = AbiCoder.defaultAbiCoder().encode(['uint256'], [gasLimit]) +const functionSelector = ethers.id('CCIP EVMExtraArgsV1').slice(0, 10) +const extraArgs = ethers.AbiCoder.defaultAbiCoder().encode(['uint256'], [gasLimit]) const encodedExtraArgs = `${functionSelector}${extraArgs.slice(2)}` describe('CCIPCurveGaugeSender', function () { diff --git a/test/core/integrations/wlst-underlying-chainlink-price-adapter.test.ts b/test/core/integrations/wlst-underlying-chainlink-price-adapter.test.ts index ec2641c5..5593b8d2 100644 --- a/test/core/integrations/wlst-underlying-chainlink-price-adapter.test.ts +++ b/test/core/integrations/wlst-underlying-chainlink-price-adapter.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert } from 'chai' import { toEther, @@ -7,15 +6,17 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../../utils/helpers' -import { +import type { ERC677, StrategyMock, StakingPool, WrappedSDToken, WLSTUnderlyingChainlinkPriceAdapter, -} from '../../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +} from '../../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('WLSTUnderlyingChainlinkPriceAdapter', () => { async function deployFixture() { diff --git a/test/core/integrations/wlst-usdc-chainlink-price-adapter.test.ts b/test/core/integrations/wlst-usdc-chainlink-price-adapter.test.ts index f92ac3d8..2e2036d9 100644 --- a/test/core/integrations/wlst-usdc-chainlink-price-adapter.test.ts +++ b/test/core/integrations/wlst-usdc-chainlink-price-adapter.test.ts @@ -1,15 +1,22 @@ -import { ethers } from 'hardhat' import { assert } from 'chai' -import { toEther, deploy, deployUpgradeable, getAccounts, setupToken } from '../../utils/helpers' import { + toEther, + deploy, + deployUpgradeable, + getAccounts, + setupToken, + getConnection, +} from '../../utils/helpers' +import type { ERC677, StrategyMock, StakingPool, WrappedSDToken, WLSTUSDCChainlinkPriceAdapter, ChainlinkAggregatorMock, -} from '../../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +} from '../../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('WLSTUSDCChainlinkPriceAdapter', () => { async function deployFixture() { @@ -110,7 +117,10 @@ describe('WLSTUSDCChainlinkPriceAdapter', () => { await stakingPool.updateStrategyRewards([0], '0x') const [, answer, , ,] = await adapter.latestRoundData() - assert.closeTo(Number(answer) / 1e8, 25, 0.01) + assert.isTrue( + Math.abs(Number(answer) / 1e8 - 25) < 0.01, + `Expected ~25, got ${Number(answer) / 1e8}` + ) }) it('should return correct price when USDC depegs to $0.99', async () => { @@ -119,7 +129,10 @@ describe('WLSTUSDCChainlinkPriceAdapter', () => { await usdcUSDFeed.updateAnswer(99000000) const [, answer, , ,] = await adapter.latestRoundData() - assert.closeTo(Number(answer) / 1e8, 20.2, 0.01) + assert.isTrue( + Math.abs(Number(answer) / 1e8 - 20.2) < 0.01, + `Expected ~20.2, got ${Number(answer) / 1e8}` + ) }) it('should return correct price when LINK drops to $15', async () => { @@ -152,6 +165,9 @@ describe('WLSTUSDCChainlinkPriceAdapter', () => { await underlyingUSDFeed.updateAnswer(3000000000) const [, answer, , ,] = await adapter.latestRoundData() - assert.closeTo(Number(answer) / 1e8, 60, 0.01) + assert.isTrue( + Math.abs(Number(answer) / 1e8 - 60) < 0.01, + `Expected ~60, got ${Number(answer) / 1e8}` + ) }) }) diff --git a/test/core/lpl-migration.test.ts b/test/core/lpl-migration.test.ts index 0a5cb50d..47298805 100644 --- a/test/core/lpl-migration.test.ts +++ b/test/core/lpl-migration.test.ts @@ -1,39 +1,43 @@ -import { toEther, deploy, getAccounts, setupToken, fromEther } from '../utils/helpers' -import { ERC677, StakingAllowance, LPLMigration } from '../../typechain-types' +import { + toEther, + deploy, + getAccounts, + setupToken, + fromEther, + getConnection, +} from '../utils/helpers' +import type { ERC677, StakingAllowance, LPLMigration } from '../../types/ethers-contracts' import { assert, expect } from 'chai' -import { loadFixture } from '@nomicfoundation/hardhat-toolbox/network-helpers' + +const { loadFixture } = getConnection() describe('LPLMigration', () => { async function deployFixture() { const { accounts, signers } = await getAccounts() - const adrs: any = {} const lplToken = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'LinkPool', 'LPL', 100000000, ])) as ERC677 - adrs.lplToken = await lplToken.getAddress() await setupToken(lplToken, accounts) const sdlToken = (await deploy('StakingAllowance', [ 'Stake Dot Link', 'SDL', ])) as StakingAllowance - adrs.sdlToken = await sdlToken.getAddress() const lplMigration = (await deploy('LPLMigration', [ - adrs.lplToken, - adrs.sdlToken, + lplToken.target, + sdlToken.target, ])) as LPLMigration - adrs.lplMigration = await lplMigration.getAddress() await sdlToken.mint(accounts[0], toEther(50000000)) - await sdlToken.transfer(adrs.lplMigration, toEther(50000000)) - await lplToken.connect(signers[1]).transferAndCall(adrs.lplMigration, toEther(10000), '0x') - await lplToken.connect(signers[2]).transferAndCall(adrs.lplMigration, toEther(100), '0x') + await sdlToken.transfer(lplMigration.target, toEther(50000000)) + await lplToken.connect(signers[1]).transferAndCall(lplMigration.target, toEther(10000), '0x') + await lplToken.connect(signers[2]).transferAndCall(lplMigration.target, toEther(100), '0x') - return { signers, accounts, adrs, lplToken, sdlToken, lplMigration } + return { signers, accounts, lplToken, sdlToken, lplMigration } } it('should be able to swap LPL for SDL', async () => { @@ -62,25 +66,25 @@ describe('LPLMigration', () => { }) it('should be correct amount of LPL and SDL in contract', async () => { - const { adrs, lplToken, sdlToken } = await loadFixture(deployFixture) + const { lplToken, sdlToken, lplMigration } = await loadFixture(deployFixture) assert.equal( - fromEther(await lplToken.balanceOf(adrs.lplMigration)), + fromEther(await lplToken.balanceOf(lplMigration.target)), 10100, 'Should be 10100 LPL locked in migration contract' ) assert.equal( - fromEther(await sdlToken.balanceOf(adrs.lplMigration)), + fromEther(await sdlToken.balanceOf(lplMigration.target)), 49994950, 'Should be 4994950 SDL left in migration contract' ) }) it('should not be able to swap more than LPL balance', async () => { - const { adrs, signers, lplToken } = await loadFixture(deployFixture) + const { signers, lplToken, lplMigration } = await loadFixture(deployFixture) await expect( - lplToken.connect(signers[2]).transferAndCall(adrs.lplMigration, toEther(10000), '0x') + lplToken.connect(signers[2]).transferAndCall(lplMigration.target, toEther(10000), '0x') ).to.be.revertedWith('ERC20: transfer amount exceeds balance') }) diff --git a/test/core/lst-rewards-splitter.test.ts b/test/core/lst-rewards-splitter.test.ts index e4330343..be173a5e 100644 --- a/test/core/lst-rewards-splitter.test.ts +++ b/test/core/lst-rewards-splitter.test.ts @@ -5,11 +5,16 @@ import { setupToken, fromEther, deployUpgradeable, + getConnection, } from '../utils/helpers' -import { LSTMock, LSTRewardsSplitterController, StakingPool } from '../../typechain-types' +import type { + LSTMock, + LSTRewardsSplitterController, + StakingPool, +} from '../../types/ethers-contracts' import { assert, expect } from 'chai' -import { loadFixture } from '@nomicfoundation/hardhat-toolbox/network-helpers' -import { ethers } from 'hardhat' + +const { ethers, loadFixture } = getConnection() describe('LSTRewardsSplitter', () => { async function deployFixture() { @@ -77,10 +82,10 @@ describe('LSTRewardsSplitter', () => { await expect( controller.connect(signers[2]).withdraw(toEther(100)) ).to.be.revertedWithCustomError(controller, 'SenderNotAuthorized()') - await expect(controller.withdraw(toEther(101))).to.be.reverted + await expect(controller.withdraw(toEther(101))).to.revert(ethers) - let acc0Balance = await token.balanceOf(accounts[0]) - let acc1Balance = await token.balanceOf(accounts[1]) + let acc0Balance: bigint = await token.balanceOf(accounts[0]) + let acc1Balance: bigint = await token.balanceOf(accounts[1]) await controller.withdraw(toEther(100)) await controller.connect(signers[1]).withdraw(toEther(50)) diff --git a/test/core/priorityPool/distribution-oracle.test.ts b/test/core/priorityPool/distribution-oracle.test.ts index 5e854f25..f140cc55 100644 --- a/test/core/priorityPool/distribution-oracle.test.ts +++ b/test/core/priorityPool/distribution-oracle.test.ts @@ -1,45 +1,47 @@ -import { toEther, deploy, fromEther, getAccounts } from '../../utils/helpers' +import { toEther, deploy, fromEther, getAccounts, getConnection } from '../../utils/helpers' import { assert, expect } from 'chai' -import { ERC677, DistributionOracle, PriorityPoolMock, Operator } from '../../../typechain-types' -import { ethers } from 'hardhat' -import { loadFixture, mineUpTo, time } from '@nomicfoundation/hardhat-network-helpers' +import type { + ERC677, + DistributionOracle, + PriorityPoolMock, + Operator, +} from '../../../types/ethers-contracts' import cbor from 'cbor' +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time +const mineUpTo = networkHelpers.mineUpTo + describe('DistributionOracle', () => { async function deployFixture() { const { accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() const pp = (await deploy('PriorityPoolMock', [toEther(1000)])) as PriorityPoolMock - adrs.pp = await pp.getAddress() - const opContract = (await deploy('Operator', [adrs.token, accounts[0]])) as Operator - adrs.opContract = await opContract.getAddress() + const opContract = (await deploy('Operator', [token.target, accounts[0]])) as Operator const oracle = (await deploy('DistributionOracle', [ - adrs.token, - adrs.opContract, + token.target, + opContract.target, '0x' + Buffer.from('64797f2053684fef80138a5be83281b1').toString('hex'), toEther(1), 0, toEther(100), 10, - adrs.pp, + pp.target, ])) as DistributionOracle - adrs.oracle = await oracle.getAddress() await opContract.setAuthorizedSenders([accounts[0]]) - await token.transfer(adrs.oracle, toEther(100)) + await token.transfer(oracle.target, toEther(100)) await oracle.toggleManualVerification() - return { accounts, adrs, token, pp, opContract, oracle } + return { accounts, token, pp, opContract, oracle } } it('pauseForUpdate should work correctly', async () => { @@ -51,7 +53,7 @@ describe('DistributionOracle', () => { let ts = (await ethers.provider.getBlock(blockNumber))?.timestamp assert.deepEqual( - (await oracle.updateStatus()).map((v) => Number(v)), + (await oracle.updateStatus()).map((v: bigint) => Number(v)), [ts, blockNumber, 0] ) @@ -76,7 +78,7 @@ describe('DistributionOracle', () => { await oracle.requestUpdate() assert.deepEqual( - (await oracle.updateStatus()).map((v) => Number(v)), + (await oracle.updateStatus()).map((v: bigint) => Number(v)), [ts, blockNumber, 1] ) @@ -130,7 +132,7 @@ describe('DistributionOracle', () => { ) assert.deepEqual( - (await oracle.updateStatus()).map((v) => Number(v)), + (await oracle.updateStatus()).map((v: bigint) => Number(v)), [ts, blockNumber, 0] ) assert.equal(await pp.merkleRoot(), ethers.encodeBytes32String('merkle')) @@ -190,12 +192,12 @@ describe('DistributionOracle', () => { ) assert.deepEqual( - (await oracle.updateStatus()).map((v) => Number(v)), + (await oracle.updateStatus()).map((v: bigint) => Number(v)), [ts, blockNumber, 0] ) assert.equal(Number(await oracle.awaitingManualVerification()), 1) assert.deepEqual( - await oracle.updateData().then((d) => [d[0], d[1], fromEther(d[2]), fromEther(d[3])]), + await oracle.updateData().then((d: any) => [d[0], d[1], fromEther(d[2]), fromEther(d[3])]), [ethers.encodeBytes32String('merkle'), ethers.encodeBytes32String('ipfs'), 1000, 500] ) assert.equal(await pp.merkleRoot(), ethers.encodeBytes32String('')) @@ -232,7 +234,7 @@ describe('DistributionOracle', () => { await oracle.cancelRequest(event[2], event[6]) assert.deepEqual( - (await oracle.updateStatus()).map((v) => Number(v)), + (await oracle.updateStatus()).map((v: bigint) => Number(v)), [ts, blockNumber, 0] ) assert.equal(await pp.merkleRoot(), ethers.encodeBytes32String('')) @@ -242,10 +244,10 @@ describe('DistributionOracle', () => { }) it('withdrawLink should work correctly', async () => { - const { accounts, adrs, oracle, token } = await loadFixture(deployFixture) + const { accounts, oracle, token } = await loadFixture(deployFixture) await oracle.withdrawLink(toEther(20)) - assert.equal(fromEther(await token.balanceOf(adrs.oracle)), 80) + assert.equal(fromEther(await token.balanceOf(oracle.target)), 80) assert.equal(fromEther(await token.balanceOf(accounts[0])), 999999920) }) diff --git a/test/core/priorityPool/priority-pool.test.ts b/test/core/priorityPool/priority-pool.test.ts index 94d2ebb6..23a8306d 100644 --- a/test/core/priorityPool/priority-pool.test.ts +++ b/test/core/priorityPool/priority-pool.test.ts @@ -6,90 +6,82 @@ import { deployUpgradeable, getAccounts, setupToken, + getConnection, } from '../../utils/helpers' -import { +import type { ERC677, SDLPoolMock, StakingPool, PriorityPool, StrategyMock, WithdrawalPool, -} from '../../../typechain-types' -import { ethers } from 'hardhat' +} from '../../../types/ethers-contracts' import { StandardMerkleTree } from '@openzeppelin/merkle-tree' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' + +const { ethers, loadFixture } = getConnection() describe('PriorityPool', () => { async function deployFixture() { const { accounts, signers } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() await setupToken(token, accounts, true) const stakingPool = (await deployUpgradeable('StakingPool', [ - adrs.token, + token.target, 'Staked LINK', 'stLINK', [], toEther(10000), ])) as StakingPool - adrs.stakingPool = await stakingPool.getAddress() const strategy = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(1000), toEther(100), ])) as StrategyMock - adrs.strategy = await strategy.getAddress() const sdlPool = (await deploy('SDLPoolMock')) as SDLPoolMock - adrs.sdlPool = await sdlPool.getAddress() const pp = (await deployUpgradeable('PriorityPool', [ - adrs.token, - adrs.stakingPool, - adrs.sdlPool, + token.target, + stakingPool.target, + sdlPool.target, toEther(100), toEther(1000), false, ])) as PriorityPool - adrs.pp = await pp.getAddress() const withdrawalPool = (await deployUpgradeable('WithdrawalPool', [ - adrs.token, - adrs.stakingPool, - adrs.pp, + token.target, + stakingPool.target, + pp.target, toEther(10), 0, ])) as WithdrawalPool - adrs.withdrawalPool = await withdrawalPool.getAddress() - await stakingPool.addStrategy(adrs.strategy) - await stakingPool.setPriorityPool(adrs.pp) + await stakingPool.addStrategy(strategy.target) + await stakingPool.setPriorityPool(pp.target) await stakingPool.setRebaseController(accounts[0]) await pp.setDistributionOracle(accounts[0]) - await pp.setWithdrawalPool(adrs.withdrawalPool) + await pp.setWithdrawalPool(withdrawalPool.target) for (let i = 0; i < signers.length; i++) { - await token.connect(signers[i]).approve(adrs.pp, ethers.MaxUint256) + await token.connect(signers[i]).approve(pp.target, ethers.MaxUint256) } await pp.deposit(1000, false, ['0x']) - return { signers, accounts, adrs, token, stakingPool, strategy, sdlPool, pp, withdrawalPool } + return { signers, accounts, token, stakingPool, strategy, sdlPool, pp, withdrawalPool } } it('deposit should work correctly', async () => { - const { signers, accounts, adrs, pp, token, strategy, stakingPool } = await loadFixture( - deployFixture - ) + const { signers, accounts, pp, token, strategy, stakingPool } = await loadFixture(deployFixture) await pp.connect(signers[1]).deposit(toEther(500), true, ['0x']) assert.equal(fromEther(await pp.totalQueued()), 0) @@ -99,7 +91,7 @@ describe('PriorityPool', () => { await pp.connect(signers[2]).deposit(toEther(1000), true, ['0x']) assert.equal(fromEther(await pp.totalQueued()), 500) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 500) + assert.equal(fromEther(await token.balanceOf(pp.target)), 500) assert.equal(fromEther(await stakingPool.balanceOf(accounts[2])), 500) assert.equal(fromEther(await pp.getQueuedTokens(accounts[2], 0)), 500) assert.equal(fromEther(await token.balanceOf(accounts[2])), 9000) @@ -108,14 +100,14 @@ describe('PriorityPool', () => { await pp.depositQueuedTokens(toEther(100), toEther(1000), ['0x']) await pp.connect(signers[3]).deposit(toEther(1000), false, ['0x']) assert.equal(fromEther(await pp.totalQueued()), 0) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 0) + assert.equal(fromEther(await token.balanceOf(pp.target)), 0) assert.equal(fromEther(await stakingPool.balanceOf(accounts[3])), 100) assert.equal(fromEther(await pp.getQueuedTokens(accounts[3], 0)), 0) assert.equal(fromEther(await token.balanceOf(accounts[3])), 9900) await pp.connect(signers[4]).deposit(toEther(1000), true, ['0x']) assert.equal(fromEther(await pp.totalQueued()), 1000) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 1000) + assert.equal(fromEther(await token.balanceOf(pp.target)), 1000) assert.equal(fromEther(await stakingPool.balanceOf(accounts[4])), 0) assert.equal(fromEther(await pp.getQueuedTokens(accounts[4], 0)), 1000) assert.equal(fromEther(await token.balanceOf(accounts[4])), 9000) @@ -158,75 +150,77 @@ describe('PriorityPool', () => { }) it('deposit should work correctly with queued withdrawals', async () => { - const { signers, accounts, adrs, pp, token, stakingPool } = await loadFixture(deployFixture) + const { signers, accounts, pp, token, stakingPool, withdrawalPool } = await loadFixture( + deployFixture + ) - await stakingPool.approve(adrs.pp, ethers.MaxUint256) + await stakingPool.approve(pp.target, ethers.MaxUint256) await pp.deposit(toEther(99), true, ['0x']) await pp.withdraw(toEther(20), 0, 0, [], false, true, ['0x']) await pp.connect(signers[1]).deposit(toEther(15), true, ['0x']) assert.equal(fromEther(await stakingPool.balanceOf(accounts[1])), 15) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.withdrawalPool)), 5) - assert.equal(fromEther(await token.balanceOf(adrs.withdrawalPool)), 15) + assert.equal(fromEther(await stakingPool.balanceOf(withdrawalPool.target)), 5) + assert.equal(fromEther(await token.balanceOf(withdrawalPool.target)), 15) await pp.connect(signers[1]).deposit(toEther(30), true, ['0x']) assert.equal(fromEther(await stakingPool.balanceOf(accounts[1])), 45) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.withdrawalPool)), 0) - assert.equal(fromEther(await token.balanceOf(adrs.withdrawalPool)), 20) + assert.equal(fromEther(await stakingPool.balanceOf(withdrawalPool.target)), 0) + assert.equal(fromEther(await token.balanceOf(withdrawalPool.target)), 20) }) it('depositQueuedTokens should work correctly', async () => { - const { signers, adrs, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) + const { signers, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) await pp.deposit(toEther(2000), true, ['0x']) await pp.withdraw(1000, 0, 0, [], true, false, ['0x']) - await token.transfer(adrs.strategy, toEther(1000)) + await token.transfer(strategy.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') await pp.connect(signers[1]).deposit(toEther(500), true, ['0x']) await pp.connect(signers[2]).deposit(toEther(500), true, ['0x']) await strategy.setMaxDeposits(toEther(3500)) await pp.depositQueuedTokens(toEther(100), toEther(1000), ['0x']) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 3000) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 1000) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 1000) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 3000) + assert.equal(fromEther(await token.balanceOf(pp.target)), 1000) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 1000) assert.equal(fromEther(await pp.totalQueued()), 1000) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [1000, 500] ) - await token.transfer(adrs.stakingPool, toEther(500)) + await token.transfer(stakingPool.target, toEther(500)) await pp.depositQueuedTokens(toEther(100), toEther(1000), ['0x']) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 3500) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 1000) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 1000) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 3500) + assert.equal(fromEther(await token.balanceOf(pp.target)), 1000) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 1000) assert.equal(fromEther(await pp.totalQueued()), 1000) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [1000, 500] ) await strategy.setMaxDeposits(toEther(4000)) - await token.transfer(adrs.stakingPool, toEther(200)) + await token.transfer(stakingPool.target, toEther(200)) await pp.depositQueuedTokens(toEther(100), toEther(1000), ['0x']) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 4000) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 700) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 1300) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 4000) + assert.equal(fromEther(await token.balanceOf(pp.target)), 700) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 1300) assert.equal(fromEther(await pp.totalQueued()), 700) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [1300, 650] ) await strategy.setMaxDeposits(toEther(4850)) - await token.transfer(adrs.stakingPool, toEther(100)) + await token.transfer(stakingPool.target, toEther(100)) await pp.depositQueuedTokens(toEther(100), toEther(1000), ['0x']) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 4800) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 0) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 2000) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 4800) + assert.equal(fromEther(await token.balanceOf(pp.target)), 0) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 2000) assert.equal(fromEther(await pp.totalQueued()), 0) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [2000, 1000] ) @@ -242,7 +236,7 @@ describe('PriorityPool', () => { await expect( pp.depositQueuedTokens(toEther(100), toEther(1000), ['0x']) ).to.be.revertedWithCustomError(pp, 'InsufficientQueuedTokens()') - await token.transfer(adrs.stakingPool, toEther(1)) + await token.transfer(stakingPool.target, toEther(1)) await pp.depositQueuedTokens(toEther(100), toEther(1000), ['0x']) await pp.setPoolStatus(2) @@ -256,7 +250,7 @@ describe('PriorityPool', () => { }) it('checkUpkeep should work correctly', async () => { - const { adrs, pp, token, strategy } = await loadFixture(deployFixture) + const { pp, token, strategy, stakingPool } = await loadFixture(deployFixture) await strategy.setMaxDeposits(0) await pp.deposit(toEther(1000), true, ['0x']) @@ -267,7 +261,7 @@ describe('PriorityPool', () => { await pp.setQueueDepositParams(toEther(1001), toEther(2000)) assert.deepEqual(await pp.checkUpkeep('0x'), [false, '0x']) - await token.transfer(adrs.stakingPool, toEther(1)) + await token.transfer(stakingPool.target, toEther(1)) await pp.setPoolStatus(2) assert.deepEqual(await pp.checkUpkeep('0x'), [false, '0x']) @@ -282,58 +276,58 @@ describe('PriorityPool', () => { }) it('performUpkeep should work corectly', async () => { - const { signers, adrs, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) + const { signers, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) await pp.deposit(toEther(2000), true, ['0x']) await pp.withdraw(1000, 0, 0, [], true, false, ['0x']) - await token.transfer(adrs.strategy, toEther(1000)) + await token.transfer(strategy.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') await pp.connect(signers[1]).deposit(toEther(500), true, ['0x']) await pp.connect(signers[2]).deposit(toEther(500), true, ['0x']) await strategy.setMaxDeposits(toEther(3500)) await pp.performUpkeep(ethers.AbiCoder.defaultAbiCoder().encode(['bytes[]'], [['0x']])) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 3000) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 1000) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 1000) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 3000) + assert.equal(fromEther(await token.balanceOf(pp.target)), 1000) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 1000) assert.equal(fromEther(await pp.totalQueued()), 1000) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [1000, 500] ) - await token.transfer(adrs.stakingPool, toEther(500)) + await token.transfer(stakingPool.target, toEther(500)) await pp.performUpkeep(ethers.AbiCoder.defaultAbiCoder().encode(['bytes[]'], [['0x']])) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 3500) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 1000) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 1000) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 3500) + assert.equal(fromEther(await token.balanceOf(pp.target)), 1000) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 1000) assert.equal(fromEther(await pp.totalQueued()), 1000) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [1000, 500] ) await strategy.setMaxDeposits(toEther(4000)) - await token.transfer(adrs.stakingPool, toEther(200)) + await token.transfer(stakingPool.target, toEther(200)) await pp.performUpkeep(ethers.AbiCoder.defaultAbiCoder().encode(['bytes[]'], [['0x']])) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 4000) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 700) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 1300) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 4000) + assert.equal(fromEther(await token.balanceOf(pp.target)), 700) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 1300) assert.equal(fromEther(await pp.totalQueued()), 700) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [1300, 650] ) await strategy.setMaxDeposits(toEther(4850)) - await token.transfer(adrs.stakingPool, toEther(100)) + await token.transfer(stakingPool.target, toEther(100)) await pp.performUpkeep(ethers.AbiCoder.defaultAbiCoder().encode(['bytes[]'], [['0x']])) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 4800) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 0) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 2000) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 4800) + assert.equal(fromEther(await token.balanceOf(pp.target)), 0) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 2000) assert.equal(fromEther(await pp.totalQueued()), 0) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [2000, 1000] ) @@ -349,7 +343,7 @@ describe('PriorityPool', () => { await expect( pp.performUpkeep(ethers.AbiCoder.defaultAbiCoder().encode(['bytes[]'], [['0x']])) ).to.be.revertedWithCustomError(pp, 'InsufficientQueuedTokens()') - await token.transfer(adrs.stakingPool, toEther(1)) + await token.transfer(stakingPool.target, toEther(1)) await pp.performUpkeep(ethers.AbiCoder.defaultAbiCoder().encode(['bytes[]'], [['0x']])) await pp.setPoolStatus(2) @@ -405,10 +399,10 @@ describe('PriorityPool', () => { }) it('updateDistribution should work correctly', async () => { - const { signers, adrs, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) + const { signers, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) await pp.deposit(toEther(2000), true, ['0x']) - await token.transfer(adrs.strategy, toEther(1000)) + await token.transfer(strategy.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') await pp.connect(signers[1]).deposit(toEther(500), true, ['0x']) await pp.connect(signers[2]).deposit(toEther(500), true, ['0x']) @@ -428,7 +422,7 @@ describe('PriorityPool', () => { ) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [100, 50] ) assert.equal(await pp.merkleRoot(), ethers.encodeBytes32String('root')) @@ -446,7 +440,7 @@ describe('PriorityPool', () => { ) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [0, 0] ) assert.equal(await pp.merkleRoot(), ethers.encodeBytes32String('root2')) @@ -455,9 +449,7 @@ describe('PriorityPool', () => { }) it('claimLSDTokens should work correctly', async () => { - const { signers, accounts, adrs, pp, token, stakingPool, strategy } = await loadFixture( - deployFixture - ) + const { signers, accounts, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) await pp.deposit(toEther(2000), true, ['0x']) await pp.connect(signers[1]).deposit(toEther(500), true, ['0x']) @@ -502,7 +494,7 @@ describe('PriorityPool', () => { assert.equal(fromEther(await pp.getLSDTokens(accounts[0], data[1][2])), 0) assert.equal(fromEther(await pp.getQueuedTokens(accounts[0], data[1][1])), 700) - await token.transfer(adrs.strategy, toEther(1500)) + await token.transfer(strategy.target, toEther(1500)) await stakingPool.updateStrategyRewards([0], '0x') await pp.connect(signers[1]).claimLSDTokens(toEther(150), toEther(150), tree.getProof(2)) @@ -516,9 +508,7 @@ describe('PriorityPool', () => { }) it('unqueueTokens should work correctly', async () => { - const { signers, accounts, adrs, pp, token, stakingPool, strategy } = await loadFixture( - deployFixture - ) + const { signers, accounts, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) await pp.deposit(toEther(2000), true, ['0x']) await pp.connect(signers[1]).deposit(toEther(500), true, ['0x']) @@ -591,7 +581,7 @@ describe('PriorityPool', () => { assert.equal(fromEther(await pp.getLSDTokens(accounts[2], data[3][2])), 50) assert.equal(fromEther(await pp.getQueuedTokens(accounts[2], data[3][1])), 0) - await token.transfer(adrs.strategy, toEther(1500)) + await token.transfer(strategy.target, toEther(1500)) await stakingPool.updateStrategyRewards([0], '0x') await pp @@ -610,14 +600,12 @@ describe('PriorityPool', () => { }) it('withdraw should work correctly', async () => { - const { signers, accounts, adrs, pp, token, stakingPool, strategy } = await loadFixture( - deployFixture - ) + const { signers, accounts, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) - await stakingPool.connect(signers[1]).approve(adrs.pp, ethers.MaxUint256) - await stakingPool.connect(signers[2]).approve(adrs.pp, ethers.MaxUint256) + await stakingPool.connect(signers[1]).approve(pp.target, ethers.MaxUint256) + await stakingPool.connect(signers[2]).approve(pp.target, ethers.MaxUint256) await pp.connect(signers[1]).deposit(toEther(2000), true, ['0x']) - await token.transfer(adrs.strategy, toEther(1000)) + await token.transfer(strategy.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') await pp.deposit(toEther(100), true, ['0x']) await pp.connect(signers[2]).deposit(toEther(100), true, ['0x']) @@ -629,7 +617,7 @@ describe('PriorityPool', () => { assert.equal(fromEther(await pp.totalQueued()), 490) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [710, 355] ) assert.equal(fromEther(await stakingPool.totalStaked()), 2700) @@ -649,7 +637,7 @@ describe('PriorityPool', () => { assert.equal(fromEther(await pp.totalQueued()), 0) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [500, 250] ) assert.equal(fromEther(await stakingPool.totalStaked()), 2700) @@ -657,31 +645,27 @@ describe('PriorityPool', () => { }) it('withdraw should work correctly with queued withdrawals', async () => { - const { adrs, pp, token, stakingPool, strategy, withdrawalPool } = await loadFixture( - deployFixture - ) + const { pp, token, stakingPool, strategy, withdrawalPool } = await loadFixture(deployFixture) - await stakingPool.approve(adrs.pp, ethers.MaxUint256) + await stakingPool.approve(pp.target, ethers.MaxUint256) await pp.deposit(toEther(100), true, ['0x']) await pp.withdraw(toEther(50), 0, 0, [], true, true, ['0x']) await strategy.setMinDeposits(0) await pp.withdraw(toEther(10), 0, 0, [], true, true, ['0x']) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.withdrawalPool)), 60) + assert.equal(fromEther(await stakingPool.balanceOf(withdrawalPool.target)), 60) assert.equal(fromEther(await withdrawalPool.getTotalQueuedWithdrawals()), 60) - assert.equal(fromEther(await token.balanceOf(adrs.withdrawalPool)), 0) + assert.equal(fromEther(await token.balanceOf(withdrawalPool.target)), 0) }) it('withdraw should work correctly with queued tokens', async () => { - const { signers, accounts, adrs, pp, token, stakingPool, strategy } = await loadFixture( - deployFixture - ) + const { signers, accounts, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) - await stakingPool.connect(signers[1]).approve(adrs.pp, ethers.MaxUint256) - await stakingPool.connect(signers[2]).approve(adrs.pp, ethers.MaxUint256) + await stakingPool.connect(signers[1]).approve(pp.target, ethers.MaxUint256) + await stakingPool.connect(signers[2]).approve(pp.target, ethers.MaxUint256) await pp.deposit(toEther(1000), true, ['0x']) await pp.withdraw(1000, 0, 0, [], true, false, ['0x']) - await token.transfer(adrs.strategy, toEther(1000)) + await token.transfer(strategy.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') await pp.connect(signers[1]).deposit(toEther(100), true, ['0x']) await pp.connect(signers[2]).deposit(toEther(200), true, ['0x']) @@ -713,7 +697,7 @@ describe('PriorityPool', () => { assert.equal(fromEther(await pp.totalQueued()), 100) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [0, 0] ) assert.equal(fromEther(await stakingPool.totalStaked()), 2150) @@ -735,7 +719,7 @@ describe('PriorityPool', () => { assert.equal(fromEther(await pp.totalQueued()), 0) assert.deepEqual( - (await pp.getDepositsSinceLastUpdate()).map((v) => fromEther(v)), + (await pp.getDepositsSinceLastUpdate()).map((v: bigint) => fromEther(v)), [0, 0] ) assert.equal(fromEther(await stakingPool.totalStaked()), 2150) @@ -760,7 +744,7 @@ describe('PriorityPool', () => { }) it('onTokenTransfer should work correctly', async () => { - const { signers, accounts, adrs, pp, token, stakingPool } = await loadFixture(deployFixture) + const { signers, accounts, pp, token, stakingPool } = await loadFixture(deployFixture) await expect( pp.onTokenTransfer( @@ -771,7 +755,7 @@ describe('PriorityPool', () => { ).to.be.revertedWithCustomError(pp, 'UnauthorizedToken()') await expect( token.transferAndCall( - adrs.pp, + pp.target, 0, ethers.AbiCoder.defaultAbiCoder().encode(['bool', 'bytes[]'], [true, ['0x']]) ) @@ -780,14 +764,14 @@ describe('PriorityPool', () => { await token .connect(signers[1]) .transferAndCall( - adrs.pp, + pp.target, toEther(2000), ethers.AbiCoder.defaultAbiCoder().encode(['bool', 'bytes[]'], [false, ['0x']]) ) await token .connect(signers[1]) .transferAndCall( - adrs.pp, + pp.target, toEther(2000), ethers.AbiCoder.defaultAbiCoder().encode(['bool', 'bytes[]'], [false, ['0x']]) ) @@ -798,7 +782,7 @@ describe('PriorityPool', () => { await token .connect(signers[1]) .transferAndCall( - adrs.pp, + pp.target, toEther(2000), ethers.AbiCoder.defaultAbiCoder().encode(['bool', 'bytes[]'], [true, ['0x']]) ) @@ -809,7 +793,7 @@ describe('PriorityPool', () => { await stakingPool .connect(signers[1]) .transferAndCall( - adrs.pp, + pp.target, toEther(100), ethers.AbiCoder.defaultAbiCoder().encode(['bool', 'bytes[]'], [false, ['0x']]) ) @@ -819,11 +803,9 @@ describe('PriorityPool', () => { }) it('executeQueuedWithdrawals should work correctly', async () => { - const { adrs, pp, token, stakingPool, strategy, withdrawalPool } = await loadFixture( - deployFixture - ) + const { pp, token, stakingPool, strategy, withdrawalPool } = await loadFixture(deployFixture) - await stakingPool.approve(adrs.pp, ethers.MaxUint256) + await stakingPool.approve(pp.target, ethers.MaxUint256) await pp.deposit(toEther(1100), true, ['0x']) await pp.withdraw(toEther(950), 0, 0, [], false, true, ['0x']) await strategy.setMinDeposits(toEther(200)) @@ -832,10 +814,10 @@ describe('PriorityPool', () => { ethers.AbiCoder.defaultAbiCoder().encode(['bytes[]'], [['0x']]) ) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.withdrawalPool)), 50) - assert.equal(fromEther(await token.balanceOf(adrs.withdrawalPool)), 800) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.pp)), 100) - assert.equal(fromEther(await token.balanceOf(adrs.pp)), 0) + assert.equal(fromEther(await stakingPool.balanceOf(withdrawalPool.target)), 50) + assert.equal(fromEther(await token.balanceOf(withdrawalPool.target)), 800) + assert.equal(fromEther(await stakingPool.balanceOf(pp.target)), 100) + assert.equal(fromEther(await token.balanceOf(pp.target)), 0) assert.equal(fromEther(await stakingPool.totalStaked()), 200) }) @@ -857,15 +839,13 @@ describe('PriorityPool', () => { }) it('withdraw should revert when transfer amount rounds to zero shares', async () => { - const { signers, accounts, adrs, pp, token, stakingPool, strategy } = await loadFixture( - deployFixture - ) + const { signers, accounts, pp, token, stakingPool, strategy } = await loadFixture(deployFixture) - await stakingPool.connect(signers[1]).approve(adrs.pp, ethers.MaxUint256) + await stakingPool.connect(signers[1]).approve(pp.target, ethers.MaxUint256) // deposit and accrue rewards so totalStaked > totalShares await pp.connect(signers[1]).deposit(toEther(1000), false, ['0x']) - await token.transfer(adrs.strategy, toEther(100)) + await token.transfer(strategy.target, toEther(100)) await stakingPool.updateStrategyRewards([0], '0x') assert.equal(await stakingPool.getSharesByStake(1), 0n) @@ -892,7 +872,7 @@ describe('PriorityPool', () => { // attempt ERC677 withdraw path with 1 wei - should also revert await expect( stakingPool.transferAndCall( - adrs.pp, + pp.target, 1, ethers.AbiCoder.defaultAbiCoder().encode(['bool', 'bytes[]'], [false, ['0x']]) ) diff --git a/test/core/priorityPool/withdrawal-pool.test.ts b/test/core/priorityPool/withdrawal-pool.test.ts index 65d0f387..57f60269 100644 --- a/test/core/priorityPool/withdrawal-pool.test.ts +++ b/test/core/priorityPool/withdrawal-pool.test.ts @@ -6,16 +6,18 @@ import { deployUpgradeable, getAccounts, setupToken, + getConnection, } from '../../utils/helpers' -import { +import type { ERC677, PriorityPool, StakingPool, StrategyMock, WithdrawalPool, -} from '../../../typechain-types' -import { ethers } from 'hardhat' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time describe('WithdrawalPool', () => { async function deployFixture() { @@ -81,7 +83,7 @@ describe('WithdrawalPool', () => { assert.equal(fromEther(await withdrawalPool.getAccountTotalQueuedWithdrawals(accounts[1])), 250) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id: bigint) => Number(id)), [1, 3] ) assert.deepEqual( @@ -105,7 +107,7 @@ describe('WithdrawalPool', () => { await withdrawalPool.queueWithdrawal(accounts[0], toEther(500)) await withdrawalPool.deposit(toEther(400)) - await expect(withdrawalPool.deposit(toEther(1751))).to.be.reverted + await expect(withdrawalPool.deposit(toEther(1751))).to.revert(ethers) assert.equal(fromEther(await token.balanceOf(withdrawalPool.target)), 400) assert.equal(fromEther(await stakingPool.balanceOf(withdrawalPool.target)), 1350) @@ -201,11 +203,11 @@ describe('WithdrawalPool', () => { 'InvalidWithdrawalId()' ) - let startingBalance = await token.balanceOf(accounts[1]) + let startingBalance: bigint = await token.balanceOf(accounts[1]) await withdrawalPool.connect(signers[1]).withdraw([2], [2]) assert.equal(fromEther((await token.balanceOf(accounts[1])) - startingBalance), 250) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id: bigint) => Number(id)), [] ) assert.deepEqual( @@ -220,7 +222,7 @@ describe('WithdrawalPool', () => { await withdrawalPool.withdraw([1, 3], [1, 2]) assert.equal(fromEther((await token.balanceOf(accounts[0])) - startingBalance), 1500) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id: bigint) => Number(id)), [] ) assert.deepEqual( @@ -256,13 +258,13 @@ describe('WithdrawalPool', () => { 'InvalidWithdrawalId()' ) - let startingBalance1 = await token.balanceOf(accounts[1]) - let startingBalance0 = await token.balanceOf(accounts[0]) + let startingBalance1: bigint = await token.balanceOf(accounts[1]) + let startingBalance0: bigint = await token.balanceOf(accounts[0]) await withdrawalPool.forceWithdraw([2, 1, 3], [2, 1, 2]) assert.equal(fromEther((await token.balanceOf(accounts[1])) - startingBalance1), 250) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id: bigint) => Number(id)), [] ) assert.deepEqual( @@ -275,7 +277,7 @@ describe('WithdrawalPool', () => { assert.equal(fromEther((await token.balanceOf(accounts[0])) - startingBalance0), 1500) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id: bigint) => Number(id)), [] ) assert.deepEqual( @@ -300,22 +302,22 @@ describe('WithdrawalPool', () => { await withdrawalPool.deposit(toEther(600)) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id: bigint) => Number(id)), [1, 3] ) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id: bigint) => Number(id)), [2] ) await withdrawalPool.withdraw([1], [0]) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id: bigint) => Number(id)), [1, 3] ) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id: bigint) => Number(id)), [2] ) @@ -323,22 +325,22 @@ describe('WithdrawalPool', () => { await withdrawalPool.withdraw([3], [2]) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id: bigint) => Number(id)), [1] ) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id: bigint) => Number(id)), [2] ) await withdrawalPool.connect(signers[1]).withdraw([2], [2]) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[0])).map((id: bigint) => Number(id)), [1] ) assert.deepEqual( - (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id) => Number(id)), + (await withdrawalPool.getWithdrawalIdsByOwner(accounts[1])).map((id: bigint) => Number(id)), [] ) }) @@ -389,7 +391,7 @@ describe('WithdrawalPool', () => { let data = await withdrawalPool.getFinalizedWithdrawalIdsByOwner(accounts[0]) assert.deepEqual( - data[0].map((id) => Number(id)), + data[0].map((id: bigint) => Number(id)), [1] ) assert.equal(fromEther(data[1]), 600) @@ -398,7 +400,7 @@ describe('WithdrawalPool', () => { data = await withdrawalPool.getFinalizedWithdrawalIdsByOwner(accounts[0]) assert.deepEqual( - data[0].map((id) => Number(id)), + data[0].map((id: bigint) => Number(id)), [] ) assert.equal(fromEther(data[1]), 0) @@ -407,14 +409,14 @@ describe('WithdrawalPool', () => { data = await withdrawalPool.getFinalizedWithdrawalIdsByOwner(accounts[0]) assert.deepEqual( - data[0].map((id) => Number(id)), + data[0].map((id: bigint) => Number(id)), [1] ) assert.equal(fromEther(data[1]), 400) data = await withdrawalPool.getFinalizedWithdrawalIdsByOwner(accounts[1]) assert.deepEqual( - data[0].map((id) => Number(id)), + data[0].map((id: bigint) => Number(id)), [2] ) assert.equal(fromEther(data[1]), 200) @@ -423,14 +425,14 @@ describe('WithdrawalPool', () => { data = await withdrawalPool.getFinalizedWithdrawalIdsByOwner(accounts[0]) assert.deepEqual( - data[0].map((id) => Number(id)), + data[0].map((id: bigint) => Number(id)), [1, 3] ) assert.equal(fromEther(data[1]), 900) data = await withdrawalPool.getFinalizedWithdrawalIdsByOwner(accounts[1]) assert.deepEqual( - data[0].map((id) => Number(id)), + data[0].map((id: bigint) => Number(id)), [2] ) assert.equal(fromEther(data[1]), 250) diff --git a/test/core/rebase-controller.test.ts b/test/core/rebase-controller.test.ts index 62831159..853dd6c0 100644 --- a/test/core/rebase-controller.test.ts +++ b/test/core/rebase-controller.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -7,16 +6,18 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, StrategyMock, StakingPool, RebaseController, PriorityPool, SecurityPool, -} from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-toolbox/network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('RebaseController', () => { const decode = (data: any) => ethers.AbiCoder.defaultAbiCoder().decode(['uint256'], data) @@ -24,38 +25,34 @@ describe('RebaseController', () => { async function deployFixture() { const { signers, accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() await setupToken(token, accounts) const stakingPool = (await deployUpgradeable('StakingPool', [ - adrs.token, + token.target, 'LinkPool LINK', 'lpLINK', [[accounts[4], 1000]], toEther(10000), ])) as StakingPool - adrs.stakingPool = await stakingPool.getAddress() const priorityPool = (await deployUpgradeable('PriorityPool', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, accounts[0], toEther(100), toEther(1000), false, ])) as PriorityPool - adrs.priorityPool = await priorityPool.getAddress() const securityPool = (await deployUpgradeable('SecurityPool', [ - adrs.token, + token.target, 'name', 'symbol', accounts[0], @@ -63,56 +60,50 @@ describe('RebaseController', () => { 10, 100, ])) as SecurityPool - adrs.securityPool = await securityPool.getAddress() const rebaseController = (await deploy('RebaseController', [ - adrs.stakingPool, - adrs.priorityPool, - adrs.securityPool, + stakingPool.target, + priorityPool.target, + securityPool.target, accounts[0], accounts[0], ])) as RebaseController - adrs.rebaseController = await rebaseController.getAddress() const strategy1 = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(200), toEther(10), ])) as StrategyMock - adrs.strategy1 = await strategy1.getAddress() const strategy2 = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(200), toEther(20), ])) as StrategyMock - adrs.strategy2 = await strategy2.getAddress() const strategy3 = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(10000), toEther(10), ])) as StrategyMock - adrs.strategy3 = await strategy3.getAddress() - await stakingPool.addStrategy(adrs.strategy1) - await stakingPool.addStrategy(adrs.strategy2) - await stakingPool.addStrategy(adrs.strategy3) + await stakingPool.addStrategy(strategy1.target) + await stakingPool.addStrategy(strategy2.target) + await stakingPool.addStrategy(strategy3.target) await stakingPool.setPriorityPool(accounts[0]) - await stakingPool.setRebaseController(adrs.rebaseController) - await priorityPool.setRebaseController(adrs.rebaseController) - await securityPool.setRebaseController(adrs.rebaseController) + await stakingPool.setRebaseController(rebaseController.target) + await priorityPool.setRebaseController(rebaseController.target) + await securityPool.setRebaseController(rebaseController.target) - await token.approve(adrs.stakingPool, ethers.MaxUint256) + await token.approve(stakingPool.target, ethers.MaxUint256) await stakingPool.deposit(accounts[0], toEther(1000), ['0x', '0x', '0x']) return { signers, accounts, - adrs, token, stakingPool, priorityPool, @@ -125,11 +116,11 @@ describe('RebaseController', () => { } it('updateRewards should work correctly', async () => { - const { adrs, token, rebaseController, strategy1, strategy2, strategy3 } = await loadFixture( + const { token, rebaseController, strategy1, strategy2, strategy3 } = await loadFixture( deployFixture ) - await token.transfer(adrs.strategy2, toEther(100)) + await token.transfer(strategy2.target, toEther(100)) await strategy1.simulateSlash(toEther(10)) await strategy3.simulateSlash(toEther(10)) @@ -139,8 +130,8 @@ describe('RebaseController', () => { assert.equal(fromEther(await strategy2.getDepositChange()), 0) assert.equal(fromEther(await strategy3.getDepositChange()), 0) - await token.transfer(adrs.strategy2, toEther(10)) - await token.transfer(adrs.strategy3, toEther(20)) + await token.transfer(strategy2.target, toEther(10)) + await token.transfer(strategy3.target, toEther(20)) await rebaseController.updateRewards('0x') @@ -150,9 +141,11 @@ describe('RebaseController', () => { }) it('checkUpkeep should work correctly', async () => { - const { adrs, token, rebaseController, strategy1, strategy3 } = await loadFixture(deployFixture) + const { token, rebaseController, strategy1, strategy2, strategy3 } = await loadFixture( + deployFixture + ) - await token.transfer(adrs.strategy2, toEther(100)) + await token.transfer(strategy2.target, toEther(100)) let data = await rebaseController.checkUpkeep('0x') assert.equal(data[0], false, 'upkeepNeeded incorrect') @@ -176,10 +169,10 @@ describe('RebaseController', () => { }) it('performUpkeep should work correctly', async () => { - const { adrs, token, rebaseController, strategy1, strategy3, priorityPool, securityPool } = + const { token, rebaseController, strategy1, strategy2, strategy3, priorityPool, securityPool } = await loadFixture(deployFixture) - await token.transfer(adrs.strategy2, toEther(100)) + await token.transfer(strategy2.target, toEther(100)) await strategy1.simulateSlash(toEther(10)) await strategy3.simulateSlash(toEther(10)) diff --git a/test/core/rewards-pool-controller.test.ts b/test/core/rewards-pool-controller.test.ts index f4a73e87..8b45c49a 100644 --- a/test/core/rewards-pool-controller.test.ts +++ b/test/core/rewards-pool-controller.test.ts @@ -6,29 +6,29 @@ import { setupToken, fromEther, deployUpgradeable, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, RewardsPool, RewardsPoolControllerMock, RewardsPoolTimeBased, RewardsPoolWSD, WrappedSDTokenMock, -} from '../../typechain-types' -import { ethers, network } from 'hardhat' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers, connection } = getConnection() +const time = networkHelpers.time describe('RewardsPoolController', () => { async function deployFixture() { const { signers, accounts } = await getAccounts() - const adrs: any = {} const token1 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Token1', '1', 1000000000, ])) as ERC677 - adrs.token1 = await token1.getAddress() await setupToken(token1, accounts) const token2 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ @@ -36,7 +36,6 @@ describe('RewardsPoolController', () => { '2', 1000000000, ])) as ERC677 - adrs.token2 = await token2.getAddress() await setupToken(token2, accounts) const stakingToken = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ @@ -44,28 +43,24 @@ describe('RewardsPoolController', () => { 'ST', 1000000000, ])) as ERC677 - adrs.stakingToken = await stakingToken.getAddress() await setupToken(stakingToken, accounts) const controller = (await deployUpgradeable('RewardsPoolControllerMock', [ - adrs.stakingToken, + stakingToken.target, ])) as RewardsPoolControllerMock - adrs.controller = await controller.getAddress() const rewardsPool1 = (await deploy('RewardsPool', [ - adrs.controller, - adrs.token1, + controller.target, + token1.target, ])) as RewardsPool - adrs.rewardsPool1 = await rewardsPool1.getAddress() const rewardsPool2 = (await deploy('RewardsPool', [ - adrs.controller, - adrs.token2, + controller.target, + token2.target, ])) as RewardsPool - adrs.rewardsPool2 = await rewardsPool2.getAddress() async function stake(account: number, amount: number) { - await stakingToken.connect(signers[account]).approve(adrs.controller, toEther(amount)) + await stakingToken.connect(signers[account]).approve(controller.target, toEther(amount)) await controller.connect(signers[account]).stake(toEther(amount)) } @@ -73,8 +68,8 @@ describe('RewardsPoolController', () => { await controller.connect(signers[account]).withdraw(toEther(amount)) } - await controller.addToken(adrs.token1, adrs.rewardsPool1) - await controller.addToken(adrs.token2, adrs.rewardsPool2) + await controller.addToken(token1.target, rewardsPool1.target) + await controller.addToken(token2.target, rewardsPool2.target) await stake(1, 1000) await stake(2, 500) @@ -82,7 +77,6 @@ describe('RewardsPoolController', () => { return { signers, accounts, - adrs, token1, token2, stakingToken, @@ -95,53 +89,50 @@ describe('RewardsPoolController', () => { } it('should be able to add tokens', async () => { - const { adrs, controller } = await loadFixture(deployFixture) + const { token1, token2, controller } = await loadFixture(deployFixture) const token3 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Token3', '3', 1000000000, ])) as ERC677 - adrs.token3 = await token3.getAddress() const rewardsPool3 = (await deploy('RewardsPool', [ - adrs.controller, - adrs.token3, + controller.target, + token3.target, ])) as RewardsPool - adrs.rewardsPool3 = await rewardsPool3.getAddress() - await controller.addToken(adrs.token3, adrs.rewardsPool3) + await controller.addToken(token3.target, rewardsPool3.target) assert.equal( JSON.stringify(await controller.supportedTokens()), - JSON.stringify([adrs.token1, adrs.token2, adrs.token3]), + JSON.stringify([token1.target, token2.target, token3.target]), 'supportedTokens incorrect' ) }) it('should not be able to add token thats already supported', async () => { - const { adrs, controller } = await loadFixture(deployFixture) + const { token1, rewardsPool1, controller } = await loadFixture(deployFixture) - await expect(controller.addToken(adrs.token1, adrs.rewardsPool1)).to.be.revertedWithCustomError( - controller, - 'InvalidToken()' - ) + await expect( + controller.addToken(token1.target, rewardsPool1.target) + ).to.be.revertedWithCustomError(controller, 'InvalidToken()') }) it('should be able to remove tokens', async () => { - const { adrs, controller } = await loadFixture(deployFixture) + const { token1, token2, controller } = await loadFixture(deployFixture) - await controller.removeToken(adrs.token1) + await controller.removeToken(token1.target) assert.equal( JSON.stringify(await controller.supportedTokens()), - JSON.stringify([adrs.token2]), + JSON.stringify([token2.target]), 'supportedTokens incorrect' ) }) it('should not be able to remove token thats not supported', async () => { - const { adrs, controller } = await loadFixture(deployFixture) + const { rewardsPool1, controller } = await loadFixture(deployFixture) - await expect(controller.removeToken(adrs.rewardsPool1)).to.be.revertedWithCustomError( + await expect(controller.removeToken(rewardsPool1.target)).to.be.revertedWithCustomError( controller, 'InvalidToken()' ) @@ -149,21 +140,22 @@ describe('RewardsPoolController', () => { describe('RewardsPool', () => { it('withdrawableRewards should work correctly', async () => { - const { accounts, adrs, controller, token1, token2 } = await loadFixture(deployFixture) + const { accounts, controller, token1, token2, rewardsPool1, rewardsPool2 } = + await loadFixture(deployFixture) - await token1.transferAndCall(adrs.rewardsPool1, toEther(900), '0x00') - await token2.transferAndCall(adrs.rewardsPool2, toEther(300), '0x00') + await token1.transferAndCall(rewardsPool1.target, toEther(900), '0x00') + await token2.transferAndCall(rewardsPool2.target, toEther(300), '0x00') assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)) ), JSON.stringify([600, 200]), 'account-1 withdrawableRewards incorrect' ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)) ), JSON.stringify([300, 100]), 'account-2 withdrawableRewards incorrect' @@ -171,14 +163,13 @@ describe('RewardsPoolController', () => { }) it('withdrawRewards should work correctly', async () => { - const { signers, accounts, adrs, controller, token1, token2 } = await loadFixture( - deployFixture - ) + const { signers, accounts, controller, token1, token2, rewardsPool1, rewardsPool2 } = + await loadFixture(deployFixture) - await token1.transferAndCall(adrs.rewardsPool1, toEther(900), '0x00') - await token2.transferAndCall(adrs.rewardsPool2, toEther(300), '0x00') - await controller.connect(signers[1]).withdrawRewards([adrs.token1, adrs.token2]) - await controller.connect(signers[2]).withdrawRewards([adrs.token2]) + await token1.transferAndCall(rewardsPool1.target, toEther(900), '0x00') + await token2.transferAndCall(rewardsPool2.target, toEther(300), '0x00') + await controller.connect(signers[1]).withdrawRewards([token1.target, token2.target]) + await controller.connect(signers[2]).withdrawRewards([token2.target]) assert.equal( fromEther(await token1.balanceOf(accounts[1])), @@ -202,14 +193,14 @@ describe('RewardsPoolController', () => { ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0]), 'account-1 withdrawableRewards incorrect' ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)) ), JSON.stringify([300, 0]), 'account-2 withdrawableRewards incorrect' @@ -217,11 +208,11 @@ describe('RewardsPoolController', () => { }) it('staking/withdrawing should update all rewards', async () => { - const { accounts, adrs, token1, token2, rewardsPool1, rewardsPool2, stake, withdraw } = + const { accounts, token1, token2, rewardsPool1, rewardsPool2, stake, withdraw } = await loadFixture(deployFixture) - await token1.transferAndCall(adrs.rewardsPool1, toEther(900), '0x00') - await token2.transferAndCall(adrs.rewardsPool2, toEther(300), '0x00') + await token1.transferAndCall(rewardsPool1.target, toEther(900), '0x00') + await token2.transferAndCall(rewardsPool2.target, toEther(300), '0x00') assert.equal( fromEther(await rewardsPool1.userRewardPerTokenPaid(accounts[1])), @@ -270,31 +261,31 @@ describe('RewardsPoolController', () => { }) it('should be able to distributeTokens', async () => { - const { accounts, adrs, controller, token1, token2 } = await loadFixture(deployFixture) + const { accounts, controller, token1, token2 } = await loadFixture(deployFixture) - await token1.transfer(adrs.controller, toEther(900)) - await token2.transfer(adrs.controller, toEther(300)) + await token1.transfer(controller.target, toEther(900)) + await token2.transfer(controller.target, toEther(300)) assert.deepEqual( await controller.tokenBalances(), [ - [adrs.token1, adrs.token2], + [token1.target, token2.target], [toEther(900), toEther(300)], ], 'token balances incorrect' ) - await controller.distributeTokens([adrs.token1, adrs.token2]) + await controller.distributeTokens([token1.target, token2.target]) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)) ), JSON.stringify([600, 200]), 'account-1 withdrawableRewards incorrect' ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)) ), JSON.stringify([300, 100]), 'account-2 withdrawableRewards incorrect' @@ -305,14 +296,12 @@ describe('RewardsPoolController', () => { describe('RewardsPoolWSD', () => { async function deployFixture2() { const fixtureRet = await deployFixture() - const adrs = fixtureRet.adrs const token3 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Token3', '3', 1000000000, ])) as ERC677 - adrs.token3 = await token3.getAddress() await setupToken(token3, fixtureRet.accounts) const token4 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ @@ -320,41 +309,35 @@ describe('RewardsPoolController', () => { '4', 1000000000, ])) as ERC677 - adrs.token4 = await token4.getAddress() await setupToken(token4, fixtureRet.accounts) - const wToken3 = (await deploy('WrappedSDTokenMock', [adrs.token3])) as WrappedSDTokenMock - adrs.wToken3 = await wToken3.getAddress() - - const wToken4 = (await deploy('WrappedSDTokenMock', [adrs.token4])) as WrappedSDTokenMock - adrs.wToken4 = await wToken4.getAddress() + const wToken3 = (await deploy('WrappedSDTokenMock', [token3.target])) as WrappedSDTokenMock + const wToken4 = (await deploy('WrappedSDTokenMock', [token4.target])) as WrappedSDTokenMock const rewardsPool3 = (await deploy('RewardsPoolWSD', [ - adrs.controller, - adrs.token3, - adrs.wToken3, + fixtureRet.controller.target, + token3.target, + wToken3.target, ])) as RewardsPoolWSD - adrs.rewardsPool3 = await rewardsPool3.getAddress() const rewardsPool4 = (await deploy('RewardsPoolWSD', [ - adrs.controller, - adrs.token4, - adrs.wToken4, + fixtureRet.controller.target, + token4.target, + wToken4.target, ])) as RewardsPoolWSD - adrs.rewardsPool4 = await rewardsPool4.getAddress() - await fixtureRet.controller.addToken(adrs.token3, adrs.rewardsPool3) - await fixtureRet.controller.addToken(adrs.token4, adrs.rewardsPool4) + await fixtureRet.controller.addToken(token3.target, rewardsPool3.target) + await fixtureRet.controller.addToken(token4.target, rewardsPool4.target) - await token3.transferAndCall(adrs.controller, toEther(900), '0x00') - await token4.transferAndCall(adrs.controller, toEther(300), '0x00') + await token3.transferAndCall(fixtureRet.controller.target, toEther(900), '0x00') + await token4.transferAndCall(fixtureRet.controller.target, toEther(300), '0x00') - await token4.transfer(adrs.wToken4, toEther(900)) + await token4.transfer(wToken4.target, toEther(900)) await wToken3.setMultiplier(1) await wToken4.setMultiplier(4) - return { ...fixtureRet, adrs, token3, token4, rewardsPool3, rewardsPool4, wToken3, wToken4 } + return { ...fixtureRet, token3, token4, rewardsPool3, rewardsPool4, wToken3, wToken4 } } it('withdrawableRewards should work correctly', async () => { @@ -362,14 +345,14 @@ describe('RewardsPoolController', () => { assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 300, 400]), 'account-1 withdrawableRewards incorrect' ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 150, 200]), 'account-2 withdrawableRewards incorrect' @@ -377,12 +360,10 @@ describe('RewardsPoolController', () => { }) it('withdrawRewards should work correctly', async () => { - const { signers, accounts, adrs, controller, token3, token4 } = await loadFixture( - deployFixture2 - ) + const { signers, accounts, controller, token3, token4 } = await loadFixture(deployFixture2) - await controller.connect(signers[1]).withdrawRewards([adrs.token3, adrs.token4]) - await controller.connect(signers[2]).withdrawRewards([adrs.token4]) + await controller.connect(signers[1]).withdrawRewards([token3.target, token4.target]) + await controller.connect(signers[2]).withdrawRewards([token4.target]) assert.equal( fromEther(await token3.balanceOf(accounts[1])), @@ -406,14 +387,14 @@ describe('RewardsPoolController', () => { ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 0, 0]), 'account-1 withdrawableRewards incorrect' ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 150, 0]), 'account-2 withdrawableRewards incorrect' @@ -472,31 +453,33 @@ describe('RewardsPoolController', () => { }) it('should be able to distributeTokens', async () => { - const { accounts, adrs, controller, token3, token4 } = await loadFixture(deployFixture2) + const { accounts, controller, token1, token2, token3, token4 } = await loadFixture( + deployFixture2 + ) - await token3.transfer(adrs.controller, toEther(150)) - await token4.transfer(adrs.controller, toEther(300)) + await token3.transfer(controller.target, toEther(150)) + await token4.transfer(controller.target, toEther(300)) assert.deepEqual( await controller.tokenBalances(), [ - [adrs.token1, adrs.token2, adrs.token3, adrs.token4], + [token1.target, token2.target, token3.target, token4.target], [toEther(0), toEther(0), toEther(150), toEther(300)], ], 'token balances incorrect' ) - await controller.distributeTokens([adrs.token3, adrs.token4]) + await controller.distributeTokens([token3.target, token4.target]) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 400, 600]), 'account-1 withdrawableRewards incorrect' ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 200, 300]), 'account-2 withdrawableRewards incorrect' @@ -507,34 +490,31 @@ describe('RewardsPoolController', () => { describe('RewardsPoolTimeBased', () => { async function deployFixture3() { const fixtureRet = await deployFixture() - const adrs = fixtureRet.adrs - await network.provider.send('evm_setIntervalMining', [0]) + await (connection as any).provider.send('evm_setIntervalMining', [0]) const token3 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Token3', '3', 1000000000, ])) as ERC677 - adrs.token3 = await token3.getAddress() await setupToken(token3, fixtureRet.accounts) const tbRewardsPool = (await deploy('RewardsPoolTimeBased', [ - adrs.controller, - adrs.token3, + fixtureRet.controller.target, + token3.target, 100, 100000, ])) as RewardsPoolTimeBased - adrs.tbRewardsPool = await tbRewardsPool.getAddress() - await fixtureRet.controller.addToken(adrs.token3, adrs.tbRewardsPool) - await token3.approve(adrs.tbRewardsPool, ethers.MaxUint256) + await fixtureRet.controller.addToken(token3.target, tbRewardsPool.target) + await token3.approve(tbRewardsPool.target, ethers.MaxUint256) - return { ...fixtureRet, adrs, token3, tbRewardsPool } + return { ...fixtureRet, token3, tbRewardsPool } } it('depositRewards should work correctly with no previous epoch', async () => { - const { adrs, tbRewardsPool, token3 } = await loadFixture(deployFixture3) + const { tbRewardsPool, token3 } = await loadFixture(deployFixture3) await expect(tbRewardsPool.depositRewards(100000, 10)).to.be.revertedWithCustomError( tbRewardsPool, @@ -544,7 +524,7 @@ describe('RewardsPoolController', () => { let ts = ((await ethers.provider.getBlock('latest'))?.timestamp || 0) + 1 await tbRewardsPool.depositRewards(ts + 1000, toEther(400)) - assert.equal(fromEther(await token3.balanceOf(adrs.tbRewardsPool)), 400) + assert.equal(fromEther(await token3.balanceOf(tbRewardsPool.target)), 400) assert.equal(fromEther(await tbRewardsPool.totalRewards()), 400) assert.equal(fromEther(await tbRewardsPool.epochRewardsAmount()), 400) assert.equal(Number(await tbRewardsPool.epochDuration()), 1000) @@ -553,7 +533,7 @@ describe('RewardsPoolController', () => { }) it('depositRewards should work correctly with previous completed epoch', async () => { - const { adrs, tbRewardsPool, token3 } = await loadFixture(deployFixture3) + const { tbRewardsPool, token3 } = await loadFixture(deployFixture3) let ts = ((await ethers.provider.getBlock(await ethers.provider.getBlockNumber()))?.timestamp || 0) + @@ -565,7 +545,7 @@ describe('RewardsPoolController', () => { 1 await tbRewardsPool.depositRewards(ts + 500, toEther(200)) - assert.equal(fromEther(await token3.balanceOf(adrs.tbRewardsPool)), 800) + assert.equal(fromEther(await token3.balanceOf(tbRewardsPool.target)), 800) assert.equal(fromEther(await tbRewardsPool.totalRewards()), 800) assert.equal(fromEther(await tbRewardsPool.epochRewardsAmount()), 200) assert.equal(Number(await tbRewardsPool.epochDuration()), 500) @@ -579,7 +559,7 @@ describe('RewardsPoolController', () => { }) it('depositRewards should work correctly with epoch in progress', async () => { - const { adrs, tbRewardsPool, token3 } = await loadFixture(deployFixture3) + const { tbRewardsPool, token3 } = await loadFixture(deployFixture3) let ts = ((await ethers.provider.getBlock(await ethers.provider.getBlockNumber()))?.timestamp || 0) + @@ -591,7 +571,7 @@ describe('RewardsPoolController', () => { 1 await tbRewardsPool.depositRewards(ts + 500, toEther(200)) - assert.equal(fromEther(await token3.balanceOf(adrs.tbRewardsPool)), 800) + assert.equal(fromEther(await token3.balanceOf(tbRewardsPool.target)), 800) assert.equal(fromEther(await tbRewardsPool.totalRewards()), 800) assert.equal(fromEther(await tbRewardsPool.epochRewardsAmount()), 500) assert.equal(Number(await tbRewardsPool.epochDuration()), 500) @@ -645,11 +625,11 @@ describe('RewardsPoolController', () => { const { accounts, controller, tbRewardsPool } = await loadFixture(deployFixture3) assert.deepEqual( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)), + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)), [0, 0, 0] ) assert.deepEqual( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)), + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)), [0, 0, 0] ) @@ -659,21 +639,21 @@ describe('RewardsPoolController', () => { await tbRewardsPool.depositRewards(ts + 1000, toEther(600)) assert.deepEqual( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)), + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)), [0, 0, 0] ) assert.deepEqual( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)), + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)), [0, 0, 0] ) await time.increase(500) assert.deepEqual( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)), + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)), [0, 0, 200] ) assert.deepEqual( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)), + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)), [0, 0, 100] ) ts = @@ -682,23 +662,23 @@ describe('RewardsPoolController', () => { await tbRewardsPool.depositRewards(ts + 500, toEther(200)) assert.deepEqual( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)), + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)), [0, 0, 200.4] ) assert.deepEqual( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)), + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)), [0, 0, 100.2] ) await time.increase(10000) assert.deepEqual( - (await controller.withdrawableRewards(accounts[1])).map((r) => + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => Number(fromEther(r).toFixed(2)) ), [0, 0, 533.33] ) assert.deepEqual( - (await controller.withdrawableRewards(accounts[2])).map((r) => + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => Number(fromEther(r).toFixed(2)) ), [0, 0, 266.67] @@ -711,13 +691,13 @@ describe('RewardsPoolController', () => { await time.increase(100) assert.deepEqual( - (await controller.withdrawableRewards(accounts[1])).map((r) => + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => Number(fromEther(r).toFixed(2)) ), [0, 0, 566.67] ) assert.deepEqual( - (await controller.withdrawableRewards(accounts[2])).map((r) => + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => Number(fromEther(r).toFixed(2)) ), [0, 0, 283.33] @@ -725,7 +705,7 @@ describe('RewardsPoolController', () => { }) it('withdrawRewards should work correctly', async () => { - const { signers, accounts, adrs, controller, tbRewardsPool, token3 } = await loadFixture( + const { signers, accounts, controller, tbRewardsPool, token3 } = await loadFixture( deployFixture3 ) @@ -735,20 +715,20 @@ describe('RewardsPoolController', () => { await tbRewardsPool.depositRewards(ts + 1000, toEther(600)) await time.increase(1000) - await controller.connect(signers[1]).withdrawRewards([adrs.token3]) - await controller.connect(signers[2]).withdrawRewards([adrs.token3]) + await controller.connect(signers[1]).withdrawRewards([token3.target]) + await controller.connect(signers[2]).withdrawRewards([token3.target]) assert.equal(fromEther(await token3.balanceOf(accounts[1])), 10400) assert.equal(fromEther(await token3.balanceOf(accounts[2])), 10200) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 0]) ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 0]) ) @@ -776,20 +756,20 @@ describe('RewardsPoolController', () => { }) it('should be able to distributeTokens', async () => { - const { accounts, adrs, controller, token3 } = await loadFixture(deployFixture3) + const { accounts, controller, token3 } = await loadFixture(deployFixture3) - await token3.transfer(adrs.controller, toEther(150)) + await token3.transfer(controller.target, toEther(150)) - await controller.distributeTokens([adrs.token3]) + await controller.distributeTokens([token3.target]) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[1])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[1])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 100]) ) assert.equal( JSON.stringify( - (await controller.withdrawableRewards(accounts[2])).map((r) => fromEther(r)) + (await controller.withdrawableRewards(accounts[2])).map((r: bigint) => fromEther(r)) ), JSON.stringify([0, 0, 50]) ) diff --git a/test/core/sdlPool/linear-boost-controller.test.ts b/test/core/sdlPool/linear-boost-controller.test.ts index c112d4e0..38069102 100644 --- a/test/core/sdlPool/linear-boost-controller.test.ts +++ b/test/core/sdlPool/linear-boost-controller.test.ts @@ -1,7 +1,8 @@ import { assert, expect } from 'chai' -import { toEther, deploy, fromEther } from '../../utils/helpers' -import { LinearBoostController } from '../../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import { toEther, deploy, fromEther, getConnection } from '../../utils/helpers' +import type { LinearBoostController } from '../../../types/ethers-contracts' + +const { loadFixture } = getConnection() const DAY = 86400 diff --git a/test/core/sdlPool/sdl-pool.test.ts b/test/core/sdlPool/sdl-pool.test.ts index e0fb9c2f..c5a4c9eb 100644 --- a/test/core/sdlPool/sdl-pool.test.ts +++ b/test/core/sdlPool/sdl-pool.test.ts @@ -6,17 +6,19 @@ import { setupToken, fromEther, deployUpgradeable, + getConnection, } from '../../utils/helpers' -import { +import type { DelegatorPool, ERC677, LinearBoostController, RewardsPool, SDLPool, StakingAllowance, -} from '../../../typechain-types' -import { ethers } from 'hardhat' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const DAY = 86400 @@ -129,7 +131,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[0])), 500) assert.equal(Number(await sdlPool.balanceOf(accounts[0])), 2) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[0])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[0])).map((v: bigint) => Number(v)), [1, 4] ) @@ -137,7 +139,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[1])), 200) assert.equal(Number(await sdlPool.balanceOf(accounts[1])), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[1])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[1])).map((v: bigint) => Number(v)), [2] ) @@ -145,7 +147,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[2])), 300) assert.equal(Number(await sdlPool.balanceOf(accounts[2])), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[2])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[2])).map((v: bigint) => Number(v)), [3] ) }) @@ -201,7 +203,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[0])), 600) assert.equal(Number(await sdlPool.balanceOf(accounts[0])), 2) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[0])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[0])).map((v: bigint) => Number(v)), [1, 4] ) @@ -209,7 +211,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[1])), 1000) assert.equal(Number(await sdlPool.balanceOf(accounts[1])), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[1])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[1])).map((v: bigint) => Number(v)), [2] ) @@ -220,7 +222,7 @@ describe('SDLPool', () => { assert.equal(Number(fromEther(await sdlPool.staked(accounts[2])).toFixed(4)), 382.1918) assert.equal(Number(await sdlPool.balanceOf(accounts[2])), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[2])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[2])).map((v: bigint) => Number(v)), [3] ) }) @@ -599,7 +601,7 @@ describe('SDLPool', () => { let ts2 = (await ethers.provider.getBlock('latest'))?.timestamp || 0 await time.increase(200 * DAY) - let startingBalance = await sdlToken.balanceOf(accounts[0]) + let startingBalance: bigint = await sdlToken.balanceOf(accounts[0]) await sdlPool.withdraw(1, toEther(20)) assert.equal(fromEther((await sdlToken.balanceOf(accounts[0])) - startingBalance), 20) @@ -628,7 +630,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.effectiveBalanceOf(accounts[0])), 0) assert.equal(fromEther(await sdlPool.staked(accounts[0])), 0) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[0])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[0])).map((v: bigint) => Number(v)), [] ) assert.equal(Number(await sdlPool.balanceOf(accounts[0])), 0) @@ -644,7 +646,7 @@ describe('SDLPool', () => { ethers.AbiCoder.defaultAbiCoder().encode(['uint256', 'uint64'], [0, 0]) ) - let startingBalance = await sdlToken.balanceOf(accounts[0]) + let startingBalance: bigint = await sdlToken.balanceOf(accounts[0]) await sdlPool.withdraw(1, toEther(20)) assert.equal(fromEther((await sdlToken.balanceOf(accounts[0])) - startingBalance), 20) @@ -673,7 +675,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.effectiveBalanceOf(accounts[0])), 0) assert.equal(fromEther(await sdlPool.staked(accounts[0])), 0) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[0])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[0])).map((v: bigint) => Number(v)), [] ) assert.equal(Number(await sdlPool.balanceOf(accounts[0])), 0) @@ -703,7 +705,7 @@ describe('SDLPool', () => { ) await time.increase(200 * DAY) - sdlPool.withdraw(1, toEther(1)) + await sdlPool.withdraw(1, toEther(1)) }) it('only the lock owner should be able to withdraw, lock id must be valid', async () => { @@ -728,7 +730,7 @@ describe('SDLPool', () => { 'InvalidLockId()' ) - sdlPool.withdraw(1, toEther(1)) + await sdlPool.withdraw(1, toEther(1)) }) it('should be able to transfer ownership of locks using transferFrom', async () => { @@ -783,7 +785,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[0])), 1600) assert.equal(Number(await sdlPool.balanceOf(accounts[0])), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[0])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[0])).map((v: bigint) => Number(v)), [4] ) @@ -791,7 +793,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[1])), 500) assert.equal(Number(await sdlPool.balanceOf(accounts[1])), 2) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[1])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[1])).map((v: bigint) => Number(v)), [1, 2] ) @@ -799,7 +801,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[2])), 0) assert.equal(Number(await sdlPool.balanceOf(accounts[2])), 0) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[2])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[2])).map((v: bigint) => Number(v)), [] ) @@ -807,7 +809,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[3])), 900) assert.equal(Number(await sdlPool.balanceOf(accounts[3])), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[3])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[3])).map((v: bigint) => Number(v)), [3] ) }) @@ -868,7 +870,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[0])), 1600) assert.equal(Number(await sdlPool.balanceOf(accounts[0])), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[0])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[0])).map((v: bigint) => Number(v)), [4] ) @@ -876,7 +878,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[1])), 500) assert.equal(Number(await sdlPool.balanceOf(accounts[1])), 2) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[1])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[1])).map((v: bigint) => Number(v)), [1, 2] ) @@ -884,7 +886,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[2])), 0) assert.equal(Number(await sdlPool.balanceOf(accounts[2])), 0) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[2])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[2])).map((v: bigint) => Number(v)), [] ) @@ -892,7 +894,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(receiver.target)), 900) assert.equal(Number(await sdlPool.balanceOf(receiver.target)), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(receiver.target)).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(receiver.target)).map((v: bigint) => Number(v)), [3] ) assert.deepEqual( @@ -972,7 +974,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[0])), 1600) assert.equal(Number(await sdlPool.balanceOf(accounts[0])), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[0])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[0])).map((v: bigint) => Number(v)), [4] ) @@ -980,7 +982,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[1])), 500) assert.equal(Number(await sdlPool.balanceOf(accounts[1])), 2) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[1])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[1])).map((v: bigint) => Number(v)), [1, 2] ) @@ -988,7 +990,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(accounts[2])), 0) assert.equal(Number(await sdlPool.balanceOf(accounts[2])), 0) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(accounts[2])).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(accounts[2])).map((v: bigint) => Number(v)), [] ) @@ -996,7 +998,7 @@ describe('SDLPool', () => { assert.equal(fromEther(await sdlPool.staked(receiver.target)), 900) assert.equal(Number(await sdlPool.balanceOf(receiver.target)), 1) assert.deepEqual( - (await sdlPool.getLockIdsByOwner(receiver.target)).map((v) => Number(v)), + (await sdlPool.getLockIdsByOwner(receiver.target)).map((v: bigint) => Number(v)), [3] ) assert.deepEqual( diff --git a/test/core/security-pool.test.ts b/test/core/security-pool.test.ts index 10b5840f..a4f14324 100644 --- a/test/core/security-pool.test.ts +++ b/test/core/security-pool.test.ts @@ -6,15 +6,16 @@ import { setupToken, fromEther, deployUpgradeable, + getConnection, } from '../utils/helpers' -import { ERC677, SecurityPool, RewardsPoolTimeBased } from '../../typechain-types' -import { ethers } from 'hardhat' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +import type { ERC677, SecurityPool, RewardsPoolTimeBased } from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time describe('SecurityPool', () => { async function deployFixture() { const { accounts, signers } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Token1', @@ -22,7 +23,6 @@ describe('SecurityPool', () => { 1000000000, ])) as ERC677 await setupToken(token, accounts) - adrs.token = await token.getAddress() const stakingToken = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'StakingToken', @@ -30,10 +30,9 @@ describe('SecurityPool', () => { 1000000000, ])) as ERC677 await setupToken(stakingToken, accounts) - adrs.stakingToken = await stakingToken.getAddress() const securityPool = (await deployUpgradeable('SecurityPool', [ - adrs.stakingToken, + stakingToken.target, 'name', 'symbol', accounts[0], @@ -41,27 +40,25 @@ describe('SecurityPool', () => { 0, 0, ])) as SecurityPool - adrs.securityPool = await securityPool.getAddress() const rewardsPool = (await deploy('RewardsPoolTimeBased', [ - adrs.securityPool, - adrs.token, + securityPool.target, + token.target, 100, 100000, ])) as RewardsPoolTimeBased - adrs.rewardsPool = await rewardsPool.getAddress() - await securityPool.addToken(adrs.token, adrs.rewardsPool) - await stakingToken.approve(adrs.securityPool, ethers.MaxUint256) - await stakingToken.connect(signers[1]).approve(adrs.securityPool, ethers.MaxUint256) - await token.approve(adrs.rewardsPool, ethers.MaxUint256) + await securityPool.addToken(token.target, rewardsPool.target) + await stakingToken.approve(securityPool.target, ethers.MaxUint256) + await stakingToken.connect(signers[1]).approve(securityPool.target, ethers.MaxUint256) + await token.approve(rewardsPool.target, ethers.MaxUint256) await securityPool.deposit(1000) - return { accounts, signers, adrs, token, stakingToken, securityPool, rewardsPool } + return { accounts, signers, token, stakingToken, securityPool, rewardsPool } } it('deposit should work correctly', async () => { - const { accounts, signers, adrs, securityPool, stakingToken, rewardsPool } = await loadFixture( + const { accounts, signers, securityPool, stakingToken, rewardsPool } = await loadFixture( deployFixture ) @@ -73,7 +70,7 @@ describe('SecurityPool', () => { assert.equal(fromEther(await securityPool.balanceOf(accounts[1])), 3000) assert.equal(fromEther(await securityPool.totalDeposits()), 4000) assert.equal(fromEther(await securityPool.totalStaked()), 4000) - assert.equal(fromEther(await stakingToken.balanceOf(adrs.securityPool)), 4000) + assert.equal(fromEther(await stakingToken.balanceOf(securityPool.target)), 4000) let ts: any = (await ethers.provider.getBlock('latest'))?.timestamp await rewardsPool.depositRewards(ts + 1000, toEther(1000)) @@ -91,7 +88,7 @@ describe('SecurityPool', () => { }) it('withdraw should work correctly', async () => { - const { accounts, signers, adrs, securityPool, stakingToken, rewardsPool } = await loadFixture( + const { accounts, signers, securityPool, stakingToken, rewardsPool } = await loadFixture( deployFixture ) @@ -112,7 +109,7 @@ describe('SecurityPool', () => { assert.equal(fromEther(await securityPool.balanceOf(accounts[1])), 3000) assert.equal(fromEther(await securityPool.totalDeposits()), 4000) assert.equal(fromEther(await securityPool.totalStaked()), 4000) - assert.equal(fromEther(await stakingToken.balanceOf(adrs.securityPool)), 4000) + assert.equal(fromEther(await stakingToken.balanceOf(securityPool.target)), 4000) let ts: any = (await ethers.provider.getBlock('latest'))?.timestamp await rewardsPool.depositRewards(ts + 1000, toEther(1000)) @@ -132,8 +129,9 @@ describe('SecurityPool', () => { }) it('claim process should work correctly', async () => { - const { accounts, signers, adrs, securityPool, stakingToken, rewardsPool, token } = - await loadFixture(deployFixture) + const { accounts, signers, securityPool, stakingToken, rewardsPool, token } = await loadFixture( + deployFixture + ) await expect(securityPool.executeClaim(10)).to.be.revertedWithCustomError( securityPool, @@ -146,7 +144,7 @@ describe('SecurityPool', () => { await securityPool.deposit(toEther(1000)) await securityPool.connect(signers[1]).deposit(toEther(3000)) - await token.transferAndCall(adrs.rewardsPool, toEther(1000), '0x') + await token.transferAndCall(rewardsPool.target, toEther(1000), '0x') await securityPool.initiateClaim() assert.equal(await securityPool.claimInProgress(), true) @@ -174,7 +172,7 @@ describe('SecurityPool', () => { assert.equal(fromEther(await securityPool.balanceOf(accounts[1])), 2100) assert.equal(fromEther(await securityPool.totalDeposits()), 2800) assert.equal(fromEther(await securityPool.totalStaked()), 4000) - assert.equal(fromEther(await stakingToken.balanceOf(adrs.securityPool)), 2800) + assert.equal(fromEther(await stakingToken.balanceOf(securityPool.target)), 2800) await securityPool.resolveClaim() }) diff --git a/test/core/staking-allowance.test.ts b/test/core/staking-allowance.test.ts index a5ce5e02..fe9ce89c 100644 --- a/test/core/staking-allowance.test.ts +++ b/test/core/staking-allowance.test.ts @@ -1,22 +1,21 @@ -import { deploy, fromEther, getAccounts, toEther } from '../utils/helpers' -import { StakingAllowance } from '../../typechain-types' +import { deploy, fromEther, getAccounts, toEther, getConnection } from '../utils/helpers' +import type { StakingAllowance } from '../../types/ethers-contracts' import { assert, expect } from 'chai' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' + +const { loadFixture } = getConnection() describe('StakingAllowance', () => { async function deployFixture() { const { signers, accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('StakingAllowance', [ 'Staking Allowance', 'STA', ])) as StakingAllowance - adrs.token = await token.getAddress() await token.mint(accounts[0], toEther(10000)) - return { signers, accounts, adrs, token } + return { signers, accounts, token } } it('should be able to burn tokens', async () => { diff --git a/test/core/staking-pool.test.ts b/test/core/staking-pool.test.ts index d2ceaeb6..804c82f6 100644 --- a/test/core/staking-pool.test.ts +++ b/test/core/staking-pool.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -7,61 +6,61 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { ERC677, StrategyMock, StakingPool, ERC677ReceiverMock } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import type { + ERC677, + StrategyMock, + StakingPool, + ERC677ReceiverMock, +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('StakingPool', () => { async function deployFixture() { const { signers, accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() await setupToken(token, accounts) const erc677Receiver = (await deploy('ERC677ReceiverMock')) as ERC677ReceiverMock - adrs.erc677Receiver = await erc677Receiver.getAddress() const stakingPool = (await deployUpgradeable('StakingPool', [ - adrs.token, + token.target, 'LinkPool LINK', 'lpLINK', [ [accounts[4], 1000], - [adrs.erc677Receiver, 2000], + [erc677Receiver.target, 2000], ], toEther(10000), ])) as StakingPool - adrs.stakingPool = await stakingPool.getAddress() const strategy1 = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(1000), toEther(10), ])) as StrategyMock - adrs.strategy1 = await strategy1.getAddress() const strategy2 = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(2000), toEther(20), ])) as StrategyMock - adrs.strategy2 = await strategy2.getAddress() const strategy3 = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(10000), toEther(10), ])) as StrategyMock - adrs.strategy3 = await strategy3.getAddress() async function stake(account: number, amount: number) { await token.connect(signers[account]).transfer(accounts[0], toEther(amount)) @@ -76,19 +75,18 @@ describe('StakingPool', () => { ]) } - await stakingPool.addStrategy(adrs.strategy1) - await stakingPool.addStrategy(adrs.strategy2) - await stakingPool.addStrategy(adrs.strategy3) + await stakingPool.addStrategy(strategy1.target) + await stakingPool.addStrategy(strategy2.target) + await stakingPool.addStrategy(strategy3.target) await stakingPool.setPriorityPool(accounts[0]) await stakingPool.setRebaseController(accounts[0]) - await token.approve(adrs.stakingPool, ethers.MaxUint256) + await token.approve(stakingPool.target, ethers.MaxUint256) await stakingPool.deposit(accounts[0], 1000, ['0x', '0x']) return { signers, accounts, - adrs, token, erc677Receiver, stakingPool, @@ -109,14 +107,14 @@ describe('StakingPool', () => { }) it('should be able to add new fee', async () => { - const { accounts, adrs, stakingPool, erc677Receiver } = await loadFixture(deployFixture) + const { accounts, stakingPool, erc677Receiver } = await loadFixture(deployFixture) await stakingPool.addFee(accounts[1], 500) assert.deepEqual( - (await stakingPool.getFees()).map((fee) => [fee[0], fee[1]]), + (await stakingPool.getFees()).map((fee: any) => [fee[0], fee[1]]), [ [accounts[4], 1000n], - [adrs.erc677Receiver, 2000n], + [erc677Receiver.target, 2000n], [accounts[1], 500n], ], 'fees incorrect' @@ -124,14 +122,14 @@ describe('StakingPool', () => { }) it('should be able to update existing fees', async () => { - const { accounts, adrs, stakingPool } = await loadFixture(deployFixture) + const { accounts, stakingPool, erc677Receiver } = await loadFixture(deployFixture) await stakingPool.updateFee(0, accounts[1], 100) assert.deepEqual( - (await stakingPool.getFees()).map((fee) => [fee[0], fee[1]]), + (await stakingPool.getFees()).map((fee: any) => [fee[0], fee[1]]), [ [accounts[1], 100n], - [adrs.erc677Receiver, 2000n], + [erc677Receiver.target, 2000n], ], 'fees incorrect' ) @@ -141,11 +139,11 @@ describe('StakingPool', () => { }) it('should be able to add new strategies', async () => { - const { adrs, stakingPool } = await loadFixture(deployFixture) + const { token, stakingPool } = await loadFixture(deployFixture) const strategy = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(10000), toEther(10), ])) as StrategyMock @@ -159,21 +157,21 @@ describe('StakingPool', () => { }) it('should not be able to add strategy that has already been added', async () => { - const { stakingPool, adrs } = await loadFixture(deployFixture) + const { stakingPool, strategy3 } = await loadFixture(deployFixture) - await expect(stakingPool.addStrategy(adrs.strategy3)).to.be.revertedWith( + await expect(stakingPool.addStrategy(strategy3.target)).to.be.revertedWith( 'Strategy already exists' ) }) it('should be able to remove strategies', async () => { - const { stakingPool, adrs } = await loadFixture(deployFixture) + const { stakingPool, strategy1, strategy3 } = await loadFixture(deployFixture) await stakingPool.removeStrategy(1, '0x', '0x') let strategies = await stakingPool.getStrategies() assert.equal( JSON.stringify(strategies), - JSON.stringify([adrs.strategy1, adrs.strategy3]), + JSON.stringify([strategy1.target, strategy3.target]), 'Remaining strategies incorrect' ) @@ -181,7 +179,7 @@ describe('StakingPool', () => { strategies = await stakingPool.getStrategies() assert.equal( JSON.stringify(strategies), - JSON.stringify([adrs.strategy1]), + JSON.stringify([strategy1.target]), 'Remaining strategies incorrect' ) }) @@ -195,13 +193,13 @@ describe('StakingPool', () => { }) it('should be able to reorder strategies', async () => { - const { stakingPool, adrs } = await loadFixture(deployFixture) + const { stakingPool, strategy1, strategy2, strategy3 } = await loadFixture(deployFixture) await stakingPool.reorderStrategies([1, 2, 0]) let strategies = await stakingPool.getStrategies() assert.equal( JSON.stringify(strategies), - JSON.stringify([adrs.strategy2, adrs.strategy3, adrs.strategy1]), + JSON.stringify([strategy2.target, strategy3.target, strategy1.target]), 'Strategies incorrectly ordered' ) }) @@ -223,29 +221,29 @@ describe('StakingPool', () => { }) it('should be able to deposit into strategy', async () => { - const { adrs, stakingPool, token } = await loadFixture(deployFixture) + const { stakingPool, token, strategy1 } = await loadFixture(deployFixture) - await token.transfer(adrs.stakingPool, toEther(1000)) + await token.transfer(stakingPool.target, toEther(1000)) await stakingPool.strategyDeposit(0, toEther(300), '0x') - assert.equal(fromEther(await token.balanceOf(adrs.strategy1)), 300, 'Tokens not deposited') + assert.equal(fromEther(await token.balanceOf(strategy1.target)), 300, 'Tokens not deposited') }) it('should not be able to deposit into nonexistent strategy', async () => { - const { adrs, stakingPool, token } = await loadFixture(deployFixture) + const { stakingPool, token } = await loadFixture(deployFixture) - await token.transfer(adrs.stakingPool, toEther(1000)) + await token.transfer(stakingPool.target, toEther(1000)) await expect(stakingPool.strategyDeposit(3, toEther(1), '0x')).to.be.revertedWith( 'Strategy does not exist' ) }) it('should be able to withdraw from strategy', async () => { - const { adrs, stakingPool, token } = await loadFixture(deployFixture) + const { stakingPool, token, strategy1 } = await loadFixture(deployFixture) - await token.transfer(adrs.stakingPool, toEther(1000)) + await token.transfer(stakingPool.target, toEther(1000)) await stakingPool.strategyDeposit(0, toEther(300), '0x') await stakingPool.strategyWithdraw(0, toEther(100), '0x') - assert.equal(fromEther(await token.balanceOf(adrs.strategy1)), 200, 'Tokens not withdrawn') + assert.equal(fromEther(await token.balanceOf(strategy1.target)), 200, 'Tokens not withdrawn') }) it('should not be able to withdraw from nonexistent strategy', async () => { @@ -330,30 +328,31 @@ describe('StakingPool', () => { }) it('staking should correctly deposit into strategies', async () => { - const { adrs, token, stake } = await loadFixture(deployFixture) + const { token, strategy1, strategy2, strategy3, stake } = await loadFixture(deployFixture) await stake(1, 2000) await stake(2, 1000) await stake(3, 2000) assert.equal( - fromEther(await token.balanceOf(adrs.strategy1)), + fromEther(await token.balanceOf(strategy1.target)), 1000, 'Strategy-1 balance incorrect' ) assert.equal( - fromEther(await token.balanceOf(adrs.strategy2)), + fromEther(await token.balanceOf(strategy2.target)), 2000, 'Strategy-2 balance incorrect' ) assert.equal( - fromEther(await token.balanceOf(adrs.strategy3)), + fromEther(await token.balanceOf(strategy3.target)), 2000, 'Strategy-3 balance incorrect' ) }) it('withdrawing should correctly withdraw from strategies', async () => { - const { adrs, stakingPool, token, stake, withdraw } = await loadFixture(deployFixture) + const { stakingPool, token, strategy1, strategy2, strategy3, stake, withdraw } = + await loadFixture(deployFixture) await stake(1, 2000) await stake(2, 1000) @@ -361,48 +360,48 @@ describe('StakingPool', () => { await stakingPool.strategyWithdraw(0, toEther(100), '0x') await withdraw(3, 2000) assert.equal( - fromEther(await token.balanceOf(adrs.strategy1)), + fromEther(await token.balanceOf(strategy1.target)), 900, 'Strategy-1 balance incorrect' ) assert.equal( - fromEther(await token.balanceOf(adrs.strategy2)), + fromEther(await token.balanceOf(strategy2.target)), 2000, 'Strategy-2 balance incorrect' ) assert.equal( - fromEther(await token.balanceOf(adrs.strategy3)), + fromEther(await token.balanceOf(strategy3.target)), 100, 'Strategy-3 balance incorrect' ) await withdraw(1, 2000) await withdraw(2, 900) assert.equal( - fromEther(await token.balanceOf(adrs.strategy1)), + fromEther(await token.balanceOf(strategy1.target)), 70, 'Strategy-1 balance incorrect' ) assert.equal( - fromEther(await token.balanceOf(adrs.strategy2)), + fromEther(await token.balanceOf(strategy2.target)), 20, 'Strategy-2 balance incorrect' ) assert.equal( - fromEther(await token.balanceOf(adrs.strategy3)), + fromEther(await token.balanceOf(strategy3.target)), 10, 'Strategy-3 balance incorrect' ) }) it('should be able to update strategy rewards', async () => { - const { accounts, adrs, stakingPool, token, strategy2, erc677Receiver, stake } = + const { accounts, stakingPool, token, strategy1, strategy2, strategy3, erc677Receiver, stake } = await loadFixture(deployFixture) await stake(1, 2000) await stake(2, 1000) await stake(3, 2000) - await token.transfer(adrs.strategy1, toEther(1100)) - await token.transfer(adrs.strategy3, toEther(500)) + await token.transfer(strategy1.target, toEther(1100)) + await token.transfer(strategy3.target, toEther(500)) await strategy2.simulateSlash(toEther(400)) await stakingPool.updateStrategyRewards([0, 1, 2], '0x') @@ -427,7 +426,7 @@ describe('StakingPool', () => { 'Owners rewards balance incorrect' ) assert.equal( - Number(fromEther(await stakingPool.balanceOf(adrs.erc677Receiver))), + Number(fromEther(await stakingPool.balanceOf(erc677Receiver.target))), 240, 'Delegator pool balance incorrect' ) @@ -440,7 +439,7 @@ describe('StakingPool', () => { }) it('fee splitting should work correctly', async () => { - const { accounts, adrs, stakingPool, strategy1, strategy3, token, strategy2, stake } = + const { accounts, stakingPool, strategy1, strategy2, strategy3, token, erc677Receiver, stake } = await loadFixture(deployFixture) await stakingPool.addFee(accounts[0], 1000) @@ -450,8 +449,8 @@ describe('StakingPool', () => { await stake(1, 2000) await stake(2, 1000) await stake(3, 2000) - await token.transfer(adrs.strategy1, toEther(1000)) - await token.transfer(adrs.strategy3, toEther(600)) + await token.transfer(strategy1.target, toEther(1000)) + await token.transfer(strategy3.target, toEther(600)) await strategy2.simulateSlash(toEther(300)) await stakingPool.updateStrategyRewards([0, 1, 2], '0x') @@ -482,7 +481,7 @@ describe('StakingPool', () => { 'Strategy fee balance incorrect' ) assert.equal( - fromEther(await stakingPool.balanceOf(adrs.erc677Receiver)), + fromEther(await stakingPool.balanceOf(erc677Receiver.target)), 260, 'Delegation fee balance incorrect' ) @@ -522,7 +521,7 @@ describe('StakingPool', () => { }) it('fees should be distributed regardless of deposit change', async () => { - const { accounts, adrs, stakingPool, strategy1, strategy2, strategy3, token, stake } = + const { accounts, stakingPool, strategy1, strategy2, strategy3, token, stake } = await loadFixture(deployFixture) await stake(1, 2000) @@ -530,7 +529,7 @@ describe('StakingPool', () => { await stake(3, 2000) await strategy3.simulateSlash(toEther(200)) await strategy2.setFeeBasisPoints(1000) - await token.transfer(adrs.strategy2, toEther(200)) + await token.transfer(strategy2.target, toEther(200)) await stakingPool.updateStrategyRewards([0, 1, 2], '0x') assert.equal( @@ -561,7 +560,7 @@ describe('StakingPool', () => { assert.equal(fromEther(await stakingPool.totalSupply()), 5000, 'totalSupply incorrect') await strategy1.simulateSlash(toEther(290)) - await token.transfer(adrs.strategy2, toEther(100)) + await token.transfer(strategy2.target, toEther(100)) await stakingPool.updateStrategyRewards([0, 1, 2], '0x') assert.equal( @@ -593,7 +592,7 @@ describe('StakingPool', () => { }) it('getStakeByShares and getSharesByStake should work correctly', async () => { - const { adrs, stakingPool, token, strategy1, stake } = await loadFixture(deployFixture) + const { stakingPool, token, strategy1, stake } = await loadFixture(deployFixture) await stake(1, 1000) await stake(2, 1000) @@ -609,7 +608,7 @@ describe('StakingPool', () => { 'getSharesByStake incorrect' ) - await token.transfer(adrs.strategy1, toEther(1000)) + await token.transfer(strategy1.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') await stake(3, 1000) @@ -640,12 +639,14 @@ describe('StakingPool', () => { }) it('should be able to transfer derivative tokens', async () => { - const { signers, accounts, adrs, stakingPool, token, stake } = await loadFixture(deployFixture) + const { signers, accounts, stakingPool, token, strategy1, stake } = await loadFixture( + deployFixture + ) await stake(1, 1000) await stake(2, 1000) - await token.transfer(adrs.strategy1, toEther(1000)) + await token.transfer(strategy1.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') await stakingPool.connect(signers[1]).transfer(accounts[3], toEther(100)) @@ -674,14 +675,16 @@ describe('StakingPool', () => { }) it('should be able to transfer shares', async () => { - const { signers, accounts, adrs, stakingPool, token, stake } = await loadFixture(deployFixture) + const { signers, accounts, stakingPool, token, strategy1, stake } = await loadFixture( + deployFixture + ) await stakingPool.updateFee(0, accounts[0], 0) await stakingPool.updateFee(0, accounts[0], 0) await stake(1, 1000) await stake(2, 1000) - await token.transfer(adrs.strategy1, toEther(1000)) + await token.transfer(strategy1.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') await stakingPool.connect(signers[1]).transferShares(accounts[3], toEther(100)) @@ -750,9 +753,7 @@ describe('StakingPool', () => { }) it('getStrategyDepositRoom should work correctly', async () => { - const { adrs, stakingPool, token, strategy1, strategy2, stake } = await loadFixture( - deployFixture - ) + const { stakingPool, token, strategy1, strategy2, stake } = await loadFixture(deployFixture) assert.equal(fromEther(await stakingPool.getStrategyDepositRoom()), 13000) @@ -765,7 +766,7 @@ describe('StakingPool', () => { await strategy2.setMaxDeposits(toEther(0)) assert.equal(fromEther(await stakingPool.getStrategyDepositRoom()), 11000) - await token.transfer(adrs.stakingPool, toEther(1000)) + await token.transfer(stakingPool.target, toEther(1000)) assert.equal(fromEther(await stakingPool.getStrategyDepositRoom()), 11000) }) @@ -804,12 +805,14 @@ describe('StakingPool', () => { }) it('should revert transfer and burn when amount rounds to zero shares', async () => { - const { signers, accounts, adrs, stakingPool, token, stake } = await loadFixture(deployFixture) + const { signers, accounts, stakingPool, token, stake, strategy1 } = await loadFixture( + deployFixture + ) await stake(1, 1000) // accrue rewards so totalStaked > totalShares - await token.transfer(adrs.strategy1, toEther(500)) + await token.transfer(strategy1.target, toEther(500)) await stakingPool.updateStrategyRewards([0], '0x') assert.equal(await stakingPool.getSharesByStake(1), 0n) diff --git a/test/core/staking-proxy.test.ts b/test/core/staking-proxy.test.ts index 44538187..a6ea9c8f 100644 --- a/test/core/staking-proxy.test.ts +++ b/test/core/staking-proxy.test.ts @@ -6,8 +6,9 @@ import { deployUpgradeable, getAccounts, setupToken, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, SDLPoolMock, StakingPool, @@ -17,10 +18,10 @@ import { StakingAllowance, RewardsPoolWSD, StakingProxy, -} from '../../typechain-types' -import { ethers } from 'hardhat' +} from '../../types/ethers-contracts' import { StandardMerkleTree } from '@openzeppelin/merkle-tree' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' + +const { ethers, loadFixture } = getConnection() describe('StakingProxy', () => { async function deployFixture() { @@ -263,7 +264,7 @@ describe('StakingProxy', () => { ) assert.deepEqual( - (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i) => { + (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i: number) => { if (i < 2) return fromEther(d) return d }), @@ -286,7 +287,7 @@ describe('StakingProxy', () => { assert.equal(fromEther(await stakingProxy.getTotalQueuedForDeposit(toEther(50))), 0) assert.equal(fromEther(await stakingProxy.getTotalQueuedForWithdrawal()), 150) assert.deepEqual( - (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i) => { + (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i: number) => { if (i < 2) return fromEther(d) return d }), @@ -296,7 +297,7 @@ describe('StakingProxy', () => { await priorityPool.deposit(toEther(100), true, ['0x']) assert.deepEqual( - (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i) => { + (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i: number) => { if (i < 2) return fromEther(d) return d.map((v: any) => Number(v)) }), @@ -319,7 +320,7 @@ describe('StakingProxy', () => { assert.equal(fromEther(await stakingProxy.getTotalQueuedForDeposit(toEther(50))), 0) assert.equal(fromEther(await stakingProxy.getTotalQueuedForWithdrawal()), 50) assert.deepEqual( - (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i) => { + (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i: number) => { if (i < 2) return fromEther(d) return d }), @@ -329,7 +330,7 @@ describe('StakingProxy', () => { await priorityPool.deposit(toEther(125), true, ['0x']) assert.deepEqual( - (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i) => { + (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i: number) => { if (i < 2) return fromEther(d) return d.map((v: any) => Number(v)) }), @@ -352,7 +353,7 @@ describe('StakingProxy', () => { assert.equal(fromEther(await stakingProxy.getTotalQueuedForDeposit(toEther(50))), 0) assert.equal(fromEther(await stakingProxy.getTotalQueuedForWithdrawal()), 0) assert.deepEqual( - (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i) => { + (await stakingProxy.getTotalWithdrawable(toEther(50))).map((d: any, i: number) => { if (i < 2) return fromEther(d) return d }), diff --git a/test/core/strategy.test.ts b/test/core/strategy.test.ts index f9f91502..31594097 100644 --- a/test/core/strategy.test.ts +++ b/test/core/strategy.test.ts @@ -1,4 +1,3 @@ -import { ethers, upgrades } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -7,48 +6,48 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { ERC677, StrategyMock } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import type { ERC677, StrategyMock } from '../../types/ethers-contracts' + +const { ethers, loadFixture, upgradesApi } = getConnection() describe('Strategy', () => { async function deployFixture() { const { signers, accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() await setupToken(token, accounts) const strategy = (await deployUpgradeable('StrategyMock', [ - adrs.token, + token.target, accounts[0], toEther(1000), toEther(10), ])) as StrategyMock - adrs.strategy = await strategy.getAddress() - await token.approve(adrs.strategy, ethers.MaxUint256) + await token.approve(strategy.target, ethers.MaxUint256) - return { signers, accounts, adrs, token, strategy } + return { signers, accounts, token, strategy } } it('should be able to upgrade contract, state should persist', async () => { - const { adrs, token, strategy } = await loadFixture(deployFixture) + const { token, strategy } = await loadFixture(deployFixture) await strategy.deposit(toEther(1000), '0x') let StrategyV2 = await ethers.getContractFactory('StrategyMockV2') - let upgradedImpAddress = (await upgrades.prepareUpgrade(adrs.strategy, StrategyV2, { + let upgradedImpAddress = (await upgradesApi.prepareUpgrade(strategy.target, StrategyV2, { kind: 'uups', + unsafeAllow: ['missing-initializer'], })) as string await strategy.upgradeTo(upgradedImpAddress) - let upgraded = await ethers.getContractAt('StrategyMockV2', adrs.strategy) + let upgraded = await ethers.getContractAt('StrategyMockV2', strategy.target) assert.equal(Number(await upgraded.contractVersion()), 2, 'contract not upgraded') assert.equal(fromEther(await upgraded.getTotalDeposits()), 1000, 'state not persisted') assert.equal( @@ -59,11 +58,12 @@ describe('Strategy', () => { }) it('contract should only be upgradeable by owner', async () => { - const { adrs, signers, strategy } = await loadFixture(deployFixture) + const { signers, strategy } = await loadFixture(deployFixture) let StrategyV2 = await ethers.getContractFactory('StrategyMockV2') - let upgradedImpAddress = (await upgrades.prepareUpgrade(adrs.strategy, StrategyV2, { + let upgradedImpAddress = (await upgradesApi.prepareUpgrade(strategy.target, StrategyV2, { kind: 'uups', + unsafeAllow: ['missing-initializer'], })) as string await expect(strategy.connect(signers[1]).upgradeTo(upgradedImpAddress)).to.be.revertedWith( diff --git a/test/core/wrapped-sd-token.test.ts b/test/core/wrapped-sd-token.test.ts index ef6a043f..6478a45f 100644 --- a/test/core/wrapped-sd-token.test.ts +++ b/test/core/wrapped-sd-token.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert } from 'chai' import { toEther, @@ -7,60 +6,62 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { ERC677, StrategyMock, StakingPool, WrappedSDToken } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import type { + ERC677, + StrategyMock, + StakingPool, + WrappedSDToken, +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('WrappedSDToken', () => { async function deployFixture() { const { signers, accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() await setupToken(token, accounts) const stakingPool = (await deployUpgradeable('StakingPool', [ - adrs.token, + token.target, 'LinkPool LINK', 'lplLINK', [[accounts[4], 0]], toEther(10000), ])) as StakingPool - adrs.stakingPool = await stakingPool.getAddress() const wsdToken = (await deploy('WrappedSDToken', [ - adrs.stakingPool, + stakingPool.target, 'Wrapped LinkPool LINK', 'wlplLINK', ])) as WrappedSDToken - adrs.wsdToken = await wsdToken.getAddress() const strategy1 = (await deployUpgradeable('StrategyMock', [ - adrs.token, - adrs.stakingPool, + token.target, + stakingPool.target, toEther(1000), toEther(10), ])) as StrategyMock - adrs.strategy1 = await strategy1.getAddress() async function stake(account: number, amount: number) { await token.connect(signers[account]).transfer(accounts[0], toEther(amount)) await stakingPool.deposit(accounts[account], toEther(amount), ['0x']) } - await stakingPool.addStrategy(adrs.strategy1) + await stakingPool.addStrategy(strategy1.target) await stakingPool.setPriorityPool(accounts[0]) await stakingPool.setRebaseController(accounts[0]) - await token.approve(adrs.stakingPool, ethers.MaxUint256) + await token.approve(stakingPool.target, ethers.MaxUint256) await stakingPool.deposit(accounts[0], 1000, ['0x']) - return { signers, accounts, adrs, token, stakingPool, wsdToken, strategy1, stake } + return { signers, accounts, token, stakingPool, wsdToken, strategy1, stake } } it('token metadata should be correct', async () => { @@ -72,16 +73,14 @@ describe('WrappedSDToken', () => { }) it('should be able to wrap/unwrap tokens', async () => { - const { signers, accounts, adrs, stakingPool, wsdToken, stake } = await loadFixture( - deployFixture - ) + const { signers, accounts, stakingPool, wsdToken, stake } = await loadFixture(deployFixture) await stake(1, 1000) - await stakingPool.connect(signers[1]).approve(adrs.wsdToken, toEther(1000)) + await stakingPool.connect(signers[1]).approve(wsdToken.target, toEther(1000)) await wsdToken.connect(signers[1]).wrap(toEther(1000)) assert.equal( - fromEther(await stakingPool.balanceOf(adrs.wsdToken)), + fromEther(await stakingPool.balanceOf(wsdToken.target)), 1000, 'wsdToken balance incorrect' ) @@ -94,7 +93,7 @@ describe('WrappedSDToken', () => { await wsdToken.connect(signers[1]).unwrap(toEther(1000)) assert.equal( - fromEther(await stakingPool.balanceOf(adrs.wsdToken)), + fromEther(await stakingPool.balanceOf(wsdToken.target)), 0, 'wsdToken balance incorrect' ) @@ -107,15 +106,13 @@ describe('WrappedSDToken', () => { }) it('should be able to wrap tokens using onTokenTransfer', async () => { - const { signers, accounts, adrs, stakingPool, wsdToken, stake } = await loadFixture( - deployFixture - ) + const { signers, accounts, stakingPool, wsdToken, stake } = await loadFixture(deployFixture) await stake(1, 1000) - await stakingPool.connect(signers[1]).transferAndCall(adrs.wsdToken, toEther(1000), '0x00') + await stakingPool.connect(signers[1]).transferAndCall(wsdToken.target, toEther(1000), '0x00') assert.equal( - fromEther(await stakingPool.balanceOf(adrs.wsdToken)), + fromEther(await stakingPool.balanceOf(wsdToken.target)), 1000, 'wsdToken balance incorrect' ) @@ -127,11 +124,11 @@ describe('WrappedSDToken', () => { }) it('getWrappedByUnderlying and getUnderlyingByWrapped should work correctly', async () => { - const { adrs, token, stakingPool, wsdToken, stake } = await loadFixture(deployFixture) + const { token, stakingPool, wsdToken, strategy1, stake } = await loadFixture(deployFixture) await stake(1, 1000) await stake(2, 3000) - await token.transfer(adrs.strategy1, toEther(1000)) + await token.transfer(strategy1.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') assert.equal( @@ -147,17 +144,17 @@ describe('WrappedSDToken', () => { }) it('tokens should be wrapped/unwrapped at current exchange rate', async () => { - const { signers, accounts, adrs, token, stakingPool, wsdToken, stake } = await loadFixture( + const { signers, accounts, token, stakingPool, wsdToken, strategy1, stake } = await loadFixture( deployFixture ) await stake(1, 1000) - await token.transfer(adrs.strategy1, toEther(1000)) + await token.transfer(strategy1.target, toEther(1000)) await stakingPool.updateStrategyRewards([0], '0x') - await stakingPool.connect(signers[1]).transferAndCall(adrs.wsdToken, toEther(500), '0x00') + await stakingPool.connect(signers[1]).transferAndCall(wsdToken.target, toEther(500), '0x00') assert.equal( - fromEther(await stakingPool.balanceOf(adrs.wsdToken)), + fromEther(await stakingPool.balanceOf(wsdToken.target)), 500, 'wsdToken balance incorrect' ) @@ -171,7 +168,7 @@ describe('WrappedSDToken', () => { await wsdToken.connect(signers[2]).unwrap(toEther(100)) assert.equal( - fromEther(await stakingPool.balanceOf(adrs.wsdToken)), + fromEther(await stakingPool.balanceOf(wsdToken.target)), 300, 'wsdToken balance incorrect' ) diff --git a/test/espressoStaking/espresso-fund-flow-controller.test.ts b/test/espressoStaking/espresso-fund-flow-controller.test.ts index 76411ae1..7614d4eb 100644 --- a/test/espressoStaking/espresso-fund-flow-controller.test.ts +++ b/test/espressoStaking/espresso-fund-flow-controller.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -8,9 +7,10 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { - ERC20, +import type { + ERC20Mintable, EspressoStakingMock, EspressoRewardsMock, EspressoStrategy, @@ -18,8 +18,10 @@ import { EspressoVault, StakingPool, WithdrawalPoolMock, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const exitEscrowPeriod = 7 * 86400 // 7 days const minTimeBetweenUnbonding = 10 * 86400 // 10 days @@ -32,7 +34,7 @@ describe('EspressoFundFlowController', () => { 'Espresso', 'ESP', 1000000000, - ])) as ERC20 + ])) as ERC20Mintable await setupToken(token, accounts) const espressoStaking = (await deploy('EspressoStakingMock', [ @@ -479,7 +481,7 @@ describe('EspressoFundFlowController', () => { assert.equal(fromEther(await vaults[0].getRewards()), 20) assert.equal(fromEther(await vaults[1].getRewards()), 30) - const preBalance = await token.balanceOf(strategy.target) + const preBalance: bigint = await token.balanceOf(strategy.target) // Withdraw rewards await fundFlowController.withdrawRewards([0, 1], [toEther(20), toEther(30)], ['0x', '0x']) diff --git a/test/espressoStaking/espresso-rewards-consumer.test.ts b/test/espressoStaking/espresso-rewards-consumer.test.ts index 3082639f..083b16a9 100644 --- a/test/espressoStaking/espresso-rewards-consumer.test.ts +++ b/test/espressoStaking/espresso-rewards-consumer.test.ts @@ -1,8 +1,8 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' -import { deploy, getAccounts } from '../utils/helpers' -import { EspressoRewardsConsumer, EspressoStrategyMock } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import { deploy, getAccounts, getConnection, toEther, fromEther } from '../utils/helpers' +import type { EspressoRewardsConsumer, EspressoStrategyMock } from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('EspressoRewardsConsumer', () => { async function deployFixture() { @@ -34,11 +34,7 @@ describe('EspressoRewardsConsumer', () => { const { consumer, strategyMock } = await loadFixture(deployFixture) const vaultIds = [0, 1, 2] - const lifetimeRewards = [ - ethers.parseEther('100'), - ethers.parseEther('200'), - ethers.parseEther('300'), - ] + const lifetimeRewards = [toEther(100), toEther(200), toEther(300)] const report = ethers.AbiCoder.defaultAbiCoder().encode( ['uint256[]', 'uint256[]'], @@ -54,9 +50,9 @@ describe('EspressoRewardsConsumer', () => { assert.equal(Number(lastVaultIds[0]), 0) assert.equal(Number(lastVaultIds[1]), 1) assert.equal(Number(lastVaultIds[2]), 2) - assert.equal(lastLifetimeRewards[0], ethers.parseEther('100')) - assert.equal(lastLifetimeRewards[1], ethers.parseEther('200')) - assert.equal(lastLifetimeRewards[2], ethers.parseEther('300')) + assert.equal(fromEther(lastLifetimeRewards[0]), 100) + assert.equal(fromEther(lastLifetimeRewards[1]), 200) + assert.equal(fromEther(lastLifetimeRewards[2]), 300) assert.equal(Number(await strategyMock.updateCount()), 1) }) @@ -65,7 +61,7 @@ describe('EspressoRewardsConsumer', () => { const report = ethers.AbiCoder.defaultAbiCoder().encode( ['uint256[]', 'uint256[]'], - [[0], [ethers.parseEther('100')]] + [[0], [toEther(100)]] ) await expect(consumer.connect(signers[1]).onReport('0x', report)) diff --git a/test/espressoStaking/espresso-strategy.test.ts b/test/espressoStaking/espresso-strategy.test.ts index 2e65e14d..617ea547 100644 --- a/test/espressoStaking/espresso-strategy.test.ts +++ b/test/espressoStaking/espresso-strategy.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -8,16 +7,19 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { - ERC20, +import type { + ERC20Mintable, EspressoStakingMock, EspressoRewardsMock, EspressoVault, EspressoStrategy, StakingPool, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const exitEscrowPeriod = 86400 // 1 day @@ -29,7 +31,7 @@ describe('EspressoStrategy', () => { 'Espresso', 'ESP', 1000000000, - ])) as ERC20 + ])) as ERC20Mintable await setupToken(token, accounts) const espressoStaking = (await deploy('EspressoStakingMock', [ @@ -168,7 +170,7 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await strategy.totalQueued()), 300) assert.equal(fromEther(await token.balanceOf(strategy.target)), 300) - const preBalance = await token.balanceOf(accounts[0]) + const preBalance: bigint = await token.balanceOf(accounts[0]) // Withdraw some tokens (only queued tokens can be withdrawn directly) await stakingPool.withdraw(accounts[0], accounts[0], toEther(100), ['0x']) @@ -180,7 +182,7 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await strategy.getMinDeposits()), 0) // Withdraw more tokens - const preBalance2 = await token.balanceOf(accounts[0]) + const preBalance2: bigint = await token.balanceOf(accounts[0]) await stakingPool.withdraw(accounts[0], accounts[0], toEther(150), ['0x']) assert.equal(fromEther((await token.balanceOf(accounts[0])) - preBalance2), 150) @@ -189,7 +191,7 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await strategy.totalQueued()), 50) // Withdraw remaining tokens (leave 10 to avoid dead shares edge case) - const preBalance3 = await token.balanceOf(accounts[0]) + const preBalance3: bigint = await token.balanceOf(accounts[0]) await stakingPool.withdraw(accounts[0], accounts[0], toEther(40), ['0x']) assert.equal(fromEther((await token.balanceOf(accounts[0])) - preBalance3), 40) @@ -208,7 +210,7 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await strategy.getMinDeposits()), 200) // Withdraw queued tokens (leave 10 remaining) - const preBalance4 = await token.balanceOf(accounts[0]) + const preBalance4: bigint = await token.balanceOf(accounts[0]) await stakingPool.withdraw(accounts[0], accounts[0], toEther(100), ['0x']) assert.equal(fromEther((await token.balanceOf(accounts[0])) - preBalance4), 100) @@ -538,20 +540,20 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await vaults[0].getQueuedWithdrawals()), 50) // Should revert if escrow period hasn't passed - await expect(strategy.claimUnbond([0])).to.be.reverted + await expect(strategy.claimUnbond([0])).to.revert(ethers) // Advance time past escrow period await time.increase(exitEscrowPeriod) // Should revert if wrong number of vaults provided - await expect(strategy.claimUnbond([0, 1])).to.be.reverted + await expect(strategy.claimUnbond([0, 1])).to.revert(ethers) await expect(strategy.claimUnbond([])).to.be.revertedWithCustomError( strategy, 'MustWithdrawAllVaults' ) - const preBalance = await token.balanceOf(strategy.target) + const preBalance: bigint = await token.balanceOf(strategy.target) // Successfully claim unbond await strategy.claimUnbond([0]) @@ -579,7 +581,7 @@ describe('EspressoStrategy', () => { 'MustWithdrawAllVaults' ) - const preBalance2 = await token.balanceOf(strategy.target) + const preBalance2: bigint = await token.balanceOf(strategy.target) // Successfully claim all unbonding vaults await strategy.claimUnbond([0, 1, 2]) @@ -632,8 +634,8 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await strategy.getDepositChange()), 0) // Record pre-balance of fee receivers - const preBalanceFee1 = await stakingPool.balanceOf(accounts[1]) - const preBalanceFee2 = await stakingPool.balanceOf(accounts[2]) + const preBalanceFee1: bigint = await stakingPool.balanceOf(accounts[1]) + const preBalanceFee2: bigint = await stakingPool.balanceOf(accounts[2]) // Simulate rewards by updating lifetime rewards on vaults await strategy.setRewardsOracle(accounts[0]) @@ -651,10 +653,10 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await strategy.getDepositChange()), 0) // Verify fee receivers got their fees (10% of 60 = 6, 5% of 60 = 3) - const postBalanceFee1 = await stakingPool.balanceOf(accounts[1]) - const postBalanceFee2 = await stakingPool.balanceOf(accounts[2]) - assert.closeTo(fromEther(postBalanceFee1 - preBalanceFee1), 6, 0.01) - assert.closeTo(fromEther(postBalanceFee2 - preBalanceFee2), 3, 0.01) + const postBalanceFee1: bigint = await stakingPool.balanceOf(accounts[1]) + const postBalanceFee2: bigint = await stakingPool.balanceOf(accounts[2]) + assert.equal(fromEther(postBalanceFee1 - preBalanceFee1), 6) + assert.equal(fromEther(postBalanceFee2 - preBalanceFee2), 3) // Add more rewards and verify accumulation await strategy.updateLifetimeRewards([0, 1, 2], [toEther(25), toEther(35), toEther(40)]) @@ -831,7 +833,7 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await vaults[0].getRewards()), 50) assert.equal(fromEther(await vaults[0].getTotalDeposits()), 150) - const preBalance = await token.balanceOf(strategy.target) + const preBalance: bigint = await token.balanceOf(strategy.target) // Withdraw rewards for single vault await strategy.withdrawRewards([0], [toEther(50)], ['0x']) @@ -853,7 +855,7 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await vaults[1].getRewards()), 30) assert.equal(fromEther(await vaults[2].getRewards()), 40) - const preBalance2 = await token.balanceOf(strategy.target) + const preBalance2: bigint = await token.balanceOf(strategy.target) // Withdraw rewards for multiple vaults at once await strategy.withdrawRewards( @@ -874,7 +876,7 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await espressoRewards.claimedRewards(vaults[2].target)), 40) // Calling withdraw with no new rewards should be a no-op - const preBalance3 = await token.balanceOf(strategy.target) + const preBalance3: bigint = await token.balanceOf(strategy.target) await strategy.withdrawRewards([0], [toEther(70)], ['0x']) assert.equal(fromEther((await token.balanceOf(strategy.target)) - preBalance3), 0) @@ -885,7 +887,7 @@ describe('EspressoStrategy', () => { assert.equal(fromEther(await vaults[0].getRewards()), 30) // 100 - 70 - const preBalance4 = await token.balanceOf(strategy.target) + const preBalance4: bigint = await token.balanceOf(strategy.target) // Withdraw with updated lifetime rewards await strategy.withdrawRewards([0], [toEther(110)], ['0x']) @@ -931,7 +933,7 @@ describe('EspressoStrategy', () => { assert.equal(await vaults[0].exitIsWithdrawable(), true) // Now withdrawable - const preBalance = await token.balanceOf(strategy.target) + const preBalance: bigint = await token.balanceOf(strategy.target) // Claim validator exit for single vault await strategy.claimValidatorExits([0]) @@ -949,7 +951,7 @@ describe('EspressoStrategy', () => { assert.equal(await vaults[1].isActive(), false) assert.equal(await vaults[2].isActive(), false) - const preBalance2 = await token.balanceOf(strategy.target) + const preBalance2: bigint = await token.balanceOf(strategy.target) // Claim validator exits for multiple vaults at once await strategy.claimValidatorExits([1, 2]) @@ -1334,7 +1336,7 @@ describe('EspressoStrategy', () => { await time.increase(exitEscrowPeriod) // Removing vault with queued withdrawals should auto-withdraw - const preBalance = await token.balanceOf(strategy.target) + const preBalance: bigint = await token.balanceOf(strategy.target) await strategy.removeVaults([0]) // Tokens should have been withdrawn @@ -1348,7 +1350,7 @@ describe('EspressoStrategy', () => { assert.equal(await vault1.isActive(), false) // Should auto-claim validator exit when removing - const preBalance2 = await token.balanceOf(strategy.target) + const preBalance2: bigint = await token.balanceOf(strategy.target) await strategy.removeVaults([0]) assert.equal(fromEther((await token.balanceOf(strategy.target)) - preBalance2), 100) diff --git a/test/espressoStaking/espresso-vault.test.ts b/test/espressoStaking/espresso-vault.test.ts index a5bef93b..70b3f9dc 100644 --- a/test/espressoStaking/espresso-vault.test.ts +++ b/test/espressoStaking/espresso-vault.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -7,14 +6,17 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { - ERC20, +import type { + ERC20Mintable, EspressoStakingMock, EspressoRewardsMock, EspressoVault, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const exitEscrowPeriod = 86400 // 1 day @@ -26,7 +28,7 @@ describe('EspressoVault', () => { 'Espresso', 'ESP', 1000000000, - ])) as ERC20 + ])) as ERC20Mintable await setupToken(token, accounts) const espressoStaking = (await deploy('EspressoStakingMock', [ @@ -126,7 +128,7 @@ describe('EspressoVault', () => { deployFixture ) - const preBalance = await token.balanceOf(accounts[0]) + const preBalance: bigint = await token.balanceOf(accounts[0]) await vault.deposit(toEther(100)) await vault.unbond(toEther(30)) @@ -239,7 +241,7 @@ describe('EspressoVault', () => { assert.equal(fromEther(await vault.getRewards()), 50) assert.equal(fromEther(await vault.getTotalDeposits()), 150) - const preBalance = await token.balanceOf(accounts[0]) + const preBalance: bigint = await token.balanceOf(accounts[0]) await vault.withdrawRewards(toEther(50), '0x') @@ -253,7 +255,7 @@ describe('EspressoVault', () => { assert.equal(fromEther(await vault.getRewards()), 30) - const preBalance2 = await token.balanceOf(accounts[0]) + const preBalance2: bigint = await token.balanceOf(accounts[0]) await vault.withdrawRewards(toEther(80), '0x') @@ -261,7 +263,7 @@ describe('EspressoVault', () => { assert.equal(fromEther((await token.balanceOf(accounts[0])) - preBalance2), 30) // Withdraw with outdated lifetime rewards in vault (new rewards accrued) - const preBalance3 = await token.balanceOf(accounts[0]) + const preBalance3: bigint = await token.balanceOf(accounts[0]) await vault.withdrawRewards(toEther(100), '0x') @@ -309,7 +311,7 @@ describe('EspressoVault', () => { assert.equal(fromEther(await vault.getPrincipalDeposits()), 100) assert.equal(await vault.isActive(), true) - const preBalance = await token.balanceOf(accounts[0]) + const preBalance: bigint = await token.balanceOf(accounts[0]) // Exit the validator in the mock await espressoStaking.exitValidator(validator) diff --git a/test/ethStaking/deposit-controller.test.ts b/test/ethStaking/deposit-controller.test.ts index 856579df..c6d7ab4e 100644 --- a/test/ethStaking/deposit-controller.test.ts +++ b/test/ethStaking/deposit-controller.test.ts @@ -1,5 +1,4 @@ -import { ethers } from 'hardhat' -import { assert, expect } from 'chai' +/* import { assert, expect } from 'chai' import { toEther, deploy, @@ -7,8 +6,9 @@ import { getAccounts, padBytes, concatBytes, + getConnection, } from '../utils/helpers' -import { +import type { StakingPool, WrappedSDToken, EthStakingStrategy, @@ -19,8 +19,9 @@ import { OperatorWhitelistMock, RewardsPool, DepositController, -} from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() const pubkeyLength = 48 * 2 @@ -253,4 +254,4 @@ describe('DepositController', () => { // assert.equal(await depositContract.get_deposit_count(), '0x0800000000000000') // }) -}) +}) */ diff --git a/test/ethStaking/eth-staking-strategy.test.ts b/test/ethStaking/eth-staking-strategy.test.ts index 4917ae03..9e9e8ac1 100644 --- a/test/ethStaking/eth-staking-strategy.test.ts +++ b/test/ethStaking/eth-staking-strategy.test.ts @@ -1,5 +1,4 @@ -import { ethers } from 'hardhat' -import { assert, expect } from 'chai' +/* import { assert, expect } from 'chai' import { toEther, deploy, @@ -8,8 +7,9 @@ import { fromEther, padBytes, concatBytes, + getConnection, } from '../utils/helpers' -import { +import type { StakingPool, WrappedSDToken, EthStakingStrategy, @@ -21,8 +21,9 @@ import { RewardsPool, RewardsReceiver, ERC677ReceiverMock, -} from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() const depositAmount = '0x0040597307000000' @@ -573,4 +574,4 @@ describe('EthStakingStrategy', () => { 'Ownable: caller is not the owner' ) }) -}) +}) */ diff --git a/test/ethStaking/key-validation-oracle.test.ts b/test/ethStaking/key-validation-oracle.test.ts index 72010c60..90372fed 100644 --- a/test/ethStaking/key-validation-oracle.test.ts +++ b/test/ethStaking/key-validation-oracle.test.ts @@ -1,5 +1,4 @@ -import { assert, expect } from 'chai' -import { ethers } from 'hardhat' +/* import { assert, expect } from 'chai' import { deploy, deployUpgradeable, @@ -8,10 +7,12 @@ import { fromEther, concatBytes, padBytes, + getConnection, } from '../utils/helpers' -import { ERC677, KeyValidationOracle, OperatorControllerMock } from '../../typechain-types' +import type { ERC677, KeyValidationOracle, OperatorControllerMock } from '../../types/ethers-contracts' import { Signer } from 'ethers' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' + +const { ethers, loadFixture } = getConnection() const keyPairs = { keys: concatBytes([padBytes('0xa1', 48), padBytes('0xa2', 48), padBytes('0xa3', 48)]), @@ -163,4 +164,4 @@ describe('KeyValidationOracle', () => { // assert.equal(operator[3], false) // assert.equal(Number(operator[4]), 0) // }) -}) +}) */ diff --git a/test/ethStaking/nwl-operator-controller.test.ts b/test/ethStaking/nwl-operator-controller.test.ts index eb60a3e1..c005d99b 100644 --- a/test/ethStaking/nwl-operator-controller.test.ts +++ b/test/ethStaking/nwl-operator-controller.test.ts @@ -1,5 +1,4 @@ -import { ethers } from 'hardhat' -import { assert, expect } from 'chai' +/* import { assert, expect } from 'chai' import { deploy, padBytes, @@ -8,14 +7,16 @@ import { toEther, fromEther, deployUpgradeable, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, EthStakingStrategyMock, NWLOperatorController, RewardsPool, -} from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() const pubkeyLength = 48 * 2 const signatureLength = 96 * 2 @@ -575,4 +576,4 @@ describe('NWLOperatorController', () => { ) assert.equal(hash, await controller.currentStateHash(), 'currentStateHash incorrect') }) -}) +}) */ diff --git a/test/ethStaking/operator-controller.test.ts b/test/ethStaking/operator-controller.test.ts index c1bf3fd5..588d808e 100644 --- a/test/ethStaking/operator-controller.test.ts +++ b/test/ethStaking/operator-controller.test.ts @@ -1,4 +1,4 @@ -import { assert, expect } from 'chai' +/* import { assert, expect } from 'chai' import { padBytes, concatBytes, @@ -7,15 +7,16 @@ import { deploy, toEther, fromEther, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, OperatorControllerMock, OperatorControllerMockV2, RewardsPool, -} from '../../typechain-types' -import { ethers, upgrades } from 'hardhat' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, upgradesApi } = getConnection() const pubkeyLength = 48 * 2 const signatureLength = 96 * 2 @@ -308,7 +309,7 @@ describe('OperatorController', () => { await controller.assignNextValidators([0], [2], 2) let Controller = await ethers.getContractFactory('OperatorControllerMockV2') - let upgradedImpAddress = (await upgrades.prepareUpgrade(adrs.controller, Controller, { + let upgradedImpAddress = (await upgradesApi.prepareUpgrade(adrs.controller, Controller, { kind: 'uups', })) as string @@ -341,4 +342,4 @@ describe('OperatorController', () => { ) assert.equal(Number(await upgraded.staked(accounts[0])), 2, 'operator staked incorrect') }) -}) +}) */ diff --git a/test/ethStaking/operator-whitelist.test.ts b/test/ethStaking/operator-whitelist.test.ts index c433d3ef..dff02c09 100644 --- a/test/ethStaking/operator-whitelist.test.ts +++ b/test/ethStaking/operator-whitelist.test.ts @@ -1,7 +1,8 @@ -import { assert, expect } from 'chai' -import { deploy, getAccounts } from '../utils/helpers' -import { OperatorWhitelist } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +/* import { assert, expect } from 'chai' +import { deploy, getAccounts, getConnection } from '../utils/helpers' +import type { OperatorWhitelist } from '../../types/ethers-contracts' + +const { loadFixture } = getConnection() describe('OperatorWhitelist', () => { async function deployFixture() { @@ -85,4 +86,4 @@ describe('OperatorWhitelist', () => { opWhitelist.connect(signers[1]).setWLOperatorController(accounts[3]) ).to.be.revertedWith('Ownable: caller is not the owner') }) -}) +}) */ diff --git a/test/ethStaking/rewards-receiver.test.ts b/test/ethStaking/rewards-receiver.test.ts index f0b04fa1..96aff19b 100644 --- a/test/ethStaking/rewards-receiver.test.ts +++ b/test/ethStaking/rewards-receiver.test.ts @@ -1,8 +1,8 @@ -import { assert, expect } from 'chai' -import { deploy, fromEther, getAccounts, toEther } from '../utils/helpers' -import { RewardsReceiver } from '../../typechain-types' -import { ethers } from 'hardhat' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +/* import { assert, expect } from 'chai' +import { deploy, fromEther, getAccounts, toEther, getConnection } from '../utils/helpers' +import type { RewardsReceiver } from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('RewardsReceiver', () => { async function deployFixture() { @@ -61,4 +61,4 @@ describe('RewardsReceiver', () => { value = await rewardsReceiver.withdraw.staticCall() assert.equal(fromEther(value), 0, 'return value incorrect') }) -}) +}) */ diff --git a/test/ethStaking/wl-operator-controller.test.ts b/test/ethStaking/wl-operator-controller.test.ts index c9512990..46e9cd00 100644 --- a/test/ethStaking/wl-operator-controller.test.ts +++ b/test/ethStaking/wl-operator-controller.test.ts @@ -1,4 +1,4 @@ -import { assert, expect } from 'chai' +/* import { assert, expect } from 'chai' import { deploy, padBytes, @@ -7,15 +7,16 @@ import { toEther, fromEther, deployUpgradeable, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, OperatorWhitelistMock, RewardsPool, WLOperatorController, -} from '../../typechain-types' -import { ethers } from 'hardhat' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() const pubkeyLength = 48 * 2 const signatureLength = 96 * 2 @@ -627,4 +628,4 @@ describe('WLOperatorController', () => { controller.connect(signers[1]).setOperatorWhitelist(accounts[2]) ).to.be.revertedWith('Ownable: caller is not the owner') }) -}) +}) */ diff --git a/test/linkStaking/community-vault.test.ts b/test/linkStaking/community-vault.test.ts index fa2b567e..781961f0 100644 --- a/test/linkStaking/community-vault.test.ts +++ b/test/linkStaking/community-vault.test.ts @@ -1,61 +1,66 @@ -import { ethers } from 'hardhat' import { assert } from 'chai' -import { toEther, deploy, deployUpgradeable, getAccounts, fromEther } from '../utils/helpers' -import { ERC677, CommunityVault, StakingMock, StakingRewardsMock } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import { + toEther, + deploy, + deployUpgradeable, + getAccounts, + fromEther, + getConnection, +} from '../utils/helpers' +import type { + ERC677, + CommunityVault, + StakingMock, + StakingRewardsMock, +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('CommunityVault', () => { async function deployFixture() { const { accounts, signers } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() const rewardsController = (await deploy('StakingRewardsMock', [ - adrs.token, + token.target, ])) as StakingRewardsMock - adrs.rewardsController = await rewardsController.getAddress() const stakingController = (await deploy('StakingMock', [ - adrs.token, - adrs.rewardsController, + token.target, + rewardsController.target, toEther(10), toEther(100), toEther(10000), 28 * 86400, 7 * 86400, ])) as StakingMock - adrs.stakingController = await stakingController.getAddress() const vault = (await deployUpgradeable('CommunityVault', [ - adrs.token, + token.target, accounts[1], - adrs.stakingController, - adrs.rewardsController, + stakingController.target, + rewardsController.target, accounts[0], ])) as CommunityVault - adrs.vault = await vault.getAddress() - await token.connect(signers[1]).approve(adrs.vault, ethers.MaxUint256) - await token.transfer(adrs.rewardsController, toEther(10000)) + await token.connect(signers[1]).approve(vault.target, ethers.MaxUint256) + await token.transfer(rewardsController.target, toEther(10000)) await token.transfer(accounts[1], toEther(100)) - return { signers, accounts, adrs, token, rewardsController, stakingController, vault } + return { signers, accounts, token, rewardsController, stakingController, vault } } it('claimRewards should work correctly', async () => { - const { signers, accounts, adrs, vault, rewardsController, token } = await loadFixture( - deployFixture - ) + const { signers, accounts, vault, rewardsController, token } = await loadFixture(deployFixture) await vault.connect(signers[1]).deposit(toEther(100)) await vault.connect(signers[1]).claimRewards(0, accounts[5]) - await rewardsController.setReward(adrs.vault, toEther(10)) + await rewardsController.setReward(vault.target, toEther(10)) await vault.connect(signers[1]).claimRewards(toEther(11), accounts[5]) assert.equal(fromEther(await vault.getRewards()), 10) assert.equal(fromEther(await token.balanceOf(accounts[5])), 0) diff --git a/test/linkStaking/community-vcs.test.ts b/test/linkStaking/community-vcs.test.ts index 645b4348..74e96d0a 100644 --- a/test/linkStaking/community-vcs.test.ts +++ b/test/linkStaking/community-vcs.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -8,9 +7,16 @@ import { setupToken, fromEther, deployImplementation, + getConnection, } from '../utils/helpers' -import { ERC677, CommunityVCS, StakingMock, StakingRewardsMock } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import type { + ERC677, + CommunityVCS, + StakingMock, + StakingRewardsMock, +} from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() const unbondingPeriod = 28 * 86400 const claimPeriod = 7 * 86400 @@ -22,31 +28,27 @@ const encodeVaults = (vaults: number[]) => { describe('CommunityVCS', () => { async function deployFixture() { const { accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() await setupToken(token, accounts) const rewardsController = (await deploy('StakingRewardsMock', [ - adrs.token, + token.target, ])) as StakingRewardsMock - adrs.rewardsController = await rewardsController.getAddress() const stakingController = (await deploy('StakingMock', [ - adrs.token, - adrs.rewardsController, + token.target, + rewardsController.target, toEther(10), toEther(100), toEther(10000), unbondingPeriod, claimPeriod, ])) as StakingMock - adrs.stakingController = await stakingController.getAddress() let vaultImplementation = await deployImplementation('CommunityVault') @@ -55,9 +57,9 @@ describe('CommunityVCS', () => { const strategy = (await deployUpgradeable( 'CommunityVCS', [ - adrs.token, + token.target, accounts[0], - adrs.stakingController, + stakingController.target, vaultImplementation, [[accounts[4], 500]], 9000, @@ -68,28 +70,27 @@ describe('CommunityVCS', () => { ], { unsafeAllow: ['delegatecall'] } )) as CommunityVCS - adrs.strategy = await strategy.getAddress() - await token.approve(adrs.strategy, ethers.MaxUint256) - await token.transfer(adrs.rewardsController, toEther(10000)) + await token.approve(strategy.target, ethers.MaxUint256) + await token.transfer(rewardsController.target, toEther(10000)) const vaults = await strategy.getVaults() - return { accounts, adrs, token, rewardsController, stakingController, strategy, vaults } + return { accounts, token, rewardsController, stakingController, strategy, vaults } } it('addVaults should work correctly', async () => { - const { adrs, strategy } = await loadFixture(deployFixture) + const { strategy, stakingController, rewardsController } = await loadFixture(deployFixture) await strategy.addVaults(10) let vaults = await strategy.getVaults() assert.equal(vaults.length, 30) for (let i = 0; i < vaults.length; i += 5) { let vault = await ethers.getContractAt('CommunityVault', vaults[i]) - assert.equal(await vault.token(), adrs.token) - assert.equal(await vault.vaultController(), adrs.strategy) - assert.equal(await vault.stakeController(), adrs.stakingController) - assert.equal(await vault.rewardsController(), adrs.rewardsController) + assert.equal(await vault.token(), await strategy.token()) + assert.equal(await vault.vaultController(), strategy.target) + assert.equal(await vault.stakeController(), stakingController.target) + assert.equal(await vault.rewardsController(), rewardsController.target) } }) @@ -110,10 +111,16 @@ describe('CommunityVCS', () => { const { strategy } = await loadFixture(deployFixture) await strategy.deposit(toEther(1000), encodeVaults([])) - expect(strategy.performUpkeep('0x')).to.be.revertedWith('VaultsAboveThreshold()') + await expect(strategy.performUpkeep('0x')).to.be.revertedWithCustomError( + strategy, + 'VaultsAboveThreshold' + ) await strategy.deposit(toEther(90), encodeVaults([])) - expect(strategy.performUpkeep('0x')).to.be.revertedWith('VaultsAboveThreshold()') + await expect(strategy.performUpkeep('0x')).to.be.revertedWithCustomError( + strategy, + 'VaultsAboveThreshold' + ) await strategy.deposit(toEther(10), encodeVaults([])) await strategy.performUpkeep('0x') @@ -122,7 +129,7 @@ describe('CommunityVCS', () => { }) it('claimRewards should work correctly', async () => { - const { adrs, strategy, rewardsController, token } = await loadFixture(deployFixture) + const { strategy, rewardsController, token } = await loadFixture(deployFixture) let vaults = await strategy.getVaults() await strategy.deposit(toEther(1000), encodeVaults([])) @@ -131,48 +138,48 @@ describe('CommunityVCS', () => { await rewardsController.setReward(vaults[5], toEther(8)) await strategy.claimRewards([1, 3, 5], toEther(10)) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 0) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 0) await rewardsController.setReward(vaults[6], toEther(10)) await rewardsController.setReward(vaults[7], toEther(7)) await rewardsController.setReward(vaults[8], toEther(15)) await strategy.claimRewards([6, 7, 8], toEther(10)) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 25) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 25) await rewardsController.setReward(vaults[9], toEther(15)) await rewardsController.setReward(vaults[10], toEther(15)) await rewardsController.setReward(vaults[11], toEther(15)) await strategy.claimRewards([9, 10, 11], toEther(10)) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 70) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 70) - await expect(strategy.claimRewards([100], 0)).to.be.reverted + await expect(strategy.claimRewards([100], 0)).to.revert(ethers) }) it('deposit should work correctly', async () => { - const { adrs, strategy, token, stakingController, vaults } = await loadFixture(deployFixture) + const { strategy, token, stakingController, vaults } = await loadFixture(deployFixture) await strategy.deposit(toEther(50), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 50) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 50) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[0])), 50) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 50) assert.equal(fromEther(await strategy.getTotalDeposits()), 50) await strategy.deposit(toEther(150), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 200) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 200) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 200) assert.equal(fromEther(await strategy.getTotalDeposits()), 200) - await token.transfer(adrs.strategy, toEther(300)) + await token.transfer(strategy.target, toEther(300)) await strategy.deposit(toEther(520), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 720) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 720) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 720) assert.equal(fromEther(await strategy.getTotalDeposits()), 720) await stakingController.setDepositLimits(toEther(10), toEther(120)) await strategy.deposit(toEther(80), encodeVaults([0, 1, 2, 3, 4, 5, 6])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 800) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 800) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[5])), 120) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[6])), 120) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[7])), 60) diff --git a/test/linkStaking/fund-flow-controller.test.ts b/test/linkStaking/fund-flow-controller.test.ts index e39115fb..63fc761f 100644 --- a/test/linkStaking/fund-flow-controller.test.ts +++ b/test/linkStaking/fund-flow-controller.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -8,8 +7,9 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, VCSMock, StakingMock, @@ -17,8 +17,10 @@ import { StakingRewardsMock, FundFlowController, OperatorVCS, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const unbondingPeriod = 28 * 86400 const claimPeriod = 7 * 86400 @@ -78,7 +80,6 @@ describe('FundFlowController', () => { 10000, toEther(100), 1000, - vaultDepositController.target, ], { unsafeAllow: ['delegatecall'] } diff --git a/test/linkStaking/link-migrator.test.ts b/test/linkStaking/link-migrator.test.ts index fc7902fa..228cb9ab 100644 --- a/test/linkStaking/link-migrator.test.ts +++ b/test/linkStaking/link-migrator.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -8,17 +7,20 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, StakingMock, StakingRewardsMock, StakingPool, PriorityPool, CommunityVCS, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' -import { WithdrawalPool } from '../../typechain-types/contracts/core/test/WithdrawalPoolMock.sol' + WithdrawalPool, +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const unbondingPeriod = 28 * 86400 const claimPeriod = 7 * 86400 diff --git a/test/linkStaking/operator-staking-pool.test.ts b/test/linkStaking/operator-staking-pool.test.ts index d6f82462..b2aab411 100644 --- a/test/linkStaking/operator-staking-pool.test.ts +++ b/test/linkStaking/operator-staking-pool.test.ts @@ -6,9 +6,11 @@ import { setupToken, fromEther, deployUpgradeable, + getConnection, } from '../utils/helpers' -import { LSTMock, OperatorStakingPool } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import type { LSTMock, OperatorStakingPool } from '../../types/ethers-contracts' + +const { loadFixture } = getConnection() describe('OperatorStakingPool', () => { async function deployFixture() { diff --git a/test/linkStaking/operator-vault.test.ts b/test/linkStaking/operator-vault.test.ts index d0da623f..f5a70f1a 100644 --- a/test/linkStaking/operator-vault.test.ts +++ b/test/linkStaking/operator-vault.test.ts @@ -1,15 +1,23 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' -import { toEther, deploy, deployUpgradeable, getAccounts, fromEther } from '../utils/helpers' import { + toEther, + deploy, + deployUpgradeable, + getAccounts, + fromEther, + getConnection, +} from '../utils/helpers' +import type { ERC677, OperatorVCSMock, OperatorVault, PFAlertsControllerMock, StakingMock, StakingRewardsMock, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const unbondingPeriod = 28 * 86400 const claimPeriod = 7 * 86400 @@ -17,61 +25,61 @@ const claimPeriod = 7 * 86400 describe('OperatorVault', () => { async function deployFixture() { const { signers, accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() const rewardsController = (await deploy('StakingRewardsMock', [ - adrs.token, + token.target, ])) as StakingRewardsMock - adrs.rewardsController = await rewardsController.getAddress() const stakingController = (await deploy('StakingMock', [ - adrs.token, - adrs.rewardsController, + token.target, + rewardsController.target, toEther(10), toEther(100), toEther(10000), unbondingPeriod, claimPeriod, ])) as StakingMock - adrs.stakingController = await stakingController.getAddress() const pfAlertsController = (await deploy('PFAlertsControllerMock', [ - adrs.token, + token.target, ])) as PFAlertsControllerMock - adrs.pfAlertsController = await pfAlertsController.getAddress() - - const strategy = (await deploy('OperatorVCSMock', [adrs.token, 1000, 5000])) as OperatorVCSMock - adrs.strategy = await strategy.getAddress() - - const vault = (await deployUpgradeable('OperatorVault', [ - adrs.token, - adrs.strategy, - adrs.stakingController, - adrs.rewardsController, - accounts[0], - adrs.pfAlertsController, - accounts[1], - accounts[2], - ])) as OperatorVault - adrs.vault = await vault.getAddress() - - await strategy.addVault(adrs.vault) - await token.approve(adrs.strategy, toEther(100000000)) + + const strategy = (await deploy('OperatorVCSMock', [ + token.target, + 1000, + 5000, + ])) as OperatorVCSMock + + const vault = (await deployUpgradeable( + 'OperatorVault', + [ + token.target, + strategy.target, + stakingController.target, + rewardsController.target, + accounts[0], + pfAlertsController.target, + accounts[1], + accounts[2], + ], + { unsafeAllow: ['missing-initializer-call'] } + )) as OperatorVault + + await strategy.addVault(vault.target) + await token.approve(strategy.target, toEther(100000000)) await strategy.deposit(toEther(100)) - await token.transfer(adrs.rewardsController, toEther(1000)) - await token.transfer(adrs.pfAlertsController, toEther(1000)) + await token.transfer(rewardsController.target, toEther(1000)) + await token.transfer(pfAlertsController.target, toEther(1000)) return { signers, accounts, - adrs, token, rewardsController, stakingController, @@ -82,18 +90,18 @@ describe('OperatorVault', () => { } it('deposit should work correctly', async () => { - const { adrs, strategy, token, stakingController, vault } = await loadFixture(deployFixture) + const { strategy, token, stakingController, vault } = await loadFixture(deployFixture) await strategy.deposit(toEther(100)) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 200) - assert.equal(fromEther(await stakingController.getStakerPrincipal(adrs.vault)), 200) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 200) + assert.equal(fromEther(await stakingController.getStakerPrincipal(vault.target)), 200) assert.equal(fromEther(await vault.getTotalDeposits()), 200) assert.equal(fromEther(await vault.getUnclaimedRewards()), 0) assert.equal(fromEther(await vault.trackedTotalDeposits()), 200) }) it('withdraw should work correctly', async () => { - const { adrs, strategy, token, stakingController, vault } = await loadFixture(deployFixture) + const { strategy, token, stakingController, vault } = await loadFixture(deployFixture) await strategy.unbond() @@ -105,19 +113,19 @@ describe('OperatorVault', () => { await time.increase(unbondingPeriod + 1) await strategy.withdraw(toEther(30)) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 70) - assert.equal(fromEther(await stakingController.getStakerPrincipal(adrs.vault)), 70) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 70) + assert.equal(fromEther(await stakingController.getStakerPrincipal(vault.target)), 70) assert.equal(fromEther(await vault.getTotalDeposits()), 70) assert.equal(fromEther(await vault.getUnclaimedRewards()), 0) assert.equal(fromEther(await vault.trackedTotalDeposits()), 70) }) it('raiseAlert should work correctly', async () => { - const { signers, accounts, adrs, token, vault } = await loadFixture(deployFixture) + const { signers, accounts, token, strategy, vault } = await loadFixture(deployFixture) await vault.connect(signers[1]).raiseAlert(accounts[5]) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 11.7) - assert.equal(fromEther(await token.balanceOf(adrs.vault)), 1.3) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 11.7) + assert.equal(fromEther(await token.balanceOf(vault.target)), 1.3) assert.equal(fromEther(await vault.getUnclaimedRewards()), 1.3) assert.equal(fromEther(await vault.trackedTotalDeposits()), 100) await expect(vault.raiseAlert(accounts[5])).to.be.revertedWithCustomError( @@ -127,41 +135,42 @@ describe('OperatorVault', () => { }) it('getPrincipalDeposits should work correctly', async () => { - const { adrs, stakingController, vault } = await loadFixture(deployFixture) + const { stakingController, vault } = await loadFixture(deployFixture) assert.equal(fromEther(await vault.getPrincipalDeposits()), 100) - await stakingController.removeOperator(adrs.vault) + await stakingController.removeOperator(vault.target) assert.equal(fromEther(await vault.getPrincipalDeposits()), 100) }) it('getPendingRewards should work correctly', async () => { - const { accounts, adrs, strategy, vault, rewardsController } = await loadFixture(deployFixture) + const { accounts, strategy, vault, rewardsController } = await loadFixture(deployFixture) assert.equal(fromEther(await vault.getPendingRewards()), 0) - await rewardsController.setReward(adrs.vault, toEther(10)) + await rewardsController.setReward(vault.target, toEther(10)) assert.equal(fromEther(await vault.getPendingRewards()), 1) - await rewardsController.setReward(adrs.vault, toEther(15)) + await rewardsController.setReward(vault.target, toEther(15)) assert.equal(fromEther(await vault.getPendingRewards()), 1.5) await strategy.deposit(toEther(100)) assert.equal(fromEther(await vault.getPendingRewards()), 1.5) - await rewardsController.setReward(adrs.vault, toEther(10)) + await rewardsController.setReward(vault.target, toEther(10)) assert.equal(fromEther(await vault.getPendingRewards()), 1) await strategy.updateDeposits(0, accounts[3]) assert.equal(fromEther(await vault.getPendingRewards()), 0) - await rewardsController.setReward(adrs.vault, toEther(11)) + await rewardsController.setReward(vault.target, toEther(11)) assert.equal(fromEther(await vault.getPendingRewards()), 0.1) - await rewardsController.setReward(adrs.vault, toEther(6)) + await rewardsController.setReward(vault.target, toEther(6)) assert.equal(fromEther(await vault.getPendingRewards()), 0) }) it('updateDeposits should work correctly', async () => { - const { accounts, adrs, strategy, vault, rewardsController, stakingController } = - await loadFixture(deployFixture) + const { accounts, strategy, vault, rewardsController, stakingController } = await loadFixture( + deployFixture + ) - await rewardsController.setReward(adrs.vault, toEther(10)) + await rewardsController.setReward(vault.target, toEther(10)) assert.deepEqual( - (await strategy.updateDeposits.staticCall(0, accounts[3])).map((v) => fromEther(v)), + (await strategy.updateDeposits.staticCall(0, accounts[3])).map((v: bigint) => fromEther(v)), [110, 100, 1] ) await strategy.updateDeposits(0, accounts[3]) @@ -169,9 +178,9 @@ describe('OperatorVault', () => { assert.equal(fromEther(await vault.getUnclaimedRewards()), 1) assert.equal(fromEther(await vault.trackedTotalDeposits()), 110) - await rewardsController.setReward(adrs.vault, toEther(5)) + await rewardsController.setReward(vault.target, toEther(5)) assert.deepEqual( - (await strategy.updateDeposits.staticCall(0, accounts[3])).map((v) => fromEther(v)), + (await strategy.updateDeposits.staticCall(0, accounts[3])).map((v: bigint) => fromEther(v)), [105, 100, 0] ) await strategy.updateDeposits(0, accounts[3]) @@ -179,9 +188,9 @@ describe('OperatorVault', () => { assert.equal(fromEther(await vault.getUnclaimedRewards()), 1) assert.equal(fromEther(await vault.trackedTotalDeposits()), 110) - await rewardsController.setReward(adrs.vault, toEther(8)) + await rewardsController.setReward(vault.target, toEther(8)) assert.deepEqual( - (await strategy.updateDeposits.staticCall(0, accounts[3])).map((v) => fromEther(v)), + (await strategy.updateDeposits.staticCall(0, accounts[3])).map((v: bigint) => fromEther(v)), [108, 100, 0] ) await strategy.updateDeposits(0, accounts[3]) @@ -189,9 +198,9 @@ describe('OperatorVault', () => { assert.equal(fromEther(await vault.getUnclaimedRewards()), 1) assert.equal(fromEther(await vault.trackedTotalDeposits()), 110) - await rewardsController.setReward(adrs.vault, toEther(11)) + await rewardsController.setReward(vault.target, toEther(11)) assert.deepEqual( - (await strategy.updateDeposits.staticCall(0, accounts[3])).map((v) => fromEther(v)), + (await strategy.updateDeposits.staticCall(0, accounts[3])).map((v: bigint) => fromEther(v)), [111, 100, 0.1] ) await strategy.updateDeposits(0, accounts[3]) @@ -216,10 +225,11 @@ describe('OperatorVault', () => { }) it('withdrawRewards should work correctly', async () => { - const { signers, accounts, adrs, strategy, token, vault, rewardsController } = - await loadFixture(deployFixture) + const { signers, accounts, strategy, token, vault, rewardsController } = await loadFixture( + deployFixture + ) - await rewardsController.setReward(adrs.vault, toEther(10)) + await rewardsController.setReward(vault.target, toEther(10)) await strategy.updateDeposits(0, accounts[3]) await expect(vault.withdrawRewards()).to.be.revertedWithCustomError( @@ -243,10 +253,10 @@ describe('OperatorVault', () => { }) it('exitVault should work correctly', async () => { - const { accounts, adrs, strategy, token, vault, rewardsController, stakingController } = + const { accounts, strategy, token, vault, rewardsController, stakingController } = await loadFixture(deployFixture) - await rewardsController.setReward(adrs.vault, toEther(10)) + await rewardsController.setReward(vault.target, toEther(10)) await strategy.updateDeposits(0, accounts[3]) assert.equal(fromEther(await vault.getPendingRewards()), 0) assert.equal(fromEther(await vault.getUnclaimedRewards()), 1) @@ -257,9 +267,9 @@ describe('OperatorVault', () => { 'OperatorNotRemoved()' ) - await stakingController.removeOperator(adrs.vault) + await stakingController.removeOperator(vault.target) assert.deepEqual( - (await strategy.removeVault.staticCall()).map((v) => fromEther(v)), + (await strategy.removeVault.staticCall()).map((v: bigint) => fromEther(v)), [100, 10] ) await strategy.removeVault() @@ -270,18 +280,30 @@ describe('OperatorVault', () => { }) it('setRewardsReceiver should work correctly', async () => { - const { signers, accounts, adrs } = await loadFixture(deployFixture) - - let newVault = (await deployUpgradeable('OperatorVault', [ - adrs.token, - adrs.strategy, - adrs.stakingController, - adrs.rewardsController, - accounts[0], - adrs.pfAlertsController, - accounts[1], - ethers.ZeroAddress, - ])) as OperatorVault + const { + signers, + accounts, + token, + strategy, + stakingController, + rewardsController, + pfAlertsController, + } = await loadFixture(deployFixture) + + let newVault = (await deployUpgradeable( + 'OperatorVault', + [ + token.target, + strategy.target, + stakingController.target, + rewardsController.target, + accounts[0], + pfAlertsController.target, + accounts[1], + ethers.ZeroAddress, + ], + { unsafeAllow: ['missing-initializer-call'] } + )) as OperatorVault await expect( newVault.connect(signers[1]).setRewardsReceiver(accounts[1]) diff --git a/test/linkStaking/operator-vcs.test.ts b/test/linkStaking/operator-vcs.test.ts index 4b988995..f39bc39d 100644 --- a/test/linkStaking/operator-vcs.test.ts +++ b/test/linkStaking/operator-vcs.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -7,8 +6,9 @@ import { getAccounts, fromEther, deployImplementation, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, OperatorVCS, OperatorVault, @@ -18,8 +18,10 @@ import { PFAlertsControllerMock, FundFlowController, CommunityVCS, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const unbondingPeriod = 28 * 86400 const claimPeriod = 7 * 86400 @@ -32,55 +34,49 @@ const encodeVaults = (vaults: number[]) => { describe('OperatorVCS', () => { async function deployFixture() { const { accounts, signers } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() const rewardsController = (await deploy('StakingRewardsMock', [ - adrs.token, + token.target, ])) as StakingRewardsMock - adrs.rewardsController = await rewardsController.getAddress() const stakingController = (await deploy('StakingMock', [ - adrs.token, - adrs.rewardsController, + token.target, + rewardsController.target, toEther(10), toEther(100), toEther(10000000), unbondingPeriod, claimPeriod, ])) as StakingMock - adrs.stakingController = await stakingController.getAddress() let opVaultImplementation = await deployImplementation('OperatorVault') const stakingPool = (await deployUpgradeable('StakingPool', [ - adrs.token, + token.target, 'Staked LINK', 'stLINK', [], toEther(10000), ])) as StakingPool - adrs.stakingPool = await stakingPool.getAddress() const pfAlertsController = (await deploy('PFAlertsControllerMock', [ - adrs.token, + token.target, ])) as PFAlertsControllerMock - adrs.pfAlertsController = await pfAlertsController.getAddress() const vaultDepositController = await deploy('VaultDepositController') const strategy = (await deployUpgradeable( 'OperatorVCS', [ - adrs.token, - adrs.stakingPool, - adrs.stakingController, + token.target, + stakingPool.target, + stakingController.target, opVaultImplementation, [[accounts[4], 500]], 9000, @@ -90,16 +86,15 @@ describe('OperatorVCS', () => { ], { unsafeAllow: ['delegatecall'] } )) as OperatorVCS - adrs.strategy = await strategy.getAddress() let comVaultImplementation = await deployImplementation('CommunityVault') const comSrategy = (await deployUpgradeable( 'CommunityVCS', [ - adrs.token, - adrs.stakingPool, - adrs.stakingController, + token.target, + stakingPool.target, + stakingController.target, comVaultImplementation, [[accounts[4], 500]], 9000, @@ -123,26 +118,25 @@ describe('OperatorVCS', () => { await strategy.setFundFlowController(fundFlowController.target) await comSrategy.setFundFlowController(fundFlowController.target) - await stakingPool.addStrategy(adrs.strategy) + await stakingPool.addStrategy(strategy.target) await stakingPool.addStrategy(comSrategy.target) await stakingPool.setPriorityPool(accounts[0]) await stakingPool.setRebaseController(accounts[0]) for (let i = 0; i < 15; i++) { - await strategy.addVault(accounts[0], accounts[1], adrs.pfAlertsController) + await strategy.addVault(accounts[0], accounts[1], pfAlertsController.target) } const vaults = await strategy.getVaults() - await token.approve(adrs.stakingPool, ethers.MaxUint256) - await token.transfer(adrs.rewardsController, toEther(10000)) - await token.transfer(adrs.pfAlertsController, toEther(10000)) + await token.approve(stakingPool.target, ethers.MaxUint256) + await token.transfer(rewardsController.target, toEther(10000)) + await token.transfer(pfAlertsController.target, toEther(10000)) await stakingPool.deposit(accounts[0], 1000, [encodeVaults([])]) return { signers, accounts, - adrs, token, rewardsController, stakingController, @@ -154,15 +148,17 @@ describe('OperatorVCS', () => { } it('should be able to add vault', async () => { - const { accounts, adrs, strategy } = await loadFixture(deployFixture) + const { accounts, strategy, stakingController, rewardsController } = await loadFixture( + deployFixture + ) await strategy.addVault(accounts[1], accounts[2], accounts[5]) assert.equal((await strategy.getVaults()).length, 16) let vault = await ethers.getContractAt('OperatorVault', (await strategy.getVaults())[15]) - assert.equal(await vault.token(), adrs.token) - assert.equal(await vault.stakeController(), adrs.stakingController) - assert.equal(await vault.vaultController(), adrs.strategy) - assert.equal(await vault.rewardsController(), adrs.rewardsController) + assert.equal(await vault.token(), await strategy.token()) + assert.equal(await vault.stakeController(), stakingController.target) + assert.equal(await vault.vaultController(), strategy.target) + assert.equal(await vault.rewardsController(), rewardsController.target) assert.equal(await vault.pfAlertsController(), accounts[5]) assert.equal(await vault.operator(), accounts[1]) assert.equal(await vault.rewardsReceiver(), accounts[2]) @@ -179,8 +175,9 @@ describe('OperatorVCS', () => { }) it('updateDeposits should work correctly', async () => { - const { accounts, adrs, strategy, stakingPool, rewardsController, token, vaults } = - await loadFixture(deployFixture) + const { accounts, strategy, stakingPool, rewardsController, token, vaults } = await loadFixture( + deployFixture + ) await stakingPool.deposit(accounts[0], toEther(400), [encodeVaults([])]) @@ -188,7 +185,7 @@ describe('OperatorVCS', () => { assert.equal(fromEther(await strategy.getTotalDeposits()), 400) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 400) assert.equal(fromEther(await strategy.getDepositChange()), 0) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.strategy)), 0) + assert.equal(fromEther(await stakingPool.balanceOf(strategy.target)), 0) assert.equal(fromEther(await stakingPool.balanceOf(accounts[4])), 0) await rewardsController.setReward(vaults[1], toEther(100)) @@ -196,7 +193,7 @@ describe('OperatorVCS', () => { assert.equal(fromEther(await strategy.getTotalDeposits()), 500) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 400) assert.equal(fromEther(await strategy.getDepositChange()), 0) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.strategy)), 10) + assert.equal(fromEther(await stakingPool.balanceOf(strategy.target)), 10) assert.equal(fromEther(await stakingPool.balanceOf(accounts[4])), 5) await rewardsController.setReward(vaults[2], toEther(50)) @@ -204,21 +201,21 @@ describe('OperatorVCS', () => { assert.equal(fromEther(await strategy.getTotalDeposits()), 550) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 400) assert.equal(fromEther(await strategy.getDepositChange()), 0) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.strategy)), 15.85) + assert.equal(fromEther(await stakingPool.balanceOf(strategy.target)), 15.85) assert.equal(fromEther(await stakingPool.balanceOf(accounts[4])), 7.925) - await token.transfer(adrs.strategy, toEther(90)) + await token.transfer(strategy.target, toEther(90)) await stakingPool.updateStrategyRewards([0], encode(0)) assert.equal(fromEther(await strategy.getTotalDeposits()), 550) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 400) assert.equal(fromEther(await strategy.getDepositChange()), 0) - assert.equal(Number(fromEther(await stakingPool.balanceOf(adrs.strategy)).toFixed(2)), 18.31) + assert.equal(Number(fromEther(await stakingPool.balanceOf(strategy.target)).toFixed(2)), 18.31) assert.equal(Number(fromEther(await stakingPool.balanceOf(accounts[4])).toFixed(2)), 13.66) - assert.equal(fromEther(await token.balanceOf(adrs.stakingPool)), 90) + assert.equal(fromEther(await token.balanceOf(stakingPool.target)), 90) }) it('updateDeposits should work correctly with slashing', async () => { - const { accounts, adrs, strategy, stakingPool, rewardsController, vaults, stakingController } = + const { accounts, strategy, stakingPool, rewardsController, vaults, stakingController } = await loadFixture(deployFixture) await stakingPool.deposit(accounts[0], toEther(400), [encodeVaults([])]) @@ -227,7 +224,7 @@ describe('OperatorVCS', () => { assert.equal(fromEther(await strategy.getTotalDeposits()), 500) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 400) assert.equal(fromEther(await strategy.getDepositChange()), 0) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.strategy)), 10) + assert.equal(fromEther(await stakingPool.balanceOf(strategy.target)), 10) assert.equal(fromEther(await stakingPool.balanceOf(accounts[4])), 5) await stakingController.slashOperator(vaults[2], toEther(50)) @@ -235,7 +232,7 @@ describe('OperatorVCS', () => { assert.equal(fromEther(await strategy.getTotalDeposits()), 450) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 350) assert.equal(fromEther(await strategy.getDepositChange()), 0) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.strategy)), 9) + assert.equal(fromEther(await stakingPool.balanceOf(strategy.target)), 9) assert.equal(fromEther(await stakingPool.balanceOf(accounts[4])), 4.5) await stakingController.slashOperator(vaults[2], toEther(50)) @@ -244,13 +241,14 @@ describe('OperatorVCS', () => { assert.equal(fromEther(await strategy.getTotalDeposits()), 420) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 300) assert.equal(fromEther(await strategy.getDepositChange()), 0) - assert.equal(Number(fromEther(await stakingPool.balanceOf(adrs.strategy)).toFixed(2)), 10.36) + assert.equal(Number(fromEther(await stakingPool.balanceOf(strategy.target)).toFixed(2)), 10.36) assert.equal(Number(fromEther(await stakingPool.balanceOf(accounts[4])).toFixed(2)), 4.18) }) it('updateDeposits should work correctly with reward withdrawals', async () => { - const { accounts, adrs, strategy, stakingPool, rewardsController, token, vaults } = - await loadFixture(deployFixture) + const { accounts, strategy, stakingPool, rewardsController, token, vaults } = await loadFixture( + deployFixture + ) await stakingPool.deposit(accounts[0], toEther(1000), [encodeVaults([])]) await stakingPool.withdraw(accounts[0], accounts[0], 1000, [encodeVaults([]), encodeVaults([])]) @@ -259,7 +257,7 @@ describe('OperatorVCS', () => { await rewardsController.setReward(vaults[5], toEther(8)) await stakingPool.updateStrategyRewards([0], encode(toEther(10))) - assert.equal(fromEther(await token.balanceOf(adrs.stakingPool)), 0) + assert.equal(fromEther(await token.balanceOf(stakingPool.target)), 0) assert.equal(fromEther(await stakingPool.totalStaked()), 1020) assert.equal(fromEther(await strategy.getTotalDeposits()), 1020) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 1000) @@ -269,21 +267,24 @@ describe('OperatorVCS', () => { await rewardsController.setReward(vaults[8], toEther(15)) await stakingPool.updateStrategyRewards([0], encode(toEther(10))) - assert.equal(fromEther(await token.balanceOf(adrs.stakingPool)), 25) + assert.equal(fromEther(await token.balanceOf(stakingPool.target)), 25) assert.equal(fromEther(await stakingPool.totalStaked()), 1052) assert.equal(fromEther(await strategy.getTotalDeposits()), 1027) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 1000) }) it('withdrawOperatorRewards should work correctly', async () => { - const { signers, accounts, adrs, strategy, stakingPool, rewardsController, vaults } = + const { signers, accounts, strategy, stakingPool, rewardsController, vaults } = await loadFixture(deployFixture) await stakingPool.deposit(accounts[0], toEther(10), [encodeVaults([])]) let vault = (await ethers.getContractAt('OperatorVault', vaults[0])) as OperatorVault - expect(vault.withdrawRewards()).to.be.revertedWithCustomError(vault, 'OnlyRewardsReceiver') + await expect(vault.withdrawRewards()).to.be.revertedWithCustomError( + vault, + 'OnlyRewardsReceiver' + ) await rewardsController.setReward(vaults[0], toEther(10)) await rewardsController.setReward(vaults[1], toEther(10)) @@ -292,10 +293,10 @@ describe('OperatorVCS', () => { await vault.connect(signers[1]).withdrawRewards() assert.equal(fromEther(await vault.getUnclaimedRewards()), 0) assert.deepEqual( - (await strategy.getOperatorRewards()).map((v) => fromEther(v)), + (await strategy.getOperatorRewards()).map((v: bigint) => fromEther(v)), [1, 1] ) - assert.equal(fromEther(await stakingPool.balanceOf(adrs.strategy)), 1) + assert.equal(fromEther(await stakingPool.balanceOf(strategy.target)), 1) assert.equal(fromEther(await stakingPool.balanceOf(accounts[1])), 1) vault = (await ethers.getContractAt('OperatorVault', vaults[1])) as OperatorVault @@ -306,10 +307,10 @@ describe('OperatorVCS', () => { await vault.connect(signers[1]).withdrawRewards() assert.equal(Number(fromEther(await vault.getUnclaimedRewards()).toFixed(2)), 0.33) assert.deepEqual( - (await strategy.getOperatorRewards()).map((v) => Number(fromEther(v).toFixed(2))), + (await strategy.getOperatorRewards()).map((v: bigint) => Number(fromEther(v).toFixed(2))), [0.33, 0] ) - assert.equal(Number(fromEther(await stakingPool.balanceOf(adrs.strategy)).toFixed(2)), 0) + assert.equal(Number(fromEther(await stakingPool.balanceOf(strategy.target)).toFixed(2)), 0) assert.equal(Number(fromEther(await stakingPool.balanceOf(accounts[1])).toFixed(2)), 1.33) }) @@ -372,7 +373,6 @@ describe('OperatorVCS', () => { vaults, stakingController, fundFlowController, - adrs, token, } = await loadFixture(deployFixture) @@ -419,12 +419,19 @@ describe('OperatorVCS', () => { assert.equal(fromEther(await strategy.getTotalDeposits()), 900) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 800) assert.equal(fromEther(await stakingPool.totalStaked()), 1020) - assert.equal(fromEther(await token.balanceOf(adrs.stakingPool)), 120) + assert.equal(fromEther(await token.balanceOf(stakingPool.target)), 120) }) it('addVault should work correctly with removed vaults', async () => { - const { accounts, adrs, strategy, stakingPool, fundFlowController, stakingController, vaults } = - await loadFixture(deployFixture) + const { + accounts, + strategy, + stakingPool, + fundFlowController, + stakingController, + vaults, + rewardsController, + } = await loadFixture(deployFixture) await stakingPool.deposit(accounts[0], toEther(1000), [encodeVaults([])]) @@ -446,10 +453,10 @@ describe('OperatorVCS', () => { await strategy.addVault(accounts[2], accounts[3], accounts[4]) assert.equal((await strategy.getVaults()).length, 15) let vault = await ethers.getContractAt('OperatorVault', (await strategy.getVaults())[6]) - assert.equal(await vault.token(), adrs.token) - assert.equal(await vault.stakeController(), adrs.stakingController) - assert.equal(await vault.vaultController(), adrs.strategy) - assert.equal(await vault.rewardsController(), adrs.rewardsController) + assert.equal(await vault.token(), await strategy.token()) + assert.equal(await vault.stakeController(), stakingController.target) + assert.equal(await vault.vaultController(), strategy.target) + assert.equal(await vault.rewardsController(), rewardsController.target) assert.equal(await vault.pfAlertsController(), accounts[4]) assert.equal(await vault.operator(), accounts[2]) assert.equal(await vault.rewardsReceiver(), accounts[3]) @@ -475,8 +482,9 @@ describe('OperatorVCS', () => { it('setRewardsReceiver should work correctly', async () => { const { accounts, strategy, vaults } = await loadFixture(deployFixture) + const vault0 = await ethers.getContractAt('OperatorVault', vaults[0]) await expect(strategy.setRewardsReceiver(1, accounts[4])).to.be.revertedWithCustomError( - await ethers.getContractAt('OperatorVault', vaults[0]), + vault0, 'OnlyRewardsReceiver()' ) diff --git a/test/linkStaking/pp-keeper.test.ts b/test/linkStaking/pp-keeper.test.ts index 39a6fa9f..1ac20a30 100644 --- a/test/linkStaking/pp-keeper.test.ts +++ b/test/linkStaking/pp-keeper.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert } from 'chai' import { toEther, @@ -7,8 +6,9 @@ import { deployImplementation, getAccounts, setupToken, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, VCSMock, StakingMock, @@ -17,8 +17,10 @@ import { FundFlowController, PPKeeper, PriorityPoolMock, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const unbondingPeriod = 28 * 86400 const claimPeriod = 7 * 86400 diff --git a/test/linkStaking/vault-controller-strategy.test.ts b/test/linkStaking/vault-controller-strategy.test.ts index ce9250b0..ee20f07a 100644 --- a/test/linkStaking/vault-controller-strategy.test.ts +++ b/test/linkStaking/vault-controller-strategy.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -8,8 +7,9 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { +import type { ERC677, OperatorVault, VCSMock, @@ -18,9 +18,11 @@ import { StakingRewardsMock, CommunityVaultV2Mock, FundFlowController, -} from '../../typechain-types' +} from '../../types/ethers-contracts' import { Interface } from 'ethers' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const unbondingPeriod = 28 * 86400 const claimPeriod = 7 * 86400 @@ -32,31 +34,27 @@ function encodeVaults(vaults: number[]) { describe('VaultControllerStrategy', () => { async function deployFixture() { const { accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() await setupToken(token, accounts) const rewardsController = (await deploy('StakingRewardsMock', [ - adrs.token, + token.target, ])) as StakingRewardsMock - adrs.rewardsController = await rewardsController.getAddress() const stakingController = (await deploy('StakingMock', [ - adrs.token, - adrs.rewardsController, + token.target, + rewardsController.target, toEther(10), toEther(100), toEther(10000), unbondingPeriod, claimPeriod, ])) as StakingMock - adrs.stakingController = await stakingController.getAddress() let vaultImplementation = await deployImplementation('CommunityVault') @@ -65,9 +63,9 @@ describe('VaultControllerStrategy', () => { const strategy = (await deployUpgradeable( 'VCSMock', [ - adrs.token, + token.target, accounts[0], - adrs.stakingController, + stakingController.target, vaultImplementation, [[accounts[4], 500]], toEther(100), @@ -75,14 +73,13 @@ describe('VaultControllerStrategy', () => { ], { unsafeAllow: ['delegatecall'] } )) as VCSMock - adrs.strategy = await strategy.getAddress() const strategy2 = (await deployUpgradeable( 'VCSMock', [ - adrs.token, + token.target, accounts[0], - adrs.stakingController, + stakingController.target, vaultImplementation, [[accounts[4], 500]], toEther(100), @@ -90,46 +87,43 @@ describe('VaultControllerStrategy', () => { ], { unsafeAllow: ['delegatecall'] } )) as VCSMock - adrs.strategy2 = await strategy2.getAddress() const vaults = [] const vaultContracts = [] for (let i = 0; i < 15; i++) { let vault = (await deployUpgradeable('CommunityVault', [ - adrs.token, - adrs.strategy, - adrs.stakingController, - adrs.rewardsController, + token.target, + strategy.target, + stakingController.target, + rewardsController.target, accounts[0], ])) as CommunityVault vaultContracts.push(vault) - vaults.push(await vault.getAddress()) + vaults.push(vault.target) } for (let i = 0; i < 15; i++) { - vaultContracts[i].transferOwnership(adrs.strategy) + vaultContracts[i].transferOwnership(strategy.target) } await strategy.addVaults(vaults) - await token.approve(adrs.strategy, ethers.MaxUint256) + await token.approve(strategy.target, ethers.MaxUint256) const fundFlowController = (await deployUpgradeable('FundFlowController', [ - adrs.strategy2, - adrs.strategy, + strategy2.target, + strategy.target, token.target, accounts[0], unbondingPeriod, claimPeriod, 5, ])) as FundFlowController - adrs.fundFlowController = await fundFlowController.getAddress() - await strategy.setFundFlowController(adrs.fundFlowController) - await strategy2.setFundFlowController(adrs.fundFlowController) + await strategy.setFundFlowController(fundFlowController.target) + await strategy2.setFundFlowController(fundFlowController.target) return { accounts, - adrs, token, rewardsController, stakingController, @@ -151,31 +145,32 @@ describe('VaultControllerStrategy', () => { const { strategy } = await loadFixture(deployFixture) assert.deepEqual( - (await strategy.getVaultDepositLimits()).map((v) => fromEther(v)), + (await strategy.getVaultDepositLimits()).map((v: bigint) => fromEther(v)), [10, 100] ) }) it('depositToVaults should work correctly', async () => { - const { adrs, strategy, token, stakingController, vaults, fundFlowController } = - await loadFixture(deployFixture) + const { strategy, token, stakingController, vaults, fundFlowController } = await loadFixture( + deployFixture + ) // Deposit into vaults that don't yet belong to a group await strategy.deposit(toEther(50), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 50) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 50) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[0])), 50) assert.equal(Number((await strategy.globalVaultState())[3]), 0) await strategy.deposit(toEther(155), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 200) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 200) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[0])), 100) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[1])), 100) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[2])), 0) assert.equal(Number((await strategy.globalVaultState())[3]), 2) await strategy.deposit(toEther(1000), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 1200) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 1200) assert.equal(Number((await strategy.globalVaultState())[3]), 12) // Deposit into vault groups @@ -203,14 +198,14 @@ describe('VaultControllerStrategy', () => { await fundFlowController.updateVaultGroups() await strategy.withdraw(toEther(200), encodeVaults([4, 9])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 460) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 460) await strategy.deposit(toEther(50), encodeVaults([0, 1, 6])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 510) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 510) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[1])), 50) assert.equal(fromEther(await strategy.canWithdraw()), 0) assert.deepEqual( - await strategy.vaultGroups(1).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(1).then((d: any) => [Number(d[0]), fromEther(d[1])]), [11, 220] ) @@ -227,52 +222,52 @@ describe('VaultControllerStrategy', () => { ).to.be.revertedWithCustomError(strategy, 'DepositFailed()') await strategy.deposit(toEther(200), encodeVaults([1, 6, 11, 4])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 710) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 710) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[1])), 100) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[6])), 100) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[4])), 50) assert.equal(fromEther(await strategy.canWithdraw()), 30) assert.deepEqual( - await strategy.vaultGroups(1).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(1).then((d: any) => [Number(d[0]), fromEther(d[1])]), [11, 70] ) assert.deepEqual( - await strategy.vaultGroups(4).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(4).then((d: any) => [Number(d[0]), fromEther(d[1])]), [9, 150] ) await strategy.deposit(toEther(100), encodeVaults([4, 9])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 810) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 810) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[4])), 100) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[9])), 50) assert.equal(fromEther(await strategy.canWithdraw()), 30) assert.deepEqual( - await strategy.vaultGroups(4).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(4).then((d: any) => [Number(d[0]), fromEther(d[1])]), [4, 50] ) // Deposit into vault groups and non-group vaults await strategy.deposit(toEther(600), encodeVaults([9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 1360) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 1360) assert.deepEqual( - await strategy.vaultGroups(0).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(0).then((d: any) => [Number(d[0]), fromEther(d[1])]), [0, 50] ) assert.deepEqual( - await strategy.vaultGroups(1).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(1).then((d: any) => [Number(d[0]), fromEther(d[1])]), [11, 70] ) assert.deepEqual( - await strategy.vaultGroups(2).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(2).then((d: any) => [Number(d[0]), fromEther(d[1])]), [7, 0] ) assert.deepEqual( - await strategy.vaultGroups(3).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(3).then((d: any) => [Number(d[0]), fromEther(d[1])]), [8, 20] ) assert.deepEqual( - await strategy.vaultGroups(4).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(4).then((d: any) => [Number(d[0]), fromEther(d[1])]), [4, 0] ) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[12])), 100) @@ -287,36 +282,37 @@ describe('VaultControllerStrategy', () => { }) it('deposit should work correctly', async () => { - const { adrs, strategy, token, stakingController, vaults } = await loadFixture(deployFixture) + const { strategy, token, stakingController, vaults } = await loadFixture(deployFixture) await strategy.deposit(toEther(50), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 50) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 50) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[0])), 50) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 50) assert.equal(fromEther(await strategy.getTotalDeposits()), 50) await strategy.deposit(toEther(150), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 200) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 200) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 200) assert.equal(fromEther(await strategy.getTotalDeposits()), 200) - await token.transfer(adrs.strategy, toEther(300)) + await token.transfer(strategy.target, toEther(300)) await strategy.deposit(toEther(520), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 720) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 720) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 720) assert.equal(fromEther(await strategy.getTotalDeposits()), 720) await stakingController.setDepositLimits(toEther(10), toEther(120)) await strategy.deposit(toEther(80), encodeVaults([])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 800) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 800) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[7])), 100) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 800) assert.equal(fromEther(await strategy.getTotalDeposits()), 800) }) it('withdraw should work correctly', async () => { - const { adrs, strategy, token, stakingController, vaults, fundFlowController } = - await loadFixture(deployFixture) + const { strategy, token, stakingController, vaults, fundFlowController } = await loadFixture( + deployFixture + ) await strategy.deposit(toEther(1200), encodeVaults([])) await fundFlowController.updateVaultGroups() @@ -337,14 +333,14 @@ describe('VaultControllerStrategy', () => { ).to.be.revertedWithCustomError(strategy, 'WithdrawalFailed()') await strategy.withdraw(toEther(150), encodeVaults([0, 5])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 1050) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 1050) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[0])), 0) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[5])), 50) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 1050) assert.equal(fromEther(await strategy.getTotalDeposits()), 1050) assert.equal(fromEther(await strategy.canWithdraw()), 150) assert.deepEqual( - await strategy.vaultGroups(0).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(0).then((d: any) => [Number(d[0]), fromEther(d[1])]), [5, 150] ) @@ -352,26 +348,26 @@ describe('VaultControllerStrategy', () => { await fundFlowController.updateVaultGroups() await strategy.withdraw(toEther(75), encodeVaults([1, 6])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 975) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 975) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[1])), 25) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 975) assert.equal(fromEther(await strategy.getTotalDeposits()), 975) assert.equal(fromEther(await strategy.canWithdraw()), 225) assert.deepEqual( - await strategy.vaultGroups(1).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(1).then((d: any) => [Number(d[0]), fromEther(d[1])]), [1, 75] ) await strategy.withdraw(toEther(120), encodeVaults([1, 6])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 850) - assert.equal(fromEther(await token.balanceOf(adrs.strategy)), 0) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 850) + assert.equal(fromEther(await token.balanceOf(strategy.target)), 0) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[1])), 0) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[6])), 0) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 850) assert.equal(fromEther(await strategy.getTotalDeposits()), 850) assert.equal(fromEther(await strategy.canWithdraw()), 100) assert.deepEqual( - await strategy.vaultGroups(1).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(1).then((d: any) => [Number(d[0]), fromEther(d[1])]), [6, 200] ) @@ -389,20 +385,20 @@ describe('VaultControllerStrategy', () => { await fundFlowController.updateVaultGroups() await strategy.withdraw(toEther(200), encodeVaults([2, 7])) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 650) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 650) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[2])), 0) assert.equal(fromEther(await stakingController.getStakerPrincipal(vaults[7])), 0) assert.equal(fromEther(await strategy.totalPrincipalDeposits()), 650) assert.equal(fromEther(await strategy.getTotalDeposits()), 650) assert.equal(fromEther(await strategy.canWithdraw()), 0) assert.deepEqual( - await strategy.vaultGroups(2).then((d) => [Number(d[0]), fromEther(d[1])]), + await strategy.vaultGroups(2).then((d: any) => [Number(d[0]), fromEther(d[1])]), [7, 200] ) }) it('depositChange should work correctly', async () => { - const { adrs, strategy, token, rewardsController, vaults } = await loadFixture(deployFixture) + const { strategy, token, rewardsController, vaults } = await loadFixture(deployFixture) await strategy.deposit(toEther(300), encodeVaults([])) @@ -414,7 +410,7 @@ describe('VaultControllerStrategy', () => { await rewardsController.setReward(vaults[1], toEther(50)) assert.equal(fromEther(await strategy.getDepositChange()), 150) - await token.transfer(adrs.strategy, toEther(50)) + await token.transfer(strategy.target, toEther(50)) assert.equal(fromEther(await strategy.getDepositChange()), 200) await rewardsController.setReward(vaults[0], toEther(60)) @@ -426,7 +422,7 @@ describe('VaultControllerStrategy', () => { }) it('updateDeposits should work correctly', async () => { - const { accounts, adrs, strategy, token, rewardsController, vaults } = await loadFixture( + const { accounts, strategy, token, rewardsController, vaults } = await loadFixture( deployFixture ) @@ -446,8 +442,8 @@ describe('VaultControllerStrategy', () => { assert.equal(fromEther(await strategy.getTotalDeposits()), 315) assert.equal(fromEther(await strategy.getDepositChange()), 0) - let initialBalance = await token.balanceOf(accounts[0]) - await token.transfer(adrs.strategy, toEther(20)) + let initialBalance: bigint = await token.balanceOf(accounts[0]) + await token.transfer(strategy.target, toEther(20)) await strategy.updateDeposits('0x') assert.equal(fromEther(await strategy.getTotalDeposits()), 315) assert.equal(fromEther(await strategy.getDepositChange()), 0) @@ -460,7 +456,7 @@ describe('VaultControllerStrategy', () => { }) it('fees should be properly calculated in updateDeposits', async () => { - const { accounts, adrs, strategy, token, rewardsController, vaults } = await loadFixture( + const { accounts, strategy, token, rewardsController, vaults } = await loadFixture( deployFixture ) @@ -476,7 +472,7 @@ describe('VaultControllerStrategy', () => { assert.equal(fromEther(data.amounts[0]), 5) assert.equal(fromEther(data.amounts[1]), 10) - await token.transfer(adrs.strategy, toEther(100)) + await token.transfer(strategy.target, toEther(100)) data = await strategy.updateDeposits.staticCall('0x') assert.equal(fromEther(data.depositChange), 200) @@ -526,7 +522,9 @@ describe('VaultControllerStrategy', () => { }) it('deployVault should work correctly', async () => { - const { accounts, adrs, strategy } = await loadFixture(deployFixture) + const { accounts, strategy, stakingController, rewardsController } = await loadFixture( + deployFixture + ) let newVaultImplementation = (await deployImplementation('OperatorVault')) as string await strategy.setVaultImplementation(newVaultImplementation) @@ -535,10 +533,10 @@ describe('VaultControllerStrategy', () => { for (let i = 1; i < 5; i++) { await strategy.deployVault( vaultInterface.encodeFunctionData('initialize', [ - adrs.token, - adrs.strategy, - adrs.stakingController, - adrs.rewardsController, + await strategy.token(), + strategy.target, + stakingController.target, + rewardsController.target, accounts[0], accounts[0], accounts[i], diff --git a/test/linkStaking/vault.test.ts b/test/linkStaking/vault.test.ts index 9e1f0faf..96a26b14 100644 --- a/test/linkStaking/vault.test.ts +++ b/test/linkStaking/vault.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -7,9 +6,17 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { ERC677, CommunityVault, StakingMock, StakingRewardsMock } from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +import type { + ERC677, + CommunityVault, + StakingMock, + StakingRewardsMock, +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const unbondingPeriod = 28 * 86400 const claimPeriod = 7 * 86400 @@ -17,80 +24,75 @@ const claimPeriod = 7 * 86400 describe('Vault', () => { async function deployFixture() { const { accounts } = await getAccounts() - const adrs: any = {} const token = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Chainlink', 'LINK', 1000000000, ])) as ERC677 - adrs.token = await token.getAddress() await setupToken(token, accounts) const rewardsController = (await deploy('StakingRewardsMock', [ - adrs.token, + token.target, ])) as StakingRewardsMock - adrs.rewardsController = await rewardsController.getAddress() const stakingController = (await deploy('StakingMock', [ - adrs.token, - adrs.rewardsController, + token.target, + rewardsController.target, toEther(10), toEther(100), toEther(10000), unbondingPeriod, claimPeriod, ])) as StakingMock - adrs.stakingController = await stakingController.getAddress() const vault = (await deployUpgradeable('CommunityVault', [ - adrs.token, + token.target, accounts[0], - adrs.stakingController, - adrs.rewardsController, + stakingController.target, + rewardsController.target, accounts[0], ])) as CommunityVault - adrs.vault = await vault.getAddress() - await token.approve(adrs.vault, ethers.MaxUint256) + await token.approve(vault.target, ethers.MaxUint256) - return { accounts, adrs, token, rewardsController, stakingController, vault } + return { accounts, token, rewardsController, stakingController, vault } } it('should be able to deposit', async () => { - const { adrs, vault, token, stakingController } = await loadFixture(deployFixture) + const { vault, token, stakingController } = await loadFixture(deployFixture) await vault.deposit(toEther(100)) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 100) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 100) assert.equal( - fromEther(await stakingController.getStakerPrincipal(adrs.vault)), + fromEther(await stakingController.getStakerPrincipal(vault.target)), 100, 'balance does not match' ) await vault.deposit(toEther(200)) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 300) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 300) assert.equal( - fromEther(await stakingController.getStakerPrincipal(adrs.vault)), + fromEther(await stakingController.getStakerPrincipal(vault.target)), 300, 'balance does not match' ) }) it('should be able to unbond', async () => { - const { adrs, vault, stakingController } = await loadFixture(deployFixture) + const { vault, stakingController } = await loadFixture(deployFixture) await vault.deposit(toEther(100)) await vault.unbond() let ts: any = (await ethers.provider.getBlock('latest'))?.timestamp assert.equal( - Number(await stakingController.getClaimPeriodEndsAt(adrs.vault)), + Number(await stakingController.getClaimPeriodEndsAt(vault.target)), ts + unbondingPeriod + claimPeriod ) }) it('should be able to withdraw', async () => { - const { adrs, vault, token, stakingController } = await loadFixture(deployFixture) + const { vault, token, stakingController } = await loadFixture(deployFixture) await vault.deposit(toEther(100)) await vault.unbond() @@ -104,7 +106,7 @@ describe('Vault', () => { await vault.withdraw(toEther(30)) assert.equal(fromEther(await vault.getPrincipalDeposits()), 70) - assert.equal(fromEther(await token.balanceOf(adrs.stakingController)), 70) + assert.equal(fromEther(await token.balanceOf(stakingController.target)), 70) }) it('getPrincipalDeposits should work correctly', async () => { @@ -118,25 +120,25 @@ describe('Vault', () => { }) it('getRewards should work correctly', async () => { - const { adrs, vault, rewardsController } = await loadFixture(deployFixture) + const { vault, rewardsController } = await loadFixture(deployFixture) await vault.deposit(toEther(100)) - await rewardsController.setReward(adrs.vault, toEther(10)) + await rewardsController.setReward(vault.target, toEther(10)) assert.equal(fromEther(await vault.getRewards()), 10) - await rewardsController.setReward(adrs.vault, toEther(40)) + await rewardsController.setReward(vault.target, toEther(40)) assert.equal(fromEther(await vault.getRewards()), 40) }) it('getTotalDeposits should work correctly', async () => { - const { adrs, vault, rewardsController } = await loadFixture(deployFixture) + const { vault, rewardsController } = await loadFixture(deployFixture) await vault.deposit(toEther(100)) - await rewardsController.setReward(adrs.vault, toEther(10)) + await rewardsController.setReward(vault.target, toEther(10)) assert.equal(fromEther(await vault.getTotalDeposits()), 110) await vault.deposit(toEther(150)) - await rewardsController.setReward(adrs.vault, toEther(40)) + await rewardsController.setReward(vault.target, toEther(40)) assert.equal(fromEther(await vault.getTotalDeposits()), 290) }) diff --git a/test/liquidSDIndex/liquid-sd-adapter.test.ts b/test/liquidSDIndex/liquid-sd-adapter.test.ts index d0f49fb8..4cba5bd1 100644 --- a/test/liquidSDIndex/liquid-sd-adapter.test.ts +++ b/test/liquidSDIndex/liquid-sd-adapter.test.ts @@ -1,30 +1,35 @@ import { assert, expect } from 'chai' -import { deploy, deployUpgradeable, fromEther, getAccounts, toEther } from '../utils/helpers' -import { ERC677, LSDIndexAdapterMock } from '../../typechain-types' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import { + deploy, + deployUpgradeable, + fromEther, + getAccounts, + toEther, + getConnection, +} from '../utils/helpers' +import type { ERC677, LSDIndexAdapterMock } from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('LSDIndexAdapter', () => { async function deployFixture() { const { accounts, signers } = await getAccounts() - const adrs: any = {} const lsd = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Liquid SD Token', 'LSD', 100000000, ])) as ERC677 - adrs.lsd = await lsd.getAddress() const adapter = (await deployUpgradeable('LSDIndexAdapterMock', [ - adrs.lsd, + lsd.target, accounts[0], toEther(2), ])) as LSDIndexAdapterMock - adrs.adapter = await adapter.getAddress() - await lsd.transfer(adrs.adapter, toEther(1000)) + await lsd.transfer(adapter.target, toEther(1000)) - return { signers, accounts, adrs, lsd, adapter } + return { signers, accounts, lsd, adapter } } it('getExchangeRate should work correctly', async () => { @@ -58,13 +63,14 @@ describe('LSDIndexAdapter', () => { }) it('index pool should be able to withdraw', async () => { - const { signers, accounts, adrs, adapter, lsd } = await loadFixture(deployFixture) + const { signers, accounts, adapter, lsd } = await loadFixture(deployFixture) - await lsd.transferFrom(adrs.adapter, accounts[1], toEther(500)) + await lsd.transferFrom(adapter.target, accounts[1], toEther(500)) assert.equal(fromEther(await adapter.getTotalDepositsLSD()), 500) assert.equal(fromEther(await adapter.getTotalDeposits()), 1000) - await expect(lsd.connect(signers[1]).transferFrom(adrs.adapter, accounts[1], toEther(500))).to - .be.reverted + await expect( + lsd.connect(signers[1]).transferFrom(adapter.target, accounts[1], toEther(500)) + ).to.revert(ethers) }) }) diff --git a/test/liquidSDIndex/liquid-sd-index-pool.test.ts b/test/liquidSDIndex/liquid-sd-index-pool.test.ts index fd859bec..792fb43e 100644 --- a/test/liquidSDIndex/liquid-sd-index-pool.test.ts +++ b/test/liquidSDIndex/liquid-sd-index-pool.test.ts @@ -6,29 +6,27 @@ import { getAccounts, setupToken, toEther, + getConnection, } from '../utils/helpers' -import { ERC677, LiquidSDIndexPool, LSDIndexAdapterMock } from '../../typechain-types' -import { ethers } from 'hardhat' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' +import type { ERC677, LiquidSDIndexPool, LSDIndexAdapterMock } from '../../types/ethers-contracts' + +const { ethers, loadFixture } = getConnection() describe('LiquidSDIndexPool', () => { async function deployFixture() { const { accounts, signers } = await getAccounts() - const adrs: any = {} const lsd1 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Liquid SD Token 1', 'LSD1', 100000000, ])) as ERC677 - adrs.lsd1 = await lsd1.getAddress() const lsd2 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Liquid SD Token 2', 'LSD2', 100000000, ])) as ERC677 - adrs.lsd2 = await lsd2.getAddress() await setupToken(lsd1, accounts) await setupToken(lsd2, accounts) @@ -44,172 +42,169 @@ describe('LiquidSDIndexPool', () => { ], 0, ])) as LiquidSDIndexPool - adrs.pool = await pool.getAddress() const adapter1 = (await deployUpgradeable('LSDIndexAdapterMock', [ - adrs.lsd1, - adrs.pool, + lsd1.target, + pool.target, toEther(1), ])) as LSDIndexAdapterMock - adrs.adapter1 = await adapter1.getAddress() const adapter2 = (await deployUpgradeable('LSDIndexAdapterMock', [ - adrs.lsd2, - adrs.pool, + lsd2.target, + pool.target, toEther(2), ])) as LSDIndexAdapterMock - adrs.adapter2 = await adapter2.getAddress() - - await pool.addLSDToken(adrs.lsd1, adrs.adapter1, [10000]) - await pool.addLSDToken(adrs.lsd2, adrs.adapter2, [7000, 3000]) - await lsd1.approve(adrs.pool, ethers.MaxUint256) - await lsd2.approve(adrs.pool, ethers.MaxUint256) - await lsd1.connect(signers[1]).approve(adrs.pool, ethers.MaxUint256) - await lsd2.connect(signers[1]).approve(adrs.pool, ethers.MaxUint256) - await pool.connect(signers[1]).deposit(adrs.lsd1, toEther(2000)) - await pool.connect(signers[1]).deposit(adrs.lsd2, toEther(500)) - - return { signers, accounts, adrs, lsd1, lsd2, pool, adapter1, adapter2 } + + await pool.addLSDToken(lsd1.target, adapter1.target, [10000]) + await pool.addLSDToken(lsd2.target, adapter2.target, [7000, 3000]) + await lsd1.approve(pool.target, ethers.MaxUint256) + await lsd2.approve(pool.target, ethers.MaxUint256) + await lsd1.connect(signers[1]).approve(pool.target, ethers.MaxUint256) + await lsd2.connect(signers[1]).approve(pool.target, ethers.MaxUint256) + await pool.connect(signers[1]).deposit(lsd1.target, toEther(2000)) + await pool.connect(signers[1]).deposit(lsd2.target, toEther(500)) + + return { signers, accounts, lsd1, lsd2, pool, adapter1, adapter2 } } it('addLSDToken should work correctly', async () => { - const { adrs, pool } = await loadFixture(deployFixture) + const { pool, lsd1, lsd2, adapter1, adapter2 } = await loadFixture(deployFixture) let lsd3 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Liquid SD Token 2', 'LSD2', 100000000, ])) as ERC677 - adrs.lsd3 = await lsd3.getAddress() let adapter3 = (await deployUpgradeable('LSDIndexAdapterMock', [ - adrs.lsd3, - adrs.pool, + lsd3.target, + pool.target, toEther(5), ])) as LSDIndexAdapterMock - adrs.adapter3 = await adapter3.getAddress() - await expect(pool.addLSDToken(adrs.lsd1, adrs.adapter1, [2000, 8000])).to.be.revertedWith( + await expect(pool.addLSDToken(lsd1.target, adapter1.target, [2000, 8000])).to.be.revertedWith( 'Token is already supported' ) - await expect(pool.addLSDToken(adrs.lsd3, adrs.adapter3, [2000, 8000])).to.be.revertedWith( + await expect(pool.addLSDToken(lsd3.target, adapter3.target, [2000, 8000])).to.be.revertedWith( 'Invalid composition targets length' ) - await expect(pool.addLSDToken(adrs.lsd3, adrs.adapter3, [1000, 8000, 2000])).to.be.revertedWith( - 'Composition targets must sum to 100%' - ) + await expect( + pool.addLSDToken(lsd3.target, adapter3.target, [1000, 8000, 2000]) + ).to.be.revertedWith('Composition targets must sum to 100%') - await pool.addLSDToken(adrs.lsd3, adrs.adapter3, [5000, 3000, 2000]) - assert.deepEqual(await pool.getLSDTokens(), [adrs.lsd1, adrs.lsd2, adrs.lsd3]) + await pool.addLSDToken(lsd3.target, adapter3.target, [5000, 3000, 2000]) + assert.deepEqual(await pool.getLSDTokens(), [lsd1.target, lsd2.target, lsd3.target]) assert.deepEqual( - (await pool.getCompositionTargets()).map((t) => Number(t)), + (await pool.getCompositionTargets()).map((t: bigint) => Number(t)), [5000, 3000, 2000] ) - assert.equal(await pool.lsdAdapters(adrs.lsd1), adrs.adapter1) - assert.equal(await pool.lsdAdapters(adrs.lsd2), adrs.adapter2) - assert.equal(await pool.lsdAdapters(adrs.lsd3), adrs.adapter3) + assert.equal(await pool.lsdAdapters(lsd1.target), adapter1.target) + assert.equal(await pool.lsdAdapters(lsd2.target), adapter2.target) + assert.equal(await pool.lsdAdapters(lsd3.target), adapter3.target) }) it('removeLSDToken should work correctly', async () => { - const { signers, adrs, pool } = await loadFixture(deployFixture) + const { signers, pool, lsd1, lsd2, adapter1 } = await loadFixture(deployFixture) let lsd3 = (await deploy('contracts/core/tokens/base/ERC677.sol:ERC677', [ 'Liquid SD Token 2', 'LSD2', 100000000, ])) as ERC677 - adrs.lsd3 = await lsd3.getAddress() let adapter3 = (await deployUpgradeable('LSDIndexAdapterMock', [ - adrs.lsd3, - adrs.pool, + lsd3.target, + pool.target, toEther(5), ])) as LSDIndexAdapterMock - adrs.adapter3 = await adapter3.getAddress() - await pool.addLSDToken(adrs.lsd3, adrs.adapter3, [5000, 3000, 2000]) + await pool.addLSDToken(lsd3.target, adapter3.target, [5000, 3000, 2000]) - await expect(pool.removeLSDToken(adrs.lsd2, [2000, 8000])).to.be.revertedWith( + await expect(pool.removeLSDToken(lsd2.target, [2000, 8000])).to.be.revertedWith( 'Cannot remove adapter that contains deposits' ) - await expect(pool.removeLSDToken(adrs.lsd3, [2000, 7000, 1000])).to.be.revertedWith( + await expect(pool.removeLSDToken(lsd3.target, [2000, 7000, 1000])).to.be.revertedWith( 'Invalid composition targets length' ) - await expect(pool.removeLSDToken(adrs.lsd3, [2000, 7000])).to.be.revertedWith( + await expect(pool.removeLSDToken(lsd3.target, [2000, 7000])).to.be.revertedWith( 'Composition targets must sum to 100%' ) await pool.connect(signers[1]).withdraw(toEther(2999)) - await pool.removeLSDToken(adrs.lsd2, [2000, 8000]) + await pool.removeLSDToken(lsd2.target, [2000, 8000]) - assert.deepEqual(await pool.getLSDTokens(), [adrs.lsd1, adrs.lsd3]) + assert.deepEqual(await pool.getLSDTokens(), [lsd1.target, lsd3.target]) assert.deepEqual( - (await pool.getCompositionTargets()).map((t) => Number(t)), + (await pool.getCompositionTargets()).map((t: bigint) => Number(t)), [2000, 8000] ) - assert.equal(await pool.lsdAdapters(adrs.lsd1), adrs.adapter1) - assert.equal(await pool.lsdAdapters(adrs.lsd2), ethers.ZeroAddress) - assert.equal(await pool.lsdAdapters(adrs.lsd3), adrs.adapter3) + assert.equal(await pool.lsdAdapters(lsd1.target), adapter1.target) + assert.equal(await pool.lsdAdapters(lsd2.target), ethers.ZeroAddress) + assert.equal(await pool.lsdAdapters(lsd3.target), adapter3.target) }) it('deposit should work correctly', async () => { - const { signers, accounts, adrs, pool, lsd1, lsd2 } = await loadFixture(deployFixture) + const { signers, accounts, pool, lsd1, lsd2, adapter1, adapter2 } = await loadFixture( + deployFixture + ) - await lsd1.connect(signers[2]).approve(adrs.pool, ethers.MaxUint256) - await lsd2.connect(signers[2]).approve(adrs.pool, ethers.MaxUint256) - await pool.connect(signers[2]).deposit(adrs.lsd1, toEther(1000)) - await pool.connect(signers[2]).deposit(adrs.lsd2, toEther(250)) + await lsd1.connect(signers[2]).approve(pool.target, ethers.MaxUint256) + await lsd2.connect(signers[2]).approve(pool.target, ethers.MaxUint256) + await pool.connect(signers[2]).deposit(lsd1.target, toEther(1000)) + await pool.connect(signers[2]).deposit(lsd2.target, toEther(250)) assert.equal(fromEther(await pool.balanceOf(accounts[1])), 3000) assert.equal(fromEther(await pool.balanceOf(accounts[2])), 1500) - assert.equal(fromEther(await lsd1.balanceOf(adrs.adapter1)), 3000) - assert.equal(fromEther(await lsd2.balanceOf(adrs.adapter2)), 750) + assert.equal(fromEther(await lsd1.balanceOf(adapter1.target)), 3000) + assert.equal(fromEther(await lsd2.balanceOf(adapter2.target)), 750) assert.equal(fromEther(await pool.totalSupply()), 4500) await expect(pool.deposit(accounts[1], toEther(100))).to.be.revertedWith( 'Token is not supported' ) - await expect(pool.deposit(adrs.lsd2, toEther(2000))).to.be.revertedWith( + await expect(pool.deposit(lsd2.target, toEther(2000))).to.be.revertedWith( 'Insufficient deposit room for the selected lsd' ) }) it('withdraw should work correctly', async () => { - const { signers, accounts, adrs, pool, lsd1, lsd2 } = await loadFixture(deployFixture) + const { signers, accounts, pool, lsd1, lsd2, adapter1, adapter2 } = await loadFixture( + deployFixture + ) - await lsd1.connect(signers[2]).approve(adrs.pool, ethers.MaxUint256) - await lsd2.connect(signers[2]).approve(adrs.pool, ethers.MaxUint256) - await pool.connect(signers[2]).deposit(adrs.lsd1, toEther(1000)) - await pool.connect(signers[2]).deposit(adrs.lsd2, toEther(250)) + await lsd1.connect(signers[2]).approve(pool.target, ethers.MaxUint256) + await lsd2.connect(signers[2]).approve(pool.target, ethers.MaxUint256) + await pool.connect(signers[2]).deposit(lsd1.target, toEther(1000)) + await pool.connect(signers[2]).deposit(lsd2.target, toEther(250)) await pool.connect(signers[1]).withdraw(toEther(200)) assert.equal(fromEther(await pool.balanceOf(accounts[1])), 2800) assert.equal(fromEther(await pool.totalSupply()), 4300) - assert.equal(fromEther(await lsd1.balanceOf(adrs.adapter1)), 3000) - assert.equal(fromEther(await lsd2.balanceOf(adrs.adapter2)), 650) + assert.equal(fromEther(await lsd1.balanceOf(adapter1.target)), 3000) + assert.equal(fromEther(await lsd2.balanceOf(adapter2.target)), 650) await pool.connect(signers[2]).withdraw(toEther(100)) assert.equal(fromEther(await pool.balanceOf(accounts[2])), 1400) assert.equal(fromEther(await pool.totalSupply()), 4200) - assert.equal(fromEther(await lsd1.balanceOf(adrs.adapter1)), 2940) - assert.equal(fromEther(await lsd2.balanceOf(adrs.adapter2)), 630) + assert.equal(fromEther(await lsd1.balanceOf(adapter1.target)), 2940) + assert.equal(fromEther(await lsd2.balanceOf(adapter2.target)), 630) - await pool.connect(signers[2]).deposit(adrs.lsd1, toEther(500)) + await pool.connect(signers[2]).deposit(lsd1.target, toEther(500)) await pool.connect(signers[2]).withdraw(toEther(200)) assert.equal(fromEther(await pool.balanceOf(accounts[2])), 1700) assert.equal(fromEther(await pool.totalSupply()), 4500) - assert.equal(fromEther(await lsd1.balanceOf(adrs.adapter1)), 3240) - assert.equal(fromEther(await lsd2.balanceOf(adrs.adapter2)), 630) + assert.equal(fromEther(await lsd1.balanceOf(adapter1.target)), 3240) + assert.equal(fromEther(await lsd2.balanceOf(adapter2.target)), 630) await pool.setCompositionTargets([10000, 0]) await pool.connect(signers[2]).withdraw(toEther(1400)) assert.equal(fromEther(await pool.balanceOf(accounts[2])), 300) assert.equal(fromEther(await pool.totalSupply()), 3100) - assert.equal(fromEther(await lsd1.balanceOf(adrs.adapter1)), 3100) - assert.equal(fromEther(await lsd2.balanceOf(adrs.adapter2)), 0) + assert.equal(fromEther(await lsd1.balanceOf(adapter1.target)), 3100) + assert.equal(fromEther(await lsd2.balanceOf(adapter2.target)), 0) assert.equal(fromEther(await lsd1.balanceOf(accounts[1])), 8000) assert.equal(fromEther(await lsd2.balanceOf(accounts[1])), 9600) @@ -225,12 +220,12 @@ describe('LiquidSDIndexPool', () => { const { pool } = await loadFixture(deployFixture) assert.deepEqual( - (await pool.getCompositionTargets()).map((t) => Number(t)), + (await pool.getCompositionTargets()).map((t: bigint) => Number(t)), [7000, 3000] ) await pool.setCompositionTargets([1000, 9000]) assert.deepEqual( - (await pool.getCompositionTargets()).map((t) => Number(t)), + (await pool.getCompositionTargets()).map((t: bigint) => Number(t)), [1000, 9000] ) @@ -249,83 +244,83 @@ describe('LiquidSDIndexPool', () => { }) it('getComposition should work correctly', async () => { - const { signers, adrs, pool } = await loadFixture(deployFixture) + const { signers, pool, lsd1, lsd2 } = await loadFixture(deployFixture) assert.deepEqual( - (await pool.getComposition()).map((c) => Number(c)), + (await pool.getComposition()).map((c: bigint) => Number(c)), [6666, 3333] ) - await pool.deposit(adrs.lsd1, toEther(1000)) + await pool.deposit(lsd1.target, toEther(1000)) assert.deepEqual( - (await pool.getComposition()).map((c) => Number(c)), + (await pool.getComposition()).map((c: bigint) => Number(c)), [7500, 2500] ) - await pool.deposit(adrs.lsd2, toEther(500)) + await pool.deposit(lsd2.target, toEther(500)) assert.deepEqual( - (await pool.getComposition()).map((c) => Number(c)), + (await pool.getComposition()).map((c: bigint) => Number(c)), [6000, 4000] ) await pool.withdraw(toEther(100)) assert.deepEqual( - (await pool.getComposition()).map((c) => Number(c)), + (await pool.getComposition()).map((c: bigint) => Number(c)), [6122, 3877] ) await pool.connect(signers[1]).withdraw(toEther(700)) assert.deepEqual( - (await pool.getComposition()).map((c) => Number(c)), + (await pool.getComposition()).map((c: bigint) => Number(c)), [6999, 3000] ) }) it('getDepositRoom should work correctly', async () => { - const { adrs, pool, adapter2 } = await loadFixture(deployFixture) + const { pool, lsd1, lsd2, adapter2 } = await loadFixture(deployFixture) await adapter2.setExchangeRate(toEther(1)) - assert.equal(fromEther(await pool.getDepositRoom(adrs.lsd1)), 5000) - assert.equal(fromEther(await pool.getDepositRoom(adrs.lsd2)), 2500) + assert.equal(fromEther(await pool.getDepositRoom(lsd1.target)), 5000) + assert.equal(fromEther(await pool.getDepositRoom(lsd2.target)), 2500) - await pool.deposit(adrs.lsd1, toEther(5000)) - assert.equal(fromEther(await pool.getDepositRoom(adrs.lsd1)), 0) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd2)).toFixed(3)), 5227.273) + await pool.deposit(lsd1.target, toEther(5000)) + assert.equal(fromEther(await pool.getDepositRoom(lsd1.target)), 0) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd2.target)).toFixed(3)), 5227.273) - await pool.deposit(adrs.lsd2, toEther(2000)) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd1)).toFixed(3)), 7166.667) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd2)).toFixed(3)), 3227.273) + await pool.deposit(lsd2.target, toEther(2000)) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd1.target)).toFixed(3)), 7166.667) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd2.target)).toFixed(3)), 3227.273) - await pool.deposit(adrs.lsd2, toEther(3000)) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd1)).toFixed(3)), 24166.667) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd2)).toFixed(3)), 227.273) + await pool.deposit(lsd2.target, toEther(3000)) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd1.target)).toFixed(3)), 24166.667) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd2.target)).toFixed(3)), 227.273) await pool.setCompositionTolerance(2500) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd1)).toFixed(3)), 11944.444) - assert.equal(fromEther(await pool.getDepositRoom(adrs.lsd2)), 0) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd1.target)).toFixed(3)), 11944.444) + assert.equal(fromEther(await pool.getDepositRoom(lsd2.target)), 0) - await pool.deposit(adrs.lsd1, toEther(6000)) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd1)).toFixed(3)), 5944.444) - assert.equal(fromEther(await pool.getDepositRoom(adrs.lsd2)), 2300) + await pool.deposit(lsd1.target, toEther(6000)) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd1.target)).toFixed(3)), 5944.444) + assert.equal(fromEther(await pool.getDepositRoom(lsd2.target)), 2300) await pool.setCompositionTolerance(8000) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd1)).toFixed(3)), 73166.667) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd2)).toFixed(3)), 9760.87) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd1.target)).toFixed(3)), 73166.667) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd2.target)).toFixed(3)), 9760.87) await pool.setCompositionEnforcementThreshold(toEther(30000)) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd1)).toFixed(3)), 73166.667) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd2)).toFixed(3)), 9760.87) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd1.target)).toFixed(3)), 73166.667) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd2.target)).toFixed(3)), 9760.87) await pool.setCompositionEnforcementThreshold(toEther(100000)) - assert.equal(Number(fromEther(await pool.getDepositRoom(adrs.lsd1)).toFixed(3)), 73166.667) - assert.equal(fromEther(await pool.getDepositRoom(adrs.lsd2)), 24500) + assert.equal(Number(fromEther(await pool.getDepositRoom(lsd1.target)).toFixed(3)), 73166.667) + assert.equal(fromEther(await pool.getDepositRoom(lsd2.target)), 24500) await pool.setCompositionTargets([10000, 0]) - assert.equal(await pool.getDepositRoom(adrs.lsd1), ethers.MaxUint256 - toEther(18500)) - assert.equal(fromEther(await pool.getDepositRoom(adrs.lsd2)), 0) + assert.equal(await pool.getDepositRoom(lsd1.target), ethers.MaxUint256 - toEther(18500)) + assert.equal(fromEther(await pool.getDepositRoom(lsd2.target)), 0) }) it('getRewards should work correctly', async () => { const { pool, adapter1, adapter2 } = await loadFixture(deployFixture) assert.deepEqual( - (await pool.getRewards()).map((e) => fromEther(e)), + (await pool.getRewards()).map((e: bigint) => fromEther(e)), [0, 0] ) @@ -333,20 +328,20 @@ describe('LiquidSDIndexPool', () => { await adapter2.setExchangeRate(toEther(1)) assert.deepEqual( - (await pool.getRewards()).map((e) => fromEther(e)), + (await pool.getRewards()).map((e: bigint) => fromEther(e)), [500, 75] ) await pool.updateRewards() assert.deepEqual( - (await pool.getRewards()).map((e) => fromEther(e)), + (await pool.getRewards()).map((e: bigint) => fromEther(e)), [0, 0] ) await adapter1.setExchangeRate(toEther(1)) assert.deepEqual( - (await pool.getRewards()).map((e) => fromEther(e)), + (await pool.getRewards()).map((e: bigint) => fromEther(e)), [-1000, 0] ) }) @@ -376,7 +371,9 @@ describe('LiquidSDIndexPool', () => { }) it('withdrawal fee should work correctly', async () => { - const { signers, accounts, adrs, pool, adapter2, lsd1, lsd2 } = await loadFixture(deployFixture) + const { signers, accounts, pool, lsd1, lsd2, adapter1, adapter2 } = await loadFixture( + deployFixture + ) await pool.setCompositionTargets([8000, 2000]) await adapter2.setExchangeRate(toEther(1)) @@ -386,22 +383,22 @@ describe('LiquidSDIndexPool', () => { assert.equal(Number(await pool.withdrawalFee()), 50) assert.deepEqual( - (await pool.getWithdrawalAmounts(toEther(500))).map((e) => fromEther(e)), + (await pool.getWithdrawalAmounts(toEther(500))).map((e: bigint) => fromEther(e)), [398, 99.5] ) await pool.connect(signers[1]).withdraw(toEther(500)) assert.equal(fromEther(await pool.balanceOf(accounts[1])), 2002.5) assert.equal(fromEther(await pool.totalSupply()), 2002.5) - assert.equal(fromEther(await lsd1.balanceOf(adrs.adapter1)), 1602) - assert.equal(fromEther(await lsd2.balanceOf(adrs.adapter2)), 400.5) + assert.equal(fromEther(await lsd1.balanceOf(adapter1.target)), 1602) + assert.equal(fromEther(await lsd2.balanceOf(adapter2.target)), 400.5) - await lsd2.connect(signers[2]).approve(adrs.pool, ethers.MaxUint256) - await pool.connect(signers[2]).deposit(adrs.lsd2, toEther(200.5)) + await lsd2.connect(signers[2]).approve(pool.target, ethers.MaxUint256) + await pool.connect(signers[2]).deposit(lsd2.target, toEther(200.5)) await pool.setWithdrawalFee(200) assert.deepEqual( - (await pool.getWithdrawalAmounts(toEther(100))).map((e) => fromEther(e)), + (await pool.getWithdrawalAmounts(toEther(100))).map((e: bigint) => fromEther(e)), [0, 98] ) @@ -409,21 +406,21 @@ describe('LiquidSDIndexPool', () => { assert.equal(fromEther(await pool.totalSupply()), 2105) assert.equal(Number(fromEther(await pool.balanceOf(accounts[1])).toFixed(3)), 2004.404) assert.equal(Number(fromEther(await pool.balanceOf(accounts[2])).toFixed(3)), 100.596) - assert.equal(fromEther(await lsd1.balanceOf(adrs.adapter1)), 1602) - assert.equal(fromEther(await lsd2.balanceOf(adrs.adapter2)), 503) + assert.equal(fromEther(await lsd1.balanceOf(adapter1.target)), 1602) + assert.equal(fromEther(await lsd2.balanceOf(adapter2.target)), 503) await expect(pool.setWithdrawalFee(501)).to.be.revertedWith('Withdrawal fee must be <= 5%') }) it('pausing should work correctly', async () => { - const { signers, adrs, pool } = await loadFixture(deployFixture) + const { signers, pool, lsd1 } = await loadFixture(deployFixture) await expect(pool.setPaused(false)).to.be.revertedWith('This pause status is already set') await pool.setPaused(true) await expect(pool.setPaused(true)).to.be.revertedWith('This pause status is already set') - await expect(pool.connect(signers[1]).deposit(adrs.lsd1, 10)).to.be.revertedWith( + await expect(pool.connect(signers[1]).deposit(lsd1.target, 10)).to.be.revertedWith( 'Contract is paused' ) await expect(pool.connect(signers[1]).withdraw(10)).to.be.revertedWith('Contract is paused') @@ -431,7 +428,7 @@ describe('LiquidSDIndexPool', () => { await pool.setPaused(false) - await pool.connect(signers[1]).deposit(adrs.lsd1, 10) + await pool.connect(signers[1]).deposit(lsd1.target, 10) await pool.connect(signers[1]).withdraw(10) await pool.updateRewards() }) diff --git a/test/polygonStaking/polygon-fund-flow-controller.test.ts b/test/polygonStaking/polygon-fund-flow-controller.test.ts index b1cdb931..1ed6ad07 100644 --- a/test/polygonStaking/polygon-fund-flow-controller.test.ts +++ b/test/polygonStaking/polygon-fund-flow-controller.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -8,17 +7,20 @@ import { setupToken, fromEther, deployImplementation, + getConnection, } from '../utils/helpers' -import { - ERC20, +import type { + ERC20Mintable, PolygonFundFlowController, PolygonStakeManagerMock, PolygonStrategy, PolygonValidatorShareMock, StakingPool, WithdrawalPoolMock, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const withdrawalDelay = 86400 @@ -30,7 +32,7 @@ describe('PolygonFundFlowController', () => { 'Polygon', 'POL', 1000000000, - ])) as ERC20 + ])) as ERC20Mintable await setupToken(token, accounts) const stakeManager = (await deploy('PolygonStakeManagerMock', [ @@ -251,7 +253,7 @@ describe('PolygonFundFlowController', () => { await strategy.restakeRewards([0, 2]) assert.deepEqual( - (await fundFlowController.getVaultRewards()).map((v) => fromEther(v)), + (await fundFlowController.getVaultRewards()).map((v: bigint) => fromEther(v)), [0, 20, 0] ) @@ -305,7 +307,7 @@ describe('PolygonFundFlowController', () => { const { fundFlowController, withdrawalPool } = await loadFixture(deployFixture) assert.deepEqual( - (await fundFlowController.getVaultDeposits()).map((d) => fromEther(d)), + (await fundFlowController.getVaultDeposits()).map((d: bigint) => fromEther(d)), [10, 20, 30] ) @@ -315,7 +317,7 @@ describe('PolygonFundFlowController', () => { await fundFlowController.withdrawVaults([0n, 1n]) assert.deepEqual( - (await fundFlowController.getVaultDeposits()).map((v) => fromEther(v)), + (await fundFlowController.getVaultDeposits()).map((v: bigint) => fromEther(v)), [0, 10, 30] ) }) @@ -331,7 +333,7 @@ describe('PolygonFundFlowController', () => { } = await loadFixture(deployFixture) assert.deepEqual( - (await fundFlowController.getVaultRewards()).map((v) => fromEther(v)), + (await fundFlowController.getVaultRewards()).map((v: bigint) => fromEther(v)), [0, 0, 0] ) @@ -340,14 +342,14 @@ describe('PolygonFundFlowController', () => { await validatorShare3.addReward(vaults[2].target, toEther(15)) assert.deepEqual( - (await fundFlowController.getVaultRewards()).map((v) => fromEther(v)), + (await fundFlowController.getVaultRewards()).map((v: bigint) => fromEther(v)), [5, 10, 15] ) await strategy.restakeRewards([1]) assert.deepEqual( - (await fundFlowController.getVaultRewards()).map((v) => fromEther(v)), + (await fundFlowController.getVaultRewards()).map((v: bigint) => fromEther(v)), [5, 0, 15] ) }) diff --git a/test/polygonStaking/polygon-strategy.test.ts b/test/polygonStaking/polygon-strategy.test.ts index 64b6cac7..bd270bbe 100644 --- a/test/polygonStaking/polygon-strategy.test.ts +++ b/test/polygonStaking/polygon-strategy.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -8,17 +7,20 @@ import { setupToken, fromEther, deployImplementation, + getConnection, } from '../utils/helpers' -import { - ERC20, +import type { + ERC20Mintable, PolygonStakeManagerMock, PolygonStrategy, PolygonValidatorShareMock, StakingPool, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' import { Interface } from 'ethers' +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time + const withdrawalDelay = 86400 describe('PolygonStrategy', () => { @@ -29,7 +31,7 @@ describe('PolygonStrategy', () => { 'Polygon', 'POL', 1000000000, - ])) as ERC20 + ])) as ERC20Mintable await setupToken(token, accounts) const stakeManager = (await deploy('PolygonStakeManagerMock', [ @@ -541,7 +543,7 @@ describe('PolygonStrategy', () => { assert.equal(fromEther(data.depositChange), 100) assert.deepEqual(data.receivers, [accounts[5], accounts[6]]) assert.deepEqual( - data.amounts.map((v) => fromEther(v)), + data.amounts.map((v: bigint) => fromEther(v)), [1, 4] ) @@ -551,7 +553,7 @@ describe('PolygonStrategy', () => { assert.equal(fromEther(data.depositChange), 200) assert.deepEqual(data.receivers, [accounts[5], accounts[6], mevRewardsPool.target]) assert.deepEqual( - data.amounts.map((v) => fromEther(v)), + data.amounts.map((v: bigint) => fromEther(v)), [2, 8, 25] ) diff --git a/test/polygonStaking/polygon-vault.test.ts b/test/polygonStaking/polygon-vault.test.ts index 76eb8701..13631e0c 100644 --- a/test/polygonStaking/polygon-vault.test.ts +++ b/test/polygonStaking/polygon-vault.test.ts @@ -1,4 +1,3 @@ -import { ethers } from 'hardhat' import { assert, expect } from 'chai' import { toEther, @@ -7,14 +6,17 @@ import { getAccounts, setupToken, fromEther, + getConnection, } from '../utils/helpers' -import { - ERC20, +import type { + ERC20Mintable, PolygonStakeManagerMock, PolygonValidatorShareMock, PolygonVault, -} from '../../typechain-types' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' +} from '../../types/ethers-contracts' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const withdrawalDelay = 86400 @@ -26,7 +28,7 @@ describe('PolygonVault', () => { 'Polygon', 'POL', 1000000000, - ])) as ERC20 + ])) as ERC20Mintable await setupToken(token, accounts) const stakeManager = (await deploy('PolygonStakeManagerMock', [ @@ -98,7 +100,7 @@ describe('PolygonVault', () => { assert.equal(fromEther(await vault.getRewards()), 50) assert.equal(fromEther(await vault.getTotalDeposits()), 200) - let preBalance = await token.balanceOf(accounts[0]) + let preBalance: bigint = await token.balanceOf(accounts[0]) await vault.withdrawRewards(false) @@ -129,7 +131,7 @@ describe('PolygonVault', () => { assert.equal(await vault.isWithdrawable(), false) assert.equal(fromEther(await vault.getQueuedWithdrawals()), 0) - let preBalance = await token.balanceOf(accounts[0]) + let preBalance: bigint = await token.balanceOf(accounts[0]) await vault.unbond(toEther(30)) @@ -163,7 +165,7 @@ describe('PolygonVault', () => { it('withdraw should work correctly', async () => { const { vault, validatorShare, token, accounts } = await loadFixture(deployFixture) - const preBalance = await token.balanceOf(accounts[0]) + const preBalance: bigint = await token.balanceOf(accounts[0]) await vault.deposit(toEther(100)) await validatorShare.addReward(vault.target, toEther(50)) diff --git a/test/utils/helpers.ts b/test/utils/helpers.ts index 1c0a0fbb..64621b8c 100644 --- a/test/utils/helpers.ts +++ b/test/utils/helpers.ts @@ -1,11 +1,27 @@ -import { ethers, upgrades } from 'hardhat' +import hre, { network } from 'hardhat' +import { upgrades } from '@openzeppelin/hardhat-upgrades' +import { parseEther, formatEther } from 'ethers' + +const connection = await network.connect('hardhat') +const ethers = (connection as any).ethers +const loadFixture = (connection as any).networkHelpers.loadFixture +const networkHelpers = (connection as any).networkHelpers +const upgradesApi = await upgrades(hre, connection) + +export const getConnection = () => ({ + connection, + ethers, + loadFixture, + networkHelpers, + upgradesApi, +}) export const toEther = (amount: string | number) => { - return ethers.parseEther(amount.toString()) + return parseEther(amount.toString()) } export const fromEther = (amount: bigint) => { - return Number(ethers.formatEther(amount)) + return Number(formatEther(amount)) } export const deploy = async (contractName: string, args: any[] = []) => { @@ -17,19 +33,25 @@ export const attach = async (contractName: string, contractAddress: string) => { return Contract.attach(contractAddress) } -export const deployUpgradeable = async (contractName: string, args: any[] = [], options = {}) => { - const Contract = await ethers.getContractFactory(contractName) - return upgrades.deployProxy(Contract, args, { kind: 'uups', ...options }) as any +export const deployUpgradeable = async (contractName: string, args: any[] = [], opts: any = {}) => { + const Implementation = await ethers.getContractFactory(contractName) + const mergedOpts = { + ...opts, + unsafeAllow: [...(opts.unsafeAllow ?? []), 'missing-initializer-call'], + } + return upgradesApi.deployProxy(Implementation, args, mergedOpts) as any } export const deployImplementation = async (contractName: string) => { const Contract = await ethers.getContractFactory(contractName) - return upgrades.deployImplementation(Contract, { kind: 'uups' }) + const implementation = await Contract.deploy() + await implementation.waitForDeployment() + return implementation.getAddress() } export const getAccounts = async () => { const signers = await ethers.getSigners() - const accounts = await Promise.all(signers.map(async (signer) => signer.getAddress())) + const accounts = await Promise.all(signers.map(async (signer: any) => signer.getAddress())) return { signers, accounts } } diff --git a/test/vesting/sdl-vesting.test.ts b/test/vesting/sdl-vesting.test.ts index 4d0fed51..c58dba29 100644 --- a/test/vesting/sdl-vesting.test.ts +++ b/test/vesting/sdl-vesting.test.ts @@ -1,15 +1,23 @@ -import { toEther, deploy, getAccounts, fromEther, deployUpgradeable } from '../utils/helpers' import { + toEther, + deploy, + getAccounts, + fromEther, + deployUpgradeable, + getConnection, +} from '../utils/helpers' +import type { LinearBoostController, RewardsPool, SDLPool, SDLVesting, StakingAllowance, ERC677, -} from '../../typechain-types' +} from '../../types/ethers-contracts' import { assert, expect } from 'chai' -import { loadFixture, time } from '@nomicfoundation/hardhat-network-helpers' -import { ethers } from 'hardhat' + +const { ethers, loadFixture, networkHelpers } = getConnection() +const time = networkHelpers.time const DAY = 86400 @@ -117,7 +125,7 @@ describe('SDLVesting', () => { assert.equal(fromEther(await vesting.releasable()), 0) assert.equal(fromEther(await sdlPool.effectiveBalanceOf(vesting.target)), 200) assert.deepEqual( - (await vesting.getRESDLPositions()).map((d) => [ + (await vesting.getRESDLPositions()).map((d: any) => [ fromEther(d[0]), fromEther(d[1]), Number(d[2]), @@ -142,7 +150,7 @@ describe('SDLVesting', () => { assert.equal(fromEther(await vesting.releasable()), 0) assert.equal(fromEther(await sdlPool.effectiveBalanceOf(vesting.target)), 400) assert.deepEqual( - (await vesting.getRESDLPositions()).map((d) => [ + (await vesting.getRESDLPositions()).map((d: any) => [ fromEther(d[0]), fromEther(d[1]), Number(d[2]), @@ -167,7 +175,7 @@ describe('SDLVesting', () => { assert.equal(fromEther(await vesting.releasable()), 0) assert.equal(fromEther(await sdlPool.effectiveBalanceOf(vesting.target)), 1200) assert.deepEqual( - (await vesting.getRESDLPositions()).map((d) => [ + (await vesting.getRESDLPositions()).map((d: any) => [ fromEther(d[0]), fromEther(d[1]), Number(d[2]), @@ -245,7 +253,7 @@ describe('SDLVesting', () => { await vesting.connect(signers[1]).withdrawRESDLPositions([1, 2]) assert.deepEqual( - (await vesting.getRESDLPositions()).map((d) => [ + (await vesting.getRESDLPositions()).map((d: any) => [ fromEther(d[0]), fromEther(d[1]), Number(d[2]), diff --git a/tsconfig.json b/tsconfig.json index 855db29a..ed5dbc4e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,8 @@ { "compilerOptions": { "target": "es2020", - "module": "commonjs", + "module": "esnext", + "moduleResolution": "bundler", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, diff --git a/yarn.lock b/yarn.lock index 36fd4252..8420c0a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,6 +23,28 @@ patch-package "^6.4.7" solady "0.0.182" +"@aws-crypto/crc32@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" + integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/sha256-browser@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" + integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== + dependencies: + "@aws-crypto/sha256-js" "^5.2.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + "@aws-crypto/sha256-js@1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" @@ -32,6 +54,22 @@ "@aws-sdk/types" "^3.1.0" tslib "^1.11.1" +"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" + integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/supports-web-crypto@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" + integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== + dependencies: + tslib "^2.6.2" + "@aws-crypto/util@^1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-1.2.2.tgz#b28f7897730eb6538b21c18bd4de22d0ea09003c" @@ -41,12 +79,413 @@ "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/types@^3.1.0": - version "3.598.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.598.0.tgz#b840d2446dee19a2a4731e6166f2327915d846db" - integrity sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ== +"@aws-crypto/util@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" + integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-lambda@^3.563.0": + version "3.991.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-lambda/-/client-lambda-3.991.0.tgz#339817350e2a3b54ccee10fdf6a7981d6e22376c" + integrity sha512-fiJbkZZExQwdtH2WEd+up02/En7ASd9PcKpS7aceysp+nyU2LZaf3dAUBaM+EsbtuhsUny2AHdDPtbfwqJnhCw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/credential-provider-node" "^3.972.9" + "@aws-sdk/middleware-host-header" "^3.972.3" + "@aws-sdk/middleware-logger" "^3.972.3" + "@aws-sdk/middleware-recursion-detection" "^3.972.3" + "@aws-sdk/middleware-user-agent" "^3.972.10" + "@aws-sdk/region-config-resolver" "^3.972.3" + "@aws-sdk/types" "^3.973.1" + "@aws-sdk/util-endpoints" "3.991.0" + "@aws-sdk/util-user-agent-browser" "^3.972.3" + "@aws-sdk/util-user-agent-node" "^3.972.8" + "@smithy/config-resolver" "^4.4.6" + "@smithy/core" "^3.23.0" + "@smithy/eventstream-serde-browser" "^4.2.8" + "@smithy/eventstream-serde-config-resolver" "^4.3.8" + "@smithy/eventstream-serde-node" "^4.2.8" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/hash-node" "^4.2.8" + "@smithy/invalid-dependency" "^4.2.8" + "@smithy/middleware-content-length" "^4.2.8" + "@smithy/middleware-endpoint" "^4.4.14" + "@smithy/middleware-retry" "^4.4.31" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/node-http-handler" "^4.4.10" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.11.3" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.30" + "@smithy/util-defaults-mode-node" "^4.2.33" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" + "@smithy/util-stream" "^4.5.12" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.8" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.990.0": + version "3.990.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.990.0.tgz#a5471e810b848f740e5c6a8abe90eb2304670c8b" + integrity sha512-xTEaPjZwOqVjGbLOP7qzwbdOWJOo1ne2mUhTZwEBBkPvNk4aXB/vcYwWwrjoSWUqtit4+GDbO75ePc/S6TUJYQ== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/middleware-host-header" "^3.972.3" + "@aws-sdk/middleware-logger" "^3.972.3" + "@aws-sdk/middleware-recursion-detection" "^3.972.3" + "@aws-sdk/middleware-user-agent" "^3.972.10" + "@aws-sdk/region-config-resolver" "^3.972.3" + "@aws-sdk/types" "^3.973.1" + "@aws-sdk/util-endpoints" "3.990.0" + "@aws-sdk/util-user-agent-browser" "^3.972.3" + "@aws-sdk/util-user-agent-node" "^3.972.8" + "@smithy/config-resolver" "^4.4.6" + "@smithy/core" "^3.23.0" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/hash-node" "^4.2.8" + "@smithy/invalid-dependency" "^4.2.8" + "@smithy/middleware-content-length" "^4.2.8" + "@smithy/middleware-endpoint" "^4.4.14" + "@smithy/middleware-retry" "^4.4.31" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/node-http-handler" "^4.4.10" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.11.3" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.30" + "@smithy/util-defaults-mode-node" "^4.2.33" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/core@^3.973.10": + version "3.973.10" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.973.10.tgz#a8fb3cfe28dfa880b7f669e4696caa6af1e86172" + integrity sha512-4u/FbyyT3JqzfsESI70iFg6e2yp87MB5kS2qcxIA66m52VSTN1fvuvbCY1h/LKq1LvuxIrlJ1ItcyjvcKoaPLg== + dependencies: + "@aws-sdk/types" "^3.973.1" + "@aws-sdk/xml-builder" "^3.972.4" + "@smithy/core" "^3.23.0" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/signature-v4" "^5.3.8" + "@smithy/smithy-client" "^4.11.3" + "@smithy/types" "^4.12.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@^3.972.8": + version "3.972.8" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.8.tgz#0cab351881dc326d7d078156d9f115f08b6423b5" + integrity sha512-r91OOPAcHnLCSxaeu/lzZAVRCZ/CtTNuwmJkUwpwSDshUrP7bkX1OmFn2nUMWd9kN53Q4cEo8b7226G4olt2Mg== + dependencies: + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/types" "^3.973.1" + "@smithy/property-provider" "^4.2.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@^3.972.10": + version "3.972.10" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.10.tgz#d8c35c12da06f2392d6a5d4940782e087d557839" + integrity sha512-DTtuyXSWB+KetzLcWaSahLJCtTUe/3SXtlGp4ik9PCe9xD6swHEkG8n8/BNsQ9dsihb9nhFvuUB4DpdBGDcvVg== + dependencies: + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/types" "^3.973.1" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/node-http-handler" "^4.4.10" + "@smithy/property-provider" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.11.3" + "@smithy/types" "^4.12.0" + "@smithy/util-stream" "^4.5.12" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@^3.972.8": + version "3.972.8" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.8.tgz#2e9dbc3feabd04fff2953029834f2be7abca879c" + integrity sha512-n2dMn21gvbBIEh00E8Nb+j01U/9rSqFIamWRdGm/mE5e+vHQ9g0cBNdrYFlM6AAiryKVHZmShWT9D1JAWJ3ISw== + dependencies: + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/credential-provider-env" "^3.972.8" + "@aws-sdk/credential-provider-http" "^3.972.10" + "@aws-sdk/credential-provider-login" "^3.972.8" + "@aws-sdk/credential-provider-process" "^3.972.8" + "@aws-sdk/credential-provider-sso" "^3.972.8" + "@aws-sdk/credential-provider-web-identity" "^3.972.8" + "@aws-sdk/nested-clients" "3.990.0" + "@aws-sdk/types" "^3.973.1" + "@smithy/credential-provider-imds" "^4.2.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-login@^3.972.8": + version "3.972.8" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.8.tgz#3f0c0dc8b49f525bed1c318b675a799be01ca686" + integrity sha512-rMFuVids8ICge/X9DF5pRdGMIvkVhDV9IQFQ8aTYk6iF0rl9jOUa1C3kjepxiXUlpgJQT++sLZkT9n0TMLHhQw== + dependencies: + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/nested-clients" "3.990.0" + "@aws-sdk/types" "^3.973.1" + "@smithy/property-provider" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@^3.972.9": + version "3.972.9" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.9.tgz#c92158aab359787eedd64d83931c35a0a00f6072" + integrity sha512-LfJfO0ClRAq2WsSnA9JuUsNyIicD2eyputxSlSL0EiMrtxOxELLRG6ZVYDf/a1HCepaYPXeakH4y8D5OLCauag== + dependencies: + "@aws-sdk/credential-provider-env" "^3.972.8" + "@aws-sdk/credential-provider-http" "^3.972.10" + "@aws-sdk/credential-provider-ini" "^3.972.8" + "@aws-sdk/credential-provider-process" "^3.972.8" + "@aws-sdk/credential-provider-sso" "^3.972.8" + "@aws-sdk/credential-provider-web-identity" "^3.972.8" + "@aws-sdk/types" "^3.973.1" + "@smithy/credential-provider-imds" "^4.2.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@^3.972.8": + version "3.972.8" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.8.tgz#99c14367e33880b2c6f88b1417bd92fc6f390043" + integrity sha512-6cg26ffFltxM51OOS8NH7oE41EccaYiNlbd5VgUYwhiGCySLfHoGuGrLm2rMB4zhy+IO5nWIIG0HiodX8zdvHA== + dependencies: + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/types" "^3.973.1" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@^3.972.8": + version "3.972.8" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.8.tgz#aad4174425cae4535db2456f85b6c1315544f2a3" + integrity sha512-35kqmFOVU1n26SNv+U37sM8b2TzG8LyqAcd6iM9gprqxyHEh/8IM3gzN4Jzufs3qM6IrH8e43ryZWYdvfVzzKQ== + dependencies: + "@aws-sdk/client-sso" "3.990.0" + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/token-providers" "3.990.0" + "@aws-sdk/types" "^3.973.1" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@^3.972.8": + version "3.972.8" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.8.tgz#b662e6a234fb0b169760857236bbb2916396a674" + integrity sha512-CZhN1bOc1J3ubQPqbmr5b4KaMJBgdDvYsmEIZuX++wFlzmZsKj1bwkaiTEb5U2V7kXuzLlpF5HJSOM9eY/6nGA== + dependencies: + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/nested-clients" "3.990.0" + "@aws-sdk/types" "^3.973.1" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@^3.972.3": + version "3.972.3" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.3.tgz#47c161dec62d89c66c89f4d17ff4434021e04af5" + integrity sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA== + dependencies: + "@aws-sdk/types" "^3.973.1" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@^3.972.3": + version "3.972.3" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.972.3.tgz#ef1afd4a0b70fe72cf5f7c817f82da9f35c7e836" + integrity sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA== + dependencies: + "@aws-sdk/types" "^3.973.1" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@^3.972.3": + version "3.972.3" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.3.tgz#5b95dcecff76a0d2963bd954bdef87700d1b1c8c" + integrity sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q== + dependencies: + "@aws-sdk/types" "^3.973.1" + "@aws/lambda-invoke-store" "^0.2.2" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@^3.972.10": + version "3.972.10" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.10.tgz#0efb74242de786087de289677a2d2a3a9895f182" + integrity sha512-bBEL8CAqPQkI91ZM5a9xnFAzedpzH6NYCOtNyLarRAzTUTFN2DKqaC60ugBa7pnU1jSi4mA7WAXBsrod7nJltg== + dependencies: + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/types" "^3.973.1" + "@aws-sdk/util-endpoints" "3.990.0" + "@smithy/core" "^3.23.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/nested-clients@3.990.0": + version "3.990.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.990.0.tgz#8e1b35231e98b35b23e6dff1e71256993819a422" + integrity sha512-3NA0s66vsy8g7hPh36ZsUgO4SiMyrhwcYvuuNK1PezO52vX3hXDW4pQrC6OQLGKGJV0o6tbEyQtXb/mPs8zg8w== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/middleware-host-header" "^3.972.3" + "@aws-sdk/middleware-logger" "^3.972.3" + "@aws-sdk/middleware-recursion-detection" "^3.972.3" + "@aws-sdk/middleware-user-agent" "^3.972.10" + "@aws-sdk/region-config-resolver" "^3.972.3" + "@aws-sdk/types" "^3.973.1" + "@aws-sdk/util-endpoints" "3.990.0" + "@aws-sdk/util-user-agent-browser" "^3.972.3" + "@aws-sdk/util-user-agent-node" "^3.972.8" + "@smithy/config-resolver" "^4.4.6" + "@smithy/core" "^3.23.0" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/hash-node" "^4.2.8" + "@smithy/invalid-dependency" "^4.2.8" + "@smithy/middleware-content-length" "^4.2.8" + "@smithy/middleware-endpoint" "^4.4.14" + "@smithy/middleware-retry" "^4.4.31" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/node-http-handler" "^4.4.10" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.11.3" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.30" + "@smithy/util-defaults-mode-node" "^4.2.33" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@^3.972.3": + version "3.972.3" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.3.tgz#25af64235ca6f4b6b21f85d4b3c0b432efc4ae04" + integrity sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow== + dependencies: + "@aws-sdk/types" "^3.973.1" + "@smithy/config-resolver" "^4.4.6" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.990.0": + version "3.990.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.990.0.tgz#045b21339258f1c7b3f1b8dedc475a8cc3842d68" + integrity sha512-L3BtUb2v9XmYgQdfGBzbBtKMXaP5fV973y3Qdxeevs6oUTVXFmi/mV1+LnScA/1wVPJC9/hlK+1o5vbt7cG7EQ== + dependencies: + "@aws-sdk/core" "^3.973.10" + "@aws-sdk/nested-clients" "3.990.0" + "@aws-sdk/types" "^3.973.1" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.222.0", "@aws-sdk/types@^3.973.1": + version "3.973.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.973.1.tgz#1b2992ec6c8380c3e74c9bd2c74703e9a807d6e0" + integrity sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.990.0": + version "3.990.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.990.0.tgz#3c78424f2ea48a1bba5e8fa5bf0d8f205c0675ce" + integrity sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg== dependencies: - "@smithy/types" "^3.1.0" + "@aws-sdk/types" "^3.973.1" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + "@smithy/util-endpoints" "^3.2.8" + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.991.0": + version "3.991.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.991.0.tgz#1cfbe3f4bf1785f2b711bf4bee2917a7bedb9308" + integrity sha512-m8tcZ3SbqG3NRDv0Py3iBKdb4/FlpOCP4CQ6wRtsk4vs3UypZ0nFdZwCRVnTN7j+ldj+V72xVi/JBlxFBDE7Sg== + dependencies: + "@aws-sdk/types" "^3.973.1" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + "@smithy/util-endpoints" "^3.2.8" + tslib "^2.6.2" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.965.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.965.4.tgz#f62d279e1905f6939b6dffb0f76ab925440f72bf" + integrity sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-browser@^3.972.3": + version "3.972.3" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.3.tgz#1363b388cb3af86c5322ef752c0cf8d7d25efa8a" + integrity sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw== + dependencies: + "@aws-sdk/types" "^3.973.1" + "@smithy/types" "^4.12.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-node@^3.972.8": + version "3.972.8" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.8.tgz#c79f71cf1149501cc898862e3c350be601c9a0f8" + integrity sha512-XJZuT0LWsFCW1C8dEpPAXSa7h6Pb3krr2y//1X0Zidpcl0vmgY5nL/X0JuBZlntpBzaN3+U4hvKjuijyiiR8zw== + dependencies: + "@aws-sdk/middleware-user-agent" "^3.972.10" + "@aws-sdk/types" "^3.973.1" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" "@aws-sdk/util-utf8-browser@^3.0.0": @@ -56,6 +495,20 @@ dependencies: tslib "^2.3.1" +"@aws-sdk/xml-builder@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.4.tgz#8115c8cf90c71cf484a52c82eac5344cd3a5e921" + integrity sha512-0zJ05ANfYqI6+rGqj8samZBFod0dPPousBjLEqg8WdxSgbMAkRgLyn81lP215Do0rFJ/17LIXwr7q0yK24mP6Q== + dependencies: + "@smithy/types" "^4.12.0" + fast-xml-parser "5.3.4" + tslib "^2.6.2" + +"@aws/lambda-invoke-store@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz#f1137f56209ccc69c15f826242cbf37f828617dd" + integrity sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw== + "@babel/code-frame@^7.0.0": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" @@ -64,11 +517,25 @@ "@babel/highlight" "^7.24.7" picocolors "^1.0.0" +"@babel/code-frame@^7.27.1": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c" + integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw== + dependencies: + "@babel/helper-validator-identifier" "^7.28.5" + js-tokens "^4.0.0" + picocolors "^1.1.1" + "@babel/helper-validator-identifier@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + "@babel/highlight@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" @@ -91,6 +558,11 @@ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.2.tgz#2ae5a9d51cc583bd1f5673b3bb70d6d819682473" integrity sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA== +"@bytecodealliance/preview2-shim@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@bytecodealliance/preview2-shim/-/preview2-shim-0.17.0.tgz#9bc1cadbb9f86c446c6f579d3431c08a06a6672e" + integrity sha512-JorcEwe4ud0x5BS/Ar2aQWOQoFzjq/7jcnxYXCvSMh0oRm0dQXzOA+hqLDBnOMks1LLBA7dmiLLsEBl09Yd6iQ== + "@chainlink/contracts-ccip@^1.6.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@chainlink/contracts-ccip/-/contracts-ccip-1.6.0.tgz#974d28527e0ff1a8f810fe5c1f658f080db9de91" @@ -361,6 +833,136 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@esbuild/aix-ppc64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz#521cbd968dcf362094034947f76fa1b18d2d403c" + integrity sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw== + +"@esbuild/android-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz#61ea550962d8aa12a9b33194394e007657a6df57" + integrity sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA== + +"@esbuild/android-arm@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.2.tgz#554887821e009dd6d853f972fde6c5143f1de142" + integrity sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA== + +"@esbuild/android-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.2.tgz#a7ce9d0721825fc578f9292a76d9e53334480ba2" + integrity sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A== + +"@esbuild/darwin-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz#2cb7659bd5d109803c593cfc414450d5430c8256" + integrity sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg== + +"@esbuild/darwin-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz#e741fa6b1abb0cd0364126ba34ca17fd5e7bf509" + integrity sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA== + +"@esbuild/freebsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz#2b64e7116865ca172d4ce034114c21f3c93e397c" + integrity sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g== + +"@esbuild/freebsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz#e5252551e66f499e4934efb611812f3820e990bb" + integrity sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA== + +"@esbuild/linux-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz#dc4acf235531cd6984f5d6c3b13dbfb7ddb303cb" + integrity sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw== + +"@esbuild/linux-arm@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz#56a900e39240d7d5d1d273bc053daa295c92e322" + integrity sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw== + +"@esbuild/linux-ia32@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz#d4a36d473360f6870efcd19d52bbfff59a2ed1cc" + integrity sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w== + +"@esbuild/linux-loong64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz#fcf0ab8c3eaaf45891d0195d4961cb18b579716a" + integrity sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg== + +"@esbuild/linux-mips64el@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz#598b67d34048bb7ee1901cb12e2a0a434c381c10" + integrity sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw== + +"@esbuild/linux-ppc64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz#3846c5df6b2016dab9bc95dde26c40f11e43b4c0" + integrity sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ== + +"@esbuild/linux-riscv64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz#173d4475b37c8d2c3e1707e068c174bb3f53d07d" + integrity sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA== + +"@esbuild/linux-s390x@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz#f7a4790105edcab8a5a31df26fbfac1aa3dacfab" + integrity sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w== + +"@esbuild/linux-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz#2ecc1284b1904aeb41e54c9ddc7fcd349b18f650" + integrity sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA== + +"@esbuild/netbsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz#e2863c2cd1501845995cb11adf26f7fe4be527b0" + integrity sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw== + +"@esbuild/netbsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz#93f7609e2885d1c0b5a1417885fba8d1fcc41272" + integrity sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA== + +"@esbuild/openbsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz#a1985604a203cdc325fd47542e106fafd698f02e" + integrity sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA== + +"@esbuild/openbsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz#8209e46c42f1ffbe6e4ef77a32e1f47d404ad42a" + integrity sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg== + +"@esbuild/openharmony-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz#8fade4441893d9cc44cbd7dcf3776f508ab6fb2f" + integrity sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag== + +"@esbuild/sunos-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz#980d4b9703a16f0f07016632424fc6d9a789dfc2" + integrity sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg== + +"@esbuild/win32-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz#1c09a3633c949ead3d808ba37276883e71f6111a" + integrity sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg== + +"@esbuild/win32-ia32@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz#1b1e3a63ad4bef82200fef4e369e0fff7009eee5" + integrity sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ== + +"@esbuild/win32-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz#9e585ab6086bef994c6e8a5b3a0481219ada862b" + integrity sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ== + "@eth-optimism/contracts@0.6.0": version "0.6.0" resolved "https://registry.yarnpkg.com/@eth-optimism/contracts/-/contracts-0.6.0.tgz#15ae76222a9b4d958a550cafb1960923af613a31" @@ -392,21 +994,7 @@ bufio "^1.0.7" chai "^4.3.4" -"@ethereumjs/rlp@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" - integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== - -"@ethereumjs/util@^8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" - integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== - dependencies: - "@ethereumjs/rlp" "^4.0.1" - ethereum-cryptography "^2.0.0" - micro-ftch "^0.3.1" - -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.9", "@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.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -421,7 +1009,22 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abi@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.8.0.tgz#e79bb51940ac35fe6f3262d7fe2cdb25ad5f07d9" + integrity sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q== + dependencies: + "@ethersproject/address" "^5.8.0" + "@ethersproject/bignumber" "^5.8.0" + "@ethersproject/bytes" "^5.8.0" + "@ethersproject/constants" "^5.8.0" + "@ethersproject/hash" "^5.8.0" + "@ethersproject/keccak256" "^5.8.0" + "@ethersproject/logger" "^5.8.0" + "@ethersproject/properties" "^5.8.0" + "@ethersproject/strings" "^5.8.0" + +"@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -434,7 +1037,20 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-provider@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz#7581f9be601afa1d02b95d26b9d9840926a35b0c" + integrity sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg== + dependencies: + "@ethersproject/bignumber" "^5.8.0" + "@ethersproject/bytes" "^5.8.0" + "@ethersproject/logger" "^5.8.0" + "@ethersproject/networks" "^5.8.0" + "@ethersproject/properties" "^5.8.0" + "@ethersproject/transactions" "^5.8.0" + "@ethersproject/web" "^5.8.0" + +"@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -445,18 +1061,18 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.1.tgz#ab57818d9aefee919c5721d28cd31fd95eff413d" - integrity sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q== +"@ethersproject/abstract-signer@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz#8d7417e95e4094c1797a9762e6789c7356db0754" + integrity sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA== dependencies: - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/rlp" "^5.6.1" + "@ethersproject/abstract-provider" "^5.8.0" + "@ethersproject/bignumber" "^5.8.0" + "@ethersproject/bytes" "^5.8.0" + "@ethersproject/logger" "^5.8.0" + "@ethersproject/properties" "^5.8.0" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": +"@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -467,7 +1083,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/address@^5.0.2": +"@ethersproject/address@^5.8.0": version "5.8.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.8.0.tgz#3007a2c352eee566ad745dca1dbbebdb50a6a983" integrity sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA== @@ -478,14 +1094,21 @@ "@ethersproject/logger" "^5.8.0" "@ethersproject/rlp" "^5.8.0" -"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": +"@ethersproject/base64@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" 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/base64@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.8.0.tgz#61c669c648f6e6aad002c228465d52ac93ee83eb" + integrity sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ== + dependencies: + "@ethersproject/bytes" "^5.8.0" + +"@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -493,7 +1116,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -511,7 +1134,7 @@ "@ethersproject/logger" "^5.8.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== @@ -525,14 +1148,21 @@ dependencies: "@ethersproject/logger" "^5.8.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@5.7.0", "@ethersproject/contracts@^5.7.0": +"@ethersproject/constants@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.8.0.tgz#12f31c2f4317b113a4c19de94e50933648c90704" + integrity sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg== + dependencies: + "@ethersproject/bignumber" "^5.8.0" + +"@ethersproject/contracts@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== @@ -548,7 +1178,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": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -563,44 +1193,22 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" - integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" - integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== +"@ethersproject/hash@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.8.0.tgz#b8893d4629b7f8462a90102572f8cd65a0192b4c" + integrity sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA== dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - aes-js "3.0.0" - scrypt-js "3.0.1" + "@ethersproject/abstract-signer" "^5.8.0" + "@ethersproject/address" "^5.8.0" + "@ethersproject/base64" "^5.8.0" + "@ethersproject/bignumber" "^5.8.0" + "@ethersproject/bytes" "^5.8.0" + "@ethersproject/keccak256" "^5.8.0" + "@ethersproject/logger" "^5.8.0" + "@ethersproject/properties" "^5.8.0" + "@ethersproject/strings" "^5.8.0" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -616,7 +1224,7 @@ "@ethersproject/bytes" "^5.8.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== @@ -626,29 +1234,35 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.8.0.tgz#f0232968a4f87d29623a0481690a2732662713d6" integrity sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA== -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" - integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== +"@ethersproject/networks@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.8.0.tgz#8b4517a3139380cba9fb00b63ffad0a979671fde" + integrity sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg== dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" + "@ethersproject/logger" "^5.8.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.0": +"@ethersproject/properties@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.8.0.tgz#405a8affb6311a49a91dabd96aeeae24f477020e" + integrity sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw== + dependencies: + "@ethersproject/logger" "^5.8.0" + +"@ethersproject/providers@^5.7.0": version "5.7.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -674,7 +1288,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": +"@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -682,7 +1296,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.5.0", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== @@ -698,7 +1312,7 @@ "@ethersproject/bytes" "^5.8.0" "@ethersproject/logger" "^5.8.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -707,7 +1321,7 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@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.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== @@ -719,19 +1333,19 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" - integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== +"@ethersproject/signing-key@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.8.0.tgz#9797e02c717b68239c6349394ea85febf8893119" + integrity sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w== dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" + "@ethersproject/bytes" "^5.8.0" + "@ethersproject/logger" "^5.8.0" + "@ethersproject/properties" "^5.8.0" + bn.js "^5.2.1" + elliptic "6.6.1" + hash.js "1.1.7" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -740,7 +1354,16 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": +"@ethersproject/strings@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.8.0.tgz#ad79fafbf0bd272d9765603215ac74fd7953908f" + integrity sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg== + dependencies: + "@ethersproject/bytes" "^5.8.0" + "@ethersproject/constants" "^5.8.0" + "@ethersproject/logger" "^5.8.0" + +"@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -755,37 +1378,22 @@ "@ethersproject/rlp" "^5.7.0" "@ethersproject/signing-key" "^5.7.0" -"@ethersproject/units@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" - integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/wallet@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" - integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== +"@ethersproject/transactions@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.8.0.tgz#1e518822403abc99def5a043d1c6f6fe0007e46b" + integrity sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg== dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^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/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" + "@ethersproject/address" "^5.8.0" + "@ethersproject/bignumber" "^5.8.0" + "@ethersproject/bytes" "^5.8.0" + "@ethersproject/constants" "^5.8.0" + "@ethersproject/keccak256" "^5.8.0" + "@ethersproject/logger" "^5.8.0" + "@ethersproject/properties" "^5.8.0" + "@ethersproject/rlp" "^5.8.0" + "@ethersproject/signing-key" "^5.8.0" -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -796,21 +1404,33 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" - integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== +"@ethersproject/web@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.8.0.tgz#3e54badc0013b7a801463a7008a87988efce8a37" + integrity sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw== dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" + "@ethersproject/base64" "^5.8.0" + "@ethersproject/bytes" "^5.8.0" + "@ethersproject/logger" "^5.8.0" + "@ethersproject/properties" "^5.8.0" + "@ethersproject/strings" "^5.8.0" -"@fastify/busboy@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" - integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== +"@humanwhocodes/momoa@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/momoa/-/momoa-2.0.4.tgz#8b9e7a629651d15009c3587d07a222deeb829385" + integrity sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@jridgewell/resolve-uri@^3.0.3": version "3.1.2" @@ -830,114 +1450,167 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@ledgerhq/cryptoassets@^9.8.0": - version "9.13.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/cryptoassets/-/cryptoassets-9.13.0.tgz#04e3a7d485754d1899fbd09f7542f761c1c7e9da" - integrity sha512-MzGJyc48OGU/FLYGYwEJyfOgbJzlR8XJ9Oo6XpNpNUM1/E5NDqvD72V0D+0uWIJYN3e2NtyqHXShLZDu7P95YA== - dependencies: - invariant "2" - -"@ledgerhq/devices@^8.4.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.4.0.tgz#f3a03576d4a53d731bdaa212a00bd0adbfb86fb1" - integrity sha512-TUrMlWZJ+5AFp2lWMw4rGQoU+WtjIqlFX5SzQDL9phaUHrt4TFierAGHsaj5+tUHudhD4JhIaLI2cn1NOyq5NQ== - dependencies: - "@ledgerhq/errors" "^6.17.0" - "@ledgerhq/logs" "^6.12.0" +"@ledgerhq/client-ids@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/client-ids/-/client-ids-0.4.1.tgz#b9f4e1fa88d4b6995894df9e2ede982a82a3ff4b" + integrity sha512-DtHihOe1QALwv90sOzNfvSKqgUFYJhajMEeaOMkTEBzW3B5Vwe8AUn22atryjH+5Zop/cdjFcrDOAepfMQzHOQ== + dependencies: + "@ledgerhq/live-env" "^2.26.0" + "@reduxjs/toolkit" "2.8.2" + uuid "^9.0.0" + +"@ledgerhq/cryptoassets-evm-signatures@^13.7.1": + version "13.7.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/cryptoassets-evm-signatures/-/cryptoassets-evm-signatures-13.7.1.tgz#d6a760babe77e9ba29b10e1b48af63eacfe50496" + integrity sha512-ehLn62L15fOlTH6u5D1eV1d4/QIju6aaUKWy7CpVLSiRmkWEBaORhOL/l9TvBrRIvNLHVBQEhiBaJcJ4hGrlEw== + dependencies: + "@ledgerhq/live-env" "^2.21.0" + axios "1.12.2" + +"@ledgerhq/devices@8.10.0": + version "8.10.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.10.0.tgz#25200ca7931c43e32c2c4037b95f1b5569f1f6e1" + integrity sha512-ytT66KI8MizFX6dGJKthOzPDw5uNRmmg+RaMta62jbFePKYqfXtYTp6Wc0ErTXaL8nFS3IujHENwKthPmsj6jw== + dependencies: + "@ledgerhq/errors" "^6.29.0" + "@ledgerhq/logs" "^6.14.0" + rxjs "7.8.2" + semver "7.7.3" + +"@ledgerhq/devices@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.7.0.tgz#39e011c484c4251c92769f92cf8c23b8a0b4ce39" + integrity sha512-3pSOULPUhClk2oOxa6UnoyXW8+05FK7r6cpq2WiTey4kyIUjmIraO7AX9lhz9IU73dGVtBMdU+NCPPO2RYJaTQ== + dependencies: + "@ledgerhq/errors" "^6.27.0" + "@ledgerhq/logs" "^6.13.0" rxjs "^7.8.1" semver "^7.3.5" -"@ledgerhq/domain-service@^1.1.4": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/domain-service/-/domain-service-1.2.0.tgz#50722fd27fbbb7dc9c313b36a8b9114b6ac76fd6" - integrity sha512-+3xjhMSNJf6/fxnO/ugmSQ4qutMhX2iGy2AAENJRQBeEp8TC08cyObZ+cr81b1UiBN8DpTCm4m0QjTCp/S69bw== +"@ledgerhq/domain-service@^1.4.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/domain-service/-/domain-service-1.6.1.tgz#85139e3546cd51598ea96a992a73eec83f042eda" + integrity sha512-tQ/WhMkWKgC77CHQ6W4AuizyOm2mNagHkvx8g3AF68WXehfXRed6g9+5HTDwl0XBGqixPSPHrYkm5ZanbAyOjg== dependencies: - "@ledgerhq/errors" "^6.17.0" - "@ledgerhq/logs" "^6.12.0" - "@ledgerhq/types-live" "^6.48.0" - axios "^1.3.4" + "@ledgerhq/errors" "^6.29.0" + "@ledgerhq/logs" "^6.14.0" + "@ledgerhq/types-live" "^6.94.0" + axios "1.13.2" eip55 "^2.1.1" - react "^18.2.0" - react-dom "^18.2.0" - -"@ledgerhq/errors@^6.12.6", "@ledgerhq/errors@^6.17.0": - version "6.17.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.17.0.tgz#0d56361fe6eb7de3b239e661710679f933f1fcca" - integrity sha512-xnOVpy/gUUkusEORdr2Qhw3Vd0MGfjyVGgkGR9Ck6FXE26OIdIQ3tNmG5BdZN+gwMMFJJVxxS4/hr0taQfZ43w== - -"@ledgerhq/hw-app-eth@6.33.6": - version "6.33.6" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-6.33.6.tgz#c9893ec5262952ced6d2fddfa12a87f2ccba61cc" - integrity sha512-QzYvr5FNEWWd70Vg04A2i8CY0mtPgJrrX7/KePabjXrR8NjDyJ5Ej8qSQPBTp2dkR4TGiz5Y7+HIcWpdgYzjzg== - dependencies: - "@ethersproject/abi" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ledgerhq/cryptoassets" "^9.8.0" - "@ledgerhq/domain-service" "^1.1.4" - "@ledgerhq/errors" "^6.12.6" - "@ledgerhq/hw-transport" "^6.28.4" - "@ledgerhq/hw-transport-mocker" "^6.27.15" - "@ledgerhq/logs" "^6.10.1" - axios "^1.3.4" - bignumber.js "^9.1.0" - crypto-js "^4.1.1" - -"@ledgerhq/hw-transport-mocker@^6.27.15": + react "18.3.1" + react-dom "18.3.1" + +"@ledgerhq/errors@^6.25.0", "@ledgerhq/errors@^6.27.0", "@ledgerhq/errors@^6.29.0": version "6.29.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.29.0.tgz#ab5a736817c2dfc33ac779e4153f11f208e71ff8" - integrity sha512-SbS4SvbMcpNquUsvN4Gd0bTi7ohySqIDMHFf2YLhYBRu1HviU3TG/p4zoFrJcFUiIX2/wOmUdHsWtaQFdMVGyQ== + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.29.0.tgz#0b4953eea842d7d73d27fc5bde480f7ddd403b2c" + integrity sha512-mmDsGN662zd0XGKyjzSKkg+5o1/l9pvV1HkVHtbzaydvHAtRypghmVoWMY9XAQDLXiUBXGIsLal84NgmGeuKWA== + +"@ledgerhq/evm-tools@^1.7.7", "@ledgerhq/evm-tools@^1.8.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/evm-tools/-/evm-tools-1.10.1.tgz#717a74b99ec2ed44a2fd68b535fe668c0346eb24" + integrity sha512-siPK4gpyjJ4hvdEvSjnZFF9zcheuUVTONIBEPei2A+Zd71Nzd1NjNv6aSsIhpdvsFHw7vVN97qIyszlNwIBeTg== dependencies: - "@ledgerhq/hw-transport" "^6.31.0" - "@ledgerhq/logs" "^6.12.0" - rxjs "^7.8.1" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ledgerhq/live-env" "^2.26.0" + axios "1.13.2" + crypto-js "4.2.0" -"@ledgerhq/hw-transport-node-hid-noevents@^6.30.0": - version "6.30.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.30.0.tgz#ff9df5fa1540fe75428c6f30a4f815617132093d" - integrity sha512-bKhhYF8SHBW0nh57xZMyHYCoZ3kkQnHZhlCpPJGRh3a6NDgb4wgKxVsvTzMxHAadZA357/3956/JFmddvdZqxQ== +"@ledgerhq/hw-app-eth@^6.45.19": + version "6.47.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-6.47.1.tgz#3623a30fb48ed944926716879f3b876169fc48c5" + integrity sha512-uTgXZwiEBuXoouZOzd/wi06FGyUdP8THDkzPcHfbt4hcIwiPMfRc/vrOXJtCq/LaM8nVEuf8xk+H1sAgJzPCkw== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ledgerhq/cryptoassets-evm-signatures" "^13.7.1" + "@ledgerhq/domain-service" "^1.4.1" + "@ledgerhq/errors" "^6.27.0" + "@ledgerhq/evm-tools" "^1.8.1" + "@ledgerhq/hw-transport" "6.31.13" + "@ledgerhq/hw-transport-mocker" "^6.29.13" + "@ledgerhq/logs" "^6.13.0" + "@ledgerhq/types-live" "^6.89.0" + axios "1.12.2" + bignumber.js "^9.1.2" + semver "^7.3.5" + +"@ledgerhq/hw-transport-mocker@^6.29.13": + version "6.31.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.31.0.tgz#068243d3cefb610702e315a463f1218b8c85e9a1" + integrity sha512-mgLH9I3V8BQHkxw+I0shin7C175NPkR3fF8bZyfxQKznfx4aju6hGKgsUnLYA975eW81DhoyPepwJLAMvNsSnw== dependencies: - "@ledgerhq/devices" "^8.4.0" - "@ledgerhq/errors" "^6.17.0" - "@ledgerhq/hw-transport" "^6.31.0" - "@ledgerhq/logs" "^6.12.0" - node-hid "^2.1.2" + "@ledgerhq/hw-transport" "6.32.0" + "@ledgerhq/logs" "^6.14.0" + rxjs "7.8.2" -"@ledgerhq/hw-transport-node-hid@^6.27.13": - version "6.29.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.29.0.tgz#658b8a688289719d867f6cae2ff7a230385bc75a" - integrity sha512-YZn7EfGAvZPJb6en19iiOuli5Gk9PpnAY62EvFIcTxYqMLQX4K/ZCBDc9xhXfhwMZva1In64HK353Zyq+DU9CQ== - dependencies: - "@ledgerhq/devices" "^8.4.0" - "@ledgerhq/errors" "^6.17.0" - "@ledgerhq/hw-transport" "^6.31.0" - "@ledgerhq/hw-transport-node-hid-noevents" "^6.30.0" - "@ledgerhq/logs" "^6.12.0" +"@ledgerhq/hw-transport-node-hid-noevents@^6.31.0": + version "6.31.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.31.0.tgz#4ba996ac43b591d0126c569aae17aac13ca3b345" + integrity sha512-81VnmEg/+sHtORYvwhxDibKaXeRIQiKeHj6piW6ii8WR4PoB9gXvJkEohLU5mfirpjAMbp7Br5qZ4ximyJV3nA== + dependencies: + "@ledgerhq/devices" "8.10.0" + "@ledgerhq/errors" "^6.29.0" + "@ledgerhq/hw-transport" "6.32.0" + "@ledgerhq/logs" "^6.14.0" + node-hid "2.1.2" + +"@ledgerhq/hw-transport-node-hid@^6.29.12": + version "6.30.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.30.0.tgz#fdd8eda4041c2d60e8759baa6e5ba9b8150abb71" + integrity sha512-HYaBEnb/LY/YFKVQz+DMmUKIZRUIRHvY94JhBIulXVXlPB3I0MmZBtccVVspz+RzCt1KPe61NMJSc1ebeWcOyw== + dependencies: + "@ledgerhq/devices" "8.10.0" + "@ledgerhq/errors" "^6.29.0" + "@ledgerhq/hw-transport" "6.32.0" + "@ledgerhq/hw-transport-node-hid-noevents" "^6.31.0" + "@ledgerhq/logs" "^6.14.0" lodash "^4.17.21" - node-hid "^2.1.2" + node-hid "2.1.2" usb "2.9.0" -"@ledgerhq/hw-transport@^6.28.4", "@ledgerhq/hw-transport@^6.31.0": - version "6.31.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.31.0.tgz#82d8154bbcec8dc0104009a646159190fba5ae76" - integrity sha512-BY1poLk8vlJdIYngp8Zfaa/V9n14dqgt1G7iNetVRhJVFEKp9EYONeC3x6q/N7x81LUpzBk6M+T+s46Z4UiXHw== +"@ledgerhq/hw-transport@6.31.13": + version "6.31.13" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.31.13.tgz#87e4a53bdcca257eeea6cbcc7a662c449a0cfa92" + integrity sha512-MrJRDk74wY980ofiFPRpTHQBbRw1wDuKbdag1zqlO1xtJglymwwY03K2kvBNvkm1RTSCPUp/nAoNG+WThZuuew== dependencies: - "@ledgerhq/devices" "^8.4.0" - "@ledgerhq/errors" "^6.17.0" - "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/devices" "8.7.0" + "@ledgerhq/errors" "^6.27.0" + "@ledgerhq/logs" "^6.13.0" events "^3.3.0" -"@ledgerhq/logs@^6.10.1", "@ledgerhq/logs@^6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.12.0.tgz#ad903528bf3687a44da435d7b2479d724d374f5d" - integrity sha512-ExDoj1QV5eC6TEbMdLUMMk9cfvNKhhv5gXol4SmULRVCx/3iyCPhJ74nsb3S0Vb+/f+XujBEj3vQn5+cwS0fNA== +"@ledgerhq/hw-transport@6.32.0", "@ledgerhq/hw-transport@^6.31.11": + version "6.32.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.32.0.tgz#12c6acacc7d37460a7341b0f63ae20aedd290ba7" + integrity sha512-bf2nxzDQ21DV/bsmExfWI0tatoVeoqhu/ePWalD/nPgPnTn/ZIDq7VBU+TY5p0JZaE87NQwmRUAjm6C1Exe61A== + dependencies: + "@ledgerhq/devices" "8.10.0" + "@ledgerhq/errors" "^6.29.0" + "@ledgerhq/logs" "^6.14.0" + events "^3.3.0" + +"@ledgerhq/live-env@^2.21.0", "@ledgerhq/live-env@^2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-env/-/live-env-2.26.0.tgz#b1302fc4c75aac3fef68d26093b9a0a7778233b4" + integrity sha512-KGAeS+31wy8OJmaqiYYuAh7EPBWc0nyo+t01MQYjtzAOA60Ua6trTjauNZAQ0wjXszwnqvmMpWt/wN4aHBqRMw== + dependencies: + rxjs "7.8.2" + utility-types "^3.10.0" + +"@ledgerhq/logs@^6.13.0", "@ledgerhq/logs@^6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.14.0.tgz#0f9a81d8788549a8e5da6f8e5b9938012b3517fe" + integrity sha512-kJFu1+asWQmU9XlfR1RM3lYR76wuEoPyZvkI/CNjpft78BQr3+MMf3Nu77ABzcKFnhIcmAkOLlDQ6B8L6hDXHA== -"@ledgerhq/types-live@^6.48.0": - version "6.48.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/types-live/-/types-live-6.48.0.tgz#bab902488828702395733dde02807caea9a85548" - integrity sha512-1jLkzXgWURaXso/vqNt2lvi9wJL9qA/iGMlHu4AFbmvf60ufE9KDrw6k4EzifbGXf/I+XhbuPc9kI1IGs2mZEw== +"@ledgerhq/types-live@^6.85.0", "@ledgerhq/types-live@^6.89.0", "@ledgerhq/types-live@^6.94.0": + version "6.94.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/types-live/-/types-live-6.94.0.tgz#236a36b0d0bd63b80c8ee3fc6dc748cf5666e31a" + integrity sha512-Hwe3WY8OaH7JVphkRK6+j/4F0KyxtoPZ1CBEAjp7basEMK5hc58qbJyeQCExl1t1+7LTc/5gz154YfJp+Q3K5A== dependencies: + "@ledgerhq/client-ids" "0.4.1" bignumber.js "^9.1.2" - rxjs "^7.8.1" + rxjs "7.8.2" "@manypkg/find-root@^1.1.0": version "1.1.0" @@ -961,17 +1634,6 @@ globby "^11.0.0" read-yaml-file "^1.1.0" -"@metamask/eth-sig-util@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" - integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== - dependencies: - ethereumjs-abi "^0.6.8" - ethereumjs-util "^6.2.1" - ethjs-util "^0.1.6" - tweetnacl "^1.0.3" - tweetnacl-util "^0.15.1" - "@noble/curves@1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" @@ -979,10 +1641,10 @@ dependencies: "@noble/hashes" "1.3.2" -"@noble/curves@1.4.0", "@noble/curves@~1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" - integrity sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== +"@noble/curves@1.4.2", "@noble/curves@~1.4.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.2.tgz#40309198c76ed71bc6dbf7ba24e81ceb4d0d1fe9" + integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== dependencies: "@noble/hashes" "1.4.0" @@ -993,6 +1655,13 @@ dependencies: "@noble/hashes" "1.6.0" +"@noble/curves@~1.8.1": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.8.2.tgz#8f24c037795e22b90ae29e222a856294c1d9ffc7" + integrity sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g== + dependencies: + "@noble/hashes" "1.7.2" + "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" @@ -1018,6 +1687,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.1.tgz#df6e5943edcea504bac61395926d6fd67869a0d5" integrity sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w== +"@noble/hashes@1.7.2", "@noble/hashes@~1.7.1": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.2.tgz#d53c65a21658fb02f3303e7ee3ba89d6754c64b4" + integrity sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ== + "@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": version "1.7.1" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" @@ -1044,183 +1718,182 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nomicfoundation/edr-darwin-arm64@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.8.0.tgz#70a23214a2dd2941fcb55e47bb4653514d2dae06" - integrity sha512-sKTmOu/P5YYhxT0ThN2Pe3hmCE/5Ag6K/eYoiavjLWbR7HEb5ZwPu2rC3DpuUk1H+UKJqt7o4/xIgJxqw9wu6A== +"@nomicfoundation/edr-darwin-arm64@0.12.0-next.22": + version "0.12.0-next.22" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.12.0-next.22.tgz#2033c1b49461212682fd557002feb41b68677042" + integrity sha512-TpEBSKyMZJEPvYwBPYclC2b+qobKjn1YhVa7aJ1R7RMPy5dJ/PqsrUK5UuUFFybBqoIorru5NTcsyCMWP5T/Fg== + +"@nomicfoundation/edr-darwin-x64@0.12.0-next.22": + version "0.12.0-next.22" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.12.0-next.22.tgz#f140f5150c80ca6135704831d31875c077309985" + integrity sha512-aK/+m8xUkR4u+czTVGU06nSFVH43AY6XCBoR2YjO8SglAAjCSTWK3WAfVb6FcsriMmKv4PrvoyHLMbMP+fXcGA== + +"@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.22": + version "0.12.0-next.22" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.12.0-next.22.tgz#54eb2c8c285067fb5970442a8d8a3252a8b2d23e" + integrity sha512-W5vXMleG14hVzRYGPEwlHLJ6iiQE8Qh63Uj538nAz4YUI6wWSgUOZE7K2Gt1EdujZGnrt7kfDslgJ96n4nKQZw== + +"@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.22": + version "0.12.0-next.22" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.12.0-next.22.tgz#3862beb688bc2d460d8a2400d4d4e206357dfbc9" + integrity sha512-VDp7EB3iY8MH/fFVcgEzLDGYmtS6j2honNc0RNUCFECKPrdsngGrTG8p+YFxyVjq2m5GEsdyKo4e+BKhaUNPdg== + +"@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.22": + version "0.12.0-next.22" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.12.0-next.22.tgz#eea4bf9850c8aa37661e8a7625249e43a57014da" + integrity sha512-XL6oA3ymRSQYyvg6hF1KIax6V/9vlWr5gJ8GPHVVODk1a/YfuEEY1osN5Zmo6aztUkSGKwSuac/3Ax7rfDDiSg== + +"@nomicfoundation/edr-linux-x64-musl@0.12.0-next.22": + version "0.12.0-next.22" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.12.0-next.22.tgz#801cfad4063b831f0bea8d57a34a47e782f44536" + integrity sha512-hmkRIXxWa9P0PwfXOAO6WUw11GyV5gpxcMunqWBTkwZ4QW/hi/CkXmlLo6VHd6ceCwpUNLhCGndBtrOPrNRi4A== + +"@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.22": + version "0.12.0-next.22" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.12.0-next.22.tgz#303a1d274ccb1a2c4ff1f73b734ebb5c280f1311" + integrity sha512-X7f+7KUMm00trsXAHCHJa+x1fc3QAbk2sBctyOgpET+GLrfCXbxqrccKi7op8f0zTweAVGg1Hsc8SjjC7kwFLw== + +"@nomicfoundation/edr@0.12.0-next.22": + version "0.12.0-next.22" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.12.0-next.22.tgz#f40b373eec002c0170068e39eb90df6037a0d3dc" + integrity sha512-JigYWf2stjpDxSndBsxRoobQHK8kz4SAVaHtTIKQLIHbsBwymE8i120Ejne6Jk+Ndc5CsNINXB8/bK6vLPe9jA== + dependencies: + "@nomicfoundation/edr-darwin-arm64" "0.12.0-next.22" + "@nomicfoundation/edr-darwin-x64" "0.12.0-next.22" + "@nomicfoundation/edr-linux-arm64-gnu" "0.12.0-next.22" + "@nomicfoundation/edr-linux-arm64-musl" "0.12.0-next.22" + "@nomicfoundation/edr-linux-x64-gnu" "0.12.0-next.22" + "@nomicfoundation/edr-linux-x64-musl" "0.12.0-next.22" + "@nomicfoundation/edr-win32-x64-msvc" "0.12.0-next.22" + +"@nomicfoundation/hardhat-errors@^3.0.0", "@nomicfoundation/hardhat-errors@^3.0.2", "@nomicfoundation/hardhat-errors@^3.0.3", "@nomicfoundation/hardhat-errors@^3.0.4", "@nomicfoundation/hardhat-errors@^3.0.5", "@nomicfoundation/hardhat-errors@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-errors/-/hardhat-errors-3.0.6.tgz#0dc92ba66ef270597a05a0b9e338520a26d5b05f" + integrity sha512-3x+OVdZv7Rgy3z6os9pB6kiHLxs6q0PCXHRu+WLZflr44PG9zW+7V9o+ehrUqmmivlHcIFr3Qh4M2wZVuoCYww== + dependencies: + "@nomicfoundation/hardhat-utils" "^3.0.1" -"@nomicfoundation/edr-darwin-x64@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.8.0.tgz#89c11ae510b3ac5c0e5268cd3a6b04194552112f" - integrity sha512-8ymEtWw1xf1Id1cc42XIeE+9wyo3Dpn9OD/X8GiaMz9R70Ebmj2g+FrbETu8o6UM+aL28sBZQCiCzjlft2yWAg== +"@nomicfoundation/hardhat-ethers-chai-matchers@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ethers-chai-matchers/-/hardhat-ethers-chai-matchers-3.0.2.tgz#e4c455e394e646428224fb7bfb07e4c6710a0301" + integrity sha512-nkg+z+fq5PXcRxS/zadyosAA+oPp3sdWrKpuOcASDf0RjqsN2LsNymML0VNNkZF8TF+hYa36fbV+QOas2Fm2BQ== + dependencies: + "@nomicfoundation/hardhat-errors" "^3.0.5" + "@nomicfoundation/hardhat-utils" "^3.0.5" + "@types/chai-as-promised" "^8.0.1" + chai-as-promised "^8.0.0" + deep-eql "^5.0.1" -"@nomicfoundation/edr-linux-arm64-gnu@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.8.0.tgz#02c1b4f426576af4e464320e340855139a00fe9b" - integrity sha512-h/wWzS2EyQuycz+x/SjMRbyA+QMCCVmotRsgM1WycPARvVZWIVfwRRsKoXKdCftsb3S8NTprqBdJlOmsFyETFA== - -"@nomicfoundation/edr-linux-arm64-musl@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.8.0.tgz#9b432dca973068f16a33abb70260e904494638dd" - integrity sha512-gnWxDgdkka0O9GpPX/gZT3REeKYV28Guyg13+Vj/bbLpmK1HmGh6Kx+fMhWv+Ht/wEmGDBGMCW1wdyT/CftJaQ== - -"@nomicfoundation/edr-linux-x64-gnu@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.8.0.tgz#72954e5fd875df17c43d4ef3fcc381e3312e1347" - integrity sha512-DTMiAkgAx+nyxcxKyxFZk1HPakXXUCgrmei7r5G7kngiggiGp/AUuBBWFHi8xvl2y04GYhro5Wp+KprnLVoAPA== - -"@nomicfoundation/edr-linux-x64-musl@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.8.0.tgz#0d59390c512106010d6f4d94b7fffd99fb7fd8ae" - integrity sha512-iTITWe0Zj8cNqS0xTblmxPbHVWwEtMiDC+Yxwr64d7QBn/1W0ilFQ16J8gB6RVVFU3GpfNyoeg3tUoMpSnrm6Q== - -"@nomicfoundation/edr-win32-x64-msvc@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.8.0.tgz#d14225c513372fda54684de1229cc793ffe48c12" - integrity sha512-mNRDyd/C3j7RMcwapifzv2K57sfA5xOw8g2U84ZDvgSrXVXLC99ZPxn9kmolb+dz8VMm9FONTZz9ESS6v8DTnA== - -"@nomicfoundation/edr@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.8.0.tgz#63441bb24c1804b6d27b075d0d29f3a02d94fc4f" - integrity sha512-dwWRrghSVBQDpt0wP+6RXD8BMz2i/9TI34TcmZqeEAZuCLei3U9KZRgGTKVAM1rMRvrpf5ROfPqrWNetKVUTag== - dependencies: - "@nomicfoundation/edr-darwin-arm64" "0.8.0" - "@nomicfoundation/edr-darwin-x64" "0.8.0" - "@nomicfoundation/edr-linux-arm64-gnu" "0.8.0" - "@nomicfoundation/edr-linux-arm64-musl" "0.8.0" - "@nomicfoundation/edr-linux-x64-gnu" "0.8.0" - "@nomicfoundation/edr-linux-x64-musl" "0.8.0" - "@nomicfoundation/edr-win32-x64-msvc" "0.8.0" - -"@nomicfoundation/ethereumjs-common@4.0.4": +"@nomicfoundation/hardhat-ethers@^4.0.4": version "4.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb" - integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg== + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-4.0.4.tgz#c172cb0240585e5a0c5fad6df01138ed80f2191a" + integrity sha512-UTw3iM7AMZ1kZlzgJbtAEfWWDYjcnT0EZkRUZd1wIVtMOXIE4nc6Ya4veodAt/KpBhG+6W06g50W+Z/0wTm62g== dependencies: - "@nomicfoundation/ethereumjs-util" "9.0.4" + "@nomicfoundation/hardhat-errors" "^3.0.2" + "@nomicfoundation/hardhat-utils" "^3.0.5" + debug "^4.3.2" + ethereum-cryptography "^2.2.1" + ethers "^6.14.0" -"@nomicfoundation/ethereumjs-rlp@5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30" - integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw== +"@nomicfoundation/hardhat-ledger@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ledger/-/hardhat-ledger-3.0.1.tgz#4a5f44e57d6372fbff8143d7a9a46711fec3c36a" + integrity sha512-nP+q+1717Bp7KcaLQC1Tj/rmLn73VnMLb/5aE7lEyCynbXngx6V56tjqHrZWbYmCOHDL7JOlYiYAmFZP2ddvvA== + dependencies: + "@ledgerhq/errors" "^6.25.0" + "@ledgerhq/evm-tools" "^1.7.7" + "@ledgerhq/hw-app-eth" "^6.45.19" + "@ledgerhq/hw-transport" "^6.31.11" + "@ledgerhq/hw-transport-node-hid" "^6.29.12" + "@ledgerhq/types-live" "^6.85.0" + "@nomicfoundation/hardhat-errors" "^3.0.4" + "@nomicfoundation/hardhat-utils" "^3.0.5" + "@nomicfoundation/hardhat-zod-utils" "^3.0.0" + debug "^4.3.2" + micro-eth-signer "^0.14.0" + zod "^3.23.8" -"@nomicfoundation/ethereumjs-tx@5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da" - integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw== +"@nomicfoundation/hardhat-mocha@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-mocha/-/hardhat-mocha-3.0.9.tgz#b899f7e39470bdb2c41e5ce2999ae1960cb0d89f" + integrity sha512-9hsl1TcRMudN/gUPsRjx0iGLEkl8IU9BBQ5wT5bf8N4RTSHbVwqVL+mADzpt+Dmd5nkdItynhrAJnXjwTvy5DQ== dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.4" - "@nomicfoundation/ethereumjs-rlp" "5.0.4" - "@nomicfoundation/ethereumjs-util" "9.0.4" - ethereum-cryptography "0.1.3" + "@nomicfoundation/hardhat-errors" "^3.0.3" + "@nomicfoundation/hardhat-utils" "^3.0.5" + "@nomicfoundation/hardhat-zod-utils" "^3.0.0" + chalk "^5.3.0" + tsx "^4.19.3" + zod "^3.23.8" -"@nomicfoundation/ethereumjs-util@9.0.4": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38" - integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q== +"@nomicfoundation/hardhat-network-helpers@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-3.0.3.tgz#6c9eeab43d570c27e2df1e5b1c97bee7c45cbd38" + integrity sha512-FqXD8CPFNdluEhELqNV/Q0grOQtlwRWr28LW+/NTas3rrDAXpNOIPCCq3RIXJIqsdbNPQsG2FpnfKj9myqIsKQ== dependencies: - "@nomicfoundation/ethereumjs-rlp" "5.0.4" - ethereum-cryptography "0.1.3" + "@nomicfoundation/hardhat-errors" "^3.0.5" + "@nomicfoundation/hardhat-utils" "^3.0.5" -"@nomicfoundation/hardhat-chai-matchers@^2.0.0": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.7.tgz#89d90b2d77a00f6fd8fe42eabe40a82b5e065075" - integrity sha512-RQfsiTwdf0SP+DtuNYvm4921X6VirCQq0Xyh+mnuGlTwEFSPZ/o27oQC+l+3Y/l48DDU7+ZcYBR+Fp+Rp94LfQ== +"@nomicfoundation/hardhat-typechain@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-typechain/-/hardhat-typechain-3.0.1.tgz#be34e14cf2944cb924274ae97afd2b177beb82bf" + integrity sha512-TkeMQhf+/4gZLMIWLxzzyVruNuLz5xW5BZdu4Clic3HFqBJRG+U2fQGWxAknMMLGONhxiZaUipE0Z+JkOugrmg== dependencies: - "@types/chai-as-promised" "^7.1.3" - chai-as-promised "^7.1.1" - deep-eql "^4.0.1" - ordinal "^1.0.3" + "@nomicfoundation/hardhat-errors" "^3.0.0" + "@nomicfoundation/hardhat-utils" "^3.0.5" + "@nomicfoundation/hardhat-zod-utils" "^3.0.0" + "@typechain/ethers-v6" "^0.5.0" + debug "^4.3.2" + typechain "^8.3.1" + zod "^3.23.8" -"@nomicfoundation/hardhat-ethers@^3.0.0": +"@nomicfoundation/hardhat-utils@^3.0.1", "@nomicfoundation/hardhat-utils@^3.0.2", "@nomicfoundation/hardhat-utils@^3.0.5", "@nomicfoundation/hardhat-utils@^3.0.6": version "3.0.6" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.6.tgz#e8ba7f9719de360c03501b85dae4999bb3a7e1c5" - integrity sha512-/xzkFQAaHQhmIAYOQmvHBPwL+NkwLzT9gRZBsgWUYeV+E6pzXsBQsHfRYbAZ3XEYare+T7S+5Tg/1KDJgepSkA== - dependencies: - debug "^4.1.1" - lodash.isequal "^4.5.0" - -"@nomicfoundation/hardhat-ignition-ethers@^0.15.0": - version "0.15.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.5.tgz#98f945c110e26a120baf015b0d2322d5025273aa" - integrity sha512-W6s1QN9CFxzSVZS6w9Jcj3WLaK32z2FP5MxNU2OKY1Fn9ZzLr+miXbUbWYuRHl6dxrrl6sE8cv33Cybv19pmCg== - -"@nomicfoundation/hardhat-ignition@^0.15.0": - version "0.15.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.5.tgz#6da613732a3d9829a40f6ee6c95fb2db012ebdce" - integrity sha512-Y5nhFXFqt4owA6Ooag8ZBFDF2RAZElMXViknVIsi3m45pbQimS50ti6FU8HxfRkDnBARa40CIn7UGV0hrelzDw== + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-utils/-/hardhat-utils-3.0.6.tgz#b960ccf8d1b8247b57817b8b3406691a384d0c25" + integrity sha512-AD/LPNdjXNFRrZcaAAewgJpdnHpPppZxo5p+x6wGMm5Hz4B3+oLf/LUzVn8qb4DDy9RE2c24l2F8vmL/w6ZuXg== dependencies: - "@nomicfoundation/ignition-core" "^0.15.5" - "@nomicfoundation/ignition-ui" "^0.15.5" - chalk "^4.0.0" + "@streamparser/json-node" "^0.0.22" debug "^4.3.2" - fs-extra "^10.0.0" - prompts "^2.4.2" - -"@nomicfoundation/hardhat-ledger@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-ledger/-/hardhat-ledger-1.0.3.tgz#7adf54f96e453ed0a649493c2e50b5db6d66ea7f" - integrity sha512-AwdfyZbF1p87xDTTzJJbnTlu3fyDSkyYjtkC5L5CZ9LYOXpsEp4cuUo26v0oGl6XutPN31HxUXbBbNPfhGcgFg== - dependencies: - "@ledgerhq/errors" "^6.12.6" - "@ledgerhq/hw-app-eth" "6.33.6" - "@ledgerhq/hw-transport" "^6.28.4" - "@ledgerhq/hw-transport-node-hid" "^6.27.13" - "@nomicfoundation/ethereumjs-util" "9.0.4" - chalk "^2.4.2" - debug "^4.1.1" env-paths "^2.2.0" - ethers "^6.1.0" - fs-extra "^7.0.1" - io-ts "1.10.4" - ora "^5.4.1" + ethereum-cryptography "^2.2.1" + fast-equals "^5.4.0" + json-stream-stringify "^3.1.6" + rfdc "^1.3.1" + undici "^6.16.1" -"@nomicfoundation/hardhat-network-helpers@^1.0.0": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.11.tgz#64096829661b960b88679bd5c4fbcb50654672d1" - integrity sha512-uGPL7QSKvxrHRU69dx8jzoBvuztlLCtyFsbgfXIwIjnO3dqZRz2GNMHJoO3C3dIiUNM6jdNF4AUnoQKDscdYrA== - dependencies: - ethereumjs-util "^7.1.4" - -"@nomicfoundation/hardhat-toolbox@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz#165b47f8a3d2bf668cc5d453ce7f496a1156948d" - integrity sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ== +"@nomicfoundation/hardhat-vendored@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-vendored/-/hardhat-vendored-3.0.0.tgz#1fcb1813ddda1f2b4bbabee04d863ce60ed1dfc6" + integrity sha512-bzIOdG4iAuYSs9JSnaVOtH7qUKJ6W5+OtOiL8MlyFuLKYN2hjIisGO4pY5zR4N7xi/3RjfcnjVNz8tU0DPg2Cw== + +"@nomicfoundation/hardhat-verify@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-3.0.8.tgz#23ae892934083cd74df55bd5c33bd62f29fdb936" + integrity sha512-AkwFvx/r0AFDk0H53mReYpkw2pvi5Jq34zAyk2+cTM7o/OnOvq0xcAaidw4BQvBf9+FMeFAKjJe+zNYgrsLatg== + dependencies: + "@ethersproject/abi" "^5.8.0" + "@nomicfoundation/hardhat-errors" "^3.0.3" + "@nomicfoundation/hardhat-utils" "^3.0.5" + "@nomicfoundation/hardhat-zod-utils" "^3.0.0" + cbor2 "^1.9.0" + chalk "^5.3.0" + debug "^4.3.2" + semver "^7.6.3" + zod "^3.23.8" -"@nomicfoundation/hardhat-verify@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.1.1.tgz#0af5fc4228df860062865fcafb4a01bc0b89f8a3" - integrity sha512-K1plXIS42xSHDJZRkrE2TZikqxp9T4y6jUMUNI/imLgN5uCcEQokmfU0DlyP9zzHncYK92HlT5IWP35UVCLrPw== +"@nomicfoundation/hardhat-zod-utils@^3.0.0", "@nomicfoundation/hardhat-zod-utils@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-zod-utils/-/hardhat-zod-utils-3.0.1.tgz#eef36a0968be49aa67f2195aa7050c697b596d45" + integrity sha512-I6/pyYiS9p2lLkzQuedr1ScMocH+ew8l233xTi+LP92gjEiviJDxselpkzgU01MUM0t6BPpfP8yMO958LDEJVg== dependencies: - "@ethersproject/abi" "^5.1.2" - "@ethersproject/address" "^5.0.2" - cbor "^8.1.0" - debug "^4.1.1" - lodash.clonedeep "^4.5.0" - picocolors "^1.1.0" - semver "^6.3.0" - table "^6.8.0" - undici "^5.14.0" + "@nomicfoundation/hardhat-errors" "^3.0.0" + "@nomicfoundation/hardhat-utils" "^3.0.2" -"@nomicfoundation/ignition-core@^0.15.5": - version "0.15.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ignition-core/-/ignition-core-0.15.5.tgz#38d19d29ffd425f7cc2810c45d7a51b31c626067" - integrity sha512-FgvuoIXhakRSP524JzNQ4BviyzBBKpsFaOWubPZ4XACLT4/7vGqlJ/7DIn0D2NL2anQ2qs98/BNBY9WccXUX1Q== +"@nomicfoundation/slang@^0.18.3": + version "0.18.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/slang/-/slang-0.18.3.tgz#976b6c3820081cebf050afbea434038aac9313cc" + integrity sha512-YqAWgckqbHM0/CZxi9Nlf4hjk9wUNLC9ngWCWBiqMxPIZmzsVKYuChdlrfeBPQyvQQBoOhbx+7C1005kLVQDZQ== dependencies: - "@ethersproject/address" "5.6.1" - "@nomicfoundation/solidity-analyzer" "^0.1.1" - cbor "^9.0.0" - debug "^4.3.2" - ethers "^6.7.0" - fs-extra "^10.0.0" - immer "10.0.2" - lodash "4.17.21" - ndjson "2.0.0" - -"@nomicfoundation/ignition-ui@^0.15.5": - version "0.15.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.5.tgz#ef9e11ccbffccc2360c02b20f12713756dfc37da" - integrity sha512-ZcE4rIn10qKahR4OqS8rl8NM2Fbg2QYiBXgMgj74ZI0++LlCcZgB5HyaBbX+lsnKHjTXtjYD3b+2mtg7jFbAMQ== + "@bytecodealliance/preview2-shim" "0.17.0" "@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2": version "0.1.2" @@ -1257,7 +1930,7 @@ resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz#e6363d13b8709ca66f330562337dbc01ce8bbbd9" integrity sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA== -"@nomicfoundation/solidity-analyzer@^0.1.0", "@nomicfoundation/solidity-analyzer@^0.1.1": +"@nomicfoundation/solidity-analyzer@^0.1.1": version "0.1.2" resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz#8bcea7d300157bf3a770a851d9f5c5e2db34ac55" integrity sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA== @@ -1298,41 +1971,43 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.6.tgz#2a880a24eb19b4f8b25adc2a5095f2aa27f39677" integrity sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA== -"@openzeppelin/defender-sdk-base-client@^1.10.0", "@openzeppelin/defender-sdk-base-client@^1.13.4": - version "1.13.4" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.13.4.tgz#51b25d46bb766e7a107b9a87ca623fae3ad5a8c3" - integrity sha512-fZjDxdL5WBt6kjKN8j6WlfIsggZKv37W1KoRkT0XwYv7Jslmr22i2qUs8ZreAzATD3ESYQs7YlO7ge0ElqdOKg== +"@openzeppelin/defender-sdk-base-client@^2.1.0", "@openzeppelin/defender-sdk-base-client@^2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-2.7.1.tgz#c32f152fa3848e18065aafc4c4ee8b582b410d7c" + integrity sha512-7gFCteA+V3396A3McgqzmirwmbPXuHJYN896O3AbsHX9XcxInN74C5Zv3tFHld0GmIX/VlaIvILNMhOpdISZjA== dependencies: + "@aws-sdk/client-lambda" "^3.563.0" amazon-cognito-identity-js "^6.3.6" async-retry "^1.3.3" + axios "^1.7.4" -"@openzeppelin/defender-sdk-deploy-client@^1.10.0": - version "1.13.4" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.13.4.tgz#f5f6997774d7ea8c5ea9be5d4b0ead041270f671" - integrity sha512-1SbdImpjCYmjpDgK7Bff4vak29r/aECabVuQi5TB+7TdbOuRdVxDHu7vFhEpt3yrcPKW1joaNiUNDEc/noUsNQ== +"@openzeppelin/defender-sdk-deploy-client@^2.1.0": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-2.7.1.tgz#e88864b2d1dcf783d40f0b422dd7d8e45e7f4035" + integrity sha512-vFkDupn8ATW83KjZlY5U7UdsvSo9YZwOMQoVaHJO3S+Z6h0wa6cTzuQV9C0AKYq524quQkFsQ4AQq5CgsgdEkQ== dependencies: - "@openzeppelin/defender-sdk-base-client" "^1.13.4" - axios "^1.6.8" + "@openzeppelin/defender-sdk-base-client" "^2.7.1" + axios "^1.7.4" lodash "^4.17.21" -"@openzeppelin/defender-sdk-network-client@^1.10.0": - version "1.13.4" - resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-network-client/-/defender-sdk-network-client-1.13.4.tgz#98ba517bb32810d0f76b5f64a83f42ad4ca182bb" - integrity sha512-m76WQzqFET4jtFgA74V6Ui4czRoTvBy7leS+BbsIxoKX+NGODhs78y5zq7jSxsLu3c2iY69rujRkzj0Z+sCiiQ== +"@openzeppelin/defender-sdk-network-client@^2.1.0": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-network-client/-/defender-sdk-network-client-2.7.1.tgz#ebecc5ad8f139f4c06b86e0764bae4661b9d093b" + integrity sha512-AWJKT9YKv9wH3/1AJZCztF3VIsg1sX+v8fjtyFLROqtVAzmhB8WKBRVt9GHAZ+PmsixAKDMOEbH6R1cipTIVHQ== dependencies: - "@openzeppelin/defender-sdk-base-client" "^1.13.4" - axios "^1.6.8" + "@openzeppelin/defender-sdk-base-client" "^2.7.1" + axios "^1.7.4" lodash "^4.17.21" -"@openzeppelin/hardhat-upgrades@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.2.0.tgz#09ae9b48e2fca876ddff9b5ee20ac6629392872e" - integrity sha512-xybXIHQIZK2a1HH7ukMToRbIcU9LHfL49gtB0KYptY6f/r9lqrFOupN8aOBueRZW4Ymhc6HGL9bvj7u7t5lDdQ== +"@openzeppelin/hardhat-upgrades@4.0.0-alpha.0": + version "4.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-4.0.0-alpha.0.tgz#b7a7888631f6f2b7992038ec290255092630ac8b" + integrity sha512-F6602L1JNCltK6PyeH53zvGJWZBoVEaVCPUSxtJqjIHZWhBTZuq2e/VIjeFYlSxdESXXFbrij3ErQ/G9UJNkDA== 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/defender-sdk-base-client" "^2.1.0" + "@openzeppelin/defender-sdk-deploy-client" "^2.1.0" + "@openzeppelin/defender-sdk-network-client" "^2.1.0" + "@openzeppelin/upgrades-core" "1.45.0-alpha.1" chalk "^4.1.0" debug "^4.1.1" ethereumjs-util "^7.1.5" @@ -1347,19 +2022,22 @@ "@ethersproject/abi" "^5.7.0" ethereum-cryptography "^1.1.2" -"@openzeppelin/upgrades-core@^1.32.0": - version "1.34.1" - resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.34.1.tgz#660301692e706c7e701395467267128cc43c1de9" - integrity sha512-LV3hHm60htmP3HJjn2VoGqXNPn1RLFSSInRyXNbm15Z2oWKGxOfAWSC4+okRckum0yVB5g3k4/SEyqjsJRB07A== +"@openzeppelin/upgrades-core@1.45.0-alpha.1": + version "1.45.0-alpha.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.45.0-alpha.1.tgz#e969f5f78ddb8ae82041699445ec145c7815433a" + integrity sha512-JSYPTr/QqlYpfwrQwggxpF2/BJWp8n+wx35P1bNGivUmyGAGImcvIc+kwLwqJnUZ3fqQ6KK972bv01AeIGUSbQ== dependencies: - cbor "^9.0.0" + "@nomicfoundation/slang" "^0.18.3" + bignumber.js "^9.1.2" + cbor "^10.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" + solidity-ast "^0.4.60" "@peculiar/asn1-schema@^2.3.13": version "2.3.13" @@ -1370,6 +2048,11 @@ pvtsutils "^1.3.5" tslib "^2.6.2" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@pnpm/config.env-replace@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" @@ -1401,6 +2084,18 @@ evm-bn "^1.1.1" mathjs "^10.4.0" +"@reduxjs/toolkit@2.8.2": + version "2.8.2" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-2.8.2.tgz#f4e9f973c6fc930c1e0f3bf462cc95210c28f5f9" + integrity sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A== + dependencies: + "@standard-schema/spec" "^1.0.0" + "@standard-schema/utils" "^0.3.0" + immer "^10.0.3" + redux "^5.0.1" + redux-thunk "^3.1.0" + reselect "^5.1.0" + "@safe-global/api-kit@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@safe-global/api-kit/-/api-kit-4.0.1.tgz#91414e19377f985ac30f03fd0508a11e70d867b3" @@ -1450,16 +2145,26 @@ resolved "https://registry.yarnpkg.com/@scroll-tech/contracts/-/contracts-0.1.0.tgz#ccea8db1b3df7d740e4b7843ac01b5bd25b4438b" integrity sha512-aBbDOc3WB/WveZdpJYcrfvMYMz7ZTEiW8M9XMJLba8p9FAR5KGYB/cV+8+EUsq3MKt7C1BfR+WnXoTVdvwIY6w== -"@scure/base@~1.1.0", "@scure/base@~1.1.6": +"@scure/base@~1.1.0": version "1.1.7" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30" integrity sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g== +"@scure/base@~1.1.6": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.9.tgz#e5e142fbbfe251091f9c5f1dd4c834ac04c3dbd1" + integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg== + "@scure/base@~1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.1.tgz#dd0b2a533063ca612c17aa9ad26424a2ff5aa865" integrity sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ== +"@scure/base@~1.2.5": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.6.tgz#ca917184b8231394dd8847509c67a0be522e59f6" + integrity sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg== + "@scure/bip32@1.1.5": version "1.1.5" resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" @@ -1511,102 +2216,504 @@ "@noble/hashes" "~1.6.0" "@scure/base" "~1.2.1" -"@sentry/core@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" - integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/hub@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" - integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== - dependencies: - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/minimal@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" - integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/types" "5.30.0" - tslib "^1.9.3" - -"@sentry/node@^5.18.1": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" - integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== - dependencies: - "@sentry/core" "5.30.0" - "@sentry/hub" "5.30.0" - "@sentry/tracing" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - cookie "^0.4.1" - https-proxy-agent "^5.0.0" - lru_map "^0.3.3" - tslib "^1.9.3" - -"@sentry/tracing@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" - integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/types@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" - integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== - -"@sentry/utils@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" - integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== - dependencies: - "@sentry/types" "5.30.0" - tslib "^1.9.3" +"@sentry/core@^9.4.0": + version "9.47.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-9.47.1.tgz#6b95b8a03ade1ca04f8b9b457bc751eb8be0c06a" + integrity sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw== "@sindresorhus/is@^5.2.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== -"@smithy/types@^3.1.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.2.0.tgz#1350fe8a50d5e35e12ffb34be46d946860b2b5ab" - integrity sha512-cKyeKAPazZRVqm7QPvcPD2jEIt2wqDPAL1KJKb0f/5I7uhollvsWZuZKLclmyP6a+Jwmr3OV3t+X0pZUUHS9BA== +"@smithy/abort-controller@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.8.tgz#3bfd7a51acce88eaec9a65c3382542be9f3a053a" + integrity sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/config-resolver@^4.4.6": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.6.tgz#bd7f65b3da93f37f1c97a399ade0124635c02297" + integrity sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ== + dependencies: + "@smithy/node-config-provider" "^4.3.8" + "@smithy/types" "^4.12.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" + tslib "^2.6.2" + +"@smithy/core@^3.23.0": + version "3.23.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.23.0.tgz#64dca2825753316ace7b8342cb96c9dfc5de4e2a" + integrity sha512-Yq4UPVoQICM9zHnByLmG8632t2M0+yap4T7ANVw482J0W7HW0pOuxwVmeOwzJqX2Q89fkXz0Vybz55Wj2Xzrsg== + dependencies: + "@smithy/middleware-serde" "^4.2.9" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-stream" "^4.5.12" + "@smithy/util-utf8" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.8.tgz#b2f4bf759ab1c35c0dd00fa3470263c749ebf60f" + integrity sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw== + dependencies: + "@smithy/node-config-provider" "^4.3.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + tslib "^2.6.2" + +"@smithy/eventstream-codec@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.8.tgz#2f431f4bac22e40aa6565189ea350c6fcb5efafd" + integrity sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^4.12.0" + "@smithy/util-hex-encoding" "^4.2.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-browser@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.8.tgz#04e2e1fad18e286d5595fbc0bff22e71251fca38" + integrity sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw== + dependencies: + "@smithy/eventstream-serde-universal" "^4.2.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-config-resolver@^4.3.8": + version "4.3.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.8.tgz#b913d23834c6ebf1646164893e1bec89dffe4f3b" + integrity sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-node@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.8.tgz#5f2dfa2cbb30bf7564c8d8d82a9832e9313f5243" + integrity sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A== + dependencies: + "@smithy/eventstream-serde-universal" "^4.2.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-universal@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.8.tgz#a62b389941c28a8c3ab44a0c8ba595447e0258a7" + integrity sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ== + dependencies: + "@smithy/eventstream-codec" "^4.2.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/fetch-http-handler@^5.3.9": + version "5.3.9" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.9.tgz#edfc9e90e0c7538c81e22e748d62c0066cc91d58" + integrity sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA== + dependencies: + "@smithy/protocol-http" "^5.3.8" + "@smithy/querystring-builder" "^4.2.8" + "@smithy/types" "^4.12.0" + "@smithy/util-base64" "^4.3.0" + tslib "^2.6.2" + +"@smithy/hash-node@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.8.tgz#c21eb055041716cd492dda3a109852a94b6d47bb" + integrity sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA== + dependencies: + "@smithy/types" "^4.12.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/invalid-dependency@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.8.tgz#c578bc6d5540c877aaed5034b986b5f6bd896451" + integrity sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/is-array-buffer@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" + integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== + dependencies: + tslib "^2.6.2" + +"@smithy/is-array-buffer@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz#b0f874c43887d3ad44f472a0f3f961bcce0550c2" + integrity sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ== + dependencies: + tslib "^2.6.2" + +"@smithy/middleware-content-length@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.8.tgz#82c1df578fa70fe5800cf305b8788b9d2836a3e4" + integrity sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A== + dependencies: + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/middleware-endpoint@^4.4.14": + version "4.4.14" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.14.tgz#df8aca71af70366f39305eeaf18ffd650f764219" + integrity sha512-FUFNE5KVeaY6U/GL0nzAAHkaCHzXLZcY1EhtQnsAqhD8Du13oPKtMB9/0WK4/LK6a/T5OZ24wPoSShff5iI6Ag== + dependencies: + "@smithy/core" "^3.23.0" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + "@smithy/util-middleware" "^4.2.8" + tslib "^2.6.2" + +"@smithy/middleware-retry@^4.4.31": + version "4.4.31" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.31.tgz#1dbdbaedbd62f4900e3520f65599810123c0c461" + integrity sha512-RXBzLpMkIrxBPe4C8OmEOHvS8aH9RUuCOH++Acb5jZDEblxDjyg6un72X9IcbrGTJoiUwmI7hLypNfuDACypbg== + dependencies: + "@smithy/node-config-provider" "^4.3.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/service-error-classification" "^4.2.8" + "@smithy/smithy-client" "^4.11.3" + "@smithy/types" "^4.12.0" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@smithy/middleware-serde@^4.2.9": + version "4.2.9" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.9.tgz#fd9d9b02b265aef67c9a30f55c2a5038fc9ca791" + integrity sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ== + dependencies: + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/middleware-stack@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.8.tgz#4fa9cfaaa05f664c9bb15d45608f3cb4f6da2b76" + integrity sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/node-config-provider@^4.3.8": + version "4.3.8" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.8.tgz#85a0683448262b2eb822f64c14278d4887526377" + integrity sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg== + dependencies: + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/node-http-handler@^4.4.10": + version "4.4.10" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.10.tgz#4945e2c2e61174ec1471337e3ddd50b8e4921204" + integrity sha512-u4YeUwOWRZaHbWaebvrs3UhwQwj+2VNmcVCwXcYTvPIuVyM7Ex1ftAj+fdbG/P4AkBwLq/+SKn+ydOI4ZJE9PA== + dependencies: + "@smithy/abort-controller" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/querystring-builder" "^4.2.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/property-provider@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.8.tgz#6e37b30923d2d31370c50ce303a4339020031472" + integrity sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/protocol-http@^5.3.8": + version "5.3.8" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.8.tgz#0938f69a3c3673694c2f489a640fce468ce75006" + integrity sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/querystring-builder@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.8.tgz#2fa72d29eb1844a6a9933038bbbb14d6fe385e93" + integrity sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw== + dependencies: + "@smithy/types" "^4.12.0" + "@smithy/util-uri-escape" "^4.2.0" + tslib "^2.6.2" + +"@smithy/querystring-parser@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.8.tgz#aa3f2456180ce70242e89018d0b1ebd4782a6347" + integrity sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/service-error-classification@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.8.tgz#6d89dbad4f4978d7b75a44af8c18c22455a16cdc" + integrity sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ== + dependencies: + "@smithy/types" "^4.12.0" + +"@smithy/shared-ini-file-loader@^4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.3.tgz#6054215ecb3a6532b13aa49a9fbda640b63be50e" + integrity sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/signature-v4@^5.3.8": + version "5.3.8" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.8.tgz#796619b10b7cc9467d0625b0ebd263ae04fdfb76" + integrity sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-uri-escape" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.11.3.tgz#94d1083d5bc3b09e510f680ad7f82395765badf3" + integrity sha512-Q7kY5sDau8OoE6Y9zJoRGgje8P4/UY0WzH8R2ok0PDh+iJ+ZnEKowhjEqYafVcubkbYxQVaqwm3iufktzhprGg== + dependencies: + "@smithy/core" "^3.23.0" + "@smithy/middleware-endpoint" "^4.4.14" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + "@smithy/util-stream" "^4.5.12" + tslib "^2.6.2" + +"@smithy/types@^4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.12.0.tgz#55d2479080922bda516092dbf31916991d9c6fee" + integrity sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw== + dependencies: + tslib "^2.6.2" + +"@smithy/url-parser@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.8.tgz#b44267cd704abe114abcd00580acdd9e4acc1177" + integrity sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA== + dependencies: + "@smithy/querystring-parser" "^4.2.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/util-base64@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.3.0.tgz#5e287b528793aa7363877c1a02cd880d2e76241d" + integrity sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ== + dependencies: + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-body-length-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz#04e9fc51ee7a3e7f648a4b4bcdf96c350cfa4d61" + integrity sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg== + dependencies: + tslib "^2.6.2" + +"@smithy/util-body-length-node@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz#79c8a5d18e010cce6c42d5cbaf6c1958523e6fec" + integrity sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA== + dependencies: + tslib "^2.6.2" + +"@smithy/util-buffer-from@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" + integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-buffer-from@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz#7abd12c4991b546e7cee24d1e8b4bfaa35c68a9d" + integrity sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-config-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz#2e4722937f8feda4dcb09672c59925a4e6286cfc" + integrity sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^4.3.30": + version "4.3.30" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.30.tgz#0494c467897ddf5b09b6f87712992b7b0ebe1cc1" + integrity sha512-cMni0uVU27zxOiU8TuC8pQLC1pYeZ/xEMxvchSK/ILwleRd1ugobOcIRr5vXtcRqKd4aBLWlpeBoDPJJ91LQng== + dependencies: + "@smithy/property-provider" "^4.2.8" + "@smithy/smithy-client" "^4.11.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/util-defaults-mode-node@^4.2.33": + version "4.2.33" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.33.tgz#b5d8b88d398d4556fe3e6299d7a14eac2b892750" + integrity sha512-LEb2aq5F4oZUSzWBG7S53d4UytZSkOEJPXcBq/xbG2/TmK9EW5naUZ8lKu1BEyWMzdHIzEVN16M3k8oxDq+DJA== + dependencies: + "@smithy/config-resolver" "^4.4.6" + "@smithy/credential-provider-imds" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/smithy-client" "^4.11.3" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/util-endpoints@^3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.8.tgz#5650bda2adac989ff2e562606088c5de3dcb1b36" + integrity sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw== + dependencies: + "@smithy/node-config-provider" "^4.3.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/util-hex-encoding@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz#1c22ea3d1e2c3a81ff81c0a4f9c056a175068a7b" + integrity sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw== + dependencies: + tslib "^2.6.2" + +"@smithy/util-middleware@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.8.tgz#1da33f29a74c7ebd9e584813cb7e12881600a80a" + integrity sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A== + dependencies: + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/util-retry@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.8.tgz#23f3f47baf0681233fd0c37b259e60e268c73b11" + integrity sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg== + dependencies: + "@smithy/service-error-classification" "^4.2.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/util-stream@^4.5.12": + version "4.5.12" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.12.tgz#f8734a01dce2e51530231e6afc8910397d3e300a" + integrity sha512-D8tgkrmhAX/UNeCZbqbEO3uqyghUnEmmoO9YEvRuwxjlkKKUE7FOgCJnqpTlQPe9MApdWPky58mNQQHbnCzoNg== + dependencies: + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/node-http-handler" "^4.4.10" + "@smithy/types" "^4.12.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-uri-escape@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz#096a4cec537d108ac24a68a9c60bee73fc7e3a9e" + integrity sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA== + dependencies: + tslib "^2.6.2" + +"@smithy/util-utf8@^2.0.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" + integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-utf8@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz#8b19d1514f621c44a3a68151f3d43e51087fed9d" + integrity sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw== dependencies: + "@smithy/util-buffer-from" "^4.2.0" tslib "^2.6.2" -"@solidity-parser/parser@^0.14.0": - version "0.14.5" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" - integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== +"@smithy/util-waiter@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.8.tgz#35d7bd8b2be7a2ebc12d8c38a0818c501b73e928" + integrity sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg== dependencies: - antlr4ts "^0.5.0-alpha.4" + "@smithy/abort-controller" "^4.2.8" + "@smithy/types" "^4.12.0" + tslib "^2.6.2" + +"@smithy/uuid@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.0.tgz#9fd09d3f91375eab94f478858123387df1cda987" + integrity sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw== + dependencies: + tslib "^2.6.2" "@solidity-parser/parser@^0.17.0": version "0.17.0" resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.17.0.tgz#52a2fcc97ff609f72011014e4c5b485ec52243ef" integrity sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw== -"@solidity-parser/parser@^0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.18.0.tgz#8e77a02a09ecce957255a2f48c9a7178ec191908" - integrity sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA== +"@solidity-parser/parser@^0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.20.2.tgz#e07053488ed60dae1b54f6fe37bb6d2c5fe146a7" + integrity sha512-rbu0bzwNvMcwAjH86hiEAcOeRI2EeK8zCkHDrFykh/Al8mvJeFmjy3UrE7GYQjNwOgbGUUtCn5/k8CB8zIu7QA== + +"@standard-schema/spec@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8" + integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== + +"@standard-schema/utils@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@standard-schema/utils/-/utils-0.3.0.tgz#3d5e608f16c2390c10528e98e59aef6bf73cae7b" + integrity sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g== + +"@streamparser/json-node@^0.0.22": + version "0.0.22" + resolved "https://registry.yarnpkg.com/@streamparser/json-node/-/json-node-0.0.22.tgz#cee66bb2f175e41abf83574dc7d6fe9c997d94d5" + integrity sha512-sJT2ptNRwqB1lIsQrQlCoWk5rF4tif9wDh+7yluAGijJamAhrHGYpFB/Zg3hJeceoZypi74ftXk8DHzwYpbZSg== + dependencies: + "@streamparser/json" "^0.0.22" + +"@streamparser/json@^0.0.22": + version "0.0.22" + resolved "https://registry.yarnpkg.com/@streamparser/json/-/json-0.0.22.tgz#8ddcbcc8c3ca77aeadf80af47f54a64c8739a037" + integrity sha512-b6gTSBjJ8G8SuO3Gbbj+zXbVx8NSs1EbpbMKpzGLWMdkR+98McH9bEjSz3+0mPJf68c5nxa3CrJHp5EQNXM6zQ== "@szmarczak/http-timer@^5.0.1": version "5.0.1" @@ -1643,52 +2750,37 @@ lodash "^4.17.15" ts-essentials "^7.0.1" -"@typechain/hardhat@^9.0.0": - version "9.1.0" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-9.1.0.tgz#6985015f01dfb37ef2ca8a29c742d05890351ddc" - integrity sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA== - dependencies: - fs-extra "^9.1.0" - -"@types/bn.js@^4.11.3": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - "@types/bn.js@^5.1.0": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" - integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== + version "5.2.0" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" + integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== dependencies: "@types/node" "*" -"@types/chai-as-promised@^7.1.3": - version "7.1.8" - resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9" - integrity sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw== +"@types/chai-as-promised@^8.0.1": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-8.0.2.tgz#5ac957d346fec5b686b62606baa5704787669704" + integrity sha512-meQ1wDr1K5KRCSvG2lX7n7/5wf70BeptTKst0axGvnN6zqaVpRqegoIbugiAPSqOW9K9aL8gDVrm7a2LXOtn2Q== dependencies: "@types/chai" "*" -"@types/chai@*", "@types/chai@^4.2.0": +"@types/chai@*": + version "5.2.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" + integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== + dependencies: + "@types/deep-eql" "*" + assertion-error "^2.0.1" + +"@types/chai@^4.2.0": version "4.3.16" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.16.tgz#b1572967f0b8b60bf3f87fe1d854a5604ea70c82" integrity sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ== -"@types/concat-stream@^1.6.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" - integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== - dependencies: - "@types/node" "*" - -"@types/form-data@0.0.33": - version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" - integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== - dependencies: - "@types/node" "*" +"@types/deep-eql@*": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" + integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== "@types/fs-extra@^11.0.4": version "11.0.4" @@ -1698,14 +2790,6 @@ "@types/jsonfile" "*" "@types/node" "*" -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/http-cache-semantics@^4.0.2": version "4.0.4" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" @@ -1718,16 +2802,6 @@ dependencies: "@types/node" "*" -"@types/lru-cache@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" - integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/mocha@>=9.1.0": version "10.0.7" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.7.tgz#4c620090f28ca7f905a94b706f74dc5b57b44f2f" @@ -1745,21 +2819,18 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== -"@types/node@^10.0.3": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== +"@types/node@22.7.5": + version "22.7.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.5.tgz#cfde981727a7ab3611a481510b473ae54442b92b" + integrity sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ== + dependencies: + undici-types "~6.19.2" "@types/node@^12.7.1": 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.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" - integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== - "@types/pbkdf2@^3.0.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" @@ -1772,22 +2843,17 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/qs@^6.2.31": - version "6.9.15" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" - integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== - "@types/secp256k1@^4.0.1": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" - integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== + version "4.0.7" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.7.tgz#534c9814eb80964962108ad45d549d1555c75fa0" + integrity sha512-Rcvjl6vARGAKRO6jHeKMatGrvOMGrR/AR11N1x2LqintPCyDZ7NBhrh238Z2VZc7aM7KIwnFpFQ7fnfK4H/9Qw== dependencies: "@types/node" "*" "@types/w3c-web-usb@^1.0.6": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz#cf89cccd2d93b6245e784c19afe0a9f5038d4528" - integrity sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ== + version "1.0.13" + resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.13.tgz#4792e2ef7f611d0ee260b7adbf4ed121326c04e1" + integrity sha512-N2nSl3Xsx8mRHZBvMSdNGtzMyeleTvtlEw+ujujgXalPqOjIA6UtrqcB6OzyUjkTbDm3J7P1RNK1lgoO7jxtsw== "@yarnpkg/lockfile@^1.1.0": version "1.1.0" @@ -1798,16 +2864,6 @@ version "0.1.0" resolved "https://codeload.github.com/matter-labs/era-contracts/tar.gz/446d391d34bdb48255d5f8fef8a8248925fc98b9" -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abbrev@1.0.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== - abitype@1.0.7, abitype@^1.0.2, abitype@^1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.7.tgz#876a0005d211e1c9132825d45bcee7b46416b284" @@ -1830,30 +2886,15 @@ adm-zip@^0.4.16: resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== - aes-js@4.0.0-beta.5: version "4.0.0-beta.5" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" +ajv-errors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv@^6.12.6: version "6.12.6" @@ -1876,9 +2917,9 @@ ajv@^8.0.1: uri-js "^4.4.1" amazon-cognito-identity-js@^6.3.6: - version "6.3.12" - 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== + version "6.3.16" + resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.16.tgz#4a6aceb64c80406b9ee4344980794ff9e506017a" + integrity sha512-HPGSBGD6Q36t99puWh0LnptxO/4icnk2kqIQ9cTJ2tFQo5NMUnWQIgtrTAk8nm+caqUbjDzXzG56GBjI2tS6jQ== dependencies: "@aws-crypto/sha256-js" "1.2.2" buffer "4.9.2" @@ -1886,45 +2927,21 @@ amazon-cognito-identity-js@^6.3.6: isomorphic-unfetch "^3.0.0" js-cookie "^2.2.1" -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== - -ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-colors@^4.1.1, ansi-colors@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1939,23 +2956,10 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -antlr4@^4.13.1-patch-1: - version "4.13.1-patch-1" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1-patch-1.tgz#946176f863f890964a050c4f18c47fd6f7e57602" - integrity sha512-OjFLWWLzDMV9rdFhpvroCWR4ooktNg9/nvVYSA5z28wuVpU36QUNuioR1XLnQtcjVlf8npjyz593PxnU/f/Cow== - -antlr4ts@^0.5.0-alpha.4: - version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" - integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== arg@^4.1.0: version "4.1.3" @@ -1984,55 +2988,11 @@ array-back@^4.0.1, array-back@^4.0.2: resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== -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-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - -array.prototype.findlast@^1.2.2: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" - integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^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.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - asn1js@^3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" @@ -2047,6 +3007,11 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + ast-parents@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" @@ -2064,11 +3029,6 @@ async-retry@^1.3.3: dependencies: retry "0.13.1" -async@1.x: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2086,13 +3046,31 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.3.4, axios@^1.5.1, axios@^1.6.8: - version "1.7.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" - integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== +axios@1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.12.2.tgz#6c307390136cf7a2278d09cec63b136dfc6e6da7" + integrity sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw== dependencies: follow-redirects "^1.15.6" - form-data "^4.0.0" + form-data "^4.0.4" + proxy-from-env "^1.1.0" + +axios@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.2.tgz#9ada120b7b5ab24509553ec3e40123521117f687" + integrity sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.4" + proxy-from-env "^1.1.0" + +axios@^1.7.4: + version "1.13.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.5.tgz#5e464688fa127e11a660a2c49441c009f6567a43" + integrity sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q== + dependencies: + follow-redirects "^1.15.11" + form-data "^4.0.5" proxy-from-env "^1.1.0" balanced-match@^1.0.0: @@ -2101,9 +3079,9 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + version "3.0.11" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" + integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== dependencies: safe-buffer "^5.0.1" @@ -2122,6 +3100,17 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== +better-ajv-errors@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-2.0.3.tgz#effc8d80b5b9777447159bfec7492daedeb75ecb" + integrity sha512-t1vxUP+vYKsaYi/BbKo2K98nEAZmfi4sjwvmRT8aOPDzPJeAtLurfoIDazVkLILxO4K+Sw4YrLYnBQ46l6pePg== + dependencies: + "@babel/code-frame" "^7.27.1" + "@humanwhocodes/momoa" "^2.0.4" + chalk "^4.1.2" + jsonpointer "^5.0.1" + leven "^3.1.0 < 4" + better-path-resolve@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" @@ -2129,15 +3118,10 @@ better-path-resolve@1.0.0: dependencies: is-windows "^1.0.0" -bignumber.js@^9.1.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.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== +bignumber.js@^9.1.2: + version "9.3.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.3.1.tgz#759c5aaddf2ffdc4f154f7b493e1c8770f88c4d7" + integrity sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ== bindings@^1.5.0: version "1.5.0" @@ -2146,7 +3130,7 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bl@^4.0.3, bl@^4.1.0: +bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -2160,35 +3144,26 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.1.2, bn.js@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" + integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== + +bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -boxen@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - +bowser@^2.11.0: + version "2.14.1" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.14.1.tgz#4ea39bf31e305184522d7ad7bfd91389e4f0cb79" + integrity sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2204,7 +3179,7 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.3, braces@~3.0.2: +braces@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== @@ -2216,7 +3191,7 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== @@ -2256,11 +3231,6 @@ bs58check@^2.1.2: create-hash "^1.1.0" safe-buffer "^5.1.2" -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -2288,11 +3258,6 @@ bufio@^1.0.7: resolved "https://registry.yarnpkg.com/bufio/-/bufio-1.2.1.tgz#8d4ab3ddfcd5faa90f996f922f9397d41cbaf2de" integrity sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA== -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - cacheable-lookup@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" @@ -2311,52 +3276,60 @@ cacheable-request@^10.2.8: normalize-url "^8.0.0" responselike "^3.0.0" -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: - es-define-property "^1.0.0" es-errors "^1.3.0" function-bind "^1.1.2" + +call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" get-intrinsic "^1.2.4" - set-function-length "^1.2.1" + set-function-length "^1.2.2" + +call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.0.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caseless@^0.12.0, caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -cbor@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" - integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== - dependencies: - nofilter "^3.1.0" +cbor2@^1.9.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/cbor2/-/cbor2-1.12.0.tgz#b1cae821ee8d673cff70b078c3f08041bc47bdde" + integrity sha512-3Cco8XQhi27DogSp9Ri6LYNZLi/TBY/JVnDe+mj06NkBjW/ZYOtekaEU4wZ4xcRMNrFkDv8KNtOAqHyDfz3lYg== -cbor@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-9.0.2.tgz#536b4f2d544411e70ec2b19a2453f10f83cd9fdb" - integrity sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ== +cbor@^10.0.0: + version "10.0.11" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-10.0.11.tgz#f60e7cc2be6c943fecec159874ae651e75661745" + integrity sha512-vIwORDd/WyB8Nc23o2zNN5RrtFGlR6Fca61TtjkUXueI3Jf2DOZDl1zsshvBntZ3wZHBM9ztjnkXSmzQDaq3WA== dependencies: - nofilter "^3.1.0" + nofilter "^3.0.2" -chai-as-promised@^7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.2.tgz#70cd73b74afd519754161386421fb71832c6d041" - integrity sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw== +chai-as-promised@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-8.0.2.tgz#cd9b77afaa976383eb4cbef9463ac5230f7a1cba" + integrity sha512-1GadL+sEJVLzDjcawPM4kjfnL+p/9vrxiEUonowKOAzvVg0PixJUdtuDzdkDeQhK3zfOE76GqGkZIQ7/Adcrqw== dependencies: - check-error "^1.0.2" + check-error "^2.1.1" chai@^4.2.0, chai@^4.3.4: version "4.4.1" @@ -2380,7 +3353,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2388,39 +3361,29 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.3.0: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -"charenc@>= 0.0.1": - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - -check-error@^1.0.2, check-error@^1.0.3: +check-error@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== dependencies: get-func-name "^2.0.2" -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" +check-error@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" + integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== -chokidar@^4.0.0: +chokidar@^4.0.1, chokidar@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== @@ -2443,59 +3406,23 @@ ci-info@^3.7.0: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.9.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" - integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - -cli-table3@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.7.tgz#bd094bfef42634ccfd9e13b9fc73274997111e39" + integrity sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA== dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" + inherits "^2.0.4" + safe-buffer "^5.2.1" + to-buffer "^1.2.2" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2520,23 +3447,13 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@1.4.0, colors@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@^1.0.8: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -command-exists@^1.2.8: - version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - command-line-args@^5.1.1: version "5.2.1" resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" @@ -2562,15 +3479,10 @@ commander@^10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== -commander@^8.1.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - compare-versions@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.0.tgz#3f2131e3ae93577df111dba133e6db876ffe127a" - integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== + version "6.1.1" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.1.tgz#7af3cc1099ba37d244b3145a9af5201b629148a9" + integrity sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg== complex.js@^2.1.1: version "2.1.1" @@ -2582,16 +3494,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.6.0, concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - config-chain@^1.1.11: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" @@ -2600,11 +3502,6 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -2631,7 +3528,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2659,7 +3556,7 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.5: +cross-spawn@^7.0.5, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -2668,67 +3565,30 @@ cross-spawn@^7.0.5: shebang-command "^2.0.0" which "^2.0.1" -"crypt@>= 0.0.1": - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - -crypto-js@^4.1.1: +crypto-js@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== -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: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -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: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -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: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - dataloader@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw== -death@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" - integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== +debug@^4.1.1, debug@^4.3.2, debug@^4.3.5: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" -debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: +debug@^4.3.1: version "4.3.5" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" -debug@4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - decamelize@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" @@ -2746,36 +3606,29 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -deep-eql@^4.0.1, deep-eql@^4.1.3: +deep-eql@^4.1.3: version "4.1.4" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== dependencies: type-detect "^4.0.0" +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== + deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-data-property@^1.0.1, define-data-property@^1.1.4: +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== @@ -2784,51 +3637,30 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - detect-indent@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== detect-libc@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" - integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -difflib@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e" - integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w== - dependencies: - heap ">= 0.2.0" +diff@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== dir-glob@^3.0.1: version "3.0.1" @@ -2841,6 +3673,20 @@ dir-glob@^3.0.1: version "1.0.0" resolved "https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0" +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + eip55@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/eip55/-/eip55-2.1.1.tgz#28b743c4701ac3c811b1e9fe67e39cf1d0781b96" @@ -2861,10 +3707,10 @@ elliptic@6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -elliptic@^6.5.2, elliptic@^6.5.4: - version "6.5.5" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded" - integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== +elliptic@6.6.1, elliptic@^6.5.7: + version "6.6.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== dependencies: bn.js "^4.11.9" brorand "^1.1.0" @@ -2879,10 +3725,15 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + version "1.4.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" + integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== dependencies: once "^1.4.0" @@ -2906,181 +3757,91 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1, 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-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-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== -es-errors@^1.2.1, es-errors@^1.3.0: +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-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== +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: es-errors "^1.3.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== +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: - get-intrinsic "^1.2.4" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" has-tostringtag "^1.0.2" - hasown "^2.0.1" - -es-shim-unscopables@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" + hasown "^2.0.2" -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" +esbuild@~0.27.0: + version "0.27.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.2.tgz#d83ed2154d5813a5367376bb2292a9296fc83717" + integrity sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.27.2" + "@esbuild/android-arm" "0.27.2" + "@esbuild/android-arm64" "0.27.2" + "@esbuild/android-x64" "0.27.2" + "@esbuild/darwin-arm64" "0.27.2" + "@esbuild/darwin-x64" "0.27.2" + "@esbuild/freebsd-arm64" "0.27.2" + "@esbuild/freebsd-x64" "0.27.2" + "@esbuild/linux-arm" "0.27.2" + "@esbuild/linux-arm64" "0.27.2" + "@esbuild/linux-ia32" "0.27.2" + "@esbuild/linux-loong64" "0.27.2" + "@esbuild/linux-mips64el" "0.27.2" + "@esbuild/linux-ppc64" "0.27.2" + "@esbuild/linux-riscv64" "0.27.2" + "@esbuild/linux-s390x" "0.27.2" + "@esbuild/linux-x64" "0.27.2" + "@esbuild/netbsd-arm64" "0.27.2" + "@esbuild/netbsd-x64" "0.27.2" + "@esbuild/openbsd-arm64" "0.27.2" + "@esbuild/openbsd-x64" "0.27.2" + "@esbuild/openharmony-arm64" "0.27.2" + "@esbuild/sunos-x64" "0.27.2" + "@esbuild/win32-arm64" "0.27.2" + "@esbuild/win32-ia32" "0.27.2" + "@esbuild/win32-x64" "0.27.2" escalade@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-latex@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1" integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escodegen@1.8.x: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -esprima@2.7.x, esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eth-gas-reporter@^0.2.25: - version "0.2.27" - resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz#928de8548a674ed64c7ba0bf5795e63079150d4e" - integrity sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw== - dependencies: - "@solidity-parser/parser" "^0.14.0" - axios "^1.5.1" - cli-table3 "^0.5.0" - colors "1.4.0" - ethereum-cryptography "^1.0.3" - ethers "^5.7.2" - fs-readdir-recursive "^1.1.0" - lodash "^4.17.14" - markdown-table "^1.1.3" - mocha "^10.2.0" - req-cwd "^2.0.0" - sha1 "^1.1.1" - sync-request "^6.0.0" - -ethereum-bloom-filters@^1.0.6: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.1.0.tgz#b3fc1eb789509ee30db0bf99a2988ccacb8d0397" - integrity sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw== - dependencies: - "@noble/hashes" "^1.4.0" - -ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: +ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== @@ -3101,7 +3862,7 @@ ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereum-cryptography@^1.0.3, ethereum-cryptography@^1.1.2: +ethereum-cryptography@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== @@ -3111,38 +3872,17 @@ ethereum-cryptography@^1.0.3, ethereum-cryptography@^1.1.2: "@scure/bip32" "1.1.5" "@scure/bip39" "1.1.1" -ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.0.tgz#06e2d9c0d89f98ffc6a83818f55bf85afecd50dc" - integrity sha512-hsm9JhfytIf8QME/3B7j4bc8V+VdTU+Vas1aJlvIS96ffoNAosudXvGoEvWmc7QZYdkC8mrMJz9r0fcbw7GyCA== +ethereum-cryptography@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz#58f2810f8e020aecb97de8c8c76147600b0b8ccf" + integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg== dependencies: - "@noble/curves" "1.4.0" + "@noble/curves" "1.4.2" "@noble/hashes" "1.4.0" "@scure/bip32" "1.4.0" "@scure/bip39" "1.3.0" -ethereumjs-abi@^0.6.8: - version "0.6.8" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" - integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - 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.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -3153,43 +3893,20 @@ ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethers@^5.7.2: - version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" - 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@^6.1.0, ethers@^6.4.0, ethers@^6.7.0: +ethers@^6.14.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.16.0.tgz#fff9b4f05d7a359c774ad6e91085a800f7fccf65" + integrity sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "22.7.5" + aes-js "4.0.0-beta.5" + tslib "2.7.0" + ws "8.17.1" + +ethers@^6.4.0: version "6.13.1" resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.1.tgz#2b9f9c7455cde9d38b30fe6589972eb083652961" integrity sha512-hdJ2HOxg/xx97Lm9HdCWk949BfYqYWpyw4//78SiwOLgASyfrNszfMUNB2joKjvGUdwhHfaiMMFFwacVVoLR9A== @@ -3202,22 +3919,6 @@ ethers@^6.1.0, ethers@^6.4.0, ethers@^6.7.0: tslib "2.4.0" ws "8.17.1" -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -ethjs-util@0.1.6, ethjs-util@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - eventemitter3@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" @@ -3278,16 +3979,10 @@ fast-diff@^1.2.0: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.0.3: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" +fast-equals@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.4.0.tgz#b60073b8764f27029598447f05773c7534ba7f1e" + integrity sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw== fast-glob@^3.2.9: version "3.3.3" @@ -3305,10 +4000,12 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-xml-parser@5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.4.tgz#06f39aafffdbc97bef0321e626c7ddd06a043ecf" + integrity sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA== + dependencies: + strnum "^2.1.0" fastq@^1.6.0: version "1.17.1" @@ -3317,11 +4014,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fdir@^6.4.3: - version "6.4.3" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" - integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== - file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -3341,14 +4033,6 @@ find-replace@^3.0.0: dependencies: array-back "^3.0.1" -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3357,6 +4041,14 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-yarn-workspace-root@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" @@ -3369,17 +4061,25 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -follow-redirects@^1.12.1, follow-redirects@^1.15.6: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== +follow-redirects@^1.15.11, follow-redirects@^1.15.6: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + +for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== + dependencies: + is-callable "^1.2.7" -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - is-callable "^1.1.3" + cross-spawn "^7.0.6" + signal-exit "^4.0.1" forge-std@^1.1.2: version "1.1.2" @@ -3391,34 +4091,17 @@ form-data-encoder@^2.1.2: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== -form-data@^2.2.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +form-data@^4.0.4, form-data@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" mime-types "^2.1.12" -fp-ts@1.19.3: - version "1.19.3" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" - integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== - -fp-ts@^1.0.0: - version "1.19.5" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" - integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== - fraction.js@^4.2.0: version "4.3.7" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" @@ -3434,15 +4117,6 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^11.2.0: version "11.2.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" @@ -3470,7 +4144,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.1.0: +fs-extra@^9.0.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -3480,17 +4154,12 @@ fs-extra@^9.0.0, fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: +fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -3500,21 +4169,6 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -3525,50 +4179,48 @@ get-func-name@^2.0.1, get-func-name@^2.0.2: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, 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== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" es-errors "^1.3.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" -get-port@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" - integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -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" - -ghost-testrpc@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" - integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== +get-tsconfig@^4.7.5: + version "4.13.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.13.0.tgz#fcdd991e6d22ab9a600f00e91c318707a5d9a0d7" + integrity sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ== dependencies: - chalk "^2.4.2" - node-emoji "^1.10.0" + resolve-pkg-maps "^1.0.0" github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -3587,29 +4239,19 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -glob@8.1.0, glob@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== +glob@^10.4.5: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" -glob@^7.0.0, glob@^7.1.3: +glob@^7.1.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -3621,43 +4263,16 @@ glob@^7.0.0, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globalthis@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== - dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" - -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" globby@^11.0.0: version "11.1.0" @@ -3671,12 +4286,10 @@ globby@^11.0.0: merge2 "^1.4.1" slash "^3.0.0" -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== got@^12.1.0: version "12.6.1" @@ -3705,86 +4318,31 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -handlebars@^4.0.1: - version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" - integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== +hardhat@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-3.1.5.tgz#c257a3d97058ebc2f6c09390006089709326697b" + integrity sha512-0Z0KI/m6wJYCMZgDK3QuVqR59lSa3aMu6QHKqnbIYXKu/phQ+YFKJZAY4zkUKX21ZjcrrRg25qLUzZw1bO6g/A== dependencies: - minimist "^1.2.5" - neo-async "^2.6.2" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -hardhat-gas-reporter@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz#ebe5bda5334b5def312747580cd923c2b09aef1b" - integrity sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA== - dependencies: - array-uniq "1.0.3" - eth-gas-reporter "^0.2.25" - sha1 "^1.1.1" - -hardhat@^2.22.19: - version "2.22.19" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.19.tgz#92eb6f59e75b0dded841fecf16260a5e3f6eb4eb" - integrity sha512-jptJR5o6MCgNbhd7eKa3mrteR+Ggq1exmE5RUL5ydQEVKcZm0sss5laa86yZ0ixIavIvF4zzS7TdGDuyopj0sQ== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/edr" "^0.8.0" - "@nomicfoundation/ethereumjs-common" "4.0.4" - "@nomicfoundation/ethereumjs-tx" "5.0.4" - "@nomicfoundation/ethereumjs-util" "9.0.4" - "@nomicfoundation/solidity-analyzer" "^0.1.0" - "@sentry/node" "^5.18.1" - "@types/bn.js" "^5.1.0" - "@types/lru-cache" "^5.1.0" + "@nomicfoundation/edr" "0.12.0-next.22" + "@nomicfoundation/hardhat-errors" "^3.0.6" + "@nomicfoundation/hardhat-utils" "^3.0.6" + "@nomicfoundation/hardhat-vendored" "^3.0.0" + "@nomicfoundation/hardhat-zod-utils" "^3.0.1" + "@nomicfoundation/solidity-analyzer" "^0.1.1" + "@sentry/core" "^9.4.0" adm-zip "^0.4.16" - aggregate-error "^3.0.0" - ansi-escapes "^4.3.0" - boxen "^5.1.2" - chokidar "^4.0.0" - ci-info "^2.0.0" - debug "^4.1.1" + chalk "^5.3.0" + chokidar "^4.0.3" + debug "^4.3.2" enquirer "^2.3.0" - env-paths "^2.2.0" - ethereum-cryptography "^1.0.3" - ethereumjs-abi "^0.6.8" - find-up "^5.0.0" - fp-ts "1.19.3" - fs-extra "^7.0.1" - immutable "^4.0.0-rc.12" - io-ts "1.10.4" - json-stream-stringify "^3.1.4" - keccak "^3.0.2" - lodash "^4.17.11" - mnemonist "^0.38.0" - mocha "^10.0.0" - p-map "^4.0.0" - picocolors "^1.1.0" - raw-body "^2.4.1" - resolve "1.17.0" - semver "^6.3.0" - solc "0.8.26" - source-map-support "^0.5.13" - stacktrace-parser "^0.1.10" - tinyglobby "^0.2.6" - tsort "0.0.1" - undici "^5.14.0" - uuid "^8.3.2" - ws "^7.4.6" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + ethereum-cryptography "^2.2.1" + micro-eth-signer "^0.14.0" + p-map "^7.0.2" + resolve.exports "^2.0.3" + semver "^7.6.3" + tsx "^4.19.3" + ws "^8.18.0" + zod "^3.23.8" has-flag@^3.0.0: version "3.0.0" @@ -3796,38 +4354,34 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.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, 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.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-tostringtag@^1.0.0, has-tostringtag@^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" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== +hash-base@^3.0.0, hash-base@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.2.tgz#79d72def7611c3f6e3c3b5730652638001b10a74" + integrity sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg== dependencies: inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" + to-buffer "^1.2.1" hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" @@ -3837,23 +4391,18 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: +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: +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -"heap@>= 0.2.0": - version "0.2.7" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" - integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== - hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -3863,39 +4412,11 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -http-basic@^8.1.1: - version "8.1.3" - resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" - integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== - dependencies: - caseless "^0.12.0" - concat-stream "^1.6.2" - http-response-object "^3.0.1" - parse-cache-control "^1.0.1" - http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-response-object@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" - integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== - dependencies: - "@types/node" "^10.0.3" - http2-wrapper@^2.1.10: version "2.2.1" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" @@ -3904,20 +4425,12 @@ http2-wrapper@^2.1.10: quick-lru "^5.1.1" resolve-alpn "^1.2.0" -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - human-id@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/human-id/-/human-id-4.1.1.tgz#2801fbd61b9a5c1c9170f332802db6408a39a4b0" integrity sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg== -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3929,25 +4442,20 @@ ieee754@^1.1.13, ieee754@^1.1.4: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.1.1, ignore@^5.2.4: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== - ignore@^5.2.0: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -immer@10.0.2: - version "10.0.2" - resolved "https://registry.yarnpkg.com/immer/-/immer-10.0.2.tgz#11636c5b77acf529e059582d76faf338beb56141" - integrity sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA== +ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== -immutable@^4.0.0-rc.12: - version "4.3.6" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447" - integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ== +immer@^10.0.3: + version "10.2.0" + resolved "https://registry.yarnpkg.com/immer/-/immer-10.2.0.tgz#88a4ce06a1af64172d254b70f7cb04df51c871b1" + integrity sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw== import-fresh@^3.3.0: version "3.3.0" @@ -3957,11 +4465,6 @@ import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3970,80 +4473,22 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -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" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -invariant@2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -io-ts@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" - integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== - dependencies: - fp-ts "^1.0.0" - -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.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== @@ -4055,27 +4500,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.13.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1" - integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A== - dependencies: - hasown "^2.0.2" - -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: - is-typed-array "^1.1.13" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - is-docker@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" @@ -4086,77 +4510,33 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -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.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2, 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-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - is-subdir@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/is-subdir/-/is-subdir-1.2.0.tgz#b791cd28fab5202e91a08280d51d9d7254fd20d4" @@ -4164,32 +4544,18 @@ is-subdir@^1.1.1: dependencies: better-path-resolve "1.0.0" -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -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== +is-typed-array@^1.1.14: + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: - which-typed-array "^1.1.14" + which-typed-array "^1.1.16" is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - is-windows@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -4230,6 +4596,15 @@ isows@1.0.6: resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7" integrity sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + javascript-natural-sort@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" @@ -4250,7 +4625,7 @@ js-sha3@0.8.0, js-sha3@^0.8.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@3.x, js-yaml@^3.13.1, js-yaml@^3.6.1: +js-yaml@^3.13.1, js-yaml@^3.6.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -4258,7 +4633,7 @@ js-yaml@3.x, js-yaml@^3.13.1, js-yaml@^3.6.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@4.1.0, js-yaml@^4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -4285,16 +4660,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-stream-stringify@^3.1.4: +json-stream-stringify@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz#ebe32193876fb99d4ec9f612389a8d8e2b5d54d4" integrity sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog== -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -4311,12 +4681,12 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonschema@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" - integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== +jsonpointer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== -keccak@^3.0.0, keccak@^3.0.2, keccak@^3.0.3: +keccak@^3.0.0, keccak@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== @@ -4332,11 +4702,6 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - klaw-sync@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" @@ -4344,11 +4709,6 @@ klaw-sync@^6.0.0: dependencies: graceful-fs "^4.1.11" -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - latest-version@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" @@ -4356,13 +4716,10 @@ latest-version@^7.0.0: dependencies: package-json "^8.1.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" +"leven@^3.1.0 < 4": + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== lines-and-columns@^1.1.6: version "1.2.4" @@ -4388,16 +4745,6 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - lodash.startcase@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" @@ -4408,12 +4755,12 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0, log-symbols@^4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -4421,7 +4768,7 @@ log-symbols@4.1.0, log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -loose-envify@^1.0.0, loose-envify@^1.1.0: +loose-envify@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -4440,20 +4787,20 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -markdown-table@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" - integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== mathjs@^10.4.0: version "10.6.4" @@ -4479,22 +4826,28 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micro-ftch@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" - integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== +micro-eth-signer@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/micro-eth-signer/-/micro-eth-signer-0.14.0.tgz#8aa1fe997d98d6bdf42f2071cef7eb01a66ecb22" + integrity sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw== + dependencies: + "@noble/curves" "~1.8.1" + "@noble/hashes" "~1.7.1" + micro-packed "~0.7.2" + +micro-packed@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/micro-packed/-/micro-packed-0.7.3.tgz#59e96b139dffeda22705c7a041476f24cabb12b6" + integrity sha512-2Milxs+WNC00TRlem41oRswvw31146GiSaoCT7s3Xi2gMUglW5QBeqlQaZeHr5tJx9nm3i57LNXPqxOOaWtTYg== + dependencies: + "@scure/base" "~1.2.5" -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.2: version "4.0.7" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== @@ -4522,11 +4875,6 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -4547,20 +4895,13 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -"minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^5.0.1: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" @@ -4568,60 +4909,59 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.7: +minimatch@^9.0.4, 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.3, minimist@^1.2.6, minimist@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@0.5.x: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mnemonist@^0.38.0: - version "0.38.5" - resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" - integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== - dependencies: - obliterator "^2.0.0" - -mocha@^10.0.0, mocha@^10.2.0: - version "10.5.1" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.5.1.tgz#54cfa5212ffc9e04ee68b27aa0f36519919ae877" - integrity sha512-eq5tEnaz2kM9ade8cuGJBMh5fBb9Ih/TB+ddlmPR+wLQmwLhUwa0ovqDlg7OTfKquW0BI7NUcNWX7DH8sC+3gw== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "^3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "8.1.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" +mocha@^11.7.5: + version "11.7.5" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" + integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== + dependencies: + browser-stdout "^1.3.1" + chokidar "^4.0.1" + debug "^4.3.5" + diff "^7.0.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^10.4.5" + he "^1.2.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^9.0.5" + ms "^2.1.3" + picocolors "^1.1.1" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^9.2.0" + yargs "^17.7.2" + yargs-parser "^21.1.1" + yargs-unparser "^2.0.0" mri@^1.2.0: version "1.2.0" @@ -4633,31 +4973,15 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - -ndjson@2.0.0: +napi-build-utils@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-2.0.0.tgz#320ac86f6fe53f5681897349b86ac6f43bfa3a19" - integrity sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ== - dependencies: - json-stringify-safe "^5.0.1" - minimist "^1.2.5" - readable-stream "^3.6.0" - split2 "^3.0.0" - through2 "^4.0.0" - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e" + integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA== nice-try@^1.0.4: version "1.0.5" @@ -4665,9 +4989,9 @@ nice-try@^1.0.4: integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-abi@^3.3.0: - version "3.65.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3" - integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA== + version "3.87.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.87.0.tgz#423e28fea5c2f195fddd98acded9938c001ae6dd" + integrity sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ== dependencies: semver "^7.3.5" @@ -4681,18 +5005,16 @@ node-addon-api@^3.0.2: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + node-addon-api@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== -node-emoji@^1.10.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - dependencies: - lodash "^4.17.21" - node-fetch@^2.5.0, node-fetch@^2.6.1, node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -4701,93 +5023,36 @@ node-fetch@^2.5.0, node-fetch@^2.6.1, node-fetch@^2.7.0: whatwg-url "^5.0.0" node-gyp-build@^4.2.0, node-gyp-build@^4.5.0: - version "4.8.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" - integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== + version "4.8.4" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" + integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== -node-hid@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.2.0.tgz#33e039e7530a7bfe2b7a25f0a2f9496af8b02236" - integrity sha512-vj48zh9j555DZzUhMc8tk/qw6xPFrDyPBH1ST1Z/hWaA/juBJw7IuSxPeOgpzNFNU36mGYj+THioRMt1xOdm/g== +node-hid@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.2.tgz#3145fa86ed4336a402a71e9f372c54213b88797c" + integrity sha512-qhCyQqrPpP93F/6Wc/xUR7L8mAJW0Z6R7HMQV8jCHHksAxNDe/4z4Un/H9CpLOT+5K39OPyt9tIQlavxWES3lg== dependencies: bindings "^1.5.0" node-addon-api "^3.0.2" prebuild-install "^7.1.1" -nofilter@^3.1.0: +nofilter@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== -nopt@3.x: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== - dependencies: - abbrev "1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - normalize-url@^8.0.0: version "8.0.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -obliterator@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" - integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== - -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - open@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" @@ -4796,38 +5061,6 @@ open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -ordinal@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" - integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -4896,18 +5129,21 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" +p-map@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.4.tgz#b81814255f542e252d5729dca4d66e5ec14935b8" + integrity sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ== p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + package-json@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" @@ -4932,11 +5168,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-cache-control@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" - integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== - parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -4987,10 +5218,13 @@ path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-type@^4.0.0: version "4.0.0" @@ -5003,36 +5237,32 @@ pathval@^1.1.1: integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pbkdf2@^3.0.17: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + version "3.1.5" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.5.tgz#444a59d7a259a95536c56e80c89de31cc01ed366" + integrity sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ== 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" + create-hash "^1.2.0" + create-hmac "^1.1.7" + ripemd160 "^2.0.3" + safe-buffer "^5.2.1" + sha.js "^2.4.12" + to-buffer "^1.2.1" picocolors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -picocolors@^1.1.0: +picocolors@^1.1.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" - integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== - pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -5044,21 +5274,21 @@ pluralize@^8.0.0: integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== 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== + version "1.1.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== prebuild-install@^7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" - integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== + version "7.1.3" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.3.tgz#d630abad2b147443f20a212917beae68b8092eec" + integrity sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug== dependencies: detect-libc "^2.0.0" expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.3" mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" + napi-build-utils "^2.0.0" node-abi "^3.3.0" pump "^3.0.0" rc "^1.2.7" @@ -5066,11 +5296,6 @@ prebuild-install@^7.1.1: tar-fs "^2.0.0" tunnel-agent "^0.6.0" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prettier-plugin-solidity@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz#59944d3155b249f7f234dee29f433524b9a4abcf" @@ -5090,21 +5315,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -promise@^8.0.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" - integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== - dependencies: - asap "~2.0.6" - -prompts@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - proper-lockfile@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" @@ -5125,9 +5335,9 @@ proxy-from-env@^1.1.0: integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + version "3.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d" + integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -5149,13 +5359,6 @@ pvutils@^1.1.3: resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== -qs@^6.4.0: - version "6.12.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" - integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== - dependencies: - side-channel "^1.0.6" - quansync@^0.2.7: version "0.2.10" resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.10.tgz#32053cf166fa36511aae95fc49796116f2dc20e1" @@ -5178,16 +5381,6 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -raw-body@^2.4.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - rc@1.2.8, rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -5198,7 +5391,7 @@ rc@1.2.8, rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^18.2.0: +react-dom@18.3.1: version "18.3.1" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== @@ -5206,7 +5399,7 @@ react-dom@^18.2.0: loose-envify "^1.1.0" scheduler "^0.23.2" -react@^18.2.0: +react@18.3.1: version "18.3.1" resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== @@ -5223,16 +5416,7 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^2.2.2: +readable-stream@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -5245,52 +5429,40 @@ readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -recursive-readdir@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" - integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== - dependencies: - minimatch "^3.0.5" - reduce-flatten@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== +redux-thunk@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-3.1.0.tgz#94aa6e04977c30e14e892eae84978c1af6058ff3" + integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw== + +redux@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-5.0.1.tgz#97fa26881ce5746500125585d5642c77b6e9447b" + integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w== + regenerator-runtime@^0.14.0: version "0.14.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -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" - registry-auth-token@^5.0.1: version "5.0.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" @@ -5305,20 +5477,6 @@ registry-url@^6.0.0: dependencies: rc "1.2.8" -req-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-2.0.0.tgz#d4082b4d44598036640fb73ddea01ed53db49ebc" - integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== - dependencies: - req-from "^2.0.0" - -req-from@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/req-from/-/req-from-2.0.0.tgz#d74188e47f93796f4aa71df6ee35ae689f3e0e70" - integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== - dependencies: - resolve-from "^3.0.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5329,16 +5487,16 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +reselect@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-5.1.1.tgz#c766b1eb5d558291e5e550298adb0becc24bb72e" + integrity sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w== + resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5349,26 +5507,15 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== - -resolve@1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.1.6: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" +resolve.exports@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f" + integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== responselike@^3.0.0: version "3.0.0" @@ -5377,14 +5524,6 @@ responselike@^3.0.0: dependencies: lowercase-keys "^3.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - retry@0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" @@ -5400,6 +5539,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -5407,15 +5551,15 @@ rimraf@^2.6.3: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== +ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.3.tgz#9be54e4ba5e3559c8eee06a25cd7648bbccdf5a8" + integrity sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA== dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" + hash-base "^3.1.2" + inherits "^2.0.4" -rlp@^2.2.3, rlp@^2.2.4: +rlp@^2.2.4: version "2.2.7" resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== @@ -5429,24 +5573,14 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== +rxjs@7.8.2, rxjs@^7.8.1: + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== dependencies: tslib "^2.1.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-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.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -5456,40 +5590,11 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -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" - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sc-istanbul@^0.4.5: - version "0.4.6" - resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" - integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - scheduler@^0.23.2: version "0.23.2" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" @@ -5497,18 +5602,18 @@ scheduler@^0.23.2: dependencies: loose-envify "^1.1.0" -scrypt-js@3.0.1, scrypt-js@^3.0.0: +scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== secp256k1@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + version "4.0.4" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.4.tgz#58f0bfe1830fe777d9ca1ffc7574962a8189f8ab" + integrity sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw== dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" + elliptic "^6.5.7" + node-addon-api "^5.0.0" node-gyp-build "^4.2.0" seedrandom@^3.0.5: @@ -5516,17 +5621,17 @@ seedrandom@^3.0.5: resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== +semver@7.7.3, semver@^7.3.5, semver@^7.7.2: + version "7.7.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== + semver@^5.5.0, semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.3.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.4: +semver@^7.3.7, semver@^7.5.2, semver@^7.5.4: version "7.6.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== @@ -5546,19 +5651,14 @@ semver@^7.7.1: resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== -semver@^7.7.2: - version "7.7.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" - integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" -set-function-length@^1.2.1: +set-function-length@^1.2.2: 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== @@ -5570,41 +5670,19 @@ set-function-length@^1.2.1: gopd "^1.0.1" has-property-descriptors "^1.0.2" -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" - setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sha1@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" - integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== +sha.js@^2.4.0, sha.js@^2.4.12, sha.js@^2.4.8: + version "2.4.12" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" + integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== dependencies: - charenc ">= 0.0.1" - crypt ">= 0.0.1" + inherits "^2.0.4" + safe-buffer "^5.2.1" + to-buffer "^1.2.0" shebang-command@^1.2.0: version "1.2.0" @@ -5630,25 +5708,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@^0.8.3: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -side-channel@^1.0.4, side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -5673,11 +5732,6 @@ simple-get@^4.0.0: once "^1.3.1" simple-concat "^1.0.0" -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -5702,28 +5756,16 @@ solady@0.0.182: resolved "https://registry.yarnpkg.com/solady/-/solady-0.0.182.tgz#bd8c47f128a3a752358ad052782773966d74c400" integrity sha512-FW6xo1akJoYpkXMzu58/56FcNU3HYYNamEbnFO3iSibXk0nSHo0DV2Gu/zI3FPg3So5CCX6IYli1TT1IWATnvg== -solc@0.8.26: - version "0.8.26" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.26.tgz#afc78078953f6ab3e727c338a2fefcd80dd5b01a" - 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" - -solhint@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-5.0.1.tgz#f0f783bd9d945e5a27b102295a3f28edba241d6c" - integrity sha512-QeQLS9HGCnIiibt+xiOa/+MuP7BWz9N7C5+Mj9pLHshdkNhuo3AzCpWmjfWVZBUuwIUO3YyCRVIcYLR3YOKGfg== +solhint@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/solhint/-/solhint-6.0.3.tgz#467a65bc479a1d249fef881d0f44ecb9864cc34c" + integrity sha512-LYiy1bN8X9eUsti13mbS4fY6ILVxhP6VoOgqbHxCsHl5VPnxOWf7U1V9ZvgizxdInKBMW82D1FNJO+daAcWHbA== dependencies: - "@solidity-parser/parser" "^0.18.0" + "@solidity-parser/parser" "^0.20.2" ajv "^6.12.6" - antlr4 "^4.13.1-patch-1" + ajv-errors "^1.0.1" ast-parents "^0.0.1" + better-ajv-errors "^2.0.2" chalk "^4.1.2" commander "^10.0.0" cosmiconfig "^8.0.0" @@ -5735,18 +5777,15 @@ solhint@^5.0.1: lodash "^4.17.21" pluralize "^8.0.0" semver "^7.5.2" - strip-ansi "^6.0.1" table "^6.8.1" text-table "^0.2.0" optionalDependencies: prettier "^2.8.3" -solidity-ast@^0.4.51: - version "0.4.56" - resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.56.tgz#94fe296f12e8de1a3bed319bc06db8d05a113d7a" - integrity sha512-HgmsA/Gfklm/M8GFbCX/J1qkVH0spXHgALCNZ8fA8x5X+MFdn/8CP2gr5OVyXjXw6RZTPC/Sxl2RUDQOXyNMeA== - dependencies: - array.prototype.findlast "^1.2.2" +solidity-ast@^0.4.60: + version "0.4.61" + resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.61.tgz#b51720ece553a2c7d84551ee5a7a2306080d23d0" + integrity sha512-OYBJYcYyG7gLV0VuXl9CUrvgJXjV/v0XnR4+1YomVe3q+QyENQXJJxAEASUz4vN6lMAl+C8RSRSr5MBAz09f6w== solidity-bytes-utils@^0.8.0: version "0.8.2" @@ -5761,51 +5800,6 @@ solidity-comments-extractor@^0.0.8: resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz#f6e148ab0c49f30c1abcbecb8b8df01ed8e879f8" integrity sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g== -solidity-coverage@^0.8.0: - version "0.8.12" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.12.tgz#c4fa2f64eff8ada7a1387b235d6b5b0e6c6985ed" - integrity sha512-8cOB1PtjnjFRqOgwFiD8DaUsYJtVJ6+YdXQtSZDrLGf8cdhhh8xzTtGzVTGeBf15kTv0v7lYPJlV/az7zLEPJw== - dependencies: - "@ethersproject/abi" "^5.0.9" - "@solidity-parser/parser" "^0.18.0" - chalk "^2.4.2" - death "^1.1.0" - difflib "^0.2.4" - fs-extra "^8.1.0" - ghost-testrpc "^0.0.2" - global-modules "^2.0.0" - globby "^10.0.1" - jsonschema "^1.2.4" - lodash "^4.17.21" - mocha "^10.2.0" - node-emoji "^1.10.0" - pify "^4.0.1" - recursive-readdir "^2.2.2" - sc-istanbul "^0.4.5" - semver "^7.3.4" - shelljs "^0.8.3" - web3-utils "^1.3.6" - -source-map-support@^0.5.13: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== - dependencies: - amdefine ">=0.0.4" - spawndamnit@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-3.0.1.tgz#44410235d3dc4e21f8e4f740ae3266e4486c2aed" @@ -5814,44 +5808,17 @@ spawndamnit@^3.0.1: cross-spawn "^7.0.5" signal-exit "^4.0.1" -split2@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -stacktrace-parser@^0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" - integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== - dependencies: - type-fest "^0.7.1" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - string-format@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== -string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -5860,33 +5827,23 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trim@^1.2.9: - 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.7" - define-properties "^1.2.1" - es-abstract "^1.23.0" - es-object-atoms "^1.0.0" - -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== +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.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== +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" string_decoder@^1.1.1: version "1.3.0" @@ -5902,12 +5859,12 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^3.0.0" + ansi-regex "^5.0.1" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" @@ -5916,19 +5873,19 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== - dependencies: - is-hex-prefixed "1.0.0" - -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -5938,19 +5895,10 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^3.1.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== - dependencies: - has-flag "^1.0.0" +strnum@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.2.tgz#a5e00ba66ab25f9cafa3726b567ce7a49170937a" + integrity sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ== supports-color@^5.3.0: version "5.5.0" @@ -5966,26 +5914,12 @@ supports-color@^7.1.0: 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== - -sync-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" - integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== - dependencies: - http-response-object "^3.0.1" - sync-rpc "^1.2.1" - then-request "^6.0.0" - -sync-rpc@^1.2.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" - integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: - get-port "^3.1.0" + has-flag "^4.0.0" table-layout@^1.0.2: version "1.0.2" @@ -5997,17 +5931,6 @@ table-layout@^1.0.2: typical "^5.2.0" wordwrapjs "^4.0.0" -table@^6.8.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.9.0.tgz#50040afa6264141c7566b3b81d4d82c47a8668f5" - integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - table@^6.8.1: version "6.8.2" resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" @@ -6020,9 +5943,9 @@ table@^6.8.1: strip-ansi "^6.0.1" tar-fs@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + version "2.1.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.4.tgz#800824dbf4ef06ded9afea4acafe71c67c76b930" + integrity sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ== dependencies: chownr "^1.1.1" mkdirp-classic "^0.5.2" @@ -6050,50 +5973,27 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -then-request@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" - integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== - dependencies: - "@types/concat-stream" "^1.6.0" - "@types/form-data" "0.0.33" - "@types/node" "^8.0.0" - "@types/qs" "^6.2.31" - caseless "~0.12.0" - concat-stream "^1.6.0" - form-data "^2.2.0" - http-basic "^8.1.1" - http-response-object "^3.0.1" - promise "^8.0.0" - qs "^6.4.0" - -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - tiny-emitter@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tinyglobby@^0.2.6: - version "0.2.12" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.12.tgz#ac941a42e0c5773bd0b5d08f32de82e74a1a61b5" - integrity sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww== - dependencies: - fdir "^6.4.3" - picomatch "^4.0.2" - -tmp@0.0.33, tmp@^0.0.33: +tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" +to-buffer@^1.2.0, to-buffer@^1.2.1, to-buffer@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.2.tgz#ffe59ef7522ada0a2d1cb5dfe03bb8abc3cdc133" + integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw== + dependencies: + isarray "^2.0.5" + safe-buffer "^5.2.1" + typed-array-buffer "^1.0.3" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -6101,11 +6001,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -6150,25 +6045,35 @@ tslib@2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@^1.11.1, tslib@^1.9.3: +tslib@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + +tslib@^1.11.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.3.1, tslib@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== - -tslib@^2.4.0, tslib@^2.8.1: +tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -tsort@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" - integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== +tslib@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tsx@^4.19.3: + version "4.21.0" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.21.0.tgz#32aa6cf17481e336f756195e6fe04dae3e6308b1" + integrity sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw== + dependencies: + esbuild "~0.27.0" + get-tsconfig "^4.7.5" + optionalDependencies: + fsevents "~2.3.3" tunnel-agent@^0.6.0: version "0.6.0" @@ -6177,44 +6082,12 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl-util@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" - integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" - integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== - -typechain@^8.3.0: +typechain@^8.3.0, typechain@^8.3.1: version "8.3.2" resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== @@ -6230,60 +6103,20 @@ typechain@^8.3.0: ts-command-line-args "^2.2.0" ts-essentials "^7.0.1" -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== +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-typed-array "^1.1.13" - -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.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.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" + is-typed-array "^1.1.14" typed-function@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-2.1.0.tgz#ded6f8a442ba8749ff3fe75bc41419c8d46ccc3f" integrity sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ== -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - typescript@>=4.5.0: version "5.5.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.2.tgz#c26f023cb0054e657ce04f72583ea2d85f8d0507" @@ -6299,37 +6132,20 @@ typical@^5.2.0: resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== -uglify-js@^3.1.4: - version "3.18.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.18.0.tgz#73b576a7e8fda63d2831e293aeead73e0a270deb" - integrity sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici@^5.14.0: - version "5.28.4" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" - integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== - dependencies: - "@fastify/busboy" "^2.0.0" +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== -undici@^6.11.1: - version "6.19.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.2.tgz#231bc5de78d0dafb6260cf454b294576c2f3cd31" - integrity sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA== +undici@^6.11.1, undici@^6.16.1: + version "6.23.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.23.0.tgz#7953087744d9095a96f115de3140ca3828aff3a4" + integrity sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g== unfetch@^4.2.0: version "4.2.0" @@ -6346,11 +6162,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - uri-js@^4.2.2, uri-js@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -6367,20 +6178,20 @@ usb@2.9.0: node-addon-api "^6.0.0" node-gyp-build "^4.5.0" -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +utility-types@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== + +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== v8-compile-cache-lib@^3.0.1: version "3.0.1" @@ -6402,27 +6213,6 @@ viem@^2.21.8: webauthn-p256 "0.0.10" ws "8.18.0" -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -web3-utils@^1.3.6: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.4.tgz#0daee7d6841641655d8b3726baf33b08eda1cbec" - integrity sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A== - dependencies: - "@ethereumjs/util" "^8.1.0" - bn.js "^5.2.1" - 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" - webauthn-p256@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/webauthn-p256/-/webauthn-p256-0.0.10.tgz#877e75abe8348d3e14485932968edf3325fd2fdd" @@ -6444,29 +6234,20 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -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== +which-typed-array@^1.1.16: + version "1.1.20" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.20.tgz#3fdb7adfafe0ea69157b1509f3a1cd892bd1d122" + integrity sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" has-tostringtag "^1.0.2" -which@^1.1.1, which@^1.2.9, which@^1.3.1: +which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -6480,23 +6261,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -word-wrap@~1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - wordwrapjs@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" @@ -6505,10 +6269,19 @@ wordwrapjs@^4.0.0: reduce-flatten "^2.0.0" typical "^5.2.0" -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^9.2.0: + version "9.3.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" + integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrap-ansi@^7.0.0: version "7.0.0" @@ -6519,6 +6292,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -6539,10 +6321,10 @@ ws@8.18.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== -ws@^7.4.6: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.18.0: + version "8.19.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" + integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== y18n@^5.0.5: version "5.0.8" @@ -6554,17 +6336,12 @@ yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== @@ -6574,18 +6351,18 @@ 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.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^21.1.1" yn@3.1.1: version "3.1.1" @@ -6596,3 +6373,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zod@^3.23.8: + version "3.25.76" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz#26841c3f6fd22a6a2760e7ccb719179768471e34" + integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==