@morpho-org/blue-sdk 5.15.0 → 5.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/lib/{errors.d.ts → cjs/errors.d.ts} +8 -0
  2. package/lib/{errors.js → cjs/errors.js} +17 -1
  3. package/lib/cjs/package.json +1 -0
  4. package/lib/{position → cjs/position}/PreLiquidationPosition.d.ts +3 -3
  5. package/lib/{position → cjs/position}/PreLiquidationPosition.js +16 -16
  6. package/lib/{preLiquidation.d.ts → cjs/preLiquidation.d.ts} +1 -1
  7. package/lib/{preLiquidation.js → cjs/preLiquidation.js} +2 -2
  8. package/lib/{vault → cjs/vault}/index.d.ts +1 -1
  9. package/lib/{vault → cjs/vault}/index.js +1 -1
  10. package/lib/{vault → cjs/vault}/v2/VaultV2.d.ts +5 -5
  11. package/lib/{vault → cjs/vault}/v2/VaultV2.js +25 -25
  12. package/lib/{vault → cjs/vault}/v2/VaultV2Adapter.d.ts +2 -2
  13. package/lib/{vault → cjs/vault}/v2/VaultV2MorphoMarketV1Adapter.d.ts +7 -7
  14. package/lib/{vault → cjs/vault}/v2/VaultV2MorphoMarketV1Adapter.js +9 -9
  15. package/lib/{vault → cjs/vault}/v2/VaultV2MorphoMarketV1AdapterV2.d.ts +6 -6
  16. package/lib/{vault → cjs/vault}/v2/VaultV2MorphoMarketV1AdapterV2.js +8 -8
  17. package/lib/{vault → cjs/vault}/v2/VaultV2MorphoVaultV1Adapter.d.ts +6 -6
  18. package/lib/{vault → cjs/vault}/v2/VaultV2MorphoVaultV1Adapter.js +2 -2
  19. package/lib/esm/addresses.d.ts +2231 -0
  20. package/lib/esm/addresses.js +1309 -0
  21. package/lib/esm/chain.d.ts +405 -0
  22. package/lib/esm/chain.js +276 -0
  23. package/lib/esm/constants.d.ts +20 -0
  24. package/lib/esm/constants.js +21 -0
  25. package/lib/esm/errors.d.ts +101 -0
  26. package/lib/esm/errors.js +192 -0
  27. package/lib/esm/holding/AssetBalances.d.ts +48 -0
  28. package/lib/esm/holding/AssetBalances.js +38 -0
  29. package/lib/esm/holding/Holding.d.ts +63 -0
  30. package/lib/esm/holding/Holding.js +63 -0
  31. package/lib/esm/holding/index.d.ts +2 -0
  32. package/lib/esm/holding/index.js +2 -0
  33. package/lib/esm/index.d.ts +14 -0
  34. package/lib/esm/index.js +14 -0
  35. package/lib/esm/market/Market.d.ts +424 -0
  36. package/lib/esm/market/Market.js +576 -0
  37. package/lib/esm/market/MarketParams.d.ts +74 -0
  38. package/lib/esm/market/MarketParams.js +91 -0
  39. package/lib/esm/market/MarketUtils.d.ts +273 -0
  40. package/lib/esm/market/MarketUtils.js +323 -0
  41. package/lib/esm/market/index.d.ts +3 -0
  42. package/lib/esm/market/index.js +3 -0
  43. package/lib/esm/math/AdaptiveCurveIrmLib.d.ts +40 -0
  44. package/lib/esm/math/AdaptiveCurveIrmLib.js +133 -0
  45. package/lib/esm/math/MathLib.d.ts +102 -0
  46. package/lib/esm/math/MathLib.js +168 -0
  47. package/lib/esm/math/SharesMath.d.ts +12 -0
  48. package/lib/esm/math/SharesMath.js +18 -0
  49. package/lib/esm/math/index.d.ts +3 -0
  50. package/lib/esm/math/index.js +3 -0
  51. package/lib/esm/package.json +1 -0
  52. package/lib/esm/position/Position.d.ts +147 -0
  53. package/lib/esm/position/Position.js +237 -0
  54. package/lib/esm/position/PreLiquidationPosition.d.ts +60 -0
  55. package/lib/esm/position/PreLiquidationPosition.js +97 -0
  56. package/lib/esm/position/index.d.ts +2 -0
  57. package/lib/esm/position/index.js +2 -0
  58. package/lib/esm/preLiquidation.d.ts +15 -0
  59. package/lib/esm/preLiquidation.js +91 -0
  60. package/lib/esm/token/ConstantWrappedToken.d.ts +17 -0
  61. package/lib/esm/token/ConstantWrappedToken.js +30 -0
  62. package/lib/esm/token/Eip5267Domain.d.ts +55 -0
  63. package/lib/esm/token/Eip5267Domain.js +66 -0
  64. package/lib/esm/token/ExchangeRateWrappedToken.d.ts +11 -0
  65. package/lib/esm/token/ExchangeRateWrappedToken.js +17 -0
  66. package/lib/esm/token/Token.d.ts +52 -0
  67. package/lib/esm/token/Token.js +62 -0
  68. package/lib/esm/token/VaultToken.d.ts +23 -0
  69. package/lib/esm/token/VaultToken.js +27 -0
  70. package/lib/esm/token/WrappedToken.d.ts +17 -0
  71. package/lib/esm/token/WrappedToken.js +29 -0
  72. package/lib/esm/token/index.d.ts +6 -0
  73. package/lib/esm/token/index.js +6 -0
  74. package/lib/esm/types.d.ts +26 -0
  75. package/lib/esm/types.js +13 -0
  76. package/lib/esm/user/User.d.ts +20 -0
  77. package/lib/esm/user/User.js +19 -0
  78. package/lib/esm/user/index.d.ts +1 -0
  79. package/lib/esm/user/index.js +1 -0
  80. package/lib/esm/utils.d.ts +13 -0
  81. package/lib/esm/utils.js +10 -0
  82. package/lib/esm/vault/Vault.d.ts +214 -0
  83. package/lib/esm/vault/Vault.js +289 -0
  84. package/lib/esm/vault/VaultConfig.d.ts +11 -0
  85. package/lib/esm/vault/VaultConfig.js +10 -0
  86. package/lib/esm/vault/VaultMarketAllocation.d.ts +20 -0
  87. package/lib/esm/vault/VaultMarketAllocation.js +27 -0
  88. package/lib/esm/vault/VaultMarketConfig.d.ts +43 -0
  89. package/lib/esm/vault/VaultMarketConfig.js +39 -0
  90. package/lib/esm/vault/VaultMarketPublicAllocatorConfig.d.ts +29 -0
  91. package/lib/esm/vault/VaultMarketPublicAllocatorConfig.js +24 -0
  92. package/lib/esm/vault/VaultUser.d.ts +26 -0
  93. package/lib/esm/vault/VaultUser.js +24 -0
  94. package/lib/esm/vault/VaultUtils.d.ts +16 -0
  95. package/lib/esm/vault/VaultUtils.js +17 -0
  96. package/lib/esm/vault/index.d.ts +8 -0
  97. package/lib/esm/vault/index.js +8 -0
  98. package/lib/esm/vault/v2/VaultV2.d.ts +87 -0
  99. package/lib/esm/vault/v2/VaultV2.js +154 -0
  100. package/lib/esm/vault/v2/VaultV2Adapter.d.ts +29 -0
  101. package/lib/esm/vault/v2/VaultV2Adapter.js +12 -0
  102. package/lib/esm/vault/v2/VaultV2MorphoMarketV1Adapter.d.ts +30 -0
  103. package/lib/esm/vault/v2/VaultV2MorphoMarketV1Adapter.js +54 -0
  104. package/lib/esm/vault/v2/VaultV2MorphoMarketV1AdapterV2.d.ts +33 -0
  105. package/lib/esm/vault/v2/VaultV2MorphoMarketV1AdapterV2.js +63 -0
  106. package/lib/esm/vault/v2/VaultV2MorphoVaultV1Adapter.d.ts +24 -0
  107. package/lib/esm/vault/v2/VaultV2MorphoVaultV1Adapter.js +36 -0
  108. package/lib/esm/vault/v2/index.d.ts +5 -0
  109. package/lib/esm/vault/v2/index.js +5 -0
  110. package/package.json +16 -7
  111. package/src/index.ts +14 -0
  112. /package/lib/{addresses.d.ts → cjs/addresses.d.ts} +0 -0
  113. /package/lib/{addresses.js → cjs/addresses.js} +0 -0
  114. /package/lib/{chain.d.ts → cjs/chain.d.ts} +0 -0
  115. /package/lib/{chain.js → cjs/chain.js} +0 -0
  116. /package/lib/{constants.d.ts → cjs/constants.d.ts} +0 -0
  117. /package/lib/{constants.js → cjs/constants.js} +0 -0
  118. /package/lib/{holding → cjs/holding}/AssetBalances.d.ts +0 -0
  119. /package/lib/{holding → cjs/holding}/AssetBalances.js +0 -0
  120. /package/lib/{holding → cjs/holding}/Holding.d.ts +0 -0
  121. /package/lib/{holding → cjs/holding}/Holding.js +0 -0
  122. /package/lib/{holding → cjs/holding}/index.d.ts +0 -0
  123. /package/lib/{holding → cjs/holding}/index.js +0 -0
  124. /package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  125. /package/lib/{index.js → cjs/index.js} +0 -0
  126. /package/lib/{market → cjs/market}/Market.d.ts +0 -0
  127. /package/lib/{market → cjs/market}/Market.js +0 -0
  128. /package/lib/{market → cjs/market}/MarketParams.d.ts +0 -0
  129. /package/lib/{market → cjs/market}/MarketParams.js +0 -0
  130. /package/lib/{market → cjs/market}/MarketUtils.d.ts +0 -0
  131. /package/lib/{market → cjs/market}/MarketUtils.js +0 -0
  132. /package/lib/{market → cjs/market}/index.d.ts +0 -0
  133. /package/lib/{market → cjs/market}/index.js +0 -0
  134. /package/lib/{math → cjs/math}/AdaptiveCurveIrmLib.d.ts +0 -0
  135. /package/lib/{math → cjs/math}/AdaptiveCurveIrmLib.js +0 -0
  136. /package/lib/{math → cjs/math}/MathLib.d.ts +0 -0
  137. /package/lib/{math → cjs/math}/MathLib.js +0 -0
  138. /package/lib/{math → cjs/math}/SharesMath.d.ts +0 -0
  139. /package/lib/{math → cjs/math}/SharesMath.js +0 -0
  140. /package/lib/{math → cjs/math}/index.d.ts +0 -0
  141. /package/lib/{math → cjs/math}/index.js +0 -0
  142. /package/lib/{position → cjs/position}/Position.d.ts +0 -0
  143. /package/lib/{position → cjs/position}/Position.js +0 -0
  144. /package/lib/{position → cjs/position}/index.d.ts +0 -0
  145. /package/lib/{position → cjs/position}/index.js +0 -0
  146. /package/lib/{token → cjs/token}/ConstantWrappedToken.d.ts +0 -0
  147. /package/lib/{token → cjs/token}/ConstantWrappedToken.js +0 -0
  148. /package/lib/{token → cjs/token}/Eip5267Domain.d.ts +0 -0
  149. /package/lib/{token → cjs/token}/Eip5267Domain.js +0 -0
  150. /package/lib/{token → cjs/token}/ExchangeRateWrappedToken.d.ts +0 -0
  151. /package/lib/{token → cjs/token}/ExchangeRateWrappedToken.js +0 -0
  152. /package/lib/{token → cjs/token}/Token.d.ts +0 -0
  153. /package/lib/{token → cjs/token}/Token.js +0 -0
  154. /package/lib/{token → cjs/token}/VaultToken.d.ts +0 -0
  155. /package/lib/{token → cjs/token}/VaultToken.js +0 -0
  156. /package/lib/{token → cjs/token}/WrappedToken.d.ts +0 -0
  157. /package/lib/{token → cjs/token}/WrappedToken.js +0 -0
  158. /package/lib/{token → cjs/token}/index.d.ts +0 -0
  159. /package/lib/{token → cjs/token}/index.js +0 -0
  160. /package/lib/{types.d.ts → cjs/types.d.ts} +0 -0
  161. /package/lib/{types.js → cjs/types.js} +0 -0
  162. /package/lib/{user → cjs/user}/User.d.ts +0 -0
  163. /package/lib/{user → cjs/user}/User.js +0 -0
  164. /package/lib/{user → cjs/user}/index.d.ts +0 -0
  165. /package/lib/{user → cjs/user}/index.js +0 -0
  166. /package/lib/{utils.d.ts → cjs/utils.d.ts} +0 -0
  167. /package/lib/{utils.js → cjs/utils.js} +0 -0
  168. /package/lib/{vault → cjs/vault}/Vault.d.ts +0 -0
  169. /package/lib/{vault → cjs/vault}/Vault.js +0 -0
  170. /package/lib/{vault → cjs/vault}/VaultConfig.d.ts +0 -0
  171. /package/lib/{vault → cjs/vault}/VaultConfig.js +0 -0
  172. /package/lib/{vault → cjs/vault}/VaultMarketAllocation.d.ts +0 -0
  173. /package/lib/{vault → cjs/vault}/VaultMarketAllocation.js +0 -0
  174. /package/lib/{vault → cjs/vault}/VaultMarketConfig.d.ts +0 -0
  175. /package/lib/{vault → cjs/vault}/VaultMarketConfig.js +0 -0
  176. /package/lib/{vault → cjs/vault}/VaultMarketPublicAllocatorConfig.d.ts +0 -0
  177. /package/lib/{vault → cjs/vault}/VaultMarketPublicAllocatorConfig.js +0 -0
  178. /package/lib/{vault → cjs/vault}/VaultUser.d.ts +0 -0
  179. /package/lib/{vault → cjs/vault}/VaultUser.js +0 -0
  180. /package/lib/{vault → cjs/vault}/VaultUtils.d.ts +0 -0
  181. /package/lib/{vault → cjs/vault}/VaultUtils.js +0 -0
  182. /package/lib/{vault → cjs/vault}/v2/VaultV2Adapter.js +0 -0
  183. /package/lib/{vault → cjs/vault}/v2/index.d.ts +0 -0
  184. /package/lib/{vault → cjs/vault}/v2/index.js +0 -0
@@ -0,0 +1,1309 @@
1
+ import { deepFreeze, entries, } from "@morpho-org/morpho-ts";
2
+ import isPlainObject from "lodash.isplainobject";
3
+ import mergeWith from "lodash.mergewith";
4
+ import { ChainId } from "./chain.js";
5
+ import { UnsupportedChainIdError } from "./errors.js";
6
+ /** Address used to replicate an erc20-behaviour for native token.
7
+ *
8
+ * NB: data might differ from expected onchain native token data
9
+ */
10
+ export const NATIVE_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
11
+ const _addressesRegistry = {
12
+ [ChainId.EthMainnet]: {
13
+ morpho: "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb",
14
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
15
+ bundler3: {
16
+ bundler3: "0x6566194141eefa99Af43Bb5Aa71460Ca2Dc90245",
17
+ generalAdapter1: "0x4A6c312ec70E8747a587EE860a0353cd42Be0aE0",
18
+ paraswapAdapter: "0x03b5259Bd204BfD4A616E5B79b0B786d90c6C38f",
19
+ erc20WrapperAdapter: "0xf83D17dFE160597b19e4FdD8ea61A23e9a87F962",
20
+ compoundV2MigrationAdapter: "0x9B89c07f480Df1945279031b5fC6fF241b8f1101",
21
+ compoundV3MigrationAdapter: "0xdBa5bdE29eA030Bfa6A608592dFcA1D02CB26773",
22
+ aaveV2MigrationAdapter: "0x40288815C399709dFC0875A384B637fFe387961B",
23
+ aaveV3CoreMigrationAdapter: "0xb09e40EbE31b738fbf20289270a397118707D475",
24
+ aaveV3PrimeMigrationAdapter: "0x2CC8d502a65824B4cF9A58DB03490bA024BDB806",
25
+ aaveV3EtherFiMigrationAdapter: "0x4011dc6581fA05F9B0c7A12AdCd676e2b1a59ca3",
26
+ aaveV3OptimizerMigrationAdapter: "0x9e2ea2d5785598a163D569D795f286F5C55ad972",
27
+ },
28
+ adaptiveCurveIrm: "0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC",
29
+ publicAllocator: "0xfd32fA2ca22c76dD6E550706Ad913FC6CE91c75D",
30
+ metaMorphoFactory: "0x1897A8997241C1cD4bD0698647e4EB7213535c24",
31
+ vaultV2Factory: "0xA1D94F746dEfa1928926b84fB2596c06926C0405",
32
+ morphoMarketV1AdapterFactory: "0xb049465969ac6355127cDf9E88deE63d25204d5D",
33
+ morphoMarketV1AdapterV2Factory: "0x32BB1c0D48D8b1B3363e86eeB9A0300BAd61ccc1",
34
+ morphoVaultV1AdapterFactory: "0xD1B8E2dee25c2b89DCD2f98448a7ce87d6F63394",
35
+ registryList: "0x3696c5eAe4a7Ffd04Ea163564571E9CD8Ed9364e",
36
+ chainlinkOracleFactory: "0x3A7bB36Ee3f3eE32A60e9f2b33c1e5f2E83ad766",
37
+ preLiquidationFactory: "0x6FF33615e792E35ed1026ea7cACCf42D9BF83476",
38
+ wNative: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
39
+ morphoToken: "0x9994E35Db50125E0DF82e4c2dde62496CE330999",
40
+ // Must implement DAI specific permit (otherwise breaks permit signatures).
41
+ dai: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
42
+ sDai: "0x83F20F44975D03b1b09e64809B757c47f942BEeA",
43
+ mkr: "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2",
44
+ stEth: "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
45
+ wstEth: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
46
+ osEth: "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38",
47
+ bIB01: "0xCA30c93B02514f86d5C86a6e375E3A330B435Fb5",
48
+ // If we want to change the wbIB01 address, we have to check if the new one has simple permit or not.
49
+ // Currently, wbIB01 is considered to have simple permit.
50
+ wbIB01: "0xcA2A7068e551d5C4482eb34880b194E4b945712F",
51
+ bC3M: "0x2F123cF3F37CE3328CC9B5b8415f9EC5109b45e7",
52
+ // If we want to change the wbC3M address, we have to check if the new one has simple permit or not.
53
+ // Currently, wbC3M is considered to have simple permit.
54
+ wbC3M: "0x95D7337d43340E2721960Dc402D9b9117f0d81a2",
55
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
56
+ usdc: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
57
+ // Must implement EURC permit version 2 (otherwise breaks permit signatures).
58
+ eurc: "0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c",
59
+ usdt: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
60
+ crvUsd: "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E",
61
+ "stkcvxcrvUSDTWBTCWETH-morpho": "0xb0Ce26C88e4e7DCa51968b6047f44646f5064278",
62
+ crvUSDTWBTCWETH: "0xf5f5B97624542D72A9E06f04804Bf81baA15e2B4",
63
+ "stkcvxcrvUSDCWBTCWETH-morpho": "0x0ea1a65A2c255f24Ee8D81eA6AaC54Decd9d269e",
64
+ crvUSDCWBTCWETH: "0x7F86Bf177Dd4F3494b841a37e810A34dD56c829B",
65
+ "stkcvxcrvCRVUSDTBTCWSTETH-morpho": "0x3ce8Ec9f3d89aD0A2DdbCC3FDB8991BD241Fc82E",
66
+ crvCRVUSDTBTCWSTETH: "0x2889302a794dA87fBF1D6Db415C1492194663D13",
67
+ "stkcvxTryLSD-morpho": "0x6BA072F0d22806F2C52e9792AF47f2D59103BEBE",
68
+ tryLSD: "0x2570f1bD5D2735314FC102eb12Fc1aFe9e6E7193",
69
+ "stkcvxcrvUSDETHCRV-morpho": "0xAc904BAfBb5FB04Deb2b6198FdCEedE75a78Ce5a",
70
+ crvUSDETHCRV: "0x4eBdF703948ddCEA3B11f675B4D1Fba9d2414A14",
71
+ "stkcvx2BTC-f-morpho": "0x385E12cf4040543Bc8C18e05C1298Be5B04f3f5e",
72
+ "2BTC-f": "0xB7ECB2AA52AA64a717180E030241bC75Cd946726",
73
+ },
74
+ [ChainId.BaseMainnet]: {
75
+ morpho: "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb",
76
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
77
+ bundler3: {
78
+ bundler3: "0x6BFd8137e702540E7A42B74178A4a49Ba43920C4",
79
+ generalAdapter1: "0xb98c948CFA24072e58935BC004a8A7b376AE746A",
80
+ paraswapAdapter: "0x6abE8ABd0275E5564ed1336F0243A52C32562F71",
81
+ erc20WrapperAdapter: "0xdeEf55F0A7366cC3Baf5E04313269389Fe17E9AE",
82
+ compoundV3MigrationAdapter: "0x85D4812Ef92c040d4270eD8547b6835e41FbbB70",
83
+ aaveV3CoreMigrationAdapter: "0xb27Aa2a964eAd5ed661D86974b37e4fB995b36f5",
84
+ },
85
+ adaptiveCurveIrm: "0x46415998764C29aB2a25CbeA6254146D50D22687",
86
+ publicAllocator: "0xA090dD1a701408Df1d4d0B85b716c87565f90467",
87
+ metaMorphoFactory: "0xFf62A7c278C62eD665133147129245053Bbf5918",
88
+ vaultV2Factory: "0x4501125508079A99ebBebCE205DeC9593C2b5857",
89
+ morphoMarketV1AdapterFactory: "0x133baC94306B99f6dAD85c381a5be851d8DD717c",
90
+ morphoMarketV1AdapterV2Factory: "0x9a1B378C43BA535cDB89934230F0D3890c51C0EB",
91
+ morphoVaultV1AdapterFactory: "0xF42D9c36b34c9c2CF3Bc30eD2a52a90eEB604642",
92
+ registryList: "0x5C2531Cbd2cf112Cf687da3Cd536708aDd7DB10a",
93
+ chainlinkOracleFactory: "0x2DC205F24BCb6B311E5cdf0745B0741648Aebd3d",
94
+ preLiquidationFactory: "0x8cd16b62E170Ee0bA83D80e1F80E6085367e2aef",
95
+ wNative: "0x4200000000000000000000000000000000000006",
96
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
97
+ usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
98
+ // Must implement EURC permit version 2 (otherwise breaks permit signatures).
99
+ eurc: "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",
100
+ verUsdc: "0x59aaF835D34b1E3dF2170e4872B785f11E2a964b",
101
+ testUsdc: "0xBC77067f829979812d795d516E523C4033b66409",
102
+ },
103
+ [ChainId.PolygonMainnet]: {
104
+ morpho: "0x1bF0c2541F820E775182832f06c0B7Fc27A25f67",
105
+ bundler3: {
106
+ bundler3: "0x2d9C3A9E67c966C711208cc78b34fB9E9f8db589",
107
+ generalAdapter1: "0xB261B51938A9767406ef83bbFbaAFE16691b7047",
108
+ paraswapAdapter: "0x5F2617F12D1fDd1e43e72Cb80C92dFcE8124Db8d",
109
+ compoundV3MigrationAdapter: "0xB34D2f54139bA12defC315C0822aDf9A5eB9A9b7",
110
+ aaveV2MigrationAdapter: "0x43980Ae597f12Ff64690506b2AEEFFb4D8BeAF2a",
111
+ aaveV3CoreMigrationAdapter: "0xEcB1662a1dff5C20650CF98c3334d2fddcD50742",
112
+ },
113
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
114
+ adaptiveCurveIrm: "0xe675A2161D4a6E2de2eeD70ac98EEBf257FBF0B0",
115
+ publicAllocator: "0xfac15aff53ADd2ff80C2962127C434E8615Df0d3",
116
+ metaMorphoFactory: "0xa9c87daB340631C34BB738625C70499e29ddDC98",
117
+ vaultV2Factory: "0xC11a53eE9B1eCc7a068D8e40F8F17926584F97Cf",
118
+ morphoMarketV1AdapterFactory: "0xD1A0C86F28ecD1657Ad06415c2B230cC89D9b6dd",
119
+ morphoMarketV1AdapterV2Factory: "0xc0006f52B38625C283dd2f972dD9B779A5851Dd0",
120
+ morphoVaultV1AdapterFactory: "0xEb174FEA51Da241eB3B516959B216e013de2888a",
121
+ registryList: "0xb70a43821d2707fA9d0EDd9511CC499F468Ba564",
122
+ chainlinkOracleFactory: "0x1ff7895Eb842794c5d07C4c547b6730e61295215",
123
+ preLiquidationFactory: "0xeDadDe37D76c72b98725614d0b41C20Fe612d304",
124
+ wNative: "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",
125
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
126
+ usdc: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
127
+ },
128
+ [ChainId.ArbitrumMainnet]: {
129
+ morpho: "0x6c247b1F6182318877311737BaC0844bAa518F5e",
130
+ bundler3: {
131
+ bundler3: "0x1FA4431bC113D308beE1d46B0e98Cb805FB48C13",
132
+ generalAdapter1: "0x9954aFB60BB5A222714c478ac86990F221788B88",
133
+ paraswapAdapter: "0xAA5c30C1482c189cA0d56057D3ac4dD7Af1e4726",
134
+ aaveV3CoreMigrationAdapter: "0x1923670d4F4eB7435d865E7477d28FEAFfA40C93",
135
+ compoundV3MigrationAdapter: "0x86Ca77a4a37A9CDBe9bBf4975F6d69531B96444b",
136
+ },
137
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
138
+ adaptiveCurveIrm: "0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA",
139
+ publicAllocator: "0x769583Af5e9D03589F159EbEC31Cc2c23E8C355E",
140
+ metaMorphoFactory: "0x878988f5f561081deEa117717052164ea1Ef0c82",
141
+ vaultV2Factory: "0x6b46fa3cc9EBF8aB230aBAc664E37F2966Bf7971",
142
+ morphoMarketV1AdapterFactory: "0x96456Bf888D4de607Bf3ca0b3C8e4DF9b0d0Ad47",
143
+ morphoMarketV1AdapterV2Factory: "0xeF84b1ecEbe43283ec5AF95D7a5c4D7dE0a9859b",
144
+ morphoVaultV1AdapterFactory: "0xD8Fc8a85779551e78B516da9f74061cb3b086793",
145
+ registryList: "0xc00eb3c7aD1aE986A7f05F5A9d71aCa39c763C65",
146
+ chainlinkOracleFactory: "0x98Ce5D183DC0c176f54D37162F87e7eD7f2E41b5",
147
+ preLiquidationFactory: "0x635c31B5DF1F7EFbCbC07E302335Ef4230758e3d",
148
+ wNative: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
149
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
150
+ usdc: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
151
+ },
152
+ [ChainId.OptimismMainnet]: {
153
+ morpho: "0xce95AfbB8EA029495c66020883F87aaE8864AF92",
154
+ bundler3: {
155
+ bundler3: "0xFBCd3C258feB131D8E038F2A3a670A7bE0507C05",
156
+ generalAdapter1: "0x79481C87f24A3C4332442A2E9faaf675e5F141f0",
157
+ paraswapAdapter: "0x31F539f4Ed14fA1fd18781e93f6739249692aDC5",
158
+ },
159
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
160
+ adaptiveCurveIrm: "0x8cD70A8F399428456b29546BC5dBe10ab6a06ef6",
161
+ publicAllocator: "0x0d68a97324E602E02799CD83B42D337207B40658",
162
+ metaMorphoFactory: "0x3Bb6A6A0Bc85b367EFE0A5bAc81c5E52C892839a",
163
+ vaultV2Factory: "0x6128b680b277Bf4Df80DFE9D8c55A498660870ef",
164
+ morphoMarketV1AdapterFactory: "0x65956d5Ba4974983ecCe111612FC0A0c22650A11",
165
+ morphoMarketV1AdapterV2Factory: "0x71B299bDb52b6396429cd1E11c418324502CB434",
166
+ morphoVaultV1AdapterFactory: "0xEe9F7C64dD827ED7b5CAA2272936366FAca00CF3",
167
+ registryList: "0xD1346be260cd22Eab9E6163010b0D5CbfAAAD32b",
168
+ chainlinkOracleFactory: "0x1ec408D4131686f727F3Fd6245CF85Bc5c9DAD70",
169
+ preLiquidationFactory: "0x3d05C01EE8e97361b9E19D172128255eaE5F98B9",
170
+ wNative: "0x4200000000000000000000000000000000000006",
171
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
172
+ usdc: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
173
+ },
174
+ [ChainId.WorldChainMainnet]: {
175
+ morpho: "0xE741BC7c34758b4caE05062794E8Ae24978AF432",
176
+ bundler3: {
177
+ bundler3: "0x3D07BF2FFb23248034bF704F3a4786F1ffE2a448",
178
+ generalAdapter1: "0x30fa9A3cF56931ACEea42E28D35519a97D90aA67",
179
+ },
180
+ adaptiveCurveIrm: "0x34E99D604751a72cF8d0CFDf87069292d82De472",
181
+ publicAllocator: "0xef9889B4e443DEd35FA0Bd060f2104Cca94e6A43",
182
+ metaMorphoFactory: "0x4DBB3a642a2146d5413750Cca3647086D9ba5F12",
183
+ vaultV2Factory: "0x6846EA318B6B987Ee6b28eBFd87c3409F1d13108",
184
+ morphoMarketV1AdapterFactory: "0xAf93F2d8508053432659d509b0210fdF1472493D",
185
+ morphoMarketV1AdapterV2Factory: "0xEd0b06fcdDB6dD0985e2de9D22ad034d313b7dBd",
186
+ morphoVaultV1AdapterFactory: "0xbF7DEa3756668C7E396C655D646C039826ba8416",
187
+ registryList: "0x06A47994B4890dcA28C076969cedE1151d86EFCF",
188
+ chainlinkOracleFactory: "0xd706690BA1Fe26b70c4AD89e60ff62cEB3A2eD02",
189
+ preLiquidationFactory: "0xe3cE2051a24e58DBFC0eFBe4c2d9e89c5eAe4695",
190
+ wNative: "0x4200000000000000000000000000000000000006",
191
+ // Must implement EURC permit version 2 (otherwise breaks permit signatures).
192
+ eurc: "0x1C60ba0A0eD1019e8Eb035E6daF4155A5cE2380B",
193
+ },
194
+ [ChainId.FraxtalMainnet]: {
195
+ morpho: "0xa6030627d724bA78a59aCf43Be7550b4C5a0653b",
196
+ bundler3: {
197
+ bundler3: "0xA7a414823Ef0F8CFb2c4f67f2F445DA940641d91",
198
+ generalAdapter1: "0x228dDF333DDf6D1895dA1dE8a846EDD27F1284eD",
199
+ },
200
+ adaptiveCurveIrm: "0xA0D4D77b5D9933073572E19C172BFE866312673b",
201
+ publicAllocator: "0x37a888192165fC39884f87c64E2476BfD2C09675",
202
+ metaMorphoFactory: "0x27D4Af0AC9E7FDfA6D0853236f249CC27AE79488",
203
+ chainlinkOracleFactory: "0x39d8622C607A691D7705E8842fbB12E3c38dCD41",
204
+ preLiquidationFactory: "0x373ccddcd3F09D2e1430B3F2b290B9bF56Ae7336",
205
+ wNative: "0xFC00000000000000000000000000000000000006",
206
+ },
207
+ [ChainId.ScrollMainnet]: {
208
+ morpho: "0x2d012EdbAdc37eDc2BC62791B666f9193FDF5a55",
209
+ bundler3: {
210
+ bundler3: "0x60F9159d4dCd724e743212416FD57d8aC0B60768",
211
+ generalAdapter1: "0xD2780fae0869cDc06EE202152304A39653361525",
212
+ },
213
+ adaptiveCurveIrm: "0xa5EA7500A27C0079961D93366A6e93aafF18CB90",
214
+ publicAllocator: "0x8a7f671E45E51dE245649Cf916cA0256FB8a9927",
215
+ metaMorphoFactory: "0x56b65742ade55015e6480959808229Ad6dbc9295",
216
+ chainlinkOracleFactory: "0xb5961902E60b188b1c665B7b72Ef616656A9e24E",
217
+ preLiquidationFactory: "0xeD960178e4aDA0296786Fa79D84e8FDF7bd44B25",
218
+ wNative: "0x5300000000000000000000000000000000000004",
219
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
220
+ usdc: "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
221
+ },
222
+ [ChainId.InkMainnet]: {
223
+ morpho: "0x857f3EefE8cbda3Bc49367C996cd664A880d3042",
224
+ bundler3: {
225
+ bundler3: "0x7db0F1E2bf1f47ec82220090F388d75D8B9BB6BC",
226
+ generalAdapter1: "0xB8B2aDdCDe1cdC94AaE18a0F8A19df03D8683610",
227
+ },
228
+ adaptiveCurveIrm: "0x9515407b1512F53388ffE699524100e7270Ee57B",
229
+ publicAllocator: "0x85416891752a6B81106c1C2999AE1AF5d8Cd3357",
230
+ metaMorphoFactory: "0xd3f39505d0c48AFED3549D625982FdC38Ea9904b",
231
+ chainlinkOracleFactory: "0x3FFFE273ee348b9E1ef89533025C7f165B17B439",
232
+ preLiquidationFactory: "0x30607fEa77168d2c0401B6f60F0B40E32F9339E3",
233
+ wNative: "0x4200000000000000000000000000000000000006",
234
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
235
+ usdc: "0xF1815bd50389c46847f0Bda824eC8da914045D14",
236
+ },
237
+ [ChainId.Unichain]: {
238
+ morpho: "0x8f5ae9CddB9f68de460C77730b018Ae7E04a140A",
239
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
240
+ bundler3: {
241
+ bundler3: "0x7DD85759182495AF7F6757DA75036d24A9B58bc3",
242
+ generalAdapter1: "0xC11329d19C2275c9E759867e879ECFcEeD7e30A0",
243
+ paraswapAdapter: "0xAa870Da2a9F611A3A53d0D2AEe5664B3700a59c9",
244
+ compoundV3MigrationAdapter: "0x617f8d7885CCE689115Af04576F7cB6F2534fA9a",
245
+ },
246
+ adaptiveCurveIrm: "0x9a6061d51743B31D2c3Be75D83781Fa423f53F0E",
247
+ publicAllocator: "0xB0c9a107fA17c779B3378210A7a593e88938C7C9",
248
+ metaMorphoFactory: "0xe9EdE3929F43a7062a007C3e8652e4ACa610Bdc0",
249
+ vaultV2Factory: "0xC9b34c108014B44e5a189A830e7e04c56704a0c9",
250
+ morphoMarketV1AdapterFactory: "0x117b92Ab1C025B175ED38a0CDe5A067a745224a0",
251
+ morphoMarketV1AdapterV2Factory: "0x9a13bdA35F98811fbAcf097966b2C838f3F9c58C",
252
+ morphoVaultV1AdapterFactory: "0xf1Ab9e885C0faa0cbCEd407498BBA895537aD754",
253
+ registryList: "0xB9130D2A87d7c60ED7E7e4b25bdA6e3E6841becB",
254
+ chainlinkOracleFactory: "0x43269546e1D586a1f7200a0AC07e26f9631f7539",
255
+ preLiquidationFactory: "0xb04e4D3D59Ee47Ca9BA192707AF13A7D02969911",
256
+ wNative: "0x4200000000000000000000000000000000000006",
257
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
258
+ usdc: "0x078D782b760474a361dDA0AF3839290b0EF57AD6",
259
+ },
260
+ [ChainId.SonicMainnet]: {
261
+ morpho: "0xd6c916eB7542D0Ad3f18AEd0FCBD50C582cfa95f",
262
+ bundler3: {
263
+ bundler3: "0xB06F1Ad8c908b958E596c42973f67F2f1d9a9afF",
264
+ generalAdapter1: "0x31D5aee8D75EEab548cfA0d11C4f9843a5201eaf",
265
+ },
266
+ adaptiveCurveIrm: "0xDEfCf242226425f93d8DD0e314735C28517C473F",
267
+ publicAllocator: "0x6Cef2EDC70D87E8f1623f3096efF05d066E59B36",
268
+ metaMorphoFactory: "0x0cE9e3512CB4df8ae7e265e62Fb9258dc14f12e8",
269
+ chainlinkOracleFactory: "0x7DA59Fa482F1F49fADc486d8e47BADc506fEb86d",
270
+ preLiquidationFactory: "0xc72129DA4CC808e955699111b8c22B22Ca8A10b8",
271
+ wNative: "0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38",
272
+ },
273
+ [ChainId.HemiMainnet]: {
274
+ morpho: "0xa4Ca2c2e25b97DA19879201bA49422bc6f181f42",
275
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
276
+ bundler3: {
277
+ bundler3: "0x8eDa6E01a20E3Cd90B3B2AF6F790cB8FADEf3Ea8",
278
+ generalAdapter1: "0x9623090C3943ad63F7d794378273610Dd0deeFD4",
279
+ },
280
+ adaptiveCurveIrm: "0xdEbdEa31624552DF904A065221cD14088ABDeD70",
281
+ publicAllocator: "0x4107Ea1746909028d6212B315dE5fE9538F9eb39",
282
+ metaMorphoFactory: "0x8e52179BeB18E882040b01632440d8Ca0f01da82",
283
+ chainlinkOracleFactory: "0xB3cb32E6185446a6Bc7A047E4FfA138fA939e133",
284
+ preLiquidationFactory: "0x40F2896C551194e364F7C846046C34d8a9FE97e4",
285
+ wNative: "0x4200000000000000000000000000000000000006",
286
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
287
+ usdc: "0xad11a8BEb98bbf61dbb1aa0F6d6F2ECD87b35afA",
288
+ },
289
+ [ChainId.ModeMainnet]: {
290
+ morpho: "0xd85cE6BD68487E0AaFb0858FDE1Cd18c76840564",
291
+ bundler3: {
292
+ bundler3: "0xFEA0edFa081C8D5960Ec9Bf6684981dB1834305d",
293
+ generalAdapter1: "0xF53925b95Cc409447066cd5c1A7756084b2Ee0a4",
294
+ },
295
+ adaptiveCurveIrm: "0xE3d46Ae190Cb39ccA3655E966DcEF96b4eAe1d1c",
296
+ publicAllocator: "0xEE868Bf3359DA30c10ea472EAEBFC0a06E8F0120",
297
+ metaMorphoFactory: "0xae5b0884bfff430493D6C844B9fd052Af7d79278",
298
+ chainlinkOracleFactory: "0xf9380f7898423Bd7FDe3C9fDD1b2671A2471f39D",
299
+ preLiquidationFactory: "0x249E4808264c545861e43728186a731dE7c7D745",
300
+ wNative: "0x4200000000000000000000000000000000000006",
301
+ },
302
+ [ChainId.CornMainnet]: {
303
+ morpho: "0xc2B1E031540e3F3271C5F3819F0cC7479a8DdD90",
304
+ bundler3: {
305
+ bundler3: "0x086889F9bdE8349512dD77088A7114E6C1c42Af7",
306
+ generalAdapter1: "0x464a402244bCDdc0c2091D5193E8ffdb2be54Ca9",
307
+ },
308
+ adaptiveCurveIrm: "0x58a42117d753a0e69694545DfA19d64c2fB759fB",
309
+ publicAllocator: "0xDFde06e2B2A2D718eE5560b73dA4F830E56A2f10",
310
+ metaMorphoFactory: "0xe430821595602eA5DD0cD350f86987437c7362fA",
311
+ chainlinkOracleFactory: "0x16278156D366fC91536b6b81482ffaC47EEa06D6",
312
+ preLiquidationFactory: "0xb9065AC18d3EBdb3263B77B587f9c5CD570545D1",
313
+ wNative: "0xda5dDd7270381A7C2717aD10D1c0ecB19e3CDFb2",
314
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
315
+ usdc: "0xDF0B24095e15044538866576754F3C964e902Ee6",
316
+ },
317
+ [ChainId.PlumeMainnet]: {
318
+ morpho: "0x42b18785CE0Aed7BF7Ca43a39471ED4C0A3e0bB5",
319
+ bundler3: {
320
+ bundler3: "0x5437C8788f4CFbaA55be6FBf30379bc7dd7f69C3",
321
+ generalAdapter1: "0x65ff368930Cb7eB4CA5C5eBC58bb69E6Ed198BA5",
322
+ },
323
+ adaptiveCurveIrm: "0x7420302Ddd469031Cd2282cd64225cCd46F581eA",
324
+ publicAllocator: "0x58485338D93F4e3b4Bf2Af1C9f9C0aDF087AEf1C",
325
+ metaMorphoFactory: "0x2525D453D9BA13921D5aB5D8c12F9202b0e19456",
326
+ vaultV2Factory: "0x4f0a370bb367843CFd914c4d9972523aD2f8FCc9",
327
+ morphoMarketV1AdapterFactory: "0x1675357fdA9e6784DdAD7AD5b3C3DF1fdD4dc4C9",
328
+ morphoMarketV1AdapterV2Factory: "0xB7c243AfACb25870775ADFdAe9D0EAc2324dD152",
329
+ morphoVaultV1AdapterFactory: "0x5935fFcD1C5D269840ae7c685bC957A73E04AEDB",
330
+ registryList: "0x60d3184BDD31BAE7De973894B3bA0b3B6900B79a",
331
+ chainlinkOracleFactory: "0x133F742c0D36864F37e15C33a18bA6fdc950ED0f",
332
+ preLiquidationFactory: "0xF184156Cf6Ad4D3dA7F6449D40755A0f9de97ef3",
333
+ usdc: "0xc98E8c6cB80AC48E4bbD3B56f5895DD64dA7d10a",
334
+ wNative: "0xEa237441c92CAe6FC17Caaf9a7acB3f953be4bd1",
335
+ },
336
+ [ChainId.CampMainnet]: {
337
+ morpho: "0xc7CAd9B1377Eb8103397Cb07Cb5c4f03eb2eBEa8",
338
+ bundler3: {
339
+ bundler3: "0xc1A86b3a552C5a34e1ecc910341A64Cc89b2CB01",
340
+ generalAdapter1: "0x86eaf48Fd73c1Aa30E801D01d0efFd731c3E5E85",
341
+ },
342
+ adaptiveCurveIrm: "0xeEccdD33c0C06d7DDa31E3C4a1Cdb35a2A756246",
343
+ publicAllocator: "0x1e145648DA9aC9d831B4F7931C06e9828083BD40",
344
+ metaMorphoFactory: "0xa8CD521d42b716821D7ddD2Ca6a237087aA5b487",
345
+ chainlinkOracleFactory: "0x24Bc64f44B429EEA86c8B1f9C03F54Ab0C6c0C15",
346
+ preLiquidationFactory: "0x6C0155CC30f760DC49138B389F5B69F56eD08841",
347
+ wNative: "0x1aE9c40eCd2DD6ad5858E5430A556d7aff28A44b",
348
+ },
349
+ [ChainId.KatanaMainnet]: {
350
+ morpho: "0xD50F2DffFd62f94Ee4AEd9ca05C61d0753268aBc",
351
+ bundler3: {
352
+ bundler3: "0xA8C5e23C9C0DF2b6fF716486c6bBEBB6661548C8",
353
+ generalAdapter1: "0x916Aa175C36E845db45fF6DDB886AE437d403B61",
354
+ },
355
+ adaptiveCurveIrm: "0x4F708C0ae7deD3d74736594C2109C2E3c065B428",
356
+ publicAllocator: "0x39EB6Da5e88194C82B13491Df2e8B3E213eD2412",
357
+ metaMorphoFactory: "0x1c8De6889acee12257899BFeAa2b7e534de32E16",
358
+ vaultV2Factory: "0xFcb8b57E56787bB29e130Fca67f3c5a1232975D1",
359
+ morphoMarketV1AdapterFactory: "0x2e6BE3a3A27fb45c6AbA2D1833eeA48E8788538e",
360
+ morphoMarketV1AdapterV2Factory: "0x6d6A3ba62836d6B40277767dCAc8fd390d4BcedC",
361
+ morphoVaultV1AdapterFactory: "0xc8D22B1adD3D176600E9952e7876e9249254cAAF",
362
+ registryList: "0xA9132a09838fD20304dF2B2892679d06A4cc6371",
363
+ chainlinkOracleFactory: "0x7D047fB910Bc187C18C81a69E30Fa164f8c536eC",
364
+ preLiquidationFactory: "0x678EB53A3bB79111263f47B84989d16D81c36D85",
365
+ wNative: "0xEE7D8BCFb72bC1880D0Cf19822eB0A2e6577aB62",
366
+ },
367
+ [ChainId.EtherlinkMainnet]: {
368
+ morpho: "0xbCE7364E63C3B13C73E9977a83c9704E2aCa876e",
369
+ bundler3: {
370
+ bundler3: "0x69dc8086191437b55775b79C730BB3876397e7D1",
371
+ generalAdapter1: "0xEabdAC78A7f0a9B3dF0e23D69A5a5fF7f580a910",
372
+ },
373
+ adaptiveCurveIrm: "0xC1523BE776e66ba07b609b1914D0925278f21FE5",
374
+ publicAllocator: "0x8b8B1bd41d36c06253203CD21463994aB752c1e6",
375
+ metaMorphoFactory: "0x997a79c3C04c5B9eb27d343ae126bcCFb5D74781",
376
+ chainlinkOracleFactory: "0x12FA40f687a35611720E1DcB59976B6e51247298",
377
+ preLiquidationFactory: "0xd1c37fDd941256FC184eF3A07Be540a90b81Ec21",
378
+ wNative: "0xc9B53AB2679f573e480d01e0f49e2B5CFB7a3EAb",
379
+ },
380
+ [ChainId.TacMainnet]: {
381
+ morpho: "0x918B9F2E4B44E20c6423105BB6cCEB71473aD35c",
382
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
383
+ bundler3: {
384
+ bundler3: "0x84b189823D0f84c36728Bb3335dD8C833564e72f",
385
+ generalAdapter1: "0x6D94E7dCA6d8FAE2CF954633C2Cf9c286258E0af",
386
+ },
387
+ adaptiveCurveIrm: "0x7E82b16496fA8CC04935528dA7F5A2C684A3C7A3",
388
+ publicAllocator: "0x414247afcf1fE3b94C617e7E3A7adB81D8D3208F",
389
+ metaMorphoFactory: "0xcDA78f4979d17Ec93052A84A12001fe0088AD734",
390
+ chainlinkOracleFactory: "0xbf10eD52dD60C60E901BF022c3675303ad4a56b1",
391
+ preLiquidationFactory: "0x5851C1e423A2F93aFb821834a63cA052D19ae4Ef",
392
+ wNative: "0xB63B9f0eb4A6E6f191529D71d4D88cc8900Df2C9",
393
+ },
394
+ [ChainId.LiskMainnet]: {
395
+ morpho: "0x00cD58DEEbd7A2F1C55dAec715faF8aed5b27BF8",
396
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
397
+ bundler3: {
398
+ bundler3: "0xD96E5e02580C4EAfE15B5537b25eE3dEe5861e00",
399
+ generalAdapter1: "0x76cFE4BF840C7b461772fE7CDE399f58c4173584",
400
+ },
401
+ adaptiveCurveIrm: "0x5576629f21D528A8c3e06C338dDa907B94563902",
402
+ publicAllocator: "0xb1E5B1De2a54ab55C412B5ee1E38e46799588103",
403
+ metaMorphoFactory: "0x01dD876130690469F685a65C2B295A90a81BaD91",
404
+ chainlinkOracleFactory: "0x2eb4D17C2AAf1EA62Bf83Fb49Dd1128b14AF4D93",
405
+ preLiquidationFactory: "0xF2c325F26691b6556e6f66451bb38bDa37FEbaa7",
406
+ wNative: "0x4200000000000000000000000000000000000006",
407
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
408
+ usdc: "0xF242275d3a6527d877f2c927a82D9b057609cc71",
409
+ },
410
+ [ChainId.HyperliquidMainnet]: {
411
+ morpho: "0x68e37dE8d93d3496ae143F2E900490f6280C57cD",
412
+ bundler3: {
413
+ bundler3: "0xa3F50477AfA601C771874260A3B34B40e244Fa0e",
414
+ generalAdapter1: "0xD7F48aDE56613E8605863832B7B8A1985B934aE4",
415
+ },
416
+ adaptiveCurveIrm: "0xD4a426F010986dCad727e8dd6eed44cA4A9b7483",
417
+ publicAllocator: "0x517505be22D9068687334e69ae7a02fC77edf4Fc",
418
+ metaMorphoFactory: "0xec051b19d654C48c357dC974376DeB6272f24e53",
419
+ vaultV2Factory: "0xD7217E5687FF1071356C780b5fe4803D9D967da7",
420
+ morphoMarketV1AdapterFactory: "0xc6b8B565C715134b0Ca3D6fa3D29B25759D0b9e2",
421
+ morphoMarketV1AdapterV2Factory: "0xaEff6Ef4B7bbfbAadB18b634A8F11392CBeB72Be",
422
+ morphoVaultV1AdapterFactory: "0xdf5202e29654e02011611A086f15477880580CAc",
423
+ registryList: "0x857B55cEb57dA0C2A83EE08a8dB529B931089aee",
424
+ chainlinkOracleFactory: "0xeb476f124FaD625178759d13557A72394A6f9aF5",
425
+ preLiquidationFactory: "0x1b6782Ac7A859503cE953FBf4736311CC335B8f0",
426
+ wNative: "0x5555555555555555555555555555555555555555",
427
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
428
+ usdc: "0xb88339CB7199b77E23DB6E890353E22632Ba630f",
429
+ },
430
+ [ChainId.SeiMainnet]: {
431
+ morpho: "0xc9cDAc20FCeAAF616f7EB0bb6Cd2c69dcfa9094c",
432
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
433
+ bundler3: {
434
+ bundler3: "0xF9457356F18A3349Bb317Ac144c3Bcc62e5761aD",
435
+ generalAdapter1: "0x02e0e71e145f254820B9D89c9E6068f08256F601",
436
+ },
437
+ adaptiveCurveIrm: "0x6eFA8e3Aa8279eB2fd46b6083A9E52dA72EA56c4",
438
+ publicAllocator: "0xD878509446bE2C601f0f032F501851001B159D6B",
439
+ metaMorphoFactory: "0x8Dea49ec5bd5AeAc8bcf96B3E187F59354118291",
440
+ chainlinkOracleFactory: "0x4bD68c2FF3274207EC07ED281C915758b6F23F07",
441
+ preLiquidationFactory: "0x65eD61058cEB4895B7d62437BaCEA39b04f6D27B",
442
+ wNative: "0xE30feDd158A2e3b13e9badaeABaFc5516e95e8C7",
443
+ usdc: "0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392",
444
+ },
445
+ [ChainId.ZeroGMainnet]: {
446
+ morpho: "0x9CDD13a2212D94C4f12190cA30783B743E83C89e",
447
+ bundler3: {
448
+ bundler3: "0xbDaFC7ceF85C5fF69164330F521089C9E15DDDae",
449
+ generalAdapter1: "0xFaD987d0EedfbAC709EC27ee4a94f36A1300a054",
450
+ },
451
+ adaptiveCurveIrm: "0xf52e20C42FEc624819D4184226C4777D7cbd767e",
452
+ publicAllocator: "0x28a80F3713735CAD44bD9d7E1da9Fa16b0244497",
453
+ metaMorphoFactory: "0x41528AadC7314658b07Ca6e7213B9b77289B477f",
454
+ chainlinkOracleFactory: "0x5115c1a74ABf096150593EecF3e20F016fc9dB43",
455
+ preLiquidationFactory: "0x534858821653467c2ae231dc027aa1F2c8D91802",
456
+ wNative: "0x1Cd0690fF9a693f5EF2dD976660a8dAFc81A109c",
457
+ },
458
+ [ChainId.LineaMainnet]: {
459
+ morpho: "0x6B0D716aC0A45536172308e08fC2C40387262c9F",
460
+ bundler3: {
461
+ bundler3: "0x1Ee8Ec299E8014760D50A4E3CfC3b44Cc2242625",
462
+ generalAdapter1: "0x454dAb6ce9891245696b239b4845a1cDC268255d",
463
+ },
464
+ adaptiveCurveIrm: "0x85C2Ef4Bd69f42D7Da19Fb9dcdD7Fb8d0F59cDeE",
465
+ publicAllocator: "0x2d4cf00e18D48fD030d9b1E2FAAE6e0384C7610B",
466
+ metaMorphoFactory: "0xA148a8223B622A72dC36472DE1492aBb5c089BA7",
467
+ vaultV2Factory: "0x5DC11CF8BA4C39d1194F91218D35008d9F52A5d0",
468
+ morphoMarketV1AdapterFactory: "0x3267BbdC94274B4BE081c01ffc6123dA12E8c043",
469
+ morphoVaultV1AdapterFactory: "0x6FaF26DD640e22457cA4fd5DA702BA3E169eEd87",
470
+ registryList: "0x122Ea8ff8888C29F8736665d576e3fAEF15D27D5",
471
+ chainlinkOracleFactory: "0x3FFF726062B03BfD5BC485eeEEcc92CF1d8F0105",
472
+ preLiquidationFactory: "0x05a0Ff4E564ED1ba6B42247E19edFf83545C3C40",
473
+ wNative: "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f",
474
+ usdc: "0x176211869cA2b568f2A7D4EE941E073a821EE1ff",
475
+ },
476
+ [ChainId.MonadMainnet]: {
477
+ morpho: "0xD5D960E8C380B724a48AC59E2DfF1b2CB4a1eAee",
478
+ bundler3: {
479
+ bundler3: "0x82b684483e844422FD339df0b67b3B111F02c66E",
480
+ generalAdapter1: "0x725AB8CAd931BCb80Fdbf10955a806765cCe00e5",
481
+ },
482
+ adaptiveCurveIrm: "0x09475a3D6eA8c314c592b1a3799bDE044E2F400F",
483
+ publicAllocator: "0xfd70575B732F9482F4197FE1075492e114E97302",
484
+ metaMorphoFactory: "0x33f20973275B2F574488b18929cd7DCBf1AbF275",
485
+ vaultV2Factory: "0x8B2F922162FBb60A6a072cC784A2E4168fB0bb0c",
486
+ morphoMarketV1AdapterFactory: "0x8Da54fbF89B3D6fC6DCC92F31CF75a211ACF3d46",
487
+ morphoVaultV1AdapterFactory: "0x9f3c0999425656fD189C69a8aD68cB64986D644A",
488
+ registryList: "0x6a42f8b46224baA4DbBBc2F860F4675eeA7bd52B",
489
+ chainlinkOracleFactory: "0xC8659Bcd5279DB664Be973aEFd752a5326653739",
490
+ preLiquidationFactory: "0xB5b3e541abD19799E0c65905a5a42BD37d6c94c0",
491
+ wNative: "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A",
492
+ usdc: "0x754704Bc059F8C67012fEd69BC8A327a5aafb603",
493
+ },
494
+ [ChainId.StableMainnet]: {
495
+ morpho: "0xa40103088A899514E3fe474cD3cc5bf811b1102e",
496
+ bundler3: {
497
+ bundler3: "0xA0bb114F927dF03d9a1a639b9c71F71B0FaFDf1B",
498
+ generalAdapter1: "0x59b1F4376a81e39c466A0A218447E4D36f39A96b",
499
+ },
500
+ adaptiveCurveIrm: "0x41e846FC8108b8527C1D4EDB4c9564E56442940f",
501
+ publicAllocator: "0xbCB063D4B6D479b209C186e462828CBACaC82DbE",
502
+ metaMorphoFactory: "0xb4ae5673c48621189E2bEfBA96F31912032DD1AE",
503
+ vaultV2Factory: "0x7fc35488803D49D00a94b206A223f7661898BE3a",
504
+ morphoMarketV1AdapterFactory: "0x2A5F218FE4Dac3b1f4E096e8ae83074bB1713833",
505
+ morphoVaultV1AdapterFactory: "0x4EF83ACD552598a1196c1aBDD0bA2EdE6f2237B4",
506
+ registryList: "0xCe93fcB2849EB886F1e81d45D2747dF803f843C3",
507
+ chainlinkOracleFactory: "0xF24C6eAB91e43EacE18a4e893a48565C09132505",
508
+ preLiquidationFactory: "0x741A6604e974FeAF35a5FBb1416B3e01c33e5C0e",
509
+ // There is no wrapped native token because the native token USDT0 is already an ERC20.
510
+ },
511
+ [ChainId.CronosMainnet]: {
512
+ morpho: "0xDF9a1DC07e5dEe5ccCCaBeC35e446C70fAF7434e",
513
+ bundler3: {
514
+ bundler3: "0xb1c59fE6A0DCE25b804F6113C441Bf4F3a4Ab6bC",
515
+ generalAdapter1: "0xCa470cBBc3de56FDe336466f2107cC969174d513",
516
+ },
517
+ adaptiveCurveIrm: "0x1Db002C086439d55B9f33E6c0693Eb850F7c0607",
518
+ publicAllocator: "0xFEAbEf95f3C937Ff4d5fD70005CF3392f8Ca02d5",
519
+ metaMorphoFactory: "0xEA67e5566Ca2c0176d9db172A7f9A1e1F22E9D3A",
520
+ vaultV2Factory: "0x05519a0835a1bFD90f110aA7ca46e9A5F81Ed3b4",
521
+ morphoMarketV1AdapterFactory: "0xaCFf4ad3B357F5A43A20570cF3eb9Ba0086d4e9a",
522
+ morphoVaultV1AdapterFactory: "0x8840F99Bb2D4f69fb02b2d019384C5c98a11746c",
523
+ registryList: "0x295e0aB80f8234398cd0E51C85D873ee69E5F0DD",
524
+ chainlinkOracleFactory: "0x44b2c8e4474751EF2BBC57B92928aFB99DA785De",
525
+ preLiquidationFactory: "0x8bedC738f5F0D54dF7E003297AAc6692b870F3Ed",
526
+ wNative: "0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23",
527
+ },
528
+ [ChainId.CeloMainnet]: {
529
+ morpho: "0xd24ECdD8C1e0E57a4E26B1a7bbeAa3e95466A569",
530
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
531
+ bundler3: {
532
+ bundler3: "0xbd142f98f847c170D51d8B23e5FEBc51FC9a67D9",
533
+ generalAdapter1: "0x3E7544a07157D03a49359eE89f2fCac9a6467230",
534
+ },
535
+ adaptiveCurveIrm: "0x683CAAADdfA2F42e24880E202676526d501a5dED",
536
+ publicAllocator: "0x3Fe12193D178B76BaF4e23a083A64e49ACDE3188",
537
+ metaMorphoFactory: "0x6870aA9f66C1e5Efe8Dbe8730e86E9e91f688275",
538
+ chainlinkOracleFactory: "0x3a4849b5174Dc6828c6Dc9BBD87e61Ed1ebE9fFA",
539
+ preLiquidationFactory: "0x717a3eF7D366F5ce4636011924D0Bd65ea5eCE2f",
540
+ // No wrapped native is provided as the native asset CELO is already an ERC20.
541
+ usdc: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C",
542
+ },
543
+ [ChainId.AbstractMainnet]: {
544
+ morpho: "0xc85CE8ffdA27b646D269516B8d0Fa6ec2E958B55",
545
+ bundler3: {
546
+ bundler3: "0xc13A3Ca3B0120EE6121d1E0ca9Da22fDD7ed28Cd",
547
+ generalAdapter1: "0x3716AA06304D1bC70f553Da44904d13086A4a791",
548
+ },
549
+ adaptiveCurveIrm: "0xd334eb112CfD1EB4a50FB871b7D9895EBB955C43",
550
+ publicAllocator: "0x609f3DF49806B5617A0Bd3301f04Ac3CB26d9e82",
551
+ metaMorphoFactory: "0x83A7f60c9fc57cEf1e8001bda98783AA1A53E4b1",
552
+ chainlinkOracleFactory: "0x3585E3fD72F8d1b02250E1F6496b706c6e092884",
553
+ preLiquidationFactory: "0x1058DA51242dF63bA3A61c838A61405ea6Edb083",
554
+ wNative: "0x3439153EB7AF838Ad19d56E1571FBD09333C2809",
555
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
556
+ usdc: "0x84A71ccD554Cc1b02749b35d22F684CC8ec987e1",
557
+ },
558
+ [ChainId.BitlayerMainnet]: {
559
+ morpho: "0xAeA7eFF1bD3c875c18ef50F0387892dF181431C6",
560
+ bundler3: {
561
+ bundler3: "0x82b3ea7558Fc383b949fa42Db7ee3eB101447B96",
562
+ generalAdapter1: "0xa87F1422Df88B5f490203D71e2f8e7244843E62F",
563
+ },
564
+ adaptiveCurveIrm: "0xefB565442B9Eb740B50Cf928C14d21c0111254F9",
565
+ publicAllocator: "0x3A1db0038361528756bED147abe3d41255c7128c",
566
+ metaMorphoFactory: "0xb95De4a9C81Ba6240378F383f88592d30937d048",
567
+ chainlinkOracleFactory: "0xfDc69d06De855701731D142F28bD401802DA4daF",
568
+ preLiquidationFactory: "0x4E28CAE07A008FF2D7D345992C969118eb253CD6",
569
+ wNative: "0xfF204e2681A6fA0e2C3FaDe68a1B28fb90E4Fc5F",
570
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
571
+ usdc: "0xf8C374CE88A3BE3d374e8888349C7768B607c755",
572
+ },
573
+ [ChainId.BscMainnet]: {
574
+ morpho: "0x01b0Bd309AA75547f7a37Ad7B1219A898E67a83a",
575
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
576
+ bundler3: {
577
+ bundler3: "0x16D40b9DF1497468195BFAfeb2718e486E15bF91",
578
+ generalAdapter1: "0x87c93660ECe6E68C6492EabBbBdbaafA102ae3a3",
579
+ },
580
+ adaptiveCurveIrm: "0x7112D95cB5f6b13bF5F5B94a373bB3b2B381F979",
581
+ publicAllocator: "0x842bEccF8eBC11006c4bE96DEfE09b60326D0495",
582
+ metaMorphoFactory: "0x92983687e672cA6d96530f9Dbe11a196cE905d72",
583
+ chainlinkOracleFactory: "0xDf2035fC15919588526dBb5560863C812F135236",
584
+ preLiquidationFactory: "0xEB8871F0FA8aB787AbCD28d1095f7B486d241D42",
585
+ wNative: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
586
+ },
587
+ [ChainId.SoneiumMainnet]: {
588
+ morpho: "0xE75Fc5eA6e74B824954349Ca351eb4e671ADA53a",
589
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
590
+ bundler3: {
591
+ bundler3: "0x461378B79d400c963F48F57b3a99416bc3C5c6a6",
592
+ generalAdapter1: "0xA47EeDE3Aac741B830E394B2e291f6774BD8bb48",
593
+ },
594
+ adaptiveCurveIrm: "0x68F9b666b984527A7c145Db4103Cc6d3171C797F",
595
+ publicAllocator: "0x76f93A21573014Ab7d634D3204818922A234249e",
596
+ metaMorphoFactory: "0x7026b436f294e560b3C26E731f5cac5992cA2B33",
597
+ chainlinkOracleFactory: "0x669F1A4cE3127740eCdB3E36adFC5Df6Db1EA74b",
598
+ preLiquidationFactory: "0xcBD0710425613d666C5Ffb4dE2eE73554F21c34B",
599
+ wNative: "0x4200000000000000000000000000000000000006",
600
+ // Must implement USDC permit version 2 (otherwise breaks permit signatures).
601
+ usdc: "0xbA9986D2381edf1DA03B0B9c1f8b00dc4AacC369",
602
+ },
603
+ };
604
+ const _deployments = {
605
+ [ChainId.EthMainnet]: {
606
+ morpho: 18883124n,
607
+ permit2: 15986406n,
608
+ bundler3: {
609
+ bundler3: 21643807n,
610
+ generalAdapter1: 21872136n,
611
+ paraswapAdapter: 21643807n,
612
+ erc20WrapperAdapter: 21872136n,
613
+ compoundV2MigrationAdapter: 21643807n,
614
+ compoundV3MigrationAdapter: 21643807n,
615
+ aaveV2MigrationAdapter: 21643807n,
616
+ aaveV3CoreMigrationAdapter: 21643807n,
617
+ aaveV3PrimeMigrationAdapter: 21643807n,
618
+ aaveV3EtherFiMigrationAdapter: 21643807n,
619
+ aaveV3OptimizerMigrationAdapter: 21643807n,
620
+ },
621
+ adaptiveCurveIrm: 18883124n,
622
+ publicAllocator: 19375099n,
623
+ metaMorphoFactory: 21439510n,
624
+ vaultV2Factory: 23375073n,
625
+ morphoMarketV1AdapterFactory: 23375073n,
626
+ morphoMarketV1AdapterV2Factory: 23981459n,
627
+ morphoVaultV1AdapterFactory: 23375073n,
628
+ registryList: 23375119n,
629
+ chainlinkOracleFactory: 19375066n,
630
+ preLiquidationFactory: 21414664n,
631
+ },
632
+ [ChainId.BaseMainnet]: {
633
+ morpho: 13977148n,
634
+ permit2: 1425180n,
635
+ bundler3: {
636
+ bundler3: 25161671n,
637
+ generalAdapter1: 26539234n,
638
+ paraswapAdapter: 25161671n,
639
+ erc20WrapperAdapter: 26539234n,
640
+ compoundV3MigrationAdapter: 25161671n,
641
+ aaveV3CoreMigrationAdapter: 25161671n,
642
+ },
643
+ adaptiveCurveIrm: 13977152n,
644
+ publicAllocator: 13979545n,
645
+ metaMorphoFactory: 23928808n,
646
+ vaultV2Factory: 35615206n,
647
+ morphoMarketV1AdapterFactory: 35615206n,
648
+ morphoMarketV1AdapterV2Factory: 39285528n,
649
+ morphoVaultV1AdapterFactory: 35615206n,
650
+ registryList: 35615358n,
651
+ chainlinkOracleFactory: 13978286n,
652
+ preLiquidationFactory: 23779056n,
653
+ },
654
+ [ChainId.PolygonMainnet]: {
655
+ morpho: 66931042n,
656
+ bundler3: {
657
+ bundler3: 68074185n,
658
+ generalAdapter1: 68074185n,
659
+ paraswapAdapter: 68074185n,
660
+ compoundV3MigrationAdapter: 68690465n,
661
+ aaveV2MigrationAdapter: 68690465n,
662
+ aaveV3CoreMigrationAdapter: 68690465n,
663
+ },
664
+ permit2: 35701901n,
665
+ adaptiveCurveIrm: 66931042n,
666
+ publicAllocator: 66931042n,
667
+ metaMorphoFactory: 66931042n,
668
+ vaultV2Factory: 77371907n,
669
+ morphoMarketV1AdapterFactory: 77371907n,
670
+ morphoMarketV1AdapterV2Factory: 80128162n,
671
+ morphoVaultV1AdapterFactory: 77371907n,
672
+ registryList: 77372020n,
673
+ chainlinkOracleFactory: 66931042n,
674
+ preLiquidationFactory: 68074185n,
675
+ },
676
+ [ChainId.ArbitrumMainnet]: {
677
+ morpho: 296446593n,
678
+ bundler3: {
679
+ bundler3: 307326238n,
680
+ generalAdapter1: 307326238n,
681
+ paraswapAdapter: 307326988n,
682
+ aaveV3CoreMigrationAdapter: 358694526n,
683
+ compoundV3MigrationAdapter: 358693964n,
684
+ },
685
+ permit2: 38692735n,
686
+ adaptiveCurveIrm: 296446593n,
687
+ publicAllocator: 296446593n,
688
+ metaMorphoFactory: 296447195n,
689
+ vaultV2Factory: 387016724n,
690
+ morphoMarketV1AdapterFactory: 387016724n,
691
+ morphoMarketV1AdapterV2Factory: 409152917n,
692
+ morphoVaultV1AdapterFactory: 387016724n,
693
+ registryList: 387017701n,
694
+ chainlinkOracleFactory: 296447195n,
695
+ preLiquidationFactory: 307326238n,
696
+ },
697
+ [ChainId.OptimismMainnet]: {
698
+ morpho: 130770075n,
699
+ bundler3: {
700
+ bundler3: 132139369n,
701
+ generalAdapter1: 132139369n,
702
+ paraswapAdapter: 132139438n,
703
+ },
704
+ permit2: 38854427n,
705
+ adaptiveCurveIrm: 130770075n,
706
+ publicAllocator: 130770075n,
707
+ metaMorphoFactory: 130770189n,
708
+ vaultV2Factory: 142122059n,
709
+ morphoMarketV1AdapterFactory: 142122059n,
710
+ morphoMarketV1AdapterV2Factory: 144881071n,
711
+ morphoVaultV1AdapterFactory: 142122059n,
712
+ registryList: 142122170n,
713
+ chainlinkOracleFactory: 130770189n,
714
+ preLiquidationFactory: 132139369n,
715
+ },
716
+ [ChainId.WorldChainMainnet]: {
717
+ morpho: 9025669n,
718
+ bundler3: {
719
+ bundler3: 10273494n,
720
+ generalAdapter1: 10273494n,
721
+ },
722
+ adaptiveCurveIrm: 9025669n,
723
+ publicAllocator: 9025669n,
724
+ metaMorphoFactory: 9025733n,
725
+ vaultV2Factory: 20253005n,
726
+ morphoMarketV1AdapterFactory: 20253005n,
727
+ morphoMarketV1AdapterV2Factory: 23013012n,
728
+ morphoVaultV1AdapterFactory: 20253005n,
729
+ registryList: 20253132n,
730
+ chainlinkOracleFactory: 9025733n,
731
+ preLiquidationFactory: 10273494n,
732
+ },
733
+ [ChainId.FraxtalMainnet]: {
734
+ morpho: 15317931n,
735
+ bundler3: {
736
+ bundler3: 16536231n,
737
+ generalAdapter1: 16536231n,
738
+ },
739
+ adaptiveCurveIrm: 15317931n,
740
+ publicAllocator: 15317931n,
741
+ metaMorphoFactory: 15318007n,
742
+ chainlinkOracleFactory: 15318007n,
743
+ preLiquidationFactory: 16536231n,
744
+ },
745
+ [ChainId.ScrollMainnet]: {
746
+ morpho: 12842868n,
747
+ bundler3: {
748
+ bundler3: 13504587n,
749
+ generalAdapter1: 13504587n,
750
+ },
751
+ adaptiveCurveIrm: 12842868n,
752
+ publicAllocator: 12842868n,
753
+ metaMorphoFactory: 12842903n,
754
+ chainlinkOracleFactory: 12842903n,
755
+ preLiquidationFactory: 13504587n,
756
+ },
757
+ [ChainId.InkMainnet]: {
758
+ morpho: 4078776n,
759
+ bundler3: {
760
+ bundler3: 6385077n,
761
+ generalAdapter1: 6385077n,
762
+ },
763
+ adaptiveCurveIrm: 4078776n,
764
+ publicAllocator: 4078776n,
765
+ metaMorphoFactory: 4078830n,
766
+ chainlinkOracleFactory: 4078830n,
767
+ preLiquidationFactory: 6385077n,
768
+ },
769
+ [ChainId.Unichain]: {
770
+ morpho: 9139027n,
771
+ permit2: 0n,
772
+ bundler3: {
773
+ bundler3: 9381237n,
774
+ generalAdapter1: 9381237n,
775
+ paraswapAdapter: 20872902n,
776
+ compoundV3MigrationAdapter: 22019479n,
777
+ },
778
+ adaptiveCurveIrm: 9139027n,
779
+ publicAllocator: 9139027n,
780
+ metaMorphoFactory: 9316789n,
781
+ vaultV2Factory: 29092109n,
782
+ morphoMarketV1AdapterFactory: 29092109n,
783
+ morphoMarketV1AdapterV2Factory: 34613548n,
784
+ morphoVaultV1AdapterFactory: 29092109n,
785
+ registryList: 29092328n,
786
+ chainlinkOracleFactory: 9316789n,
787
+ preLiquidationFactory: 9381237n,
788
+ },
789
+ [ChainId.SonicMainnet]: {
790
+ morpho: 9100931n,
791
+ bundler3: {
792
+ bundler3: 9102286n,
793
+ generalAdapter1: 9102286n,
794
+ },
795
+ adaptiveCurveIrm: 9100931n,
796
+ publicAllocator: 9100931n,
797
+ metaMorphoFactory: 9101319n,
798
+ chainlinkOracleFactory: 9101319n,
799
+ preLiquidationFactory: 9102286n,
800
+ },
801
+ [ChainId.HemiMainnet]: {
802
+ morpho: 1188872n,
803
+ bundler3: {
804
+ bundler3: 1188907n,
805
+ generalAdapter1: 1188907n,
806
+ },
807
+ adaptiveCurveIrm: 1188872n,
808
+ publicAllocator: 1188872n,
809
+ metaMorphoFactory: 1188885n,
810
+ chainlinkOracleFactory: 1188885n,
811
+ preLiquidationFactory: 1188907n,
812
+ },
813
+ [ChainId.ModeMainnet]: {
814
+ morpho: 19983370n,
815
+ bundler3: {
816
+ bundler3: 19983599n,
817
+ generalAdapter1: 19983599n,
818
+ },
819
+ adaptiveCurveIrm: 19983370n,
820
+ publicAllocator: 19983370n,
821
+ metaMorphoFactory: 19983443n,
822
+ chainlinkOracleFactory: 19983443n,
823
+ preLiquidationFactory: 19983599n,
824
+ },
825
+ [ChainId.CornMainnet]: {
826
+ morpho: 251401n,
827
+ bundler3: {
828
+ bundler3: 253107n,
829
+ generalAdapter1: 253107n,
830
+ },
831
+ adaptiveCurveIrm: 251401n,
832
+ publicAllocator: 251401n,
833
+ metaMorphoFactory: 253027n,
834
+ chainlinkOracleFactory: 253027n,
835
+ preLiquidationFactory: 253107n,
836
+ },
837
+ [ChainId.PlumeMainnet]: {
838
+ morpho: 765994n,
839
+ bundler3: {
840
+ bundler3: 789925n,
841
+ generalAdapter1: 789925n,
842
+ },
843
+ adaptiveCurveIrm: 765994n,
844
+ publicAllocator: 765994n,
845
+ metaMorphoFactory: 766078n,
846
+ vaultV2Factory: 32235414n,
847
+ morphoMarketV1AdapterFactory: 32235414n,
848
+ morphoMarketV1AdapterV2Factory: 41965167n,
849
+ morphoVaultV1AdapterFactory: 32235414n,
850
+ registryList: 32235782n,
851
+ chainlinkOracleFactory: 766078n,
852
+ preLiquidationFactory: 789925n,
853
+ },
854
+ [ChainId.CampMainnet]: {
855
+ morpho: 4804080n,
856
+ bundler3: {
857
+ bundler3: 4804690n,
858
+ generalAdapter1: 4804690n,
859
+ },
860
+ adaptiveCurveIrm: 4804080n,
861
+ publicAllocator: 4804080n,
862
+ metaMorphoFactory: 4804270n,
863
+ chainlinkOracleFactory: 4804270n,
864
+ preLiquidationFactory: 4804690n,
865
+ },
866
+ [ChainId.KatanaMainnet]: {
867
+ morpho: 2741069n,
868
+ bundler3: {
869
+ bundler3: 2741993n,
870
+ generalAdapter1: 2741993n,
871
+ },
872
+ adaptiveCurveIrm: 2741069n,
873
+ publicAllocator: 2741069n,
874
+ metaMorphoFactory: 2741420n,
875
+ vaultV2Factory: 13096629n,
876
+ morphoMarketV1AdapterFactory: 13096629n,
877
+ morphoMarketV1AdapterV2Factory: 18619527n,
878
+ morphoVaultV1AdapterFactory: 13096629n,
879
+ registryList: 13096853n,
880
+ chainlinkOracleFactory: 2741420n,
881
+ preLiquidationFactory: 2741993n,
882
+ },
883
+ [ChainId.EtherlinkMainnet]: {
884
+ morpho: 21047448n,
885
+ bundler3: {
886
+ bundler3: 21050766n,
887
+ generalAdapter1: 21050766n,
888
+ },
889
+ adaptiveCurveIrm: 21047448n,
890
+ publicAllocator: 21047448n,
891
+ metaMorphoFactory: 21050315n,
892
+ chainlinkOracleFactory: 21050315n,
893
+ preLiquidationFactory: 21050766n,
894
+ },
895
+ [ChainId.TacMainnet]: {
896
+ morpho: 853025n,
897
+ permit2: 553679n,
898
+ bundler3: {
899
+ bundler3: 978967n,
900
+ generalAdapter1: 978967n,
901
+ },
902
+ adaptiveCurveIrm: 853025n,
903
+ publicAllocator: 853025n,
904
+ metaMorphoFactory: 978654n,
905
+ chainlinkOracleFactory: 978654n,
906
+ preLiquidationFactory: 978967n,
907
+ },
908
+ [ChainId.LiskMainnet]: {
909
+ morpho: 15731231n,
910
+ bundler3: {
911
+ bundler3: 15731595n,
912
+ generalAdapter1: 15731595n,
913
+ },
914
+ adaptiveCurveIrm: 15731231n,
915
+ publicAllocator: 15731231n,
916
+ metaMorphoFactory: 15731333n,
917
+ chainlinkOracleFactory: 15731333n,
918
+ preLiquidationFactory: 15731595n,
919
+ },
920
+ [ChainId.HyperliquidMainnet]: {
921
+ morpho: 1988429n,
922
+ bundler3: {
923
+ bundler3: 1988956n,
924
+ generalAdapter1: 1988956n,
925
+ },
926
+ adaptiveCurveIrm: 1988429n,
927
+ publicAllocator: 1988429n,
928
+ metaMorphoFactory: 1988677n,
929
+ vaultV2Factory: 14188393n,
930
+ morphoMarketV1AdapterFactory: 14188393n,
931
+ morphoMarketV1AdapterV2Factory: 21460330n,
932
+ morphoVaultV1AdapterFactory: 14188393n,
933
+ registryList: 14188698n,
934
+ chainlinkOracleFactory: 1988677n,
935
+ preLiquidationFactory: 1988956n,
936
+ },
937
+ [ChainId.SeiMainnet]: {
938
+ morpho: 166036723n,
939
+ bundler3: {
940
+ bundler3: 168897284n,
941
+ generalAdapter1: 168897284n,
942
+ },
943
+ permit2: 118721449n,
944
+ adaptiveCurveIrm: 166036723n,
945
+ publicAllocator: 166036723n,
946
+ metaMorphoFactory: 168896078n,
947
+ chainlinkOracleFactory: 168896078n,
948
+ preLiquidationFactory: 168897284n,
949
+ usdc: 154131168n,
950
+ },
951
+ [ChainId.ZeroGMainnet]: {
952
+ morpho: 7526486n,
953
+ bundler3: {
954
+ bundler3: 7527649n,
955
+ generalAdapter1: 7527649n,
956
+ },
957
+ adaptiveCurveIrm: 7526486n,
958
+ publicAllocator: 7526486n,
959
+ metaMorphoFactory: 7526768n,
960
+ chainlinkOracleFactory: 7526768n,
961
+ preLiquidationFactory: 7527649n,
962
+ },
963
+ [ChainId.LineaMainnet]: {
964
+ morpho: 25072608n,
965
+ bundler3: {
966
+ bundler3: 25072853n,
967
+ generalAdapter1: 25072853n,
968
+ },
969
+ adaptiveCurveIrm: 25072608n,
970
+ publicAllocator: 25072608n,
971
+ metaMorphoFactory: 25072665n,
972
+ vaultV2Factory: 25072951n,
973
+ morphoMarketV1AdapterFactory: 25072951n,
974
+ morphoVaultV1AdapterFactory: 25072951n,
975
+ registryList: 25073088n,
976
+ chainlinkOracleFactory: 25072665n,
977
+ preLiquidationFactory: 25072853n,
978
+ },
979
+ [ChainId.MonadMainnet]: {
980
+ morpho: 31907457n,
981
+ bundler3: {
982
+ bundler3: 32321504n,
983
+ generalAdapter1: 32321504n,
984
+ },
985
+ adaptiveCurveIrm: 31907457n,
986
+ publicAllocator: 31907457n,
987
+ metaMorphoFactory: 32320327n,
988
+ vaultV2Factory: 32321811n,
989
+ morphoMarketV1AdapterFactory: 32321811n,
990
+ morphoVaultV1AdapterFactory: 32321811n,
991
+ registryList: 32322465n,
992
+ chainlinkOracleFactory: 32320327n,
993
+ preLiquidationFactory: 32321504n,
994
+ usdc: 22909616n,
995
+ },
996
+ [ChainId.StableMainnet]: {
997
+ morpho: 1504506n,
998
+ bundler3: {
999
+ bundler3: 1741861n,
1000
+ generalAdapter1: 1741861n,
1001
+ },
1002
+ adaptiveCurveIrm: 1504506n,
1003
+ publicAllocator: 1504506n,
1004
+ metaMorphoFactory: 1504774n,
1005
+ vaultV2Factory: 1506182n,
1006
+ morphoMarketV1AdapterFactory: 1506182n,
1007
+ morphoVaultV1AdapterFactory: 1506182n,
1008
+ registryList: 1506877n,
1009
+ chainlinkOracleFactory: 1504774n,
1010
+ preLiquidationFactory: 1741861n,
1011
+ },
1012
+ [ChainId.CronosMainnet]: {
1013
+ morpho: 38459435n,
1014
+ bundler3: {
1015
+ bundler3: 38460388n,
1016
+ generalAdapter1: 38460388n,
1017
+ },
1018
+ adaptiveCurveIrm: 38459435n,
1019
+ publicAllocator: 38459435n,
1020
+ metaMorphoFactory: 38459727n,
1021
+ vaultV2Factory: 38461643n,
1022
+ morphoMarketV1AdapterFactory: 38461643n,
1023
+ morphoVaultV1AdapterFactory: 38461643n,
1024
+ registryList: 38461812n,
1025
+ chainlinkOracleFactory: 38459727n,
1026
+ preLiquidationFactory: 38460388n,
1027
+ },
1028
+ [ChainId.CeloMainnet]: {
1029
+ morpho: 40249329n,
1030
+ bundler3: {
1031
+ bundler3: 41808392n,
1032
+ generalAdapter1: 41808392n,
1033
+ },
1034
+ adaptiveCurveIrm: 40249329n,
1035
+ publicAllocator: 40249329n,
1036
+ metaMorphoFactory: 40259931n,
1037
+ chainlinkOracleFactory: 40259931n,
1038
+ preLiquidationFactory: 41808392n,
1039
+ usdc: 23412006n,
1040
+ },
1041
+ [ChainId.AbstractMainnet]: {
1042
+ morpho: 13947713n,
1043
+ bundler3: {
1044
+ bundler3: 13949482n,
1045
+ generalAdapter1: 13949482n,
1046
+ },
1047
+ adaptiveCurveIrm: 13947713n,
1048
+ publicAllocator: 13947713n,
1049
+ metaMorphoFactory: 13949369n,
1050
+ chainlinkOracleFactory: 13949369n,
1051
+ preLiquidationFactory: 13949482n,
1052
+ usdc: 53247n,
1053
+ },
1054
+ [ChainId.BitlayerMainnet]: {
1055
+ morpho: 13516997n,
1056
+ bundler3: {
1057
+ bundler3: 13638316n,
1058
+ generalAdapter1: 13638316n,
1059
+ },
1060
+ adaptiveCurveIrm: 13516997n,
1061
+ publicAllocator: 13516997n,
1062
+ metaMorphoFactory: 13638155n,
1063
+ chainlinkOracleFactory: 13638155n,
1064
+ preLiquidationFactory: 13638316n,
1065
+ usdc: 4041175n,
1066
+ },
1067
+ [ChainId.BscMainnet]: {
1068
+ morpho: 54344680n,
1069
+ permit2: 25343783n,
1070
+ bundler3: {
1071
+ bundler3: 54346080n,
1072
+ generalAdapter1: 54346080n,
1073
+ },
1074
+ adaptiveCurveIrm: 54344680n,
1075
+ publicAllocator: 54344680n,
1076
+ metaMorphoFactory: 54344985n,
1077
+ chainlinkOracleFactory: 54344985n,
1078
+ preLiquidationFactory: 54346080n,
1079
+ },
1080
+ [ChainId.SoneiumMainnet]: {
1081
+ morpho: 6440817n,
1082
+ bundler3: {
1083
+ bundler3: 6443359n,
1084
+ generalAdapter1: 6443359n,
1085
+ },
1086
+ adaptiveCurveIrm: 6440817n,
1087
+ publicAllocator: 6440817n,
1088
+ metaMorphoFactory: 6440899n,
1089
+ chainlinkOracleFactory: 6440899n,
1090
+ preLiquidationFactory: 6443359n,
1091
+ },
1092
+ };
1093
+ export const getChainAddresses = (chainId) => {
1094
+ const chainAddresses = addresses[chainId];
1095
+ if (chainAddresses == null)
1096
+ throw new UnsupportedChainIdError(chainId);
1097
+ return chainAddresses;
1098
+ };
1099
+ /**
1100
+ * Assumptions:
1101
+ * - unwrapped token has same number of decimals than wrapped tokens.
1102
+ */
1103
+ const _unwrappedTokensMapping = {
1104
+ [ChainId.EthMainnet]: {
1105
+ [_addressesRegistry[ChainId.EthMainnet].wbIB01]: _addressesRegistry[ChainId.EthMainnet].bIB01,
1106
+ [_addressesRegistry[ChainId.EthMainnet].wbC3M]: _addressesRegistry[ChainId.EthMainnet].bC3M,
1107
+ [_addressesRegistry[ChainId.EthMainnet].wNative]: NATIVE_ADDRESS,
1108
+ [_addressesRegistry[ChainId.EthMainnet].stEth]: NATIVE_ADDRESS,
1109
+ [_addressesRegistry[ChainId.EthMainnet].wstEth]: _addressesRegistry[ChainId.EthMainnet].stEth,
1110
+ [_addressesRegistry[ChainId.EthMainnet]["stkcvxcrvUSDTWBTCWETH-morpho"]]: _addressesRegistry[ChainId.EthMainnet].crvUSDTWBTCWETH,
1111
+ [_addressesRegistry[ChainId.EthMainnet]["stkcvxcrvUSDCWBTCWETH-morpho"]]: _addressesRegistry[ChainId.EthMainnet].crvUSDCWBTCWETH,
1112
+ [_addressesRegistry[ChainId.EthMainnet]["stkcvxcrvCRVUSDTBTCWSTETH-morpho"]]: _addressesRegistry[ChainId.EthMainnet].crvCRVUSDTBTCWSTETH,
1113
+ [_addressesRegistry[ChainId.EthMainnet]["stkcvxTryLSD-morpho"]]: _addressesRegistry[ChainId.EthMainnet].tryLSD,
1114
+ [_addressesRegistry[ChainId.EthMainnet]["stkcvxcrvUSDETHCRV-morpho"]]: _addressesRegistry[ChainId.EthMainnet].crvUSDETHCRV,
1115
+ [_addressesRegistry[ChainId.EthMainnet]["stkcvx2BTC-f-morpho"]]: _addressesRegistry[ChainId.EthMainnet]["2BTC-f"],
1116
+ },
1117
+ [ChainId.BaseMainnet]: {
1118
+ [_addressesRegistry[ChainId.BaseMainnet].wNative]: NATIVE_ADDRESS,
1119
+ [_addressesRegistry[ChainId.BaseMainnet].verUsdc]: _addressesRegistry[ChainId.BaseMainnet].usdc,
1120
+ [_addressesRegistry[ChainId.BaseMainnet].testUsdc]: _addressesRegistry[ChainId.BaseMainnet].usdc,
1121
+ },
1122
+ [ChainId.PolygonMainnet]: {
1123
+ [_addressesRegistry[ChainId.PolygonMainnet].wNative]: NATIVE_ADDRESS,
1124
+ },
1125
+ [ChainId.OptimismMainnet]: {
1126
+ [_addressesRegistry[ChainId.OptimismMainnet].wNative]: NATIVE_ADDRESS,
1127
+ },
1128
+ [ChainId.WorldChainMainnet]: {
1129
+ [_addressesRegistry[ChainId.WorldChainMainnet].wNative]: NATIVE_ADDRESS,
1130
+ },
1131
+ [ChainId.ScrollMainnet]: {
1132
+ [_addressesRegistry[ChainId.ScrollMainnet].wNative]: NATIVE_ADDRESS,
1133
+ },
1134
+ [ChainId.InkMainnet]: {
1135
+ [_addressesRegistry[ChainId.InkMainnet].wNative]: NATIVE_ADDRESS,
1136
+ },
1137
+ [ChainId.Unichain]: {
1138
+ [_addressesRegistry[ChainId.Unichain].wNative]: NATIVE_ADDRESS,
1139
+ },
1140
+ [ChainId.SonicMainnet]: {
1141
+ [_addressesRegistry[ChainId.SonicMainnet].wNative]: NATIVE_ADDRESS,
1142
+ },
1143
+ [ChainId.HemiMainnet]: {
1144
+ [_addressesRegistry[ChainId.HemiMainnet].wNative]: NATIVE_ADDRESS,
1145
+ },
1146
+ [ChainId.ModeMainnet]: {
1147
+ [_addressesRegistry[ChainId.ModeMainnet].wNative]: NATIVE_ADDRESS,
1148
+ },
1149
+ [ChainId.CornMainnet]: {
1150
+ [_addressesRegistry[ChainId.CornMainnet].wNative]: NATIVE_ADDRESS,
1151
+ },
1152
+ [ChainId.PlumeMainnet]: {
1153
+ [_addressesRegistry[ChainId.PlumeMainnet].wNative]: NATIVE_ADDRESS,
1154
+ },
1155
+ [ChainId.CampMainnet]: {
1156
+ [_addressesRegistry[ChainId.CampMainnet].wNative]: NATIVE_ADDRESS,
1157
+ },
1158
+ [ChainId.KatanaMainnet]: {
1159
+ [_addressesRegistry[ChainId.KatanaMainnet].wNative]: NATIVE_ADDRESS,
1160
+ },
1161
+ [ChainId.ArbitrumMainnet]: {
1162
+ [_addressesRegistry[ChainId.ArbitrumMainnet].wNative]: NATIVE_ADDRESS,
1163
+ },
1164
+ [ChainId.EtherlinkMainnet]: {
1165
+ [_addressesRegistry[ChainId.EtherlinkMainnet].wNative]: NATIVE_ADDRESS,
1166
+ },
1167
+ [ChainId.TacMainnet]: {
1168
+ [_addressesRegistry[ChainId.TacMainnet].wNative]: NATIVE_ADDRESS,
1169
+ },
1170
+ [ChainId.LiskMainnet]: {
1171
+ [_addressesRegistry[ChainId.LiskMainnet].wNative]: NATIVE_ADDRESS,
1172
+ },
1173
+ [ChainId.HyperliquidMainnet]: {
1174
+ [_addressesRegistry[ChainId.HyperliquidMainnet].wNative]: NATIVE_ADDRESS,
1175
+ },
1176
+ [ChainId.SeiMainnet]: {
1177
+ [_addressesRegistry[ChainId.SeiMainnet].wNative]: NATIVE_ADDRESS,
1178
+ },
1179
+ [ChainId.ZeroGMainnet]: {
1180
+ [_addressesRegistry[ChainId.ZeroGMainnet].wNative]: NATIVE_ADDRESS,
1181
+ },
1182
+ [ChainId.LineaMainnet]: {
1183
+ [_addressesRegistry[ChainId.LineaMainnet].wNative]: NATIVE_ADDRESS,
1184
+ },
1185
+ [ChainId.MonadMainnet]: {
1186
+ [_addressesRegistry[ChainId.MonadMainnet].wNative]: NATIVE_ADDRESS,
1187
+ },
1188
+ [ChainId.CronosMainnet]: {
1189
+ [_addressesRegistry[ChainId.CronosMainnet].wNative]: NATIVE_ADDRESS,
1190
+ },
1191
+ [ChainId.AbstractMainnet]: {
1192
+ [_addressesRegistry[ChainId.AbstractMainnet].wNative]: NATIVE_ADDRESS,
1193
+ },
1194
+ [ChainId.BitlayerMainnet]: {
1195
+ [_addressesRegistry[ChainId.BitlayerMainnet].wNative]: NATIVE_ADDRESS,
1196
+ },
1197
+ [ChainId.BscMainnet]: {
1198
+ [_addressesRegistry[ChainId.BscMainnet].wNative]: NATIVE_ADDRESS,
1199
+ },
1200
+ [ChainId.SoneiumMainnet]: {
1201
+ [_addressesRegistry[ChainId.SoneiumMainnet].wNative]: NATIVE_ADDRESS,
1202
+ },
1203
+ };
1204
+ export function getUnwrappedToken(wrappedToken, chainId) {
1205
+ return unwrappedTokensMapping[chainId]?.[wrappedToken];
1206
+ }
1207
+ /**
1208
+ * The registry of all known ERC20Wrapper tokens.
1209
+ */
1210
+ export const erc20WrapperTokens = {};
1211
+ /**
1212
+ * The registry of all known PermissionedERC20Wrapper with a `hasPermission` getter.
1213
+ * All permissioned wrapper tokens are considered ERC20Wrapper and automatically added to the erc20WrapperTokens registry.
1214
+ */
1215
+ export const permissionedWrapperTokens = {
1216
+ [ChainId.BaseMainnet]: new Set([
1217
+ _addressesRegistry[ChainId.BaseMainnet].testUsdc,
1218
+ ]),
1219
+ };
1220
+ /**
1221
+ * The registry of all known permissioned wrapped Backed tokens.
1222
+ * All permissioned Backed tokens are considered ERC20Wrapper and automatically added to the erc20WrapperTokens registry.
1223
+ */
1224
+ export const permissionedBackedTokens = {
1225
+ [ChainId.EthMainnet]: new Set([
1226
+ _addressesRegistry[ChainId.EthMainnet].wbIB01,
1227
+ _addressesRegistry[ChainId.EthMainnet].wbC3M,
1228
+ ]),
1229
+ };
1230
+ /**
1231
+ * The registry of all known permissioned wrapped tokens that require a Coinbase attestation.
1232
+ * All permissioned Coinbase tokens are considered PermissionedERC20Wrapper and automatically added to the permissionedWrapperTokens registry.
1233
+ */
1234
+ export const permissionedCoinbaseTokens = {
1235
+ [ChainId.BaseMainnet]: new Set([
1236
+ _addressesRegistry[ChainId.BaseMainnet].verUsdc,
1237
+ ]),
1238
+ };
1239
+ export const getPermissionedCoinbaseTokens = (chainId) => permissionedCoinbaseTokens[chainId] ?? new Set();
1240
+ entries(permissionedBackedTokens).forEach(([chainId, tokens]) => {
1241
+ tokens.forEach((token) => (erc20WrapperTokens[chainId] ??= new Set()).add(token));
1242
+ });
1243
+ entries(permissionedCoinbaseTokens).forEach(([chainId, tokens]) => {
1244
+ tokens.forEach((token) => (permissionedWrapperTokens[chainId] ??= new Set()).add(token));
1245
+ });
1246
+ entries(permissionedWrapperTokens).forEach(([chainId, tokens]) => {
1247
+ tokens.forEach((token) => (erc20WrapperTokens[chainId] ??= new Set()).add(token));
1248
+ });
1249
+ /** /!\ These tokens can not be listed in `erc20WrapperTokens` because the following specs are different:
1250
+ * - calling `depositFor` supplies on blue instead of minting wrapped token to the user
1251
+ */
1252
+ export const convexWrapperTokens = {
1253
+ [ChainId.EthMainnet]: new Set([
1254
+ _addressesRegistry[ChainId.EthMainnet]["stkcvxcrvUSDTWBTCWETH-morpho"],
1255
+ _addressesRegistry[ChainId.EthMainnet]["stkcvxcrvUSDCWBTCWETH-morpho"],
1256
+ _addressesRegistry[ChainId.EthMainnet]["stkcvxcrvCRVUSDTBTCWSTETH-morpho"],
1257
+ _addressesRegistry[ChainId.EthMainnet]["stkcvxTryLSD-morpho"],
1258
+ _addressesRegistry[ChainId.EthMainnet]["stkcvxcrvUSDETHCRV-morpho"],
1259
+ _addressesRegistry[ChainId.EthMainnet]["stkcvx2BTC-f-morpho"],
1260
+ ]),
1261
+ };
1262
+ export let addressesRegistry = deepFreeze(_addressesRegistry);
1263
+ export let addresses = addressesRegistry;
1264
+ export let deployments = deepFreeze(_deployments);
1265
+ export let unwrappedTokensMapping = deepFreeze(_unwrappedTokensMapping);
1266
+ /**
1267
+ * Registers custom addresses and unwrapped token mappings to extend
1268
+ * the default address registry (on ewisting or unknown chains).
1269
+ *
1270
+ * @param options - Optional configuration object
1271
+ * @param options.unwrappedTokens - A mapping of chain IDs to token address maps,
1272
+ * where each entry maps wrapped tokens to their unwrapped equivalents.
1273
+ * @param options.addresses - Custom address entries to merge into the default registry.
1274
+ * Can be a subset of `ChainAddresses` if chain is already known.
1275
+ * Must provide all required addresses if chain is unknown.
1276
+ * @param options.deployments - Custom deployment entries to merge into the default registry.
1277
+ * Can be a subset of `ChainDeployments` if chain is already known.
1278
+ * Must provide all required deployments if chain is unknown.
1279
+ *
1280
+ * @throws {Error} If attempting to override an existing address.
1281
+ *
1282
+ * @example
1283
+ * ```ts
1284
+ * registerCustomAddresses({
1285
+ * addresses: {
1286
+ * 1: { contract: "0xabc..." }
1287
+ * },
1288
+ * unwrappedTokens: {
1289
+ * 1: { "0xWrapped": "0xUnwrapped" }
1290
+ * }
1291
+ * });
1292
+ * ```
1293
+ */
1294
+ export function registerCustomAddresses({ unwrappedTokens, addresses: customAddresses, deployments: customDeployments, } = {}) {
1295
+ const customizer = (type) =>
1296
+ // biome-ignore lint/suspicious/noExplicitAny: type is not trivial and not important here
1297
+ (objValue, srcValue, key) => {
1298
+ if (objValue !== undefined &&
1299
+ !isPlainObject(objValue) &&
1300
+ objValue !== srcValue)
1301
+ throw new Error(`Cannot override existing ${type}: ${key}`);
1302
+ };
1303
+ if (customAddresses)
1304
+ addresses = addressesRegistry = deepFreeze(mergeWith({}, addressesRegistry, customAddresses, customizer("address")));
1305
+ if (customDeployments)
1306
+ deployments = deepFreeze(mergeWith({}, deployments, customDeployments, customizer("deployment")));
1307
+ if (unwrappedTokens)
1308
+ unwrappedTokensMapping = deepFreeze(mergeWith({}, unwrappedTokensMapping, unwrappedTokens, customizer("unwrapped token")));
1309
+ }