diff --git a/.assets/7af3d32d5b53ea30044e549f0c9e403bbecdaaf1.svg b/.assets/7af3d32d5b53ea30044e549f0c9e403bbecdaaf1.svg new file mode 100644 index 000000000..1feb70879 --- /dev/null +++ b/.assets/7af3d32d5b53ea30044e549f0c9e403bbecdaaf1.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%10%20%Optimal 80%Optimal 80% \ No newline at end of file diff --git a/.env.example b/.env.example index b74b93393..2cc581d92 100644 --- a/.env.example +++ b/.env.example @@ -18,6 +18,7 @@ RPC_BASE=https://base.llamarpc.com RPC_ZKEVM=https://zkevm-rpc.com RPC_GNOSIS=https://rpc.ankr.com/gnosis RPC_BNB=https://binance.llamarpc.com +RPC_SCROLL=https://rpc.scroll.io # Etherscan api keys for verification & download utils ETHERSCAN_API_KEY_MAINNET= @@ -30,6 +31,7 @@ ETHERSCAN_API_KEY_BASE= ETHERSCAN_API_KEY_ZKEVM= ETHERSCAN_API_KEY_GNOSIS= ETHERSCAN_API_KEY_BNB= +ETHERSCAN_API_KEY_SCROLL= # Simulation/fork creation TENDERLY_ACCESS_TOKEN= diff --git a/diffs/AaveV3Scroll_AaveV3ScrollActivation_20240122_before_AaveV3Scroll_AaveV3ScrollActivation_20240122_after.md b/diffs/AaveV3Scroll_AaveV3ScrollActivation_20240122_before_AaveV3Scroll_AaveV3ScrollActivation_20240122_after.md new file mode 100644 index 000000000..6230ff10a --- /dev/null +++ b/diffs/AaveV3Scroll_AaveV3ScrollActivation_20240122_before_AaveV3Scroll_AaveV3ScrollActivation_20240122_after.md @@ -0,0 +1,370 @@ +## Reserve changes + +### Reserve added + +#### USDC (0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4) + +| description | value | +| --- | --- | +| decimals | 6 | +| isActive | true | +| isFrozen | false | +| supplyCap | 1,000,000 USDC | +| borrowCap | 900,000 USDC | +| debtCeiling | 0 $ | +| isSiloed | false | +| isFlashloanable | true | +| eModeCategory | 0 | +| oracle | 0x43d12Fb3AfCAd5347fA764EeAB105478337b7200 | +| oracleDecimals | 8 | +| oracleDescription | USDC / USD | +| oracleLatestAnswer | 1.00010854 | +| usageAsCollateralEnabled | true | +| ltv | 77 % | +| liquidationThreshold | 80 % | +| liquidationBonus | 5 % | +| liquidationProtocolFee | 10 % | +| reserveFactor | 10 % | +| aToken | 0x1D738a3436A8C49CefFbaB7fbF04B660fb528CbD | +| aTokenImpl | 0x92EDe4ABd9df4Bfb49b4d723e4c932e35c47C54C | +| variableDebtToken | 0x3d2E209af5BFa79297C88D6b57F89d792F6E28EE | +| variableDebtTokenImpl | 0x49bA16C08130FF8cFADE263B49387A8555bc057B | +| stableDebtToken | 0x59F359aA263f7Ac09876E869AF1F75b558904ed4 | +| stableDebtTokenImpl | 0x8Ff5f08EDB2E5e1A51bd14d0494320bdB436a149 | +| borrowingEnabled | true | +| stableBorrowRateEnabled | false | +| isBorrowableInIsolation | true | +| interestRateStrategy | 0x9205B37978aC983A297dFB53b3f3D2cCC7DDDADa | +| aTokenName | Aave Scroll USDC | +| aTokenSymbol | aScrUSDC | +| isPaused | false | +| stableDebtTokenName | Aave Scroll Stable Debt USDC | +| stableDebtTokenSymbol | stableDebtScrUSDC | +| variableDebtTokenName | Aave Scroll Variable Debt USDC | +| variableDebtTokenSymbol | variableDebtScrUSDC | +| optimalUsageRatio | 90 % | +| maxExcessUsageRatio | 10 % | +| baseVariableBorrowRate | 0 % | +| variableRateSlope1 | 6 % | +| variableRateSlope2 | 60 % | +| baseStableBorrowRate | 7 % | +| stableRateSlope1 | 6 % | +| stableRateSlope2 | 60 % | +| optimalStableToTotalDebtRatio | 20 % | +| maxExcessStableToTotalDebtRatio | 80 % | +| interestRate | ![ir](/.assets/4c5958ae482feac8d910d7dab706b3b1cfd28679.svg) | + + +#### WETH (0x5300000000000000000000000000000000000004) + +| description | value | +| --- | --- | +| decimals | 18 | +| isActive | true | +| isFrozen | false | +| supplyCap | 240 WETH | +| borrowCap | 200 WETH | +| debtCeiling | 0 $ | +| isSiloed | false | +| isFlashloanable | true | +| eModeCategory | 1 | +| oracle | 0x6bF14CB0A831078629D993FDeBcB182b21A8774C | +| oracleDecimals | 8 | +| oracleDescription | ETH / USD | +| oracleLatestAnswer | 2379.36 | +| usageAsCollateralEnabled | true | +| ltv | 75 % | +| liquidationThreshold | 78 % | +| liquidationBonus | 6 % | +| liquidationProtocolFee | 10 % | +| reserveFactor | 15 % | +| aToken | 0xf301805bE1Df81102C957f6d4Ce29d2B8c056B2a | +| aTokenImpl | 0x92EDe4ABd9df4Bfb49b4d723e4c932e35c47C54C | +| variableDebtToken | 0xfD7344CeB1Df9Cf238EcD667f4A6F99c6Ef44a56 | +| variableDebtTokenImpl | 0x49bA16C08130FF8cFADE263B49387A8555bc057B | +| stableDebtToken | 0x117d9cF336287F46DBE509a43925cFF115Aa563c | +| stableDebtTokenImpl | 0x8Ff5f08EDB2E5e1A51bd14d0494320bdB436a149 | +| borrowingEnabled | true | +| stableBorrowRateEnabled | false | +| isBorrowableInIsolation | false | +| interestRateStrategy | 0xD828F2f9Da85b190721797bEaD5Eb0acC4150f05 | +| aTokenName | Aave Scroll WETH | +| aTokenSymbol | aScrWETH | +| isPaused | false | +| stableDebtTokenName | Aave Scroll Stable Debt WETH | +| stableDebtTokenSymbol | stableDebtScrWETH | +| variableDebtTokenName | Aave Scroll Variable Debt WETH | +| variableDebtTokenSymbol | variableDebtScrWETH | +| optimalUsageRatio | 80 % | +| maxExcessUsageRatio | 20 % | +| baseVariableBorrowRate | 0 % | +| variableRateSlope1 | 3.3 % | +| variableRateSlope2 | 8 % | +| baseStableBorrowRate | 5.3 % | +| stableRateSlope1 | 3.3 % | +| stableRateSlope2 | 8 % | +| optimalStableToTotalDebtRatio | 20 % | +| maxExcessStableToTotalDebtRatio | 80 % | +| interestRate | ![ir](/.assets/7af3d32d5b53ea30044e549f0c9e403bbecdaaf1.svg) | +| eMode.label | ETH correlated | +| eMode.ltv | 90 % | +| eMode.liquidationThreshold | 93 % | +| eMode.liquidationBonus | 1 % | +| eMode.priceSource | 0x0000000000000000000000000000000000000000 | + + +#### wstETH (0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32) + +| description | value | +| --- | --- | +| decimals | 18 | +| isActive | true | +| isFrozen | false | +| supplyCap | 130 wstETH | +| borrowCap | 45 wstETH | +| debtCeiling | 0 $ | +| isSiloed | false | +| isFlashloanable | true | +| eModeCategory | 1 | +| oracle | 0xdb93e2712a8B36835078f8D28c70fCC95FD6d37c | +| oracleDecimals | 8 | +| oracleDescription | wstETH/ETH/USD | +| oracleLatestAnswer | 2746.89605153 | +| usageAsCollateralEnabled | true | +| ltv | 75 % | +| liquidationThreshold | 78 % | +| liquidationBonus | 7 % | +| liquidationProtocolFee | 10 % | +| reserveFactor | 15 % | +| aToken | 0x5B1322eeb46240b02e20062b8F0F9908d525B09c | +| aTokenImpl | 0x92EDe4ABd9df4Bfb49b4d723e4c932e35c47C54C | +| variableDebtToken | 0x8a035644322129800C3f747f54Db0F4d3c0A2877 | +| variableDebtTokenImpl | 0x49bA16C08130FF8cFADE263B49387A8555bc057B | +| stableDebtToken | 0x18e3f125ce85e8D65AD2bb4f6b5fff110772A078 | +| stableDebtTokenImpl | 0x8Ff5f08EDB2E5e1A51bd14d0494320bdB436a149 | +| borrowingEnabled | true | +| stableBorrowRateEnabled | false | +| isBorrowableInIsolation | false | +| interestRateStrategy | 0xCB032D7e38a10503c0b2F9f7bE8c1A81bBBEe2A8 | +| aTokenName | Aave Scroll wstETH | +| aTokenSymbol | aScrwstETH | +| isPaused | false | +| stableDebtTokenName | Aave Scroll Stable Debt wstETH | +| stableDebtTokenSymbol | stableDebtScrwstETH | +| variableDebtTokenName | Aave Scroll Variable Debt wstETH | +| variableDebtTokenSymbol | variableDebtScrwstETH | +| optimalUsageRatio | 45 % | +| maxExcessUsageRatio | 55 % | +| baseVariableBorrowRate | 0 % | +| variableRateSlope1 | 7 % | +| variableRateSlope2 | 300 % | +| baseStableBorrowRate | 9 % | +| stableRateSlope1 | 7 % | +| stableRateSlope2 | 300 % | +| optimalStableToTotalDebtRatio | 20 % | +| maxExcessStableToTotalDebtRatio | 80 % | +| interestRate | ![ir](/.assets/b5cb0fd07fde8594230045982589445fc02ace52.svg) | +| eMode.label | ETH correlated | +| eMode.ltv | 90 % | +| eMode.liquidationThreshold | 93 % | +| eMode.liquidationBonus | 1 % | +| eMode.priceSource | 0x0000000000000000000000000000000000000000 | + + +## Raw diff + +```json +{ + "eModes": { + "1": { + "from": null, + "to": { + "eModeCategory": 1, + "label": "ETH correlated", + "liquidationBonus": 10100, + "liquidationThreshold": 9300, + "ltv": 9000, + "priceSource": "0x0000000000000000000000000000000000000000" + } + } + }, + "reserves": { + "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4": { + "from": null, + "to": { + "aToken": "0x1D738a3436A8C49CefFbaB7fbF04B660fb528CbD", + "aTokenImpl": "0x92EDe4ABd9df4Bfb49b4d723e4c932e35c47C54C", + "aTokenName": "Aave Scroll USDC", + "aTokenSymbol": "aScrUSDC", + "borrowCap": 900000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 6, + "eModeCategory": 0, + "interestRateStrategy": "0x9205B37978aC983A297dFB53b3f3D2cCC7DDDADa", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10500, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 8000, + "ltv": 7700, + "oracle": "0x43d12Fb3AfCAd5347fA764EeAB105478337b7200", + "oracleDecimals": 8, + "oracleDescription": "USDC / USD", + "oracleLatestAnswer": 100010854, + "reserveFactor": 1000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x59F359aA263f7Ac09876E869AF1F75b558904ed4", + "stableDebtTokenImpl": "0x8Ff5f08EDB2E5e1A51bd14d0494320bdB436a149", + "stableDebtTokenName": "Aave Scroll Stable Debt USDC", + "stableDebtTokenSymbol": "stableDebtScrUSDC", + "supplyCap": 1000000, + "symbol": "USDC", + "underlying": "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x3d2E209af5BFa79297C88D6b57F89d792F6E28EE", + "variableDebtTokenImpl": "0x49bA16C08130FF8cFADE263B49387A8555bc057B", + "variableDebtTokenName": "Aave Scroll Variable Debt USDC", + "variableDebtTokenSymbol": "variableDebtScrUSDC" + } + }, + "0x5300000000000000000000000000000000000004": { + "from": null, + "to": { + "aToken": "0xf301805bE1Df81102C957f6d4Ce29d2B8c056B2a", + "aTokenImpl": "0x92EDe4ABd9df4Bfb49b4d723e4c932e35c47C54C", + "aTokenName": "Aave Scroll WETH", + "aTokenSymbol": "aScrWETH", + "borrowCap": 200, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0xD828F2f9Da85b190721797bEaD5Eb0acC4150f05", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10600, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7800, + "ltv": 7500, + "oracle": "0x6bF14CB0A831078629D993FDeBcB182b21A8774C", + "oracleDecimals": 8, + "oracleDescription": "ETH / USD", + "oracleLatestAnswer": 237936000000, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x117d9cF336287F46DBE509a43925cFF115Aa563c", + "stableDebtTokenImpl": "0x8Ff5f08EDB2E5e1A51bd14d0494320bdB436a149", + "stableDebtTokenName": "Aave Scroll Stable Debt WETH", + "stableDebtTokenSymbol": "stableDebtScrWETH", + "supplyCap": 240, + "symbol": "WETH", + "underlying": "0x5300000000000000000000000000000000000004", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xfD7344CeB1Df9Cf238EcD667f4A6F99c6Ef44a56", + "variableDebtTokenImpl": "0x49bA16C08130FF8cFADE263B49387A8555bc057B", + "variableDebtTokenName": "Aave Scroll Variable Debt WETH", + "variableDebtTokenSymbol": "variableDebtScrWETH" + } + }, + "0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32": { + "from": null, + "to": { + "aToken": "0x5B1322eeb46240b02e20062b8F0F9908d525B09c", + "aTokenImpl": "0x92EDe4ABd9df4Bfb49b4d723e4c932e35c47C54C", + "aTokenName": "Aave Scroll wstETH", + "aTokenSymbol": "aScrwstETH", + "borrowCap": 45, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0xCB032D7e38a10503c0b2F9f7bE8c1A81bBBEe2A8", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10700, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7800, + "ltv": 7500, + "oracle": "0xdb93e2712a8B36835078f8D28c70fCC95FD6d37c", + "oracleDecimals": 8, + "oracleDescription": "wstETH/ETH/USD", + "oracleLatestAnswer": 274689605153, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x18e3f125ce85e8D65AD2bb4f6b5fff110772A078", + "stableDebtTokenImpl": "0x8Ff5f08EDB2E5e1A51bd14d0494320bdB436a149", + "stableDebtTokenName": "Aave Scroll Stable Debt wstETH", + "stableDebtTokenSymbol": "stableDebtScrwstETH", + "supplyCap": 130, + "symbol": "wstETH", + "underlying": "0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x8a035644322129800C3f747f54Db0F4d3c0A2877", + "variableDebtTokenImpl": "0x49bA16C08130FF8cFADE263B49387A8555bc057B", + "variableDebtTokenName": "Aave Scroll Variable Debt wstETH", + "variableDebtTokenSymbol": "variableDebtScrwstETH" + } + } + }, + "strategies": { + "0x9205B37978aC983A297dFB53b3f3D2cCC7DDDADa": { + "from": null, + "to": { + "baseStableBorrowRate": "70000000000000000000000000", + "baseVariableBorrowRate": 0, + "maxExcessStableToTotalDebtRatio": "800000000000000000000000000", + "maxExcessUsageRatio": "100000000000000000000000000", + "optimalStableToTotalDebtRatio": "200000000000000000000000000", + "optimalUsageRatio": "900000000000000000000000000", + "stableRateSlope1": "60000000000000000000000000", + "stableRateSlope2": "600000000000000000000000000", + "variableRateSlope1": "60000000000000000000000000", + "variableRateSlope2": "600000000000000000000000000" + } + }, + "0xCB032D7e38a10503c0b2F9f7bE8c1A81bBBEe2A8": { + "from": null, + "to": { + "baseStableBorrowRate": "90000000000000000000000000", + "baseVariableBorrowRate": 0, + "maxExcessStableToTotalDebtRatio": "800000000000000000000000000", + "maxExcessUsageRatio": "550000000000000000000000000", + "optimalStableToTotalDebtRatio": "200000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "stableRateSlope1": "70000000000000000000000000", + "stableRateSlope2": "3000000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + } + }, + "0xD828F2f9Da85b190721797bEaD5Eb0acC4150f05": { + "from": null, + "to": { + "baseStableBorrowRate": "53000000000000000000000000", + "baseVariableBorrowRate": 0, + "maxExcessStableToTotalDebtRatio": "800000000000000000000000000", + "maxExcessUsageRatio": "200000000000000000000000000", + "optimalStableToTotalDebtRatio": "200000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "stableRateSlope1": "33000000000000000000000000", + "stableRateSlope2": "80000000000000000000000000", + "variableRateSlope1": "33000000000000000000000000", + "variableRateSlope2": "80000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/generator/common.ts b/generator/common.ts index 0264dc2a5..809843c28 100644 --- a/generator/common.ts +++ b/generator/common.ts @@ -10,6 +10,7 @@ import { base, bsc, gnosis, + scroll, } from 'viem/chains'; export const AVAILABLE_CHAINS = [ @@ -24,6 +25,7 @@ export const AVAILABLE_CHAINS = [ 'Base', 'BNB', 'Gnosis', + 'Scroll', ] as const; export function getAssets(pool: PoolIdentifier): string[] { @@ -105,6 +107,7 @@ export const CHAIN_TO_CHAIN_ID = { Base: base.id, BNB: bsc.id, Gnosis: gnosis.id, + Scroll: scroll.id, }; export function flagAsRequired(message: string, required?: boolean) { diff --git a/generator/types.ts b/generator/types.ts index 99a4f96f2..2a1a7828f 100644 --- a/generator/types.ts +++ b/generator/types.ts @@ -30,6 +30,7 @@ export const V3_POOLS = [ 'AaveV3Metis', 'AaveV3Base', 'AaveV3Gnosis', + 'AaveV3Scroll', 'AaveV3BNB', ] as const satisfies readonly (keyof typeof addressBook)[]; diff --git a/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation.md b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation.md new file mode 100644 index 000000000..35242d635 --- /dev/null +++ b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation.md @@ -0,0 +1,69 @@ +--- +title: "Aave v3 Scroll Activation" +author: "BGD Labs (@bgdlabs)" +discussions: "https://governance.aave.com/t/arfc-aave-v3-deployment-on-scroll-mainnet/16126/" +--- + +## Simple Summary + +This proposal allows the Aave governance to activate the Aave V3 Scroll pool (3.0.2) by completing all the initial setup and listing WETH, USDC, wstETH as suggested by the risk service providers engaged with the DAO (Gauntlet and Chaos Labs) on the [governance forum](https://governance.aave.com/t/arfc-aave-v3-deployment-on-scroll-mainnet/16126/6). + +All the Aave Scroll V3 addresses can be found in the [aave-address-book](https://github.com/bgd-labs/aave-address-book/blob/main/src/AaveV3Scroll.sol). + +## Motivation + +All the governance procedures for the expansion of Aave v3 to Scroll have been finished, said: + +- Positive signaling and approval regarding the expansion on the [governance forum](https://governance.aave.com/t/tempcheck-aave-v3-mvp-deployment-on-scroll-mainnet/13265), [temp check snapshot](https://snapshot.org/#/aave.eth/proposal/0x0c9447367d5223863e829393a9e8937a54b2af85adef883542f063df4fb86db6), and [final snapshot](https://snapshot.org/#/aave.eth/proposal/0x8110de95ff2827946ede0a9b8c5b9c1876605163bb1e7f8c637b6b80848224c8). +- Positive technical evaluation done by BGD Labs of the Scroll chain network, as described in the [forum](https://governance.aave.com/t/bgd-aave-scroll-infrastructure-technical-evaluation/15854) in detail. +- Positive risk analysis and assets/parameters recommendation by the service providers Gauntlet and Chaos Labs. + +## Specification + +The proposal will do the following: + +- Set risk steward and freezing steward as the risk admin by executing `ACL_MANAGER.addRiskAdmin()`. +- Set the guardian address as the pool admin by executing `ACL_MANAGER.addPoolAdmin()`. + This is following the standard procedure of keeping pool admin on the Aave Guardian during the bootstrap period, for security. +- List the following assets on Aave V3 Scroll: WETH, USDC, wstETH. + +The table below illustrates the initial suggested risk parameters for each asset: + +| Parameter | WETH | USDC | wstETH | +| ---------------------------------- | -----------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------: | --------------------------------------------------------------------------------------: | +| Isolation Mode | false | true | true | +| Borrowable | ENABLED | ENABLED | ENABLED | +| Collateral Enabled | true | true | true | +| Supply Cap | 240 | 1,000,000 | 130 | +| Borrow Cap | 200 | 900,000 | 45 | +| Debt Ceiling | USD 0 | USD 0 | USD 0 | +| LTV | 75 % | 77 % | 75 % | +| LT | 78 % | 80 % | 78 % | +| Liquidation Bonus | 6 % | 5 % | 7 % | +| Liquidation Protocol Fee | 10 % | 10 % | 10 % | +| Reserve Factor | 15 % | 10 % | 15 % | +| Base Variable Borrow Rate | 0 % | 0 % | 0 % | +| Variable Slope 1 | 3.3 % | 6 % | 7 % | +| Variable Slope 2 | 8 % | 60 % | 300 % | +| Uoptimal | 80 % | 90 % | 45 % | +| Stable Borrowing | DISABLED | DISABLED | DISABLED | +| Stable Slope1 | 3.3 % | 6 % | 7 % | +| Stable Slope2 | 8 % | 60 % | 300 % | +| Base Stable Rate Offset | 2 % | 1 % | 2 % | +| Stable Rate Excess Offset | 8 % | 8 % | 8 % | +| Optimal Stable To Total Debt Ratio | 20 % | 20 % | 20 % | +| Flashloanable | ENABLED | ENABLED | ENABLED | +| Siloed Borrowing | DISABLED | DISABLED | DISABLED | +| Borrowable in Isolation | DISABLED | ENABLED | DISABLED | +| Oracle | [ETH/USD](https://scrollscan.com/address/0x6bF14CB0A831078629D993FDeBcB182b21A8774C) | [USDC/USD](https://scrollscan.com/address/0x43d12Fb3AfCAd5347fA764EeAB105478337b7200) | [wstETH/USD](https://scrollscan.com/address/0xdb93e2712a8b36835078f8d28c70fcc95fd6d37c) | + +## References + +- Implementation: [AaveV3Scroll](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3Scroll_AaveV3ScrollActivation_20240122.sol) +- Tests: [AaveV3Scroll](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3Scroll_AaveV3ScrollActivation_20240122.t.sol) +- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0x8110de95ff2827946ede0a9b8c5b9c1876605163bb1e7f8c637b6b80848224c8) +- [Discussion](https://governance.aave.com/t/arfc-aave-v3-deployment-on-scroll-mainnet/16126/) + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation_20240122.s.sol b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation_20240122.s.sol new file mode 100644 index 000000000..bf17a42af --- /dev/null +++ b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation_20240122.s.sol @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/GovV3Helpers.sol'; +import {EthereumScript, ScrollScript} from 'aave-helpers/ScriptUtils.sol'; +import {AaveV3Scroll_AaveV3ScrollActivation_20240122} from './AaveV3Scroll_AaveV3ScrollActivation_20240122.sol'; + +/** + * @dev Deploy Scroll + * deploy-command: make deploy-ledger contract=src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation_20240122.s.sol:DeployScroll chain=scroll + * verify-command: npx catapulta-verify -b broadcast/AaveV3ScrollActivation_20240122.s.sol/534352/run-latest.json + */ +contract DeployScroll is ScrollScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Scroll_AaveV3ScrollActivation_20240122).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Create Proposal + * command: make deploy-ledger contract=src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation_20240122.s.sol:CreateProposal chain=mainnet + */ +contract CreateProposal is EthereumScript { + function run() external { + // create payloads + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](1); + + // compose actions for validation + IPayloadsControllerCore.ExecutionAction[] + memory actionsScroll = new IPayloadsControllerCore.ExecutionAction[](1); + actionsScroll[0] = GovV3Helpers.buildAction( + type(AaveV3Scroll_AaveV3ScrollActivation_20240122).creationCode + ); + payloads[0] = GovV3Helpers.buildScrollPayload(vm, actionsScroll); + + // create proposal + vm.startBroadcast(); + GovV3Helpers.createProposal( + vm, + payloads, + GovV3Helpers.ipfsHashFile( + vm, + 'src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3ScrollActivation.md' + ) + ); + } +} diff --git a/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3Scroll_AaveV3ScrollActivation_20240122.sol b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3Scroll_AaveV3ScrollActivation_20240122.sol new file mode 100644 index 000000000..bcfe4ed7d --- /dev/null +++ b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3Scroll_AaveV3ScrollActivation_20240122.sol @@ -0,0 +1,167 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol'; +import {MiscScroll} from 'aave-address-book/MiscScroll.sol'; +import {AaveV3PayloadScroll} from 'aave-helpers/v3-config-engine/AaveV3PayloadScroll.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IPool} from 'aave-address-book/AaveV3.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol'; +import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol'; + +/** + * @title Aave v3 Scroll Activation + * @author BGD Labs (@bgdlabs) + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x8110de95ff2827946ede0a9b8c5b9c1876605163bb1e7f8c637b6b80848224c8 + * - Discussion: https://governance.aave.com/t/arfc-aave-v3-deployment-on-scroll-mainnet/16126/ + */ +contract AaveV3Scroll_AaveV3ScrollActivation_20240122 is AaveV3PayloadScroll { + using SafeERC20 for IERC20; + + address public constant WETH = 0x5300000000000000000000000000000000000004; + uint256 public constant WETH_SEED_AMOUNT = 0.005e18; + address public constant USDC = 0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4; + uint256 public constant USDC_SEED_AMOUNT = 10e6; + address public constant wstETH = 0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32; + uint256 public constant wstETH_SEED_AMOUNT = 0.005e18; + + function _postExecute() internal override { + AaveV3Scroll.ACL_MANAGER.addPoolAdmin(MiscScroll.PROTOCOL_GUARDIAN); + AaveV3Scroll.ACL_MANAGER.addRiskAdmin(AaveV3Scroll.FREEZING_STEWARD); + AaveV3Scroll.ACL_MANAGER.addRiskAdmin(AaveV3Scroll.CAPS_PLUS_RISK_STEWARD); + + _supply(AaveV3Scroll.POOL, WETH, WETH_SEED_AMOUNT, 0x000000000000000000000000000000000000dEaD); + _supply(AaveV3Scroll.POOL, USDC, USDC_SEED_AMOUNT, 0x000000000000000000000000000000000000dEaD); + _supply( + AaveV3Scroll.POOL, + wstETH, + wstETH_SEED_AMOUNT, + 0x000000000000000000000000000000000000dEaD + ); + } + + function eModeCategoriesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.EModeCategoryUpdate[] memory) + { + IAaveV3ConfigEngine.EModeCategoryUpdate[] + memory eModeUpdates = new IAaveV3ConfigEngine.EModeCategoryUpdate[](1); + + eModeUpdates[0] = IAaveV3ConfigEngine.EModeCategoryUpdate({ + eModeCategory: 1, + ltv: 90_00, + liqThreshold: 93_00, + liqBonus: 1_00, + priceSource: 0x0000000000000000000000000000000000000000, + label: 'ETH correlated' + }); + + return eModeUpdates; + } + + function newListings() public pure override returns (IAaveV3ConfigEngine.Listing[] memory) { + IAaveV3ConfigEngine.Listing[] memory listings = new IAaveV3ConfigEngine.Listing[](3); + + listings[0] = IAaveV3ConfigEngine.Listing({ + asset: WETH, + assetSymbol: 'WETH', + priceFeed: 0x6bF14CB0A831078629D993FDeBcB182b21A8774C, + eModeCategory: 1, + enabledToBorrow: EngineFlags.ENABLED, + stableRateModeEnabled: EngineFlags.DISABLED, + borrowableInIsolation: EngineFlags.DISABLED, + withSiloedBorrowing: EngineFlags.DISABLED, + flashloanable: EngineFlags.ENABLED, + ltv: 75_00, + liqThreshold: 78_00, + liqBonus: 6_00, + reserveFactor: 15_00, + supplyCap: 240, + borrowCap: 200, + debtCeiling: 0, + liqProtocolFee: 10_00, + rateStrategyParams: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(80_00), + baseVariableBorrowRate: _bpsToRay(0), + variableRateSlope1: _bpsToRay(3_30), + variableRateSlope2: _bpsToRay(8_00), + stableRateSlope1: _bpsToRay(3_30), + stableRateSlope2: _bpsToRay(8_00), + baseStableRateOffset: _bpsToRay(2_00), + stableRateExcessOffset: _bpsToRay(8_00), + optimalStableToTotalDebtRatio: _bpsToRay(20_00) + }) + }); + listings[1] = IAaveV3ConfigEngine.Listing({ + asset: USDC, + assetSymbol: 'USDC', + priceFeed: 0x43d12Fb3AfCAd5347fA764EeAB105478337b7200, + eModeCategory: 0, + enabledToBorrow: EngineFlags.ENABLED, + stableRateModeEnabled: EngineFlags.DISABLED, + borrowableInIsolation: EngineFlags.ENABLED, + withSiloedBorrowing: EngineFlags.DISABLED, + flashloanable: EngineFlags.ENABLED, + ltv: 77_00, + liqThreshold: 80_00, + liqBonus: 5_00, + reserveFactor: 10_00, + supplyCap: 1_000_000, + borrowCap: 900_000, + debtCeiling: 0, + liqProtocolFee: 10_00, + rateStrategyParams: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(90_00), + baseVariableBorrowRate: _bpsToRay(0), + variableRateSlope1: _bpsToRay(6_00), + variableRateSlope2: _bpsToRay(60_00), + stableRateSlope1: _bpsToRay(6_00), + stableRateSlope2: _bpsToRay(60_00), + baseStableRateOffset: _bpsToRay(1_00), + stableRateExcessOffset: _bpsToRay(8_00), + optimalStableToTotalDebtRatio: _bpsToRay(20_00) + }) + }); + listings[2] = IAaveV3ConfigEngine.Listing({ + asset: wstETH, + assetSymbol: 'wstETH', + priceFeed: 0xdb93e2712a8B36835078f8D28c70fCC95FD6d37c, + eModeCategory: 1, + enabledToBorrow: EngineFlags.ENABLED, + stableRateModeEnabled: EngineFlags.DISABLED, + borrowableInIsolation: EngineFlags.DISABLED, + withSiloedBorrowing: EngineFlags.DISABLED, + flashloanable: EngineFlags.ENABLED, + ltv: 75_00, + liqThreshold: 78_00, + liqBonus: 7_00, + reserveFactor: 15_00, + supplyCap: 130, + borrowCap: 45, + debtCeiling: 0, + liqProtocolFee: 10_00, + rateStrategyParams: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(45_00), + baseVariableBorrowRate: _bpsToRay(0), + variableRateSlope1: _bpsToRay(7_00), + variableRateSlope2: _bpsToRay(300_00), + stableRateSlope1: _bpsToRay(7_00), + stableRateSlope2: _bpsToRay(300_00), + baseStableRateOffset: _bpsToRay(2_00), + stableRateExcessOffset: _bpsToRay(8_00), + optimalStableToTotalDebtRatio: _bpsToRay(20_00) + }) + }); + + return listings; + } + + function _supply(IPool pool, address asset, uint256 amount, address onBehalfOf) internal { + IERC20(asset).forceApprove(address(pool), amount); + pool.supply(asset, amount, onBehalfOf, 0); + } +} diff --git a/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3Scroll_AaveV3ScrollActivation_20240122.t.sol b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3Scroll_AaveV3ScrollActivation_20240122.t.sol new file mode 100644 index 000000000..ae2e211d7 --- /dev/null +++ b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/AaveV3Scroll_AaveV3ScrollActivation_20240122.t.sol @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol'; +import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol'; +import {MiscScroll} from 'aave-address-book/MiscScroll.sol'; +import {GovernanceV3Scroll} from 'aave-address-book/GovernanceV3Scroll.sol'; +import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Scroll_AaveV3ScrollActivation_20240122} from './AaveV3Scroll_AaveV3ScrollActivation_20240122.sol'; + +/** + * @dev Test for AaveV3Scroll_AaveV3ScrollActivation_20240122 + * command: make test-contract filter=AaveV3Scroll_AaveV3ScrollActivation_20240122 + */ +contract AaveV3Scroll_AaveV3ScrollActivation_20240122_Test is ProtocolV3TestBase { + AaveV3Scroll_AaveV3ScrollActivation_20240122 internal proposal; + address constant NULL_ADDRESS = 0x000000000000000000000000000000000000dEaD; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('scroll'), 2675703); + proposal = new AaveV3Scroll_AaveV3ScrollActivation_20240122(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution_scroll() public { + defaultTest( + 'AaveV3Scroll_AaveV3ScrollActivation_20240122', + AaveV3Scroll.POOL, + address(proposal) + ); + } + + function test_AdminPermissions() public { + GovV3Helpers.executePayload(vm, address(proposal)); + assertTrue(AaveV3Scroll.ACL_MANAGER.isRiskAdmin(AaveV3Scroll.CAPS_PLUS_RISK_STEWARD)); + assertTrue(AaveV3Scroll.ACL_MANAGER.isRiskAdmin(AaveV3Scroll.FREEZING_STEWARD)); + assertTrue(AaveV3Scroll.ACL_MANAGER.isPoolAdmin(MiscScroll.PROTOCOL_GUARDIAN)); + } + + function test_SeedWETHFunds() public { + GovV3Helpers.executePayload(vm, address(proposal)); + (address aTokenAddress, , ) = AaveV3Scroll + .AAVE_PROTOCOL_DATA_PROVIDER + .getReserveTokensAddresses(proposal.WETH()); + assertGe(IERC20(aTokenAddress).balanceOf(NULL_ADDRESS), proposal.WETH_SEED_AMOUNT()); + } + + function test_SeedUSDCFunds() public { + GovV3Helpers.executePayload(vm, address(proposal)); + (address aTokenAddress, , ) = AaveV3Scroll + .AAVE_PROTOCOL_DATA_PROVIDER + .getReserveTokensAddresses(proposal.USDC()); + assertGe(IERC20(aTokenAddress).balanceOf(NULL_ADDRESS), proposal.USDC_SEED_AMOUNT()); + } + + function test_SeedwstETHFunds() public { + GovV3Helpers.executePayload(vm, address(proposal)); + (address aTokenAddress, , ) = AaveV3Scroll + .AAVE_PROTOCOL_DATA_PROVIDER + .getReserveTokensAddresses(proposal.wstETH()); + assertGe(IERC20(aTokenAddress).balanceOf(NULL_ADDRESS), proposal.wstETH_SEED_AMOUNT()); + } +} + +interface IOwnable { + function transferOwnership(address newOwner) external; +} diff --git a/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/config.ts b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/config.ts new file mode 100644 index 000000000..7f01b512a --- /dev/null +++ b/src/20240122_AaveV3Scroll_AaveV3ScrollActivation/config.ts @@ -0,0 +1,125 @@ +import {ConfigFile} from '../../generator/types'; +export const config: ConfigFile = { + rootOptions: { + pools: ['AaveV3Scroll'], + title: 'Aave v3 Scroll Activation', + shortName: 'AaveV3ScrollActivation', + date: '20240122', + author: 'BGD Labs (@bgdlabs)', + discussion: 'https://governance.aave.com/t/arfc-aave-v3-deployment-on-scroll-mainnet/16126/', + snapshot: + 'https://snapshot.org/#/aave.eth/proposal/0x8110de95ff2827946ede0a9b8c5b9c1876605163bb1e7f8c637b6b80848224c8', + }, + poolOptions: { + AaveV3Scroll: { + configs: { + EMODES_UPDATES: [ + { + eModeCategory: 1, + ltv: '90', + liqThreshold: '93', + liqBonus: '1', + priceSource: '0x0000000000000000000000000000000000000000', + label: 'ETH correlated', + }, + ], + ASSET_LISTING: [ + { + assetSymbol: 'WETH', + decimals: 18, + priceFeed: '0x6bF14CB0A831078629D993FDeBcB182b21A8774C', + ltv: '75', + liqThreshold: '78', + liqBonus: '6', + debtCeiling: '0', + liqProtocolFee: '10', + enabledToBorrow: 'ENABLED', + flashloanable: 'ENABLED', + stableRateModeEnabled: 'DISABLED', + borrowableInIsolation: 'DISABLED', + withSiloedBorrowing: 'DISABLED', + reserveFactor: '15', + supplyCap: '240', + borrowCap: '200', + rateStrategyParams: { + optimalUtilizationRate: '80', + baseVariableBorrowRate: '0', + variableRateSlope1: '3.3', + variableRateSlope2: '8', + stableRateSlope1: '3.3', + stableRateSlope2: '8', + baseStableRateOffset: '2', + stableRateExcessOffset: '8', + optimalStableToTotalDebtRatio: '20', + }, + eModeCategory: '0', + asset: '0x5300000000000000000000000000000000000004', + }, + { + assetSymbol: 'USDC', + decimals: 6, + priceFeed: '0x43d12Fb3AfCAd5347fA764EeAB105478337b7200', + ltv: '77', + liqThreshold: '80', + liqBonus: '5', + debtCeiling: '0', + liqProtocolFee: '10', + enabledToBorrow: 'ENABLED', + flashloanable: 'ENABLED', + stableRateModeEnabled: 'DISABLED', + borrowableInIsolation: 'ENABLED', + withSiloedBorrowing: 'DISABLED', + reserveFactor: '10', + supplyCap: '1000000', + borrowCap: '900000', + rateStrategyParams: { + optimalUtilizationRate: '90', + baseVariableBorrowRate: '0', + variableRateSlope1: '6', + variableRateSlope2: '60', + stableRateSlope1: '6', + stableRateSlope2: '60', + baseStableRateOffset: '1', + stableRateExcessOffset: '8', + optimalStableToTotalDebtRatio: '20', + }, + eModeCategory: '0', + asset: '0x06efdbff2a14a7c8e15944d1f4a48f9f95f663a4', + }, + { + assetSymbol: 'wstETH', + decimals: 18, + priceFeed: '0xdb93e2712a8b36835078f8d28c70fcc95fd6d37c', + ltv: '75', + liqThreshold: '78', + liqBonus: '7', + debtCeiling: '0', + liqProtocolFee: '10', + enabledToBorrow: 'ENABLED', + flashloanable: 'ENABLED', + stableRateModeEnabled: 'DISABLED', + borrowableInIsolation: 'DISABLED', + withSiloedBorrowing: 'DISABLED', + reserveFactor: '15', + supplyCap: '130', + borrowCap: '45', + rateStrategyParams: { + optimalUtilizationRate: '45', + baseVariableBorrowRate: '0', + variableRateSlope1: '7', + variableRateSlope2: '300', + stableRateSlope1: '7', + stableRateSlope2: '300', + baseStableRateOffset: '2', + stableRateExcessOffset: '8', + optimalStableToTotalDebtRatio: '20', + }, + eModeCategory: '0', + asset: '0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32', + }, + ], + }, + cache: {blockNumber: 2669127}, + }, + }, +}; diff --git a/yarn.lock b/yarn.lock index 0b1d0ba7a..f0754022e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -75,225 +75,225 @@ resolved "https://registry.npmjs.org/@commander-js/extra-typings/-/extra-typings-11.1.0.tgz" integrity sha512-GuvZ38d23H+7Tz2C9DhzCepivsOsky03s5NI+KCy7ke1FNUvsJ2oO47scQ9YaGGhgjgNW5OYYNSADmbjcSoIhw== -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== +"@esbuild/aix-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz#2acd20be6d4f0458bc8c784103495ff24f13b1d3" + integrity sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g== -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== +"@esbuild/android-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz#b45d000017385c9051a4f03e17078abb935be220" + integrity sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q== "@esbuild/android-arm64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz#683794bdc3d27222d3eced7b74cad15979548031" integrity sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ== -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== +"@esbuild/android-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.11.tgz#f46f55414e1c3614ac682b29977792131238164c" + integrity sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw== "@esbuild/android-arm@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.9.tgz#21a4de41f07b2af47401c601d64dfdefd056c595" integrity sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA== -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== +"@esbuild/android-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.11.tgz#bfc01e91740b82011ef503c48f548950824922b2" + integrity sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg== "@esbuild/android-x64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.9.tgz#e2d7674bc025ddc8699f0cc76cb97823bb63c252" integrity sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA== -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== +"@esbuild/darwin-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz#533fb7f5a08c37121d82c66198263dcc1bed29bf" + integrity sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ== "@esbuild/darwin-arm64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz#ae7a582289cc5c0bac15d4b9020a90cb7288f1e9" integrity sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw== -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== +"@esbuild/darwin-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz#62f3819eff7e4ddc656b7c6815a31cf9a1e7d98e" + integrity sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g== "@esbuild/darwin-x64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz#8a216c66dcf51addeeb843d8cfaeff712821d12b" integrity sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ== -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== +"@esbuild/freebsd-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz#d478b4195aa3ca44160272dab85ef8baf4175b4a" + integrity sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA== "@esbuild/freebsd-arm64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz#63d4f603e421252c3cd836b18d01545be7c6c440" integrity sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g== -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== +"@esbuild/freebsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz#7bdcc1917409178257ca6a1a27fe06e797ec18a2" + integrity sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw== "@esbuild/freebsd-x64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz#a3db52595be65360eae4de1d1fa3c1afd942e1e4" integrity sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA== -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== +"@esbuild/linux-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz#58ad4ff11685fcc735d7ff4ca759ab18fcfe4545" + integrity sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg== "@esbuild/linux-arm64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz#4ae5811ce9f8d7df5eb9edd9765ea9401a534f13" integrity sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ== -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== +"@esbuild/linux-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz#ce82246d873b5534d34de1e5c1b33026f35e60e3" + integrity sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q== "@esbuild/linux-arm@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz#9807e92cfd335f46326394805ad488e646e506f2" integrity sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw== -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== +"@esbuild/linux-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz#cbae1f313209affc74b80f4390c4c35c6ab83fa4" + integrity sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA== "@esbuild/linux-ia32@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz#18892c10f3106652b16f9da88a0362dc95ed46c7" integrity sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q== -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== +"@esbuild/linux-loong64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz#5f32aead1c3ec8f4cccdb7ed08b166224d4e9121" + integrity sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg== "@esbuild/linux-loong64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz#dc2ebf9a125db0a1bba18c2bbfd4fbdcbcaf61c2" integrity sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA== -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== +"@esbuild/linux-mips64el@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz#38eecf1cbb8c36a616261de858b3c10d03419af9" + integrity sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg== "@esbuild/linux-mips64el@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz#4c2f7c5d901015e3faf1563c4a89a50776cb07fd" integrity sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw== -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== +"@esbuild/linux-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz#9c5725a94e6ec15b93195e5a6afb821628afd912" + integrity sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA== "@esbuild/linux-ppc64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz#8385332713b4e7812869622163784a5633f76fc4" integrity sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ== -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== +"@esbuild/linux-riscv64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz#2dc4486d474a2a62bbe5870522a9a600e2acb916" + integrity sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ== "@esbuild/linux-riscv64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz#23f1db24fa761be311874f32036c06249aa20cba" integrity sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg== -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== +"@esbuild/linux-s390x@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz#4ad8567df48f7dd4c71ec5b1753b6f37561a65a8" + integrity sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q== "@esbuild/linux-s390x@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz#2dffe497726b897c9f0109e774006e25b33b4fd0" integrity sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw== -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== +"@esbuild/linux-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz#b7390c4d5184f203ebe7ddaedf073df82a658766" + integrity sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA== "@esbuild/linux-x64@0.19.9": version "0.19.9" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz" integrity sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A== -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== +"@esbuild/netbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz#d633c09492a1721377f3bccedb2d821b911e813d" + integrity sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ== "@esbuild/netbsd-x64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz#0cbca65e9ef4d3fc41502d3e055e6f49479a8f18" integrity sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug== -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== +"@esbuild/openbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz#17388c76e2f01125bf831a68c03a7ffccb65d1a2" + integrity sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw== "@esbuild/openbsd-x64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz#1f57adfbee09c743292c6758a3642e875bcad1cf" integrity sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw== -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== +"@esbuild/sunos-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz#e320636f00bb9f4fdf3a80e548cb743370d41767" + integrity sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ== "@esbuild/sunos-x64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz#116be6adbd2c7479edeeb5f6ea0441002ab4cb9c" integrity sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw== -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== +"@esbuild/win32-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz#c778b45a496e90b6fc373e2a2bb072f1441fe0ee" + integrity sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ== "@esbuild/win32-arm64@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz#2be22131ab18af4693fd737b161d1ef34de8ca9d" integrity sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg== -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== +"@esbuild/win32-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz#481a65fee2e5cce74ec44823e6b09ecedcc5194c" + integrity sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg== "@esbuild/win32-ia32@0.19.9": version "0.19.9" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz#e10ead5a55789b167b4225d2469324538768af7c" integrity sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg== -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== +"@esbuild/win32-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz#a5d300008960bb39677c46bf16f53ec70d8dee04" + integrity sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw== "@esbuild/win32-x64@0.19.9": version "0.19.9" @@ -732,9 +732,9 @@ antlr4ts "^0.5.0-alpha.4" "@supercharge/promise-pool@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.1.0.tgz#308b9f4d4bf1d607695f916d9454a3556cd4c2b4" - integrity sha512-gB3NukbIcYzRtPoE6dx9svQYPodxvnfQlaaQd8N/z87E6WaMfRE7o5HwB+LZ+KeM0nsNAq1n4TmBtfz1VCUR+Q== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.1.1.tgz#237d4e151b8591e2ff4f0ae388f7d6b4741bacc0" + integrity sha512-TgCm6jVqMPv+OgD5uBNND/CkCwNDdXPQlcprtnXsWSBpTCy0q5CI6vRj+jsUiXE1xeRaKIX4UeaYJqzZBL92sg== "@types/estree@^1.0.0": version "1.0.5" @@ -1216,33 +1216,33 @@ esbuild@^0.19.3: "@esbuild/win32-x64" "0.19.9" esbuild@~0.19.10: - version "0.19.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + version "0.19.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.11.tgz#4a02dca031e768b5556606e1b468fe72e3325d96" + integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" + "@esbuild/aix-ppc64" "0.19.11" + "@esbuild/android-arm" "0.19.11" + "@esbuild/android-arm64" "0.19.11" + "@esbuild/android-x64" "0.19.11" + "@esbuild/darwin-arm64" "0.19.11" + "@esbuild/darwin-x64" "0.19.11" + "@esbuild/freebsd-arm64" "0.19.11" + "@esbuild/freebsd-x64" "0.19.11" + "@esbuild/linux-arm" "0.19.11" + "@esbuild/linux-arm64" "0.19.11" + "@esbuild/linux-ia32" "0.19.11" + "@esbuild/linux-loong64" "0.19.11" + "@esbuild/linux-mips64el" "0.19.11" + "@esbuild/linux-ppc64" "0.19.11" + "@esbuild/linux-riscv64" "0.19.11" + "@esbuild/linux-s390x" "0.19.11" + "@esbuild/linux-x64" "0.19.11" + "@esbuild/netbsd-x64" "0.19.11" + "@esbuild/openbsd-x64" "0.19.11" + "@esbuild/sunos-x64" "0.19.11" + "@esbuild/win32-arm64" "0.19.11" + "@esbuild/win32-ia32" "0.19.11" + "@esbuild/win32-x64" "0.19.11" escape-string-regexp@^1.0.5: version "1.0.5"