@charterlabs/rhinestone-sdk 0.2.7-dev.3 → 0.2.8

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 (155) hide show
  1. package/README.md +46 -8
  2. package/dist/src/accounts/error.d.ts +38 -3
  3. package/dist/src/accounts/error.d.ts.map +1 -1
  4. package/dist/src/accounts/error.js +55 -7
  5. package/dist/src/accounts/index.d.ts +31 -20
  6. package/dist/src/accounts/index.d.ts.map +1 -1
  7. package/dist/src/accounts/index.js +231 -25
  8. package/dist/src/accounts/index.test.js +2 -4
  9. package/dist/src/accounts/json-rpc/index.d.ts +5 -0
  10. package/dist/src/accounts/json-rpc/index.d.ts.map +1 -0
  11. package/dist/src/accounts/json-rpc/index.js +16 -0
  12. package/dist/src/accounts/json-rpc/providers.d.ts +4 -0
  13. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -0
  14. package/dist/src/accounts/json-rpc/providers.js +52 -0
  15. package/dist/src/accounts/kernel.d.ts +1 -1
  16. package/dist/src/accounts/kernel.d.ts.map +1 -1
  17. package/dist/src/accounts/kernel.js +29 -1
  18. package/dist/src/accounts/kernel.test.js +35 -8
  19. package/dist/src/accounts/nexus.d.ts +4 -3
  20. package/dist/src/accounts/nexus.d.ts.map +1 -1
  21. package/dist/src/accounts/nexus.js +82 -14
  22. package/dist/src/accounts/nexus.test.js +33 -6
  23. package/dist/src/accounts/passport.d.ts +12 -0
  24. package/dist/src/accounts/passport.d.ts.map +1 -0
  25. package/dist/src/accounts/passport.js +173 -0
  26. package/dist/src/accounts/safe.d.ts.map +1 -1
  27. package/dist/src/accounts/safe.js +85 -53
  28. package/dist/src/accounts/safe.test.js +33 -6
  29. package/dist/src/accounts/signing/common.d.ts +4 -4
  30. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  31. package/dist/src/accounts/signing/common.js +21 -9
  32. package/dist/src/accounts/signing/message.d.ts +1 -1
  33. package/dist/src/accounts/signing/message.d.ts.map +1 -1
  34. package/dist/src/accounts/signing/message.js +6 -6
  35. package/dist/src/accounts/signing/passkeys.d.ts +8 -1
  36. package/dist/src/accounts/signing/passkeys.d.ts.map +1 -1
  37. package/dist/src/accounts/signing/passkeys.js +35 -0
  38. package/dist/src/accounts/signing/passkeys.test.js +15 -0
  39. package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
  40. package/dist/src/accounts/signing/typedData.js +2 -2
  41. package/dist/src/accounts/startale.test.js +0 -4
  42. package/dist/src/accounts/utils.d.ts +4 -4
  43. package/dist/src/accounts/utils.d.ts.map +1 -1
  44. package/dist/src/accounts/utils.js +3 -40
  45. package/dist/src/accounts/walletClient.d.ts +7 -0
  46. package/dist/src/accounts/walletClient.d.ts.map +1 -0
  47. package/dist/src/accounts/walletClient.js +38 -0
  48. package/dist/src/actions/compact.d.ts +13 -0
  49. package/dist/src/actions/compact.d.ts.map +1 -0
  50. package/dist/src/actions/compact.js +210 -0
  51. package/dist/src/actions/ecdsa.d.ts +35 -0
  52. package/dist/src/actions/ecdsa.d.ts.map +1 -0
  53. package/dist/src/actions/ecdsa.js +114 -0
  54. package/dist/src/actions/ecdsa.test.d.ts +2 -0
  55. package/dist/src/actions/ecdsa.test.d.ts.map +1 -0
  56. package/dist/src/actions/ecdsa.test.js +99 -0
  57. package/dist/src/actions/index.d.ts +23 -166
  58. package/dist/src/actions/index.d.ts.map +1 -1
  59. package/dist/src/actions/index.js +25 -544
  60. package/dist/src/actions/mfa.d.ts +37 -0
  61. package/dist/src/actions/mfa.d.ts.map +1 -0
  62. package/dist/src/actions/mfa.js +133 -0
  63. package/dist/src/actions/passkeys.d.ts +37 -0
  64. package/dist/src/actions/passkeys.d.ts.map +1 -0
  65. package/dist/src/actions/passkeys.js +129 -0
  66. package/dist/src/actions/passkeys.test.d.ts +2 -0
  67. package/dist/src/actions/passkeys.test.d.ts.map +1 -0
  68. package/dist/src/actions/passkeys.test.js +54 -0
  69. package/dist/src/actions/recovery.d.ts +33 -0
  70. package/dist/src/actions/recovery.d.ts.map +1 -0
  71. package/dist/src/actions/recovery.js +193 -0
  72. package/dist/src/actions/recovery.test.d.ts +2 -0
  73. package/dist/src/actions/recovery.test.d.ts.map +1 -0
  74. package/dist/src/actions/recovery.test.js +168 -0
  75. package/dist/src/actions/smart-sessions.d.ts +23 -0
  76. package/dist/src/actions/smart-sessions.d.ts.map +1 -0
  77. package/dist/src/actions/{smart-session.js → smart-sessions.js} +13 -0
  78. package/dist/src/errors/index.d.ts +5 -0
  79. package/dist/src/errors/index.d.ts.map +1 -0
  80. package/dist/src/errors/index.js +50 -0
  81. package/dist/src/execution/compact.d.ts +25 -9
  82. package/dist/src/execution/compact.d.ts.map +1 -1
  83. package/dist/src/execution/compact.js +29 -103
  84. package/dist/src/execution/error.d.ts +6 -6
  85. package/dist/src/execution/error.d.ts.map +1 -1
  86. package/dist/src/execution/error.js +13 -13
  87. package/dist/src/execution/index.d.ts +34 -22
  88. package/dist/src/execution/index.d.ts.map +1 -1
  89. package/dist/src/execution/index.js +115 -46
  90. package/dist/src/execution/multiChainOps.d.ts +40 -0
  91. package/dist/src/execution/multiChainOps.d.ts.map +1 -0
  92. package/dist/src/execution/multiChainOps.js +39 -0
  93. package/dist/src/execution/permit2.d.ts +148 -0
  94. package/dist/src/execution/permit2.d.ts.map +1 -0
  95. package/dist/src/execution/permit2.js +291 -0
  96. package/dist/src/execution/smart-session.d.ts +3 -3
  97. package/dist/src/execution/smart-session.d.ts.map +1 -1
  98. package/dist/src/execution/smart-session.js +3 -3
  99. package/dist/src/execution/types.d.ts +36 -0
  100. package/dist/src/execution/types.d.ts.map +1 -0
  101. package/dist/src/execution/types.js +2 -0
  102. package/dist/src/execution/utils.d.ts +43 -28
  103. package/dist/src/execution/utils.d.ts.map +1 -1
  104. package/dist/src/execution/utils.js +269 -99
  105. package/dist/src/index.d.ts +38 -19
  106. package/dist/src/index.d.ts.map +1 -1
  107. package/dist/src/index.js +121 -69
  108. package/dist/src/modules/common.d.ts +10 -4
  109. package/dist/src/modules/common.d.ts.map +1 -1
  110. package/dist/src/modules/common.js +22 -1
  111. package/dist/src/modules/index.d.ts +3 -2
  112. package/dist/src/modules/index.d.ts.map +1 -1
  113. package/dist/src/modules/index.js +16 -13
  114. package/dist/src/modules/index.test.js +9 -12
  115. package/dist/src/modules/read.d.ts.map +1 -1
  116. package/dist/src/modules/read.js +5 -1
  117. package/dist/src/modules/validators/core.d.ts +5 -3
  118. package/dist/src/modules/validators/core.d.ts.map +1 -1
  119. package/dist/src/modules/validators/core.js +29 -10
  120. package/dist/src/modules/validators/core.test.js +4 -4
  121. package/dist/src/modules/validators/smart-sessions.d.ts +4 -4
  122. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  123. package/dist/src/modules/validators/smart-sessions.js +10 -72
  124. package/dist/src/modules/validators/smart-sessions.test.js +4 -8
  125. package/dist/src/modules/validators/webauthn-contract.d.ts.map +1 -1
  126. package/dist/src/orchestrator/client.d.ts +4 -2
  127. package/dist/src/orchestrator/client.d.ts.map +1 -1
  128. package/dist/src/orchestrator/client.js +230 -162
  129. package/dist/src/orchestrator/consts.d.ts +1 -2
  130. package/dist/src/orchestrator/consts.d.ts.map +1 -1
  131. package/dist/src/orchestrator/consts.js +1 -3
  132. package/dist/src/orchestrator/error.d.ts +111 -1
  133. package/dist/src/orchestrator/error.d.ts.map +1 -1
  134. package/dist/src/orchestrator/error.js +128 -1
  135. package/dist/src/orchestrator/index.d.ts +4 -4
  136. package/dist/src/orchestrator/index.d.ts.map +1 -1
  137. package/dist/src/orchestrator/index.js +16 -1
  138. package/dist/src/orchestrator/registry.d.ts +3 -25
  139. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  140. package/dist/src/orchestrator/registry.js +82 -46
  141. package/dist/src/orchestrator/registry.test.js +7 -7
  142. package/dist/src/orchestrator/types.d.ts +53 -43
  143. package/dist/src/orchestrator/types.d.ts.map +1 -1
  144. package/dist/src/types.d.ts +74 -9
  145. package/dist/src/types.d.ts.map +1 -1
  146. package/dist/src/utils/index.d.ts +3 -0
  147. package/dist/src/utils/index.d.ts.map +1 -0
  148. package/dist/src/utils/index.js +5 -0
  149. package/package.json +73 -2
  150. package/dist/src/actions/index.test.d.ts +0 -2
  151. package/dist/src/actions/index.test.d.ts.map +0 -1
  152. package/dist/src/actions/index.test.js +0 -302
  153. package/dist/src/actions/smart-session.d.ts +0 -11
  154. package/dist/src/actions/smart-session.d.ts.map +0 -1
  155. package/dist/src/orchestrator/registry.json +0 -365
@@ -0,0 +1,291 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTypedData = getTypedData;
4
+ exports.checkERC20Allowance = checkERC20Allowance;
5
+ exports.checkERC20AllowanceDirect = checkERC20AllowanceDirect;
6
+ exports.getPermit2Address = getPermit2Address;
7
+ exports.signPermit2Batch = signPermit2Batch;
8
+ exports.signPermit2Sequential = signPermit2Sequential;
9
+ const viem_1 = require("viem");
10
+ const utils_1 = require("../accounts/utils");
11
+ const PERMIT2_ADDRESS = '0x000000000022D473030F116dDEE9F6B43aC78BA3';
12
+ function toToken(id) {
13
+ return `0x${(id & ((1n << 160n) - 1n)).toString(16).padStart(40, '0')}`;
14
+ }
15
+ function getTypedData(element, nonce, expires) {
16
+ const tokens = element.idsAndAmounts.map(([id, amount]) => [
17
+ BigInt(id),
18
+ BigInt(amount),
19
+ ]);
20
+ const tokenPermissions = tokens.reduce((permissions, [id, amountIn]) => {
21
+ const token = toToken(BigInt(id));
22
+ const amount = BigInt(amountIn);
23
+ const permission = { token, amount };
24
+ permissions.push(permission);
25
+ return permissions;
26
+ }, []);
27
+ const spender = element.arbiter;
28
+ const mandate = element.mandate;
29
+ const typedData = {
30
+ domain: {
31
+ name: 'Permit2',
32
+ chainId: Number(element.chainId),
33
+ verifyingContract: PERMIT2_ADDRESS,
34
+ },
35
+ types: {
36
+ TokenPermissions: [
37
+ { name: 'token', type: 'address' },
38
+ { name: 'amount', type: 'uint256' },
39
+ ],
40
+ Token: [
41
+ { name: 'token', type: 'address' },
42
+ { name: 'amount', type: 'uint256' },
43
+ ],
44
+ Target: [
45
+ { name: 'recipient', type: 'address' },
46
+ { name: 'tokenOut', type: 'Token[]' },
47
+ { name: 'targetChain', type: 'uint256' },
48
+ { name: 'fillExpiry', type: 'uint256' },
49
+ ],
50
+ Op: [
51
+ { name: 'to', type: 'address' },
52
+ { name: 'value', type: 'uint256' },
53
+ { name: 'data', type: 'bytes' },
54
+ ],
55
+ Mandate: [
56
+ { name: 'target', type: 'Target' },
57
+ { name: 'v', type: 'uint8' },
58
+ { name: 'minGas', type: 'uint128' },
59
+ { name: 'originOps', type: 'Op[]' },
60
+ { name: 'destOps', type: 'Op[]' },
61
+ { name: 'q', type: 'bytes32' },
62
+ ],
63
+ PermitBatchWitnessTransferFrom: [
64
+ { name: 'permitted', type: 'TokenPermissions[]' },
65
+ { name: 'spender', type: 'address' },
66
+ { name: 'nonce', type: 'uint256' },
67
+ { name: 'deadline', type: 'uint256' },
68
+ { name: 'mandate', type: 'Mandate' },
69
+ ],
70
+ },
71
+ primaryType: 'PermitBatchWitnessTransferFrom',
72
+ message: {
73
+ permitted: tokenPermissions,
74
+ spender: spender,
75
+ nonce: nonce,
76
+ deadline: expires,
77
+ mandate: {
78
+ target: {
79
+ recipient: mandate.recipient,
80
+ tokenOut: mandate.tokenOut.map((token) => ({
81
+ token: toToken(BigInt(token[0])),
82
+ amount: BigInt(token[1]),
83
+ })),
84
+ targetChain: BigInt(mandate.destinationChainId),
85
+ fillExpiry: BigInt(mandate.fillDeadline),
86
+ },
87
+ v: mandate.v || 0,
88
+ minGas: BigInt(mandate.minGas || '0'),
89
+ originOps: mandate.preClaimOps.map((op) => ({
90
+ to: op.to,
91
+ value: BigInt(op.value),
92
+ data: op.data,
93
+ })),
94
+ destOps: mandate.destinationOps.map((op) => ({
95
+ to: op.to,
96
+ value: BigInt(op.value),
97
+ data: op.data,
98
+ })),
99
+ q: (0, viem_1.keccak256)(mandate.qualifier.encodedVal),
100
+ },
101
+ },
102
+ };
103
+ return typedData;
104
+ }
105
+ async function checkERC20AllowanceDirect(owner, spender, tokenAddress, publicClient) {
106
+ try {
107
+ const allowance = await publicClient.readContract({
108
+ address: tokenAddress,
109
+ abi: [
110
+ {
111
+ name: 'allowance',
112
+ type: 'function',
113
+ stateMutability: 'view',
114
+ inputs: [
115
+ { name: 'owner', type: 'address' },
116
+ { name: 'spender', type: 'address' },
117
+ ],
118
+ outputs: [{ name: '', type: 'uint256' }],
119
+ },
120
+ ],
121
+ functionName: 'allowance',
122
+ args: [owner, spender],
123
+ });
124
+ return BigInt(allowance.toString());
125
+ }
126
+ catch (error) {
127
+ console.error('Error checking ERC20 allowance:', error);
128
+ throw new Error('Failed to check ERC20 allowance');
129
+ }
130
+ }
131
+ async function checkERC20Allowance(tokenAddress, chain, config) {
132
+ try {
133
+ const publicClient = (0, viem_1.createPublicClient)({
134
+ chain,
135
+ transport: (0, utils_1.createTransport)(chain, config.provider),
136
+ });
137
+ // Get the account owner from the config
138
+ const owner = config.eoa?.address;
139
+ if (!owner) {
140
+ throw new Error('No EOA address found in account config');
141
+ }
142
+ return await checkERC20AllowanceDirect(owner, PERMIT2_ADDRESS, tokenAddress, publicClient);
143
+ }
144
+ catch (error) {
145
+ console.error('Error checking ERC20 allowance:', error);
146
+ throw new Error('Failed to check ERC20 allowance');
147
+ }
148
+ }
149
+ /**
150
+ * Get the Permit2 contract address
151
+ * @returns The Permit2 contract address
152
+ */
153
+ function getPermit2Address() {
154
+ return PERMIT2_ADDRESS;
155
+ }
156
+ /**
157
+ * Signs permit2 calls across multiple chains using batch approach.
158
+ * Collects all signatures first, then returns them all at once.
159
+ *
160
+ * This approach is efficient for backend signers but may be memory-intensive
161
+ * for frontend applications with many chains.
162
+ *
163
+ * @param configs - Array of permit2 signing configurations for different chains
164
+ * @returns Promise<BatchPermit2Result> - All signatures collected
165
+ */
166
+ async function signPermit2Batch(configs) {
167
+ const results = [];
168
+ let successfulSignatures = 0;
169
+ let failedSignatures = 0;
170
+ // Process all signing operations in parallel
171
+ const signingPromises = configs.map(async (config) => {
172
+ try {
173
+ // sign each element individually for this chain sequentially to preserve order
174
+ if (!config.eoaAccount.signTypedData) {
175
+ throw new Error('EOA account does not support typed data signing');
176
+ }
177
+ const originSignatures = [];
178
+ for (const element of config.intentOp.elements) {
179
+ const typedData = getTypedData(element, BigInt(config.intentOp.nonce), BigInt(config.intentOp.expires));
180
+ const sig = await config.eoaAccount.signTypedData(typedData);
181
+ originSignatures.push(sig);
182
+ }
183
+ const result = {
184
+ chainId: config.chain.id,
185
+ originSignatures,
186
+ destinationSignature: originSignatures[0] ?? '0x',
187
+ success: true,
188
+ };
189
+ successfulSignatures++;
190
+ return result;
191
+ }
192
+ catch (error) {
193
+ const result = {
194
+ chainId: config.chain.id,
195
+ originSignatures: [],
196
+ destinationSignature: '0x',
197
+ success: false,
198
+ error: error instanceof Error ? error : new Error(String(error)),
199
+ };
200
+ failedSignatures++;
201
+ return result;
202
+ }
203
+ });
204
+ // Wait for all signing operations to complete
205
+ const signingResults = await Promise.allSettled(signingPromises);
206
+ for (const result of signingResults) {
207
+ if (result.status === 'fulfilled') {
208
+ results.push(result.value);
209
+ }
210
+ else {
211
+ // This shouldn't happen since we catch errors in the promise
212
+ failedSignatures++;
213
+ results.push({
214
+ chainId: 0,
215
+ originSignatures: [],
216
+ destinationSignature: '0x',
217
+ success: false,
218
+ error: result.reason,
219
+ });
220
+ }
221
+ }
222
+ return {
223
+ results,
224
+ totalChains: configs.length,
225
+ successfulSignatures,
226
+ failedSignatures,
227
+ allSuccessful: failedSignatures === 0,
228
+ };
229
+ }
230
+ /**
231
+ * Signs permit2 calls across multiple chains sequentially.
232
+ * Signs one by one, useful for frontend applications to avoid memory issues.
233
+ *
234
+ * This approach is more memory-efficient for frontend applications but slower
235
+ * due to sequential processing.
236
+ *
237
+ * @param configs - Array of permit2 signing configurations for different chains
238
+ * @param onProgress - Optional callback for progress updates
239
+ * @returns Promise<BatchPermit2Result> - All signatures collected
240
+ */
241
+ async function signPermit2Sequential(configs, onProgress) {
242
+ const results = [];
243
+ let successfulSignatures = 0;
244
+ let failedSignatures = 0;
245
+ // Process signing operations sequentially
246
+ for (let i = 0; i < configs.length; i++) {
247
+ const config = configs[i];
248
+ try {
249
+ // sign each element for this chain sequentially to preserve order
250
+ if (!config.eoaAccount.signTypedData) {
251
+ throw new Error('EOA account does not support typed data signing');
252
+ }
253
+ const originSignatures = [];
254
+ for (const element of config.intentOp.elements) {
255
+ const typedData = getTypedData(element, BigInt(config.intentOp.nonce), BigInt(config.intentOp.expires));
256
+ const sig = await config.eoaAccount.signTypedData(typedData);
257
+ originSignatures.push(sig);
258
+ }
259
+ const result = {
260
+ chainId: config.chain.id,
261
+ originSignatures,
262
+ destinationSignature: originSignatures[0] ?? '0x',
263
+ success: true,
264
+ };
265
+ results.push(result);
266
+ successfulSignatures++;
267
+ // Call progress callback if provided
268
+ onProgress?.(i + 1, configs.length, result);
269
+ }
270
+ catch (error) {
271
+ const result = {
272
+ chainId: config.chain.id,
273
+ originSignatures: [],
274
+ destinationSignature: '0x',
275
+ success: false,
276
+ error: error instanceof Error ? error : new Error(String(error)),
277
+ };
278
+ results.push(result);
279
+ failedSignatures++;
280
+ // Call progress callback if provided
281
+ onProgress?.(i + 1, configs.length, result);
282
+ }
283
+ }
284
+ return {
285
+ results,
286
+ totalChains: configs.length,
287
+ successfulSignatures,
288
+ failedSignatures,
289
+ allSuccessful: failedSignatures === 0,
290
+ };
291
+ }
@@ -1,15 +1,15 @@
1
1
  import { type Chain, type Hex } from 'viem';
2
2
  import { type ChainDigest, type EnableSessionData, type SmartSessionModeType } from '../modules/validators/smart-sessions';
3
- import type { RhinestoneAccountConfig, Session } from '../types';
3
+ import type { RhinestoneConfig, Session } from '../types';
4
4
  interface SessionDetails {
5
5
  permissionEnableHash: Hex;
6
6
  mode: SmartSessionModeType;
7
7
  hashesAndChainIds: ChainDigest[];
8
8
  enableSessionData: EnableSessionData;
9
9
  }
10
- declare function getSessionDetails(config: RhinestoneAccountConfig, sessions: Session[], sessionIndex: number, signature?: Hex): Promise<SessionDetails>;
10
+ declare function getSessionDetails(config: RhinestoneConfig, sessions: Session[], sessionIndex: number, signature?: Hex): Promise<SessionDetails>;
11
11
  declare function getMultichainDigest(chainDigests: ChainDigest[]): Hex;
12
- declare function enableSmartSession(chain: Chain, config: RhinestoneAccountConfig, session: Session): Promise<void>;
12
+ declare function enableSmartSession(chain: Chain, config: RhinestoneConfig, session: Session): Promise<void>;
13
13
  export { enableSmartSession, getSessionDetails, getMultichainDigest };
14
14
  export type { SessionDetails };
15
15
  //# sourceMappingURL=smart-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAIV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAmBb,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAGtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAGV,uBAAuB,EACvB,OAAO,EACR,MAAM,UAAU,CAAA;AAGjB,UAAU,cAAc;IACtB,oBAAoB,EAAE,GAAG,CAAA;IACzB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,iBAAiB,EAAE,WAAW,EAAE,CAAA;IAChC,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,CAAC,CA4BzB;AAgGD,iBAAS,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAgC7D;AAiLD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,iBA+BjB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACrE,YAAY,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAIV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAmBb,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAGtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAGV,gBAAgB,EAChB,OAAO,EACR,MAAM,UAAU,CAAA;AAGjB,UAAU,cAAc;IACtB,oBAAoB,EAAE,GAAG,CAAA;IACzB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,iBAAiB,EAAE,WAAW,EAAE,CAAA;IAChC,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,CAAC,CA4BzB;AA4FD,iBAAS,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAgC7D;AAiLD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,OAAO,iBA2BjB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACrE,YAAY,EAAE,cAAc,EAAE,CAAA"}
@@ -40,7 +40,7 @@ async function getEnableSessionDetails(accountType, sessions, sessionIndex, acco
40
40
  transport: (0, utils_1.createTransport)(sessionChain, provider),
41
41
  });
42
42
  const sessionNonce = await getSessionNonce(publicClient, accountAddress, permissionId);
43
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, session, provider);
43
+ const sessionData = await (0, smart_sessions_1.getSessionData)(session);
44
44
  const sessionDigest = await getSessionDigest(publicClient, accountAddress, sessionData, permissionId, validators_1.SMART_SESSION_MODE_ENABLE);
45
45
  chainDigests.push({
46
46
  chainId: BigInt(sessionChain.id),
@@ -73,7 +73,7 @@ async function getEnableSessionDetails(accountType, sessions, sessionIndex, acco
73
73
  if (!sessionChain) {
74
74
  throw new error_1.SessionChainRequiredError();
75
75
  }
76
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, sessionToEnable, provider);
76
+ const sessionData = await (0, smart_sessions_1.getSessionData)(sessionToEnable);
77
77
  return {
78
78
  permissionEnableHash,
79
79
  mode: validators_1.SMART_SESSION_MODE_ENABLE,
@@ -280,7 +280,7 @@ async function enableSmartSession(chain, config, session) {
280
280
  if (isEnabled) {
281
281
  return;
282
282
  }
283
- const enableSessionCall = await (0, validators_1.getEnableSessionCall)(chain, session, config.provider);
283
+ const enableSessionCall = await (0, validators_1.getEnableSessionCall)(session);
284
284
  const smartAccount = await (0, accounts_1.getSmartAccount)(config, publicClient, chain);
285
285
  const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
286
286
  const opHash = await bundlerClient.sendUserOperation({
@@ -0,0 +1,36 @@
1
+ import type { Account, Address, Chain, Hex } from 'viem';
2
+ import type { IntentOp } from '../orchestrator/types';
3
+ interface TokenPermissions {
4
+ token: Address;
5
+ amount: bigint;
6
+ }
7
+ /**
8
+ * Multi-chain permit2 signing configuration
9
+ */
10
+ interface MultiChainPermit2Config {
11
+ chain: Chain;
12
+ intentOp: IntentOp;
13
+ eoaAccount: Account;
14
+ }
15
+ /**
16
+ * Result of a multi-chain permit2 signing operation
17
+ */
18
+ interface MultiChainPermit2Result {
19
+ chainId: number;
20
+ originSignatures: Hex[];
21
+ destinationSignature: Hex;
22
+ success: boolean;
23
+ error?: Error;
24
+ }
25
+ /**
26
+ * Batch permit2 signing result
27
+ */
28
+ interface BatchPermit2Result {
29
+ results: MultiChainPermit2Result[];
30
+ totalChains: number;
31
+ successfulSignatures: number;
32
+ failedSignatures: number;
33
+ allSuccessful: boolean;
34
+ }
35
+ export type { TokenPermissions, MultiChainPermit2Config, MultiChainPermit2Result, BatchPermit2Result, };
36
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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,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"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,46 +1,61 @@
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 { Call, CallInput, RhinestoneAccountConfig, SignerSet, TokenRequest, Transaction } from '../types';
5
- type TransactionResult = {
4
+ import type { SettlementLayer } from '../orchestrator/types';
5
+ import type { Call, CalldataInput, CallInput, RhinestoneConfig, SignerSet, SourceAssetInput, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
6
+ interface UserOperationResult {
6
7
  type: 'userop';
7
8
  hash: Hex;
8
9
  chain: number;
9
- } | {
10
+ }
11
+ interface TransactionResult {
10
12
  type: 'intent';
11
13
  id: bigint;
12
14
  sourceChains?: number[];
13
15
  targetChain: number;
14
- };
15
- interface IntentData {
16
- type: 'intent';
17
- intentRoute: IntentRoute;
18
- }
19
- interface UserOpData {
20
- type: 'userop';
21
- hash: Hex;
22
- userOp: UserOperation;
23
16
  }
24
17
  interface PreparedTransactionData {
25
- data: IntentData | UserOpData;
18
+ intentRoute: IntentRoute;
26
19
  transaction: Transaction;
27
20
  }
21
+ interface PreparedUserOperationData {
22
+ userOperation: UserOperation;
23
+ hash: Hex;
24
+ transaction: UserOperationTransaction;
25
+ }
28
26
  interface SignedTransactionData extends PreparedTransactionData {
27
+ originSignatures: Hex[];
28
+ destinationSignature: Hex;
29
+ }
30
+ interface SignedUserOperationData extends PreparedUserOperationData {
29
31
  signature: Hex;
30
32
  }
31
- declare function prepareTransaction(config: RhinestoneAccountConfig, transaction: Transaction): Promise<PreparedTransactionData>;
32
- declare function signTransaction(config: RhinestoneAccountConfig, preparedTransaction: PreparedTransactionData): Promise<SignedTransactionData>;
33
- declare function signAuthorizations(config: RhinestoneAccountConfig, preparedTransaction: PreparedTransactionData): Promise<SignedAuthorization[]>;
34
- declare function signMessage(config: RhinestoneAccountConfig, message: SignableMessage, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
35
- declare function signTypedData<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneAccountConfig, parameters: HashTypedDataParameters<typedData, primaryType>, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
36
- declare function signAuthorizationsInternal(config: RhinestoneAccountConfig, data: IntentData | UserOpData): Promise<SignedAuthorization[]>;
37
- declare function submitTransaction(config: RhinestoneAccountConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList): Promise<TransactionResult>;
38
- declare function prepareTransactionAsIntent(config: RhinestoneAccountConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CallInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], accountAddress: Address, isSponsored: boolean, eip7702InitSignature?: Hex): Promise<IntentData>;
39
- declare function signIntent(config: RhinestoneAccountConfig, targetChain: Chain, intentOp: IntentOp, signers?: SignerSet): Promise<`0x${string}`>;
40
- declare function getOrchestratorByChain(chainId: number, apiKey: string | undefined, useDev: boolean | undefined): import("../orchestrator").Orchestrator;
41
- declare function submitIntentInternal(config: RhinestoneAccountConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, signature: Hex, authorizations: SignedAuthorizationList): Promise<TransactionResult>;
42
- declare function getValidatorAccount(config: RhinestoneAccountConfig, 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>;
43
- declare function parseCalls(calls: CallInput[], chainId: number): Call[];
44
- export { prepareTransaction, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, };
45
- export type { IntentData, TransactionResult, PreparedTransactionData, SignedTransactionData, };
33
+ declare function prepareTransaction(config: RhinestoneConfig, transaction: Transaction): Promise<PreparedTransactionData>;
34
+ declare function prepareUserOperation(config: RhinestoneConfig, transaction: UserOperationTransaction): Promise<PreparedUserOperationData>;
35
+ declare function resolveCallInputs(inputs: CallInput[], config: RhinestoneConfig, chain: Chain, accountAddress: Address): Promise<CalldataInput[]>;
36
+ declare function signTransaction(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedTransactionData>;
37
+ declare function signUserOperation(config: RhinestoneConfig, preparedUserOperation: PreparedUserOperationData): Promise<SignedUserOperationData>;
38
+ declare function signAuthorizations(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedAuthorization[]>;
39
+ declare function signMessage(config: RhinestoneConfig, message: SignableMessage, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
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}`>;
41
+ declare function signAuthorizationsInternal(config: RhinestoneConfig, data: IntentRoute | UserOperation): Promise<SignedAuthorization[]>;
42
+ declare function submitTransaction(config: RhinestoneConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList, dryRun?: boolean): Promise<TransactionResult>;
43
+ declare function submitUserOperation(config: RhinestoneConfig, signedUserOperation: SignedUserOperationData): Promise<UserOperationResult>;
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, 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
+ }>;
55
+ declare function getOrchestratorByChain(chainId: number, apiKey: string | undefined, orchestratorUrl?: string): import("../orchestrator").Orchestrator;
56
+ declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures: Hex[], destinationSignature: Hex, authorizations: SignedAuthorizationList, dryRun: boolean): Promise<TransactionResult>;
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>;
58
+ declare function parseCalls(calls: CalldataInput[], chainId: number): Call[];
59
+ export { prepareTransaction, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, };
60
+ export type { IntentRoute, TransactionResult, PreparedTransactionData, PreparedUserOperationData, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
46
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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"}