@charterlabs/rhinestone-sdk 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +31 -200
  2. package/dist/src/accounts/index.d.ts +3 -2
  3. package/dist/src/accounts/index.d.ts.map +1 -1
  4. package/dist/src/accounts/index.js +14 -6
  5. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  6. package/dist/src/accounts/signing/common.js +9 -18
  7. package/dist/src/actions/compact.d.ts +2 -1
  8. package/dist/src/actions/compact.d.ts.map +1 -1
  9. package/dist/src/actions/compact.js +3 -1
  10. package/dist/src/actions/smart-sessions.d.ts +11 -1
  11. package/dist/src/actions/smart-sessions.d.ts.map +1 -1
  12. package/dist/src/actions/smart-sessions.js +33 -0
  13. package/dist/src/errors/index.d.ts +2 -2
  14. package/dist/src/errors/index.d.ts.map +1 -1
  15. package/dist/src/errors/index.js +2 -1
  16. package/dist/src/execution/compact.d.ts +3 -1
  17. package/dist/src/execution/compact.d.ts.map +1 -1
  18. package/dist/src/execution/compact.js +5 -1
  19. package/dist/src/execution/error.d.ts +1 -0
  20. package/dist/src/execution/error.d.ts.map +1 -1
  21. package/dist/src/execution/index.d.ts +3 -3
  22. package/dist/src/execution/index.d.ts.map +1 -1
  23. package/dist/src/execution/index.js +16 -11
  24. package/dist/src/execution/utils.d.ts +9 -7
  25. package/dist/src/execution/utils.d.ts.map +1 -1
  26. package/dist/src/execution/utils.js +85 -14
  27. package/dist/src/index.d.ts +6 -4
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/index.js +13 -11
  30. package/dist/src/modules/index.d.ts +2 -2
  31. package/dist/src/modules/index.d.ts.map +1 -1
  32. package/dist/src/modules/index.js +2 -1
  33. package/dist/src/modules/validators/core.d.ts +2 -1
  34. package/dist/src/modules/validators/core.d.ts.map +1 -1
  35. package/dist/src/modules/validators/core.js +4 -3
  36. package/dist/src/modules/validators/smart-sessions.d.ts +9 -5
  37. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  38. package/dist/src/modules/validators/smart-sessions.js +383 -22
  39. package/dist/src/orchestrator/client.d.ts +2 -7
  40. package/dist/src/orchestrator/client.d.ts.map +1 -1
  41. package/dist/src/orchestrator/client.js +49 -43
  42. package/dist/src/orchestrator/error.d.ts +11 -1
  43. package/dist/src/orchestrator/error.d.ts.map +1 -1
  44. package/dist/src/orchestrator/error.js +16 -1
  45. package/dist/src/orchestrator/index.d.ts +4 -4
  46. package/dist/src/orchestrator/index.d.ts.map +1 -1
  47. package/dist/src/orchestrator/index.js +2 -1
  48. package/dist/src/orchestrator/registry.d.ts +1 -1
  49. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  50. package/dist/src/orchestrator/registry.js +3 -14
  51. package/dist/src/orchestrator/registry.test.js +5 -1
  52. package/dist/src/orchestrator/types.d.ts +26 -4
  53. package/dist/src/orchestrator/types.d.ts.map +1 -1
  54. package/dist/src/orchestrator/types.js +15 -1
  55. package/dist/src/types.d.ts +30 -11
  56. package/dist/src/types.d.ts.map +1 -1
  57. package/package.json +3 -3
@@ -1,6 +1,7 @@
1
1
  import { type Address, type Hex, type TypedDataDefinition } from 'viem';
2
- import type { RhinestoneAccountConfig, Session } from '../../types';
2
+ import type { ProviderConfig, RhinestoneAccountConfig, Session, SignerSet } from '../../types';
3
3
  import { type Module } from '../common';
4
+ import { SMART_SESSION_EMISSARY_ADDRESS } from './core';
4
5
  interface SessionData {
5
6
  sessionValidator: Address;
6
7
  sessionValidatorInitData: Hex;
@@ -29,7 +30,7 @@ interface PolicyData {
29
30
  policy: Address;
30
31
  initData: Hex;
31
32
  }
32
- type SmartSessionModeType = typeof SMART_SESSION_MODE_USE | typeof SMART_SESSION_MODE_ENABLE | typeof SMART_SESSION_MODE_UNSAFE_ENABLE;
33
+ type SmartSessionModeType = typeof SMART_SESSION_MODE_USE | typeof SMART_SESSION_MODE_ENABLE;
33
34
  interface ChainDigest {
34
35
  chainId: bigint;
35
36
  sessionDigest: Hex;
@@ -158,14 +159,17 @@ declare const types: {
158
159
  readonly type: "ChainSession[]";
159
160
  }];
160
161
  };
161
- declare const SMART_SESSION_EMISSARY_ADDRESS: Address;
162
162
  declare const SMART_SESSION_MODE_USE = "0x00";
163
163
  declare const SMART_SESSION_MODE_ENABLE = "0x01";
164
- declare const SMART_SESSION_MODE_UNSAFE_ENABLE = "0x02";
165
164
  declare const SMART_SESSIONS_FALLBACK_TARGET_FLAG: Address;
166
165
  declare const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG: Hex;
167
166
  declare const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION: Hex;
167
+ declare function packSignature(signers: SignerSet & {
168
+ type: 'experimental_session';
169
+ }, validatorSignature: Hex): Hex;
168
170
  declare function getSessionDetails(account: Address, sessions: Session[]): Promise<SessionDetails>;
171
+ declare function isSessionEnabled(account: Address, provider: ProviderConfig | undefined, session: Session): Promise<boolean>;
172
+ declare function signEnableSession(config: RhinestoneAccountConfig, details: SessionDetails): Promise<Hex>;
169
173
  declare function getEnableSessionCall(account: Address, session: Session, enableSessionSignature: Hex, hashesAndChainIds: {
170
174
  chainId: bigint;
171
175
  sessionDigest: Hex;
@@ -176,6 +180,6 @@ declare function getEnableSessionCall(account: Address, session: Session, enable
176
180
  declare function getSessionData(session: Session): SessionData;
177
181
  declare function getPermissionId(session: Session): `0x${string}`;
178
182
  declare function getSmartSessionValidator(config: RhinestoneAccountConfig): Module | null;
179
- export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, getSessionData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, };
183
+ export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, packSignature, getSessionData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, isSessionEnabled, signEnableSession, };
180
184
  export type { ChainSession, ChainDigest, SessionData, SmartSessionModeType, SessionDetails, };
181
185
  //# 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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"}
@@ -4,16 +4,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  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 = void 0;
7
+ exports.packSignature = packSignature;
7
8
  exports.getSessionData = getSessionData;
8
9
  exports.getEnableSessionCall = getEnableSessionCall;
9
10
  exports.getPermissionId = getPermissionId;
10
11
  exports.getSmartSessionValidator = getSmartSessionValidator;
11
12
  exports.getSessionDetails = getSessionDetails;
13
+ exports.isSessionEnabled = isSessionEnabled;
14
+ exports.signEnableSession = signEnableSession;
15
+ const solady_1 = require("solady");
12
16
  const viem_1 = require("viem");
13
- const compact_1 = require("../../actions/compact");
17
+ const chains_1 = require("viem/chains");
18
+ const utils_1 = require("../../accounts/utils");
19
+ const compact_1 = require("../../execution/compact");
20
+ const utils_2 = require("../../execution/utils");
14
21
  const smart_session_emissary_1 = __importDefault(require("../abi/smart-session-emissary"));
15
22
  const common_1 = require("../common");
16
23
  const core_1 = require("./core");
24
+ Object.defineProperty(exports, "SMART_SESSION_EMISSARY_ADDRESS", { enumerable: true, get: function () { return core_1.SMART_SESSION_EMISSARY_ADDRESS; } });
17
25
  const types = {
18
26
  PolicyData: [
19
27
  { name: 'policy', type: 'address' },
@@ -58,42 +66,190 @@ const types = {
58
66
  ],
59
67
  MultiChainSession: [{ name: 'sessionsAndChainIds', type: 'ChainSession[]' }],
60
68
  };
61
- const SMART_SESSION_EMISSARY_ADDRESS = '0x4411abbbede0215626284d0385dd55b4303012b7';
62
- exports.SMART_SESSION_EMISSARY_ADDRESS = SMART_SESSION_EMISSARY_ADDRESS;
63
69
  const SMART_SESSION_MODE_USE = '0x00';
64
70
  const SMART_SESSION_MODE_ENABLE = '0x01';
65
- const SMART_SESSION_MODE_UNSAFE_ENABLE = '0x02';
66
- const SUDO_POLICY_ADDRESS = '0x0000003111cD8e92337C100F22B7A9dbf8DEE301';
67
71
  const SMART_SESSIONS_FALLBACK_TARGET_FLAG = '0x0000000000000000000000000000000000000001';
68
72
  exports.SMART_SESSIONS_FALLBACK_TARGET_FLAG = SMART_SESSIONS_FALLBACK_TARGET_FLAG;
69
73
  const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = '0x00000001';
70
74
  exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG;
71
75
  const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = '0x00000002';
72
76
  exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION;
73
- const SCOPE_MULTICHAIN = 0;
74
- const RESET_PERIOD_ONE_WEEK = 6;
77
+ const SPENDING_LIMITS_POLICY_ADDRESS = '0x00000088d48cf102a8cdb0137a9b173f957c6343';
78
+ const TIME_FRAME_POLICY_ADDRESS = '0x8177451511de0577b911c254e9551d981c26dc72';
79
+ const SUDO_POLICY_ADDRESS = '0x0000003111cd8e92337c100f22b7a9dbf8dee301';
80
+ const UNIVERSAL_ACTION_POLICY_ADDRESS = '0x0000006dda6c463511c4e9b05cfc34c1247fcf1f';
81
+ const USAGE_LIMIT_POLICY_ADDRESS = '0x1f34ef8311345a3a4a4566af321b313052f51493';
82
+ const VALUE_LIMIT_POLICY_ADDRESS = '0x730da93267e7e513e932301b47f2ac7d062abc83';
83
+ const ACTION_CONDITION_EQUAL = 0;
84
+ const ACTION_CONDITION_GREATER_THAN = 1;
85
+ const ACTION_CONDITION_LESS_THAN = 2;
86
+ const ACTION_CONDITION_GREATER_THAN_OR_EQUAL = 3;
87
+ const ACTION_CONDITION_LESS_THAN_OR_EQUAL = 4;
88
+ const ACTION_CONDITION_NOT_EQUAL = 5;
89
+ const ACTION_CONDITION_IN_RANGE = 6;
90
+ function packSignature(signers, validatorSignature) {
91
+ const session = signers.session;
92
+ const permissionId = getPermissionId(session);
93
+ if (signers.verifyExecutions) {
94
+ const smartSessionMode = signers.enableData
95
+ ? SMART_SESSION_MODE_ENABLE
96
+ : SMART_SESSION_MODE_USE;
97
+ const sessionData = getSessionData(signers.session);
98
+ const packedSignature = signers.enableData
99
+ ? solady_1.LibZip.flzCompress((0, viem_1.encodeAbiParameters)([
100
+ {
101
+ type: 'tuple',
102
+ name: 'enableData',
103
+ components: [
104
+ { type: 'bytes', name: 'allocatorSig' },
105
+ { type: 'bytes', name: 'userSig' },
106
+ { type: 'uint256', name: 'expires' },
107
+ {
108
+ type: 'tuple',
109
+ name: 'enableSession',
110
+ components: [
111
+ {
112
+ type: 'uint8',
113
+ name: 'chainDigestIndex',
114
+ },
115
+ {
116
+ type: 'tuple[]',
117
+ name: 'hashesAndChainIds',
118
+ components: [
119
+ { type: 'uint64', name: 'chainId' },
120
+ { type: 'bytes32', name: 'sessionDigest' },
121
+ ],
122
+ },
123
+ {
124
+ type: 'tuple',
125
+ name: 'session',
126
+ components: [
127
+ { type: 'address', name: 'sessionValidator' },
128
+ { type: 'bytes', name: 'sessionValidatorInitData' },
129
+ { type: 'bytes32', name: 'salt' },
130
+ {
131
+ type: 'tuple[]',
132
+ name: 'actions',
133
+ components: [
134
+ { type: 'bytes4', name: 'actionTargetSelector' },
135
+ { type: 'address', name: 'actionTarget' },
136
+ {
137
+ type: 'tuple[]',
138
+ name: 'actionPolicies',
139
+ components: [
140
+ { type: 'address', name: 'policy' },
141
+ { type: 'bytes', name: 'initData' },
142
+ ],
143
+ },
144
+ ],
145
+ },
146
+ {
147
+ type: 'tuple[]',
148
+ name: 'claimPolicies',
149
+ components: [
150
+ { type: 'address', name: 'policy' },
151
+ { type: 'bytes', name: 'initData' },
152
+ ],
153
+ },
154
+ {
155
+ type: 'tuple',
156
+ name: 'erc7739Policies',
157
+ components: [
158
+ {
159
+ type: 'tuple[]',
160
+ name: 'allowedERC7739Content',
161
+ components: [
162
+ {
163
+ type: 'bytes32',
164
+ name: 'appDomainSeparator',
165
+ },
166
+ { type: 'string[]', name: 'contentNames' },
167
+ ],
168
+ },
169
+ {
170
+ type: 'tuple[]',
171
+ name: 'erc1271Policies',
172
+ components: [
173
+ { type: 'address', name: 'policy' },
174
+ { type: 'bytes', name: 'initData' },
175
+ ],
176
+ },
177
+ ],
178
+ },
179
+ ],
180
+ },
181
+ ],
182
+ },
183
+ ],
184
+ },
185
+ {
186
+ type: 'tuple',
187
+ name: 'config',
188
+ components: [
189
+ { type: 'uint8', name: 'scope' },
190
+ { type: 'uint8', name: 'resetPeriod' },
191
+ { type: 'address', name: 'allocator' },
192
+ { type: 'bytes32', name: 'permissionId' },
193
+ ],
194
+ },
195
+ { type: 'bytes' },
196
+ ], [
197
+ {
198
+ allocatorSig: viem_1.zeroHash,
199
+ userSig: signers.enableData.userSignature,
200
+ expires: viem_1.maxUint256,
201
+ enableSession: {
202
+ chainDigestIndex: signers.enableData.sessionToEnableIndex,
203
+ hashesAndChainIds: signers.enableData.hashesAndChainIds,
204
+ session: sessionData,
205
+ },
206
+ },
207
+ {
208
+ scope: compact_1.SCOPE_MULTICHAIN,
209
+ resetPeriod: compact_1.RESET_PERIOD_ONE_WEEK,
210
+ allocator: viem_1.zeroAddress,
211
+ permissionId: getPermissionId(signers.session),
212
+ },
213
+ validatorSignature,
214
+ ]))
215
+ : validatorSignature;
216
+ return signers.enableData
217
+ ? (0, viem_1.encodePacked)(['bytes1', 'bytes'], [smartSessionMode, packedSignature])
218
+ : (0, viem_1.encodePacked)(['bytes1', 'bytes32', 'bytes'], [smartSessionMode, permissionId, packedSignature]);
219
+ }
220
+ else {
221
+ const SIGNATURE_IS_VALID_SIG_1271 = '0x00';
222
+ const policyDataOffset = BigInt(64 + (0, viem_1.size)(validatorSignature));
223
+ const mode = SIGNATURE_IS_VALID_SIG_1271;
224
+ const policySpecificData = '0x';
225
+ const signature = (0, viem_1.encodePacked)(['bytes1', 'bytes32', 'uint256', 'bytes', 'bytes'], [
226
+ mode,
227
+ permissionId,
228
+ policyDataOffset,
229
+ validatorSignature,
230
+ policySpecificData,
231
+ ]);
232
+ return signature;
233
+ }
234
+ }
75
235
  async function getSessionDetails(account, sessions) {
76
- const lockTag = (0, compact_1.lockTag)();
236
+ const lockTag = '0x000000000000000000000000';
77
237
  const sessionNonces = await Promise.all(sessions.map((session) => getSessionNonce(account, session, lockTag)));
78
238
  const sessionDatas = sessions.map((session) => getSessionData(session));
79
239
  const signedSessions = sessionDatas.map((session, index) => getSignedSession(account, lockTag, session, sessionNonces[index]));
80
240
  const chains = sessions.map((session) => session.chain);
81
- const chainDigests = signedSessions.map((session, index) => ({
241
+ const hashesAndChainIds = signedSessions.map((session, index) => ({
82
242
  chainId: BigInt(chains[index].id),
83
243
  sessionDigest: (0, viem_1.hashStruct)({
84
- types: types,
244
+ types,
85
245
  primaryType: 'SignedSession',
86
246
  data: session,
87
247
  }),
88
248
  }));
89
- const hashesAndChainIds = chainDigests.map((chainDigest) => ({
90
- chainId: BigInt(chainDigest.chainId),
91
- sessionDigest: chainDigest.sessionDigest,
92
- }));
93
249
  const data = {
94
250
  domain: {
95
251
  name: 'SmartSessionEmissary',
96
- version: '1.0.0',
252
+ version: '1',
97
253
  },
98
254
  types: types,
99
255
  primaryType: 'MultiChainSession',
@@ -110,13 +266,42 @@ async function getSessionDetails(account, sessions) {
110
266
  data,
111
267
  };
112
268
  }
269
+ async function isSessionEnabled(account, provider, session) {
270
+ const publicClient = (0, viem_1.createPublicClient)({
271
+ chain: session.chain,
272
+ transport: (0, utils_1.createTransport)(session.chain, provider),
273
+ });
274
+ const isEnabled = await publicClient.readContract({
275
+ address: core_1.SMART_SESSION_EMISSARY_ADDRESS,
276
+ abi: [
277
+ {
278
+ type: 'function',
279
+ name: 'isPermissionEnabled',
280
+ inputs: [
281
+ { name: 'account', type: 'address' },
282
+ { name: 'permissionId', type: 'bytes32' },
283
+ ],
284
+ outputs: [{ name: 'isEnabled', type: 'bool' }],
285
+ stateMutability: 'view',
286
+ },
287
+ ],
288
+ functionName: 'isPermissionEnabled',
289
+ args: [account, getPermissionId(session)],
290
+ });
291
+ return isEnabled;
292
+ }
293
+ async function signEnableSession(config, details) {
294
+ return (0, utils_2.signTypedData)(config, details.data, chains_1.mainnet, undefined, {
295
+ skipErc6492: true,
296
+ });
297
+ }
113
298
  async function getSessionNonce(account, session, lockTag) {
114
299
  const publicClient = (0, viem_1.createPublicClient)({
115
300
  chain: session.chain,
116
301
  transport: (0, viem_1.http)(),
117
302
  });
118
303
  const nonce = await publicClient.readContract({
119
- address: SMART_SESSION_EMISSARY_ADDRESS,
304
+ address: core_1.SMART_SESSION_EMISSARY_ADDRESS,
120
305
  abi: [
121
306
  {
122
307
  type: 'function',
@@ -157,7 +342,7 @@ function getSignedSession(account, lockTag, session, nonce) {
157
342
  sessionValidator: session.sessionValidator,
158
343
  sessionValidatorInitData: session.sessionValidatorInitData,
159
344
  salt: session.salt,
160
- smartSessionEmissary: SMART_SESSION_EMISSARY_ADDRESS,
345
+ smartSessionEmissary: core_1.SMART_SESSION_EMISSARY_ADDRESS,
161
346
  expires: viem_1.maxUint256,
162
347
  nonce,
163
348
  };
@@ -166,15 +351,15 @@ async function getEnableSessionCall(account, session, enableSessionSignature, ha
166
351
  const sessionData = getSessionData(session);
167
352
  const permissionId = getPermissionId(session);
168
353
  return {
169
- to: SMART_SESSION_EMISSARY_ADDRESS,
354
+ to: core_1.SMART_SESSION_EMISSARY_ADDRESS,
170
355
  data: (0, viem_1.encodeFunctionData)({
171
356
  abi: smart_session_emissary_1.default,
172
357
  functionName: 'setConfig',
173
358
  args: [
174
359
  account,
175
360
  {
176
- scope: SCOPE_MULTICHAIN,
177
- resetPeriod: RESET_PERIOD_ONE_WEEK,
361
+ scope: compact_1.SCOPE_MULTICHAIN,
362
+ resetPeriod: compact_1.RESET_PERIOD_ONE_WEEK,
178
363
  allocator: viem_1.zeroAddress,
179
364
  permissionId,
180
365
  },
@@ -209,12 +394,34 @@ function getSessionData(session) {
209
394
  },
210
395
  ],
211
396
  };
397
+ const sudoAction = {
398
+ actionTargetSelector: SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG,
399
+ actionTarget: SMART_SESSIONS_FALLBACK_TARGET_FLAG,
400
+ actionPolicies: [
401
+ {
402
+ policy: SUDO_POLICY_ADDRESS,
403
+ initData: '0x',
404
+ },
405
+ ],
406
+ };
407
+ const actions = session.actions
408
+ ? session.actions.map((action) => ({
409
+ actionTargetSelector: action.selector ?? SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG,
410
+ actionTarget: action.target ?? SMART_SESSIONS_FALLBACK_TARGET_FLAG,
411
+ actionPolicies: action.policies?.map((policy) => getPolicyData(policy)) ?? [
412
+ {
413
+ policy: SUDO_POLICY_ADDRESS,
414
+ initData: '0x',
415
+ },
416
+ ],
417
+ }))
418
+ : [sudoAction];
212
419
  return {
213
420
  sessionValidator: validator.address,
214
421
  salt: viem_1.zeroHash,
215
422
  sessionValidatorInitData: validator.initData,
216
423
  erc7739Policies: erc7739Data,
217
- actions: [],
424
+ actions,
218
425
  claimPolicies: [],
219
426
  };
220
427
  }
@@ -239,6 +446,157 @@ function getPermissionId(session) {
239
446
  sessionData.salt,
240
447
  ]));
241
448
  }
449
+ function getPolicyData(policy) {
450
+ switch (policy.type) {
451
+ case 'sudo':
452
+ return {
453
+ policy: SUDO_POLICY_ADDRESS,
454
+ initData: '0x',
455
+ };
456
+ case 'universal-action': {
457
+ function getCondition(condition) {
458
+ switch (condition) {
459
+ case 'equal':
460
+ return ACTION_CONDITION_EQUAL;
461
+ case 'greaterThan':
462
+ return ACTION_CONDITION_GREATER_THAN;
463
+ case 'lessThan':
464
+ return ACTION_CONDITION_LESS_THAN;
465
+ case 'greaterThanOrEqual':
466
+ return ACTION_CONDITION_GREATER_THAN_OR_EQUAL;
467
+ case 'lessThanOrEqual':
468
+ return ACTION_CONDITION_LESS_THAN_OR_EQUAL;
469
+ case 'notEqual':
470
+ return ACTION_CONDITION_NOT_EQUAL;
471
+ case 'inRange':
472
+ return ACTION_CONDITION_IN_RANGE;
473
+ }
474
+ }
475
+ const MAX_RULES = 16;
476
+ const rules = createFixedArray(MAX_RULES, () => ({
477
+ condition: ACTION_CONDITION_EQUAL,
478
+ offset: 0n,
479
+ isLimited: false,
480
+ ref: viem_1.zeroHash,
481
+ usage: { limit: 0n, used: 0n },
482
+ }));
483
+ for (let i = 0; i < policy.rules.length; i++) {
484
+ const rule = policy.rules[i];
485
+ const ref = (0, viem_1.isHex)(rule.referenceValue)
486
+ ? (0, viem_1.padHex)(rule.referenceValue)
487
+ : (0, viem_1.toHex)(rule.referenceValue, { size: 32 });
488
+ rules[i] = {
489
+ condition: getCondition(rule.condition),
490
+ offset: rule.calldataOffset,
491
+ isLimited: rule.usageLimit !== undefined,
492
+ ref,
493
+ usage: {
494
+ limit: rule.usageLimit ? rule.usageLimit : 0n,
495
+ used: 0n,
496
+ },
497
+ };
498
+ }
499
+ return {
500
+ policy: UNIVERSAL_ACTION_POLICY_ADDRESS,
501
+ initData: (0, viem_1.encodeAbiParameters)([
502
+ {
503
+ components: [
504
+ {
505
+ name: 'valueLimitPerUse',
506
+ type: 'uint256',
507
+ },
508
+ {
509
+ components: [
510
+ {
511
+ name: 'length',
512
+ type: 'uint256',
513
+ },
514
+ {
515
+ components: [
516
+ {
517
+ name: 'condition',
518
+ type: 'uint8',
519
+ },
520
+ {
521
+ name: 'offset',
522
+ type: 'uint64',
523
+ },
524
+ {
525
+ name: 'isLimited',
526
+ type: 'bool',
527
+ },
528
+ {
529
+ name: 'ref',
530
+ type: 'bytes32',
531
+ },
532
+ {
533
+ components: [
534
+ {
535
+ name: 'limit',
536
+ type: 'uint256',
537
+ },
538
+ {
539
+ name: 'used',
540
+ type: 'uint256',
541
+ },
542
+ ],
543
+ name: 'usage',
544
+ type: 'tuple',
545
+ },
546
+ ],
547
+ name: 'rules',
548
+ type: 'tuple[16]',
549
+ },
550
+ ],
551
+ name: 'paramRules',
552
+ type: 'tuple',
553
+ },
554
+ ],
555
+ name: 'ActionConfig',
556
+ type: 'tuple',
557
+ },
558
+ ], [
559
+ {
560
+ valueLimitPerUse: policy.valueLimitPerUse ?? 0n,
561
+ paramRules: {
562
+ length: BigInt(policy.rules.length),
563
+ rules: rules,
564
+ },
565
+ },
566
+ ]),
567
+ };
568
+ }
569
+ case 'spending-limits': {
570
+ const tokens = policy.limits.map(({ token }) => token);
571
+ const limits = policy.limits.map(({ amount }) => amount);
572
+ return {
573
+ policy: SPENDING_LIMITS_POLICY_ADDRESS,
574
+ initData: (0, viem_1.encodeAbiParameters)([{ type: 'address[]' }, { type: 'uint256[]' }], [tokens, limits]),
575
+ };
576
+ }
577
+ case 'time-frame': {
578
+ return {
579
+ policy: TIME_FRAME_POLICY_ADDRESS,
580
+ initData: (0, viem_1.encodePacked)(['uint48', 'uint48'], [
581
+ Math.floor(policy.validUntil / 1000),
582
+ Math.floor(policy.validAfter / 1000),
583
+ ]),
584
+ };
585
+ }
586
+ case 'usage-limit': {
587
+ return {
588
+ policy: USAGE_LIMIT_POLICY_ADDRESS,
589
+ initData: (0, viem_1.encodePacked)(['uint128'], [policy.limit]),
590
+ };
591
+ }
592
+ case 'value-limit': {
593
+ return {
594
+ policy: VALUE_LIMIT_POLICY_ADDRESS,
595
+ initData: (0, viem_1.encodeAbiParameters)([{ type: 'uint256' }], [policy.limit]),
596
+ };
597
+ }
598
+ }
599
+ }
242
600
  function getSmartSessionValidator(config) {
243
601
  if (!config.experimental_sessions) {
244
602
  return null;
@@ -248,10 +606,13 @@ function getSmartSessionValidator(config) {
248
606
  return null;
249
607
  }
250
608
  return {
251
- address: module ?? SMART_SESSION_EMISSARY_ADDRESS,
609
+ address: module ?? core_1.SMART_SESSION_EMISSARY_ADDRESS,
252
610
  initData: '0x',
253
611
  deInitData: '0x',
254
612
  additionalContext: '0x',
255
613
  type: common_1.MODULE_TYPE_ID_VALIDATOR,
256
614
  };
257
615
  }
616
+ function createFixedArray(length, getValue) {
617
+ return Array.from({ length }, (_, i) => getValue(i));
618
+ }
@@ -1,5 +1,5 @@
1
1
  import type { Address } from 'viem';
2
- import type { AccountType, Execution, IntentCost, IntentInput, IntentOpStatus, IntentResult, IntentRoute, Portfolio, SignedIntentOp } from './types';
2
+ import type { IntentInput, IntentOpStatus, IntentResult, IntentRoute, Portfolio, SignedIntentOp, SplitIntentsInput, SplitIntentsResult } from './types';
3
3
  export declare class Orchestrator {
4
4
  private serverUrl;
5
5
  private apiKey?;
@@ -10,13 +10,8 @@ export declare class Orchestrator {
10
10
  [chainId: number]: Address[];
11
11
  };
12
12
  }): Promise<Portfolio>;
13
- getMaxTokenAmount(account: {
14
- address: Address;
15
- accountType: AccountType;
16
- setupOps: Pick<Execution, 'to' | 'data'>[];
17
- }, destinationChainId: number, destinationTokenAddress: Address, destinationGasUnits: bigint, sponsored: boolean): Promise<bigint>;
18
- getIntentCost(input: IntentInput): Promise<IntentCost>;
19
13
  getIntentRoute(input: IntentInput): Promise<IntentRoute>;
14
+ splitIntents(input: SplitIntentsInput): Promise<SplitIntentsResult>;
20
15
  submitIntent(signedIntentOpUnformatted: SignedIntentOp, dryRun: boolean): Promise<IntentResult>;
21
16
  getIntentOpStatus(intentId: bigint): Promise<IntentOpStatus>;
22
17
  private getHeaders;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAyBnC,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EAET,cAAc,EACf,MAAM,SAAS,CAAA;AAGhB,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEX,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAKxC,YAAY,CAChB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,MAAM,CAAC,EAAE;YACP,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;SAC7B,CAAA;KACF,GACA,OAAO,CAAC,SAAS,CAAC;IA+Cf,iBAAiB,CACrB,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,EAAE,WAAW,CAAA;QACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,CAAA;KAC3C,EACD,kBAAkB,EAAE,MAAM,EAC1B,uBAAuB,EAAE,OAAO,EAChC,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IA0CZ,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAQtD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAQxD,YAAY,CAChB,yBAAyB,EAAE,cAAc,EACzC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC;IAgBlB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IASlE,OAAO,CAAC,UAAU;YAUJ,KAAK;IA4BnB,OAAO,CAAC,UAAU;IA6GlB,OAAO,CAAC,iBAAiB;CAmG1B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AA0BnC,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EAET,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAchB,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEX,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAKxC,YAAY,CAChB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,MAAM,CAAC,EAAE;YACP,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;SAC7B,CAAA;KACF,GACA,OAAO,CAAC,SAAS,CAAC;IA+Cf,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAQxD,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwDnE,YAAY,CAChB,yBAAyB,EAAE,cAAc,EACzC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC;IAgBlB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IASlE,OAAO,CAAC,UAAU;YAUJ,KAAK;IA4BnB,OAAO,CAAC,UAAU;IA6GlB,OAAO,CAAC,iBAAiB;CAmG1B"}