@1delta/data-sdk 0.0.38 → 0.0.40

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
@@ -82,11 +82,14 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
82
82
  inverseMarkets: {},
83
83
  usddConfig: {},
84
84
  usddMarkets: {},
85
+ skyConfig: {},
86
+ skyMarkets: {},
85
87
  frankencoinConfig: {},
86
88
  frankencoinMarkets: {},
87
89
  llamaLendConfig: {},
88
90
  llamaLendMarkets: {},
89
91
  resupplyConfig: {},
92
+ curvanceConfig: {},
90
93
  compoundV3Bulker: {},
91
94
  eulerConfigs: {},
92
95
  eulerVaults: {},
@@ -152,11 +155,14 @@ function initializeLenderData({
152
155
  inverseMarketsOverride,
153
156
  usddConfigOverride,
154
157
  usddMarketsOverride,
158
+ skyConfigOverride,
159
+ skyMarketsOverride,
155
160
  frankencoinConfigOverride,
156
161
  frankencoinMarketsOverride,
157
162
  llamaLendConfigOverride,
158
163
  llamaLendMarketsOverride,
159
164
  resupplyConfigOverride,
165
+ curvanceConfigOverride,
160
166
  compoundV3BulkerOverride,
161
167
  eulerConfigsOverride,
162
168
  eulerVaultsOverride,
@@ -215,11 +221,14 @@ function initializeLenderData({
215
221
  if (inverseMarketsOverride) data.inverseMarkets = inverseMarketsOverride;
216
222
  if (usddConfigOverride) data.usddConfig = usddConfigOverride;
217
223
  if (usddMarketsOverride) data.usddMarkets = usddMarketsOverride;
224
+ if (skyConfigOverride) data.skyConfig = skyConfigOverride;
225
+ if (skyMarketsOverride) data.skyMarkets = skyMarketsOverride;
218
226
  if (frankencoinConfigOverride) data.frankencoinConfig = frankencoinConfigOverride;
219
227
  if (frankencoinMarketsOverride) data.frankencoinMarkets = frankencoinMarketsOverride;
220
228
  if (llamaLendConfigOverride) data.llamaLendConfig = llamaLendConfigOverride;
221
229
  if (llamaLendMarketsOverride) data.llamaLendMarkets = llamaLendMarketsOverride;
222
230
  if (resupplyConfigOverride) data.resupplyConfig = resupplyConfigOverride;
231
+ if (curvanceConfigOverride) data.curvanceConfig = curvanceConfigOverride;
223
232
  if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
224
233
  if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
225
234
  if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
@@ -401,6 +410,21 @@ var usddLendersByChain = (chainId) => {
401
410
  const chain = String(chainId);
402
411
  return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
403
412
  };
413
+ var skyConfig = () => getGlobalData2()?.skyConfig;
414
+ var skyConfigFor = (lender, chainId) => getGlobalData2()?.skyConfig?.[lender]?.[String(chainId)];
415
+ var skyMarkets = () => getGlobalData2()?.skyMarkets;
416
+ var skyChainData = (lender, chainId) => getGlobalData2()?.skyMarkets?.[lender]?.[String(chainId)];
417
+ var skyLendersByChain = (chainId) => {
418
+ const cfg = getGlobalData2()?.skyConfig ?? {};
419
+ const chain = String(chainId);
420
+ return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
421
+ };
422
+ var isSkyKey = (lender) => lender === "SKY" || !!lender?.startsWith("SKY_");
423
+ var dssConfigFor = (lender, chainId) => isSkyKey(lender) ? skyConfigFor(lender, chainId) : usddConfigFor(lender, chainId);
424
+ var dssChainData = (lender, chainId) => isSkyKey(lender) ? skyChainData(lender, chainId) : usddChainData(lender, chainId);
425
+ var dssMarketByIlk = (lender, chainId, ilk) => dssChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
426
+ var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
427
+ var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
404
428
  var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
405
429
  var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
406
430
  var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
@@ -449,6 +473,112 @@ var resupplyLendersByChain = (chainId) => {
449
473
  }
450
474
  return [...keys];
451
475
  };
476
+ var CURVANCE_MONAD_CONFIG = {
477
+ centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
478
+ oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
479
+ protocolReader: "0xC5E6DD26095Cc1fa2369f7885dF263e150228D8b",
480
+ optimizerReader: "0x821a4a2Be28888917106B3A628c8edaffEbF2e2F",
481
+ optimizers: {
482
+ // `hyAUSD` — 6-dec shares over AUSD; itself collateral in 2 markets.
483
+ hyAUSD: "0xaD663aC84052b52BE4ed1b27BA416505e84a00Bf"
484
+ },
485
+ // Only KyberSwap's MetaAggregationRouterV2 has a registered checker on Monad
486
+ // (2026-08). 1inch / Odos / OogaBooga all return the zero address even
487
+ // though checker contracts for them exist in the Curvance repo — registering
488
+ // OogaBooga is a single DAO call. Probe live before relying on any of this.
489
+ swapTargets: {
490
+ kyberswap: "0x6131B5fae19EA4f9D964eAc0408E4408b66337b5"
491
+ },
492
+ positionManagers: {
493
+ // muBOND | AUSD
494
+ "0x830D40CDFdc494BC1A2729a7381bfCe44326c944": { simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4" },
495
+ // loAZND | AUSD
496
+ "0x7C822B093A116654F824Ec2A35CD23a3749E4f90": { simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917" },
497
+ // ezETH | WETH
498
+ "0x83840d837E7A3E00bBb0B8501E60E989A8987c37": { simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584" },
499
+ // shMON | WMON
500
+ "0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
501
+ nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
502
+ simplePositionManager: "0x7E8705a164DA7Cc5a4119C750b1F79837AD89D5E"
503
+ },
504
+ // aprMON | WMON
505
+ "0x5EA0a1Cf3501C954b64902c5e92100b8A2CaB1Ac": {
506
+ nativeVaultPositionManager: "0x82f88A810E86a730699231F5fBF5686c643467C8",
507
+ simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
508
+ },
509
+ // sMON | WMON
510
+ "0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": { simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC" },
511
+ // sAUSD | AUSD
512
+ "0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
513
+ simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
514
+ vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
515
+ },
516
+ // earnAUSD | AUSD
517
+ "0xd6365555f6a697C7C295bA741100AA644cE28545": { simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881" },
518
+ // WMON | AUSD
519
+ "0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": { simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74" },
520
+ // WMON | USDC
521
+ "0xa6A2A92F126b79Ee0804845ee6B52899b4491093": { simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef" },
522
+ // WBTC | USDC
523
+ "0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": { simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6" },
524
+ // WETH | USDC
525
+ "0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": { simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73" },
526
+ // gMON | WMON
527
+ "0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": { simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee" },
528
+ // syzUSD | AUSD
529
+ "0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": { simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419" },
530
+ // wsrUSD | AUSD
531
+ "0x627a15859d09C1550e2934991AA95aFc6896e3Ef": { simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31" },
532
+ // YZM | AUSD
533
+ "0x4409e2161B6f9A25ACbC471a37390654Ed272249": { simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9" },
534
+ // vUSD | AUSD
535
+ "0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": { simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50" },
536
+ // eBTC | WBTC
537
+ "0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": { simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9" },
538
+ // savUSD | USDC
539
+ "0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": { simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c" },
540
+ // savUSD | AUSD
541
+ "0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": { simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec" }
542
+ }
543
+ };
544
+ var CURVANCE_BUILTIN = {
545
+ CURVANCE: { "143": CURVANCE_MONAD_CONFIG }
546
+ };
547
+ var curvanceConfig = () => getGlobalData2()?.curvanceConfig;
548
+ var curvanceConfigFor = (lender, chainId) => {
549
+ const published = getGlobalData2()?.curvanceConfig?.[lender]?.[String(chainId)];
550
+ if (published?.centralRegistry) return published;
551
+ return CURVANCE_BUILTIN[lender]?.[String(chainId)];
552
+ };
553
+ var curvanceLendersByChain = (chainId) => {
554
+ const chain = String(chainId);
555
+ const cfg = getGlobalData2()?.curvanceConfig ?? {};
556
+ const keys = /* @__PURE__ */ new Set();
557
+ for (const lender of Object.keys(cfg)) {
558
+ if (cfg[lender]?.[chain]?.centralRegistry) keys.add(lender);
559
+ }
560
+ for (const lender of Object.keys(CURVANCE_BUILTIN)) {
561
+ if (CURVANCE_BUILTIN[lender]?.[chain]?.centralRegistry) keys.add(lender);
562
+ }
563
+ return [...keys];
564
+ };
565
+ var curvancePositionManagersFor = (lender, chainId, marketManager) => {
566
+ const map = curvanceConfigFor(lender, chainId)?.positionManagers;
567
+ if (!map || !marketManager) return void 0;
568
+ const direct = map[marketManager];
569
+ if (direct) return direct;
570
+ const target = marketManager.toLowerCase();
571
+ for (const key of Object.keys(map)) {
572
+ if (key.toLowerCase() === target) return map[key];
573
+ }
574
+ return void 0;
575
+ };
576
+ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
577
+ const pms = curvancePositionManagersFor(lender, chainId, marketManager);
578
+ if (!pms) return void 0;
579
+ if (kind) return pms[kind];
580
+ return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
581
+ };
452
582
  var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
453
583
  var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
454
584
  var eulerVaults = () => getGlobalData2()?.eulerVaults;
@@ -633,6 +763,7 @@ async function fetchMainTokensMap() {
633
763
  return await data.json();
634
764
  }
635
765
 
766
+ exports.CURVANCE_MONAD_CONFIG = CURVANCE_MONAD_CONFIG;
636
767
  exports.GEARBOX_ACCOUNT_COMPRESSOR_V310 = GEARBOX_ACCOUNT_COMPRESSOR_V310;
637
768
  exports.RESUPPLY_ETHEREUM_CONFIG = RESUPPLY_ETHEREUM_CONFIG;
638
769
  exports.aaveOracles = aaveOracles;
@@ -658,10 +789,20 @@ exports.compoundV3Bulker = compoundV3Bulker;
658
789
  exports.compoundV3OraclesData = compoundV3OraclesData;
659
790
  exports.compoundV3Pools = compoundV3Pools;
660
791
  exports.compoundV3Reserves = compoundV3Reserves;
792
+ exports.curvanceConfig = curvanceConfig;
793
+ exports.curvanceConfigFor = curvanceConfigFor;
794
+ exports.curvanceLendersByChain = curvanceLendersByChain;
795
+ exports.curvancePositionManager = curvancePositionManager;
796
+ exports.curvancePositionManagersFor = curvancePositionManagersFor;
661
797
  exports.dolomiteChains = dolomiteChains;
662
798
  exports.dolomiteConfigs = dolomiteConfigs;
663
799
  exports.dolomiteEmode = dolomiteEmode;
664
800
  exports.dolomiteMarketIdByToken = dolomiteMarketIdByToken;
801
+ exports.dssChainData = dssChainData;
802
+ exports.dssConfigFor = dssConfigFor;
803
+ exports.dssDebtJoin = dssDebtJoin;
804
+ exports.dssDebtToken = dssDebtToken;
805
+ exports.dssMarketByIlk = dssMarketByIlk;
665
806
  exports.eulerConfigs = eulerConfigs;
666
807
  exports.eulerVaults = eulerVaults;
667
808
  exports.exactlyConfig = exactlyConfig;
@@ -764,6 +905,11 @@ exports.siloPeripherals = siloPeripherals;
764
905
  exports.siloPeripheralsV3 = siloPeripheralsV3;
765
906
  exports.siloV2LenderKey = siloV2LenderKey;
766
907
  exports.siloV3LenderKey = siloV3LenderKey;
908
+ exports.skyChainData = skyChainData;
909
+ exports.skyConfig = skyConfig;
910
+ exports.skyConfigFor = skyConfigFor;
911
+ exports.skyLendersByChain = skyLendersByChain;
912
+ exports.skyMarkets = skyMarkets;
767
913
  exports.tellerConfig = tellerConfig;
768
914
  exports.tellerConfigByChain = tellerConfigByChain;
769
915
  exports.tellerPoolByAddress = tellerPoolByAddress;
package/dist/index.mjs CHANGED
@@ -80,11 +80,14 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
80
80
  inverseMarkets: {},
81
81
  usddConfig: {},
82
82
  usddMarkets: {},
83
+ skyConfig: {},
84
+ skyMarkets: {},
83
85
  frankencoinConfig: {},
84
86
  frankencoinMarkets: {},
85
87
  llamaLendConfig: {},
86
88
  llamaLendMarkets: {},
87
89
  resupplyConfig: {},
90
+ curvanceConfig: {},
88
91
  compoundV3Bulker: {},
89
92
  eulerConfigs: {},
90
93
  eulerVaults: {},
@@ -150,11 +153,14 @@ function initializeLenderData({
150
153
  inverseMarketsOverride,
151
154
  usddConfigOverride,
152
155
  usddMarketsOverride,
156
+ skyConfigOverride,
157
+ skyMarketsOverride,
153
158
  frankencoinConfigOverride,
154
159
  frankencoinMarketsOverride,
155
160
  llamaLendConfigOverride,
156
161
  llamaLendMarketsOverride,
157
162
  resupplyConfigOverride,
163
+ curvanceConfigOverride,
158
164
  compoundV3BulkerOverride,
159
165
  eulerConfigsOverride,
160
166
  eulerVaultsOverride,
@@ -213,11 +219,14 @@ function initializeLenderData({
213
219
  if (inverseMarketsOverride) data.inverseMarkets = inverseMarketsOverride;
214
220
  if (usddConfigOverride) data.usddConfig = usddConfigOverride;
215
221
  if (usddMarketsOverride) data.usddMarkets = usddMarketsOverride;
222
+ if (skyConfigOverride) data.skyConfig = skyConfigOverride;
223
+ if (skyMarketsOverride) data.skyMarkets = skyMarketsOverride;
216
224
  if (frankencoinConfigOverride) data.frankencoinConfig = frankencoinConfigOverride;
217
225
  if (frankencoinMarketsOverride) data.frankencoinMarkets = frankencoinMarketsOverride;
218
226
  if (llamaLendConfigOverride) data.llamaLendConfig = llamaLendConfigOverride;
219
227
  if (llamaLendMarketsOverride) data.llamaLendMarkets = llamaLendMarketsOverride;
220
228
  if (resupplyConfigOverride) data.resupplyConfig = resupplyConfigOverride;
229
+ if (curvanceConfigOverride) data.curvanceConfig = curvanceConfigOverride;
221
230
  if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
222
231
  if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
223
232
  if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
@@ -399,6 +408,21 @@ var usddLendersByChain = (chainId) => {
399
408
  const chain = String(chainId);
400
409
  return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
401
410
  };
411
+ var skyConfig = () => getGlobalData2()?.skyConfig;
412
+ var skyConfigFor = (lender, chainId) => getGlobalData2()?.skyConfig?.[lender]?.[String(chainId)];
413
+ var skyMarkets = () => getGlobalData2()?.skyMarkets;
414
+ var skyChainData = (lender, chainId) => getGlobalData2()?.skyMarkets?.[lender]?.[String(chainId)];
415
+ var skyLendersByChain = (chainId) => {
416
+ const cfg = getGlobalData2()?.skyConfig ?? {};
417
+ const chain = String(chainId);
418
+ return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
419
+ };
420
+ var isSkyKey = (lender) => lender === "SKY" || !!lender?.startsWith("SKY_");
421
+ var dssConfigFor = (lender, chainId) => isSkyKey(lender) ? skyConfigFor(lender, chainId) : usddConfigFor(lender, chainId);
422
+ var dssChainData = (lender, chainId) => isSkyKey(lender) ? skyChainData(lender, chainId) : usddChainData(lender, chainId);
423
+ var dssMarketByIlk = (lender, chainId, ilk) => dssChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
424
+ var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
425
+ var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
402
426
  var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
403
427
  var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
404
428
  var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
@@ -447,6 +471,112 @@ var resupplyLendersByChain = (chainId) => {
447
471
  }
448
472
  return [...keys];
449
473
  };
474
+ var CURVANCE_MONAD_CONFIG = {
475
+ centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
476
+ oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
477
+ protocolReader: "0xC5E6DD26095Cc1fa2369f7885dF263e150228D8b",
478
+ optimizerReader: "0x821a4a2Be28888917106B3A628c8edaffEbF2e2F",
479
+ optimizers: {
480
+ // `hyAUSD` — 6-dec shares over AUSD; itself collateral in 2 markets.
481
+ hyAUSD: "0xaD663aC84052b52BE4ed1b27BA416505e84a00Bf"
482
+ },
483
+ // Only KyberSwap's MetaAggregationRouterV2 has a registered checker on Monad
484
+ // (2026-08). 1inch / Odos / OogaBooga all return the zero address even
485
+ // though checker contracts for them exist in the Curvance repo — registering
486
+ // OogaBooga is a single DAO call. Probe live before relying on any of this.
487
+ swapTargets: {
488
+ kyberswap: "0x6131B5fae19EA4f9D964eAc0408E4408b66337b5"
489
+ },
490
+ positionManagers: {
491
+ // muBOND | AUSD
492
+ "0x830D40CDFdc494BC1A2729a7381bfCe44326c944": { simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4" },
493
+ // loAZND | AUSD
494
+ "0x7C822B093A116654F824Ec2A35CD23a3749E4f90": { simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917" },
495
+ // ezETH | WETH
496
+ "0x83840d837E7A3E00bBb0B8501E60E989A8987c37": { simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584" },
497
+ // shMON | WMON
498
+ "0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
499
+ nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
500
+ simplePositionManager: "0x7E8705a164DA7Cc5a4119C750b1F79837AD89D5E"
501
+ },
502
+ // aprMON | WMON
503
+ "0x5EA0a1Cf3501C954b64902c5e92100b8A2CaB1Ac": {
504
+ nativeVaultPositionManager: "0x82f88A810E86a730699231F5fBF5686c643467C8",
505
+ simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
506
+ },
507
+ // sMON | WMON
508
+ "0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": { simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC" },
509
+ // sAUSD | AUSD
510
+ "0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
511
+ simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
512
+ vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
513
+ },
514
+ // earnAUSD | AUSD
515
+ "0xd6365555f6a697C7C295bA741100AA644cE28545": { simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881" },
516
+ // WMON | AUSD
517
+ "0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": { simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74" },
518
+ // WMON | USDC
519
+ "0xa6A2A92F126b79Ee0804845ee6B52899b4491093": { simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef" },
520
+ // WBTC | USDC
521
+ "0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": { simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6" },
522
+ // WETH | USDC
523
+ "0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": { simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73" },
524
+ // gMON | WMON
525
+ "0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": { simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee" },
526
+ // syzUSD | AUSD
527
+ "0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": { simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419" },
528
+ // wsrUSD | AUSD
529
+ "0x627a15859d09C1550e2934991AA95aFc6896e3Ef": { simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31" },
530
+ // YZM | AUSD
531
+ "0x4409e2161B6f9A25ACbC471a37390654Ed272249": { simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9" },
532
+ // vUSD | AUSD
533
+ "0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": { simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50" },
534
+ // eBTC | WBTC
535
+ "0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": { simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9" },
536
+ // savUSD | USDC
537
+ "0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": { simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c" },
538
+ // savUSD | AUSD
539
+ "0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": { simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec" }
540
+ }
541
+ };
542
+ var CURVANCE_BUILTIN = {
543
+ CURVANCE: { "143": CURVANCE_MONAD_CONFIG }
544
+ };
545
+ var curvanceConfig = () => getGlobalData2()?.curvanceConfig;
546
+ var curvanceConfigFor = (lender, chainId) => {
547
+ const published = getGlobalData2()?.curvanceConfig?.[lender]?.[String(chainId)];
548
+ if (published?.centralRegistry) return published;
549
+ return CURVANCE_BUILTIN[lender]?.[String(chainId)];
550
+ };
551
+ var curvanceLendersByChain = (chainId) => {
552
+ const chain = String(chainId);
553
+ const cfg = getGlobalData2()?.curvanceConfig ?? {};
554
+ const keys = /* @__PURE__ */ new Set();
555
+ for (const lender of Object.keys(cfg)) {
556
+ if (cfg[lender]?.[chain]?.centralRegistry) keys.add(lender);
557
+ }
558
+ for (const lender of Object.keys(CURVANCE_BUILTIN)) {
559
+ if (CURVANCE_BUILTIN[lender]?.[chain]?.centralRegistry) keys.add(lender);
560
+ }
561
+ return [...keys];
562
+ };
563
+ var curvancePositionManagersFor = (lender, chainId, marketManager) => {
564
+ const map = curvanceConfigFor(lender, chainId)?.positionManagers;
565
+ if (!map || !marketManager) return void 0;
566
+ const direct = map[marketManager];
567
+ if (direct) return direct;
568
+ const target = marketManager.toLowerCase();
569
+ for (const key of Object.keys(map)) {
570
+ if (key.toLowerCase() === target) return map[key];
571
+ }
572
+ return void 0;
573
+ };
574
+ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
575
+ const pms = curvancePositionManagersFor(lender, chainId, marketManager);
576
+ if (!pms) return void 0;
577
+ if (kind) return pms[kind];
578
+ return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
579
+ };
450
580
  var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
451
581
  var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
452
582
  var eulerVaults = () => getGlobalData2()?.eulerVaults;
@@ -631,4 +761,4 @@ async function fetchMainTokensMap() {
631
761
  return await data.json();
632
762
  }
633
763
 
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 };
764
+ 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, dssChainData, dssConfigFor, dssDebtJoin, dssDebtToken, dssMarketByIlk, 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, skyChainData, skyConfig, skyConfigFor, skyLendersByChain, skyMarkets, 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
@@ -686,7 +749,7 @@ export type LlamaLendConfigChain = {
686
749
  /**
687
750
  * The crvUSD mint (CDP) factory, when the chain's zap indexes it as
688
751
  * `factoryId = 1`. Present on Ethereum only. Recorded because the SAME zap
689
- * serves those markets — see LLAMALEND_PLAN.md.
752
+ * serves those markets — see LLAMALEND.md.
690
753
  */
691
754
  crvUsdFactory?: string;
692
755
  /** Curve data API base. Overridable so a self-hosted indexer can be
@@ -808,10 +871,22 @@ export type UsddConfigChain = {
808
871
  proxyActions: string;
809
872
  /** ProxyRegistry — `proxies(user)` / `build()` for the DSProxy route. */
810
873
  proxyRegistry: string;
811
- /** The debt token. */
812
- usdd: string;
813
- /** DaiJoin-equivalent for USDD enter/exit. */
814
- usddJoin: string;
874
+ /** The debt token. USDD publishes it as `usdd`; Sky (and any future dss
875
+ * fork) publishes the neutral `debtToken`. Read via `dssDebtToken`. */
876
+ usdd?: string;
877
+ debtToken?: string;
878
+ /** DaiJoin-equivalent for debt enter/exit — `usddJoin` on USDD,
879
+ * `debtJoin` elsewhere. Read via `dssDebtJoin`. */
880
+ usddJoin?: string;
881
+ debtJoin?: string;
882
+ /** Display symbol for the debt asset (`USDD`, `DAI`, …). */
883
+ debtSymbol?: string;
884
+ /** Maker's `IlkRegistry` — enumerates ilks and classifies them
885
+ * (`info(ilk).class`). Present on Sky; USDD ships no registry. */
886
+ ilkRegistry?: string;
887
+ /** Maker chainlog (address book) — Sky only. */
888
+ chainlog?: string;
889
+ end?: string;
815
890
  /** Debt decimals (18). */
816
891
  debtDecimals?: number;
817
892
  /** The savings Pot (sDAI-style; savings side lives in margin-fetcher's
@@ -850,12 +925,16 @@ export type UsddMarketConfig = {
850
925
  line: string;
851
926
  /** Per-CDP debt floor, rad (Vat.ilks.dust). */
852
927
  dust: string;
928
+ /** `line == 0` ⇒ the ilk was OFFBOARDED: borrowing is disabled but the
929
+ * existing debt is real and repay/withdraw stay open. Set by the Sky
930
+ * generator; absent on USDD rows. */
931
+ offboarded?: boolean;
853
932
  name?: string;
854
933
  };
855
934
  /** Generated per-chain data: verified ilk list + the cdpi trigger snapshot. */
856
935
  export type UsddChainData = {
857
936
  markets: UsddMarketConfig[];
858
- /** `cdpManager.cdpi()` at generation time — the USDD_PLAN.md
937
+ /** `cdpManager.cdpi()` at generation time — the USDD.md
859
938
  * re-evaluation trigger (0 = no CDP ever opened on this chain). */
860
939
  cdpi?: string;
861
940
  };
@@ -1278,7 +1357,7 @@ export type AaveV4PeripheralsType = {
1278
1357
  [chainId: string]: AaveV4ChainPeripherals;
1279
1358
  };
1280
1359
  /** 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, }: {
1360
+ 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, skyConfigOverride, skyMarketsOverride, frankencoinConfigOverride, frankencoinMarketsOverride, llamaLendConfigOverride, llamaLendMarketsOverride, resupplyConfigOverride, curvanceConfigOverride, compoundV3BulkerOverride, eulerConfigsOverride, eulerVaultsOverride, dolomiteConfigsOverride, dolomiteEmodeOverride, aaveV4SpokesOverride, aaveV4OraclesOverride, aaveV4PeripheralsOverride, siloMarketsOverride, siloPeripheralsOverride, siloMarketsV3Override, siloPeripheralsV3Override, fluidResolversOverride, fluidVaultsOverride, gearboxResolversOverride, }: {
1282
1361
  aaveTokensOverride?: AaveTokensType;
1283
1362
  aavePoolsOverride?: AavePoolsType;
1284
1363
  aaveOraclesOverride?: OracleMap;
@@ -1320,11 +1399,14 @@ export declare function initializeLenderData({ aaveTokensOverride, aavePoolsOver
1320
1399
  inverseMarketsOverride?: InverseMarketsType;
1321
1400
  usddConfigOverride?: UsddConfigType;
1322
1401
  usddMarketsOverride?: UsddMarketsType;
1402
+ skyConfigOverride?: UsddConfigType;
1403
+ skyMarketsOverride?: UsddMarketsType;
1323
1404
  frankencoinConfigOverride?: FrankencoinConfigType;
1324
1405
  frankencoinMarketsOverride?: FrankencoinMarketsType;
1325
1406
  llamaLendConfigOverride?: LlamaLendConfigType;
1326
1407
  llamaLendMarketsOverride?: LlamaLendMarketsType;
1327
1408
  resupplyConfigOverride?: ResupplyConfigType;
1409
+ curvanceConfigOverride?: CurvanceConfigType;
1328
1410
  compoundV3BulkerOverride?: CompoundV3BulkerType;
1329
1411
  eulerConfigsOverride?: EulerConfigsType;
1330
1412
  eulerVaultsOverride?: EulerVaultsType;
@@ -1515,6 +1597,23 @@ export declare const usddMarketByIlk: (lender: string, chainId: string | number,
1515
1597
  * the (empty-roster) provider still runs and reports zero markets rather
1516
1598
  * than being invisible; the per-ilk keys only exist once metadata fills. */
1517
1599
  export declare const usddLendersByChain: (chainId: string | number) => string[];
1600
+ export declare const skyConfig: () => UsddConfigType;
1601
+ export declare const skyConfigFor: (lender: string, chainId: string | number) => UsddConfigChain | undefined;
1602
+ export declare const skyMarkets: () => UsddMarketsType;
1603
+ export declare const skyChainData: (lender: string, chainId: string | number) => UsddChainData | undefined;
1604
+ /** All Sky lender keys with config on a chain (drives getLendersForChain). */
1605
+ export declare const skyLendersByChain: (chainId: string | number) => string[];
1606
+ /** Deployment seed for ANY dss lender (Sky or a fork such as USDD). */
1607
+ export declare const dssConfigFor: (lender: string, chainId: string | number) => UsddConfigChain | undefined;
1608
+ /** Generated ilk roster for ANY dss lender. */
1609
+ export declare const dssChainData: (lender: string, chainId: string | number) => UsddChainData | undefined;
1610
+ /** One ilk of ANY dss lender, by its ilk string (the market-key suffix). */
1611
+ export declare const dssMarketByIlk: (lender: string, chainId: string | number, ilk: string) => UsddMarketConfig | undefined;
1612
+ /** The debt token of a dss deployment, tolerating both field spellings
1613
+ * (`usdd` on the published USDD config, `debtToken` on Sky). */
1614
+ export declare const dssDebtToken: (cfg?: UsddConfigChain) => string | undefined;
1615
+ /** The debt join of a dss deployment (`usddJoin` / `debtJoin`). */
1616
+ export declare const dssDebtJoin: (cfg?: UsddConfigChain) => string | undefined;
1518
1617
  export declare const frankencoinConfig: () => FrankencoinConfigType;
1519
1618
  /** Deployment seed for one Frankencoin lender on a chain. */
1520
1619
  export declare const frankencoinConfigFor: (lender: string, chainId: string | number) => FrankencoinConfigChain | undefined;
@@ -1558,6 +1657,55 @@ export declare const resupplyConfigFor: (lender: string, chainId: string | numbe
1558
1657
  * happens with or without a publish.
1559
1658
  */
1560
1659
  export declare const resupplyLendersByChain: (chainId: string | number) => string[];
1660
+ /**
1661
+ * Built-in Monad deployment seed for Curvance.
1662
+ *
1663
+ * Same arrangement as Resupply: a published `config/curvance.json` still WINS
1664
+ * (see `curvanceConfigFor`), but the provider is live with nothing to publish
1665
+ * because `centralRegistry` is an immutable protocol singleton and the whole
1666
+ * market roster is discovered from it at runtime.
1667
+ *
1668
+ * The `positionManagers` map is the exception and the reason this seed carries
1669
+ * more than one address: PM registration is an un-enumerable mapping, and Monad
1670
+ * public RPCs cap `eth_getLogs` at 100 blocks so `PositionManagerUpdated`
1671
+ * cannot be scanned. Every entry below was verified on-chain 2026-08-07 —
1672
+ * 23/23 answered `isPositionManager == true` on their market AND reported that
1673
+ * same market back from `marketManager()`.
1674
+ *
1675
+ * FIVE live markets have NO Position Manager and therefore no native leverage:
1676
+ * `PT-AUSD-8OCT2026 | AUSD` (the largest market at ~$45M), `PT-earnAUSD | AUSD`,
1677
+ * both `High Yield AUSD Vault` markets, and `aguaUSDCgc | USDC`. Their absence
1678
+ * here is the truth, not a gap to fill in.
1679
+ */
1680
+ export declare const CURVANCE_MONAD_CONFIG: CurvanceConfigChain;
1681
+ export declare const curvanceConfig: () => CurvanceConfigType;
1682
+ /**
1683
+ * Deployment seed for one Curvance lender on a chain. Published metadata wins;
1684
+ * the built-in Monad row is the fallback so the provider works before
1685
+ * `config/curvance.json` exists.
1686
+ */
1687
+ export declare const curvanceConfigFor: (lender: string, chainId: string | number) => CurvanceConfigChain | undefined;
1688
+ /**
1689
+ * All Curvance lender keys with config on a chain (drives getLendersForChain).
1690
+ * Gated on the CENTRAL REGISTRY — the one address the provider bootstraps from.
1691
+ */
1692
+ export declare const curvanceLendersByChain: (chainId: string | number) => string[];
1693
+ /**
1694
+ * Position Managers registered for one Curvance market. Returns `undefined`
1695
+ * when the market has none — a real state (5 of 25 on Monad, including the
1696
+ * largest market), and the signal that native leverage is unavailable there.
1697
+ *
1698
+ * Lookup is case-insensitive because market-manager addresses arrive from
1699
+ * `queryTokensListed`/config in mixed checksum forms.
1700
+ */
1701
+ export declare const curvancePositionManagersFor: (lender: string, chainId: string | number, marketManager: string) => CurvancePositionManagers | undefined;
1702
+ /**
1703
+ * The Position Manager to drive for a market, preferring an explicit `kind` and
1704
+ * otherwise falling back to `simplePositionManager` — which is the right default
1705
+ * because every PM'd market has one, and the vault/native variants exist only as
1706
+ * ALTERNATIVES for legs whose collateral needs an extra wrap step.
1707
+ */
1708
+ export declare const curvancePositionManager: (lender: string, chainId: string | number, marketManager: string, kind?: keyof CurvancePositionManagers) => string | undefined;
1561
1709
  export declare const compoundV3Bulker: () => CompoundV3BulkerType;
1562
1710
  export declare const eulerConfigs: () => EulerConfigsType;
1563
1711
  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.40",
8
8
  "description": "Hold and initialize lending protocol data across a stack",
9
9
  "files": [
10
10
  "dist"