curvance 4.1.0 → 4.1.2

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/README.md CHANGED
@@ -34,10 +34,14 @@ const { markets, reader, dexAgg, global_milestone } = await setupChain("monad-ma
34
34
  ```ts
35
35
  setupChain(
36
36
  chain: ChainRpcPrefix,
37
- provider: curvance_provider | null = null, // null → SDK constructs a JsonRpcProvider
37
+ provider: curvance_provider | null = null, // signer (wallet) OR read-only provider; null → SDK default
38
38
  approval_protection: boolean = false, // revoke-before-approve pattern
39
39
  api_url: string = "https://api.curvance.com",
40
- options: { feePolicy?: FeePolicy } = {}
40
+ options: {
41
+ feePolicy?: FeePolicy; // zap/leverage fee routing (default: NO_FEE_POLICY)
42
+ account?: address | null; // user address for user-specific reads without a signer
43
+ readProvider?: curvance_read_provider | null; // explicit override for read transport
44
+ } = {}
41
45
  ): Promise<{
42
46
  markets: Market[],
43
47
  reader: ProtocolReader,
@@ -46,6 +50,13 @@ setupChain(
46
50
  }>
47
51
  ```
48
52
 
53
+ ### RPC routing
54
+
55
+ - **Wallet connected** (signer with a `.provider`) → the wallet's own provider is the **primary** read source; the chain's configured RPC + fallbacks absorb wallet RPC failures. This distributes read load across users' wallet RPCs and respects whichever endpoint each user chose.
56
+ - **Signerless / public view** → the chain's configured RPC is primary; chain fallbacks serve as backup.
57
+ - **Explicit `options.readProvider`** → wins over all of the above. Use when you want deterministic read transport (e.g. fork testing).
58
+ - **Writes** always route through the connected signer; they never use the chain RPC or fallbacks.
59
+
49
60
  ### Explore markets
50
61
 
51
62
  ```ts
@@ -397,6 +408,29 @@ leverage.checkLeverageAmountBelowMinimum(input) // $10.10 minimum borrow
397
408
  leverage.checkBorrowExceedsLiquidity(borrowAmount, availableLiquidity)
398
409
  ```
399
410
 
411
+ ### Contract-level slippage amplification
412
+
413
+ ```ts
414
+ import { amplifyContractSlippage, toContractSwapSlippage } from "curvance"
415
+
416
+ // Used internally by CToken.leverageUp / leverageDown / depositAndLeverage to
417
+ // expand the contract-level slippage budget for the equity-fraction amplification
418
+ // that on-chain `checkSlippage` applies. Each deterministic per-swap loss
419
+ // (CURVANCE_FEE_BPS, full-deleverage overshoot) gets amplified by (L-1) in
420
+ // (L-1)-terms, so contractSlippage must absorb it without dipping into the
421
+ // user's raw `slippage` budget (reserved for variable DEX impact + drift).
422
+ amplifyContractSlippage(baseSlippageBps, leverageDelta, bpsToAmplify)
423
+
424
+ // Used by DEX aggregator adapters (KyberSwap etc.) in `quoteAction` to
425
+ // compute the WAD-BPS slippage tolerance for the `Swap.slippage` struct
426
+ // field consumed by on-chain `_swapSafe`. When the aggregator pre-deducts
427
+ // a currency_in fee, the expansion absorbs that fee so `_swapSafe` doesn't
428
+ // double-count it as swap slippage. Adapters whose fee model does NOT
429
+ // pre-deduct (e.g., out-of-band referrer paid from output) should call
430
+ // with `feeBps` omitted / 0n so no expansion applies.
431
+ toContractSwapSlippage(userSlippageBps, feeBps?)
432
+ ```
433
+
400
434
  ### Borrow math
401
435
 
402
436
  ```ts
@@ -617,3 +651,46 @@ DEFAULT_SLIPPAGE_BPS // 100n (1%)
617
651
  | [ethers v6](https://www.npmjs.com/package/ethers) | Typed contract interactions, providers, and signer handling |
618
652
  | [decimal.js](https://www.npmjs.com/package/decimal.js) | Arbitrary-precision math for all token amounts, prices, and rates |
619
653
  | [@redstone-finance/sdk](https://www.npmjs.com/package/@redstone-finance/sdk) | Price feed writes bundled into multicalls for pull-oracle adaptors |
654
+
655
+ ## ❯ Pre-Publish Checklist
656
+
657
+ Run before every `npm publish` that touches `src/chains/`, `src/setup.ts`,
658
+ `src/retry-provider.ts`, or any RPC-adjacent code:
659
+
660
+ 1. **Unit tests green.** `npm test` — must show all `test:transport` tests
661
+ passing. `tests/rpc-config-shape.test.ts` locks the structural invariants
662
+ of `chain_rpc_config` (no known-bad RPCs, no duplicate fallbacks, policy
663
+ fields within sane ranges).
664
+
665
+ 2. **Live RPC probe against both app origins.** In the app repo:
666
+
667
+ ```bash
668
+ cd path/to/curvance-app
669
+ RPC_PROBE_YES=1 node scripts/rpc-probe.mjs
670
+ ```
671
+
672
+ The probe hits `staging.curvance.com` and `app.curvance.com` origins
673
+ against every URL in `chain_rpc_config`. Required thresholds for the
674
+ **primary** and **first fallback** on each chain:
675
+
676
+ - CORS preflight returns `204` or `200` with a matching `Access-Control-Allow-Origin` header
677
+ - Correctness call returns a valid `chainId` matching the chain
678
+ - Latency `p95 ≤ 500ms`
679
+ - 50-concurrent-burst: `≥ 45/50` successful (allow 10% for transient blips)
680
+
681
+ Any primary or first-fallback failing these thresholds **blocks the
682
+ publish**. Demote to a later fallback position or replace.
683
+
684
+ Deeper-cascade fallbacks (`fallbacks[1]+`) MAY have looser limits if
685
+ documented inline with a comment in `chain_rpc_config`.
686
+
687
+ 3. **Do not add the probe to CI.** The probe fires ~500 requests per run
688
+ across 5-10 public RPCs from a single IP. Running it on every PR would
689
+ trip per-IP rate limits and eventually provoke origin bans from the
690
+ free RPCs we depend on — recreating the exact failure mode
691
+ (monadinfra 403'ing `staging.curvance.com`) that motivated building
692
+ this probe.
693
+
694
+ 4. **Republish workflow.** Version bump → `npm publish` → in app repo,
695
+ bump `curvance` in `package.json` to the new version → `yarn install`
696
+ → commit `yarn.lock` → deploy.
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/chains/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGzC,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,EAAE,cAYtC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;oBAhCb,MAAM;sBACJ,MAAM;mBACT,MAAM;4BACG,MAAM;wBACV,MAAM;yBACL,MAAM;uBACR,MAAM;qBACR;YACT,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACrB;;;;;oBAVW,MAAM;sBACJ,MAAM;mBACT,MAAM;4BACG,MAAM;wBACV,MAAM;yBACL,MAAM;uBACR,MAAM;qBACR;YACT,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACrB;;CAiCkD,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAE1E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,GAAG,eAAe,CAEpF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,GAAG,eAAe,GAAG,IAAI,CAG5F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,GAAG,eAAe,EAAE,CAExF"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/chains/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGzC,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAWD,eAAO,MAAM,wBAAwB,EAAE,cAYtC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;oBAzCb,MAAM;sBACJ,MAAM;mBACT,MAAM;4BACG,MAAM;wBACV,MAAM;yBACL,MAAM;uBACR,MAAM;qBACR;YACT,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACrB;;;;;oBAVW,MAAM;sBACJ,MAAM;mBACT,MAAM;4BACG,MAAM;wBACV,MAAM;yBACL,MAAM;uBACR,MAAM;qBACR;YACT,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACrB;;CAqDkD,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAE1E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,GAAG,eAAe,CAEpF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,GAAG,eAAe,GAAG,IAAI,CAG5F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,GAAG,eAAe,EAAE,CAExF"}
@@ -6,10 +6,19 @@ exports.createChainPrimaryProvider = createChainPrimaryProvider;
6
6
  exports.createChainFallbackProvider = createChainFallbackProvider;
7
7
  exports.createChainFallbackProviders = createChainFallbackProviders;
8
8
  const ethers_1 = require("ethers");
9
+ // Latency budget: primary + 1 fallback must resolve within ~17s worst case so
10
+ // users don't assume the site is broken. The fallback IS the real second try
11
+ // — retrying 3× on a dying primary before failover is double-insurance. One
12
+ // retry per provider (2 attempts each) with a 4s per-attempt timeout gives:
13
+ // primary ~8.2s + fallback ~8.2s ≈ 16.5s ceiling. Healthy RPCs respond in
14
+ // <1s so happy path is unchanged.
15
+ // See tests/retry-fallback.test.ts — "DEFAULT_RETRY_CONFIG keeps single-
16
+ // provider worst-case under 10 seconds" and "read with hanging primary..."
17
+ // lock this budget in.
9
18
  exports.DEFAULT_CHAIN_RPC_POLICY = {
10
- retryCount: 3,
19
+ retryCount: 1,
11
20
  retryDelayMs: 150,
12
- timeoutMs: 10_000,
21
+ timeoutMs: 4_000,
13
22
  fallbackCooldownMs: 30_000,
14
23
  rankIntervalMs: 30_000,
15
24
  rankSampleCount: 5,
@@ -22,8 +31,19 @@ exports.DEFAULT_CHAIN_RPC_POLICY = {
22
31
  exports.chain_rpc_config = {
23
32
  "monad-mainnet": {
24
33
  ...exports.DEFAULT_CHAIN_RPC_POLICY,
25
- primary: "https://rpc-mainnet.monadinfra.com/",
26
- fallbacks: ["https://monad-mainnet.drpc.org"],
34
+ // Empirically measured 2026-04-16 via app/scripts/rpc-probe.mjs against
35
+ // both staging.curvance.com and app.curvance.com origins. Primary +
36
+ // first fallback held 100/100 under 100-concurrent burst. Cascade
37
+ // ordered by: (1) CORS wildcard, (2) p50 latency, (3) per-IP rate
38
+ // limit headroom. monadinfra dropped — it returns 403 + missing
39
+ // Access-Control-Allow-Origin for requests from curvance.com origins.
40
+ primary: "https://monad-rpc.huginn.tech",
41
+ fallbacks: [
42
+ "https://gm.monad.at.htw.tech",
43
+ "https://monad-mainnet.drpc.org",
44
+ "https://rpc3.monad.xyz",
45
+ "https://rpc1.monad.xyz",
46
+ ],
27
47
  },
28
48
  "arb-sepolia": {
29
49
  ...exports.DEFAULT_CHAIN_RPC_POLICY,
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/chains/rpc.ts"],"names":[],"mappings":";;;AAmDA,8CAEC;AAED,gEAEC;AAED,kEAGC;AAED,oEAEC;AAlED,mCAAyC;AAsB5B,QAAA,wBAAwB,GAAmB;IACpD,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,MAAM;IACjB,kBAAkB,EAAE,MAAM;IAC1B,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE;QACT,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,GAAG;KACjB;CACJ,CAAC;AAEW,QAAA,gBAAgB,GAAG;IAC5B,eAAe,EAAE;QACb,GAAG,gCAAwB;QAC3B,OAAO,EAAE,qCAAqC;QAC9C,SAAS,EAAE,CAAC,gCAAgC,CAAC;KAChD;IACD,aAAa,EAAE;QACX,GAAG,gCAAwB;QAC3B,OAAO,EAAE,mCAAmC;QAC5C,SAAS,EAAE,EAAE;KAChB;CACkD,CAAC;AAIxD,SAAgB,iBAAiB,CAAC,KAAwB;IACtD,OAAO,wBAAgB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAwB;IAC/D,OAAO,IAAI,wBAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,2BAA2B,CAAC,KAAwB;IAChE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,wBAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,SAAgB,4BAA4B,CAAC,KAAwB;IACjE,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,wBAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/chains/rpc.ts"],"names":[],"mappings":";;;AAuEA,8CAEC;AAED,gEAEC;AAED,kEAGC;AAED,oEAEC;AAtFD,mCAAyC;AAsBzC,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,kCAAkC;AAClC,yEAAyE;AACzE,2EAA2E;AAC3E,uBAAuB;AACV,QAAA,wBAAwB,GAAmB;IACpD,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,KAAK;IAChB,kBAAkB,EAAE,MAAM;IAC1B,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE;QACT,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,GAAG;KACjB;CACJ,CAAC;AAEW,QAAA,gBAAgB,GAAG;IAC5B,eAAe,EAAE;QACb,GAAG,gCAAwB;QAC3B,wEAAwE;QACxE,oEAAoE;QACpE,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,sEAAsE;QACtE,OAAO,EAAE,+BAA+B;QACxC,SAAS,EAAE;YACP,8BAA8B;YAC9B,gCAAgC;YAChC,wBAAwB;YACxB,wBAAwB;SAC3B;KACJ;IACD,aAAa,EAAE;QACX,GAAG,gCAAwB;QAC3B,OAAO,EAAE,mCAAmC;QAC5C,SAAS,EAAE,EAAE;KAChB;CACkD,CAAC;AAIxD,SAAgB,iBAAiB,CAAC,KAAwB;IACtD,OAAO,wBAAgB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAwB;IAC/D,OAAO,IAAI,wBAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,2BAA2B,CAAC,KAAwB;IAChE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,wBAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,SAAgB,4BAA4B,CAAC,KAAwB;IACjE,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,wBAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACrF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
@@ -46,9 +46,10 @@ const EXCLUDED_ZAP_SYMBOLS = new Set([
46
46
  *
47
47
  * Because _swapSafe measures value loss against the FULL input (pre-fee),
48
48
  * the deterministic KyberSwap fee would consume feeBps of the user's MEV
49
- * tolerance if not compensated. Each call site expands action.slippage by
50
- * feeBps after quoting so the fee is absorbed and the user's chosen
51
- * tolerance is preserved for actual MEV/routing variance.
49
+ * tolerance if not compensated. `KyberSwap.quoteAction` (the DEX adapter)
50
+ * expands action.slippage by feeBps internally so the fee is absorbed and
51
+ * the user's chosen tolerance is preserved for actual MEV/routing variance.
52
+ * Callers pass raw user slippage — the adapter owns the expansion.
52
53
  *
53
54
  * Asymmetry between leverage up and deleverage
54
55
  * --------------------------------------------
@@ -70,19 +71,38 @@ const EXCLUDED_ZAP_SYMBOLS = new Set([
70
71
  */
71
72
  const LEVERAGE = {
72
73
  /** Max leverage cap: fraction of theoretical max the user can select.
73
- * Prevents boundary singularity at exact max leverage. Independent of
74
- * the slippage buffers below protects post-op position health, not
75
- * in-op slippage. */
76
- MAX_LEVERAGE_FACTOR: (0, decimal_js_1.default)(0.995),
74
+ * Prevents boundary singularity at exact max leverage the contract's
75
+ * post-op `canBorrow` check re-evaluates LTV against fresh on-chain
76
+ * state, and several loss channels can tick final LTV above collRatio
77
+ * at the boundary:
78
+ * - Pool fees (variable 1bp–1% across pools; aggregator route choice
79
+ * is not knowable at cap-compute time, can differ per-trade even
80
+ * for the same market)
81
+ * - `CURVANCE_FEE_BPS` (deterministic, amplified by (L-1); at L=10
82
+ * eats ~36bps of equity-fraction)
83
+ * - Oracle drift between preview snapshot and Redstone payload at
84
+ * tx inclusion
85
+ * - Share rounding (wei-level)
86
+ *
87
+ * History: 0.99 → 0.995 when caching improved precision (pre-fee era).
88
+ * 0.995 → 0.98 when `CURVANCE_FEE_BPS = 4` landed and users on high-
89
+ * collRatio markets (shMON r=0.9 → 10x theoretical) hit
90
+ * `InsufficientCollateral` reverts at the boundary.
91
+ *
92
+ * Independent of `LEVERAGE_UP_BUFFER_BPS` and `DELEVERAGE_OVERHEAD_BPS`
93
+ * below — those protect in-op slippage at `_swapSafe`; this protects
94
+ * post-op position health at `canBorrow`. */
95
+ MAX_LEVERAGE_FACTOR: (0, decimal_js_1.default)(0.98),
77
96
  /** Flat BPS buffer added to leverage-up DEX/swapSafe slippage tolerance.
78
97
  * Under single-oracle, the only forced loss at the swap level comes from
79
98
  * wei-level share rounding plus possible Redstone price drift between
80
99
  * snapshot RPC and tx broadcast block. Both are small constants.
81
100
  *
82
- * Fee handling: each call site expands both action.slippage (by feeBps,
83
- * so _swapSafe doesn't treat the fee as MEV) and contractSlippage (by
84
- * (L-1) × feeBps, so checkSlippage doesn't fire from equity-fraction
85
- * amplification). This buffer covers rounding/drift only. */
101
+ * Fee handling: KyberSwap.quoteAction expands action.slippage by feeBps
102
+ * internally so _swapSafe doesn't treat the fee as MEV. Each call site
103
+ * still computes contractSlippage (expanded by (L-1) × feeBps) so
104
+ * checkSlippage doesn't fire from equity-fraction amplification. This
105
+ * buffer covers rounding/drift only. */
86
106
  LEVERAGE_UP_BUFFER_BPS: 10n,
87
107
  /** BPS overhead on full deleverage swap sizing — absolute terms.
88
108
  * Oversizes the collateral→debt swap so DEX impact + drift doesn't
@@ -166,8 +186,9 @@ class CToken extends Calldata_1.Calldata {
166
186
  get exchangeRate() { return this.cache.exchangeRate; }
167
187
  get canZap() { return this.zapTypes.length > 0; }
168
188
  get maxLeverage() {
169
- // Cap max leverage slightly below theoretical max (1% of leverage factor)
170
- // to account for share rounding and fee losses that prevent reaching the exact max.
189
+ // Cap max leverage below theoretical max by applying MAX_LEVERAGE_FACTOR
190
+ // to the (theoretical - 1) span. See LEVERAGE.MAX_LEVERAGE_FACTOR docs
191
+ // for the loss channels this buffer absorbs and the tuning history.
171
192
  const theoretical = (0, decimal_js_1.default)(this.cache.maxLeverage).div(helpers_1.BPS);
172
193
  const factor = theoretical.sub(1);
173
194
  return (0, decimal_js_1.default)(1).add(factor.mul(LEVERAGE.MAX_LEVERAGE_FACTOR));
@@ -867,25 +888,15 @@ class CToken extends Calldata_1.Calldata {
867
888
  });
868
889
  const feeReceiver = feeBps > 0n ? this.setup.feePolicy.feeReceiver : undefined;
869
890
  const { action, quote } = await this.currentChainConfig.dexAgg.quoteAction(manager.address, borrow.asset.address, this.asset.address, borrowAssets, slippage, feeBps, feeReceiver);
870
- // _swapSafe measures value loss as (valueIn - valueOut) / valueIn
871
- // where valueIn is the FULL input (pre-fee). KyberSwap deducts
872
- // the fee before swapping, so _swapSafe sees feeBps as "slippage"
873
- // even though it's a known, deterministic cost. Expand
874
- // action.slippage by feeBps so the fee doesn't consume the user's
875
- // MEV protection budget. The KyberSwap quote already used the
876
- // user's raw slippage for minReturnAmount (DEX-level protection).
877
- if (feeBps > 0n) {
878
- action.slippage = FormatConverter_1.default.bpsToBpsWad(slippage + feeBps);
879
- }
891
+ // Fee-aware slippage expansion now lives inside KyberSwap.quoteAction
892
+ // so any caller inherits correct behavior. See KyberSwap.ts for the
893
+ // rationale. The fee still reduces swap output, which checkSlippage
894
+ // sees as equity loss amplified by (L-1) — handled below.
880
895
  // The fee also reduces swap output, which checkSlippage sees
881
896
  // as equity loss amplified by (L-1) — same pattern as
882
897
  // deleverage. Expand the contract-level tolerance to absorb it.
883
- const contractSlippage = feeBps > 0n
884
- ? slippage + BigInt(newLeverage.sub(1)
885
- .mul(Number(feeBps))
886
- .ceil()
887
- .toFixed(0))
888
- : slippage;
898
+ // See `amplifyContractSlippage` in helpers.ts for rationale.
899
+ const contractSlippage = (0, helpers_1.amplifyContractSlippage)(slippage, newLeverage.sub(1), feeBps);
889
900
  calldata = manager.getLeverageCalldata({
890
901
  borrowableCToken: borrow.address,
891
902
  borrowAssets: FormatConverter_1.default.decimalToBigInt(borrowAmount, borrow.asset.decimals),
@@ -995,12 +1006,8 @@ class CToken extends Calldata_1.Calldata {
995
1006
  swapCollateral = swapCollateral * 10000n / (10000n - feeBps);
996
1007
  }
997
1008
  const { action, quote } = await config.dexAgg.quoteAction(manager.address, this.asset.address, borrowToken.asset.address, swapCollateral, slippage, feeBps, feeReceiver);
998
- // _swapSafe: expand action.slippage by feeBps so the
999
- // deterministic fee cost doesn't eat the user's MEV budget.
1000
- // Same rationale as leverageUp — see comment there.
1001
- if (feeBps > 0n) {
1002
- action.slippage = FormatConverter_1.default.bpsToBpsWad(slippage + feeBps);
1003
- }
1009
+ // Fee-aware slippage expansion for `_swapSafe` is handled by
1010
+ // KyberSwap.quoteAction. See KyberSwap.ts for rationale.
1004
1011
  const minRepay = isFullDeleverage ? 1n : quote.min_out;
1005
1012
  // checkSlippage measures equity-fraction loss. Both the
1006
1013
  // intentional swap overshoot (full deleverage only) and the
@@ -1011,18 +1018,16 @@ class CToken extends Calldata_1.Calldata {
1011
1018
  //
1012
1019
  // Full: (L-1) × (overhead + fee) — overshoot + fee
1013
1020
  // Partial: (ΔL) × fee — fee only, no overshoot
1021
+ //
1022
+ // See `amplifyContractSlippage` in helpers.ts for the shared
1023
+ // primitive + per-call-site asymmetry docs.
1014
1024
  const leverageDelta = isFullDeleverage
1015
1025
  ? currentLeverage.sub(1)
1016
1026
  : currentLeverage.sub(newLeverage);
1017
1027
  const forcedBps = isFullDeleverage
1018
1028
  ? LEVERAGE.DELEVERAGE_OVERHEAD_BPS + feeBps
1019
1029
  : feeBps;
1020
- const contractSlippage = forcedBps > 0n
1021
- ? slippage + BigInt(leverageDelta
1022
- .mul(Number(forcedBps))
1023
- .ceil()
1024
- .toFixed(0))
1025
- : slippage;
1030
+ const contractSlippage = (0, helpers_1.amplifyContractSlippage)(slippage, leverageDelta, forcedBps);
1026
1031
  calldata = manager.getDeleverageCalldata({
1027
1032
  cToken: this.address,
1028
1033
  collateralAssets: swapCollateral,
@@ -1076,19 +1081,11 @@ class CToken extends Calldata_1.Calldata {
1076
1081
  });
1077
1082
  const feeReceiver = feeBps > 0n ? this.setup.feePolicy.feeReceiver : undefined;
1078
1083
  const { action, quote } = await this.currentChainConfig.dexAgg.quoteAction(manager.address, borrow.asset.address, this.asset.address, borrowAssets, slippage, feeBps, feeReceiver);
1079
- // _swapSafe: expand action.slippage by feeBps so the
1080
- // deterministic fee cost doesn't eat the user's MEV budget.
1081
- // Same rationale as leverageUp — see comment there.
1082
- if (feeBps > 0n) {
1083
- action.slippage = FormatConverter_1.default.bpsToBpsWad(slippage + feeBps);
1084
- }
1085
- // Fee amplification: same pattern as leverageUp.
1086
- const contractSlippage = feeBps > 0n
1087
- ? slippage + BigInt(multiplier.sub(1)
1088
- .mul(Number(feeBps))
1089
- .ceil()
1090
- .toFixed(0))
1091
- : slippage;
1084
+ // Fee-aware slippage expansion for `_swapSafe` is handled by
1085
+ // KyberSwap.quoteAction. See KyberSwap.ts for rationale.
1086
+ // Fee amplification: same pattern as leverageUp. See
1087
+ // `amplifyContractSlippage` in helpers.ts.
1088
+ const contractSlippage = (0, helpers_1.amplifyContractSlippage)(slippage, multiplier.sub(1), feeBps);
1092
1089
  calldata = manager.getDepositAndLeverageCalldata(FormatConverter_1.default.decimalToBigInt(depositAmount, this.asset.decimals), {
1093
1090
  borrowableCToken: borrow.address,
1094
1091
  borrowAssets: borrowAssets,