@rhinestone/sdk 0.0.0-dev-20261008155503 → 0.0.0-dev-20261008155246

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/src/clients/orchestrator/client.js +1 -1
  2. package/dist/src/config/account.d.ts +18 -39
  3. package/dist/src/config/account.d.ts.map +1 -1
  4. package/dist/src/modules/validators/permissions.d.ts +1 -0
  5. package/dist/src/modules/validators/permissions.d.ts.map +1 -1
  6. package/dist/src/modules/validators/permissions.js +13 -3
  7. package/dist/src/modules/validators/smart-sessions/one-time-use.d.ts +0 -2
  8. package/dist/src/modules/validators/smart-sessions/one-time-use.d.ts.map +1 -1
  9. package/dist/src/modules/validators/smart-sessions/one-time-use.js +0 -4
  10. package/dist/src/modules/validators/smart-sessions/policies/claim.d.ts +1 -1
  11. package/dist/src/modules/validators/smart-sessions/policies/claim.d.ts.map +1 -1
  12. package/dist/src/modules/validators/smart-sessions/policies/claim.js +13 -5
  13. package/dist/src/modules/validators/smart-sessions/resolve.d.ts.map +1 -1
  14. package/dist/src/modules/validators/smart-sessions/resolve.js +36 -129
  15. package/dist/src/modules/validators/smart-sessions/settlement/cctp.d.ts.map +1 -1
  16. package/dist/src/modules/validators/smart-sessions/settlement/cctp.js +2 -1
  17. package/dist/src/modules/validators/smart-sessions/settlement/eco.d.ts.map +1 -1
  18. package/dist/src/modules/validators/smart-sessions/settlement/eco.js +6 -2
  19. package/dist/src/modules/validators/smart-sessions/settlement/fees.d.ts +2 -2
  20. package/dist/src/modules/validators/smart-sessions/settlement/fees.d.ts.map +1 -1
  21. package/dist/src/modules/validators/smart-sessions/settlement/fees.js +6 -9
  22. package/dist/src/modules/validators/smart-sessions/settlement/lz.d.ts.map +1 -1
  23. package/dist/src/modules/validators/smart-sessions/settlement/lz.js +1 -0
  24. package/dist/src/modules/validators/smart-sessions/settlement/oft.d.ts.map +1 -1
  25. package/dist/src/modules/validators/smart-sessions/settlement/oft.js +2 -1
  26. package/dist/src/modules/validators/smart-sessions/settlement/same-chain.d.ts +3 -0
  27. package/dist/src/modules/validators/smart-sessions/settlement/same-chain.d.ts.map +1 -1
  28. package/dist/src/modules/validators/smart-sessions/settlement/same-chain.js +23 -4
  29. package/dist/src/modules/validators/smart-sessions/settlement/scope.d.ts +1 -3
  30. package/dist/src/modules/validators/smart-sessions/settlement/scope.d.ts.map +1 -1
  31. package/dist/src/modules/validators/smart-sessions/settlement/scope.js +35 -18
  32. package/dist/src/modules/validators/smart-sessions/settlement/types.d.ts +5 -1
  33. package/dist/src/modules/validators/smart-sessions/settlement/types.d.ts.map +1 -1
  34. package/dist/src/modules/validators/smart-sessions/signing.d.ts.map +1 -1
  35. package/dist/src/modules/validators/smart-sessions/signing.js +1 -2
  36. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { createOrchestratorAuth } from './auth.js';
3
3
  import { ChainCatalog, parseChains } from './chain-catalog.js';
4
4
  import { fetchOrchestratorJson } from './fetch.js';
5
5
  import { mapIntentRequestToWire, mapIntentStatusFromWire, mapPortfolioFromWire, mapQuoteResponseFromWire, mapSignedIntentToWire, mapSplitRequestToWire, mapSplitResultFromWire, } from './mappers.js';
6
- const SDK_VERSION = '0.0.0-dev-20261008155503';
6
+ const SDK_VERSION = '0.0.0-dev-20261008155246';
7
7
  const API_VERSION = '2026-04.blanc';
8
8
  // Bounds how long a killed layer or pulled settlement address stays pinnable.
9
9
  const CHAIN_CATALOG_TTL_MS = 10 * 60 * 1000;
@@ -150,12 +150,6 @@ interface SpendingLimitsPolicy {
150
150
  amount: bigint;
151
151
  }[];
152
152
  }
153
- /**
154
- * A raw action's time window. Optional: bound a session with
155
- * `oneTimeUse.validUntil`. On a `oneTimeUse` session, `validUntil` (unix ms)
156
- * can only shorten that one session-wide deadline (the earliest applies), and
157
- * `validAfter` must be `0`. Any other use throws.
158
- */
159
153
  interface TimeFramePolicy {
160
154
  type: 'time-frame';
161
155
  validUntil: number;
@@ -257,7 +251,7 @@ interface Permit2ClaimPolicy {
257
251
  * app fee can settle
258
252
  * through it unless the permit sets `allowFees`. `ECO_IE` also requires
259
253
  * `maxAmount`, a delivery floor and `validUntil`; `validUntil` at least 7 days
260
- * from now, since the session pins Eco's reward deadline under it and Eco
254
+ * after it can first act (now or `validAfter`), since the session pins Eco's reward deadline under it and Eco
261
255
  * quotes that ~7 days out. Both tokens must be ones the orchestrator serves
262
256
  * for `ECO_IE`. The floor is `maxFeeBps`, which also needs their decimals
263
257
  * served, or a `to.minAmount` on every leg, for any two such tokens; given
@@ -273,9 +267,10 @@ type CrossChainSettlementLayer = 'SAME_CHAIN' | 'ECO' | 'ACROSS' | 'CCTP' | 'OFT
273
267
  * A high-level permit that authorises a session key to move funds
274
268
  * between two chains via Permit2 arbiter settlement. The SDK expands
275
269
  * one `CrossChainPermit` into a {@link Permit2ClaimPolicy} (claim-side)
276
- * plus an optional `SpendingLimitsPolicy` on the fallback action — the
277
- * claim policy itself doesn't enforce amounts on-chain, so the SDK lifts
278
- * that guarantee into an action-level policy that does.
270
+ * plus optional `SpendingLimitsPolicy` / `TimeFramePolicy`
271
+ * entries on the fallback action — the claim policy itself doesn't
272
+ * enforce amounts or expiry on-chain, so we lift those guarantees into
273
+ * action-level policies that do.
279
274
  *
280
275
  * Resolved from {@link CrossChainPermissionInput} by the SDK; consumers
281
276
  * normally set `SessionDefinition.crossChainPermits` with the input shape,
@@ -300,13 +295,9 @@ interface CrossChainPermit {
300
295
  * still constrains the destination recipient even when `to` is absent.
301
296
  */
302
297
  to?: ToLeg[];
303
- /**
304
- * Optional upper bound on the permit deadline (Permit2 deadline) — unix
305
- * seconds. Requires `oneTimeUse` and can only shorten its session-wide
306
- * deadline; see {@link CrossChainPermissionInput}.
307
- */
298
+ /** Upper bound on the permit deadline (Permit2 deadline) — unix seconds */
308
299
  validUntil?: bigint;
309
- /** Not supported; a permit that sets it throws. */
300
+ /** Lower bound on the permit deadline — unix seconds */
310
301
  validAfter?: bigint;
311
302
  /** Per-destination fill-deadline windows — unix seconds */
312
303
  fillDeadline?: {
@@ -397,8 +388,8 @@ interface ToLeg {
397
388
  * `SessionDefinition.crossChainPermits`; token fields are per-chain ERC-20
398
389
  * addresses (v2 no longer accepts symbols) and the SDK resolves `Date`s to
399
390
  * on-chain deadlines, then expands
400
- * each entry into a {@link Permit2ClaimPolicy} (claim-side) plus an optional
401
- * `SpendingLimitsPolicy` guardrail.
391
+ * each entry into a {@link Permit2ClaimPolicy} (claim-side) plus optional
392
+ * `SpendingLimitsPolicy` / `TimeFramePolicy` guardrails.
402
393
  */
403
394
  interface CrossChainPermissionInput {
404
395
  /**
@@ -415,14 +406,9 @@ interface CrossChainPermissionInput {
415
406
  * the recipient.
416
407
  */
417
408
  to?: ToLeg | ToLeg[];
418
- /**
419
- * Optional upper bound on the permit deadline. Bound a session with
420
- * `oneTimeUse.validUntil`; this requires `oneTimeUse` and can only shorten
421
- * that one session-wide deadline (the earliest `validUntil` in the session
422
- * applies, to the permit deadline too). A future `Date`.
423
- */
409
+ /** Upper bound on the permit deadline. */
424
410
  validUntil?: Date;
425
- /** Not supported; a permit that sets it throws. */
411
+ /** Lower bound on the permit deadline. */
426
412
  validAfter?: Date;
427
413
  /** Per-destination fill-deadline windows. */
428
414
  fillDeadline?: {
@@ -587,13 +573,12 @@ type PermissionFunctionConfig<TFn extends AbiFunction> = {
587
573
  */
588
574
  maxUses?: bigint;
589
575
  /**
590
- * Optional. Bound a session with `oneTimeUse.validUntil`; this requires
591
- * `oneTimeUse` and can only shorten that one session-wide deadline (the
592
- * earliest `validUntil` in the session applies). It bounds the whole
593
- * session, not this function alone. A future `Date`.
576
+ * Upper bound on `block.timestamp`. Pairs with `validAfter` into one
577
+ * `time-frame` policy. If only one of the two is set, the other defaults to
578
+ * "always passes" (validAfter=0 / validUntil=year-2100).
594
579
  */
595
580
  validUntil?: Date;
596
- /** Not supported; a permission that sets it throws. */
581
+ /** Lower bound on `block.timestamp`. See `validUntil`. */
597
582
  validAfter?: Date;
598
583
  } & SpendingLimitField<TFn> & ValueLimitField<TFn>;
599
584
  interface Permission<TAbi extends Abi = Abi> {
@@ -809,8 +794,8 @@ interface SessionDefinition<TAbis extends readonly Abi[] = readonly Abi[], TChai
809
794
  claimPolicies?: readonly Permit2ClaimPolicy[];
810
795
  /**
811
796
  * Cross-chain permits expanded by the SDK into matching
812
- * {@link Permit2ClaimPolicy} (claim-side) plus an action-level
813
- * `SpendingLimitsPolicy` guardrail.
797
+ * {@link Permit2ClaimPolicy} (claim-side) plus action-level
798
+ * `SpendingLimitsPolicy` / `TimeFramePolicy` guardrails.
814
799
  * See {@link CrossChainPermissionInput}. A permit naming `CCTP`, `OFT`,
815
800
  * `ECO_IE` or `LZ` needs `sdk.createSession`, which supplies the addresses
816
801
  * it pins from the orchestrator's `GET /chains`.
@@ -877,13 +862,7 @@ interface SessionDefinition<TAbis extends readonly Abi[] = readonly Abi[], TChai
877
862
  * that is also one of several sources. A Permit2-route session must also supply `claimPolicies`, each
878
863
  * pinning its `spenders` (the arbiter); without them the session has no signing
879
864
  * surface and a `signing` mode is rejected.
880
- * `validUntil` (a future Date; omit for never) is the way to bound a session
881
- * in time: one deadline for the whole session, including its `permissions`,
882
- * `actions` and `crossChainPermits`. A `validUntil` on a permission function,
883
- * a raw `time-frame` action policy or a `crossChainPermits` entry is optional
884
- * and can only shorten it (the earliest applies); there is no per-function
885
- * deadline. Without `oneTimeUse` those fields throw, and `validAfter` always
886
- * does.
865
+ * `validUntil` (a future Date; omit for never) bounds when the id can be spent.
887
866
  * Always salted as in `'strict'`; `saltMode: 'v1'` is rejected.
888
867
  */
889
868
  oneTimeUse?: {
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../config/account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../config/account.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import type { Permission, ScopedAction } from './smart-sessions/types.js';
12
12
  * cannot be compared by a 32-byte reference value and is omitted.
13
13
  */
14
14
  export declare function namedParamOffsets(abi: Abi, functionName: string): Record<string, bigint>;
15
+ export declare const FAR_FUTURE_MS = 4102444800000;
15
16
  declare function resolvePermission(permission: Permission): ScopedAction[];
16
17
  declare function resolvePermissions(permissions: readonly Permission[]): ScopedAction[];
17
18
  export { resolvePermissions, resolvePermission };
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAST,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAGb,MAAM,wBAAwB,CAAA;AAuE/B;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAwGD,iBAAS,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,EAAE,CAoRjE;AAkBD,iBAAS,kBAAkB,CACzB,WAAW,EAAE,SAAS,UAAU,EAAE,GACjC,YAAY,EAAE,CAwBhB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAA"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAST,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAGb,MAAM,wBAAwB,CAAA;AAuE/B;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AA4GD,eAAO,MAAM,aAAa,gBAAoB,CAAA;AAE9C,iBAAS,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,EAAE,CA2RjE;AAkBD,iBAAS,kBAAkB,CACzB,WAAW,EAAE,SAAS,UAAU,EAAE,GACjC,YAAY,EAAE,CAwBhB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAA"}
@@ -157,6 +157,11 @@ const ERC20_SPENDING_LIMIT_SELECTORS = new Set([
157
157
  '0xa9059cbb', // transfer(address,uint256)
158
158
  '0x23b872dd', // transferFrom(address,address,uint256)
159
159
  ]);
160
+ // Year 2100 in ms — well within uint128 after the encoder's ms→s conversion.
161
+ // Used as the one-sided default for `validUntil` when only `validAfter` is set.
162
+ // Exported so the cross-chain permit expansion (smart-sessions.ts) applies the
163
+ // same always-passing upper bound instead of defaulting to 0 (already expired).
164
+ export const FAR_FUTURE_MS = 4_102_444_800_000;
160
165
  function resolvePermission(permission) {
161
166
  const { abi, address, functions } = permission;
162
167
  const actions = [];
@@ -185,10 +190,15 @@ function resolvePermission(permission) {
185
190
  if (config.maxUses !== undefined) {
186
191
  policies.push({ type: 'usage-limit', limit: config.maxUses });
187
192
  }
188
- // The session resolver folds a window into the one-time-use deadline and
189
- // strips it; one that reaches here was never folded.
190
193
  if (config.validUntil !== undefined || config.validAfter !== undefined) {
191
- throw new Error(`Function "${fnName}": validUntil/validAfter belong to the session deadline; build the session with toSession`);
194
+ const validUntil = config.validUntil !== undefined
195
+ ? config.validUntil.getTime()
196
+ : FAR_FUTURE_MS;
197
+ const validAfter = config.validAfter !== undefined ? config.validAfter.getTime() : 0;
198
+ if (validUntil < validAfter) {
199
+ throw new Error(`Function "${fnName}": validUntil (${validUntil}) is before validAfter (${validAfter}).`);
200
+ }
201
+ policies.push({ type: 'time-frame', validUntil, validAfter });
192
202
  }
193
203
  if (config.valueLimit !== undefined) {
194
204
  // Runtime backstop: payable-gating is enforced at the type level, but
@@ -23,8 +23,6 @@ export declare const oneTimeUseIdPolicyAbi: readonly [{
23
23
  }];
24
24
  export declare const CONSUME_SELECTOR: `0x${string}`;
25
25
  export declare const CONSUME_FOR_SELECTOR: `0x${string}`;
26
- /** The refusal for a session time window the one-time-use deadline cannot carry. */
27
- export declare function sessionWindowRefusal(field: string): string;
28
26
  export type OneTimeUseSettlementRoute = 'permit2' | 'executor';
29
27
  export interface OneTimeUseBurnOp {
30
28
  readonly to: Address;
@@ -1 +1 @@
1
- {"version":3,"file":"one-time-use.d.ts","sourceRoot":"","sources":["../../../../../modules/validators/smart-sessions/one-time-use.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,GAAG,EAET,MAAM,MAAM,CAAA;AAOb,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;EAkBxB,CAAA;AAGV,eAAO,MAAM,gBAAgB,eAAkD,CAAA;AAC/E,eAAO,MAAM,oBAAoB,eAEhC,CAAA;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAID,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,UAAU,CAAA;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAA;CACnB;AAWD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,GAAG,CAMzE;AAGD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAKvD;AASD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,MAAM,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,yBAAyB,CAAA;CACjC,GAAG,gBAAgB,CAkBnB"}
1
+ {"version":3,"file":"one-time-use.d.ts","sourceRoot":"","sources":["../../../../../modules/validators/smart-sessions/one-time-use.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,GAAG,EAET,MAAM,MAAM,CAAA;AAOb,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;EAkBxB,CAAA;AAGV,eAAO,MAAM,gBAAgB,eAAkD,CAAA;AAC/E,eAAO,MAAM,oBAAoB,eAEhC,CAAA;AAID,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,UAAU,CAAA;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAA;CACnB;AAWD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,GAAG,CAMzE;AAGD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAKvD;AASD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,MAAM,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,yBAAyB,CAAA;CACjC,GAAG,gBAAgB,CAkBnB"}
@@ -26,10 +26,6 @@ export const oneTimeUseIdPolicyAbi = [
26
26
  // source: smart-sessions-v2 src/policies/onetime/interfaces/IOneTimeUseIdPolicy.sol
27
27
  export const CONSUME_SELECTOR = toFunctionSelector('function consume(uint256)');
28
28
  export const CONSUME_FOR_SELECTOR = toFunctionSelector('function consumeFor(uint256,uint256)');
29
- /** The refusal for a session time window the one-time-use deadline cannot carry. */
30
- export function sessionWindowRefusal(field) {
31
- return `${field}: a session time window requires oneTimeUse; set oneTimeUse with validUntil to bound the session (validAfter is not supported)`;
32
- }
33
29
  // The id must be a non-zero uint256 — the policy rejects zero ("not configured").
34
30
  function assertValidOneTimeUseId(id) {
35
31
  if (id <= 0n || id > (1n << 256n) - 1n) {
@@ -1,6 +1,6 @@
1
1
  import type { InternalPermit2ClaimPolicy, Permit2ClaimMessage } from '../../policies/claim/permit2.js';
2
2
  import type { CrossChainPermit, Permit2ClaimPolicy, SessionPolicy } from '../types.js';
3
- export declare function expandCrossChainPermit(permit: CrossChainPermit, environment: 'production' | 'development', onceDeadline?: bigint): {
3
+ export declare function expandCrossChainPermit(permit: CrossChainPermit, environment: 'production' | 'development'): {
4
4
  readonly claim: Permit2ClaimPolicy;
5
5
  readonly fallbackPolicies: readonly SessionPolicy[];
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/policies/claim.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACd,MAAM,UAAU,CAAA;AAEjB,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,YAAY,GAAG,aAAa,EACzC,YAAY,CAAC,EAAE,MAAM,GACpB;IACD,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;IAClC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,aAAa,EAAE,CAAA;CACpD,CAyDA;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAgDT;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,GAAG,SAAS,CAOhC;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,GACzB,0BAA0B,CAwB5B"}
1
+ {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/policies/claim.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACd,MAAM,UAAU,CAAA;AAEjB,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,YAAY,GAAG,aAAa,GACxC;IACD,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;IAClC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,aAAa,EAAE,CAAA;CACpD,CAkEA;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAgDT;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,GAAG,SAAS,CAOhC;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,GACzB,0BAA0B,CAwB5B"}
@@ -1,6 +1,7 @@
1
1
  import { isAddressEqual } from 'viem';
2
+ import { FAR_FUTURE_MS } from '../../permissions.js';
2
3
  import { getArbitersForSettlementLayers } from '../../policies/claim/arbiters.js';
3
- export function expandCrossChainPermit(permit, environment, onceDeadline) {
4
+ export function expandCrossChainPermit(permit, environment) {
4
5
  // Unreachable ('all' is settlement-scoped); narrows the type for the arbiters.
5
6
  if (permit.settlementLayers === 'all') {
6
7
  throw new Error("crossChainPermits: settlementLayers 'all' names IntentExecutor layers, which have no Permit2 claim");
@@ -26,10 +27,8 @@ export function expandCrossChainPermit(permit, environment, onceDeadline) {
26
27
  chain,
27
28
  address: recipient,
28
29
  }));
29
- // The once-policy refuses a settlement past its deadline, so the claim does too.
30
- const maxDeadline = onceDeadline ?? permit.validUntil;
31
- const permitDeadline = permit.validAfter !== undefined || maxDeadline !== undefined
32
- ? { min: permit.validAfter, max: maxDeadline }
30
+ const permitDeadline = permit.validAfter !== undefined || permit.validUntil !== undefined
31
+ ? { min: permit.validAfter, max: permit.validUntil }
33
32
  : undefined;
34
33
  const claim = {
35
34
  type: 'permit2',
@@ -47,6 +46,15 @@ export function expandCrossChainPermit(permit, environment, onceDeadline) {
47
46
  .map(({ token, maxAmount }) => ({ token, amount: maxAmount }));
48
47
  if (limits.length)
49
48
  fallbackPolicies.push({ type: 'spending-limits', limits });
49
+ if (permitDeadline) {
50
+ fallbackPolicies.push({
51
+ type: 'time-frame',
52
+ validUntil: permit.validUntil === undefined
53
+ ? FAR_FUTURE_MS
54
+ : Number(permit.validUntil * 1000n),
55
+ validAfter: permit.validAfter === undefined ? 0 : Number(permit.validAfter * 1000n),
56
+ });
57
+ }
50
58
  return { claim, fallbackPolicies };
51
59
  }
52
60
  export function permit2ClaimPolicyMatchesMessage(policy, message) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../../modules/validators/smart-sessions/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAiBb,OAAO,EACL,wBAAwB,EAEzB,MAAM,sBAAsB,CAAA;AAU7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAK3D,OAAO,KAAK,EAOV,OAAO,EAEP,WAAW,EACX,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,mCAAmC,EAAE,OACJ,CAAA;AAC9C,eAAO,MAAM,4CAA4C,EAAE,GAAkB,CAAA;AAC7E,eAAO,MAAM,2EAA2E,EACtF,YAAqB,CAAA;AACvB,eAAO,MAAM,uBAAuB,EAClC,4CAAqD,CAAA;AACvD,eAAO,MAAM,yBAAyB,EAAG,YAAqB,CAAA;AA6F9D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,aAAa,CAAA;IAGnD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAIrC,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,OAAO,GAAE,qBAA0B,GAClC,WAAW,CAEb;AAssBD,wBAAgB,SAAS,CACvB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAuDT;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../../modules/validators/smart-sessions/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAgBb,OAAO,EACL,wBAAwB,EAEzB,MAAM,sBAAsB,CAAA;AAU7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAK3D,OAAO,KAAK,EAMV,OAAO,EAEP,WAAW,EACX,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,mCAAmC,EAAE,OACJ,CAAA;AAC9C,eAAO,MAAM,4CAA4C,EAAE,GAAkB,CAAA;AAC7E,eAAO,MAAM,2EAA2E,EACtF,YAAqB,CAAA;AACvB,eAAO,MAAM,uBAAuB,EAClC,4CAAqD,CAAA;AACvD,eAAO,MAAM,yBAAyB,EAAG,YAAqB,CAAA;AAU9D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,aAAa,CAAA;IAGnD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAIrC,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,OAAO,GAAE,qBAA0B,GAClC,WAAW,CAEb;AAsqBD,wBAAgB,SAAS,CACvB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAuDT;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
@@ -6,7 +6,7 @@ import { encodePermit2ClaimPolicyInitData, PERMIT2_CLAIM_POLICY_ADDRESS, } from
6
6
  import { resolveValidator } from '../resolve.js';
7
7
  import { resolveCrossChainPermission } from './cross-chain-permits.js';
8
8
  import { getPermissionIdFromData } from './digest.js';
9
- import { CONSUME_FOR_SELECTOR, CONSUME_SELECTOR, oneTimeUseIdErc1271Policy, sessionWindowRefusal, } from './one-time-use.js';
9
+ import { CONSUME_FOR_SELECTOR, CONSUME_SELECTOR, oneTimeUseIdErc1271Policy, } from './one-time-use.js';
10
10
  import { DEFAULT_POLICY_ADDRESSES, resolvePolicyAddresses, } from './policies/addresses.js';
11
11
  import { expandCrossChainPermit, resolvePermit2ClaimPolicy, } from './policies/claim.js';
12
12
  import { encodeSessionPolicy } from './policies/encode.js';
@@ -20,70 +20,6 @@ export const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = '0x00000001';
20
20
  export const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = '0x00000002';
21
21
  export const DUMMY_PRECLAIMOP_TARGET = '0x0000000000000000000000000000000000000420';
22
22
  export const DUMMY_PRECLAIMOP_SELECTOR = '0x69123456';
23
- function minDefined(a, b) {
24
- if (a === undefined)
25
- return b;
26
- if (b === undefined)
27
- return a;
28
- return a < b ? a : b;
29
- }
30
- /**
31
- * Each validUntil the session's actions set, in seconds. A session's time window
32
- * is expressed as the one-time-use deadline, so a window without oneTimeUse, or
33
- * any validAfter, is refused.
34
- */
35
- function sessionWindowDeadlines(definition) {
36
- const deadlines = [];
37
- const take = (field, validUntil, hasValidAfter) => {
38
- if (hasValidAfter || (validUntil !== undefined && !definition.oneTimeUse)) {
39
- throw new Error(sessionWindowRefusal(field));
40
- }
41
- if (validUntil === undefined)
42
- return;
43
- // As for oneTimeUse.validUntil: 0 or less would read as "never expires".
44
- if (!(validUntil instanceof Date &&
45
- Number.isFinite(validUntil.getTime()) &&
46
- validUntil.getTime() > Date.now())) {
47
- throw new Error(`${field}: validUntil must be a valid Date in the future`);
48
- }
49
- deadlines.push(BigInt(Math.floor(validUntil.getTime() / 1000)));
50
- };
51
- for (const { address, functions } of definition.permissions ?? []) {
52
- for (const [name, config] of Object.entries(functions)) {
53
- if (config) {
54
- take(`permissions[${address}].${name}`, config.validUntil, config.validAfter !== undefined);
55
- }
56
- }
57
- }
58
- for (const { target, selector, policies } of definition.actions ?? []) {
59
- for (const policy of policies ?? []) {
60
- if (policy.type === 'time-frame') {
61
- take(`actions[${target}:${selector}]`, typeof policy.validUntil === 'number'
62
- ? new Date(policy.validUntil)
63
- : policy.validUntil, policy.validAfter !== 0);
64
- }
65
- }
66
- }
67
- // An IntentExecutor-layer permit's window is resolved with its scope.
68
- for (const [index, permit] of (definition.crossChainPermits ?? []).entries()) {
69
- if (!isSettlementScopedPermit(permit)) {
70
- take(`crossChainPermits[${index}]`, permit.validUntil, permit.validAfter !== undefined);
71
- }
72
- }
73
- return deadlines;
74
- }
75
- /** The permission without its window, which the session carries as its deadline. */
76
- function withoutWindow(permission) {
77
- return {
78
- ...permission,
79
- functions: Object.fromEntries(Object.entries(permission.functions).map(([name, config]) => {
80
- if (!config)
81
- return [name, config];
82
- const { validUntil: _until, validAfter: _after, ...rest } = config;
83
- return [name, rest];
84
- })),
85
- };
86
- }
87
23
  function usesEns(definition) {
88
24
  return (definition.type === 'ens' ||
89
25
  (definition.type === 'multi-factor' &&
@@ -112,7 +48,6 @@ function resolveSession(definition, options) {
112
48
  const swapScope = definition.swap
113
49
  ? resolveSwapScope(definition.swap, definition.chain.id, environment, options.settlement?.[definition.chain.id]?.usdStablecoins)
114
50
  : undefined;
115
- const windowDeadlines = sessionWindowDeadlines(definition);
116
51
  const stableFloor = definition.swap?.stableFloor !== undefined;
117
52
  if (stableFloor && definition.swap) {
118
53
  assertStableFloorIsolated({
@@ -136,17 +71,7 @@ function resolveSession(definition, options) {
136
71
  // global intent-execution whitelist allows, which is the opposite of what the
137
72
  // caller asked for. `restrictToActions` stays as the explicit spelling for
138
73
  // sessions scoped by hand.
139
- const resolvedPermits = (definition.crossChainPermits ?? []).map((input) => {
140
- const until = input.validUntil;
141
- // As for oneTimeUse.validUntil: 0 or less would read as "never expires",
142
- // and a past deadline only fails at enable, as an opaque signature error.
143
- if (until !== undefined &&
144
- isSettlementScopedPermit(input) &&
145
- !(Number.isFinite(until.getTime()) && until.getTime() > Date.now())) {
146
- throw new Error('crossChainPermits: an IntentExecutor-layer permit validUntil must be a valid Date in the future');
147
- }
148
- return resolveCrossChainPermission(input);
149
- });
74
+ const resolvedPermits = (definition.crossChainPermits ?? []).map(resolveCrossChainPermission);
150
75
  // A permit naming an IntentExecutor layer compiles to argument-pinned scoped
151
76
  // actions, which only bind with the fallback gone — so it restricts too.
152
77
  const settlementScope = resolveSettlementScope(resolvedPermits, {
@@ -170,7 +95,7 @@ function resolveSession(definition, options) {
170
95
  swapScope !== undefined ||
171
96
  settlementScope !== undefined;
172
97
  const permissions = [
173
- ...(definition.permissions ?? []).map(withoutWindow),
98
+ ...(definition.permissions ?? []),
174
99
  ...(swapScope?.permissions ?? []),
175
100
  ...(settlementScope?.permissions ?? []),
176
101
  ];
@@ -178,24 +103,15 @@ function resolveSession(definition, options) {
178
103
  // Raw scoped actions (target + selector + policies) for calls that can't be
179
104
  // addressed by the ABI-name `permissions` sugar — e.g. a fynd swap scoped by
180
105
  // its raw selector with no ABI (RHI-6286).
181
- // A time-frame policy is carried as the deadline; an action left with no
182
- // policy is sudo, as a permission with only a window is.
183
106
  const rawActions = [
184
- ...(definition.actions ?? []).map((action) => {
185
- if (!action.policies?.some((policy) => policy.type === 'time-frame')) {
186
- return action;
187
- }
188
- const { policies, ...rest } = action;
189
- const kept = policies.filter((policy) => policy.type !== 'time-frame');
190
- return kept.length ? { ...rest, policies: kept } : rest;
191
- }),
107
+ ...(definition.actions ?? []),
192
108
  ...(swapScope?.actions ?? []),
193
109
  ...(settlementScope?.actions ?? []),
194
110
  ];
195
111
  // A restricted session drops the fallback action, which is also where a
196
- // cross-chain permit's spending-limit guardrails live — so a restricted
197
- // session combined with a permit would keep claim signing but lose maxAmount
198
- // enforcement. These are different authorization surfaces;
112
+ // cross-chain permit's spending-limit / time-frame guardrails live — so a
113
+ // restricted session combined with a permit would keep claim signing but lose
114
+ // maxAmount/deadline enforcement. These are different authorization surfaces;
199
115
  // reject the combination rather than silently drop the guardrails.
200
116
  // A settlement-scoped permit carries its guardrails on its own actions, so it
201
117
  // is the one permit shape a restricted session can hold.
@@ -203,7 +119,7 @@ function resolveSession(definition, options) {
203
119
  ((definition.crossChainPermits?.length && settlementScope === undefined) ||
204
120
  definition.claimPolicies?.length)) {
205
121
  throw new Error('restrictToActions is incompatible with crossChainPermits/claimPolicies: ' +
206
- 'dropping the fallback also drops the permit guardrails (spending ' +
122
+ 'dropping the fallback also drops the permit guardrails (spending/time ' +
207
123
  'limits). Use a restricted scoped-action session or a permit session, ' +
208
124
  'not both.');
209
125
  }
@@ -212,17 +128,6 @@ function resolveSession(definition, options) {
212
128
  throw new Error("oneTimeUse cannot use saltMode 'v1': a 1.x session has no once-policy to reproduce");
213
129
  }
214
130
  }
215
- const validUntil = definition.oneTimeUse?.validUntil;
216
- // A deadline that rounds to 0 would read as "never expires"; a past one only
217
- // fails at enable, as an opaque signature error.
218
- if (validUntil !== undefined &&
219
- !(Number.isFinite(validUntil.getTime()) && validUntil.getTime() > Date.now())) {
220
- throw new Error('oneTimeUse.validUntil must be a valid Date in the future');
221
- }
222
- // Every other validUntil on the session joins it as the session deadline.
223
- const onceDeadline = definition.oneTimeUse
224
- ? [settlementScope?.onceDeadline, ...windowDeadlines].reduce(minDefined, validUntil && BigInt(Math.floor(validUntil.getTime() / 1000)))
225
- : undefined;
226
131
  // Guard raw actions from reintroducing the wildcard: reject one without
227
132
  // target+selector (would map to the fallback flags), or one that targets the
228
133
  // fallback sentinel outright — either would re-add the wildcard action that
@@ -244,7 +149,7 @@ function resolveSession(definition, options) {
244
149
  permit2Permits.some((permit) => permit.from?.some(({ maxAmount }) => maxAmount !== undefined))) {
245
150
  throw new Error("crossChainPermits: a Permit2-route permit's maxAmount is enforced only with oneTimeUse; set oneTimeUse or drop maxAmount");
246
151
  }
247
- const expandedPermits = permit2Permits.map((permit) => expandCrossChainPermit(permit, environment, onceDeadline));
152
+ const expandedPermits = permit2Permits.map((permit) => expandCrossChainPermit(permit, environment));
248
153
  const permitFallbackPolicies = expandedPermits.flatMap(({ fallbackPolicies }) => fallbackPolicies);
249
154
  // The wildcard intent-execution fallback. Dropped for a restricted session so
250
155
  // the explicit permissions are the ONLY authorized ops — a non-listed selector
@@ -273,29 +178,23 @@ function resolveSession(definition, options) {
273
178
  ]
274
179
  : []),
275
180
  ...(restricted ? [] : [fallbackAction]),
276
- // A one-time-use session enables with its burn, which replaces the dummy op.
277
- ...(definition.oneTimeUse
278
- ? []
279
- : [
280
- {
281
- target: DUMMY_PRECLAIMOP_TARGET,
282
- selector: DUMMY_PRECLAIMOP_SELECTOR,
283
- // The real pre-claim op carries no value, so cap it for a
284
- // restricted session rather than granting sudo, which would let
285
- // this injected action send native value to the dummy target.
286
- //
287
- // 1 wei, NOT 0: `ValueLimitPolicy.initializeWithMultiplexer`
288
- // does `require(valueLimit != 0)`, so a zero limit reverts while
289
- // the policy is being installed. That made every restricted
290
- // session impossible to enable — the revert surfaces as
291
- // `InvalidSignature()` from the emissary, which reads as a
292
- // signature problem rather than a policy-init one. 1 wei is the
293
- // smallest limit that installs, and the op carries no value.
294
- policies: restricted
295
- ? [{ type: 'value-limit', limit: 1n }]
296
- : [{ type: 'sudo' }],
297
- },
298
- ]),
181
+ {
182
+ target: DUMMY_PRECLAIMOP_TARGET,
183
+ selector: DUMMY_PRECLAIMOP_SELECTOR,
184
+ // The real pre-claim op carries no value, so cap it for a restricted
185
+ // session rather than granting sudo, which would let this injected action
186
+ // send native value to the dummy target.
187
+ //
188
+ // 1 wei, NOT 0: `ValueLimitPolicy.initializeWithMultiplexer` does
189
+ // `require(valueLimit != 0)`, so a zero limit reverts while the policy is
190
+ // being installed. That made every restricted session impossible to
191
+ // enable — the revert surfaces as `InvalidSignature()` from the emissary,
192
+ // which reads as a signature problem rather than a policy-init one.
193
+ // 1 wei is the smallest limit that installs, and the op carries no value.
194
+ policies: restricted
195
+ ? [{ type: 'value-limit', limit: 1n }]
196
+ : [{ type: 'sudo' }],
197
+ },
299
198
  ];
300
199
  if (restricted && !userActions.length && !rawActions.length) {
301
200
  throw new Error('restrictToActions drops the fallback, so the session must supply at ' +
@@ -332,7 +231,7 @@ function resolveSession(definition, options) {
332
231
  policies: v1PolicyOrder(action.policies),
333
232
  }))
334
233
  : userActions;
335
- let actions = userActions.length || rawActions.length || expandedPermits.length
234
+ let actions = userActions.length || rawActions.length || permitFallbackPolicies.length
336
235
  ? [...v1CompatibleActions, ...rawActions, ...injectedActions].map((action) => ({
337
236
  actionTargetSelector: 'selector' in action
338
237
  ? action.selector
@@ -397,10 +296,18 @@ function resolveSession(definition, options) {
397
296
  if (!addresses.oneTimeUseId) {
398
297
  throw new Error('oneTimeUse requires policyAddresses.oneTimeUseId (no canonical deployment yet)');
399
298
  }
299
+ const validUntil = definition.oneTimeUse.validUntil;
300
+ // A deadline that rounds to 0 would read as "never expires"; a past one only
301
+ // fails at enable, as an opaque signature error.
302
+ if (validUntil !== undefined &&
303
+ !(Number.isFinite(validUntil.getTime()) &&
304
+ validUntil.getTime() > Date.now())) {
305
+ throw new Error('oneTimeUse.validUntil must be a valid Date in the future');
306
+ }
400
307
  const once = oneTimeUseIdErc1271Policy({
401
308
  policy: addresses.oneTimeUseId,
402
309
  id: definition.oneTimeUse.id,
403
- deadline: onceDeadline,
310
+ deadline: validUntil && BigInt(Math.floor(validUntil.getTime() / 1000)),
404
311
  });
405
312
  // Install the once-policy on EVERY action: on the executor route the contract's
406
313
  // on-chain guard (a `consume` may only name the session's own id) runs via
@@ -1 +1 @@
1
- {"version":3,"file":"cctp.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/cctp.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAkC,MAAM,UAAU,CAAA;AAE5E,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEnE;;;;GAIG;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBN,CAAA;AAExB,eAAO,MAAM,mCAAmC,eAE/C,CAAA;AAwBD,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAmC9D"}
1
+ {"version":3,"file":"cctp.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/cctp.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAkC,MAAM,UAAU,CAAA;AAE5E,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEnE;;;;GAIG;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBN,CAAA;AAExB,eAAO,MAAM,mCAAmC,eAE/C,CAAA;AAwBD,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAqC9D"}
@@ -62,10 +62,11 @@ export function scopeCctp(ctx) {
62
62
  });
63
63
  // One destination keeps its pins in the shared AND; several become an OR of
64
64
  // (domain, recipient) pairs so a recipient is only valid on its own chain.
65
- return legs.length === 1
65
+ const action = legs.length === 1
66
66
  ? swapAction(ctx.target, DEPOSIT_FOR_BURN_WITH_HOOK_SELECTOR, [
67
67
  ...rules,
68
68
  ...legs[0],
69
69
  ])
70
70
  : swapAction(ctx.target, DEPOSIT_FOR_BURN_WITH_HOOK_SELECTOR, rules, legs);
71
+ return { ...action, policies: [...(action.policies ?? []), ...ctx.timeFrame] };
71
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eco.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/eco.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAQb,MAAM,MAAM,CAAA;AAIb,OAAO,KAAK,EAEV,YAAY,EACZ,8BAA8B,EAC/B,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEvB,CAAA;AAEF,eAAO,MAAM,yBAAyB,eAAsC,CAAA;AAI5E;;;GAGG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;IAqBlB,4EAA4E;;;;;;;;;;;;CAYpE,CAAA;AAIV;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAuB,CAAA;AAqE5D;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,EAAE,CAOX;AAkBD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GACnB,GAAG,8BAA8B,EACjC,GAAG,8BAA8B,YAMoB,CAAA;AAEvD,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAwN7D"}
1
+ {"version":3,"file":"eco.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/eco.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAQb,MAAM,MAAM,CAAA;AAIb,OAAO,KAAK,EAEV,YAAY,EACZ,8BAA8B,EAC/B,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEvB,CAAA;AAEF,eAAO,MAAM,yBAAyB,eAAsC,CAAA;AAI5E;;;GAGG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;IAqBlB,4EAA4E;;;;;;;;;;;;CAYpE,CAAA;AAIV;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAuB,CAAA;AAqE5D;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,EAAE,CAOX;AAkBD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GACnB,GAAG,8BAA8B,EACjC,GAAG,8BAA8B,YAMoB,CAAA;AAEvD,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,CA6N7D"}
@@ -193,9 +193,12 @@ export function scopeEco(ctx) {
193
193
  if (ctx.validUntil === undefined) {
194
194
  throw new SettlementLayerRefusal('crossChainPermits: ECO_IE needs validUntil to bound how long an unfilled reward can stay locked');
195
195
  }
196
+ // Measured from when the session can first act: a later validAfter moves
197
+ // the first quote, and its ~7-day reward deadline, with it.
196
198
  const now = BigInt(Math.floor(Date.now() / 1000));
197
- if (ctx.validUntil < now + ECO_MIN_VALIDITY_SECONDS) {
198
- throw new SettlementLayerRefusal("crossChainPermits: ECO_IE needs validUntil at least 7 days ahead: Eco's reward deadline is ~7 days out and the session pins it");
199
+ const firstUse = ctx.validAfter !== undefined && ctx.validAfter > now ? ctx.validAfter : now;
200
+ if (ctx.validUntil < firstUse + ECO_MIN_VALIDITY_SECONDS) {
201
+ throw new SettlementLayerRefusal("crossChainPermits: ECO_IE needs validUntil at least 7 days after it can first act (now or validAfter): Eco's reward deadline is ~7 days out and the session pins it");
199
202
  }
200
203
  const cap = ctx.cap;
201
204
  const maxFeeBps = ctx.maxFeeBps;
@@ -312,6 +315,7 @@ export function scopeEco(ctx) {
312
315
  valueLimitPerUse: 0n,
313
316
  expression: allOfExpressions(expression),
314
317
  },
318
+ ...ctx.timeFrame,
315
319
  ],
316
320
  };
317
321
  }
@@ -1,5 +1,5 @@
1
1
  import { type Address } from 'viem';
2
- import type { Permission, ScopedAction } from '../types.js';
2
+ import type { Permission, ScopedAction, SessionPolicy } from '../types.js';
3
3
  import type { SettlementAddresses, SettlementCatalog } from './types.js';
4
4
  /**
5
5
  * `allowFees` (RHI-7884): the app-fee transfer and the unsponsored-gas paymaster
@@ -20,6 +20,6 @@ export declare function servedFees(settlement: SettlementCatalog | undefined, ch
20
20
  */
21
21
  export declare function swapApprovesAsActions(permissions: readonly Permission[], cap: bigint | undefined): ScopedAction[];
22
22
  /** Add the fee calls to a scoped session. */
23
- export declare function withFeeActions(actions: readonly ScopedAction[], sourceTokens: readonly Address[], fees: Fees): ScopedAction[];
23
+ export declare function withFeeActions(actions: readonly ScopedAction[], sourceTokens: readonly Address[], fees: Fees, timeFrame: readonly SessionPolicy[]): ScopedAction[];
24
24
  export {};
25
25
  //# sourceMappingURL=fees.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/fees.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAIb,MAAM,MAAM,CAAA;AAUb,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAGb,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAErE;;;;;GAKG;AAEH,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,WAAa,CAAA;AAI5C,eAAO,MAAM,kCAAkC,eAE9C,CAAA;AAED,KAAK,IAAI,GAAG,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAA;AAUpD,kFAAkF;AAClF,wBAAgB,UAAU,CACxB,UAAU,EAAE,iBAAiB,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,SAAS,OAAO,EAAE,GAC/B,IAAI,CA6BN;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,YAAY,EAAE,CAgChB;AAmDD,6CAA6C;AAC7C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,YAAY,EAAE,SAAS,OAAO,EAAE,EAChC,IAAI,EAAE,IAAI,GACT,YAAY,EAAE,CA2BhB"}
1
+ {"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/fees.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAIb,MAAM,MAAM,CAAA;AAUb,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EACZ,aAAa,EAEd,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAErE;;;;;GAKG;AAEH,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,WAAa,CAAA;AAI5C,eAAO,MAAM,kCAAkC,eAE9C,CAAA;AAED,KAAK,IAAI,GAAG,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAA;AAUpD,kFAAkF;AAClF,wBAAgB,UAAU,CACxB,UAAU,EAAE,iBAAiB,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,SAAS,OAAO,EAAE,GAC/B,IAAI,CA6BN;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,YAAY,EAAE,CAgChB;AAoDD,6CAA6C;AAC7C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,YAAY,EAAE,SAAS,OAAO,EAAE,EAChC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,aAAa,EAAE,GAClC,YAAY,EAAE,CAqChB"}
@@ -75,14 +75,14 @@ export function swapApprovesAsActions(permissions, cap) {
75
75
  * layer makes no such call, else ORed into the layer's one params policy, since
76
76
  * the chain keeps a single config per policy and action.
77
77
  */
78
- function addFeeBranch(actions, target, selector, branch) {
78
+ function addFeeBranch(actions, target, selector, branch, timeFrame) {
79
79
  const index = actions.findIndex((a) => isAddressEqual(a.target, target) && a.selector === selector);
80
80
  if (index === -1) {
81
81
  // A rule list goes on UniversalActionPolicy, whose enable writes fewer slots.
82
82
  const policies = Array.isArray(branch)
83
83
  ? (swapAction(target, selector, branch).policies ?? [])
84
84
  : [{ type: 'arg-policy', valueLimitPerUse: 0n, expression: branch }];
85
- actions.push({ target, selector, policies });
85
+ actions.push({ target, selector, policies: [...policies, ...timeFrame] });
86
86
  return;
87
87
  }
88
88
  const expression = Array.isArray(branch) ? allOf(branch) : branch;
@@ -107,18 +107,15 @@ function addFeeBranch(actions, target, selector, branch) {
107
107
  };
108
108
  }
109
109
  /** Add the fee calls to a scoped session. */
110
- export function withFeeActions(actions, sourceTokens, fees) {
110
+ export function withFeeActions(actions, sourceTokens, fees, timeFrame) {
111
111
  const out = [...actions];
112
112
  // Usage-limited rules go last: a passing limited rule counts even if its
113
113
  // branch then fails.
114
114
  const cap = () => cumulativeOnly(32n, SETTLEMENT_FEE_CAP);
115
115
  for (const token of sourceTokens) {
116
- addFeeBranch(out, token, TRANSFER_SELECTOR, [
117
- pin(0n, fees.appFeeCollector),
118
- cap(),
119
- ]);
116
+ addFeeBranch(out, token, TRANSFER_SELECTOR, [pin(0n, fees.appFeeCollector), cap()], timeFrame);
120
117
  // approve(paymaster, 0) passes too: tokens like USDT need the reset.
121
- addFeeBranch(out, token, APPROVE_SELECTOR, [pin(0n, fees.paymaster), cap()]);
118
+ addFeeBranch(out, token, APPROVE_SELECTOR, [pin(0n, fees.paymaster), cap()], timeFrame);
122
119
  }
123
120
  // One cap rule after the OR, so every token draws on the same budget.
124
121
  addFeeBranch(out, fees.paymaster, CALLBACK_ALLOW_MAX_AMOUNT_SELECTOR, sourceTokens.length === 1
@@ -127,6 +124,6 @@ export function withFeeActions(actions, sourceTokens, fees) {
127
124
  type: 'and',
128
125
  left: anyOf(sourceTokens.map((token) => allOf([pin(0n, token)]))),
129
126
  right: allOf([cap()]),
130
- });
127
+ }, timeFrame);
131
128
  return out;
132
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lz.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/lz.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,YAAY,EAEb,MAAM,UAAU,CAAA;AAGjB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAwBhD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,WAAa,CAAA;AAE/C,eAAO,MAAM,mBAAmB,eAE/B,CAAA;AA8ED,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAkO5D"}
1
+ {"version":3,"file":"lz.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/lz.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,YAAY,EAEb,MAAM,UAAU,CAAA;AAGjB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAwBhD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,WAAa,CAAA;AAE/C,eAAO,MAAM,mBAAmB,eAE/B,CAAA;AA8ED,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAmO5D"}
@@ -261,6 +261,7 @@ export function scopeLz(ctx) {
261
261
  right: anyOf(branches),
262
262
  },
263
263
  },
264
+ ...ctx.timeFrame,
264
265
  ],
265
266
  };
266
267
  }
@@ -1 +1 @@
1
- {"version":3,"file":"oft.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/oft.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAkC,MAAM,UAAU,CAAA;AAE5E,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEnE;;;;;;;;;GASG;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BK,CAAA;AAExB,eAAO,MAAM,iBAAiB,eAAgC,CAAA;AAE9D,4EAA4E;AAC5E,eAAO,MAAM,IAAI;;;;;;;;;;;;;CAaP,CAAA;AAgBV,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,CA0D7D"}
1
+ {"version":3,"file":"oft.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/oft.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAkC,MAAM,UAAU,CAAA;AAE5E,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEnE;;;;;;;;;GASG;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BK,CAAA;AAExB,eAAO,MAAM,iBAAiB,eAAgC,CAAA;AAE9D,4EAA4E;AAC5E,eAAO,MAAM,IAAI;;;;;;;;;;;;;CAaP,CAAA;AAgBV,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,CA4D7D"}
@@ -109,7 +109,8 @@ export function scopeOft(ctx) {
109
109
  });
110
110
  // `msg.value` carries the LayerZero fee, whose size the session cannot know;
111
111
  // the refund pin returns any overpayment to the account.
112
- return legs.length === 1
112
+ const action = legs.length === 1
113
113
  ? swapAction(ctx.target, OFT_SEND_SELECTOR, [...rules, ...legs[0]], [], maxUint256)
114
114
  : swapAction(ctx.target, OFT_SEND_SELECTOR, rules, legs, maxUint256);
115
+ return { ...action, policies: [...(action.policies ?? []), ...ctx.timeFrame] };
115
116
  }
@@ -23,6 +23,9 @@ export interface SameChainContext {
23
23
  readonly minAmount?: bigint;
24
24
  }[];
25
25
  readonly cap?: bigint;
26
+ readonly timeFrame: readonly SessionPolicy[];
27
+ readonly validAfter?: bigint;
28
+ readonly validUntil?: bigint;
26
29
  }
27
30
  export interface SameChainScope {
28
31
  readonly actions: ScopedAction[];
@@ -1 +1 @@
1
- {"version":3,"file":"same-chain.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/same-chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EAIb,MAAM,MAAM,CAAA;AAUb,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,8BAA8B,EAC/B,MAAM,UAAU,CAAA;AAYjB;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAG1B,CAAA;AAEd;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,8BAA8B,GACnC,aAAa,CAwBf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,CAAA;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS;QAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;QAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,EAAE,CAAA;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CACnC;AAwBD,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,cAAc,CAyIpE"}
1
+ {"version":3,"file":"same-chain.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/same-chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EAIb,MAAM,MAAM,CAAA;AAUb,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,8BAA8B,EAC/B,MAAM,UAAU,CAAA;AAYjB;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAG1B,CAAA;AAEd;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,8BAA8B,GACnC,aAAa,CAwBf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,CAAA;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS;QAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;QAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,EAAE,CAAA;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,CAAA;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CACnC;AAwBD,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,cAAc,CA8JpE"}
@@ -78,6 +78,10 @@ export function scopeSameChain(ctx) {
78
78
  if (elsewhere) {
79
79
  throw new Error(`crossChainPermits: SAME_CHAIN_IE settles on chain ${ctx.chainId}; a \`to\` leg names chain ${elsewhere.chainId}`);
80
80
  }
81
+ const withTimeFrame = (action) => ({
82
+ ...action,
83
+ policies: [...(action.policies ?? []), ...ctx.timeFrame],
84
+ });
81
85
  const sameToken = ctx.destinations.map((leg) => isAddressEqual(leg.token, token));
82
86
  if (sameToken.every(Boolean)) {
83
87
  if (ctx.destinations.some((leg) => leg.minAmount !== undefined)) {
@@ -107,7 +111,7 @@ export function scopeSameChain(ctx) {
107
111
  : rules.length > 0
108
112
  ? swapAction(token, TRANSFER_SELECTOR, rules, pinned.map((recipient) => [pin(0n, recipient)]))
109
113
  : recipientsOnly(token, pinned);
110
- return { actions: [action], permissions: [] };
114
+ return { actions: [withTimeFrame(action)], permissions: [] };
111
115
  }
112
116
  if (sameToken.some(Boolean) || ctx.destinations.length !== 1) {
113
117
  throw new Error('crossChainPermits: SAME_CHAIN_IE either transfers the `from` token or swaps it into exactly one `to` token');
@@ -139,6 +143,15 @@ export function scopeSameChain(ctx) {
139
143
  calldataOffset: SWAPPER_OUTPUT_BOUND_OFFSET,
140
144
  referenceValue: leg.minAmount,
141
145
  };
146
+ const date = (seconds) => new Date(Number(seconds) * 1000);
147
+ const window = {
148
+ ...(ctx.validAfter === undefined
149
+ ? {}
150
+ : { validAfter: date(ctx.validAfter) }),
151
+ ...(ctx.validUntil === undefined
152
+ ? {}
153
+ : { validUntil: date(ctx.validUntil) }),
154
+ };
142
155
  return {
143
156
  // The bare venue emits only Swapper entrypoints; the floor goes on every
144
157
  // action so none can run without it.
@@ -149,11 +162,17 @@ export function scopeSameChain(ctx) {
149
162
  if (!policies.some((p) => p.type === 'universal-action' || p.type === 'arg-policy')) {
150
163
  throw new Error('crossChainPermits: a SAME_CHAIN_IE swap action has no params policy to carry its floor');
151
164
  }
152
- return {
165
+ return withTimeFrame({
153
166
  ...action,
154
167
  policies: policies.map((policy) => withRule(policy, floor)),
155
- };
168
+ });
156
169
  }),
157
- permissions: swap.permissions,
170
+ permissions: swap.permissions.map((permission) => ({
171
+ ...permission,
172
+ functions: Object.fromEntries(Object.entries(permission.functions).map(([name, fn]) => [
173
+ name,
174
+ fn && { ...fn, ...window },
175
+ ])),
176
+ })),
158
177
  };
159
178
  }
@@ -3,7 +3,7 @@ import type { CrossChainPermit, CrossChainSettlementLayer, IntentExecutorSettlem
3
3
  import type { SettlementCatalog } from './types.js';
4
4
  export declare const INTENT_EXECUTOR_SETTLEMENT_LAYERS: readonly ["CCTP", "OFT", "ECO_IE", "SAME_CHAIN_IE", "LZ"];
5
5
  export declare function isIntentExecutorLayer(layer: CrossChainSettlementLayer): layer is IntentExecutorSettlementLayer;
6
- export declare function isSettlementScopedPermit(permit: Pick<CrossChainPermit, 'settlementLayers'>): boolean;
6
+ export declare function isSettlementScopedPermit(permit: CrossChainPermit): boolean;
7
7
  export interface SettlementScopeOptions {
8
8
  readonly chainId: number;
9
9
  readonly environment: 'production' | 'development';
@@ -17,8 +17,6 @@ export interface ResolvedSettlementScope {
17
17
  /** ABI-sugar permissions the layer adds (the SAME_CHAIN_IE swap's approve). */
18
18
  readonly permissions: Permission[];
19
19
  readonly settlementLayers: IntentExecutorSettlementLayer[];
20
- /** The latest deadline the once-policy may carry: the permit's validUntil. */
21
- readonly onceDeadline?: bigint;
22
20
  }
23
21
  export declare function resolveSettlementScope(permits: readonly CrossChainPermit[], options: SettlementScopeOptions): ResolvedSettlementScope | undefined;
24
22
  //# sourceMappingURL=scope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAsC,MAAM,MAAM,CAAA;AAGvE,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,UAAU,EACV,YAAY,EACb,MAAM,UAAU,CAAA;AAQjB,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,SAAS,CAAA;AAwDnE,eAAO,MAAM,iCAAiC,2DAMe,CAAA;AAE7D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,yBAAyB,GAC/B,KAAK,IAAI,6BAA6B,CAIxC;AAKD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GACjD,OAAO,CAKT;AAID,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,CAAA;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAA;IAClC,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,CAAA;IAC1D,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,OAAO,EAAE,sBAAsB,GAC9B,uBAAuB,GAAG,SAAS,CA4TrC"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAsC,MAAM,MAAM,CAAA;AAGvE,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,UAAU,EACV,YAAY,EAEb,MAAM,UAAU,CAAA;AAQjB,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,SAAS,CAAA;AAwDnE,eAAO,MAAM,iCAAiC,2DAMe,CAAA;AAE7D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,yBAAyB,GAC/B,KAAK,IAAI,6BAA6B,CAIxC;AAKD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAK1E;AAID,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,CAAA;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAA;IAClC,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,CAAA;CAC3D;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,OAAO,EAAE,sBAAsB,GAC9B,uBAAuB,GAAG,SAAS,CA2UrC"}
@@ -1,5 +1,5 @@
1
1
  import { isAddressEqual, toFunctionSelector } from 'viem';
2
- import { sessionWindowRefusal } from '../one-time-use.js';
2
+ import { FAR_FUTURE_MS } from '../../permissions.js';
3
3
  import { allOf, anyOf, cumulativeCap, pin, swapAction } from '../swap/rules.js';
4
4
  import { scopeCctp } from './cctp.js';
5
5
  import { scopeEco } from './eco.js';
@@ -69,12 +69,6 @@ export function resolveSettlementScope(permits, options) {
69
69
  throw new Error('crossChainPermits: give at most one IntentExecutor-layer permit per session');
70
70
  }
71
71
  const permit = scoped[0];
72
- // The one-time-use deadline bounds every action in time, so a window it cannot
73
- // carry is refused. A hard error, never a per-layer skip.
74
- if (permit.validAfter !== undefined ||
75
- (permit.validUntil !== undefined && !options.oneTimeUse)) {
76
- throw new Error(sessionWindowRefusal(`crossChainPermits[${permits.indexOf(permit)}]`));
77
- }
78
72
  const named = permit.settlementLayers;
79
73
  const all = named === 'all';
80
74
  const layers = all ? [...CROSS_CHAIN_LAYERS] : (named ?? []);
@@ -139,8 +133,23 @@ export function resolveSettlementScope(permits, options) {
139
133
  recipient: resolveRecipient(recipient),
140
134
  ...(minAmount === undefined ? {} : { minAmount }),
141
135
  }));
142
- // resolve has refused a validUntil that is not in the future.
143
- const onceDeadline = permit.validUntil === undefined ? {} : { onceDeadline: permit.validUntil };
136
+ const timeFrame = permit.validAfter !== undefined || permit.validUntil !== undefined
137
+ ? [
138
+ {
139
+ type: 'time-frame',
140
+ validUntil: permit.validUntil === undefined
141
+ ? FAR_FUTURE_MS
142
+ : Number(permit.validUntil * 1000n),
143
+ validAfter: permit.validAfter === undefined
144
+ ? 0
145
+ : Number(permit.validAfter * 1000n),
146
+ },
147
+ ]
148
+ : [];
149
+ const withTimeFrame = (action) => ({
150
+ ...action,
151
+ policies: [...(action.policies ?? []), ...timeFrame],
152
+ });
144
153
  const sameChainOnly = requested[0] === 'SAME_CHAIN_IE';
145
154
  // Only ECO_IE prices its delivery against the reward; elsewhere the field would
146
155
  // be silently ignored.
@@ -172,10 +181,16 @@ export function resolveSettlementScope(permits, options) {
172
181
  sourceTokens,
173
182
  destinations,
174
183
  cap,
184
+ timeFrame,
185
+ ...(permit.validAfter === undefined
186
+ ? {}
187
+ : { validAfter: permit.validAfter }),
188
+ ...(permit.validUntil === undefined
189
+ ? {}
190
+ : { validUntil: permit.validUntil }),
175
191
  });
176
- if (fees === undefined) {
177
- return { ...sameChain, settlementLayers, ...onceDeadline };
178
- }
192
+ if (fees === undefined)
193
+ return { ...sameChain, settlementLayers };
179
194
  // A swap's approve is a permission; as a raw action the paymaster approve can
180
195
  // join it. Only the swap shape has permissions.
181
196
  const actions = [
@@ -183,10 +198,9 @@ export function resolveSettlementScope(permits, options) {
183
198
  ...swapApprovesAsActions(sameChain.permissions, cap),
184
199
  ];
185
200
  return {
186
- actions: withFeeActions(actions, sourceTokens, fees),
201
+ actions: withFeeActions(actions, sourceTokens, fees, timeFrame),
187
202
  permissions: [],
188
203
  settlementLayers,
189
- ...onceDeadline,
190
204
  };
191
205
  }
192
206
  // No bundled fallback: the orchestrator is the one source for these addresses.
@@ -209,9 +223,13 @@ export function resolveSettlementScope(permits, options) {
209
223
  sourceTokens,
210
224
  destinations,
211
225
  cap,
226
+ timeFrame,
212
227
  ...(permit.maxFeeBps === undefined
213
228
  ? {}
214
229
  : { maxFeeBps: permit.maxFeeBps }),
230
+ ...(permit.validAfter === undefined
231
+ ? {}
232
+ : { validAfter: permit.validAfter }),
215
233
  ...(permit.validUntil === undefined
216
234
  ? {}
217
235
  : { validUntil: permit.validUntil }),
@@ -265,7 +283,7 @@ export function resolveSettlementScope(permits, options) {
265
283
  // per-call bound would let repeated approves grant the cap many times.
266
284
  const capRules = cap === undefined ? [] : [cumulativeCap(32n, cap)];
267
285
  const spenderPins = anyOf(spenders.map((s) => allOf([pin(0n, s)])));
268
- const approveActions = sourceTokens.map((token) => spenders.length === 1
286
+ const approveActions = sourceTokens.map((token) => withTimeFrame(spenders.length === 1
269
287
  ? swapAction(token, APPROVE_SELECTOR, [
270
288
  pin(0n, spenders[0]),
271
289
  ...capRules,
@@ -288,7 +306,7 @@ export function resolveSettlementScope(permits, options) {
288
306
  },
289
307
  },
290
308
  ],
291
- });
309
+ }));
292
310
  const actions = [
293
311
  ...scopedLayers.map(({ action }) => action),
294
312
  ...approveActions,
@@ -296,9 +314,8 @@ export function resolveSettlementScope(permits, options) {
296
314
  return {
297
315
  actions: fees === undefined
298
316
  ? actions
299
- : withFeeActions(actions, sourceTokens, fees),
317
+ : withFeeActions(actions, sourceTokens, fees, timeFrame),
300
318
  permissions: [],
301
319
  settlementLayers,
302
- ...onceDeadline,
303
320
  };
304
321
  }
@@ -1,5 +1,5 @@
1
1
  import type { Address } from 'viem';
2
- import type { ServedStablecoin } from '../types.js';
2
+ import type { ServedStablecoin, SessionPolicy } from '../types.js';
3
3
  /**
4
4
  * The per-chain addresses a settlement-scoped session pins, as the
5
5
  * orchestrator's `GET /chains` serves them. A missing block means that layer
@@ -70,8 +70,12 @@ export interface SettlementContext {
70
70
  }[];
71
71
  /** Cumulative cap on the amount the layer call moves. */
72
72
  readonly cap?: bigint;
73
+ /** The permit's validity window, installed on every scoped action. */
74
+ readonly timeFrame: readonly SessionPolicy[];
73
75
  /** `ECO_IE` only: the most of the cap the solver may keep, in basis points. */
74
76
  readonly maxFeeBps?: number;
77
+ /** The permit's `validAfter`, in seconds. */
78
+ readonly validAfter?: bigint;
75
79
  /** The permit's `validUntil`, in seconds. */
76
80
  readonly validUntil?: bigint;
77
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/settlement/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../../../../modules/validators/smart-sessions/signing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EAEf,MAAM,SAAS,CAAA;AAchB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,CAAA;IAClD,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAA;CAC5C,GAAG,uBAAuB,CAyB1B"}
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../../../../modules/validators/smart-sessions/signing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EAEf,MAAM,SAAS,CAAA;AAYhB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,CAAA;IAClD,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAA;CAC5C,GAAG,uBAAuB,CAyB1B"}
@@ -1,9 +1,8 @@
1
1
  import { domainSeparator, zeroHash } from 'viem';
2
+ import { FAR_FUTURE_MS } from '../permissions.js';
2
3
  import { encodeErc7739ContentType } from './erc7739.js';
3
4
  import { encodeSessionPolicy } from './policies/encode.js';
4
5
  const UINT48_MAX = 2 ** 48 - 1;
5
- // Year 2100: the always-passing upper bound when only `validAfter` is set.
6
- const FAR_FUTURE_MS = 4_102_444_800_000;
7
6
  const DOMAIN_FIELDS = new Set([
8
7
  'name',
9
8
  'version',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rhinestone/sdk",
3
- "version": "0.0.0-dev-20261008155503",
3
+ "version": "0.0.0-dev-20261008155246",
4
4
  "description": "Smart wallets and multichain transactions for your application",
5
5
  "author": {
6
6
  "name": "Rhinestone",