@rhinestone/sdk 0.0.0-dev-20260408064436 → 0.0.0-dev-20260408153544
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/execution/utils.d.ts +3 -1
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +41 -0
- package/dist/src/execution/utils.test.js +194 -0
- package/dist/src/modules/validators/index.d.ts +2 -2
- package/dist/src/modules/validators/index.d.ts.map +1 -1
- package/dist/src/modules/validators/index.js +3 -1
- package/dist/src/modules/validators/smart-sessions.d.ts +3 -1
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +21 -2
- package/dist/src/modules/validators/smart-sessions.test.js +28 -2
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/package.json +1 -1
|
@@ -38,6 +38,8 @@ interface SignedTransactionData extends PreparedTransactionData {
|
|
|
38
38
|
interface SignedUserOperationData extends PreparedUserOperationData {
|
|
39
39
|
signature: Hex;
|
|
40
40
|
}
|
|
41
|
+
declare const DUMMY_PRECLAIMOP_VT: Hex;
|
|
42
|
+
declare function injectDummyPreClaimOps(config: RhinestoneConfig, signers: SessionSignerSet, intentRoute: IntentRoute): Promise<void>;
|
|
41
43
|
declare function prepareTransaction(config: RhinestoneConfig, transaction: Transaction): Promise<PreparedTransactionData>;
|
|
42
44
|
declare function prepareUserOperation(config: RhinestoneConfig, transaction: UserOperationTransaction): Promise<PreparedUserOperationData>;
|
|
43
45
|
declare function resolveCallInputs(inputs: CallInput[] | undefined, config: RhinestoneConfig, chain: Chain, accountAddress: Address): Promise<CalldataInput[]>;
|
|
@@ -101,6 +103,6 @@ declare function hashErc7739TypedDataForSolady({ domain, types, primaryType, mes
|
|
|
101
103
|
salt: Hex;
|
|
102
104
|
};
|
|
103
105
|
}): Hex;
|
|
104
|
-
export { prepareTransaction, getTransactionMessages, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, resolveSessionForChain, };
|
|
106
|
+
export { prepareTransaction, getTransactionMessages, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, resolveSessionForChain, injectDummyPreClaimOps, DUMMY_PRECLAIMOP_VT, };
|
|
105
107
|
export type { InternalSignerSet, IntentRoute, TransactionResult, PreparedTransactionData, PreparedUserOperationData, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
|
|
106
108
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAMV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAOR,KAAK,YAAY,EAEjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAErB,MAAM,MAAM,CAAA;AACb,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DUMMY_PRECLAIMOP_VT = void 0;
|
|
3
4
|
exports.prepareTransaction = prepareTransaction;
|
|
4
5
|
exports.getTransactionMessages = getTransactionMessages;
|
|
5
6
|
exports.signTransaction = signTransaction;
|
|
@@ -22,6 +23,7 @@ exports.getIntentAccount = getIntentAccount;
|
|
|
22
23
|
exports.getTargetExecutionSignature = getTargetExecutionSignature;
|
|
23
24
|
exports.hashErc7739TypedDataForSolady = hashErc7739TypedDataForSolady;
|
|
24
25
|
exports.resolveSessionForChain = resolveSessionForChain;
|
|
26
|
+
exports.injectDummyPreClaimOps = injectDummyPreClaimOps;
|
|
25
27
|
const viem_1 = require("viem");
|
|
26
28
|
const account_abstraction_1 = require("viem/account-abstraction");
|
|
27
29
|
const erc7739_1 = require("viem/experimental/erc7739");
|
|
@@ -69,6 +71,42 @@ function resolveSessionForChain(signers, chainId) {
|
|
|
69
71
|
}
|
|
70
72
|
return { session: signers.session, enableData: signers.enableData };
|
|
71
73
|
}
|
|
74
|
+
// vt encodes ERC7579 execution (0x02) + EMISSARY_EXECUTION_ERC1271 sig mode (0x05),
|
|
75
|
+
// padded right to 32 bytes — matches the signatureMode used for session signers.
|
|
76
|
+
const DUMMY_PRECLAIMOP_VT = `0x0205${'00'.repeat(30)}`;
|
|
77
|
+
exports.DUMMY_PRECLAIMOP_VT = DUMMY_PRECLAIMOP_VT;
|
|
78
|
+
async function injectDummyPreClaimOps(config, signers, intentRoute) {
|
|
79
|
+
for (const element of intentRoute.intentOp.elements) {
|
|
80
|
+
// If there are already preClaimOps, the filler handles session enabling during claim
|
|
81
|
+
if (element.mandate.preClaimOps.ops.length > 0)
|
|
82
|
+
continue;
|
|
83
|
+
const chainId = Number(element.chainId);
|
|
84
|
+
// resolveSignersForChain handles both the isSessionEnabled check (nulling out
|
|
85
|
+
// enableData when already enabled) and verifyExecutions derivation — no need
|
|
86
|
+
// to call isSessionEnabled separately.
|
|
87
|
+
const resolved = await resolveSignersForChain(config, signers, chainId);
|
|
88
|
+
if (!isResolvedSessionSignerSet(resolved))
|
|
89
|
+
continue;
|
|
90
|
+
const { enableData, verifyExecutions } = resolved;
|
|
91
|
+
// Only inject for sessions that will produce a verifyExecution (ENABLE mode)
|
|
92
|
+
// signature. enableData is null when the session is already enabled.
|
|
93
|
+
if (!verifyExecutions || !enableData)
|
|
94
|
+
continue;
|
|
95
|
+
// Session not enabled and no preclaimops — inject a dummy preclaimop so the
|
|
96
|
+
// filler can trigger verifyExecution in ENABLE mode to enable the session
|
|
97
|
+
// on-chain without requiring a separate UserOp.
|
|
98
|
+
element.mandate.preClaimOps = {
|
|
99
|
+
vt: DUMMY_PRECLAIMOP_VT,
|
|
100
|
+
ops: [
|
|
101
|
+
{
|
|
102
|
+
to: validators_1.DUMMY_PRECLAIMOP_TARGET,
|
|
103
|
+
value: 0n,
|
|
104
|
+
data: validators_1.DUMMY_PRECLAIMOP_SELECTOR,
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
72
110
|
async function prepareTransaction(config, transaction) {
|
|
73
111
|
const { sourceChains, targetChain, tokenRequests, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, recipient, } = getTransactionParams(transaction);
|
|
74
112
|
const accountAddress = (0, accounts_1.getAddress)(config);
|
|
@@ -77,6 +115,9 @@ async function prepareTransaction(config, transaction) {
|
|
|
77
115
|
throw new error_1.SignerNotSupportedError();
|
|
78
116
|
}
|
|
79
117
|
const intentRoute = await prepareTransactionAsIntent(config, sourceChains, targetChain, await resolveCallInputs(transaction.calls, config, targetChain, accountAddress), transaction.gasLimit, tokenRequests, recipient, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers);
|
|
118
|
+
if (signers?.type === 'experimental_session') {
|
|
119
|
+
await injectDummyPreClaimOps(config, signers, intentRoute);
|
|
120
|
+
}
|
|
80
121
|
return {
|
|
81
122
|
intentRoute,
|
|
82
123
|
transaction,
|
|
@@ -1,9 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
const viem_1 = require("viem");
|
|
4
37
|
const chains_1 = require("viem/chains");
|
|
5
38
|
const vitest_1 = require("vitest");
|
|
6
39
|
const consts_1 = require("../../test/consts");
|
|
40
|
+
const validators = __importStar(require("../modules/validators"));
|
|
41
|
+
const validators_1 = require("../modules/validators");
|
|
7
42
|
const utils_1 = require("./utils");
|
|
8
43
|
const mockGetIntentRoute = vitest_1.vi.fn();
|
|
9
44
|
vitest_1.vi.mock('../orchestrator', () => ({
|
|
@@ -203,3 +238,162 @@ const makeSession = (chainId) => ({
|
|
|
203
238
|
(0, vitest_1.expect)(() => (0, utils_1.resolveSessionForChain)(signers, chains_1.optimism.id)).toThrow(`No session configured for chain ${chains_1.optimism.id}`);
|
|
204
239
|
});
|
|
205
240
|
});
|
|
241
|
+
// ---------------------------------------------------------------------------
|
|
242
|
+
// injectDummyPreClaimOps
|
|
243
|
+
// ---------------------------------------------------------------------------
|
|
244
|
+
const makeConfig = () => ({
|
|
245
|
+
owners: { type: 'ecdsa', accounts: [consts_1.accountA], threshold: 1 },
|
|
246
|
+
apiKey: 'test',
|
|
247
|
+
});
|
|
248
|
+
const makeEnableData = () => ({
|
|
249
|
+
userSignature: `0x${'00'.repeat(65)}`,
|
|
250
|
+
hashesAndChainIds: [
|
|
251
|
+
{ chainId: BigInt(chains_1.base.id), sessionDigest: `0x${'00'.repeat(32)}` },
|
|
252
|
+
],
|
|
253
|
+
sessionToEnableIndex: 0,
|
|
254
|
+
});
|
|
255
|
+
const makeElement = (preClaimOps) => ({
|
|
256
|
+
chainId: String(chains_1.base.id),
|
|
257
|
+
mandate: {
|
|
258
|
+
preClaimOps,
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
(0, vitest_1.describe)('injectDummyPreClaimOps', () => {
|
|
262
|
+
let isSessionEnabledSpy;
|
|
263
|
+
(0, vitest_1.beforeEach)(() => {
|
|
264
|
+
isSessionEnabledSpy = vitest_1.vi
|
|
265
|
+
.spyOn(validators, 'isSessionEnabled')
|
|
266
|
+
.mockResolvedValue(false);
|
|
267
|
+
});
|
|
268
|
+
(0, vitest_1.afterEach)(() => {
|
|
269
|
+
isSessionEnabledSpy.mockRestore();
|
|
270
|
+
});
|
|
271
|
+
(0, vitest_1.test)('injects dummy preclaimop when session is not enabled and has no preclaimops', async () => {
|
|
272
|
+
// isSessionEnabledSpy already returns false by default from beforeEach
|
|
273
|
+
const element = makeElement({ vt: `0x${'00'.repeat(32)}`, ops: [] });
|
|
274
|
+
const signers = {
|
|
275
|
+
type: 'experimental_session',
|
|
276
|
+
// explicit action → verifyExecutions=true → ENABLE mode signature
|
|
277
|
+
session: {
|
|
278
|
+
...makeSession(chains_1.base.id),
|
|
279
|
+
chain: chains_1.base,
|
|
280
|
+
actions: [
|
|
281
|
+
{
|
|
282
|
+
target: '0x1111111111111111111111111111111111111111',
|
|
283
|
+
selector: '0xdeadbeef',
|
|
284
|
+
},
|
|
285
|
+
],
|
|
286
|
+
},
|
|
287
|
+
enableData: makeEnableData(),
|
|
288
|
+
};
|
|
289
|
+
const intentRoute = { intentOp: { elements: [element] } };
|
|
290
|
+
await (0, utils_1.injectDummyPreClaimOps)(makeConfig(), signers, intentRoute);
|
|
291
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops).toHaveLength(1);
|
|
292
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops[0].to).toBe(validators_1.DUMMY_PRECLAIMOP_TARGET);
|
|
293
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops[0].data).toBe(validators_1.DUMMY_PRECLAIMOP_SELECTOR);
|
|
294
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops[0].value).toBe(0n);
|
|
295
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.vt).toBe(utils_1.DUMMY_PRECLAIMOP_VT);
|
|
296
|
+
});
|
|
297
|
+
(0, vitest_1.test)('does not inject when preclaimops already present', async () => {
|
|
298
|
+
// isSessionEnabledSpy already returns false from beforeEach, but won't be reached
|
|
299
|
+
const existingOp = {
|
|
300
|
+
to: '0xdeadbeef00000000000000000000000000000000',
|
|
301
|
+
value: 0n,
|
|
302
|
+
data: '0xabcd1234',
|
|
303
|
+
};
|
|
304
|
+
const element = makeElement({
|
|
305
|
+
vt: `0x${'00'.repeat(32)}`,
|
|
306
|
+
ops: [existingOp],
|
|
307
|
+
});
|
|
308
|
+
const signers = {
|
|
309
|
+
type: 'experimental_session',
|
|
310
|
+
session: { ...makeSession(chains_1.base.id), chain: chains_1.base },
|
|
311
|
+
enableData: makeEnableData(),
|
|
312
|
+
};
|
|
313
|
+
const intentRoute = { intentOp: { elements: [element] } };
|
|
314
|
+
await (0, utils_1.injectDummyPreClaimOps)(makeConfig(), signers, intentRoute);
|
|
315
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops).toHaveLength(1);
|
|
316
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops[0]).toBe(existingOp);
|
|
317
|
+
});
|
|
318
|
+
(0, vitest_1.test)('does not inject when session is already enabled', async () => {
|
|
319
|
+
isSessionEnabledSpy.mockResolvedValue(true);
|
|
320
|
+
const element = makeElement({ vt: `0x${'00'.repeat(32)}`, ops: [] });
|
|
321
|
+
const signers = {
|
|
322
|
+
type: 'experimental_session',
|
|
323
|
+
session: { ...makeSession(chains_1.base.id), chain: chains_1.base },
|
|
324
|
+
enableData: makeEnableData(),
|
|
325
|
+
};
|
|
326
|
+
const intentRoute = { intentOp: { elements: [element] } };
|
|
327
|
+
await (0, utils_1.injectDummyPreClaimOps)(makeConfig(), signers, intentRoute);
|
|
328
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops).toHaveLength(0);
|
|
329
|
+
});
|
|
330
|
+
(0, vitest_1.test)('does not inject when verifyExecutions is false (session without explicit actions)', async () => {
|
|
331
|
+
// Sessions without explicit actions derive verifyExecutions=false, so they use
|
|
332
|
+
// USE mode signatures. Injecting a dummy preclaimop would make the filler call
|
|
333
|
+
// verifyExecution against a session that isn't enabled yet.
|
|
334
|
+
const element = makeElement({ vt: `0x${'00'.repeat(32)}`, ops: [] });
|
|
335
|
+
const signers = {
|
|
336
|
+
type: 'experimental_session',
|
|
337
|
+
// no actions → verifyExecutions defaults to false
|
|
338
|
+
session: { ...makeSession(chains_1.base.id), chain: chains_1.base },
|
|
339
|
+
enableData: makeEnableData(),
|
|
340
|
+
};
|
|
341
|
+
const intentRoute = { intentOp: { elements: [element] } };
|
|
342
|
+
await (0, utils_1.injectDummyPreClaimOps)(makeConfig(), signers, intentRoute);
|
|
343
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops).toHaveLength(0);
|
|
344
|
+
});
|
|
345
|
+
(0, vitest_1.test)('does not inject when session has no enableData', async () => {
|
|
346
|
+
const element = makeElement({ vt: `0x${'00'.repeat(32)}`, ops: [] });
|
|
347
|
+
const signers = {
|
|
348
|
+
type: 'experimental_session',
|
|
349
|
+
session: { ...makeSession(chains_1.base.id), chain: chains_1.base },
|
|
350
|
+
// no enableData
|
|
351
|
+
};
|
|
352
|
+
const intentRoute = { intentOp: { elements: [element] } };
|
|
353
|
+
await (0, utils_1.injectDummyPreClaimOps)(makeConfig(), signers, intentRoute);
|
|
354
|
+
(0, vitest_1.expect)(element.mandate.preClaimOps.ops).toHaveLength(0);
|
|
355
|
+
});
|
|
356
|
+
(0, vitest_1.test)('handles multiple elements — injects only into not-enabled ones', async () => {
|
|
357
|
+
isSessionEnabledSpy
|
|
358
|
+
.mockResolvedValueOnce(false) // base — not enabled
|
|
359
|
+
.mockResolvedValueOnce(true); // optimism — already enabled
|
|
360
|
+
const elementBase = makeElement({
|
|
361
|
+
vt: `0x${'00'.repeat(32)}`,
|
|
362
|
+
ops: [],
|
|
363
|
+
});
|
|
364
|
+
const elementOpt = {
|
|
365
|
+
chainId: String(chains_1.optimism.id),
|
|
366
|
+
mandate: { preClaimOps: { vt: `0x${'00'.repeat(32)}`, ops: [] } },
|
|
367
|
+
};
|
|
368
|
+
const sessionWithActions = (chainId, chain) => ({
|
|
369
|
+
...makeSession(chainId),
|
|
370
|
+
chain,
|
|
371
|
+
actions: [
|
|
372
|
+
{
|
|
373
|
+
target: '0x1111111111111111111111111111111111111111',
|
|
374
|
+
selector: '0xdeadbeef',
|
|
375
|
+
},
|
|
376
|
+
],
|
|
377
|
+
});
|
|
378
|
+
const sessions = {
|
|
379
|
+
type: 'experimental_session',
|
|
380
|
+
sessions: {
|
|
381
|
+
[chains_1.base.id]: {
|
|
382
|
+
session: sessionWithActions(chains_1.base.id, chains_1.base),
|
|
383
|
+
enableData: makeEnableData(),
|
|
384
|
+
},
|
|
385
|
+
[chains_1.optimism.id]: {
|
|
386
|
+
session: sessionWithActions(chains_1.optimism.id, chains_1.optimism),
|
|
387
|
+
enableData: makeEnableData(),
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
};
|
|
391
|
+
const intentRoute = {
|
|
392
|
+
intentOp: { elements: [elementBase, elementOpt] },
|
|
393
|
+
};
|
|
394
|
+
await (0, utils_1.injectDummyPreClaimOps)(makeConfig(), sessions, intentRoute);
|
|
395
|
+
(0, vitest_1.expect)(elementBase.mandate.preClaimOps.ops).toHaveLength(1);
|
|
396
|
+
(0, vitest_1.expect)(elementBase.mandate.preClaimOps.ops[0].to).toBe(validators_1.DUMMY_PRECLAIMOP_TARGET);
|
|
397
|
+
(0, vitest_1.expect)(elementOpt.mandate.preClaimOps.ops).toHaveLength(0);
|
|
398
|
+
});
|
|
399
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { getMockSignature, getOwnerValidator, MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS } from './core';
|
|
2
|
-
import { buildMockSignature, getEnableSessionCall, getPermissionId, getSmartSessionValidator, isSessionEnabled, packSignature } from './smart-sessions';
|
|
3
|
-
export { OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, getPermissionId, getMockSignature, buildMockSignature, isSessionEnabled, packSignature, };
|
|
2
|
+
import { buildMockSignature, DUMMY_PRECLAIMOP_SELECTOR, DUMMY_PRECLAIMOP_TARGET, getEnableSessionCall, getPermissionId, getSmartSessionValidator, isSessionEnabled, packSignature } from './smart-sessions';
|
|
3
|
+
export { OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, DUMMY_PRECLAIMOP_TARGET, DUMMY_PRECLAIMOP_SELECTOR, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, getPermissionId, getMockSignature, buildMockSignature, isSessionEnabled, packSignature, };
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,QAAQ,CAAA;AACf,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GACd,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,QAAQ,CAAA;AACf,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GACd,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.packSignature = exports.isSessionEnabled = exports.buildMockSignature = exports.getMockSignature = exports.getPermissionId = exports.getEnableSessionCall = exports.getSmartSessionValidator = exports.getOwnerValidator = exports.SMART_SESSION_EMISSARY_ADDRESS = exports.MULTI_FACTOR_VALIDATOR_ADDRESS = exports.WEBAUTHN_VALIDATOR_ADDRESS = exports.OWNABLE_VALIDATOR_ADDRESS = void 0;
|
|
3
|
+
exports.packSignature = exports.isSessionEnabled = exports.buildMockSignature = exports.getMockSignature = exports.getPermissionId = exports.getEnableSessionCall = exports.getSmartSessionValidator = exports.getOwnerValidator = exports.DUMMY_PRECLAIMOP_SELECTOR = exports.DUMMY_PRECLAIMOP_TARGET = exports.SMART_SESSION_EMISSARY_ADDRESS = exports.MULTI_FACTOR_VALIDATOR_ADDRESS = exports.WEBAUTHN_VALIDATOR_ADDRESS = exports.OWNABLE_VALIDATOR_ADDRESS = void 0;
|
|
4
4
|
const core_1 = require("./core");
|
|
5
5
|
Object.defineProperty(exports, "getMockSignature", { enumerable: true, get: function () { return core_1.getMockSignature; } });
|
|
6
6
|
Object.defineProperty(exports, "getOwnerValidator", { enumerable: true, get: function () { return core_1.getOwnerValidator; } });
|
|
@@ -10,6 +10,8 @@ Object.defineProperty(exports, "SMART_SESSION_EMISSARY_ADDRESS", { enumerable: t
|
|
|
10
10
|
Object.defineProperty(exports, "WEBAUTHN_VALIDATOR_ADDRESS", { enumerable: true, get: function () { return core_1.WEBAUTHN_VALIDATOR_ADDRESS; } });
|
|
11
11
|
const smart_sessions_1 = require("./smart-sessions");
|
|
12
12
|
Object.defineProperty(exports, "buildMockSignature", { enumerable: true, get: function () { return smart_sessions_1.buildMockSignature; } });
|
|
13
|
+
Object.defineProperty(exports, "DUMMY_PRECLAIMOP_SELECTOR", { enumerable: true, get: function () { return smart_sessions_1.DUMMY_PRECLAIMOP_SELECTOR; } });
|
|
14
|
+
Object.defineProperty(exports, "DUMMY_PRECLAIMOP_TARGET", { enumerable: true, get: function () { return smart_sessions_1.DUMMY_PRECLAIMOP_TARGET; } });
|
|
13
15
|
Object.defineProperty(exports, "getEnableSessionCall", { enumerable: true, get: function () { return smart_sessions_1.getEnableSessionCall; } });
|
|
14
16
|
Object.defineProperty(exports, "getPermissionId", { enumerable: true, get: function () { return smart_sessions_1.getPermissionId; } });
|
|
15
17
|
Object.defineProperty(exports, "getSmartSessionValidator", { enumerable: true, get: function () { return smart_sessions_1.getSmartSessionValidator; } });
|
|
@@ -164,6 +164,8 @@ declare const SMART_SESSION_MODE_ENABLE = "0x01";
|
|
|
164
164
|
declare const SMART_SESSIONS_FALLBACK_TARGET_FLAG: Address;
|
|
165
165
|
declare const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG: Hex;
|
|
166
166
|
declare const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION: Hex;
|
|
167
|
+
declare const DUMMY_PRECLAIMOP_TARGET: Address;
|
|
168
|
+
declare const DUMMY_PRECLAIMOP_SELECTOR: Hex;
|
|
167
169
|
declare const SPENDING_LIMITS_POLICY_ADDRESS: Address;
|
|
168
170
|
declare const TIME_FRAME_POLICY_ADDRESS: Address;
|
|
169
171
|
declare const SUDO_POLICY_ADDRESS: Address;
|
|
@@ -202,6 +204,6 @@ declare function getSmartSessionValidator(config: RhinestoneConfig): Module | nu
|
|
|
202
204
|
* simulates verifyExecution with the mock emissary to estimate gas before the user signs.
|
|
203
205
|
*/
|
|
204
206
|
declare function buildMockSignature(session: Session, useDevContracts?: boolean, chainCount?: number): Hex;
|
|
205
|
-
export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, SPENDING_LIMITS_POLICY_ADDRESS, TIME_FRAME_POLICY_ADDRESS, SUDO_POLICY_ADDRESS, UNIVERSAL_ACTION_POLICY_ADDRESS, USAGE_LIMIT_POLICY_ADDRESS, VALUE_LIMIT_POLICY_ADDRESS, INTENT_EXECUTION_POLICY_ADDRESS, packSignature, getSessionData, getPolicyData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, isSessionEnabled, signEnableSession, buildMockSignature, };
|
|
207
|
+
export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, DUMMY_PRECLAIMOP_TARGET, DUMMY_PRECLAIMOP_SELECTOR, SPENDING_LIMITS_POLICY_ADDRESS, TIME_FRAME_POLICY_ADDRESS, SUDO_POLICY_ADDRESS, UNIVERSAL_ACTION_POLICY_ADDRESS, USAGE_LIMIT_POLICY_ADDRESS, VALUE_LIMIT_POLICY_ADDRESS, INTENT_EXECUTION_POLICY_ADDRESS, packSignature, getSessionData, getPolicyData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, isSessionEnabled, signEnableSession, buildMockSignature, };
|
|
206
208
|
export type { ChainSession, ChainDigest, ResolvedSessionSignerSet, SessionData, SmartSessionModeType, SessionDetails, };
|
|
207
209
|
//# sourceMappingURL=smart-sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.INTENT_EXECUTION_POLICY_ADDRESS = exports.VALUE_LIMIT_POLICY_ADDRESS = exports.USAGE_LIMIT_POLICY_ADDRESS = exports.UNIVERSAL_ACTION_POLICY_ADDRESS = exports.SUDO_POLICY_ADDRESS = exports.TIME_FRAME_POLICY_ADDRESS = exports.SPENDING_LIMITS_POLICY_ADDRESS = exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = exports.SMART_SESSIONS_FALLBACK_TARGET_FLAG = exports.SMART_SESSION_EMISSARY_ADDRESS_DEV = exports.SMART_SESSION_EMISSARY_ADDRESS = void 0;
|
|
6
|
+
exports.INTENT_EXECUTION_POLICY_ADDRESS = exports.VALUE_LIMIT_POLICY_ADDRESS = exports.USAGE_LIMIT_POLICY_ADDRESS = exports.UNIVERSAL_ACTION_POLICY_ADDRESS = exports.SUDO_POLICY_ADDRESS = exports.TIME_FRAME_POLICY_ADDRESS = exports.SPENDING_LIMITS_POLICY_ADDRESS = exports.DUMMY_PRECLAIMOP_SELECTOR = exports.DUMMY_PRECLAIMOP_TARGET = exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = exports.SMART_SESSIONS_FALLBACK_TARGET_FLAG = exports.SMART_SESSION_EMISSARY_ADDRESS_DEV = exports.SMART_SESSION_EMISSARY_ADDRESS = void 0;
|
|
7
7
|
exports.packSignature = packSignature;
|
|
8
8
|
exports.getSessionData = getSessionData;
|
|
9
9
|
exports.getPolicyData = getPolicyData;
|
|
@@ -81,6 +81,17 @@ const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = '0x00000001';
|
|
|
81
81
|
exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG;
|
|
82
82
|
const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = '0x00000002';
|
|
83
83
|
exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION;
|
|
84
|
+
// Dummy preclaimop action injected into every session so that the filler can trigger
|
|
85
|
+
// verifyExecution (ENABLE mode) using an injected dummy preclaimop when there are no
|
|
86
|
+
// real preclaimops. Target 0x...0001 is the ecRecover precompile; calls to it fail
|
|
87
|
+
// silently because preclaimops are failure-tolerant. Selector 0x69123456 is
|
|
88
|
+
// intentionally uncommon. Note: this address is the same as
|
|
89
|
+
// SMART_SESSIONS_FALLBACK_TARGET_FLAG — that is harmless because they operate in
|
|
90
|
+
// different contexts (action matching vs. literal execution target).
|
|
91
|
+
const DUMMY_PRECLAIMOP_TARGET = '0x0000000000000000000000000000000000000001';
|
|
92
|
+
exports.DUMMY_PRECLAIMOP_TARGET = DUMMY_PRECLAIMOP_TARGET;
|
|
93
|
+
const DUMMY_PRECLAIMOP_SELECTOR = '0x69123456';
|
|
94
|
+
exports.DUMMY_PRECLAIMOP_SELECTOR = DUMMY_PRECLAIMOP_SELECTOR;
|
|
84
95
|
const SPENDING_LIMITS_POLICY_ADDRESS = '0x00000088d48cf102a8cdb0137a9b173f957c6343';
|
|
85
96
|
exports.SPENDING_LIMITS_POLICY_ADDRESS = SPENDING_LIMITS_POLICY_ADDRESS;
|
|
86
97
|
const TIME_FRAME_POLICY_ADDRESS = '0x8177451511de0577b911c254e9551d981c26dc72';
|
|
@@ -455,8 +466,16 @@ function getSessionData(session, useDevContracts) {
|
|
|
455
466
|
...(!userHasFallbackAction
|
|
456
467
|
? [{ policies: [{ type: 'intent-execution' }] }]
|
|
457
468
|
: []),
|
|
469
|
+
// Dummy action: allows the filler to call verifyExecution in ENABLE mode using
|
|
470
|
+
// an injected dummy preclaimop so any session can be enabled on-chain without
|
|
471
|
+
// a separate UserOp, regardless of whether it has claim or action policies.
|
|
472
|
+
{
|
|
473
|
+
target: DUMMY_PRECLAIMOP_TARGET,
|
|
474
|
+
selector: DUMMY_PRECLAIMOP_SELECTOR,
|
|
475
|
+
policies: [{ type: 'sudo' }],
|
|
476
|
+
},
|
|
458
477
|
];
|
|
459
|
-
const actions = session.actions
|
|
478
|
+
const actions = session.actions?.length
|
|
460
479
|
? [...session.actions, ...injectedActions].map((action) => ({
|
|
461
480
|
actionTargetSelector: 'selector' in action
|
|
462
481
|
? action.selector
|
|
@@ -93,14 +93,40 @@ const dummySig = `0x${'00'.repeat(65)}`;
|
|
|
93
93
|
(0, vitest_1.expect)(data.actions[0].actionTarget).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG);
|
|
94
94
|
(0, vitest_1.expect)(data.actions[0].actionTargetSelector).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG);
|
|
95
95
|
});
|
|
96
|
-
(0, vitest_1.test)('explicit actions → user action +
|
|
96
|
+
(0, vitest_1.test)('explicit actions → user action + 3 injected (WETH deposit + intent-execution fallback + dummy preclaimop)', () => {
|
|
97
97
|
const data = (0, smart_sessions_1.getSessionData)(sessionWithAction);
|
|
98
|
-
(0, vitest_1.expect)(data.actions).toHaveLength(
|
|
98
|
+
(0, vitest_1.expect)(data.actions).toHaveLength(4);
|
|
99
99
|
(0, vitest_1.expect)(data.actions[0].actionTarget).toBe('0x1111111111111111111111111111111111111111');
|
|
100
100
|
// injected WETH deposit — target is the wrapped token (non-zero address)
|
|
101
101
|
(0, vitest_1.expect)(data.actions[1].actionTarget).not.toBe('0x0000000000000000000000000000000000000000');
|
|
102
102
|
// injected intent-execution fallback
|
|
103
103
|
(0, vitest_1.expect)(data.actions[2].actionTarget).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG);
|
|
104
|
+
// injected dummy preclaimop action
|
|
105
|
+
(0, vitest_1.expect)(data.actions[3].actionTarget).toBe(smart_sessions_1.DUMMY_PRECLAIMOP_TARGET);
|
|
106
|
+
(0, vitest_1.expect)(data.actions[3].actionTargetSelector).toBe(smart_sessions_1.DUMMY_PRECLAIMOP_SELECTOR);
|
|
107
|
+
});
|
|
108
|
+
(0, vitest_1.test)('dummy preclaimop action uses sudo policy', () => {
|
|
109
|
+
const data = (0, smart_sessions_1.getSessionData)(sessionWithAction);
|
|
110
|
+
const dummyAction = data.actions.find((a) => a.actionTargetSelector === smart_sessions_1.DUMMY_PRECLAIMOP_SELECTOR);
|
|
111
|
+
(0, vitest_1.expect)(dummyAction).toBeDefined();
|
|
112
|
+
(0, vitest_1.expect)(dummyAction.actionPolicies).toHaveLength(1);
|
|
113
|
+
(0, vitest_1.expect)(dummyAction.actionPolicies[0].policy).toBe(smart_sessions_1.SUDO_POLICY_ADDRESS);
|
|
114
|
+
(0, vitest_1.expect)(dummyAction.actionPolicies[0].initData).toBe('0x');
|
|
115
|
+
});
|
|
116
|
+
(0, vitest_1.test)('no explicit actions → sudoAction fallback only (dummy injected via injectedActions path is not used)', () => {
|
|
117
|
+
// Sessions without explicit actions use the [sudoAction] fallback directly,
|
|
118
|
+
// which covers all (target, selector) pairs — no dummy action needed.
|
|
119
|
+
const data = (0, smart_sessions_1.getSessionData)(baseSession);
|
|
120
|
+
(0, vitest_1.expect)(data.actions).toHaveLength(1);
|
|
121
|
+
(0, vitest_1.expect)(data.actions[0].actionTarget).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG);
|
|
122
|
+
});
|
|
123
|
+
(0, vitest_1.test)('empty actions array → same sudoAction fallback as no actions', () => {
|
|
124
|
+
// actions: [] is truthy but has no elements — must be treated the same as
|
|
125
|
+
// actions: undefined so injectedActions are not appended.
|
|
126
|
+
const sessionWithEmptyActions = { ...baseSession, actions: [] };
|
|
127
|
+
const data = (0, smart_sessions_1.getSessionData)(sessionWithEmptyActions);
|
|
128
|
+
(0, vitest_1.expect)(data.actions).toHaveLength(1);
|
|
129
|
+
(0, vitest_1.expect)(data.actions[0].actionTarget).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG);
|
|
104
130
|
});
|
|
105
131
|
(0, vitest_1.test)('multiple policies on one action', () => {
|
|
106
132
|
const session = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const PROD_ORCHESTRATOR_URL = "https://v1.orchestrator.rhinestone.dev";
|
|
2
2
|
declare const RHINESTONE_SPOKE_POOL_ADDRESS = "0x000000000060f6e853447881951574cdd0663530";
|
|
3
|
-
declare const SDK_VERSION = "0.0.0-dev-
|
|
3
|
+
declare const SDK_VERSION = "0.0.0-dev-20260408153544";
|
|
4
4
|
declare const API_VERSION = "2026-01.alps";
|
|
5
5
|
export { PROD_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, SDK_VERSION, API_VERSION, };
|
|
6
6
|
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -5,7 +5,7 @@ const PROD_ORCHESTRATOR_URL = 'https://v1.orchestrator.rhinestone.dev';
|
|
|
5
5
|
exports.PROD_ORCHESTRATOR_URL = PROD_ORCHESTRATOR_URL;
|
|
6
6
|
const RHINESTONE_SPOKE_POOL_ADDRESS = '0x000000000060f6e853447881951574cdd0663530';
|
|
7
7
|
exports.RHINESTONE_SPOKE_POOL_ADDRESS = RHINESTONE_SPOKE_POOL_ADDRESS;
|
|
8
|
-
const SDK_VERSION = '0.0.0-dev-
|
|
8
|
+
const SDK_VERSION = '0.0.0-dev-20260408153544';
|
|
9
9
|
exports.SDK_VERSION = SDK_VERSION;
|
|
10
10
|
const API_VERSION = '2026-01.alps';
|
|
11
11
|
exports.API_VERSION = API_VERSION;
|