@1delta/margin-fetcher 0.0.35 → 0.0.37

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 (89) hide show
  1. package/dist/abis/morpho/lens.d.ts +38 -15
  2. package/dist/abis/morpho/lens.d.ts.map +1 -1
  3. package/dist/abis/morpho/lens.js +30 -20
  4. package/dist/flash-liquidity/assets.d.ts +2 -2
  5. package/dist/flash-liquidity/assets.d.ts.map +1 -1
  6. package/dist/flash-liquidity/assets.js +2 -2
  7. package/dist/flash-liquidity/fetchLiquidity.d.ts.map +1 -1
  8. package/dist/flash-liquidity/fetchLiquidity.js +2 -2
  9. package/dist/lending/aave-v2-type/misc.d.ts +3 -9
  10. package/dist/lending/aave-v2-type/misc.d.ts.map +1 -1
  11. package/dist/lending/addresses/contracts.d.ts +0 -1
  12. package/dist/lending/addresses/contracts.d.ts.map +1 -1
  13. package/dist/lending/addresses/contracts.js +0 -17
  14. package/dist/lending/fetchLender.d.ts.map +1 -1
  15. package/dist/lending/fetchLender.js +24 -5
  16. package/dist/lending/fetchLenderAll.d.ts.map +1 -1
  17. package/dist/lending/fetchLenderAll.js +15 -3
  18. package/dist/lending/meta/index.js +1 -1
  19. package/dist/lending/morpho/chainsConfigs.d.ts +21 -0
  20. package/dist/lending/morpho/chainsConfigs.d.ts.map +1 -0
  21. package/dist/lending/morpho/chainsConfigs.js +234 -0
  22. package/dist/lending/morpho/constants/markets.d.ts +4 -0
  23. package/dist/lending/morpho/constants/markets.d.ts.map +1 -0
  24. package/dist/lending/morpho/constants/markets.js +63 -0
  25. package/dist/lending/morpho/convertPublic.d.ts.map +1 -1
  26. package/dist/lending/morpho/convertPublic.js +2 -13
  27. package/dist/lending/morpho/getMarketsFromChain.d.ts +8 -0
  28. package/dist/lending/morpho/getMarketsFromChain.d.ts.map +1 -0
  29. package/dist/lending/morpho/getMarketsFromChain.js +318 -0
  30. package/dist/lending/morpho/publicCallBuild.d.ts +5 -0
  31. package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -1
  32. package/dist/lending/morpho/publicCallBuild.js +16 -0
  33. package/dist/lending/morpho/utils/evmParser.d.ts +22 -0
  34. package/dist/lending/morpho/utils/evmParser.d.ts.map +1 -0
  35. package/dist/lending/morpho/utils/evmParser.js +103 -0
  36. package/dist/lending/morpho/utils/mathLib.d.ts +125 -0
  37. package/dist/lending/morpho/utils/mathLib.d.ts.map +1 -0
  38. package/dist/lending/morpho/utils/mathLib.js +334 -0
  39. package/dist/lending/morpho/utils/parsers.d.ts +10 -0
  40. package/dist/lending/morpho/utils/parsers.d.ts.map +1 -0
  41. package/dist/lending/morpho/utils/parsers.js +37 -0
  42. package/dist/lending/user-data/abis.d.ts +37 -14
  43. package/dist/lending/user-data/abis.d.ts.map +1 -1
  44. package/dist/lending/user-data/morpho/userCallBuild.d.ts +3 -0
  45. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
  46. package/dist/lending/user-data/morpho/userCallBuild.js +9 -8
  47. package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -1
  48. package/dist/lending-pairs/computeLendingPairs.js +11 -7
  49. package/dist/prices/main-prices/fetchOracleData.d.ts +0 -2
  50. package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
  51. package/dist/prices/main-prices/fetchOracleData.js +6 -24
  52. package/dist/utils/constants.d.ts +0 -23
  53. package/dist/utils/constants.d.ts.map +1 -1
  54. package/dist/utils/constants.js +4 -23
  55. package/dist/utils/index.d.ts +0 -1
  56. package/dist/utils/index.d.ts.map +1 -1
  57. package/dist/utils/index.js +2 -10
  58. package/dist/utils/parsing.d.ts +2 -0
  59. package/dist/utils/parsing.d.ts.map +1 -1
  60. package/dist/utils/parsing.js +20 -0
  61. package/dist/yields/index.d.ts.map +1 -1
  62. package/dist/yields/index.js +17 -1
  63. package/package.json +2 -2
  64. package/src/abis/morpho/lens.ts +40 -30
  65. package/src/flash-liquidity/assets.ts +3 -2
  66. package/src/flash-liquidity/fetchLiquidity.ts +3 -2
  67. package/src/lending/addresses/contracts.ts +0 -20
  68. package/src/lending/fetchLender.ts +29 -4
  69. package/src/lending/fetchLenderAll.ts +32 -12
  70. package/src/lending/meta/index.ts +1 -1
  71. package/src/lending/morpho/chainsConfigs.ts +268 -0
  72. package/src/lending/morpho/constants/markets.ts +64 -0
  73. package/src/lending/morpho/convertPublic.ts +2 -14
  74. package/src/lending/morpho/getMarketsFromChain.ts +402 -0
  75. package/src/lending/morpho/publicCallBuild.ts +17 -0
  76. package/src/lending/morpho/utils/evmParser.ts +122 -0
  77. package/src/lending/morpho/utils/mathLib.ts +434 -0
  78. package/src/lending/morpho/utils/parsers.ts +53 -0
  79. package/src/lending/user-data/morpho/userCallBuild.ts +9 -8
  80. package/src/lending-pairs/computeLendingPairs.ts +15 -10
  81. package/src/prices/main-prices/fetchOracleData.ts +10 -36
  82. package/src/utils/constants.ts +43 -61
  83. package/src/utils/index.ts +3 -10
  84. package/src/utils/parsing.ts +32 -0
  85. package/src/yields/index.ts +18 -0
  86. package/test/flashLiquidity.test.ts +27 -20
  87. package/test/lenderData.test.ts +7 -4
  88. package/test/mainPrices.test.ts +3 -10
  89. package/test/mbChain.test.ts +44 -0
@@ -1,16 +1,39 @@
1
- export declare const MorphoLensAbi: {
2
- inputs: {
3
- internalType: string;
4
- name: string;
5
- type: string;
6
- }[];
7
- name: string;
8
- outputs: {
9
- internalType: string;
10
- name: string;
11
- type: string;
12
- }[];
13
- stateMutability: string;
14
- type: string;
15
- }[];
1
+ export declare const MorphoLensAbi: readonly [{
2
+ readonly inputs: readonly [{
3
+ readonly internalType: "bytes32[]";
4
+ readonly name: "marketsIds";
5
+ readonly type: "bytes32[]";
6
+ }, {
7
+ readonly internalType: "address";
8
+ readonly name: "user";
9
+ readonly type: "address";
10
+ }, {
11
+ readonly internalType: "address";
12
+ readonly name: "morpho";
13
+ readonly type: "address";
14
+ }];
15
+ readonly name: "getUserDataCompact";
16
+ readonly outputs: readonly [{
17
+ readonly internalType: "bytes";
18
+ readonly name: "data";
19
+ readonly type: "bytes";
20
+ }];
21
+ readonly stateMutability: "view";
22
+ readonly type: "function";
23
+ }, {
24
+ readonly name: "getMarketDataCompact";
25
+ readonly type: "function";
26
+ readonly stateMutability: "view";
27
+ readonly inputs: readonly [{
28
+ readonly type: "address";
29
+ readonly name: "morpho";
30
+ }, {
31
+ readonly type: "bytes32[]";
32
+ readonly name: "marketsIds";
33
+ }];
34
+ readonly outputs: readonly [{
35
+ readonly type: "bytes";
36
+ readonly name: "data";
37
+ }];
38
+ }];
16
39
  //# sourceMappingURL=lens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lens.d.ts","sourceRoot":"","sources":["../../../src/abis/morpho/lens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;GA8BzB,CAAA"}
1
+ {"version":3,"file":"lens.d.ts","sourceRoot":"","sources":["../../../src/abis/morpho/lens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwChB,CAAA"}
@@ -1,31 +1,41 @@
1
1
  export const MorphoLensAbi = [
2
2
  {
3
- "inputs": [
3
+ inputs: [
4
4
  {
5
- "internalType": "bytes32[]",
6
- "name": "marketsIds",
7
- "type": "bytes32[]"
5
+ internalType: 'bytes32[]',
6
+ name: 'marketsIds',
7
+ type: 'bytes32[]',
8
8
  },
9
9
  {
10
- "internalType": "address",
11
- "name": "user",
12
- "type": "address"
10
+ internalType: 'address',
11
+ name: 'user',
12
+ type: 'address',
13
13
  },
14
14
  {
15
- "internalType": "address",
16
- "name": "morpho",
17
- "type": "address"
18
- }
15
+ internalType: 'address',
16
+ name: 'morpho',
17
+ type: 'address',
18
+ },
19
19
  ],
20
- "name": "getUserDataCompact",
21
- "outputs": [
20
+ name: 'getUserDataCompact',
21
+ outputs: [
22
22
  {
23
- "internalType": "bytes",
24
- "name": "data",
25
- "type": "bytes"
26
- }
23
+ internalType: 'bytes',
24
+ name: 'data',
25
+ type: 'bytes',
26
+ },
27
+ ],
28
+ stateMutability: 'view',
29
+ type: 'function',
30
+ },
31
+ {
32
+ name: 'getMarketDataCompact',
33
+ type: 'function',
34
+ stateMutability: 'view',
35
+ inputs: [
36
+ { type: 'address', name: 'morpho' },
37
+ { type: 'bytes32[]', name: 'marketsIds' },
27
38
  ],
28
- "stateMutability": "view",
29
- "type": "function"
30
- }
39
+ outputs: [{ type: 'bytes', name: 'data' }],
40
+ },
31
41
  ];
@@ -1,4 +1,4 @@
1
- export declare const RELEVANT_LENDING_ASSETS: {
1
+ export declare const RELEVANT_LENDING_ASSETS: () => {
2
2
  [chainId: string]: string[];
3
3
  };
4
4
  interface PoolData {
@@ -8,7 +8,7 @@ interface PoolData {
8
8
  export declare const RELEVANT_BALANCER_V2_FORKS: {
9
9
  [chainId: string]: PoolData[];
10
10
  };
11
- export declare const RELEVANT_MORPHOB_FORKS: {
11
+ export declare const RELEVANT_MORPHOB_FORKS: () => {
12
12
  [chainId: string]: PoolData[];
13
13
  };
14
14
  export declare const RELEVANT_BALANCER_V3_FORKS: {
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/flash-liquidity/assets.ts"],"names":[],"mappings":"AA+CA,eAAO,MAAM,uBAAuB;;CAA6B,CAAA;AAEjE,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAmBD,eAAO,MAAM,0BAA0B;;CACO,CAAA;AAE9C,eAAO,MAAM,sBAAsB;;CAA2C,CAAA;AAE9E,eAAO,MAAM,0BAA0B;;CAGtC,CAAA;AAED,eAAO,MAAM,yBAAyB;;CAGrC,CAAA"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/flash-liquidity/assets.ts"],"names":[],"mappings":"AA+CA,eAAO,MAAM,uBAAuB;;CAAmC,CAAA;AAEvE,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAmBD,eAAO,MAAM,0BAA0B;;CACO,CAAA;AAE9C,eAAO,MAAM,sBAAsB;;CACO,CAAA;AAE1C,eAAO,MAAM,0BAA0B;;CAGtC,CAAA;AAED,eAAO,MAAM,yBAAyB;;CAGrC,CAAA"}
@@ -35,7 +35,7 @@ function createAssetArrayPerChain() {
35
35
  });
36
36
  return assetsPerChain;
37
37
  }
38
- export const RELEVANT_LENDING_ASSETS = createAssetArrayPerChain();
38
+ export const RELEVANT_LENDING_ASSETS = () => createAssetArrayPerChain();
39
39
  function createSimpleArrayPerChain(fork, field = undefined) {
40
40
  let pools = {};
41
41
  Object.entries(fork ?? {}).forEach(([b2, data]) => {
@@ -49,6 +49,6 @@ function createSimpleArrayPerChain(fork, field = undefined) {
49
49
  return pools;
50
50
  }
51
51
  export const RELEVANT_BALANCER_V2_FORKS = createSimpleArrayPerChain(BALANCER_V2_FORKS);
52
- export const RELEVANT_MORPHOB_FORKS = createSimpleArrayPerChain(morphoPools());
52
+ export const RELEVANT_MORPHOB_FORKS = () => createSimpleArrayPerChain(morphoPools());
53
53
  export const RELEVANT_BALANCER_V3_FORKS = createSimpleArrayPerChain(BALANCER_V3_FORKS, 'vault');
54
54
  export const RELEVANT_UNISWAP_V4_FORKS = createSimpleArrayPerChain(UNISWAP_V4_FORKS, 'pm');
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLiquidity.d.ts","sourceRoot":"","sources":["../../src/flash-liquidity/fetchLiquidity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAE,uBAAuB,EAAgB,MAAM,SAAS,CAAA;AAsB/D,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,sBAAsB,EACtC,IAAI,GAAE,SAAc,oCA0SrB"}
1
+ {"version":3,"file":"fetchLiquidity.d.ts","sourceRoot":"","sources":["../../src/flash-liquidity/fetchLiquidity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAE,uBAAuB,EAAgB,MAAM,SAAS,CAAA;AAuB/D,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,sBAAsB,EACtC,IAAI,GAAE,SAAc,oCA0SrB"}
@@ -43,8 +43,8 @@ export async function fetchFlashLiquidityForChain(chain, multicallRetry, list =
43
43
  ];
44
44
  });
45
45
  // @ts-ignore
46
- const morphoBs = RELEVANT_MORPHOB_FORKS[chain] ?? [];
47
- const otherAssets = RELEVANT_LENDING_ASSETS[chain] ?? [];
46
+ const morphoBs = RELEVANT_MORPHOB_FORKS()?.[chain] ?? [];
47
+ const otherAssets = RELEVANT_LENDING_ASSETS()?.[chain] ?? [];
48
48
  let morphoCalls = [];
49
49
  if (morphoBs && morphoBs.length > 0) {
50
50
  morphoBs.forEach((bFork) => {
@@ -1,14 +1,8 @@
1
- import { Chain } from '@1delta/chain-registry';
2
- export declare const AURELIUS_REWARD_ASSETS: ({
1
+ export declare const AURELIUS_REWARD_ASSETS: {
2
+ chainId: string;
3
3
  decimals: number;
4
4
  name: string;
5
5
  address: string;
6
6
  symbol: string;
7
- } | {
8
- chainId: Chain;
9
- address: string;
10
- decimals: number;
11
- symbol: string;
12
- name: string;
13
- })[];
7
+ }[];
14
8
  //# sourceMappingURL=misc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/lending/aave-v2-type/misc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,eAAO,MAAM,sBAAsB;;;;;;;;;;;IASlC,CAAA"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/lending/aave-v2-type/misc.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB;;;;;;GASlC,CAAA"}
@@ -1,5 +1,4 @@
1
1
  import { Lender } from "@1delta/lender-registry";
2
- export declare function getAaveTypeOracleAddress(chainId: string, lender: Lender): any;
3
2
  export declare function getAaveTypeIncentivesControllerAddress(chainId: string, lender: Lender): any;
4
3
  export declare function getAaveTypeMultiFeeDistribution(chainId: string, lender: Lender): any;
5
4
  //# sourceMappingURL=contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/contracts.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAgBvE;AAID,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAgBrF;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAM9E"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/contracts.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAgBrF;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAM9E"}
@@ -6,23 +6,6 @@ import { addressesMeridianCore } from "./meridian";
6
6
  import { addressesTakoTakoCore } from "./takotako";
7
7
  import { zeroAddress } from "viem";
8
8
  import { Lender } from "@1delta/lender-registry";
9
- export function getAaveTypeOracleAddress(chainId, lender) {
10
- switch (lender) {
11
- // @ts-ignore
12
- case Lender.AAVE_V2: return addressesAaveV2Core.AaveOracle[chainId];
13
- // @ts-ignore
14
- case Lender.AAVE_V3: return addressesAaveCore.AaveOracle[chainId];
15
- // @ts-ignore
16
- case Lender.LENDLE: return addressesLendleCore.AaveOracle[chainId];
17
- // @ts-ignore
18
- case Lender.AURELIUS: return addressesAureliusCore.AaveOracle[chainId];
19
- // @ts-ignore
20
- case Lender.MERIDIAN: return addressesMeridianCore.AaveOracle[chainId];
21
- // @ts-ignore
22
- case Lender.TAKOTAKO: return addressesTakoTakoCore.AaveOracle[chainId];
23
- default: return zeroAddress;
24
- }
25
- }
26
9
  export function getAaveTypeIncentivesControllerAddress(chainId, lender) {
27
10
  switch (lender) {
28
11
  // @ts-ignore
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLender.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAWnE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA+E1C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAExC,KACA,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAqDnC,CAAA"}
1
+ {"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLender.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAWnE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA8F1C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAExC,KACA,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA6DnC,CAAA"}
@@ -12,7 +12,7 @@ import { InitLensAbi } from '../abis/init/InitLens';
12
12
  import { CometAbi } from '../abis/compound-v3/Comet';
13
13
  import { CometExtAbi } from '../abis/compound-v3/CometExt';
14
14
  import { IrgetterAbi } from '../abis/compound-v3/IrGetter';
15
- import { isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isInit, } from '../utils';
15
+ import { isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isInit, isMorphoType, isMultiMarket, } from '../utils';
16
16
  import { buildAaveV2StyleLenderReserveCall } from './aave-v2-type/publicCallBuild';
17
17
  import { buildAaveV3StyleLenderReserveCall } from './aave-v3-type/publicCallBuild';
18
18
  import { buildInitStyleLenderReserveCall } from './init/publicCallBuild';
@@ -25,6 +25,9 @@ import { AavePoolLegacyAbi } from '../abis/aave-v3/AavePoolLegacy';
25
25
  import { AavePoolDataProviderLegacyAbi } from '../abis/aave-v3/AavePoolDataProviderLegacy';
26
26
  import { Lender } from '@1delta/lender-registry';
27
27
  import { YLDRProtocolDataProviderAbi } from '../abis/aave-v2/YLDR';
28
+ import { buildMorphoCall } from './morpho/publicCallBuild';
29
+ import { getMorphoMarketDataConverter } from './morpho/getMarketsFromChain';
30
+ import { MorphoLensAbi } from '../abis/morpho/lens';
28
31
  function buildLenderCall(chainId, lender) {
29
32
  if (isAaveV2Type(lender))
30
33
  return buildAaveV2StyleLenderReserveCall(chainId, lender);
@@ -34,6 +37,8 @@ function buildLenderCall(chainId, lender) {
34
37
  return buildCompoundV3StyleLenderReserveCall(chainId, lender);
35
38
  if (isInit(lender))
36
39
  return buildInitStyleLenderReserveCall(chainId, lender);
40
+ if (isMorphoType(lender))
41
+ return buildMorphoCall(chainId);
37
42
  return [];
38
43
  }
39
44
  function getLenderDataConverter(lender, chainId, prices, additionalYields, tokenList = {}) {
@@ -45,6 +50,8 @@ function getLenderDataConverter(lender, chainId, prices, additionalYields, token
45
50
  return getCompoundV3ReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
46
51
  if (isInit(lender))
47
52
  return getInitReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
53
+ if (isMorphoType(lender))
54
+ return getMorphoMarketDataConverter(lender, chainId, prices, additionalYields, tokenList);
48
55
  return [() => null, 0];
49
56
  }
50
57
  const getAbi = (lender) => {
@@ -65,6 +72,8 @@ const getAbi = (lender) => {
65
72
  return [...IrgetterAbi, ...CometAbi, ...CometExtAbi];
66
73
  if (isInit(lender))
67
74
  return InitLensAbi;
75
+ if (isMorphoType(lender))
76
+ return MorphoLensAbi;
68
77
  return [];
69
78
  };
70
79
  export const getLenderPublicData = async (chainId, lenders, prices, additionalYields, multicallRetry, tokenList = async () => {
@@ -84,18 +93,28 @@ export const getLenderPublicData = async (chainId, lenders, prices, additionalYi
84
93
  await tokenList(),
85
94
  ]);
86
95
  const invalidLenders = [];
87
- const lenderData = {};
96
+ let lenderData = {};
88
97
  let currentSlice = 0;
89
98
  for (const lender of lenders) {
90
99
  const [converter, sliceLength] = getLenderDataConverter(lender, chainId, prices, additionalYields, list);
91
100
  if (sliceLength > 0) {
92
101
  const data = rawResults.slice(currentSlice, currentSlice + sliceLength);
93
102
  const convertedData = converter(data);
94
- if (!convertedData) {
95
- invalidLenders.push(lender);
103
+ if (isMultiMarket(lender)) {
104
+ if (!convertedData) {
105
+ invalidLenders.push(lender);
106
+ }
107
+ else {
108
+ lenderData = { ...lenderData, ...convertedData };
109
+ }
96
110
  }
97
111
  else {
98
- lenderData[lender] = convertedData;
112
+ if (!convertedData) {
113
+ invalidLenders.push(lender);
114
+ }
115
+ else {
116
+ lenderData[lender] = convertedData;
117
+ }
99
118
  }
100
119
  currentSlice += sliceLength;
101
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLenderAll.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI1C,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAY,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAC1C,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAcnC,CAAA"}
1
+ {"version":3,"file":"fetchLenderAll.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAa1C,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAY,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAC1C,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAyBnC,CAAA"}
@@ -1,10 +1,22 @@
1
1
  import { Lender } from '@1delta/lender-registry';
2
2
  import { getLenderPublicData } from './fetchLender';
3
3
  import { getLenderPublicDataViaApi } from './fetchLenderExt';
4
- const LENDERS_VIA_API = [Lender.MORPHO_BLUE];
4
+ import { Chain } from '@1delta/chain-registry';
5
+ function lenderCanUseApi(lender, chainId) {
6
+ if (lender === Lender.MORPHO_BLUE) {
7
+ if (chainId === Chain.HYPEREVM)
8
+ return false;
9
+ if (chainId === Chain.OP_MAINNET)
10
+ return false;
11
+ if (chainId === Chain.SONEIUM)
12
+ return false;
13
+ return true;
14
+ }
15
+ return false;
16
+ }
5
17
  export const getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields, multicallRetry, tokenList) => {
6
- const lendersApi = lenders.filter(l => LENDERS_VIA_API.includes(l));
7
- const lendersOnChain = lenders.filter(l => !LENDERS_VIA_API.includes(l));
18
+ const lendersApi = lenders.filter((l) => lenderCanUseApi(l, chainId));
19
+ const lendersOnChain = lenders.filter((l) => !lenderCanUseApi(l, chainId));
8
20
  const onChain = getLenderPublicData(chainId, lendersOnChain, prices, additionalYields, multicallRetry, tokenList);
9
21
  const api = getLenderPublicDataViaApi(chainId, lendersApi, prices, additionalYields, tokenList);
10
22
  const [onChainRes, apiRes] = await Promise.all([onChain, api]);
@@ -1,5 +1,5 @@
1
1
  import { initializeChainData, initializeLenderData } from '@1delta/data-sdk';
2
- const baseUrl = 'https://raw.githubusercontent.com/1delta-DAO/lender-metadata/multi-fetch';
2
+ const baseUrl = 'https://raw.githubusercontent.com/1delta-DAO/lender-metadata/main';
3
3
  const aavePools = baseUrl + '/config/aave-pools.json';
4
4
  const aaveOracles = baseUrl + '/data/aave-oracles.json';
5
5
  const morphoOracles = baseUrl + '/data/morpho-oracles.json';
@@ -0,0 +1,21 @@
1
+ import { Address } from 'viem';
2
+ type MorphoContractName = 'Morpho' | 'MetaMorphoFactory' | 'MetaMorphoV1_1Factory';
3
+ type OptionalContracts = 'MetaMorphoFactory';
4
+ type RequiredContracts = Exclude<MorphoContractName, OptionalContracts>;
5
+ type DeploymentDetails = {
6
+ address: Address;
7
+ fromBlock: bigint;
8
+ };
9
+ export type Deployments = {
10
+ [chainId: string]: {
11
+ [name in RequiredContracts]-?: DeploymentDetails;
12
+ } & {
13
+ [name in OptionalContracts]?: DeploymentDetails;
14
+ };
15
+ };
16
+ export declare const DEPLOYMENTS: Deployments;
17
+ export declare function getContractDeploymentInfo(chainId: number, name: OptionalContracts): DeploymentDetails | undefined;
18
+ export declare function getContractDeploymentInfo(chainId: number, name: RequiredContracts): DeploymentDetails;
19
+ export declare function getContractDeploymentInfo(chainId: number | undefined, name: MorphoContractName): DeploymentDetails | undefined;
20
+ export {};
21
+ //# sourceMappingURL=chainsConfigs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainsConfigs.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/chainsConfigs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9B,KAAK,kBAAkB,GACnB,QAAQ,GACR,mBAAmB,GACnB,uBAAuB,CAAA;AAE3B,KAAK,iBAAiB,GAAG,mBAAmB,CAAA;AAC5C,KAAK,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;AACvE,KAAK,iBAAiB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAChE,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,OAAO,EAAE,MAAM,GAAG;SAChB,IAAI,IAAI,iBAAiB,CAAC,CAAC,GAAG,iBAAiB;KACjD,GAAG;SACD,IAAI,IAAI,iBAAiB,CAAC,CAAC,EAAE,iBAAiB;KAChD,CAAA;CACF,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,WAqOzB,CAAA;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,GAAG,SAAS,CAAA;AAChC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAAA;AACpB,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,kBAAkB,GACvB,iBAAiB,GAAG,SAAS,CAAA"}
@@ -0,0 +1,234 @@
1
+ import { Chain } from '@1delta/chain-registry';
2
+ export const DEPLOYMENTS = {
3
+ [Chain.ETHEREUM_MAINNET]: {
4
+ Morpho: {
5
+ address: '0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb',
6
+ fromBlock: 18883124n,
7
+ },
8
+ MetaMorphoFactory: {
9
+ address: '0xA9c3D3a366466Fa809d1Ae982Fb2c46E5fC41101',
10
+ fromBlock: 18925584n,
11
+ },
12
+ MetaMorphoV1_1Factory: {
13
+ address: '0x1897A8997241C1cD4bD0698647e4EB7213535c24',
14
+ fromBlock: 21439510n,
15
+ },
16
+ },
17
+ [Chain.BASE]: {
18
+ Morpho: {
19
+ address: '0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb',
20
+ fromBlock: 13977148n,
21
+ },
22
+ MetaMorphoFactory: {
23
+ address: '0xA9c3D3a366466Fa809d1Ae982Fb2c46E5fC41101',
24
+ fromBlock: 13978134n,
25
+ },
26
+ MetaMorphoV1_1Factory: {
27
+ address: '0xFf62A7c278C62eD665133147129245053Bbf5918',
28
+ fromBlock: 23928808n,
29
+ },
30
+ },
31
+ [Chain.INK]: {
32
+ Morpho: {
33
+ address: '0x857f3EefE8cbda3Bc49367C996cd664A880d3042',
34
+ fromBlock: 4078776n,
35
+ },
36
+ MetaMorphoV1_1Factory: {
37
+ address: '0xd3f39505d0c48AFED3549D625982FdC38Ea9904b',
38
+ fromBlock: 4078830n,
39
+ },
40
+ },
41
+ [Chain.ARBITRUM_ONE]: {
42
+ Morpho: {
43
+ address: '0x6c247b1F6182318877311737BaC0844bAa518F5e',
44
+ fromBlock: 296446593n,
45
+ },
46
+ MetaMorphoV1_1Factory: {
47
+ address: '0x878988f5f561081deEa117717052164ea1Ef0c82',
48
+ fromBlock: 296447195n,
49
+ },
50
+ },
51
+ [Chain.OP_MAINNET]: {
52
+ Morpho: {
53
+ address: '0xce95AfbB8EA029495c66020883F87aaE8864AF92',
54
+ fromBlock: 130770075n,
55
+ },
56
+ MetaMorphoV1_1Factory: {
57
+ address: '0x3Bb6A6A0Bc85b367EFE0A5bAc81c5E52C892839a',
58
+ fromBlock: 130770189n,
59
+ },
60
+ },
61
+ [Chain.POLYGON_MAINNET]: {
62
+ Morpho: {
63
+ address: '0x1bF0c2541F820E775182832f06c0B7Fc27A25f67',
64
+ fromBlock: 66931042n,
65
+ },
66
+ MetaMorphoV1_1Factory: {
67
+ address: '0xa9c87daB340631C34BB738625C70499e29ddDC98',
68
+ fromBlock: 66931118n,
69
+ },
70
+ },
71
+ [Chain.WORLD_CHAIN]: {
72
+ Morpho: {
73
+ address: '0xE741BC7c34758b4caE05062794E8Ae24978AF432',
74
+ fromBlock: 9025669n,
75
+ },
76
+ MetaMorphoV1_1Factory: {
77
+ address: '0x4DBB3a642a2146d5413750Cca3647086D9ba5F12',
78
+ fromBlock: 9025733n,
79
+ },
80
+ },
81
+ [Chain.SCROLL]: {
82
+ Morpho: {
83
+ address: '0x2d012EdbAdc37eDc2BC62791B666f9193FDF5a55',
84
+ fromBlock: 12842868n,
85
+ },
86
+ MetaMorphoV1_1Factory: {
87
+ address: '0x56b65742ade55015e6480959808229Ad6dbc9295',
88
+ fromBlock: 12842903n,
89
+ },
90
+ },
91
+ [Chain.FRAXTAL]: {
92
+ Morpho: {
93
+ address: '0xa6030627d724bA78a59aCf43Be7550b4C5a0653b',
94
+ fromBlock: 15317931n,
95
+ },
96
+ MetaMorphoV1_1Factory: {
97
+ address: '0x27D4Af0AC9E7FDfA6D0853236f249CC27AE79488',
98
+ fromBlock: 15318007n,
99
+ },
100
+ },
101
+ [Chain.UNICHAIN]: {
102
+ Morpho: {
103
+ address: '0x8f5ae9CddB9f68de460C77730b018Ae7E04a140A',
104
+ fromBlock: 9139027n,
105
+ },
106
+ MetaMorphoV1_1Factory: {
107
+ address: '0xe9EdE3929F43a7062a007C3e8652e4ACa610Bdc0',
108
+ fromBlock: 9316789n,
109
+ },
110
+ },
111
+ [Chain.CORN]: {
112
+ Morpho: {
113
+ address: '0xc2B1E031540e3F3271C5F3819F0cC7479a8DdD90',
114
+ fromBlock: 251401n,
115
+ },
116
+ MetaMorphoV1_1Factory: {
117
+ address: '0xe430821595602eA5DD0cD350f86987437c7362fA',
118
+ fromBlock: 253027n,
119
+ },
120
+ },
121
+ [Chain.MODE]: {
122
+ Morpho: {
123
+ address: '0xd85cE6BD68487E0AaFb0858FDE1Cd18c76840564',
124
+ fromBlock: 19983370n,
125
+ },
126
+ MetaMorphoV1_1Factory: {
127
+ address: '0xae5b0884bfff430493D6C844B9fd052Af7d79278',
128
+ fromBlock: 19983443n,
129
+ },
130
+ },
131
+ [Chain.HEMI_NETWORK]: {
132
+ Morpho: {
133
+ address: '0xa4Ca2c2e25b97DA19879201bA49422bc6f181f42',
134
+ fromBlock: 1188872n,
135
+ },
136
+ MetaMorphoV1_1Factory: {
137
+ address: '0x8e52179BeB18E882040b01632440d8Ca0f01da82',
138
+ fromBlock: 1188885n,
139
+ },
140
+ },
141
+ [Chain.SONIC_MAINNET]: {
142
+ Morpho: {
143
+ address: '0xd6c916eB7542D0Ad3f18AEd0FCBD50C582cfa95f',
144
+ fromBlock: 9100931n,
145
+ },
146
+ MetaMorphoV1_1Factory: {
147
+ address: '0x0cE9e3512CB4df8ae7e265e62Fb9258dc14f12e8',
148
+ fromBlock: 9101319n,
149
+ },
150
+ },
151
+ [Chain.PLUME_MAINNET]: {
152
+ Morpho: {
153
+ address: '0x42b18785CE0Aed7BF7Ca43a39471ED4C0A3e0bB5',
154
+ fromBlock: 765994n,
155
+ },
156
+ MetaMorphoV1_1Factory: {
157
+ address: '0x2525D453D9BA13921D5aB5D8c12F9202b0e19456',
158
+ fromBlock: 766078n,
159
+ },
160
+ },
161
+ [Chain.LISK]: {
162
+ Morpho: {
163
+ address: '0x00cD58DEEbd7A2F1C55dAec715faF8aed5b27BF8',
164
+ fromBlock: 15731231n,
165
+ },
166
+ MetaMorphoV1_1Factory: {
167
+ address: '0x01dD876130690469F685a65C2B295A90a81BaD91',
168
+ fromBlock: 15731333n,
169
+ },
170
+ },
171
+ [Chain.SONEIUM]: {
172
+ Morpho: {
173
+ address: '0xE75Fc5eA6e74B824954349Ca351eb4e671ADA53a',
174
+ fromBlock: 6440817n,
175
+ },
176
+ MetaMorphoV1_1Factory: {
177
+ address: '0x7026b436f294e560b3C26E731f5cac5992cA2B33',
178
+ fromBlock: 6440899n,
179
+ },
180
+ },
181
+ [Chain.FLAME]: {
182
+ Morpho: {
183
+ address: '0x63971484590b054b6Abc4FEe9F31BC6F68CfeC04',
184
+ fromBlock: 5991116n,
185
+ },
186
+ MetaMorphoV1_1Factory: {
187
+ address: '0xf2BD176D3A89f6E9f6D0c7F17C4Ae6A3515007a8',
188
+ fromBlock: 5991236n,
189
+ },
190
+ },
191
+ [Chain.BASECAMP]: {
192
+ Morpho: {
193
+ address: '0xc7CAd9B1377Eb8103397Cb07Cb5c4f03eb2eBEa8',
194
+ fromBlock: 4804080n,
195
+ },
196
+ MetaMorphoV1_1Factory: {
197
+ address: '0xa8CD521d42b716821D7ddD2Ca6a237087aA5b487',
198
+ fromBlock: 4804270n,
199
+ },
200
+ },
201
+ [Chain.HYPEREVM]: {
202
+ Morpho: {
203
+ address: '0x68e37dE8d93d3496ae143F2E900490f6280C57cD',
204
+ fromBlock: 1988429n,
205
+ },
206
+ MetaMorphoV1_1Factory: {
207
+ address: '0xec051b19d654C48c357dC974376DeB6272f24e53',
208
+ fromBlock: 1988677n,
209
+ },
210
+ },
211
+ [Chain.KATANA]: {
212
+ Morpho: {
213
+ address: '0xD50F2DffFd62f94Ee4AEd9ca05C61d0753268aBc',
214
+ fromBlock: 2741069n,
215
+ },
216
+ MetaMorphoV1_1Factory: {
217
+ address: '0x1c8De6889acee12257899BFeAa2b7e534de32E16',
218
+ fromBlock: 2741420n,
219
+ },
220
+ },
221
+ [Chain.TAC_MAINNET]: {
222
+ Morpho: {
223
+ address: '0x918B9F2E4B44E20c6423105BB6cCEB71473aD35c',
224
+ fromBlock: 853025n,
225
+ },
226
+ MetaMorphoV1_1Factory: {
227
+ address: '0xcDA78f4979d17Ec93052A84A12001fe0088AD734',
228
+ fromBlock: 978654n,
229
+ },
230
+ },
231
+ };
232
+ export function getContractDeploymentInfo(chainId, name) {
233
+ return chainId !== undefined ? DEPLOYMENTS[chainId][name] : undefined;
234
+ }
@@ -0,0 +1,4 @@
1
+ export declare const MORPHO_MARKETS: {
2
+ [chain: string]: string[];
3
+ };
4
+ //# sourceMappingURL=markets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../../../src/lending/morpho/constants/markets.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CA6DvD,CAAA"}