@bananapus/router-terminal-v6 0.0.64 → 0.0.66

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
@@ -13,7 +13,7 @@
13
13
  - [AUDIT_INSTRUCTIONS.md](./AUDIT_INSTRUCTIONS.md) — scope, attack surfaces, and verification steps for auditors.
14
14
  - [SKILLS.md](./SKILLS.md) — agent-oriented index pointing at the right file or contract for a given task.
15
15
  - [STYLE_GUIDE.md](./STYLE_GUIDE.md) — Solidity and repo-layout conventions used across the V6 ecosystem.
16
- - [CHANGELOG.md](./CHANGELOG.md) v5 v6 migration notes and in-v6 behavior changes for integrators.
16
+ - [CHANGELOG.md](./CHANGELOG.md) - V5 swap-terminal to V6 router-terminal migration changelog.
17
17
 
18
18
  ## Overview
19
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bananapus/router-terminal-v6",
3
- "version": "0.0.64",
3
+ "version": "0.0.66",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,10 +24,10 @@
24
24
  "artifacts": "source ./.env && npx sphinx artifacts --org-id 'ea165b21-7cdc-4d7b-be59-ecdd4c26bee4' --project-name 'nana-router-terminal-v6'"
25
25
  },
26
26
  "dependencies": {
27
- "@bananapus/buyback-hook-v6": "^0.0.68",
28
- "@bananapus/core-v6": "^0.0.81",
29
- "@bananapus/permission-ids-v6": "^0.0.28",
30
- "@bananapus/univ4-router-v6": "^0.0.51",
27
+ "@bananapus/buyback-hook-v6": "^0.0.71",
28
+ "@bananapus/core-v6": "^0.0.82",
29
+ "@bananapus/permission-ids-v6": "^0.0.30",
30
+ "@bananapus/univ4-router-v6": "^0.0.53",
31
31
  "@openzeppelin/contracts": "5.6.1",
32
32
  "@uniswap/permit2": "github:Uniswap/permit2#cc56ad0f3439c502c246fc5cfcc3db92bb8b7219",
33
33
  "@uniswap/v3-core": "github:Uniswap/v3-core#6562c52e8f75f0c10f9deaf44861847585fc8129",
@@ -282,10 +282,17 @@ contract JBPayRouteResolver is IJBPayRouteResolver {
282
282
  // Decode the buyback hook's routing metadata. When the hook mints in `afterPayRecordedWith`, the terminal
283
283
  // preview returns zero token counts and the router must score the route from the hook's commitments.
284
284
  (
285
- ,
285
+ bool projectTokenIs0,
286
286
  uint256 amountToMintWith,
287
- uint256 minimumSwapAmountOut,,,
288
- uint256 tokenCountWithoutHook,,,,,
287
+ uint256 minimumSwapAmountOut,
288
+ bool hasExplicitMinimumSwapAmountOut,
289
+ address controller,
290
+ uint256 tokenCountWithoutHook,
291
+ uint256 weightRatio,
292
+ uint256 quotedAmountToSwapWith,
293
+ int24 twapTick,
294
+ uint128 twapLiquidity,
295
+ bytes32 poolId,
289
296
  uint256 minimumBeneficiaryTokenCount,
290
297
  uint256 minimumReservedTokenCount,
291
298
  uint256 rawSwapQuote
@@ -299,6 +306,7 @@ contract JBPayRouteResolver is IJBPayRouteResolver {
299
306
  address,
300
307
  uint256,
301
308
  uint256,
309
+ uint256,
302
310
  int24,
303
311
  uint128,
304
312
  bytes32,
@@ -307,6 +315,14 @@ contract JBPayRouteResolver is IJBPayRouteResolver {
307
315
  uint256
308
316
  )
309
317
  );
318
+ projectTokenIs0;
319
+ hasExplicitMinimumSwapAmountOut;
320
+ controller;
321
+ weightRatio;
322
+ quotedAmountToSwapWith;
323
+ twapTick;
324
+ twapLiquidity;
325
+ poolId;
310
326
 
311
327
  // The hook's beneficiary/reserved commitments are only for the AMM leg. If the hook leaves part of the
312
328
  // payment to mint directly, estimate that direct-mint leg at the same issuance rate used for the swapped
@@ -1790,8 +1790,7 @@ contract JBRouterTerminal is
1790
1790
  if (Currency.unwrap(currency) == address(0)) _wrapNativeToken(amount);
1791
1791
  }
1792
1792
 
1793
- /// @notice Transfer tokens from one address to another using direct approval, `safeTransfer`, or Permit2 as a
1794
- /// fallback.
1793
+ /// @notice Transfer tokens from one address to another using direct approval, `safeTransfer`, or Permit2 fallback.
1795
1794
  /// @param from The address to transfer tokens from.
1796
1795
  /// @param to The address to transfer tokens to.
1797
1796
  /// @param token The address of the token to transfer.
@@ -2403,8 +2402,7 @@ contract JBRouterTerminal is
2403
2402
  /// 1. Users SHOULD provide a `pay` swap quote in the payment metadata (obtained from an off-chain
2404
2403
  /// quoter or RPC simulation). The quote must encode the output token and minimum output amount. When present,
2405
2404
  /// this function is bypassed entirely — see `_pickPoolAndQuote`.
2406
- /// 2. When a hook implements `IGeomeanOracle.observe(...)`, this function uses that oracle-derived tick instead
2407
- /// of spot.
2405
+ /// 2. When a hook implements `IGeomeanOracle.observe(...)`, this uses its oracle-derived tick, not spot price.
2408
2406
  /// 3. The sigmoid slippage formula (`JBSwapLib.getSlippageTolerance`) enforces a minimum 2% slippage floor
2409
2407
  /// (pool fee + 1%, with a hard floor of 2%), which bounds the worst-case loss even if the spot price is
2410
2408
  /// manipulated. For small swaps in deep pools the tolerance stays near this floor; for larger swaps it
@@ -800,8 +800,7 @@ contract JBRouterTerminalRegistry is IJBRouterTerminalRegistry, JBPermissioned,
800
800
  return 0;
801
801
  }
802
802
 
803
- /// @notice Transfer tokens from one address to another using direct approval, `safeTransfer`, or Permit2 as a
804
- /// fallback.
803
+ /// @notice Transfer tokens from one address to another using direct approval, `safeTransfer`, or Permit2 fallback.
805
804
  /// @param from The address to transfer tokens from.
806
805
  /// @param to The address to transfer tokens to.
807
806
  /// @param token The address of the token to transfer.
@@ -66,9 +66,7 @@ interface IJBRouterTerminalRegistry is IJBTerminal, IJBForwardingTerminal, IJBPa
66
66
  /// @return length The number of entries in the default-terminal history.
67
67
  function defaultTerminalHistoryLength() external view returns (uint256 length);
68
68
 
69
- /// @notice The `PROJECTS.count()` snapshot at the moment of the most recent `setDefaultTerminal`. Projects with
70
- /// ID <= this threshold do NOT fall through to `defaultTerminal`; they fall through to the historical entry that
71
- /// covers their ID range.
69
+ /// @notice The `PROJECTS.count()` snapshot at the latest `setDefaultTerminal`, used for historical fall-through.
72
70
  /// @return threshold The project-ID threshold beyond which `defaultTerminal` applies on fall-through.
73
71
  function defaultTerminalProjectIdThreshold() external view returns (uint256 threshold);
74
72