@charterlabs/rhinestone-sdk 0.2.7-dev.4 → 0.2.9

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 (110) hide show
  1. package/README.md +46 -8
  2. package/dist/src/accounts/error.d.ts +4 -1
  3. package/dist/src/accounts/error.d.ts.map +1 -1
  4. package/dist/src/accounts/error.js +9 -1
  5. package/dist/src/accounts/index.d.ts +13 -3
  6. package/dist/src/accounts/index.d.ts.map +1 -1
  7. package/dist/src/accounts/index.js +62 -6
  8. package/dist/src/accounts/json-rpc/index.d.ts.map +1 -1
  9. package/dist/src/accounts/json-rpc/index.js +4 -0
  10. package/dist/src/accounts/json-rpc/index.test.d.ts +2 -0
  11. package/dist/src/accounts/json-rpc/index.test.d.ts.map +1 -0
  12. package/dist/src/accounts/json-rpc/index.test.js +33 -0
  13. package/dist/src/accounts/json-rpc/providers.d.ts +2 -1
  14. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -1
  15. package/dist/src/accounts/json-rpc/providers.js +8 -0
  16. package/dist/src/accounts/json-rpc/providers.test.d.ts +2 -0
  17. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +1 -0
  18. package/dist/src/accounts/json-rpc/providers.test.js +43 -0
  19. package/dist/src/accounts/kernel.d.ts +9 -2
  20. package/dist/src/accounts/kernel.d.ts.map +1 -1
  21. package/dist/src/accounts/kernel.js +13 -0
  22. package/dist/src/accounts/nexus.d.ts +9 -2
  23. package/dist/src/accounts/nexus.d.ts.map +1 -1
  24. package/dist/src/accounts/nexus.js +15 -1
  25. package/dist/src/accounts/passport.d.ts +12 -0
  26. package/dist/src/accounts/passport.d.ts.map +1 -0
  27. package/dist/src/accounts/passport.js +173 -0
  28. package/dist/src/accounts/safe.d.ts +9 -2
  29. package/dist/src/accounts/safe.d.ts.map +1 -1
  30. package/dist/src/accounts/safe.js +15 -0
  31. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  32. package/dist/src/accounts/signing/common.js +26 -5
  33. package/dist/src/accounts/signing/message.js +1 -1
  34. package/dist/src/accounts/startale.d.ts +9 -2
  35. package/dist/src/accounts/startale.d.ts.map +1 -1
  36. package/dist/src/accounts/startale.js +15 -0
  37. package/dist/src/accounts/walletClient.d.ts +27 -0
  38. package/dist/src/accounts/walletClient.d.ts.map +1 -1
  39. package/dist/src/accounts/walletClient.js +77 -0
  40. package/dist/src/actions/smart-sessions.d.ts +14 -0
  41. package/dist/src/actions/smart-sessions.d.ts.map +1 -0
  42. package/dist/src/actions/smart-sessions.js +16 -0
  43. package/dist/src/errors/index.d.ts +3 -3
  44. package/dist/src/errors/index.d.ts.map +1 -1
  45. package/dist/src/errors/index.js +18 -1
  46. package/dist/src/execution/compact.d.ts +3 -3
  47. package/dist/src/execution/compact.d.ts.map +1 -1
  48. package/dist/src/execution/compact.js +3 -3
  49. package/dist/src/execution/error.d.ts +8 -1
  50. package/dist/src/execution/error.d.ts.map +1 -1
  51. package/dist/src/execution/error.js +10 -1
  52. package/dist/src/execution/index.d.ts +10 -4
  53. package/dist/src/execution/index.d.ts.map +1 -1
  54. package/dist/src/execution/index.js +85 -12
  55. package/dist/src/execution/permit2.d.ts +2 -2
  56. package/dist/src/execution/permit2.d.ts.map +1 -1
  57. package/dist/src/execution/permit2.js +28 -19
  58. package/dist/src/execution/singleChainOps.d.ts +28 -0
  59. package/dist/src/execution/singleChainOps.d.ts.map +1 -0
  60. package/dist/src/execution/singleChainOps.js +32 -0
  61. package/dist/src/execution/smart-session.d.ts +5 -7
  62. package/dist/src/execution/smart-session.d.ts.map +1 -1
  63. package/dist/src/execution/smart-session.js +114 -229
  64. package/dist/src/execution/types.d.ts +2 -1
  65. package/dist/src/execution/types.d.ts.map +1 -1
  66. package/dist/src/execution/utils.d.ts +16 -9
  67. package/dist/src/execution/utils.d.ts.map +1 -1
  68. package/dist/src/execution/utils.js +151 -76
  69. package/dist/src/index.d.ts +18 -19
  70. package/dist/src/index.d.ts.map +1 -1
  71. package/dist/src/index.js +22 -25
  72. package/dist/src/modules/index.d.ts.map +1 -1
  73. package/dist/src/modules/index.js +1 -1
  74. package/dist/src/modules/index.test.js +1 -1
  75. package/dist/src/modules/read.js +2 -2
  76. package/dist/src/modules/validators/core.d.ts +5 -3
  77. package/dist/src/modules/validators/core.d.ts.map +1 -1
  78. package/dist/src/modules/validators/core.js +39 -2
  79. package/dist/src/modules/validators/smart-sessions.d.ts +8 -8
  80. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  81. package/dist/src/modules/validators/smart-sessions.js +29 -80
  82. package/dist/src/modules/validators/smart-sessions.test.js +4 -5
  83. package/dist/src/orchestrator/client.d.ts +3 -2
  84. package/dist/src/orchestrator/client.d.ts.map +1 -1
  85. package/dist/src/orchestrator/client.js +230 -172
  86. package/dist/src/orchestrator/error.d.ts +137 -1
  87. package/dist/src/orchestrator/error.d.ts.map +1 -1
  88. package/dist/src/orchestrator/error.js +137 -1
  89. package/dist/src/orchestrator/index.d.ts +6 -6
  90. package/dist/src/orchestrator/index.d.ts.map +1 -1
  91. package/dist/src/orchestrator/index.js +19 -3
  92. package/dist/src/orchestrator/registry.d.ts +6 -2
  93. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  94. package/dist/src/orchestrator/registry.js +16 -64
  95. package/dist/src/orchestrator/registry.test.js +24 -24
  96. package/dist/src/orchestrator/types.d.ts +63 -43
  97. package/dist/src/orchestrator/types.d.ts.map +1 -1
  98. package/dist/src/orchestrator/types.js +9 -5
  99. package/dist/src/types.d.ts +42 -9
  100. package/dist/src/types.d.ts.map +1 -1
  101. package/dist/src/utils/index.d.ts +3 -0
  102. package/dist/src/utils/index.d.ts.map +1 -0
  103. package/dist/src/utils/index.js +5 -0
  104. package/package.json +4 -4
  105. package/dist/src/actions/smart-session.d.ts +0 -11
  106. package/dist/src/actions/smart-session.d.ts.map +0 -1
  107. package/dist/src/actions/smart-session.js +0 -13
  108. package/dist/src/execution/smart-session.test.d.ts +0 -2
  109. package/dist/src/execution/smart-session.test.d.ts.map +0 -1
  110. package/dist/src/execution/smart-session.test.js +0 -34
@@ -2,113 +2,137 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.enableSmartSession = enableSmartSession;
4
4
  exports.getSessionDetails = getSessionDetails;
5
- exports.getMultichainDigest = getMultichainDigest;
6
5
  const viem_1 = require("viem");
7
6
  const accounts_1 = require("../accounts");
8
7
  const utils_1 = require("../accounts/utils");
9
8
  const validators_1 = require("../modules/validators");
10
9
  const smart_sessions_1 = require("../modules/validators/smart-sessions");
11
10
  const error_1 = require("./error");
12
- async function getSessionDetails(config, sessions, sessionIndex, signature) {
13
- const account = (0, accounts_1.getAccountProvider)(config);
11
+ const smartSessionTypes = {
12
+ PolicyData: [
13
+ { name: 'policy', type: 'address' },
14
+ { name: 'initData', type: 'bytes' },
15
+ ],
16
+ ActionData: [
17
+ { name: 'actionTargetSelector', type: 'bytes4' },
18
+ { name: 'actionTarget', type: 'address' },
19
+ { name: 'actionPolicies', type: 'PolicyData[]' },
20
+ ],
21
+ ERC7739Context: [
22
+ { name: 'appDomainSeparator', type: 'bytes32' },
23
+ { name: 'contentName', type: 'string[]' },
24
+ ],
25
+ ERC7739Data: [
26
+ { name: 'allowedERC7739Content', type: 'ERC7739Context[]' },
27
+ { name: 'erc1271Policies', type: 'PolicyData[]' },
28
+ ],
29
+ SignedPermissions: [
30
+ { name: 'permitGenericPolicy', type: 'bool' },
31
+ { name: 'permitAdminAccess', type: 'bool' },
32
+ { name: 'ignoreSecurityAttestations', type: 'bool' },
33
+ { name: 'permitERC4337Paymaster', type: 'bool' },
34
+ { name: 'userOpPolicies', type: 'PolicyData[]' },
35
+ { name: 'erc7739Policies', type: 'ERC7739Data' },
36
+ { name: 'actions', type: 'ActionData[]' },
37
+ ],
38
+ SignedSession: [
39
+ { name: 'account', type: 'address' },
40
+ { name: 'permissions', type: 'SignedPermissions' },
41
+ { name: 'sessionValidator', type: 'address' },
42
+ { name: 'sessionValidatorInitData', type: 'bytes' },
43
+ { name: 'salt', type: 'bytes32' },
44
+ { name: 'smartSession', type: 'address' },
45
+ { name: 'nonce', type: 'uint256' },
46
+ ],
47
+ ChainSession: [
48
+ { name: 'chainId', type: 'uint64' },
49
+ { name: 'session', type: 'SignedSession' },
50
+ ],
51
+ MultiChainSession: [{ name: 'sessionsAndChainIds', type: 'ChainSession[]' }],
52
+ };
53
+ async function getSessionDetails(config, sessions, sessionIndex, initialNonces, signature) {
54
+ const chains = sessions
55
+ .map((session) => session.chain)
56
+ .filter((chain) => !!chain);
57
+ if (chains.length !== sessions.length) {
58
+ throw new error_1.SessionChainRequiredError();
59
+ }
14
60
  const accountAddress = (0, accounts_1.getAddress)(config);
15
- const sessionDetails = await getEnableSessionDetails(account.type, sessions, sessionIndex, accountAddress, config.provider);
61
+ const publicClients = chains.map((chain) => (0, viem_1.createPublicClient)({
62
+ chain,
63
+ transport: (0, utils_1.createTransport)(chain, config.provider),
64
+ }));
65
+ const sessionDatas = sessions.map((session) => (0, smart_sessions_1.getSmartSessionData)(session));
66
+ const sessionNonces = await Promise.all(sessions.map((session, index) => initialNonces?.[index] ??
67
+ getSessionNonce(publicClients[index], accountAddress, (0, validators_1.getPermissionId)(session))));
68
+ const signedSessions = sessionDatas.map((session, index) => ({
69
+ account: accountAddress,
70
+ permissions: {
71
+ permitGenericPolicy: session.actions.some((action) => action.actionTarget === smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG &&
72
+ action.actionTargetSelector ===
73
+ smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG),
74
+ permitAdminAccess: session.actions.some((action) => action.actionTargetSelector ===
75
+ smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION),
76
+ ignoreSecurityAttestations: false,
77
+ permitERC4337Paymaster: session.permitERC4337Paymaster,
78
+ userOpPolicies: session.userOpPolicies,
79
+ erc7739Policies: session.erc7739Policies,
80
+ actions: session.actions,
81
+ },
82
+ sessionValidator: session.sessionValidator,
83
+ sessionValidatorInitData: session.sessionValidatorInitData,
84
+ salt: session.salt,
85
+ smartSession: validators_1.SMART_SESSIONS_VALIDATOR_ADDRESS,
86
+ nonce: sessionNonces[index],
87
+ }));
88
+ const chainDigests = signedSessions.map((session, index) => ({
89
+ chainId: BigInt(chains[index].id),
90
+ sessionDigest: (0, viem_1.hashStruct)({
91
+ types: smartSessionTypes,
92
+ primaryType: 'SignedSession',
93
+ data: session,
94
+ }),
95
+ }));
96
+ const typedData = {
97
+ domain: {
98
+ name: 'SmartSession',
99
+ version: '1',
100
+ },
101
+ types: smartSessionTypes,
102
+ primaryType: 'MultiChainSession',
103
+ message: {
104
+ sessionsAndChainIds: signedSessions.map((session, index) => ({
105
+ chainId: BigInt(chains[index].id),
106
+ session,
107
+ })),
108
+ },
109
+ };
16
110
  const chain = sessions[sessionIndex].chain;
17
111
  if (!chain) {
18
112
  throw new error_1.SessionChainRequiredError();
19
113
  }
20
114
  const validator = {
21
- address: sessionDetails.enableSessionData.validator,
22
- isRoot: true,
115
+ address: sessionDatas[sessionIndex].sessionValidator,
116
+ isRoot: false,
23
117
  };
24
- sessionDetails.enableSessionData.signature =
25
- signature ??
26
- (await (0, accounts_1.getPackedSignature)(config, undefined, chain, validator, sessionDetails.permissionEnableHash));
27
- return sessionDetails;
28
- }
29
- async function getEnableSessionDetails(accountType, sessions, sessionIndex, accountAddress, provider) {
30
- const chainDigests = [];
31
- const chainSessions = [];
32
- for (const session of sessions) {
33
- const permissionId = (0, validators_1.getPermissionId)(session);
34
- const sessionChain = session.chain;
35
- if (!sessionChain) {
36
- throw new error_1.SessionChainRequiredError();
37
- }
38
- const publicClient = (0, viem_1.createPublicClient)({
39
- chain: sessionChain,
40
- transport: (0, utils_1.createTransport)(sessionChain, provider),
41
- });
42
- const sessionNonce = await getSessionNonce(publicClient, accountAddress, permissionId);
43
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, session, provider);
44
- const sessionDigest = await getSessionDigest(publicClient, accountAddress, sessionData, permissionId, validators_1.SMART_SESSION_MODE_ENABLE);
45
- chainDigests.push({
46
- chainId: BigInt(sessionChain.id),
47
- sessionDigest,
48
- });
49
- chainSessions.push({
50
- chainId: BigInt(sessionChain.id),
51
- session: {
52
- permissions: {
53
- permitGenericPolicy: false,
54
- permitAdminAccess: false,
55
- ignoreSecurityAttestations: false,
56
- permitERC4337Paymaster: sessionData.permitERC4337Paymaster,
57
- userOpPolicies: sessionData.userOpPolicies,
58
- erc7739Policies: sessionData.erc7739Policies,
59
- actions: sessionData.actions,
60
- },
61
- salt: sessionData.salt,
62
- sessionValidator: sessionData.sessionValidator,
63
- sessionValidatorInitData: sessionData.sessionValidatorInitData,
64
- account: accountAddress,
65
- smartSession: validators_1.SMART_SESSIONS_VALIDATOR_ADDRESS,
66
- nonce: sessionNonce,
67
- },
68
- });
69
- }
70
- const permissionEnableHash = getMultichainDigest(chainDigests);
71
- const sessionToEnable = sessions[sessionIndex || 0];
72
- const sessionChain = sessionToEnable.chain;
73
- if (!sessionChain) {
74
- throw new error_1.SessionChainRequiredError();
75
- }
76
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, sessionToEnable, provider);
118
+ const sessionSignature = signature ??
119
+ (await (0, accounts_1.getTypedDataPackedSignature)(config, undefined, chain, validator, typedData));
77
120
  return {
78
- permissionEnableHash,
79
- mode: validators_1.SMART_SESSION_MODE_ENABLE,
80
- hashesAndChainIds: chainDigests,
121
+ nonces: sessionNonces,
122
+ signature: sessionSignature,
81
123
  enableSessionData: {
82
- permissionId: (0, validators_1.getPermissionId)(sessionToEnable),
83
- validator: sessionData.sessionValidator,
84
- accountType,
85
124
  chainDigestIndex: sessionIndex,
86
- hashesAndChainIds: chainDigests,
87
- sessionToEnable: sessionData,
88
- signature: '0x',
125
+ hashesAndChainIds: chainDigests.map((chainDigest) => ({
126
+ chainId: BigInt(chainDigest.chainId),
127
+ sessionDigest: chainDigest.sessionDigest,
128
+ })),
129
+ sessionToEnable: sessionDatas[sessionIndex],
130
+ signature: sessionSignature,
89
131
  },
90
132
  };
91
133
  }
92
- function getMultichainDigest(chainDigests) {
93
- function hashChainDigestMimicRPC(chainDigest) {
94
- const CHAIN_SESSION_TYPEHASH = '0x1ea7e4bc398fa0ccd68d92b5d8931a3fd93eebe1cf0391b4ba28935801af7c80';
95
- return (0, viem_1.keccak256)((0, viem_1.encodePacked)(['bytes32', 'uint256', 'bytes32'], [
96
- CHAIN_SESSION_TYPEHASH,
97
- chainDigest.chainId,
98
- chainDigest.sessionDigest,
99
- ]));
100
- }
101
- function hashChainDigestArray(chainDigests) {
102
- const hashes = chainDigests.map((digest) => hashChainDigestMimicRPC(digest));
103
- return (0, viem_1.keccak256)((0, viem_1.concat)(hashes));
104
- }
105
- const MULTICHAIN_SESSION_TYPEHASH = '0x0c9d02fb89a1da34d66ea2088dc9ee6a58efee71cef6f1bb849ed74fc6003d98';
106
- const MULTICHAIN_DOMAIN_SEPARATOR = '0x057501e891776d1482927e5f094ae44049a4d893ba2d7b334dd7db8d38d3a0e1';
107
- const structHash = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['bytes32', 'bytes32'], [MULTICHAIN_SESSION_TYPEHASH, hashChainDigestArray(chainDigests)]));
108
- return (0, viem_1.keccak256)((0, viem_1.concat)(['0x1901', MULTICHAIN_DOMAIN_SEPARATOR, structHash]));
109
- }
110
134
  async function getSessionNonce(client, account, permissionId) {
111
- return (await client.readContract({
135
+ const nonce = await client.readContract({
112
136
  address: validators_1.SMART_SESSIONS_VALIDATOR_ADDRESS,
113
137
  abi: [
114
138
  {
@@ -128,147 +152,8 @@ async function getSessionNonce(client, account, permissionId) {
128
152
  ],
129
153
  functionName: 'getNonce',
130
154
  args: [permissionId, account],
131
- }));
132
- }
133
- async function getSessionDigest(client, account, session, permissionId, mode) {
134
- return (await client.readContract({
135
- address: validators_1.SMART_SESSIONS_VALIDATOR_ADDRESS,
136
- abi: [
137
- {
138
- type: 'function',
139
- name: 'getSessionDigest',
140
- inputs: [
141
- {
142
- name: 'permissionId',
143
- type: 'bytes32',
144
- internalType: 'PermissionId',
145
- },
146
- { name: 'account', type: 'address', internalType: 'address' },
147
- {
148
- name: 'data',
149
- type: 'tuple',
150
- internalType: 'struct Session',
151
- components: [
152
- {
153
- name: 'sessionValidator',
154
- type: 'address',
155
- internalType: 'contract ISessionValidator',
156
- },
157
- {
158
- name: 'sessionValidatorInitData',
159
- type: 'bytes',
160
- internalType: 'bytes',
161
- },
162
- { name: 'salt', type: 'bytes32', internalType: 'bytes32' },
163
- {
164
- name: 'userOpPolicies',
165
- type: 'tuple[]',
166
- internalType: 'struct PolicyData[]',
167
- components: [
168
- {
169
- name: 'policy',
170
- type: 'address',
171
- internalType: 'address',
172
- },
173
- { name: 'initData', type: 'bytes', internalType: 'bytes' },
174
- ],
175
- },
176
- {
177
- name: 'erc7739Policies',
178
- type: 'tuple',
179
- internalType: 'struct ERC7739Data',
180
- components: [
181
- {
182
- name: 'allowedERC7739Content',
183
- type: 'tuple[]',
184
- internalType: 'struct ERC7739Context[]',
185
- components: [
186
- {
187
- name: 'appDomainSeparator',
188
- type: 'bytes32',
189
- internalType: 'bytes32',
190
- },
191
- {
192
- name: 'contentName',
193
- type: 'string[]',
194
- internalType: 'string[]',
195
- },
196
- ],
197
- },
198
- {
199
- name: 'erc1271Policies',
200
- type: 'tuple[]',
201
- internalType: 'struct PolicyData[]',
202
- components: [
203
- {
204
- name: 'policy',
205
- type: 'address',
206
- internalType: 'address',
207
- },
208
- {
209
- name: 'initData',
210
- type: 'bytes',
211
- internalType: 'bytes',
212
- },
213
- ],
214
- },
215
- ],
216
- },
217
- {
218
- name: 'actions',
219
- type: 'tuple[]',
220
- internalType: 'struct ActionData[]',
221
- components: [
222
- {
223
- name: 'actionTargetSelector',
224
- type: 'bytes4',
225
- internalType: 'bytes4',
226
- },
227
- {
228
- name: 'actionTarget',
229
- type: 'address',
230
- internalType: 'address',
231
- },
232
- {
233
- name: 'actionPolicies',
234
- type: 'tuple[]',
235
- internalType: 'struct PolicyData[]',
236
- components: [
237
- {
238
- name: 'policy',
239
- type: 'address',
240
- internalType: 'address',
241
- },
242
- {
243
- name: 'initData',
244
- type: 'bytes',
245
- internalType: 'bytes',
246
- },
247
- ],
248
- },
249
- ],
250
- },
251
- {
252
- name: 'permitERC4337Paymaster',
253
- type: 'bool',
254
- internalType: 'bool',
255
- },
256
- ],
257
- },
258
- {
259
- name: 'mode',
260
- type: 'uint8',
261
- internalType: 'enum SmartSessionMode',
262
- },
263
- ],
264
- outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
265
- stateMutability: 'view',
266
- },
267
- ],
268
- functionName: 'getSessionDigest',
269
- // @ts-ignore Viem fails to infer the type of "session"
270
- args: [permissionId, account, session, Number(mode)],
271
- }));
155
+ });
156
+ return nonce;
272
157
  }
273
158
  async function enableSmartSession(chain, config, session) {
274
159
  const publicClient = (0, viem_1.createPublicClient)({
@@ -280,7 +165,7 @@ async function enableSmartSession(chain, config, session) {
280
165
  if (isEnabled) {
281
166
  return;
282
167
  }
283
- const enableSessionCall = await (0, validators_1.getEnableSessionCall)(chain, session, config.provider);
168
+ const enableSessionCall = await (0, validators_1.getEnableSessionCall)(session);
284
169
  const smartAccount = await (0, accounts_1.getSmartAccount)(config, publicClient, chain);
285
170
  const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
286
171
  const opHash = await bundlerClient.sendUserOperation({
@@ -17,7 +17,8 @@ interface MultiChainPermit2Config {
17
17
  */
18
18
  interface MultiChainPermit2Result {
19
19
  chainId: number;
20
- signature: Hex;
20
+ originSignatures: Hex[];
21
+ destinationSignature: Hex;
21
22
  success: boolean;
22
23
  error?: Error;
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../execution/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAErD,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,GAAG,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,OAAO,EAAE,uBAAuB,EAAE,CAAA;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,GACnB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../execution/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAErD,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,GAAG,EAAE,CAAA;IACvB,oBAAoB,EAAE,GAAG,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,OAAO,EAAE,uBAAuB,EAAE,CAAA;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,GACnB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData } from 'viem';
2
2
  import { type UserOperation } from 'viem/account-abstraction';
3
3
  import { type IntentOp, type IntentRoute } from '../orchestrator';
4
- import type { SettlementLayer } from '../orchestrator/types';
4
+ import { type Account, type SettlementLayer } from '../orchestrator/types';
5
5
  import type { Call, CalldataInput, CallInput, RhinestoneConfig, SignerSet, SourceAssetInput, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
6
6
  interface UserOperationResult {
7
7
  type: 'userop';
@@ -24,7 +24,8 @@ interface PreparedUserOperationData {
24
24
  transaction: UserOperationTransaction;
25
25
  }
26
26
  interface SignedTransactionData extends PreparedTransactionData {
27
- signature: Hex;
27
+ originSignatures: Hex[];
28
+ destinationSignature: Hex;
28
29
  }
29
30
  interface SignedUserOperationData extends PreparedUserOperationData {
30
31
  signature: Hex;
@@ -38,17 +39,23 @@ declare function signAuthorizations(config: RhinestoneConfig, preparedTransactio
38
39
  declare function signMessage(config: RhinestoneConfig, message: SignableMessage, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
39
40
  declare function signTypedData<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneConfig, parameters: HashTypedDataParameters<typedData, primaryType>, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
40
41
  declare function signAuthorizationsInternal(config: RhinestoneConfig, data: IntentRoute | UserOperation): Promise<SignedAuthorization[]>;
41
- declare function submitTransaction(config: RhinestoneConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList): Promise<TransactionResult>;
42
+ declare function submitTransaction(config: RhinestoneConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList, dryRun?: boolean): Promise<TransactionResult>;
42
43
  declare function submitUserOperation(config: RhinestoneConfig, signedUserOperation: SignedUserOperationData): Promise<UserOperationResult>;
43
- declare function simulateTransaction(config: RhinestoneConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList): Promise<import("../orchestrator").IntentResult>;
44
44
  declare function getTokenRequests(sourceChains: Chain[], targetChain: Chain, initialTokenRequests: TokenRequest[] | undefined, settlementLayers: SettlementLayer[] | undefined): TokenRequest[];
45
- declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CalldataInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], accountAddress: Address, isSponsored: boolean, eip7702InitSignature: Hex | undefined, settlementLayers: SettlementLayer[] | undefined, sourceAssets: SourceAssetInput | undefined, feeAsset: Address | TokenSymbol | undefined, lockFunds?: boolean): Promise<IntentRoute>;
46
- declare function signIntent(config: RhinestoneConfig, targetChain: Chain, intentOp: IntentOp, signers?: SignerSet): Promise<`0x${string}`>;
45
+ declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CalldataInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], recipient: Account | undefined, accountAddress: Address, isSponsored: boolean, eip7702InitSignature: Hex | undefined, settlementLayers: SettlementLayer[] | undefined, sourceAssets: SourceAssetInput | undefined, feeAsset: Address | TokenSymbol | undefined, lockFunds?: boolean, account?: {
46
+ setupOps?: {
47
+ to: Address;
48
+ data: Hex;
49
+ }[];
50
+ }): Promise<IntentRoute>;
51
+ declare function signIntent(config: RhinestoneConfig, targetChain: Chain, intentOp: IntentOp, signers?: SignerSet): Promise<{
52
+ originSignatures: any[];
53
+ destinationSignature: `0x${string}`;
54
+ }>;
47
55
  declare function getOrchestratorByChain(chainId: number, apiKey: string | undefined, orchestratorUrl?: string): import("../orchestrator").Orchestrator;
48
- declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, signature: Hex, authorizations: SignedAuthorizationList): Promise<TransactionResult>;
49
- declare function simulateIntentInternal(config: RhinestoneConfig, _sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, signature: Hex, authorizations: SignedAuthorizationList): Promise<import("../orchestrator").IntentResult>;
56
+ declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures: Hex[], destinationSignature: Hex, authorizations: SignedAuthorizationList, dryRun: boolean): Promise<TransactionResult>;
50
57
  declare function getValidatorAccount(config: RhinestoneConfig, signers: SignerSet | undefined, publicClient: PublicClient, chain: Chain): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | null | undefined>;
51
58
  declare function parseCalls(calls: CalldataInput[], chainId: number): Call[];
52
- export { prepareTransaction, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, simulateTransaction, prepareUserOperation, signUserOperation, submitUserOperation, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, simulateIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, };
59
+ export { prepareTransaction, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, };
53
60
  export type { IntentRoute, TransactionResult, PreparedTransactionData, PreparedUserOperationData, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
54
61
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}