diff --git a/.assets/17f6b65b666e033f6d757eab80af272608f3179e.svg b/.assets/17f6b65b666e033f6d757eab80af272608f3179e.svg
new file mode 100644
index 000000000..80f119ffe
--- /dev/null
+++ b/.assets/17f6b65b666e033f6d757eab80af272608f3179e.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg b/.assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg
new file mode 100644
index 000000000..04a90eb8f
--- /dev/null
+++ b/.assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%Optimal utilization 20%Optimal utilization 20%
\ No newline at end of file
diff --git a/.assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg b/.assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg
new file mode 100644
index 000000000..a09281518
--- /dev/null
+++ b/.assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%Optimal utilization 90%Optimal utilization 90%
\ No newline at end of file
diff --git a/.assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg b/.assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg
new file mode 100644
index 000000000..f005982aa
--- /dev/null
+++ b/.assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 65%Optimal utilization 65%
\ No newline at end of file
diff --git a/.assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg b/.assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg
new file mode 100644
index 000000000..80f119ffe
--- /dev/null
+++ b/.assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 45%Optimal utilization 45%
\ No newline at end of file
diff --git a/.assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg b/.assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg
new file mode 100644
index 000000000..282527635
--- /dev/null
+++ b/.assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%5%10%Optimal utilization 1%Optimal utilization 1%
\ No newline at end of file
diff --git a/.assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg b/.assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg
new file mode 100644
index 000000000..1f6321b7c
--- /dev/null
+++ b/.assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%Optimal utilization 80%Optimal utilization 80%
\ No newline at end of file
diff --git a/.assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg b/.assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg
new file mode 100644
index 000000000..eef7c5305
--- /dev/null
+++ b/.assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 69%Optimal utilization 69%
\ No newline at end of file
diff --git a/.assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg b/.assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg
new file mode 100644
index 000000000..80f119ffe
--- /dev/null
+++ b/.assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 45%Optimal utilization 45%
\ No newline at end of file
diff --git a/.assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg b/.assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg
new file mode 100644
index 000000000..35f28524f
--- /dev/null
+++ b/.assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 80%Optimal utilization 80%
\ No newline at end of file
diff --git a/.assets/8a8a0e067285eb92c25c539be301949997ccd175.svg b/.assets/8a8a0e067285eb92c25c539be301949997ccd175.svg
new file mode 100644
index 000000000..35f28524f
--- /dev/null
+++ b/.assets/8a8a0e067285eb92c25c539be301949997ccd175.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 80%Optimal utilization 80%
\ No newline at end of file
diff --git a/.assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg b/.assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg
new file mode 100644
index 000000000..50adfed87
--- /dev/null
+++ b/.assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 80%Optimal utilization 80%
\ No newline at end of file
diff --git a/.assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg b/.assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg
new file mode 100644
index 000000000..35f28524f
--- /dev/null
+++ b/.assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 80%Optimal utilization 80%
\ No newline at end of file
diff --git a/.assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg b/.assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg
new file mode 100644
index 000000000..04a90eb8f
--- /dev/null
+++ b/.assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%Optimal utilization 20%Optimal utilization 20%
\ No newline at end of file
diff --git a/.assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg b/.assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg
new file mode 100644
index 000000000..80f119ffe
--- /dev/null
+++ b/.assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 45%Optimal utilization 45%
\ No newline at end of file
diff --git a/.assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg b/.assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg
new file mode 100644
index 000000000..04a90eb8f
--- /dev/null
+++ b/.assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%Optimal utilization 20%Optimal utilization 20%
\ No newline at end of file
diff --git a/.assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg b/.assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg
new file mode 100644
index 000000000..1fa78b66e
--- /dev/null
+++ b/.assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 1%Optimal utilization 1%
\ No newline at end of file
diff --git a/.assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg b/.assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg
new file mode 100644
index 000000000..edf1d67db
--- /dev/null
+++ b/.assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 50%Optimal utilization 50%
\ No newline at end of file
diff --git a/.assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg b/.assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg
new file mode 100644
index 000000000..96b870ea2
--- /dev/null
+++ b/.assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%Optimal utilization 65%Optimal utilization 65%
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index 837cb4ae2..ae9d5ae52 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,9 +1,6 @@
[submodule "lib/forge-std"]
path = lib/forge-std
url = https://github.com/foundry-rs/forge-std
-[submodule "lib/solidity-utils"]
- path = lib/solidity-utils
- url = https://github.com/bgd-labs/solidity-utils
[submodule "lib/aave-address-book"]
path = lib/aave-address-book
url = https://github.com/bgd-labs/aave-address-book
diff --git a/diffs/default_before_default_after.md b/diffs/default_before_default_after.md
index 1fd36517c..dbd03dce4 100644
--- a/diffs/default_before_default_after.md
+++ b/diffs/default_before_default_after.md
@@ -1,2091 +1,7 @@
-## Reserve changes
-
-### Reserve altered
-
-#### 1INCH ([0x111111111117dC0aa78b770fA6A738034120C302](https://etherscan.io/address/0x111111111117dC0aa78b770fA6A738034120C302))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xf6733B9842883BFE0e0a940eA2F572676af31bde](https://etherscan.io/address/0xf6733B9842883BFE0e0a940eA2F572676af31bde) |
-| baseStableBorrowRate | null | 120000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### UNI ([0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984](https://etherscan.io/address/0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F](https://etherscan.io/address/0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### WBTC ([0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599](https://etherscan.io/address/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x07Fa3744FeC271F80c2EA97679823F65c13CCDf4](https://etherscan.io/address/0x07Fa3744FeC271F80c2EA97679823F65c13CCDf4) |
-| baseStableBorrowRate | null | 60000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 70000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 40000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### FXS ([0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0](https://etherscan.io/address/0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xf6733B9842883BFE0e0a940eA2F572676af31bde](https://etherscan.io/address/0xf6733B9842883BFE0e0a940eA2F572676af31bde) |
-| baseStableBorrowRate | null | 120000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### GHO ([0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f](https://etherscan.io/address/0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x741aE8b9f54b7DdE46C532f2c0F55B8776c93484](https://etherscan.io/address/0x741aE8b9f54b7DdE46C532f2c0F55B8776c93484) |
-| baseStableBorrowRate | null | 0 |
-| baseVariableBorrowRate | null | 70000000000000000000000000 |
-| maxExcessStableToTotalDebtRatio | null | 0 |
-| maxExcessUsageRatio | null | 0 |
-| optimalStableToTotalDebtRatio | null | 0 |
-| optimalUsageRatio | null | 0 |
-| stableRateSlope1 | null | 0 |
-| stableRateSlope2 | null | 0 |
-| variableRateSlope1 | null | 0 |
-| variableRateSlope2 | null | 0 |
-
-
-#### USDe ([0x4c9EDD5852cd905f086C759E8383e09bff1E68B3](https://etherscan.io/address/0x4c9EDD5852cd905f086C759E8383e09bff1E68B3))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x4011fcd421b9E90f131B164EC1d162DBE269621C](https://etherscan.io/address/0x4011fcd421b9E90f131B164EC1d162DBE269621C) |
-| baseStableBorrowRate | null | 90000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 |
-| maxExcessUsageRatio | null | 200000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 0 |
-| optimalUsageRatio | null | 800000000000000000000000000 |
-| stableRateSlope1 | null | 90000000000000000000000000 |
-| stableRateSlope2 | null | 750000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 750000000000000000000000000 |
-
-
-#### LINK ([0x514910771AF9Ca656af840dff83E8264EcF986CA](https://etherscan.io/address/0x514910771AF9Ca656af840dff83E8264EcF986CA))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x24701A6368Ff6D2874d6b8cDadd461552B8A5283](https://etherscan.io/address/0x24701A6368Ff6D2874d6b8cDadd461552B8A5283) |
-| baseStableBorrowRate | null | 90000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 70000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### LDO ([0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32](https://etherscan.io/address/0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F](https://etherscan.io/address/0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### LUSD ([0x5f98805A4E8be255a32880FDeC7F6728C6568bA0](https://etherscan.io/address/0x5f98805A4E8be255a32880FDeC7F6728C6568bA0))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x2B3Ed91C6667d808b0401f439c4859ea635c6862](https://etherscan.io/address/0x2B3Ed91C6667d808b0401f439c4859ea635c6862) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 200000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 800000000000000000000000000 |
-| stableRateSlope1 | null | 40000000000000000000000000 |
-| stableRateSlope2 | null | 870000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 870000000000000000000000000 |
-
-
-#### DAI ([0x6B175474E89094C44Da98b954EedeAC495271d0F](https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x05F410A9EB94e0BEe0E47F12254E7Cb5F4E2A1f7](https://etherscan.io/address/0x05F410A9EB94e0BEe0E47F12254E7Cb5F4E2A1f7) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 80000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 920000000000000000000000000 |
-| stableRateSlope1 | null | 5000000000000000000000000 |
-| stableRateSlope2 | null | 750000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 750000000000000000000000000 |
-
-
-#### PYUSD ([0x6c3ea9036406852006290770BEdFcAbA0e23A0e8](https://etherscan.io/address/0x6c3ea9036406852006290770BEdFcAbA0e23A0e8))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x22B409E1ab288DA6a895FE8251bEbfcA267f8805](https://etherscan.io/address/0x22B409E1ab288DA6a895FE8251bEbfcA267f8805) |
-| baseStableBorrowRate | null | 120000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 200000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 800000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 800000000000000000000000000 |
-
-
-#### AAVE ([0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9](https://etherscan.io/address/0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x24701A6368Ff6D2874d6b8cDadd461552B8A5283](https://etherscan.io/address/0x24701A6368Ff6D2874d6b8cDadd461552B8A5283) |
-| baseStableBorrowRate | null | 90000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 70000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### wstETH ([0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0](https://etherscan.io/address/0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x7b8Fa4540246554e77FCFf140f9114de00F8bB8D](https://etherscan.io/address/0x7b8Fa4540246554e77FCFf140f9114de00F8bB8D) |
-| baseStableBorrowRate | null | 75000000000000000000000000 |
-| baseVariableBorrowRate | null | 2500000000000000000000000 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 40000000000000000000000000 |
-| stableRateSlope2 | null | 800000000000000000000000000 |
-| variableRateSlope1 | null | 45000000000000000000000000 |
-| variableRateSlope2 | null | 800000000000000000000000000 |
-
-
-#### sDAI ([0x83F20F44975D03b1b09e64809B757c47f942BEeA](https://etherscan.io/address/0x83F20F44975D03b1b09e64809B757c47f942BEeA))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xdef8F50155A6cf21181E29E400E8CffAE2d50968](https://etherscan.io/address/0xdef8F50155A6cf21181E29E400E8CffAE2d50968) |
-| baseStableBorrowRate | null | 80000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 100000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 900000000000000000000000000 |
-| stableRateSlope1 | null | 50000000000000000000000000 |
-| stableRateSlope2 | null | 750000000000000000000000000 |
-| variableRateSlope1 | null | 50000000000000000000000000 |
-| variableRateSlope2 | null | 750000000000000000000000000 |
-
-
-#### FRAX ([0x853d955aCEf822Db058eb8505911ED77F175b99e](https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xA7D9302346d4C35724821cf98966B2257c9683c6](https://etherscan.io/address/0xA7D9302346d4C35724821cf98966B2257c9683c6) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 100000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 900000000000000000000000000 |
-| stableRateSlope1 | null | 5000000000000000000000000 |
-| stableRateSlope2 | null | 750000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 750000000000000000000000000 |
-
-
-#### sUSDe ([0x9D39A5DE30e57443BfF2A8307A4256c8797A3497](https://etherscan.io/address/0x9D39A5DE30e57443BfF2A8307A4256c8797A3497))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x36d32fD7a72AD600be60Ccb71D3718E455025CaA](https://etherscan.io/address/0x36d32fD7a72AD600be60Ccb71D3718E455025CaA) |
-| baseStableBorrowRate | null | 0 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 |
-| maxExcessUsageRatio | null | 100000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 0 |
-| optimalUsageRatio | null | 900000000000000000000000000 |
-| stableRateSlope1 | null | 0 |
-| stableRateSlope2 | null | 0 |
-| variableRateSlope1 | null | 0 |
-| variableRateSlope2 | null | 0 |
-
-
-#### MKR ([0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2](https://etherscan.io/address/0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F](https://etherscan.io/address/0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### USDC ([0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48](https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f](https://etherscan.io/address/0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 80000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 920000000000000000000000000 |
-| stableRateSlope1 | null | 5000000000000000000000000 |
-| stableRateSlope2 | null | 600000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 600000000000000000000000000 |
-
-
-#### ETHx ([0xA35b1B31Ce002FBF2058D22F30f95D405200A15b](https://etherscan.io/address/0xA35b1B31Ce002FBF2058D22F30f95D405200A15b))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x48AF11111764E710fcDcE2750db848C63edab57B](https://etherscan.io/address/0x48AF11111764E710fcDcE2750db848C63edab57B) |
-| baseStableBorrowRate | null | 70000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 0 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 0 |
-| stableRateSlope2 | null | 0 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### STG ([0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6](https://etherscan.io/address/0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F](https://etherscan.io/address/0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### cbETH ([0xBe9895146f7AF43049ca1c1AE358B0541Ea49704](https://etherscan.io/address/0xBe9895146f7AF43049ca1c1AE358B0541Ea49704))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x24701A6368Ff6D2874d6b8cDadd461552B8A5283](https://etherscan.io/address/0x24701A6368Ff6D2874d6b8cDadd461552B8A5283) |
-| baseStableBorrowRate | null | 90000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 70000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### SNX ([0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F](https://etherscan.io/address/0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xA6459195d60A797D278f58Ffbd2BA62Fb3F7FA1E](https://etherscan.io/address/0xA6459195d60A797D278f58Ffbd2BA62Fb3F7FA1E) |
-| baseStableBorrowRate | null | 180000000000000000000000000 |
-| baseVariableBorrowRate | null | 30000000000000000000000000 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 200000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 800000000000000000000000000 |
-| stableRateSlope1 | null | 150000000000000000000000000 |
-| stableRateSlope2 | null | 1000000000000000000000000000 |
-| variableRateSlope1 | null | 150000000000000000000000000 |
-| variableRateSlope2 | null | 1000000000000000000000000000 |
-
-
-#### WETH ([0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2](https://etherscan.io/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x42ec99A020B78C449d17d93bC4c89e0189B5811d](https://etherscan.io/address/0x42ec99A020B78C449d17d93bC4c89e0189B5811d) |
-| baseStableBorrowRate | null | 57000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 100000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 900000000000000000000000000 |
-| stableRateSlope1 | null | 40000000000000000000000000 |
-| stableRateSlope2 | null | 800000000000000000000000000 |
-| variableRateSlope1 | null | 27000000000000000000000000 |
-| variableRateSlope2 | null | 800000000000000000000000000 |
-
-
-#### ENS ([0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72](https://etherscan.io/address/0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xf6733B9842883BFE0e0a940eA2F572676af31bde](https://etherscan.io/address/0xf6733B9842883BFE0e0a940eA2F572676af31bde) |
-| baseStableBorrowRate | null | 120000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### weETH ([0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xf1e5355cEcaA71036CE21cdF8F9d04061B1BC6E1](https://etherscan.io/address/0xf1e5355cEcaA71036CE21cdF8F9d04061B1BC6E1) |
-| baseStableBorrowRate | null | 70000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 |
-| maxExcessUsageRatio | null | 650000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 0 |
-| optimalUsageRatio | null | 350000000000000000000000000 |
-| stableRateSlope1 | null | 0 |
-| stableRateSlope2 | null | 0 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### RPL ([0xD33526068D116cE69F19A9ee46F0bd304F21A51f](https://etherscan.io/address/0xD33526068D116cE69F19A9ee46F0bd304F21A51f))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xD87974E8ED49AB16d5053ba793F4e17078Be0426](https://etherscan.io/address/0xD87974E8ED49AB16d5053ba793F4e17078Be0426) |
-| baseStableBorrowRate | null | 95000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 200000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 800000000000000000000000000 |
-| stableRateSlope1 | null | 85000000000000000000000000 |
-| stableRateSlope2 | null | 870000000000000000000000000 |
-| variableRateSlope1 | null | 85000000000000000000000000 |
-| variableRateSlope2 | null | 870000000000000000000000000 |
-
-
-#### CRV ([0xD533a949740bb3306d119CC777fa900bA034cd52](https://etherscan.io/address/0xD533a949740bb3306d119CC777fa900bA034cd52))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x76884cAFeCf1f7d4146DA6C4053B18B76bf6ED14](https://etherscan.io/address/0x76884cAFeCf1f7d4146DA6C4053B18B76bf6ED14) |
-| baseStableBorrowRate | null | 170000000000000000000000000 |
-| baseVariableBorrowRate | null | 30000000000000000000000000 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 300000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 700000000000000000000000000 |
-| stableRateSlope1 | null | 80000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 140000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### rETH ([0xae78736Cd615f374D3085123A210448E74Fc6393](https://etherscan.io/address/0xae78736Cd615f374D3085123A210448E74Fc6393))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x24701A6368Ff6D2874d6b8cDadd461552B8A5283](https://etherscan.io/address/0x24701A6368Ff6D2874d6b8cDadd461552B8A5283) |
-| baseStableBorrowRate | null | 90000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 70000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### BAL ([0xba100000625a3754423978a60c9317c58a424e3D](https://etherscan.io/address/0xba100000625a3754423978a60c9317c58a424e3D))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xd9d85499449f26d2A2c240defd75314f23920089](https://etherscan.io/address/0xd9d85499449f26d2A2c240defd75314f23920089) |
-| baseStableBorrowRate | null | 270000000000000000000000000 |
-| baseVariableBorrowRate | null | 50000000000000000000000000 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 200000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 800000000000000000000000000 |
-| stableRateSlope1 | null | 220000000000000000000000000 |
-| stableRateSlope2 | null | 1500000000000000000000000000 |
-| variableRateSlope1 | null | 220000000000000000000000000 |
-| variableRateSlope2 | null | 1500000000000000000000000000 |
-
-
-#### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xca719585f2E07BDe82c4a05D6E7C0E446c2D6601](https://etherscan.io/address/0xca719585f2E07BDe82c4a05D6E7C0E446c2D6601) |
-| baseStableBorrowRate | null | 100000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 80000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 920000000000000000000000000 |
-| stableRateSlope1 | null | 40000000000000000000000000 |
-| stableRateSlope2 | null | 720000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 750000000000000000000000000 |
-
-
-#### KNC ([0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202](https://etherscan.io/address/0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0xf6733B9842883BFE0e0a940eA2F572676af31bde](https://etherscan.io/address/0xf6733B9842883BFE0e0a940eA2F572676af31bde) |
-| baseStableBorrowRate | null | 120000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### osETH ([0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38](https://etherscan.io/address/0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x48AF11111764E710fcDcE2750db848C63edab57B](https://etherscan.io/address/0x48AF11111764E710fcDcE2750db848C63edab57B) |
-| baseStableBorrowRate | null | 70000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 |
-| maxExcessUsageRatio | null | 550000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 0 |
-| optimalUsageRatio | null | 450000000000000000000000000 |
-| stableRateSlope1 | null | 0 |
-| stableRateSlope2 | null | 0 |
-| variableRateSlope1 | null | 70000000000000000000000000 |
-| variableRateSlope2 | null | 3000000000000000000000000000 |
-
-
-#### crvUSD ([0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E](https://etherscan.io/address/0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E))
-
-| description | value before | value after |
-| --- | --- | --- |
-| address | null | [0x22B409E1ab288DA6a895FE8251bEbfcA267f8805](https://etherscan.io/address/0x22B409E1ab288DA6a895FE8251bEbfcA267f8805) |
-| baseStableBorrowRate | null | 120000000000000000000000000 |
-| baseVariableBorrowRate | null | 0 |
-| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 |
-| maxExcessUsageRatio | null | 200000000000000000000000000 |
-| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 |
-| optimalUsageRatio | null | 800000000000000000000000000 |
-| stableRateSlope1 | null | 130000000000000000000000000 |
-| stableRateSlope2 | null | 3000000000000000000000000000 |
-| variableRateSlope1 | null | 90000000000000000000000000 |
-| variableRateSlope2 | null | 800000000000000000000000000 |
-
+## Emodes changes
## Raw diff
```json
-{
- "reserves": {
- "0x111111111117dC0aa78b770fA6A738034120C302": {
- "address": {
- "from": null,
- "to": "0xf6733B9842883BFE0e0a940eA2F572676af31bde"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "120000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984": {
- "address": {
- "from": null,
- "to": "0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": {
- "address": {
- "from": null,
- "to": "0x07Fa3744FeC271F80c2EA97679823F65c13CCDf4"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "60000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "40000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0": {
- "address": {
- "from": null,
- "to": "0xf6733B9842883BFE0e0a940eA2F572676af31bde"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "120000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": {
- "address": {
- "from": null,
- "to": "0x741aE8b9f54b7DdE46C532f2c0F55B8776c93484"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "0"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "0"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "0"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "0"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "0"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "0"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "0"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "0"
- }
- },
- "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3": {
- "address": {
- "from": null,
- "to": "0x4011fcd421b9E90f131B164EC1d162DBE269621C"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "1000000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "0"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- }
- },
- "0x514910771AF9Ca656af840dff83E8264EcF986CA": {
- "address": {
- "from": null,
- "to": "0x24701A6368Ff6D2874d6b8cDadd461552B8A5283"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32": {
- "address": {
- "from": null,
- "to": "0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": {
- "address": {
- "from": null,
- "to": "0x2B3Ed91C6667d808b0401f439c4859ea635c6862"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "40000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "870000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "870000000000000000000000000"
- }
- },
- "0x6B175474E89094C44Da98b954EedeAC495271d0F": {
- "address": {
- "from": null,
- "to": "0x05F410A9EB94e0BEe0E47F12254E7Cb5F4E2A1f7"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "80000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "920000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "5000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- }
- },
- "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": {
- "address": {
- "from": null,
- "to": "0x22B409E1ab288DA6a895FE8251bEbfcA267f8805"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "120000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "800000000000000000000000000"
- }
- },
- "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9": {
- "address": {
- "from": null,
- "to": "0x24701A6368Ff6D2874d6b8cDadd461552B8A5283"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": {
- "address": {
- "from": null,
- "to": "0x7b8Fa4540246554e77FCFf140f9114de00F8bB8D"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "75000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "2500000000000000000000000"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "40000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "45000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "800000000000000000000000000"
- }
- },
- "0x83F20F44975D03b1b09e64809B757c47f942BEeA": {
- "address": {
- "from": null,
- "to": "0xdef8F50155A6cf21181E29E400E8CffAE2d50968"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "80000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "900000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "50000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "50000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- }
- },
- "0x853d955aCEf822Db058eb8505911ED77F175b99e": {
- "address": {
- "from": null,
- "to": "0xA7D9302346d4C35724821cf98966B2257c9683c6"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "900000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "5000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- }
- },
- "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497": {
- "address": {
- "from": null,
- "to": "0x36d32fD7a72AD600be60Ccb71D3718E455025CaA"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "1000000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "0"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "900000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "0"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "0"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "0"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "0"
- }
- },
- "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2": {
- "address": {
- "from": null,
- "to": "0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": {
- "address": {
- "from": null,
- "to": "0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "80000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "920000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "5000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "600000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "600000000000000000000000000"
- }
- },
- "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b": {
- "address": {
- "from": null,
- "to": "0x48AF11111764E710fcDcE2750db848C63edab57B"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "1000000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "0"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "0"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "0"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6": {
- "address": {
- "from": null,
- "to": "0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704": {
- "address": {
- "from": null,
- "to": "0x24701A6368Ff6D2874d6b8cDadd461552B8A5283"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F": {
- "address": {
- "from": null,
- "to": "0xA6459195d60A797D278f58Ffbd2BA62Fb3F7FA1E"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "180000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "30000000000000000000000000"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "150000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "1000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "150000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "1000000000000000000000000000"
- }
- },
- "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": {
- "address": {
- "from": null,
- "to": "0x42ec99A020B78C449d17d93bC4c89e0189B5811d"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "57000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "900000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "40000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "27000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "800000000000000000000000000"
- }
- },
- "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72": {
- "address": {
- "from": null,
- "to": "0xf6733B9842883BFE0e0a940eA2F572676af31bde"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "120000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee": {
- "address": {
- "from": null,
- "to": "0xf1e5355cEcaA71036CE21cdF8F9d04061B1BC6E1"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "1000000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "650000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "0"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "350000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "0"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "0"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xD33526068D116cE69F19A9ee46F0bd304F21A51f": {
- "address": {
- "from": null,
- "to": "0xD87974E8ED49AB16d5053ba793F4e17078Be0426"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "95000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "85000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "870000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "85000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "870000000000000000000000000"
- }
- },
- "0xD533a949740bb3306d119CC777fa900bA034cd52": {
- "address": {
- "from": null,
- "to": "0x76884cAFeCf1f7d4146DA6C4053B18B76bf6ED14"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "170000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "30000000000000000000000000"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "300000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "700000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "80000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "140000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xae78736Cd615f374D3085123A210448E74Fc6393": {
- "address": {
- "from": null,
- "to": "0x24701A6368Ff6D2874d6b8cDadd461552B8A5283"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xba100000625a3754423978a60c9317c58a424e3D": {
- "address": {
- "from": null,
- "to": "0xd9d85499449f26d2A2c240defd75314f23920089"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "270000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "50000000000000000000000000"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "220000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "1500000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "220000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "1500000000000000000000000000"
- }
- },
- "0xdAC17F958D2ee523a2206206994597C13D831ec7": {
- "address": {
- "from": null,
- "to": "0xca719585f2E07BDe82c4a05D6E7C0E446c2D6601"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "100000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "80000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "920000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "40000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "720000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "750000000000000000000000000"
- }
- },
- "0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202": {
- "address": {
- "from": null,
- "to": "0xf6733B9842883BFE0e0a940eA2F572676af31bde"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "120000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38": {
- "address": {
- "from": null,
- "to": "0x48AF11111764E710fcDcE2750db848C63edab57B"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "1000000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "550000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "0"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "450000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "0"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "0"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "70000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- }
- },
- "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": {
- "address": {
- "from": null,
- "to": "0x22B409E1ab288DA6a895FE8251bEbfcA267f8805"
- },
- "baseStableBorrowRate": {
- "from": null,
- "to": "120000000000000000000000000"
- },
- "baseVariableBorrowRate": {
- "from": null,
- "to": "0"
- },
- "maxExcessStableToTotalDebtRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "maxExcessUsageRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalStableToTotalDebtRatio": {
- "from": null,
- "to": "200000000000000000000000000"
- },
- "optimalUsageRatio": {
- "from": null,
- "to": "800000000000000000000000000"
- },
- "stableRateSlope1": {
- "from": null,
- "to": "130000000000000000000000000"
- },
- "stableRateSlope2": {
- "from": null,
- "to": "3000000000000000000000000000"
- },
- "variableRateSlope1": {
- "from": null,
- "to": "90000000000000000000000000"
- },
- "variableRateSlope2": {
- "from": null,
- "to": "800000000000000000000000000"
- }
- }
- }
-}
+{}
```
\ No newline at end of file
diff --git a/lib/aave-address-book b/lib/aave-address-book
index 2669c8995..98ba2938f 160000
--- a/lib/aave-address-book
+++ b/lib/aave-address-book
@@ -1 +1 @@
-Subproject commit 2669c89957af067ed48626455de98a646dc81c78
+Subproject commit 98ba2938fe48206390a533863c2882faf96773e6
diff --git a/lib/forge-std b/lib/forge-std
index bf6606142..035de35f5 160000
--- a/lib/forge-std
+++ b/lib/forge-std
@@ -1 +1 @@
-Subproject commit bf6606142994b1e47e2882ce0cd477c020d77623
+Subproject commit 035de35f5e366c8d6ed142aec4ccb57fe2dd87d4
diff --git a/lib/solidity-utils b/lib/solidity-utils
deleted file mode 160000
index 5d728d5d4..000000000
--- a/lib/solidity-utils
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5d728d5d4c43508b46223fffbae94ee16f61f977
diff --git a/package.json b/package.json
index 0fe10a6b5..15e326e6b 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"test": "tests"
},
"scripts": {
- "prettier": "prettier --write 'src/**/*.sol'",
+ "lint:fix": "prettier --write 'src/**/*.sol'",
"prettier:tests": "prettier --write 'tests/**/*.sol'"
},
"repository": {
@@ -26,6 +26,6 @@
"prettier-plugin-solidity": "^1.1.3"
},
"dependencies": {
- "@bgd-labs/aave-cli": "0.16.2"
+ "@bgd-labs/aave-cli": "1.0.0"
}
}
diff --git a/remappings.txt b/remappings.txt
index 706bff1af..bbfd30ced 100644
--- a/remappings.txt
+++ b/remappings.txt
@@ -1,6 +1,5 @@
aave-address-book/=lib/aave-address-book/src/
aave-v3-origin/=lib/aave-address-book/lib/aave-v3-origin/src/
-aave-v3-core/=lib/aave-address-book/lib/aave-v3-origin/src/core
-aave-v3-periphery/=lib/aave-address-book/lib/aave-v3-origin/src/periphery
+aave-v3-origin-tests/=lib/aave-address-book/lib/aave-v3-origin/tests
forge-std/=lib/forge-std/src/
-solidity-utils/=lib/solidity-utils/src/
+solidity-utils/=lib/aave-address-book/lib/aave-v3-origin/lib/solidity-utils/src/
diff --git a/scripts/RiskStewards.s.sol b/scripts/RiskStewards.s.sol
index 71e551e10..5431fd71a 100644
--- a/scripts/RiskStewards.s.sol
+++ b/scripts/RiskStewards.s.sol
@@ -3,7 +3,7 @@ pragma solidity ^0.8.0;
import 'solidity-utils/contracts/utils/ScriptUtils.sol';
import {CapsPlusRiskSteward} from '../src/riskstewards/CapsPlusRiskSteward.sol';
-import {IAaveV3ConfigEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/IAaveV3ConfigEngine.sol';
+import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol';
import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';
diff --git a/src/GovV3Helpers.sol b/src/GovV3Helpers.sol
index 393b11917..75d4f1814 100644
--- a/src/GovV3Helpers.sol
+++ b/src/GovV3Helpers.sol
@@ -5,6 +5,7 @@ import {Vm} from 'forge-std/Vm.sol';
import {ChainIds, ChainHelpers} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
import {IpfsUtils} from './IpfsUtils.sol';
import {console2} from 'forge-std/console2.sol';
+import {ProxyHelpers} from 'aave-v3-origin-tests/utils/ProxyHelpers.sol';
import {PayloadsControllerUtils, IGovernancePowerStrategy, IPayloadsControllerCore, IGovernanceCore} from 'aave-address-book/GovernanceV3.sol';
import {IVotingMachineWithProofs} from 'aave-address-book/governance-v3/IVotingMachineWithProofs.sol';
import {IVotingPortal} from 'aave-address-book/governance-v3/IVotingPortal.sol';
@@ -24,7 +25,6 @@ import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
import {Address} from 'solidity-utils/contracts/oz-common/Address.sol';
import {Create2Utils} from 'solidity-utils/contracts/utils/ScriptUtils.sol';
import {StorageHelpers} from './StorageHelpers.sol';
-import {ProxyHelpers} from './ProxyHelpers.sol';
import {Create2UtilsZkSync} from 'solidity-utils/../zksync/src/contracts/utils/ScriptUtilsZkSync.sol';
interface IGovernance_V2_5 {
@@ -232,10 +232,19 @@ library GovV3Helpers {
return buildAction(payloadAddress);
}
- function _getBytecodeHashFromArtifacts(Vm vm, string memory contractName) private view returns (bytes32 bytecodeHash) {
- string memory artifactPath = string.concat('zkout/', contractName, '.sol/', contractName, '.json');
+ function _getBytecodeHashFromArtifacts(
+ Vm vm,
+ string memory contractName
+ ) private view returns (bytes32 bytecodeHash) {
+ string memory artifactPath = string.concat(
+ 'zkout/',
+ contractName,
+ '.sol/',
+ contractName,
+ '.json'
+ );
string memory artifact = vm.readFile(artifactPath);
- bytecodeHash = vm.parseJsonBytes32(artifact, ".hash");
+ bytecodeHash = vm.parseJsonBytes32(artifact, '.hash');
require(bytecodeHash != (bytes32(0)), 'Unable to fetch bytecodeHash from the zkout artifacts');
return bytecodeHash;
diff --git a/src/ProtocolV2TestBase.sol b/src/ProtocolV2TestBase.sol
index 8e1eb187c..fb333ddd4 100644
--- a/src/ProtocolV2TestBase.sol
+++ b/src/ProtocolV2TestBase.sol
@@ -13,7 +13,7 @@ import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
import {IInitializableAdminUpgradeabilityProxy} from './interfaces/IInitializableAdminUpgradeabilityProxy.sol';
import {ExtendedAggregatorV2V3Interface} from './interfaces/ExtendedAggregatorV2V3Interface.sol';
import {CommonTestBase, ReserveTokens} from './CommonTestBase.sol';
-import {ProxyHelpers} from './ProxyHelpers.sol';
+import {ProxyHelpers} from 'aave-v3-origin/../tests/utils/ProxyHelpers.sol';
struct ReserveConfig {
string symbol;
diff --git a/src/ProtocolV3TestBase.sol b/src/ProtocolV3TestBase.sol
index 54aea4a87..061a1c4ff 100644
--- a/src/ProtocolV3TestBase.sol
+++ b/src/ProtocolV3TestBase.sol
@@ -6,14 +6,13 @@ import {IAaveOracle, IPool, IPoolAddressesProvider, IPoolDataProvider, IReserveI
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {IERC20Metadata} from 'solidity-utils/contracts/oz-common/interfaces/IERC20Metadata.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
-import {ReserveConfiguration} from 'aave-v3-origin/core/contracts/protocol/libraries/configuration/ReserveConfiguration.sol';
-import {IDefaultInterestRateStrategyV2} from 'aave-v3-origin/core/contracts/interfaces/IDefaultInterestRateStrategyV2.sol';
+import {ReserveConfiguration} from 'aave-v3-origin/contracts/protocol/libraries/configuration/ReserveConfiguration.sol';
+import {IDefaultInterestRateStrategyV2} from 'aave-v3-origin/contracts/interfaces/IDefaultInterestRateStrategyV2.sol';
import {AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
-import {DiffUtils} from 'aave-v3-origin/../tests/utils/DiffUtils.sol';
-import {ProtocolV3TestBase as RawProtocolV3TestBase, ReserveConfig} from 'aave-v3-origin/../tests/utils/ProtocolV3TestBase.sol';
+import {DiffUtils} from 'aave-v3-origin-tests/utils/DiffUtils.sol';
+import {ProtocolV3TestBase as RawProtocolV3TestBase, ReserveConfig} from 'aave-v3-origin-tests/utils/ProtocolV3TestBase.sol';
import {IInitializableAdminUpgradeabilityProxy} from './interfaces/IInitializableAdminUpgradeabilityProxy.sol';
import {ExtendedAggregatorV2V3Interface} from './interfaces/ExtendedAggregatorV2V3Interface.sol';
-import {ProxyHelpers} from './ProxyHelpers.sol';
import {CommonTestBase, ReserveTokens} from './CommonTestBase.sol';
import {ILegacyDefaultInterestRateStrategy} from './dependencies/ILegacyDefaultInterestRateStrategy.sol';
@@ -317,35 +316,57 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase {
return configuration.getIsVirtualAccActive();
}
- function _logReserveConfig(ReserveConfig memory config) internal pure {
- console.log('Symbol ', config.symbol);
- console.log('Underlying address ', config.underlying);
- console.log('AToken address ', config.aToken);
- console.log('Stable debt token address ', config.stableDebtToken);
- console.log('Variable debt token address ', config.variableDebtToken);
- console.log('Decimals ', config.decimals);
- console.log('LTV ', config.ltv);
- console.log('Liquidation Threshold ', config.liquidationThreshold);
- console.log('Liquidation Bonus ', config.liquidationBonus);
- console.log('Liquidation protocol fee ', config.liquidationProtocolFee);
- console.log('Reserve Factor ', config.reserveFactor);
- console.log('Usage as collateral enabled ', (config.usageAsCollateralEnabled) ? 'Yes' : 'No');
- console.log('Borrowing enabled ', (config.borrowingEnabled) ? 'Yes' : 'No');
- console.log('Stable borrow rate enabled ', (config.stableBorrowRateEnabled) ? 'Yes' : 'No');
- console.log('Supply cap ', config.supplyCap);
- console.log('Borrow cap ', config.borrowCap);
- console.log('Debt ceiling ', config.debtCeiling);
- console.log('eMode category ', config.eModeCategory);
- console.log('Interest rate strategy ', config.interestRateStrategy);
- console.log('Is active ', (config.isActive) ? 'Yes' : 'No');
- console.log('Is frozen ', (config.isFrozen) ? 'Yes' : 'No');
- console.log('Is siloed ', (config.isSiloed) ? 'Yes' : 'No');
- console.log('Is borrowable in isolation ', (config.isBorrowableInIsolation) ? 'Yes' : 'No');
- console.log('Is flashloanable ', (config.isFlashloanable) ? 'Yes' : 'No');
- console.log('Is virtual accounting active ', (config.virtualAccActive) ? 'Yes' : 'No');
- console.log('Virtual balance ', config.virtualBalance);
- console.log('-----');
- console.log('-----');
+ function _writeEModeConfigs(string memory path, IPool pool) internal virtual override {
+ // keys for json stringification
+ string memory eModesKey = 'emodes';
+ string memory content = '{}';
+ vm.serializeJson(eModesKey, '{}');
+ uint8 emptyCounter = 0;
+ for (uint8 i = 0; i < 256; i++) {
+ try pool.getEModeCategoryCollateralConfig(i) returns (DataTypes.CollateralConfig memory cfg) {
+ if (cfg.liquidationThreshold == 0) {
+ if (++emptyCounter > 2) break;
+ } else {
+ string memory key = vm.toString(i);
+ vm.serializeJson(key, '{}');
+ vm.serializeUint(key, 'eModeCategory', i);
+ vm.serializeString(key, 'label', pool.getEModeCategoryLabel(i));
+ vm.serializeUint(key, 'ltv', cfg.ltv);
+ vm.serializeString(
+ key,
+ 'collateralBitmap',
+ vm.toString(pool.getEModeCategoryCollateralBitmap(i))
+ );
+ vm.serializeString(
+ key,
+ 'borrowableBitmap',
+ vm.toString(pool.getEModeCategoryBorrowableBitmap(i))
+ );
+ vm.serializeUint(key, 'liquidationThreshold', cfg.liquidationThreshold);
+ string memory object = vm.serializeUint(key, 'liquidationBonus', cfg.liquidationBonus);
+ content = vm.serializeString(eModesKey, key, object);
+ emptyCounter = 0;
+ }
+ } catch {
+ DataTypes.EModeCategoryLegacy memory category = pool.getEModeCategoryData(i);
+ if (category.liquidationThreshold == 0) {
+ if (++emptyCounter > 2) break;
+ } else {
+ string memory key = vm.toString(i);
+ vm.serializeJson(key, '{}');
+ vm.serializeUint(key, 'eModeCategory', i);
+ vm.serializeString(key, 'label', category.label);
+ vm.serializeUint(key, 'ltv', category.ltv);
+ vm.serializeUint(key, 'liquidationThreshold', category.liquidationThreshold);
+ vm.serializeUint(key, 'liquidationBonus', category.liquidationBonus);
+ string memory object = vm.serializeAddress(key, 'priceSource', category.priceSource);
+ content = vm.serializeString(eModesKey, key, object);
+ emptyCounter = 0;
+ }
+ }
+ }
+ string memory output = vm.serializeString('root', 'eModes', content);
+ vm.writeJson(output, path);
}
function _writeStrategyConfigs(
diff --git a/src/ProxyHelpers.sol b/src/ProxyHelpers.sol
deleted file mode 100644
index bc4beb7a6..000000000
--- a/src/ProxyHelpers.sol
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: AGPL-3.0
-pragma solidity >=0.7.5 <0.9.0;
-
-import 'forge-std/Vm.sol';
-
-library ProxyHelpers {
- function getInitializableAdminUpgradeabilityProxyAdmin(
- Vm vm,
- address proxy
- ) internal view returns (address) {
- address slot = address(
- uint160(
- uint256(vm.load(proxy, 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103))
- )
- );
- return slot;
- }
-
- function getInitializableAdminUpgradeabilityProxyImplementation(
- Vm vm,
- address proxy
- ) internal view returns (address) {
- address slot = address(
- uint160(
- uint256(vm.load(proxy, 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc))
- )
- );
- return slot;
- }
-}
diff --git a/src/asset-manager/AaveWstethWithdrawer.sol b/src/asset-manager/AaveWstethWithdrawer.sol
index 03dec2a09..86ae9f610 100644
--- a/src/asset-manager/AaveWstethWithdrawer.sol
+++ b/src/asset-manager/AaveWstethWithdrawer.sol
@@ -22,6 +22,7 @@ import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {OwnableWithGuardian} from 'solidity-utils/contracts/access-control/OwnableWithGuardian.sol';
import {Initializable} from 'solidity-utils/contracts/transparent-proxy/Initializable.sol';
import {Rescuable721, Rescuable} from 'solidity-utils/contracts/utils/Rescuable721.sol';
+import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';
import {IAaveWstethWithdrawer, IWithdrawalQueueERC721, IWETH} from './interfaces/IAaveWstethWithdrawer.sol';
@@ -31,7 +32,12 @@ import {IAaveWstethWithdrawer, IWithdrawalQueueERC721, IWETH} from './interfaces
* @author defijesus.eth
* @notice Helper contract to natively withdraw wstETH to the collector
*/
-contract AaveWstethWithdrawer is Initializable, OwnableWithGuardian, Rescuable721, IAaveWstethWithdrawer {
+contract AaveWstethWithdrawer is
+ Initializable,
+ OwnableWithGuardian,
+ Rescuable721,
+ IAaveWstethWithdrawer
+{
using SafeERC20 for IERC20;
/// auto incrementing index to store requestIds of withdrawals
@@ -58,7 +64,10 @@ contract AaveWstethWithdrawer is Initializable, OwnableWithGuardian, Rescuable72
/// @inheritdoc IAaveWstethWithdrawer
function startWithdraw(uint256[] calldata amounts) external onlyOwnerOrGuardian {
uint256 index = nextIndex++;
- uint256[] memory rIds = WSTETH_WITHDRAWAL_QUEUE.requestWithdrawalsWstETH(amounts, address(this));
+ uint256[] memory rIds = WSTETH_WITHDRAWAL_QUEUE.requestWithdrawalsWstETH(
+ amounts,
+ address(this)
+ );
requestIds[index] = rIds;
emit StartedWithdrawal(amounts, index);
@@ -92,6 +101,14 @@ contract AaveWstethWithdrawer is Initializable, OwnableWithGuardian, Rescuable72
return owner();
}
+ /// @inheritdoc IRescuableBase
+ function maxRescue(
+ address erc20Token
+ ) public view override(RescuableBase, IRescuableBase) returns (uint256) {
+ return type(uint256).max;
+ }
+
fallback() external payable {}
+
receive() external payable {}
}
diff --git a/src/asset-manager/interfaces/IAaveWstethWithdrawer.sol b/src/asset-manager/interfaces/IAaveWstethWithdrawer.sol
index cfb5dfbc1..11dfbd675 100644
--- a/src/asset-manager/interfaces/IAaveWstethWithdrawer.sol
+++ b/src/asset-manager/interfaces/IAaveWstethWithdrawer.sol
@@ -22,7 +22,6 @@ interface IAaveWstethWithdrawer {
}
interface IWithdrawalQueueERC721 {
-
/// @notice Request the batch of wstETH for withdrawal. Approvals for the passed amounts should be done before.
/// @param _amounts an array of wstETH amount values.
/// The standalone withdrawal request will be created for each item in the passed list.
@@ -72,4 +71,4 @@ interface IWithdrawalQueueERC721 {
interface IWETH {
function deposit() external payable;
-}
\ No newline at end of file
+}
diff --git a/src/bridges/arbitrum/AaveArbEthERC20Bridge.sol b/src/bridges/arbitrum/AaveArbEthERC20Bridge.sol
index a6019ac09..3e73c4cb8 100644
--- a/src/bridges/arbitrum/AaveArbEthERC20Bridge.sol
+++ b/src/bridges/arbitrum/AaveArbEthERC20Bridge.sol
@@ -6,6 +6,7 @@ import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
+import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
@@ -113,4 +114,11 @@ contract AaveArbEthERC20Bridge is Ownable, Rescuable, IAaveArbEthERC20Bridge {
function whoCanRescue() public view override returns (address) {
return owner();
}
+
+ /// @inheritdoc IRescuableBase
+ function maxRescue(
+ address erc20Token
+ ) public view override(RescuableBase, IRescuableBase) returns (uint256) {
+ return type(uint256).max;
+ }
}
diff --git a/src/bridges/optimism/AaveOpEthERC20Bridge.sol b/src/bridges/optimism/AaveOpEthERC20Bridge.sol
index 2d7bcc3af..1a3c8940f 100644
--- a/src/bridges/optimism/AaveOpEthERC20Bridge.sol
+++ b/src/bridges/optimism/AaveOpEthERC20Bridge.sol
@@ -6,6 +6,7 @@ import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
+import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
@@ -54,4 +55,11 @@ contract AaveOpEthERC20Bridge is Ownable, Rescuable, IAaveOpEthERC20Bridge {
function whoCanRescue() public view override returns (address) {
return owner();
}
+
+ /// @inheritdoc IRescuableBase
+ function maxRescue(
+ address erc20Token
+ ) public view override(RescuableBase, IRescuableBase) returns (uint256) {
+ return type(uint256).max;
+ }
}
diff --git a/src/bridges/polygon/AavePolEthERC20Bridge.sol b/src/bridges/polygon/AavePolEthERC20Bridge.sol
index 7a7514ba4..9e18d3237 100644
--- a/src/bridges/polygon/AavePolEthERC20Bridge.sol
+++ b/src/bridges/polygon/AavePolEthERC20Bridge.sol
@@ -6,6 +6,7 @@ import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
+import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {AaveV2Polygon} from 'aave-address-book/AaveV2Polygon.sol';
import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
@@ -97,6 +98,13 @@ contract AavePolEthERC20Bridge is Ownable, Rescuable, IAavePolEthERC20Bridge {
return owner();
}
+ /// @inheritdoc IRescuableBase
+ function maxRescue(
+ address erc20Token
+ ) public view override(RescuableBase, IRescuableBase) returns (uint256) {
+ return type(uint256).max;
+ }
+
receive() external payable {
if (block.chainid != ChainIds.MAINNET) revert InvalidChain();
diff --git a/src/bridges/polygon/AavePolEthPlasmaBridge.sol b/src/bridges/polygon/AavePolEthPlasmaBridge.sol
index f56e06c24..465f02b16 100644
--- a/src/bridges/polygon/AavePolEthPlasmaBridge.sol
+++ b/src/bridges/polygon/AavePolEthPlasmaBridge.sol
@@ -6,6 +6,7 @@ import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
+import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
@@ -102,6 +103,13 @@ contract AavePolEthPlasmaBridge is Ownable, Rescuable, IAavePolEthPlasmaBridge {
return owner();
}
+ /// @inheritdoc IRescuableBase
+ function maxRescue(
+ address erc20Token
+ ) public view override(RescuableBase, IRescuableBase) returns (uint256) {
+ return type(uint256).max;
+ }
+
/// @dev Allows the contract to receive Matic on Polygon
receive() external payable {
if (block.chainid != ChainIds.POLYGON) revert InvalidChain();
diff --git a/src/dependencies/DefaultReserveInterestRateStrategy.sol b/src/dependencies/DefaultReserveInterestRateStrategy.sol
index 38da9ade9..52f39add7 100644
--- a/src/dependencies/DefaultReserveInterestRateStrategy.sol
+++ b/src/dependencies/DefaultReserveInterestRateStrategy.sol
@@ -124,13 +124,13 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy {
return
calculateInterestRates(
- reserve,
- availableLiquidity,
- totalStableDebt,
- totalVariableDebt,
- averageStableBorrowRate,
- reserveFactor
- );
+ reserve,
+ availableLiquidity,
+ totalStableDebt,
+ totalVariableDebt,
+ averageStableBorrowRate,
+ reserveFactor
+ );
}
struct CalcInterestRatesLocalVars {
@@ -239,4 +239,4 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy {
return overallBorrowRate;
}
-}
\ No newline at end of file
+}
diff --git a/src/dependencies/IReserveInterestRateStrategy.sol b/src/dependencies/IReserveInterestRateStrategy.sol
index d8b1cc7e2..f1e733469 100644
--- a/src/dependencies/IReserveInterestRateStrategy.sol
+++ b/src/dependencies/IReserveInterestRateStrategy.sol
@@ -31,7 +31,7 @@ interface IReserveInterestRateStrategy {
uint256 averageStableBorrowRate,
uint256 reserveFactor
)
- external
- view
- returns (uint256 liquidityRate, uint256 stableBorrowRate, uint256 variableBorrowRate);
-}
\ No newline at end of file
+ external
+ view
+ returns (uint256 liquidityRate, uint256 stableBorrowRate, uint256 variableBorrowRate);
+}
diff --git a/src/riskstewards/CapsPlusRiskSteward.sol b/src/riskstewards/CapsPlusRiskSteward.sol
index ef8528fbc..0daf0578f 100644
--- a/src/riskstewards/CapsPlusRiskSteward.sol
+++ b/src/riskstewards/CapsPlusRiskSteward.sol
@@ -3,8 +3,8 @@ pragma solidity ^0.8.0;
import {IACLManager, IPoolConfigurator, IPoolDataProvider} from 'aave-address-book/AaveV3.sol';
import {Address} from 'solidity-utils/contracts/oz-common/Address.sol';
-import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol';
-import {IAaveV3ConfigEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/IAaveV3ConfigEngine.sol';
+import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol';
+import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol';
import {ICapsPlusRiskSteward} from './ICapsPlusRiskSteward.sol';
/**
diff --git a/src/riskstewards/ICapsPlusRiskSteward.sol b/src/riskstewards/ICapsPlusRiskSteward.sol
index 143a0a832..f79d3301f 100644
--- a/src/riskstewards/ICapsPlusRiskSteward.sol
+++ b/src/riskstewards/ICapsPlusRiskSteward.sol
@@ -3,8 +3,8 @@ pragma solidity ^0.8.0;
import {IACLManager, IPoolConfigurator, IPoolDataProvider} from 'aave-address-book/AaveV3.sol';
import {Address} from 'solidity-utils/contracts/oz-common/Address.sol';
-import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol';
-import {IAaveV3ConfigEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/IAaveV3ConfigEngine.sol';
+import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol';
+import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol';
/**
* @title ICapsPlusRiskSteward
diff --git a/src/swaps/AaveSwapper.sol b/src/swaps/AaveSwapper.sol
index 80e8021c8..66402dacd 100644
--- a/src/swaps/AaveSwapper.sol
+++ b/src/swaps/AaveSwapper.sol
@@ -5,6 +5,7 @@ pragma solidity ^0.8.0;
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
+import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {OwnableWithGuardian} from 'solidity-utils/contracts/access-control/OwnableWithGuardian.sol';
import {Initializable} from 'solidity-utils/contracts/transparent-proxy/Initializable.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
@@ -140,6 +141,13 @@ contract AaveSwapper is Initializable, OwnableWithGuardian, Rescuable {
return owner();
}
+ /// @inheritdoc IRescuableBase
+ function maxRescue(
+ address erc20Token
+ ) public view override(RescuableBase, IRescuableBase) returns (uint256) {
+ return type(uint256).max;
+ }
+
function _getPriceCheckerAndData(
address toToken,
address fromOracle,
diff --git a/src/v2-config-engine/AaveV2ConfigEngine.sol b/src/v2-config-engine/AaveV2ConfigEngine.sol
index c50f8e359..0a052954c 100644
--- a/src/v2-config-engine/AaveV2ConfigEngine.sol
+++ b/src/v2-config-engine/AaveV2ConfigEngine.sol
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.12;
-import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol';
+import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol';
import './IAaveV2ConfigEngine.sol';
/**
diff --git a/src/v2-config-engine/AaveV2Payload.sol b/src/v2-config-engine/AaveV2Payload.sol
index d9fc79dae..18f7a28c4 100644
--- a/src/v2-config-engine/AaveV2Payload.sol
+++ b/src/v2-config-engine/AaveV2Payload.sol
@@ -2,10 +2,10 @@
pragma solidity ^0.8.0;
import {Address} from 'solidity-utils/contracts/oz-common/Address.sol';
-import {WadRayMath} from 'aave-v3-origin/core/contracts/protocol/libraries/math/WadRayMath.sol';
+import {WadRayMath} from 'aave-v3-origin/contracts/protocol/libraries/math/WadRayMath.sol';
import {IAaveV2ConfigEngine as IEngine} from './IAaveV2ConfigEngine.sol';
import {IV2RateStrategyFactory} from './IV2RateStrategyFactory.sol';
-import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol';
+import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol';
/**
* @dev Base smart contract for an Aave v3.0.1 configs update.
diff --git a/src/v3-config-engine/AaveV3PayloadArbitrum.sol b/src/v3-config-engine/AaveV3PayloadArbitrum.sol
index 9018c6b88..e2bce89d5 100644
--- a/src/v3-config-engine/AaveV3PayloadArbitrum.sol
+++ b/src/v3-config-engine/AaveV3PayloadArbitrum.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Arbitrum.
diff --git a/src/v3-config-engine/AaveV3PayloadAvalanche.sol b/src/v3-config-engine/AaveV3PayloadAvalanche.sol
index 3813cccc6..baab95805 100644
--- a/src/v3-config-engine/AaveV3PayloadAvalanche.sol
+++ b/src/v3-config-engine/AaveV3PayloadAvalanche.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Avalanche.
diff --git a/src/v3-config-engine/AaveV3PayloadBNB.sol b/src/v3-config-engine/AaveV3PayloadBNB.sol
index 993c9e762..e863fadd0 100644
--- a/src/v3-config-engine/AaveV3PayloadBNB.sol
+++ b/src/v3-config-engine/AaveV3PayloadBNB.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3BNB} from 'aave-address-book/AaveV3BNB.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Bnb.
diff --git a/src/v3-config-engine/AaveV3PayloadBase.sol b/src/v3-config-engine/AaveV3PayloadBase.sol
index 31ced655b..57242cb3e 100644
--- a/src/v3-config-engine/AaveV3PayloadBase.sol
+++ b/src/v3-config-engine/AaveV3PayloadBase.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Base.
diff --git a/src/v3-config-engine/AaveV3PayloadEthereum.sol b/src/v3-config-engine/AaveV3PayloadEthereum.sol
index 7526ffb22..1c2d00e32 100644
--- a/src/v3-config-engine/AaveV3PayloadEthereum.sol
+++ b/src/v3-config-engine/AaveV3PayloadEthereum.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Ethereum.
diff --git a/src/v3-config-engine/AaveV3PayloadEthereumEtherFi.sol b/src/v3-config-engine/AaveV3PayloadEthereumEtherFi.sol
index 6721b021d..b0981d4f4 100644
--- a/src/v3-config-engine/AaveV3PayloadEthereumEtherFi.sol
+++ b/src/v3-config-engine/AaveV3PayloadEthereumEtherFi.sol
@@ -2,14 +2,17 @@
pragma solidity ^0.8.0;
import {AaveV3EthereumEtherFi} from 'aave-address-book/AaveV3EthereumEtherFi.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Ethereum EtherFi.
* @author BGD Labs
*/
-abstract contract AaveV3PayloadEthereumEtherFi is AaveV3Payload(IEngine(AaveV3EthereumEtherFi.CONFIG_ENGINE)) {
+abstract contract AaveV3PayloadEthereumEtherFi is
+ AaveV3Payload(IEngine(AaveV3EthereumEtherFi.CONFIG_ENGINE))
+{
function getPoolContext() public pure override returns (IEngine.PoolContext memory) {
- return IEngine.PoolContext({networkName: 'Ethereum EtherFi', networkAbbreviation: 'EthEtherFi'});
+ return
+ IEngine.PoolContext({networkName: 'Ethereum EtherFi', networkAbbreviation: 'EthEtherFi'});
}
}
diff --git a/src/v3-config-engine/AaveV3PayloadEthereumLido.sol b/src/v3-config-engine/AaveV3PayloadEthereumLido.sol
index b6065be9e..2f729589f 100644
--- a/src/v3-config-engine/AaveV3PayloadEthereumLido.sol
+++ b/src/v3-config-engine/AaveV3PayloadEthereumLido.sol
@@ -2,13 +2,15 @@
pragma solidity ^0.8.0;
import {AaveV3EthereumLido} from 'aave-address-book/AaveV3EthereumLido.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Ethereum Lido.
* @author BGD Labs
*/
-abstract contract AaveV3PayloadEthereumLido is AaveV3Payload(IEngine(AaveV3EthereumLido.CONFIG_ENGINE)) {
+abstract contract AaveV3PayloadEthereumLido is
+ AaveV3Payload(IEngine(AaveV3EthereumLido.CONFIG_ENGINE))
+{
function getPoolContext() public pure override returns (IEngine.PoolContext memory) {
return IEngine.PoolContext({networkName: 'Ethereum Lido', networkAbbreviation: 'EthLido'});
}
diff --git a/src/v3-config-engine/AaveV3PayloadGnosis.sol b/src/v3-config-engine/AaveV3PayloadGnosis.sol
index 4ce5b9f6a..d094ddcbb 100644
--- a/src/v3-config-engine/AaveV3PayloadGnosis.sol
+++ b/src/v3-config-engine/AaveV3PayloadGnosis.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Gnosis} from 'aave-address-book/AaveV3Gnosis.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Gnosis.
diff --git a/src/v3-config-engine/AaveV3PayloadMetis.sol b/src/v3-config-engine/AaveV3PayloadMetis.sol
index b50dac291..ce3453370 100644
--- a/src/v3-config-engine/AaveV3PayloadMetis.sol
+++ b/src/v3-config-engine/AaveV3PayloadMetis.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Metis} from 'aave-address-book/AaveV3Metis.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Metis.
diff --git a/src/v3-config-engine/AaveV3PayloadOptimism.sol b/src/v3-config-engine/AaveV3PayloadOptimism.sol
index 099b212c8..3b68cfb7d 100644
--- a/src/v3-config-engine/AaveV3PayloadOptimism.sol
+++ b/src/v3-config-engine/AaveV3PayloadOptimism.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Optimism} from 'aave-address-book/AaveV3Optimism.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Optimism.
diff --git a/src/v3-config-engine/AaveV3PayloadPolygon.sol b/src/v3-config-engine/AaveV3PayloadPolygon.sol
index 74163e852..5548fd3fa 100644
--- a/src/v3-config-engine/AaveV3PayloadPolygon.sol
+++ b/src/v3-config-engine/AaveV3PayloadPolygon.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Polygon.
diff --git a/src/v3-config-engine/AaveV3PayloadPolygonZkEvm.sol b/src/v3-config-engine/AaveV3PayloadPolygonZkEvm.sol
index 696608fa8..b0607c0f9 100644
--- a/src/v3-config-engine/AaveV3PayloadPolygonZkEvm.sol
+++ b/src/v3-config-engine/AaveV3PayloadPolygonZkEvm.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3PolygonZkEvm} from 'aave-address-book/AaveV3PolygonZkEvm.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Polygon ZkEvm.
diff --git a/src/v3-config-engine/AaveV3PayloadScroll.sol b/src/v3-config-engine/AaveV3PayloadScroll.sol
index 9c042e0dc..fda50ef65 100644
--- a/src/v3-config-engine/AaveV3PayloadScroll.sol
+++ b/src/v3-config-engine/AaveV3PayloadScroll.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 Scroll.
diff --git a/src/v3-config-engine/AaveV3PayloadZkSync.sol b/src/v3-config-engine/AaveV3PayloadZkSync.sol
index 3a1811c65..305c1baf0 100644
--- a/src/v3-config-engine/AaveV3PayloadZkSync.sol
+++ b/src/v3-config-engine/AaveV3PayloadZkSync.sol
@@ -2,7 +2,7 @@
pragma solidity ^0.8.0;
import {AaveV3ZkSync} from 'aave-address-book/AaveV3ZkSync.sol';
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Base smart contract for an Aave v3.1.0 listing on v3 ZkSync.
diff --git a/tests/ProtocolV3TestBase.t.sol b/tests/ProtocolV3TestBase.t.sol
index b7c15b611..416ddfa04 100644
--- a/tests/ProtocolV3TestBase.t.sol
+++ b/tests/ProtocolV3TestBase.t.sol
@@ -21,7 +21,7 @@ contract ProtocolV3TestBaseTest is ProtocolV3TestBase {
ReserveConfig[] memory configs = _getReservesConfigs(AaveV3Optimism.POOL);
e2eTestAsset(
AaveV3Optimism.POOL,
- _findReserveConfig(configs, AaveV3PolygonAssets.WMATIC_UNDERLYING),
+ _findReserveConfig(configs, AaveV3PolygonAssets.WPOL_UNDERLYING),
_findReserveConfig(configs, AaveV3PolygonAssets.DPI_UNDERLYING)
);
}
diff --git a/tests/ProxyHelpersTest.t.sol b/tests/ProxyHelpersTest.t.sol
index 4a74d0f57..dadcf3b91 100644
--- a/tests/ProxyHelpersTest.t.sol
+++ b/tests/ProxyHelpersTest.t.sol
@@ -3,7 +3,7 @@ pragma solidity ^0.8.0;
import 'forge-std/Test.sol';
import {AaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
-import {ProxyHelpers} from '../src/ProxyHelpers.sol';
+import {ProxyHelpers} from 'aave-v3-origin/../tests/utils/ProxyHelpers.sol';
contract ProxyHelpersTest is Test {
function setUp() public {
diff --git a/tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol b/tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol
index 30a2d75a7..d94467d1a 100644
--- a/tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol
+++ b/tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol
@@ -24,7 +24,6 @@ contract AaveV3AvalancheEModeCategoryUpdateNoChange is AaveV3Payload {
ltv: EngineFlags.KEEP_CURRENT,
liqThreshold: EngineFlags.KEEP_CURRENT,
liqBonus: EngineFlags.KEEP_CURRENT,
- priceSource: EngineFlags.KEEP_CURRENT_ADDRESS,
label: EngineFlags.KEEP_CURRENT_STRING
});
diff --git a/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol b/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol
index 3b8e87b0d..43efcf987 100644
--- a/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol
+++ b/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol
@@ -17,7 +17,9 @@ contract AaveV3EthereumAssetEModeUpdate is AaveV3Payload {
eModeUpdate[0] = IEngine.AssetEModeUpdate({
asset: AaveV3EthereumAssets.rETH_UNDERLYING,
- eModeCategory: 1
+ eModeCategory: 1,
+ borrowable: EngineFlags.ENABLED,
+ collateral: EngineFlags.ENABLED
});
return eModeUpdate;
diff --git a/tests/mocks/AaveV3PolygonBorrowUpdate.sol b/tests/mocks/AaveV3PolygonBorrowUpdate.sol
index 73f8d041f..de9e49647 100644
--- a/tests/mocks/AaveV3PolygonBorrowUpdate.sol
+++ b/tests/mocks/AaveV3PolygonBorrowUpdate.sol
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
import {AaveV3PolygonAssets} from 'aave-address-book/AaveV3Polygon.sol';
/**
@@ -20,7 +20,6 @@ contract AaveV3PolygonBorrowUpdate is AaveV3Payload {
asset: AaveV3PolygonAssets.AAVE_UNDERLYING,
enabledToBorrow: EngineFlags.ENABLED,
flashloanable: EngineFlags.DISABLED,
- stableRateModeEnabled: EngineFlags.KEEP_CURRENT,
borrowableInIsolation: EngineFlags.KEEP_CURRENT,
withSiloedBorrowing: EngineFlags.KEEP_CURRENT,
reserveFactor: 15_00
diff --git a/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol b/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol
index cf2f57e53..f04a47165 100644
--- a/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol
+++ b/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
import {AaveV3PolygonAssets} from 'aave-address-book/AaveV3Polygon.sol';
/**
@@ -18,7 +18,6 @@ contract AaveV3PolygonBorrowUpdateNoChange is AaveV3Payload {
asset: AaveV3PolygonAssets.AAVE_UNDERLYING,
enabledToBorrow: EngineFlags.KEEP_CURRENT,
flashloanable: EngineFlags.KEEP_CURRENT,
- stableRateModeEnabled: EngineFlags.KEEP_CURRENT,
borrowableInIsolation: EngineFlags.KEEP_CURRENT,
withSiloedBorrowing: EngineFlags.KEEP_CURRENT,
reserveFactor: EngineFlags.KEEP_CURRENT
diff --git a/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol b/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol
index dc2e25db8..fbd3ed8d4 100644
--- a/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol
+++ b/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
/**
* @dev Smart contract for a mock update, to be able to test
@@ -25,7 +25,6 @@ contract AaveV3PolygonEModeCategoryUpdate is AaveV3Payload {
ltv: 97_40,
liqThreshold: 97_60,
liqBonus: 1_50,
- priceSource: EngineFlags.KEEP_CURRENT_ADDRESS,
label: EngineFlags.KEEP_CURRENT_STRING
});
@@ -59,7 +58,6 @@ contract AaveV3AvalancheEModeCategoryUpdateEdgeBonus is AaveV3Payload {
ltv: 97_40,
liqThreshold: 97_60,
liqBonus: 2_50,
- priceSource: EngineFlags.KEEP_CURRENT_ADDRESS,
label: EngineFlags.KEEP_CURRENT_STRING
});
diff --git a/tests/mocks/AaveV3PolygonPriceFeedUpdate.sol b/tests/mocks/AaveV3PolygonPriceFeedUpdate.sol
index 0613e6282..54b4271ae 100644
--- a/tests/mocks/AaveV3PolygonPriceFeedUpdate.sol
+++ b/tests/mocks/AaveV3PolygonPriceFeedUpdate.sol
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
-import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol';
+import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
import {AaveV3PolygonAssets} from 'aave-address-book/AaveV3Polygon.sol';
/**
diff --git a/tests/riskstewards/CapsPlusRiskSteward.t.sol b/tests/riskstewards/CapsPlusRiskSteward.t.sol
index bac78c82c..42c76c21c 100644
--- a/tests/riskstewards/CapsPlusRiskSteward.t.sol
+++ b/tests/riskstewards/CapsPlusRiskSteward.t.sol
@@ -5,16 +5,16 @@ import 'forge-std/Test.sol';
import {IACLManager, IPoolConfigurator, IPoolDataProvider} from 'aave-address-book/AaveV3.sol';
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
import {CapsPlusRiskSteward, CapsPlusRiskStewardErrors} from '../../src/riskstewards/CapsPlusRiskSteward.sol';
-import {IAaveV3ConfigEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/IAaveV3ConfigEngine.sol';
-import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol';
-import {GovernanceV3Ethereum} from "aave-address-book/GovernanceV3Ethereum.sol";
+import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol';
+import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol';
+import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';
contract CapsPlusRiskSteward_Test is Test {
address public constant user = address(42);
CapsPlusRiskSteward public steward;
function setUp() public {
- vm.createSelectFork(vm.rpcUrl('mainnet'), 20368412);
+ vm.createSelectFork(vm.rpcUrl('mainnet'), 20933854);
steward = new CapsPlusRiskSteward(
AaveV3Ethereum.AAVE_PROTOCOL_DATA_PROVIDER,
IAaveV3ConfigEngine(AaveV3Ethereum.CONFIG_ENGINE),
diff --git a/yarn.lock b/yarn.lock
index 92d1c9e4d..44a88945b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,37 +12,15 @@
resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.9.4.tgz#a483c54c1253656bb33babd464e3154a173e1577"
integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==
-"@babel/code-frame@^7.0.0":
- version "7.22.13"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
- integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
- dependencies:
- "@babel/highlight" "^7.22.13"
- chalk "^2.4.2"
-
-"@babel/helper-validator-identifier@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
- integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
-
-"@babel/highlight@^7.22.13":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54"
- integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==
- dependencies:
- "@babel/helper-validator-identifier" "^7.22.20"
- chalk "^2.4.2"
- js-tokens "^4.0.0"
-
"@bgd-labs/aave-address-book@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@bgd-labs/aave-address-book/-/aave-address-book-3.0.0.tgz#a75cf2e217688e63728bec1b9c956b0134bc647c"
integrity sha512-ALT9T/aIZ7BztozWvGhjVKGAEfe6wLhop0z+0ZSwAdyHXrBfpXXDZa9siHNtOZfNojPVMPvkpgsiPnFmDD8OJQ==
-"@bgd-labs/aave-cli@0.16.2":
- version "0.16.2"
- resolved "https://registry.yarnpkg.com/@bgd-labs/aave-cli/-/aave-cli-0.16.2.tgz#b995358aa5f3a86bdd61e7b539c56ba071e53e18"
- integrity sha512-+X7crEcX1HPdbi+9ZUF0c2TJ0oA9hLseYBWM/ogN04P6hjoRzOCGb5Wv2lK0bhesI2+OWTAHI23am986veZiPQ==
+"@bgd-labs/aave-cli@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@bgd-labs/aave-cli/-/aave-cli-1.0.0.tgz#023cd576a73c229476afb984ba69a3179f80a5d7"
+ integrity sha512-Xs30iS10iagkLjRgQ1zPlZmJD9SkQMZsrimgzLUTlHan0uAiK45wYwvsX4XTFtvlQ+BCqzbzw/vZb8jMWE2kbw==
dependencies:
"@bgd-labs/aave-address-book" "^3.0.0"
"@bgd-labs/aave-v3-governance-cache" "^1.0.6"
@@ -55,7 +33,7 @@
dotenv "^16.4.1"
find-object-paths "^1.1.0"
gray-matter "^4.0.3"
- ipfs-only-hash "^4.0.0"
+ ipfs-unixfs-importer "^15.3.1"
json-bigint "^1.0.0"
object-hash "^3.0.0"
viem "^2.17.11"
@@ -315,10 +293,20 @@
resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.1.6.tgz#f2656456e58fb93c7b73d5aad583b928c77b9206"
integrity sha512-OCKOpn0CrFDslR8s3who7hlr823zXTb1iShGCaaWgEJFfkIV0T9aLZV2QGnOuU78IrsPYLkr3oKx9dZwwCH3Rw==
-"@multiformats/base-x@^4.0.1":
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121"
- integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==
+"@ipld/dag-pb@^4.1.2":
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-4.1.2.tgz#39db25311aeb2745ec20bfc745d91a577832b6ac"
+ integrity sha512-BSztO4l3C+ya9HjCaQot26Y4AVsqIKtnn6+23ubc1usucnf6yoTBme18oCCdM6gKBMxuPqju5ye3lh9WEJsdeQ==
+ dependencies:
+ multiformats "^13.1.0"
+
+"@multiformats/murmur3@^2.1.8":
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-2.1.8.tgz#81c1c15b6391109f3febfca4b3205196615a04e9"
+ integrity sha512-6vId1C46ra3R1sbJUOFCZnsUIveR9oF20yhPmAFxPm0JfrX3/ZRCgP3YDrBzlGoEppOXnA9czHeYc0T9mB6hbA==
+ dependencies:
+ multiformats "^13.0.0"
+ murmurhash3js-revisited "^3.0.0"
"@noble/curves@1.4.0":
version "1.4.0"
@@ -339,59 +327,6 @@
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426"
integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==
-"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
- integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==
-
-"@protobufjs/base64@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
- integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
-
-"@protobufjs/codegen@^2.0.4":
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
- integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
-
-"@protobufjs/eventemitter@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
- integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==
-
-"@protobufjs/fetch@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
- integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==
- dependencies:
- "@protobufjs/aspromise" "^1.1.1"
- "@protobufjs/inquire" "^1.1.0"
-
-"@protobufjs/float@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
- integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==
-
-"@protobufjs/inquire@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
- integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==
-
-"@protobufjs/path@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
- integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==
-
-"@protobufjs/pool@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
- integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==
-
-"@protobufjs/utf8@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
- integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
-
"@scure/base@~1.1.6":
version "1.1.7"
resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30"
@@ -426,16 +361,6 @@
resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.1.1.tgz#237d4e151b8591e2ff4f0ae388f7d6b4741bacc0"
integrity sha512-TgCm6jVqMPv+OgD5uBNND/CkCwNDdXPQlcprtnXsWSBpTCy0q5CI6vRj+jsUiXE1xeRaKIX4UeaYJqzZBL92sg==
-"@types/long@^4.0.1":
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a"
- integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==
-
-"@types/minimist@^1.2.0":
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e"
- integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==
-
"@types/mute-stream@^0.0.4":
version "0.0.4"
resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478"
@@ -443,7 +368,7 @@
dependencies:
"@types/node" "*"
-"@types/node@*", "@types/node@>=13.7.0":
+"@types/node@*":
version "20.9.0"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298"
integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==
@@ -457,11 +382,6 @@
dependencies:
undici-types "~5.26.4"
-"@types/normalize-package-data@^2.4.0":
- version "2.4.4"
- resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
- integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==
-
"@types/wrap-ansi@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd"
@@ -484,13 +404,6 @@ ansi-regex@^5.0.1:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-ansi-styles@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
@@ -510,11 +423,6 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
-arrify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
- integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==
-
base-x@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a"
@@ -539,11 +447,6 @@ bl@^5.0.0:
inherits "^2.0.4"
readable-stream "^3.4.0"
-blakejs@^1.1.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814"
- integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==
-
bs58@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279"
@@ -559,29 +462,6 @@ buffer@^6.0.3:
base64-js "^1.3.1"
ieee754 "^1.2.1"
-camelcase-keys@^6.2.2:
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0"
- integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==
- dependencies:
- camelcase "^5.3.1"
- map-obj "^4.0.0"
- quick-lru "^4.0.1"
-
-camelcase@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-chalk@^2.4.2:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -595,16 +475,6 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
-cids@^1.0.0, cids@^1.1.5, cids@^1.1.6:
- version "1.1.9"
- resolved "https://registry.yarnpkg.com/cids/-/cids-1.1.9.tgz#402c26db5c07059377bcd6fb82f2a24e7f2f4a4f"
- integrity sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==
- dependencies:
- multibase "^4.0.1"
- multicodec "^3.0.1"
- multihashes "^4.0.1"
- uint8arrays "^3.0.0"
-
cli-spinners@^2.9.2:
version "2.9.2"
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41"
@@ -615,13 +485,6 @@ cli-width@^4.1.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5"
integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==
-color-convert@^1.9.0:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
-
color-convert@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
@@ -629,11 +492,6 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
-
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
@@ -651,19 +509,6 @@ debug@^4.3.1:
dependencies:
ms "2.1.2"
-decamelize-keys@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8"
- integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==
- dependencies:
- decamelize "^1.1.0"
- map-obj "^1.0.0"
-
-decamelize@^1.1.0, decamelize@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
-
deepmerge@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
@@ -679,18 +524,6 @@ 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==
-err-code@^3.0.0, err-code@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920"
- integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==
-
-error-ex@^1.3.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
esbuild@~0.19.10:
version "0.19.12"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04"
@@ -758,24 +591,11 @@ find-object-paths@^1.1.0:
resolved "https://registry.yarnpkg.com/find-object-paths/-/find-object-paths-1.1.0.tgz#2d2fe99f24c95e63af4b51377a1ba0510490376c"
integrity sha512-UJvfPQibLUOrXl76PJ49cYbXJPsU1lYX6Pw7mHVW+ahaGx6kVHiozNIQriDc/EOlSvkDa6L9GyTFXPYQsa6sGA==
-find-up@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
- integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
- dependencies:
- locate-path "^5.0.0"
- path-exists "^4.0.0"
-
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==
-function-bind@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
- integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-
get-tsconfig@^4.7.2:
version "4.7.2"
resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce"
@@ -793,48 +613,19 @@ gray-matter@^4.0.3:
section-matter "^1.0.0"
strip-bom-string "^1.0.0"
-hamt-sharding@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-2.0.1.tgz#f45686d0339e74b03b233bee1bde9587727129b6"
- integrity sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA==
+hamt-sharding@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-3.0.6.tgz#3643107a3021af66ac95684aec87b196add5ba57"
+ integrity sha512-nZeamxfymIWLpVcAN0CRrb7uVq3hCOGj9IcL6NMA6VVCVWqj+h9Jo/SmaWuS92AEDf1thmHsM5D5c70hM3j2Tg==
dependencies:
sparse-array "^1.3.1"
- uint8arrays "^3.0.0"
-
-hard-rejection@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
- integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==
-
-has-flag@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
- integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+ uint8arrays "^5.0.1"
has-flag@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-hasown@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
- integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
- dependencies:
- function-bind "^1.1.2"
-
-hosted-git-info@^2.1.4:
- version "2.8.9"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
- integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
-
-hosted-git-info@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224"
- integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==
- dependencies:
- lru-cache "^6.0.0"
-
iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -847,85 +638,52 @@ ieee754@^1.2.1:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-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==
-
inherits@^2.0.3, inherits@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-interface-ipld-format@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/interface-ipld-format/-/interface-ipld-format-1.0.1.tgz#bee39c70c584a033e186ff057a2be89f215963e3"
- integrity sha512-WV/ar+KQJVoQpqRDYdo7YPGYIUHJxCuOEhdvsRpzLqoOIVCqPKdMMYmsLL1nCRsF3yYNio+PAJbCKiv6drrEAg==
- dependencies:
- cids "^1.1.6"
- multicodec "^3.0.1"
- multihashes "^4.0.2"
-
-ipfs-only-hash@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/ipfs-only-hash/-/ipfs-only-hash-4.0.0.tgz#b3bd60a244d9eb7394961aa9d812a2e5ac7c04d6"
- integrity sha512-TE1DZCvfw8i3gcsTq3P4TFx3cKFJ3sluu/J3XINkJhIN9OwJgNMqKA+WnKx6ByCb1IoPXsTp1KM7tupElb6SyA==
- dependencies:
- ipfs-unixfs-importer "^7.0.1"
- meow "^9.0.0"
-
-ipfs-unixfs-importer@^7.0.1:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-7.0.3.tgz#b850e831ca9647d589ef50bc33421f65bab7bba6"
- integrity sha512-qeFOlD3AQtGzr90sr5Tq1Bi8pT5Nr2tSI8z310m7R4JDYgZc6J1PEZO3XZQ8l1kuGoqlAppBZuOYmPEqaHcVQQ==
- dependencies:
- bl "^5.0.0"
- cids "^1.1.5"
- err-code "^3.0.1"
- hamt-sharding "^2.0.0"
- ipfs-unixfs "^4.0.3"
- ipld-dag-pb "^0.22.2"
- it-all "^1.0.5"
- it-batch "^1.0.8"
- it-first "^1.0.6"
- it-parallel-batch "^1.0.9"
- merge-options "^3.0.4"
- multihashing-async "^2.1.0"
- rabin-wasm "^0.1.4"
- uint8arrays "^2.1.2"
-
-ipfs-unixfs@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-4.0.3.tgz#7c43e5726052ade4317245358ac541ef3d63d94e"
- integrity sha512-hzJ3X4vlKT8FQ3Xc4M1szaFVjsc1ZydN+E4VQ91aXxfpjFn9G2wsMo1EFdAXNq/BUnN5dgqIOMP5zRYr3DTsAw==
- dependencies:
- err-code "^3.0.1"
- protobufjs "^6.10.2"
-
-ipld-dag-pb@^0.22.2:
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.22.3.tgz#6d5af28b5752236a5cb0e0a1888c87dd733b55cd"
- integrity sha512-dfG5C5OVAR4FEP7Al2CrHWvAyIM7UhAQrjnOYOIxXGQz5NlEj6wGX0XQf6Ru6or1na6upvV3NQfstapQG8X2rg==
- dependencies:
- cids "^1.0.0"
- interface-ipld-format "^1.0.0"
- multicodec "^3.0.1"
- multihashing-async "^2.0.0"
- protobufjs "^6.10.2"
- stable "^0.1.8"
- uint8arrays "^2.0.5"
-
-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-core-module@^2.13.0, is-core-module@^2.5.0:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
- integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
- dependencies:
- hasown "^2.0.0"
+interface-blockstore@^5.3.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/interface-blockstore/-/interface-blockstore-5.3.1.tgz#03f511431be2b8b04a536eaae8effe4565ea6536"
+ integrity sha512-nhgrQnz6yUQEqxTFLhlOBurQOy5lWlwCpgFmZ3GTObTVTQS9RZjK/JTozY6ty9uz2lZs7VFJSqwjWAltorJ4Vw==
+ dependencies:
+ interface-store "^6.0.0"
+ multiformats "^13.2.3"
+
+interface-store@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-6.0.2.tgz#1746a1ee07634f7678b3aa778738b79e3f75c909"
+ integrity sha512-KSFCXtBlNoG0hzwNa0RmhHtrdhzexp+S+UY2s0rWTBJyfdEIgn6i6Zl9otVqrcFYbYrneBT7hbmHQ8gE0C3umA==
+
+ipfs-unixfs-importer@^15.3.1:
+ version "15.3.1"
+ resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-15.3.1.tgz#93cf3bad77e3fff7ee25b4ba822c1a0d2fd56b6e"
+ integrity sha512-wHCTBqNsZXLJZ9/GSr7Msb3FDXD5yXF20Y9sKyUbbqNjbvaXs3n3h1+NM/5+WrgESHfwRcJIlJtaOKafL8Ymdg==
+ dependencies:
+ "@ipld/dag-pb" "^4.1.2"
+ "@multiformats/murmur3" "^2.1.8"
+ hamt-sharding "^3.0.6"
+ interface-blockstore "^5.3.0"
+ interface-store "^6.0.0"
+ ipfs-unixfs "^11.0.0"
+ it-all "^3.0.6"
+ it-batch "^3.0.6"
+ it-first "^3.0.6"
+ it-parallel-batch "^3.0.6"
+ multiformats "^13.2.3"
+ progress-events "^1.0.1"
+ rabin-wasm "^0.1.5"
+ uint8arraylist "^2.4.8"
+ uint8arrays "^5.1.0"
+
+ipfs-unixfs@^11.0.0:
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-11.2.0.tgz#a7f3d1f9bce29033f273bda124a0eb8bc0c752f6"
+ integrity sha512-J8FN1qM5nfrDo8sQKQwfj0+brTg1uBfZK2vY9hxci33lcl3BFrsELS9+1+4q/8tO1ASKfxZO8W3Pi2O4sVX2Lg==
+ dependencies:
+ protons-runtime "^5.5.0"
+ uint8arraylist "^2.4.8"
is-extendable@^0.1.0:
version "0.1.1"
@@ -937,52 +695,32 @@ is-fullwidth-code-point@^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-plain-obj@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
- integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
-
-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==
-
isows@1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.4.tgz#810cd0d90cc4995c26395d2aa4cfa4037ebdf061"
integrity sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ==
-it-all@^1.0.5:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335"
- integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==
+it-all@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/it-all/-/it-all-3.0.6.tgz#30a4f922ae9ca0945b0f720d3478ae6f5b6707ab"
+ integrity sha512-HXZWbxCgQZJfrv5rXvaVeaayXED8nTKx9tj9fpBhmcUJcedVZshMMMqTj0RG2+scGypb9Ut1zd1ifbf3lA8L+Q==
-it-batch@^1.0.8, it-batch@^1.0.9:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-1.0.9.tgz#7e95aaacb3f9b1b8ca6c8b8367892171d6a5b37f"
- integrity sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==
+it-batch@^3.0.0, it-batch@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-3.0.6.tgz#0bcda35bf1c600e821c6d5f4d2446fe85a26ab1d"
+ integrity sha512-pQAAlSvJ4aV6xM/6LRvkPdKSKXxS4my2fGzNUxJyAQ8ccFdxPmK1bUuF5OoeUDkcdrbs8jtsmc4DypCMrGY6sg==
-it-first@^1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1"
- integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==
+it-first@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/it-first/-/it-first-3.0.6.tgz#f532f0f36fe9bf0c291e0162b9d3375d59fe8f05"
+ integrity sha512-ExIewyK9kXKNAplg2GMeWfgjUcfC1FnUXz/RPfAvIXby+w7U4b3//5Lic0NV03gXT8O/isj5Nmp6KiY0d45pIQ==
-it-parallel-batch@^1.0.9:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz#f889b4e1c7a62ef24111dbafbaaa010b33d00f69"
- integrity sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ==
+it-parallel-batch@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-3.0.6.tgz#61487fdaca03cc34c648b3432f59e82e0c805172"
+ integrity sha512-3wgiQGvMMHy65OXScrtrtmY+bJSF7P6St1AP+BU+SK83fEr8NNk/MrmJKrtB1+MahYX2a8I+pOGKDj8qVtuV0Q==
dependencies:
- it-batch "^1.0.9"
-
-js-sha3@^0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
- integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
-
-js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+ it-batch "^3.0.0"
js-yaml@^3.13.1:
version "3.14.1"
@@ -999,33 +737,11 @@ json-bigint@^1.0.0:
dependencies:
bignumber.js "^9.0.0"
-json-parse-even-better-errors@^2.3.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
- integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-
-kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
+kind-of@^6.0.0, 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==
-lines-and-columns@^1.1.6:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
- integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-
-locate-path@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
- integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
- dependencies:
- p-locate "^4.1.0"
-
-long@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
- integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
-
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
@@ -1033,55 +749,6 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
-map-obj@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
- integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==
-
-map-obj@^4.0.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
- integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
-
-meow@^9.0.0:
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364"
- integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==
- dependencies:
- "@types/minimist" "^1.2.0"
- camelcase-keys "^6.2.2"
- decamelize "^1.2.0"
- decamelize-keys "^1.1.0"
- hard-rejection "^2.1.0"
- minimist-options "4.1.0"
- normalize-package-data "^3.0.0"
- read-pkg-up "^7.0.1"
- redent "^3.0.0"
- trim-newlines "^3.0.0"
- type-fest "^0.18.0"
- yargs-parser "^20.2.3"
-
-merge-options@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7"
- integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==
- dependencies:
- is-plain-obj "^2.1.0"
-
-min-indent@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
- integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
-
-minimist-options@4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
- integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==
- dependencies:
- arrify "^1.0.1"
- is-plain-obj "^1.1.0"
- kind-of "^6.0.3"
-
minimist@^1.2.5:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
@@ -1092,46 +759,10 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-multibase@^4.0.1:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/multibase/-/multibase-4.0.6.tgz#6e624341483d6123ca1ede956208cb821b440559"
- integrity sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==
- dependencies:
- "@multiformats/base-x" "^4.0.1"
-
-multicodec@^3.0.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-3.2.1.tgz#82de3254a0fb163a107c1aab324f2a91ef51efb2"
- integrity sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==
- dependencies:
- uint8arrays "^3.0.0"
- varint "^6.0.0"
-
-multiformats@^9.4.2:
- version "9.9.0"
- resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37"
- integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==
-
-multihashes@^4.0.1, multihashes@^4.0.2:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.3.tgz#426610539cd2551edbf533adeac4c06b3b90fb05"
- integrity sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==
- dependencies:
- multibase "^4.0.1"
- uint8arrays "^3.0.0"
- varint "^5.0.2"
-
-multihashing-async@^2.0.0, multihashing-async@^2.1.0:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-2.1.4.tgz#26dce2ec7a40f0e7f9e732fc23ca5f564d693843"
- integrity sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==
- dependencies:
- blakejs "^1.1.0"
- err-code "^3.0.0"
- js-sha3 "^0.8.0"
- multihashes "^4.0.1"
- murmurhash3js-revisited "^3.0.0"
- uint8arrays "^3.0.0"
+multiformats@^13.0.0, multiformats@^13.1.0, multiformats@^13.2.3:
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.3.0.tgz#1f5188bc7c4fe08ff829ae1c18dc33409042fb71"
+ integrity sha512-CBiqvsufgmpo01VT5ze94O+uc+Pbf6f/sThlvWss0sBZmAOu6GQn5usrYV2sf2mr17FWYc0rO8c/CNe2T90QAA==
murmurhash3js-revisited@^3.0.0:
version "3.0.0"
@@ -1150,26 +781,6 @@ node-fetch@^2.6.1:
dependencies:
whatwg-url "^5.0.0"
-normalize-package-data@^2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
- integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
- dependencies:
- hosted-git-info "^2.1.4"
- resolve "^1.10.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
-
-normalize-package-data@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e"
- integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==
- dependencies:
- hosted-git-info "^4.0.1"
- is-core-module "^2.5.0"
- semver "^7.3.4"
- validate-npm-package-license "^3.0.1"
-
object-hash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
@@ -1180,45 +791,6 @@ os-tmpdir@~1.0.2:
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
-p-limit@^2.2.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
- integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
- dependencies:
- p-try "^2.0.0"
-
-p-locate@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
- integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
- dependencies:
- p-limit "^2.2.0"
-
-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==
-
-parse-json@^5.0.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
- integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- error-ex "^1.3.1"
- json-parse-even-better-errors "^2.3.0"
- lines-and-columns "^1.1.6"
-
-path-exists@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-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==
-
prettier-plugin-solidity@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz#9a35124f578404caf617634a8cab80862d726cba"
@@ -1233,31 +805,21 @@ prettier@^2.8.3:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450"
integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==
-protobufjs@^6.10.2:
- version "6.11.4"
- resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa"
- integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==
- dependencies:
- "@protobufjs/aspromise" "^1.1.2"
- "@protobufjs/base64" "^1.1.2"
- "@protobufjs/codegen" "^2.0.4"
- "@protobufjs/eventemitter" "^1.1.0"
- "@protobufjs/fetch" "^1.1.0"
- "@protobufjs/float" "^1.0.2"
- "@protobufjs/inquire" "^1.1.0"
- "@protobufjs/path" "^1.1.2"
- "@protobufjs/pool" "^1.1.0"
- "@protobufjs/utf8" "^1.1.0"
- "@types/long" "^4.0.1"
- "@types/node" ">=13.7.0"
- long "^4.0.0"
-
-quick-lru@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
- integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
+progress-events@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/progress-events/-/progress-events-1.0.1.tgz#693b6d4153f08c1418ae3cd5fcad8596c91db7e8"
+ integrity sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==
-rabin-wasm@^0.1.4:
+protons-runtime@^5.5.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-5.5.0.tgz#ea06d9ef843aad77ea5de3e1ebafa81b58c24570"
+ integrity sha512-EsALjF9QsrEk6gbCx3lmfHxVN0ah7nG3cY7GySD4xf4g8cr7g543zB88Foh897Sr1RQJ9yDCUsoT1i1H/cVUFA==
+ dependencies:
+ uint8-varint "^2.0.2"
+ uint8arraylist "^2.4.3"
+ uint8arrays "^5.0.1"
+
+rabin-wasm@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.1.5.tgz#5b625ca007d6a2cbc1456c78ae71d550addbc9c9"
integrity sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==
@@ -1269,25 +831,6 @@ rabin-wasm@^0.1.4:
node-fetch "^2.6.1"
readable-stream "^3.6.0"
-read-pkg-up@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
- integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
- dependencies:
- find-up "^4.1.0"
- read-pkg "^5.2.0"
- type-fest "^0.8.1"
-
-read-pkg@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
- integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
- dependencies:
- "@types/normalize-package-data" "^2.4.0"
- normalize-package-data "^2.5.0"
- parse-json "^5.0.0"
- type-fest "^0.6.0"
-
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"
@@ -1297,28 +840,11 @@ readable-stream@^3.4.0, readable-stream@^3.6.0:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
-redent@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
- integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
- dependencies:
- indent-string "^4.0.0"
- strip-indent "^3.0.0"
-
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.10.0:
- 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"
-
run-async@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad"
@@ -1342,18 +868,6 @@ section-matter@^1.0.0:
extend-shallow "^2.0.1"
kind-of "^6.0.0"
-"semver@2 || 3 || 4 || 5":
- version "5.7.2"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
- integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-
-semver@^7.3.4:
- version "7.5.4"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
- integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
- dependencies:
- lru-cache "^6.0.0"
-
semver@^7.3.8:
version "7.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0"
@@ -1376,42 +890,11 @@ sparse-array@^1.3.1:
resolved "https://registry.yarnpkg.com/sparse-array/-/sparse-array-1.3.2.tgz#0e1a8b71706d356bc916fe754ff496d450ec20b0"
integrity sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==
-spdx-correct@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c"
- integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==
- dependencies:
- spdx-expression-parse "^3.0.0"
- spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
- integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-
-spdx-expression-parse@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
- integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
- dependencies:
- spdx-exceptions "^2.1.0"
- spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
- version "3.0.16"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f"
- integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==
-
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==
-stable@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
- integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
-
string-width@^4.1.0:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -1440,20 +923,6 @@ strip-bom-string@^1.0.0:
resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==
-strip-indent@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
- integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
- dependencies:
- min-indent "^1.0.0"
-
-supports-color@^5.3.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
- integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
- dependencies:
- has-flag "^3.0.0"
-
supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
@@ -1461,11 +930,6 @@ 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==
-
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -1478,11 +942,6 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
-trim-newlines@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
- integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
-
tsx@^4.7.1:
version "4.7.1"
resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.1.tgz#27af6cbf4e1cdfcb9b5425b1c61bb7e668eb5e84"
@@ -1493,39 +952,32 @@ tsx@^4.7.1:
optionalDependencies:
fsevents "~2.3.3"
-type-fest@^0.18.0:
- version "0.18.1"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
- integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==
-
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.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
- integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
-
-type-fest@^0.8.1:
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
- integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+uint8-varint@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-2.0.4.tgz#85be52b3849eb30f2c3640a2df8a14364180affb"
+ integrity sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==
+ dependencies:
+ uint8arraylist "^2.0.0"
+ uint8arrays "^5.0.0"
-uint8arrays@^2.0.5, uint8arrays@^2.1.2:
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-2.1.10.tgz#34d023c843a327c676e48576295ca373c56e286a"
- integrity sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==
+uint8arraylist@^2.0.0, uint8arraylist@^2.4.3, uint8arraylist@^2.4.8:
+ version "2.4.8"
+ resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.8.tgz#5a4d17f4defd77799cb38e93fd5db0f0dceddc12"
+ integrity sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==
dependencies:
- multiformats "^9.4.2"
+ uint8arrays "^5.0.1"
-uint8arrays@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0"
- integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==
+uint8arrays@^5.0.0, uint8arrays@^5.0.1, uint8arrays@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-5.1.0.tgz#14047c9bdf825d025b7391299436e5e50e7270f1"
+ integrity sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==
dependencies:
- multiformats "^9.4.2"
+ multiformats "^13.0.0"
undici-types@~5.26.4:
version "5.26.5"
@@ -1537,24 +989,6 @@ util-deprecate@^1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
- integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
- dependencies:
- spdx-correct "^3.0.0"
- spdx-expression-parse "^3.0.0"
-
-varint@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4"
- integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==
-
-varint@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0"
- integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==
-
viem@^2.17.11:
version "2.17.11"
resolved "https://registry.yarnpkg.com/viem/-/viem-2.17.11.tgz#43554c1db8e04ed255dffdeecee626190b97a0e4"
@@ -1601,11 +1035,6 @@ yallist@^4.0.0:
resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-yargs-parser@^20.2.3:
- 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==
-
zod@^3.23.8:
version "3.23.8"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d"
diff --git a/zksync/src/ProtocolV3TestBase.sol b/zksync/src/ProtocolV3TestBase.sol
index 08c1f724f..7b480cf2e 100644
--- a/zksync/src/ProtocolV3TestBase.sol
+++ b/zksync/src/ProtocolV3TestBase.sol
@@ -6,13 +6,13 @@ import {IAaveOracle, IPool, IPoolAddressesProvider, IPoolDataProvider, IReserveI
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {IERC20Metadata} from 'solidity-utils/contracts/oz-common/interfaces/IERC20Metadata.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
-import {ReserveConfiguration} from 'aave-v3-origin/core/contracts/protocol/libraries/configuration/ReserveConfiguration.sol';
+import {ReserveConfiguration} from 'aave-v3-origin/contracts/protocol/libraries/configuration/ReserveConfiguration.sol';
import {AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
-import {DiffUtils} from 'aave-v3-origin/../tests/utils/DiffUtils.sol';
-import {ProtocolV3TestBase as RawProtocolV3TestBase, ReserveConfig, ReserveTokens} from 'aave-v3-origin/../tests/utils/ProtocolV3TestBase.sol';
+import {DiffUtils} from 'aave-v3-origin-tests/utils/DiffUtils.sol';
+import {ProtocolV3TestBase as RawProtocolV3TestBase, ReserveConfig, ReserveTokens} from 'aave-v3-origin-tests/utils/ProtocolV3TestBase.sol';
+import {ProxyHelpers} from 'aave-v3-origin-tests/utils/ProxyHelpers.sol';
import {IInitializableAdminUpgradeabilityProxy} from '../../src/interfaces/IInitializableAdminUpgradeabilityProxy.sol';
import {ExtendedAggregatorV2V3Interface} from '../../src/interfaces/ExtendedAggregatorV2V3Interface.sol';
-import {ProxyHelpers} from 'aave-v3-origin/../tests/utils/ProxyHelpers.sol';
import {CommonTestBase} from '../../src/CommonTestBase.sol';
import {SnapshotHelpersV3} from './SnapshotHelpersV3.sol';
import {ILegacyDefaultInterestRateStrategy} from '../../src/dependencies/ILegacyDefaultInterestRateStrategy.sol';
@@ -355,13 +355,9 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase {
vm.stopPrank();
}
- function _writeEModeConfigs(
- string memory path,
- ReserveConfig[] memory configs,
- IPool pool
- ) internal override {
+ function _writeEModeConfigs(string memory path, IPool pool) internal override {
_switchOffZkVm();
- return snapshotHelper.writeEModeConfigs(path, configs, pool);
+ return snapshotHelper.writeEModeConfigs(path, pool);
}
function _writeStrategyConfigs(
diff --git a/zksync/src/SnapshotHelpersV3.sol b/zksync/src/SnapshotHelpersV3.sol
index 7d1490d0b..da1165bf9 100644
--- a/zksync/src/SnapshotHelpersV3.sol
+++ b/zksync/src/SnapshotHelpersV3.sol
@@ -1,22 +1,21 @@
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
-import {IERC20Detailed} from 'aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol';
-import {IPoolAddressesProvider} from 'aave-v3-core/contracts/interfaces/IPoolAddressesProvider.sol';
-import {IPoolDataProvider} from 'aave-v3-core/contracts/interfaces/IPoolDataProvider.sol';
-import {IPool} from 'aave-v3-core/contracts/interfaces/IPool.sol';
-import {IAaveOracle} from 'aave-v3-core/contracts/interfaces/IAaveOracle.sol';
-import {IPoolConfigurator} from 'aave-v3-core/contracts/interfaces/IPoolConfigurator.sol';
import {IERC20Metadata} from 'solidity-utils/contracts/oz-common/interfaces/IERC20Metadata.sol';
-import {ReserveConfiguration} from 'aave-v3-core/contracts/protocol/libraries/configuration/ReserveConfiguration.sol';
+import {IPoolAddressesProvider} from 'aave-v3-origin/contracts/interfaces/IPoolAddressesProvider.sol';
+import {IPoolDataProvider} from 'aave-v3-origin/contracts/interfaces/IPoolDataProvider.sol';
+import {IPool} from 'aave-v3-origin/contracts/interfaces/IPool.sol';
+import {IAaveOracle} from 'aave-v3-origin/contracts/interfaces/IAaveOracle.sol';
+import {IPoolConfigurator} from 'aave-v3-origin/contracts/interfaces/IPoolConfigurator.sol';
+import {ReserveConfiguration} from 'aave-v3-origin/contracts/protocol/libraries/configuration/ReserveConfiguration.sol';
import {ExtendedAggregatorV2V3Interface} from '../../src/interfaces/ExtendedAggregatorV2V3Interface.sol';
-import {ProxyHelpers} from 'aave-v3-origin/../tests/utils/ProxyHelpers.sol';
+import {ProxyHelpers} from 'aave-v3-origin-tests/utils/ProxyHelpers.sol';
import {CommonTestBase} from '../../src/CommonTestBase.sol';
-import {IDefaultInterestRateStrategyV2} from 'aave-v3-core/contracts/interfaces/IDefaultInterestRateStrategyV2.sol';
-import {ReserveConfig, ReserveTokens, DataTypes} from 'aave-v3-origin/../tests/utils/ProtocolV3TestBase.sol';
+import {IDefaultInterestRateStrategyV2} from 'aave-v3-origin/contracts/interfaces/IDefaultInterestRateStrategyV2.sol';
+import {ReserveConfig, ReserveTokens, DataTypes} from 'aave-v3-origin-tests/utils/ProtocolV3TestBase.sol';
import {ProtocolV3TestBase as TestBase, LocalVars} from './ProtocolV3TestBase.sol';
import {ILegacyDefaultInterestRateStrategy} from '../../src/dependencies/ILegacyDefaultInterestRateStrategy.sol';
-import {DiffUtils} from 'aave-v3-origin/../tests/utils/DiffUtils.sol';
+import {DiffUtils} from 'aave-v3-origin-tests/utils/DiffUtils.sol';
contract SnapshotHelpersV3 is CommonTestBase, DiffUtils {
using ReserveConfiguration for DataTypes.ReserveConfigurationMap;
@@ -40,39 +39,60 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils {
vm.serializeUint('root', 'chainId', block.chainid);
if (reserveConfigs) writeReserveConfigs(path, configs, pool);
if (strategyConfigs) writeStrategyConfigs(path, configs);
- if (eModeConigs) writeEModeConfigs(path, configs, pool);
+ if (eModeConigs) writeEModeConfigs(path, pool);
if (poolConfigs) writePoolConfiguration(path, pool);
return configs;
}
- function writeEModeConfigs(
- string memory path,
- ReserveConfig[] memory configs,
- IPool pool
- ) public {
+ function writeEModeConfigs(string memory path, IPool pool) public {
_switchOnZkVm();
// keys for json stringification
string memory eModesKey = 'emodes';
string memory content = '{}';
vm.serializeJson(eModesKey, '{}');
-
- uint256[] memory usedCategories = new uint256[](configs.length);
- for (uint256 i = 0; i < configs.length; i++) {
- if (!_isInUint256Array(usedCategories, configs[i].eModeCategory)) {
- usedCategories[i] = configs[i].eModeCategory;
- DataTypes.EModeCategory memory category = pool.getEModeCategoryData(
- uint8(configs[i].eModeCategory)
- );
- string memory key = vm.toString(configs[i].eModeCategory);
- vm.serializeJson(key, '{}');
- vm.serializeUint(key, 'eModeCategory', configs[i].eModeCategory);
- vm.serializeString(key, 'label', category.label);
- vm.serializeUint(key, 'ltv', category.ltv);
- vm.serializeUint(key, 'liquidationThreshold', category.liquidationThreshold);
- vm.serializeUint(key, 'liquidationBonus', category.liquidationBonus);
- string memory object = vm.serializeAddress(key, 'priceSource', category.priceSource);
- content = vm.serializeString(eModesKey, key, object);
+ uint8 emptyCounter = 0;
+ for (uint8 i = 0; i < 256; i++) {
+ try pool.getEModeCategoryCollateralConfig(i) returns (DataTypes.CollateralConfig memory cfg) {
+ if (cfg.liquidationThreshold == 0) {
+ if (++emptyCounter > 2) break;
+ } else {
+ string memory key = vm.toString(i);
+ vm.serializeJson(key, '{}');
+ vm.serializeUint(key, 'eModeCategory', i);
+ vm.serializeString(key, 'label', pool.getEModeCategoryLabel(i));
+ vm.serializeUint(key, 'ltv', cfg.ltv);
+ vm.serializeString(
+ key,
+ 'collateralBitmap',
+ vm.toString(pool.getEModeCategoryCollateralBitmap(i))
+ );
+ vm.serializeString(
+ key,
+ 'borrowableBitmap',
+ vm.toString(pool.getEModeCategoryBorrowableBitmap(i))
+ );
+ vm.serializeUint(key, 'liquidationThreshold', cfg.liquidationThreshold);
+ string memory object = vm.serializeUint(key, 'liquidationBonus', cfg.liquidationBonus);
+ content = vm.serializeString(eModesKey, key, object);
+ emptyCounter = 0;
+ }
+ } catch {
+ DataTypes.EModeCategoryLegacy memory category = pool.getEModeCategoryData(i);
+ if (category.liquidationThreshold == 0) {
+ if (++emptyCounter > 2) break;
+ } else {
+ string memory key = vm.toString(i);
+ vm.serializeJson(key, '{}');
+ vm.serializeUint(key, 'eModeCategory', i);
+ vm.serializeString(key, 'label', category.label);
+ vm.serializeUint(key, 'ltv', category.ltv);
+ vm.serializeUint(key, 'liquidationThreshold', category.liquidationThreshold);
+ vm.serializeUint(key, 'liquidationBonus', category.liquidationBonus);
+ string memory object = vm.serializeAddress(key, 'priceSource', category.priceSource);
+ content = vm.serializeString(eModesKey, key, object);
+ emptyCounter = 0;
+ }
}
}
string memory output = vm.serializeString('root', 'eModes', content);
@@ -179,6 +199,7 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils {
// keys for json stringification
string memory reservesKey = 'reserves';
string memory content = '{}';
+ vm.serializeJson(reservesKey, '{}');
IPoolAddressesProvider addressesProvider = IPoolAddressesProvider(pool.ADDRESSES_PROVIDER());
IAaveOracle oracle = IAaveOracle(addressesProvider.getPriceOracle());
@@ -189,7 +210,9 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils {
);
string memory key = vm.toString(config.underlying);
+ vm.serializeJson(key, '{}');
vm.serializeString(key, 'symbol', config.symbol);
+ vm.serializeUint(key, 'id', i);
vm.serializeUint(key, 'ltv', config.ltv);
vm.serializeUint(key, 'liquidationThreshold', config.liquidationThreshold);
vm.serializeUint(key, 'liquidationBonus', config.liquidationBonus);
@@ -199,10 +222,8 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils {
vm.serializeUint(key, 'borrowCap', config.borrowCap);
vm.serializeUint(key, 'supplyCap', config.supplyCap);
vm.serializeUint(key, 'debtCeiling', config.debtCeiling);
- vm.serializeUint(key, 'eModeCategory', config.eModeCategory);
vm.serializeBool(key, 'usageAsCollateralEnabled', config.usageAsCollateralEnabled);
vm.serializeBool(key, 'borrowingEnabled', config.borrowingEnabled);
- vm.serializeBool(key, 'stableBorrowRateEnabled', config.stableBorrowRateEnabled);
vm.serializeBool(key, 'isPaused', config.isPaused);
vm.serializeBool(key, 'isActive', config.isActive);
vm.serializeBool(key, 'isFrozen', config.isFrozen);
@@ -212,29 +233,14 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils {
vm.serializeAddress(key, 'interestRateStrategy', config.interestRateStrategy);
vm.serializeAddress(key, 'underlying', config.underlying);
vm.serializeAddress(key, 'aToken', config.aToken);
- vm.serializeAddress(key, 'stableDebtToken', config.stableDebtToken);
vm.serializeAddress(key, 'variableDebtToken', config.variableDebtToken);
vm.serializeAddress(
key,
'aTokenImpl',
ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(vm, config.aToken)
);
- vm.serializeString(key, 'aTokenSymbol', IERC20Detailed(config.aToken).symbol());
- vm.serializeString(key, 'aTokenName', IERC20Detailed(config.aToken).name());
- vm.serializeAddress(
- key,
- 'stableDebtTokenImpl',
- ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(
- vm,
- config.stableDebtToken
- )
- );
- vm.serializeString(
- key,
- 'stableDebtTokenSymbol',
- IERC20Detailed(config.stableDebtToken).symbol()
- );
- vm.serializeString(key, 'stableDebtTokenName', IERC20Detailed(config.stableDebtToken).name());
+ vm.serializeString(key, 'aTokenSymbol', IERC20Metadata(config.aToken).symbol());
+ vm.serializeString(key, 'aTokenName', IERC20Metadata(config.aToken).name());
vm.serializeAddress(
key,
'variableDebtTokenImpl',
@@ -246,12 +252,12 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils {
vm.serializeString(
key,
'variableDebtTokenSymbol',
- IERC20Detailed(config.variableDebtToken).symbol()
+ IERC20Metadata(config.variableDebtToken).symbol()
);
vm.serializeString(
key,
'variableDebtTokenName',
- IERC20Detailed(config.variableDebtToken).name()
+ IERC20Metadata(config.variableDebtToken).name()
);
vm.serializeAddress(key, 'oracle', address(assetOracle));
if (address(assetOracle) != address(0)) {
@@ -272,13 +278,17 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils {
}
vm.serializeBool(key, 'virtualAccountingActive', config.virtualAccActive);
- vm.serializeUint(key, 'virtualBalance', config.virtualBalance);
- vm.serializeUint(key, 'aTokenUnderlyingBalance', config.aTokenUnderlyingBalance);
+ vm.serializeString(key, 'virtualBalance', vm.toString(config.virtualBalance));
+ vm.serializeString(
+ key,
+ 'aTokenUnderlyingBalance',
+ vm.toString(config.aTokenUnderlyingBalance)
+ );
- string memory out = vm.serializeUint(
+ string memory out = vm.serializeString(
key,
'oracleLatestAnswer',
- uint256(oracle.getAssetPrice(config.underlying))
+ vm.toString(uint256(oracle.getAssetPrice(config.underlying)))
);
content = vm.serializeString(reservesKey, key, out);
}