@1delta/data-sdk 0.0.38 → 0.0.39

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.
package/dist/index.js CHANGED
@@ -87,6 +87,7 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
87
87
  llamaLendConfig: {},
88
88
  llamaLendMarkets: {},
89
89
  resupplyConfig: {},
90
+ curvanceConfig: {},
90
91
  compoundV3Bulker: {},
91
92
  eulerConfigs: {},
92
93
  eulerVaults: {},
@@ -157,6 +158,7 @@ function initializeLenderData({
157
158
  llamaLendConfigOverride,
158
159
  llamaLendMarketsOverride,
159
160
  resupplyConfigOverride,
161
+ curvanceConfigOverride,
160
162
  compoundV3BulkerOverride,
161
163
  eulerConfigsOverride,
162
164
  eulerVaultsOverride,
@@ -220,6 +222,7 @@ function initializeLenderData({
220
222
  if (llamaLendConfigOverride) data.llamaLendConfig = llamaLendConfigOverride;
221
223
  if (llamaLendMarketsOverride) data.llamaLendMarkets = llamaLendMarketsOverride;
222
224
  if (resupplyConfigOverride) data.resupplyConfig = resupplyConfigOverride;
225
+ if (curvanceConfigOverride) data.curvanceConfig = curvanceConfigOverride;
223
226
  if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
224
227
  if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
225
228
  if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
@@ -449,6 +452,112 @@ var resupplyLendersByChain = (chainId) => {
449
452
  }
450
453
  return [...keys];
451
454
  };
455
+ var CURVANCE_MONAD_CONFIG = {
456
+ centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
457
+ oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
458
+ protocolReader: "0xC5E6DD26095Cc1fa2369f7885dF263e150228D8b",
459
+ optimizerReader: "0x821a4a2Be28888917106B3A628c8edaffEbF2e2F",
460
+ optimizers: {
461
+ // `hyAUSD` — 6-dec shares over AUSD; itself collateral in 2 markets.
462
+ hyAUSD: "0xaD663aC84052b52BE4ed1b27BA416505e84a00Bf"
463
+ },
464
+ // Only KyberSwap's MetaAggregationRouterV2 has a registered checker on Monad
465
+ // (2026-08). 1inch / Odos / OogaBooga all return the zero address even
466
+ // though checker contracts for them exist in the Curvance repo — registering
467
+ // OogaBooga is a single DAO call. Probe live before relying on any of this.
468
+ swapTargets: {
469
+ kyberswap: "0x6131B5fae19EA4f9D964eAc0408E4408b66337b5"
470
+ },
471
+ positionManagers: {
472
+ // muBOND | AUSD
473
+ "0x830D40CDFdc494BC1A2729a7381bfCe44326c944": { simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4" },
474
+ // loAZND | AUSD
475
+ "0x7C822B093A116654F824Ec2A35CD23a3749E4f90": { simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917" },
476
+ // ezETH | WETH
477
+ "0x83840d837E7A3E00bBb0B8501E60E989A8987c37": { simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584" },
478
+ // shMON | WMON
479
+ "0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
480
+ nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
481
+ simplePositionManager: "0x7E8705a164DA7Cc5a4119C750b1F79837AD89D5E"
482
+ },
483
+ // aprMON | WMON
484
+ "0x5EA0a1Cf3501C954b64902c5e92100b8A2CaB1Ac": {
485
+ nativeVaultPositionManager: "0x82f88A810E86a730699231F5fBF5686c643467C8",
486
+ simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
487
+ },
488
+ // sMON | WMON
489
+ "0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": { simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC" },
490
+ // sAUSD | AUSD
491
+ "0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
492
+ simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
493
+ vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
494
+ },
495
+ // earnAUSD | AUSD
496
+ "0xd6365555f6a697C7C295bA741100AA644cE28545": { simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881" },
497
+ // WMON | AUSD
498
+ "0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": { simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74" },
499
+ // WMON | USDC
500
+ "0xa6A2A92F126b79Ee0804845ee6B52899b4491093": { simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef" },
501
+ // WBTC | USDC
502
+ "0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": { simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6" },
503
+ // WETH | USDC
504
+ "0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": { simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73" },
505
+ // gMON | WMON
506
+ "0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": { simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee" },
507
+ // syzUSD | AUSD
508
+ "0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": { simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419" },
509
+ // wsrUSD | AUSD
510
+ "0x627a15859d09C1550e2934991AA95aFc6896e3Ef": { simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31" },
511
+ // YZM | AUSD
512
+ "0x4409e2161B6f9A25ACbC471a37390654Ed272249": { simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9" },
513
+ // vUSD | AUSD
514
+ "0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": { simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50" },
515
+ // eBTC | WBTC
516
+ "0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": { simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9" },
517
+ // savUSD | USDC
518
+ "0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": { simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c" },
519
+ // savUSD | AUSD
520
+ "0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": { simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec" }
521
+ }
522
+ };
523
+ var CURVANCE_BUILTIN = {
524
+ CURVANCE: { "143": CURVANCE_MONAD_CONFIG }
525
+ };
526
+ var curvanceConfig = () => getGlobalData2()?.curvanceConfig;
527
+ var curvanceConfigFor = (lender, chainId) => {
528
+ const published = getGlobalData2()?.curvanceConfig?.[lender]?.[String(chainId)];
529
+ if (published?.centralRegistry) return published;
530
+ return CURVANCE_BUILTIN[lender]?.[String(chainId)];
531
+ };
532
+ var curvanceLendersByChain = (chainId) => {
533
+ const chain = String(chainId);
534
+ const cfg = getGlobalData2()?.curvanceConfig ?? {};
535
+ const keys = /* @__PURE__ */ new Set();
536
+ for (const lender of Object.keys(cfg)) {
537
+ if (cfg[lender]?.[chain]?.centralRegistry) keys.add(lender);
538
+ }
539
+ for (const lender of Object.keys(CURVANCE_BUILTIN)) {
540
+ if (CURVANCE_BUILTIN[lender]?.[chain]?.centralRegistry) keys.add(lender);
541
+ }
542
+ return [...keys];
543
+ };
544
+ var curvancePositionManagersFor = (lender, chainId, marketManager) => {
545
+ const map = curvanceConfigFor(lender, chainId)?.positionManagers;
546
+ if (!map || !marketManager) return void 0;
547
+ const direct = map[marketManager];
548
+ if (direct) return direct;
549
+ const target = marketManager.toLowerCase();
550
+ for (const key of Object.keys(map)) {
551
+ if (key.toLowerCase() === target) return map[key];
552
+ }
553
+ return void 0;
554
+ };
555
+ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
556
+ const pms = curvancePositionManagersFor(lender, chainId, marketManager);
557
+ if (!pms) return void 0;
558
+ if (kind) return pms[kind];
559
+ return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
560
+ };
452
561
  var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
453
562
  var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
454
563
  var eulerVaults = () => getGlobalData2()?.eulerVaults;
@@ -633,6 +742,7 @@ async function fetchMainTokensMap() {
633
742
  return await data.json();
634
743
  }
635
744
 
745
+ exports.CURVANCE_MONAD_CONFIG = CURVANCE_MONAD_CONFIG;
636
746
  exports.GEARBOX_ACCOUNT_COMPRESSOR_V310 = GEARBOX_ACCOUNT_COMPRESSOR_V310;
637
747
  exports.RESUPPLY_ETHEREUM_CONFIG = RESUPPLY_ETHEREUM_CONFIG;
638
748
  exports.aaveOracles = aaveOracles;
@@ -658,6 +768,11 @@ exports.compoundV3Bulker = compoundV3Bulker;
658
768
  exports.compoundV3OraclesData = compoundV3OraclesData;
659
769
  exports.compoundV3Pools = compoundV3Pools;
660
770
  exports.compoundV3Reserves = compoundV3Reserves;
771
+ exports.curvanceConfig = curvanceConfig;
772
+ exports.curvanceConfigFor = curvanceConfigFor;
773
+ exports.curvanceLendersByChain = curvanceLendersByChain;
774
+ exports.curvancePositionManager = curvancePositionManager;
775
+ exports.curvancePositionManagersFor = curvancePositionManagersFor;
661
776
  exports.dolomiteChains = dolomiteChains;
662
777
  exports.dolomiteConfigs = dolomiteConfigs;
663
778
  exports.dolomiteEmode = dolomiteEmode;
package/dist/index.mjs CHANGED
@@ -85,6 +85,7 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
85
85
  llamaLendConfig: {},
86
86
  llamaLendMarkets: {},
87
87
  resupplyConfig: {},
88
+ curvanceConfig: {},
88
89
  compoundV3Bulker: {},
89
90
  eulerConfigs: {},
90
91
  eulerVaults: {},
@@ -155,6 +156,7 @@ function initializeLenderData({
155
156
  llamaLendConfigOverride,
156
157
  llamaLendMarketsOverride,
157
158
  resupplyConfigOverride,
159
+ curvanceConfigOverride,
158
160
  compoundV3BulkerOverride,
159
161
  eulerConfigsOverride,
160
162
  eulerVaultsOverride,
@@ -218,6 +220,7 @@ function initializeLenderData({
218
220
  if (llamaLendConfigOverride) data.llamaLendConfig = llamaLendConfigOverride;
219
221
  if (llamaLendMarketsOverride) data.llamaLendMarkets = llamaLendMarketsOverride;
220
222
  if (resupplyConfigOverride) data.resupplyConfig = resupplyConfigOverride;
223
+ if (curvanceConfigOverride) data.curvanceConfig = curvanceConfigOverride;
221
224
  if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
222
225
  if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
223
226
  if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
@@ -447,6 +450,112 @@ var resupplyLendersByChain = (chainId) => {
447
450
  }
448
451
  return [...keys];
449
452
  };
453
+ var CURVANCE_MONAD_CONFIG = {
454
+ centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
455
+ oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
456
+ protocolReader: "0xC5E6DD26095Cc1fa2369f7885dF263e150228D8b",
457
+ optimizerReader: "0x821a4a2Be28888917106B3A628c8edaffEbF2e2F",
458
+ optimizers: {
459
+ // `hyAUSD` — 6-dec shares over AUSD; itself collateral in 2 markets.
460
+ hyAUSD: "0xaD663aC84052b52BE4ed1b27BA416505e84a00Bf"
461
+ },
462
+ // Only KyberSwap's MetaAggregationRouterV2 has a registered checker on Monad
463
+ // (2026-08). 1inch / Odos / OogaBooga all return the zero address even
464
+ // though checker contracts for them exist in the Curvance repo — registering
465
+ // OogaBooga is a single DAO call. Probe live before relying on any of this.
466
+ swapTargets: {
467
+ kyberswap: "0x6131B5fae19EA4f9D964eAc0408E4408b66337b5"
468
+ },
469
+ positionManagers: {
470
+ // muBOND | AUSD
471
+ "0x830D40CDFdc494BC1A2729a7381bfCe44326c944": { simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4" },
472
+ // loAZND | AUSD
473
+ "0x7C822B093A116654F824Ec2A35CD23a3749E4f90": { simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917" },
474
+ // ezETH | WETH
475
+ "0x83840d837E7A3E00bBb0B8501E60E989A8987c37": { simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584" },
476
+ // shMON | WMON
477
+ "0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
478
+ nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
479
+ simplePositionManager: "0x7E8705a164DA7Cc5a4119C750b1F79837AD89D5E"
480
+ },
481
+ // aprMON | WMON
482
+ "0x5EA0a1Cf3501C954b64902c5e92100b8A2CaB1Ac": {
483
+ nativeVaultPositionManager: "0x82f88A810E86a730699231F5fBF5686c643467C8",
484
+ simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
485
+ },
486
+ // sMON | WMON
487
+ "0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": { simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC" },
488
+ // sAUSD | AUSD
489
+ "0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
490
+ simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
491
+ vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
492
+ },
493
+ // earnAUSD | AUSD
494
+ "0xd6365555f6a697C7C295bA741100AA644cE28545": { simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881" },
495
+ // WMON | AUSD
496
+ "0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": { simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74" },
497
+ // WMON | USDC
498
+ "0xa6A2A92F126b79Ee0804845ee6B52899b4491093": { simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef" },
499
+ // WBTC | USDC
500
+ "0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": { simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6" },
501
+ // WETH | USDC
502
+ "0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": { simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73" },
503
+ // gMON | WMON
504
+ "0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": { simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee" },
505
+ // syzUSD | AUSD
506
+ "0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": { simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419" },
507
+ // wsrUSD | AUSD
508
+ "0x627a15859d09C1550e2934991AA95aFc6896e3Ef": { simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31" },
509
+ // YZM | AUSD
510
+ "0x4409e2161B6f9A25ACbC471a37390654Ed272249": { simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9" },
511
+ // vUSD | AUSD
512
+ "0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": { simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50" },
513
+ // eBTC | WBTC
514
+ "0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": { simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9" },
515
+ // savUSD | USDC
516
+ "0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": { simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c" },
517
+ // savUSD | AUSD
518
+ "0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": { simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec" }
519
+ }
520
+ };
521
+ var CURVANCE_BUILTIN = {
522
+ CURVANCE: { "143": CURVANCE_MONAD_CONFIG }
523
+ };
524
+ var curvanceConfig = () => getGlobalData2()?.curvanceConfig;
525
+ var curvanceConfigFor = (lender, chainId) => {
526
+ const published = getGlobalData2()?.curvanceConfig?.[lender]?.[String(chainId)];
527
+ if (published?.centralRegistry) return published;
528
+ return CURVANCE_BUILTIN[lender]?.[String(chainId)];
529
+ };
530
+ var curvanceLendersByChain = (chainId) => {
531
+ const chain = String(chainId);
532
+ const cfg = getGlobalData2()?.curvanceConfig ?? {};
533
+ const keys = /* @__PURE__ */ new Set();
534
+ for (const lender of Object.keys(cfg)) {
535
+ if (cfg[lender]?.[chain]?.centralRegistry) keys.add(lender);
536
+ }
537
+ for (const lender of Object.keys(CURVANCE_BUILTIN)) {
538
+ if (CURVANCE_BUILTIN[lender]?.[chain]?.centralRegistry) keys.add(lender);
539
+ }
540
+ return [...keys];
541
+ };
542
+ var curvancePositionManagersFor = (lender, chainId, marketManager) => {
543
+ const map = curvanceConfigFor(lender, chainId)?.positionManagers;
544
+ if (!map || !marketManager) return void 0;
545
+ const direct = map[marketManager];
546
+ if (direct) return direct;
547
+ const target = marketManager.toLowerCase();
548
+ for (const key of Object.keys(map)) {
549
+ if (key.toLowerCase() === target) return map[key];
550
+ }
551
+ return void 0;
552
+ };
553
+ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
554
+ const pms = curvancePositionManagersFor(lender, chainId, marketManager);
555
+ if (!pms) return void 0;
556
+ if (kind) return pms[kind];
557
+ return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
558
+ };
450
559
  var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
451
560
  var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
452
561
  var eulerVaults = () => getGlobalData2()?.eulerVaults;
@@ -631,4 +740,4 @@ async function fetchMainTokensMap() {
631
740
  return await data.json();
632
741
  }
633
742
 
634
- export { GEARBOX_ACCOUNT_COMPRESSOR_V310, RESUPPLY_ETHEREUM_CONFIG, aaveOracles, aaveOraclesConfig, aavePools, aaveReserves, aaveTokens, aaveV4Oracles, aaveV4Peripherals, aaveV4SpokeLenderKey, aaveV4Spokes, aaveWethGateway, chainLogoURI, chains, compoundV2Oracles, compoundV2OraclesConfig, compoundV2Pools, compoundV2Reserves, compoundV2TokenArray, compoundV2Tokens, compoundV3BaseData, compoundV3Bulker, compoundV3OraclesData, compoundV3Pools, compoundV3Reserves, dolomiteChains, dolomiteConfigs, dolomiteEmode, dolomiteMarketIdByToken, eulerConfigs, eulerVaults, exactlyConfig, exactlyMarketByAddress, exactlyMarketByAsset, exactlyMarkets, exactlyMarketsByChain, fetchMainTokensMap, fetchTokenList, fetchTokenListFile, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, frankencoinChainData, frankencoinConfig, frankencoinConfigFor, frankencoinLendersByChain, frankencoinMarketByPosition, frankencoinMarkets, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getChainEntries, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, inverseChainData, inverseConfig, inverseConfigFor, inverseLendersByChain, inverseMarketByAddress, inverseMarkets, liquityBranchByIndex, liquityBranchByTroveManager, liquityBranchesByChain, liquityConfig, liquityConfigFor, liquityLendersByChain, liquityMarkets, listaNativeProvider, llamaLendApiBaseUrl, llamaLendChainData, llamaLendConfig, llamaLendConfigFor, llamaLendLenderKey, llamaLendLendersByChain, llamaLendLeverageZap, llamaLendMarketByController, llamaLendMarketByVault, llamaLendMarkets, llamaLendSupportsDelegation, llamaLendSupportsLeverage, midnightApiBaseOverride, midnightConfig, midnightMarketById, midnightMarkets, midnightMarketsByChain, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseGearboxV3LenderKey, parseLlamaLendLenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, parseTermMaxLenderKey, resolveMidnightApiBase, resolveTermApiBase, resupplyConfig, resupplyConfigFor, resupplyLendersByChain, riverChainData, riverConfig, riverConfigFor, riverLendersByChain, riverMarketByIndex, riverMarkets, setMidnightApiBase, setTermApiBase, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey, tellerConfig, tellerConfigByChain, tellerPoolByAddress, tellerPools, tellerPoolsByChain, termApiBaseOverride, termConfig, termMarketById, termMarkets, termMarketsByChain, termMaxApiBaseUrl, termMaxChainIds, termMaxConfig, termMaxConfigByChain, termMaxLenderKey, usddChainData, usddConfig, usddConfigFor, usddLendersByChain, usddMarketByIlk, usddMarkets };
743
+ export { CURVANCE_MONAD_CONFIG, GEARBOX_ACCOUNT_COMPRESSOR_V310, RESUPPLY_ETHEREUM_CONFIG, aaveOracles, aaveOraclesConfig, aavePools, aaveReserves, aaveTokens, aaveV4Oracles, aaveV4Peripherals, aaveV4SpokeLenderKey, aaveV4Spokes, aaveWethGateway, chainLogoURI, chains, compoundV2Oracles, compoundV2OraclesConfig, compoundV2Pools, compoundV2Reserves, compoundV2TokenArray, compoundV2Tokens, compoundV3BaseData, compoundV3Bulker, compoundV3OraclesData, compoundV3Pools, compoundV3Reserves, curvanceConfig, curvanceConfigFor, curvanceLendersByChain, curvancePositionManager, curvancePositionManagersFor, dolomiteChains, dolomiteConfigs, dolomiteEmode, dolomiteMarketIdByToken, eulerConfigs, eulerVaults, exactlyConfig, exactlyMarketByAddress, exactlyMarketByAsset, exactlyMarkets, exactlyMarketsByChain, fetchMainTokensMap, fetchTokenList, fetchTokenListFile, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, frankencoinChainData, frankencoinConfig, frankencoinConfigFor, frankencoinLendersByChain, frankencoinMarketByPosition, frankencoinMarkets, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getChainEntries, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, inverseChainData, inverseConfig, inverseConfigFor, inverseLendersByChain, inverseMarketByAddress, inverseMarkets, liquityBranchByIndex, liquityBranchByTroveManager, liquityBranchesByChain, liquityConfig, liquityConfigFor, liquityLendersByChain, liquityMarkets, listaNativeProvider, llamaLendApiBaseUrl, llamaLendChainData, llamaLendConfig, llamaLendConfigFor, llamaLendLenderKey, llamaLendLendersByChain, llamaLendLeverageZap, llamaLendMarketByController, llamaLendMarketByVault, llamaLendMarkets, llamaLendSupportsDelegation, llamaLendSupportsLeverage, midnightApiBaseOverride, midnightConfig, midnightMarketById, midnightMarkets, midnightMarketsByChain, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseGearboxV3LenderKey, parseLlamaLendLenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, parseTermMaxLenderKey, resolveMidnightApiBase, resolveTermApiBase, resupplyConfig, resupplyConfigFor, resupplyLendersByChain, riverChainData, riverConfig, riverConfigFor, riverLendersByChain, riverMarketByIndex, riverMarkets, setMidnightApiBase, setTermApiBase, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey, tellerConfig, tellerConfigByChain, tellerPoolByAddress, tellerPools, tellerPoolsByChain, termApiBaseOverride, termConfig, termMarketById, termMarkets, termMarketsByChain, termMaxApiBaseUrl, termMaxChainIds, termMaxConfig, termMaxConfigByChain, termMaxLenderKey, usddChainData, usddConfig, usddConfigFor, usddLendersByChain, usddMarketByIlk, usddMarkets };
package/dist/lending.d.ts CHANGED
@@ -650,6 +650,69 @@ export type ResupplyConfigType = {
650
650
  [chainId: string]: ResupplyConfigChain;
651
651
  };
652
652
  };
653
+ /** The Position Manager variants Curvance deploys, keyed as the app keys them. */
654
+ export type CurvancePositionManagers = {
655
+ /** Generic non-native ERC-20 legs. The common case (20 of 20 PM'd markets). */
656
+ simplePositionManager?: string;
657
+ /** ERC-4626-style collateral that is entered on leverage. */
658
+ vaultPositionManager?: string;
659
+ /** Wrapped-native collateral — unwraps / swaps into native before depositing. */
660
+ nativeVaultPositionManager?: string;
661
+ /** Pendle principal-token collateral. */
662
+ pendlePtPositionManager?: string;
663
+ };
664
+ /** Per-chain, protocol-level (evergreen) Curvance addresses. */
665
+ export type CurvanceConfigChain = {
666
+ /** `CentralRegistry` — `marketManagers()` IS the market discovery, and every
667
+ * other singleton hangs off it. The one address the provider bootstraps
668
+ * from. */
669
+ centralRegistry: string;
670
+ /** `OracleManager` — `getPrice(asset, inUSD, getLower)`. Prices are WAD USD
671
+ * and carry an `errorCode` that GATES actions (see the abis header). */
672
+ oracleManager?: string;
673
+ /** `ProtocolReader` — `getStaticMarketData()` + `getAllDynamicState(account)`
674
+ * return the entire public book and one account's whole portfolio in two
675
+ * calls. Optional: the fetchers fall back to a plain multicall over the
676
+ * MarketManagers when it is absent. */
677
+ protocolReader?: string;
678
+ /** `OptimizerReader` — lens for the LendingOptimizer ("Vaults") surface. */
679
+ optimizerReader?: string;
680
+ /**
681
+ * Native-leverage Position Managers, keyed by MARKET MANAGER address
682
+ * (lowercase-insensitive on read). A market absent here has no native
683
+ * leverage — which is a real state, not a gap: 5 of 25 markets on Monad
684
+ * have none registered.
685
+ */
686
+ positionManagers?: {
687
+ [marketManager: string]: CurvancePositionManagers;
688
+ };
689
+ /**
690
+ * `LendingOptimizer` vaults by symbol. Their shares are collateralisable
691
+ * through `LendingOptimizerShareCToken`, which is why `hyAUSD` appears as
692
+ * collateral in two markets.
693
+ */
694
+ optimizers?: {
695
+ [symbol: string]: string;
696
+ };
697
+ /**
698
+ * Swap targets with a registered `externalCalldataChecker`, i.e. the ONLY
699
+ * routers the native leverage path will accept. Cached here as a hint; the
700
+ * mapping is DAO-mutable in both directions, so a builder must still probe
701
+ * `externalCalldataChecker(target)` live and fail closed.
702
+ */
703
+ swapTargets?: {
704
+ [aggregator: string]: string;
705
+ };
706
+ /** Optional allowlist of MarketManager addresses. When set, on-chain
707
+ * discovery is INTERSECTED with it; absent (the default) publishes every
708
+ * listed market. */
709
+ marketAllowlist?: string[] | null;
710
+ };
711
+ export type CurvanceConfigType = {
712
+ [lender: string]: {
713
+ [chainId: string]: CurvanceConfigChain;
714
+ };
715
+ };
653
716
  /** Per-chain LlamaLend deployment seed (hand-maintained). */
654
717
  export type LlamaLendConfigChain = {
655
718
  /** v1 `OneWayLendingFactory` — parallel index getters. Absent on chains
@@ -1278,7 +1341,7 @@ export type AaveV4PeripheralsType = {
1278
1341
  [chainId: string]: AaveV4ChainPeripherals;
1279
1342
  };
1280
1343
  /** Override datas used in the SDK - works across all module instances */
1281
- export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOverride, aaveOraclesOverride, compoundV2OraclesOverride, compoundV3OraclesDataOverride, compoundV3PoolsOverride, compoundV3BaseDataOverride, morphoPoolsOverride, compoundV2TokensOverride, compoundV2TokenArrayOverride, compoundV2PoolsOverride, initConfigOverride, aaveReservesOverride, compoundV3ReservesOverride, compoundV2ReservesOverride, morphoOraclesOverride, morphoTypeOraclesOverride, morphoTypeMarketsOverride, morphoTypeVaultsOverride, aaveOraclesConfigOverride, compoundV2OraclesConfigOverride, aaveWethGatewayOverride, morphoBundler3Override, listaNativeProviderOverride, midnightConfigOverride, midnightMarketsOverride, termConfigOverride, termMarketsOverride, exactlyConfigOverride, exactlyMarketsOverride, tellerConfigOverride, tellerPoolsOverride, liquityConfigOverride, liquityMarketsOverride, riverConfigOverride, riverMarketsOverride, inverseConfigOverride, termMaxConfigOverride, inverseMarketsOverride, usddConfigOverride, usddMarketsOverride, frankencoinConfigOverride, frankencoinMarketsOverride, llamaLendConfigOverride, llamaLendMarketsOverride, resupplyConfigOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, dolomiteConfigsOverride, dolomiteEmodeOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
1344
+ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOverride, aaveOraclesOverride, compoundV2OraclesOverride, compoundV3OraclesDataOverride, compoundV3PoolsOverride, compoundV3BaseDataOverride, morphoPoolsOverride, compoundV2TokensOverride, compoundV2TokenArrayOverride, compoundV2PoolsOverride, initConfigOverride, aaveReservesOverride, compoundV3ReservesOverride, compoundV2ReservesOverride, morphoOraclesOverride, morphoTypeOraclesOverride, morphoTypeMarketsOverride, morphoTypeVaultsOverride, aaveOraclesConfigOverride, compoundV2OraclesConfigOverride, aaveWethGatewayOverride, morphoBundler3Override, listaNativeProviderOverride, midnightConfigOverride, midnightMarketsOverride, termConfigOverride, termMarketsOverride, exactlyConfigOverride, exactlyMarketsOverride, tellerConfigOverride, tellerPoolsOverride, liquityConfigOverride, liquityMarketsOverride, riverConfigOverride, riverMarketsOverride, inverseConfigOverride, termMaxConfigOverride, inverseMarketsOverride, usddConfigOverride, usddMarketsOverride, frankencoinConfigOverride, frankencoinMarketsOverride, llamaLendConfigOverride, llamaLendMarketsOverride, resupplyConfigOverride, curvanceConfigOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, dolomiteConfigsOverride, dolomiteEmodeOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
1282
1345
  aaveTokensOverride?: AaveTokensType;
1283
1346
  aavePoolsOverride?: AavePoolsType;
1284
1347
  aaveOraclesOverride?: OracleMap;
@@ -1325,6 +1388,7 @@ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOver
1325
1388
  llamaLendConfigOverride?: LlamaLendConfigType;
1326
1389
  llamaLendMarketsOverride?: LlamaLendMarketsType;
1327
1390
  resupplyConfigOverride?: ResupplyConfigType;
1391
+ curvanceConfigOverride?: CurvanceConfigType;
1328
1392
  compoundV3BulkerOverride?: CompoundV3BulkerType;
1329
1393
  eulerConfigsOverride?: EulerConfigsType;
1330
1394
  eulerVaultsOverride?: EulerVaultsType;
@@ -1558,6 +1622,55 @@ export declare const resupplyConfigFor: (lender: string, chainId: string | numbe
1558
1622
  * happens with or without a publish.
1559
1623
  */
1560
1624
  export declare const resupplyLendersByChain: (chainId: string | number) => string[];
1625
+ /**
1626
+ * Built-in Monad deployment seed for Curvance.
1627
+ *
1628
+ * Same arrangement as Resupply: a published `config/curvance.json` still WINS
1629
+ * (see `curvanceConfigFor`), but the provider is live with nothing to publish
1630
+ * because `centralRegistry` is an immutable protocol singleton and the whole
1631
+ * market roster is discovered from it at runtime.
1632
+ *
1633
+ * The `positionManagers` map is the exception and the reason this seed carries
1634
+ * more than one address: PM registration is an un-enumerable mapping, and Monad
1635
+ * public RPCs cap `eth_getLogs` at 100 blocks so `PositionManagerUpdated`
1636
+ * cannot be scanned. Every entry below was verified on-chain 2026-08-07 —
1637
+ * 23/23 answered `isPositionManager == true` on their market AND reported that
1638
+ * same market back from `marketManager()`.
1639
+ *
1640
+ * FIVE live markets have NO Position Manager and therefore no native leverage:
1641
+ * `PT-AUSD-8OCT2026 | AUSD` (the largest market at ~$45M), `PT-earnAUSD | AUSD`,
1642
+ * both `High Yield AUSD Vault` markets, and `aguaUSDCgc | USDC`. Their absence
1643
+ * here is the truth, not a gap to fill in.
1644
+ */
1645
+ export declare const CURVANCE_MONAD_CONFIG: CurvanceConfigChain;
1646
+ export declare const curvanceConfig: () => CurvanceConfigType;
1647
+ /**
1648
+ * Deployment seed for one Curvance lender on a chain. Published metadata wins;
1649
+ * the built-in Monad row is the fallback so the provider works before
1650
+ * `config/curvance.json` exists.
1651
+ */
1652
+ export declare const curvanceConfigFor: (lender: string, chainId: string | number) => CurvanceConfigChain | undefined;
1653
+ /**
1654
+ * All Curvance lender keys with config on a chain (drives getLendersForChain).
1655
+ * Gated on the CENTRAL REGISTRY — the one address the provider bootstraps from.
1656
+ */
1657
+ export declare const curvanceLendersByChain: (chainId: string | number) => string[];
1658
+ /**
1659
+ * Position Managers registered for one Curvance market. Returns `undefined`
1660
+ * when the market has none — a real state (5 of 25 on Monad, including the
1661
+ * largest market), and the signal that native leverage is unavailable there.
1662
+ *
1663
+ * Lookup is case-insensitive because market-manager addresses arrive from
1664
+ * `queryTokensListed`/config in mixed checksum forms.
1665
+ */
1666
+ export declare const curvancePositionManagersFor: (lender: string, chainId: string | number, marketManager: string) => CurvancePositionManagers | undefined;
1667
+ /**
1668
+ * The Position Manager to drive for a market, preferring an explicit `kind` and
1669
+ * otherwise falling back to `simplePositionManager` — which is the right default
1670
+ * because every PM'd market has one, and the vault/native variants exist only as
1671
+ * ALTERNATIVES for legs whose collateral needs an extra wrap step.
1672
+ */
1673
+ export declare const curvancePositionManager: (lender: string, chainId: string | number, marketManager: string, kind?: keyof CurvancePositionManagers) => string | undefined;
1561
1674
  export declare const compoundV3Bulker: () => CompoundV3BulkerType;
1562
1675
  export declare const eulerConfigs: () => EulerConfigsType;
1563
1676
  export declare const eulerVaults: () => EulerVaultsType;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.0.38",
7
+ "version": "0.0.39",
8
8
  "description": "Hold and initialize lending protocol data across a stack",
9
9
  "files": [
10
10
  "dist"