@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.
- package/dist/src/clients/orchestrator/client.js +1 -1
- package/dist/src/config/account.d.ts +18 -39
- package/dist/src/config/account.d.ts.map +1 -1
- package/dist/src/modules/validators/permissions.d.ts +1 -0
- package/dist/src/modules/validators/permissions.d.ts.map +1 -1
- package/dist/src/modules/validators/permissions.js +13 -3
- package/dist/src/modules/validators/smart-sessions/one-time-use.d.ts +0 -2
- package/dist/src/modules/validators/smart-sessions/one-time-use.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/one-time-use.js +0 -4
- package/dist/src/modules/validators/smart-sessions/policies/claim.d.ts +1 -1
- package/dist/src/modules/validators/smart-sessions/policies/claim.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/policies/claim.js +13 -5
- package/dist/src/modules/validators/smart-sessions/resolve.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/resolve.js +36 -129
- package/dist/src/modules/validators/smart-sessions/settlement/cctp.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/settlement/cctp.js +2 -1
- package/dist/src/modules/validators/smart-sessions/settlement/eco.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/settlement/eco.js +6 -2
- package/dist/src/modules/validators/smart-sessions/settlement/fees.d.ts +2 -2
- package/dist/src/modules/validators/smart-sessions/settlement/fees.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/settlement/fees.js +6 -9
- package/dist/src/modules/validators/smart-sessions/settlement/lz.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/settlement/lz.js +1 -0
- package/dist/src/modules/validators/smart-sessions/settlement/oft.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/settlement/oft.js +2 -1
- package/dist/src/modules/validators/smart-sessions/settlement/same-chain.d.ts +3 -0
- package/dist/src/modules/validators/smart-sessions/settlement/same-chain.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/settlement/same-chain.js +23 -4
- package/dist/src/modules/validators/smart-sessions/settlement/scope.d.ts +1 -3
- package/dist/src/modules/validators/smart-sessions/settlement/scope.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/settlement/scope.js +35 -18
- package/dist/src/modules/validators/smart-sessions/settlement/types.d.ts +5 -1
- package/dist/src/modules/validators/smart-sessions/settlement/types.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/signing.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions/signing.js +1 -2
- 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-
|
|
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
|
-
*
|
|
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
|
|
277
|
-
*
|
|
278
|
-
*
|
|
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
|
-
/**
|
|
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
|
|
401
|
-
* `SpendingLimitsPolicy`
|
|
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
|
-
/**
|
|
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
|
-
*
|
|
591
|
-
* `
|
|
592
|
-
*
|
|
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
|
-
/**
|
|
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
|
|
813
|
-
* `SpendingLimitsPolicy`
|
|
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)
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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'
|
|
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":"
|
|
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
|
|
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
|
-
|
|
30
|
-
|
|
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;
|
|
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,
|
|
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(
|
|
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 ?? [])
|
|
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 ?? [])
|
|
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
|
|
197
|
-
// session combined with a permit would keep claim signing but lose
|
|
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
|
|
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
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
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 ||
|
|
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:
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
198
|
-
|
|
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,
|
|
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,
|
|
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"}
|
|
@@ -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,
|
|
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
|
-
|
|
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;
|
|
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:
|
|
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,
|
|
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 {
|
|
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
|
-
|
|
143
|
-
|
|
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
|
|
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":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;
|
|
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":"
|
|
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',
|