@charterlabs/rhinestone-sdk 0.3.9 → 0.4.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 (155) hide show
  1. package/README.md +89 -1
  2. package/dist/src/accounts/index.d.ts +6 -3
  3. package/dist/src/accounts/index.d.ts.map +1 -1
  4. package/dist/src/accounts/index.js +8 -2
  5. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -1
  6. package/dist/src/accounts/json-rpc/providers.js +3 -3
  7. package/dist/src/accounts/safe.d.ts.map +1 -1
  8. package/dist/src/accounts/safe.js +4 -1
  9. package/dist/src/accounts/signing/common.d.ts +10 -5
  10. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  11. package/dist/src/accounts/signing/common.js +21 -7
  12. package/dist/src/accounts/signing/message.d.ts +3 -1
  13. package/dist/src/accounts/signing/message.d.ts.map +1 -1
  14. package/dist/src/accounts/signing/mfa-webauthn.d.ts +30 -0
  15. package/dist/src/accounts/signing/mfa-webauthn.d.ts.map +1 -0
  16. package/dist/src/accounts/signing/mfa-webauthn.js +119 -0
  17. package/dist/src/accounts/startale.js +1 -1
  18. package/dist/src/accounts/utils.d.ts +1 -1
  19. package/dist/src/accounts/utils.d.ts.map +1 -1
  20. package/dist/src/actions/mfa.d.ts +6 -2
  21. package/dist/src/actions/mfa.d.ts.map +1 -1
  22. package/dist/src/actions/mfa.js +14 -4
  23. package/dist/src/auth/provider.d.ts +7 -0
  24. package/dist/src/auth/provider.d.ts.map +1 -0
  25. package/dist/src/auth/provider.js +41 -0
  26. package/dist/src/errors/index.d.ts +2 -2
  27. package/dist/src/errors/index.d.ts.map +1 -1
  28. package/dist/src/errors/index.js +2 -1
  29. package/dist/src/execution/error.d.ts +9 -1
  30. package/dist/src/execution/error.d.ts.map +1 -1
  31. package/dist/src/execution/error.js +12 -1
  32. package/dist/src/execution/index.d.ts +6 -4
  33. package/dist/src/execution/index.d.ts.map +1 -1
  34. package/dist/src/execution/index.js +17 -13
  35. package/dist/src/execution/utils.d.ts +17 -6
  36. package/dist/src/execution/utils.d.ts.map +1 -1
  37. package/dist/src/execution/utils.js +193 -43
  38. package/dist/src/index.d.ts +5 -5
  39. package/dist/src/index.d.ts.map +1 -1
  40. package/dist/src/index.js +13 -11
  41. package/dist/src/jwt-server/digest.d.ts +11 -0
  42. package/dist/src/jwt-server/digest.d.ts.map +1 -0
  43. package/dist/src/jwt-server/digest.js +22 -0
  44. package/dist/src/jwt-server/express.d.ts +16 -0
  45. package/dist/src/jwt-server/express.d.ts.map +1 -0
  46. package/dist/src/jwt-server/express.js +24 -0
  47. package/dist/src/jwt-server/handlers.d.ts +10 -0
  48. package/dist/src/jwt-server/handlers.d.ts.map +1 -0
  49. package/dist/src/jwt-server/handlers.js +41 -0
  50. package/dist/src/jwt-server/index.d.ts +8 -0
  51. package/dist/src/jwt-server/index.d.ts.map +1 -0
  52. package/dist/src/jwt-server/index.js +18 -0
  53. package/dist/src/jwt-server/jcs.d.ts +12 -0
  54. package/dist/src/jwt-server/jcs.d.ts.map +1 -0
  55. package/dist/src/jwt-server/jcs.js +60 -0
  56. package/dist/src/jwt-server/signer.d.ts +18 -0
  57. package/dist/src/jwt-server/signer.d.ts.map +1 -0
  58. package/dist/src/jwt-server/signer.js +71 -0
  59. package/dist/src/jwt-server/sponsorship.d.ts +19 -0
  60. package/dist/src/jwt-server/sponsorship.d.ts.map +1 -0
  61. package/dist/src/jwt-server/sponsorship.js +56 -0
  62. package/dist/src/jwt-server/web.d.ts +4 -0
  63. package/dist/src/jwt-server/web.d.ts.map +1 -0
  64. package/dist/src/jwt-server/web.js +27 -0
  65. package/dist/src/modules/validators/core.d.ts +6 -2
  66. package/dist/src/modules/validators/core.d.ts.map +1 -1
  67. package/dist/src/modules/validators/core.js +46 -21
  68. package/dist/src/modules/validators/index.d.ts +2 -2
  69. package/dist/src/modules/validators/index.d.ts.map +1 -1
  70. package/dist/src/modules/validators/index.js +5 -1
  71. package/dist/src/modules/validators/policies/claim/permit2.d.ts +55 -0
  72. package/dist/src/modules/validators/policies/claim/permit2.d.ts.map +1 -0
  73. package/dist/src/modules/validators/policies/claim/permit2.js +239 -0
  74. package/dist/src/modules/validators/policies/claim/types.d.ts +12 -0
  75. package/dist/src/modules/validators/policies/claim/types.d.ts.map +1 -0
  76. package/dist/src/modules/validators/policies/claim/types.js +18 -0
  77. package/dist/src/modules/validators/smart-sessions.d.ts +22 -7
  78. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  79. package/dist/src/modules/validators/smart-sessions.js +82 -22
  80. package/dist/src/orchestrator/client.d.ts +9 -4
  81. package/dist/src/orchestrator/client.d.ts.map +1 -1
  82. package/dist/src/orchestrator/client.js +29 -17
  83. package/dist/src/orchestrator/consts.d.ts +3 -2
  84. package/dist/src/orchestrator/consts.d.ts.map +1 -1
  85. package/dist/src/orchestrator/consts.js +4 -2
  86. package/dist/src/orchestrator/index.d.ts +4 -3
  87. package/dist/src/orchestrator/index.d.ts.map +1 -1
  88. package/dist/src/orchestrator/index.js +2 -2
  89. package/dist/src/orchestrator/registry.d.ts +2 -1
  90. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  91. package/dist/src/orchestrator/registry.js +17 -1
  92. package/dist/src/orchestrator/types.d.ts +6 -1
  93. package/dist/src/orchestrator/types.d.ts.map +1 -1
  94. package/dist/src/types.d.ts +88 -5
  95. package/dist/src/types.d.ts.map +1 -1
  96. package/dist/src/utils/index.d.ts +3 -9
  97. package/dist/src/utils/index.d.ts.map +1 -1
  98. package/package.json +18 -4
  99. package/dist/src/accounts/index.test.d.ts +0 -2
  100. package/dist/src/accounts/index.test.d.ts.map +0 -1
  101. package/dist/src/accounts/index.test.js +0 -33
  102. package/dist/src/accounts/json-rpc/index.test.d.ts +0 -2
  103. package/dist/src/accounts/json-rpc/index.test.d.ts.map +0 -1
  104. package/dist/src/accounts/json-rpc/index.test.js +0 -35
  105. package/dist/src/accounts/json-rpc/providers.test.d.ts +0 -2
  106. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +0 -1
  107. package/dist/src/accounts/json-rpc/providers.test.js +0 -43
  108. package/dist/src/accounts/kernel.test.d.ts +0 -2
  109. package/dist/src/accounts/kernel.test.d.ts.map +0 -1
  110. package/dist/src/accounts/kernel.test.js +0 -132
  111. package/dist/src/accounts/nexus.test.d.ts +0 -2
  112. package/dist/src/accounts/nexus.test.d.ts.map +0 -1
  113. package/dist/src/accounts/nexus.test.js +0 -118
  114. package/dist/src/accounts/safe.test.d.ts +0 -2
  115. package/dist/src/accounts/safe.test.d.ts.map +0 -1
  116. package/dist/src/accounts/safe.test.js +0 -118
  117. package/dist/src/accounts/signing/passkeys.test.d.ts +0 -2
  118. package/dist/src/accounts/signing/passkeys.test.d.ts.map +0 -1
  119. package/dist/src/accounts/signing/passkeys.test.js +0 -88
  120. package/dist/src/accounts/startale.test.d.ts +0 -2
  121. package/dist/src/accounts/startale.test.d.ts.map +0 -1
  122. package/dist/src/accounts/startale.test.js +0 -189
  123. package/dist/src/accounts/utils.test.d.ts +0 -2
  124. package/dist/src/accounts/utils.test.d.ts.map +0 -1
  125. package/dist/src/accounts/utils.test.js +0 -49
  126. package/dist/src/actions/ecdsa.test.d.ts +0 -2
  127. package/dist/src/actions/ecdsa.test.d.ts.map +0 -1
  128. package/dist/src/actions/ecdsa.test.js +0 -99
  129. package/dist/src/actions/passkeys.test.d.ts +0 -2
  130. package/dist/src/actions/passkeys.test.d.ts.map +0 -1
  131. package/dist/src/actions/passkeys.test.js +0 -54
  132. package/dist/src/actions/recovery.test.d.ts +0 -2
  133. package/dist/src/actions/recovery.test.d.ts.map +0 -1
  134. package/dist/src/actions/recovery.test.js +0 -168
  135. package/dist/src/execution/utils.test.d.ts +0 -2
  136. package/dist/src/execution/utils.test.d.ts.map +0 -1
  137. package/dist/src/execution/utils.test.js +0 -150
  138. package/dist/src/modules/index.test.d.ts +0 -2
  139. package/dist/src/modules/index.test.d.ts.map +0 -1
  140. package/dist/src/modules/index.test.js +0 -81
  141. package/dist/src/modules/validators/core.test.d.ts +0 -2
  142. package/dist/src/modules/validators/core.test.d.ts.map +0 -1
  143. package/dist/src/modules/validators/core.test.js +0 -101
  144. package/dist/src/modules/validators/smart-sessions.test.d.ts +0 -2
  145. package/dist/src/modules/validators/smart-sessions.test.d.ts.map +0 -1
  146. package/dist/src/modules/validators/smart-sessions.test.js +0 -61
  147. package/dist/src/orchestrator/registry.test.d.ts +0 -2
  148. package/dist/src/orchestrator/registry.test.d.ts.map +0 -1
  149. package/dist/src/orchestrator/registry.test.js +0 -154
  150. package/dist/test/consts.d.ts +0 -10
  151. package/dist/test/consts.d.ts.map +0 -1
  152. package/dist/test/consts.js +0 -22
  153. package/dist/test/utils/utils.d.ts +0 -5
  154. package/dist/test/utils/utils.d.ts.map +0 -1
  155. package/dist/test/utils/utils.js +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permit2.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/policies/claim/permit2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAIZ,KAAK,GAAG,EAKT,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAiD3D,oFAAoF;AACpF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACxD,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE;QACP,MAAM,EAAE;YACN,SAAS,EAAE,OAAO,CAAA;YAClB,QAAQ,EAAE,SAAS;gBAAE,KAAK,EAAE,OAAO,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;YACvD,WAAW,EAAE,MAAM,CAAA;YACnB,UAAU,EAAE,MAAM,CAAA;SACnB,CAAA;QACD,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE;YACT,EAAE,EAAE,GAAG,CAAA;YACP,GAAG,EAAE,SAAS;gBAAE,EAAE,EAAE,OAAO,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,GAAG,CAAA;aAAE,EAAE,CAAA;SAC1D,CAAA;QACD,OAAO,EAAE;YACP,EAAE,EAAE,GAAG,CAAA;YACP,GAAG,EAAE,SAAS;gBAAE,EAAE,EAAE,OAAO,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,GAAG,CAAA;aAAE,EAAE,CAAA;SAC1D,CAAA;QACD,CAAC,EAAE,GAAG,CAAA;KACP,CAAA;CACF;AA+ED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,GAAG,CA2EL;AAED,eAAO,MAAM,4BAA4B,EAAE,OACG,CAAA;AAE9C,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,kBAAkB,GACzB,GAAG,CA2FL"}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PERMIT2_CLAIM_POLICY_ADDRESS = void 0;
4
+ exports.buildPermit2ClaimPolicyCalldata = buildPermit2ClaimPolicyCalldata;
5
+ exports.encodePermit2ClaimPolicyInitData = encodePermit2ClaimPolicyInitData;
6
+ const viem_1 = require("viem");
7
+ const types_1 = require("./types");
8
+ // EIP-712 type definitions for Permit2/Mandate struct encoding.
9
+ // Note: the token-out struct is named 'Token' in the Solidity contract (matching the
10
+ // signed Permit2 message types in execution/permit2.ts).
11
+ const PERMIT2_TYPES = {
12
+ TokenPermissions: [
13
+ { name: 'token', type: 'address' },
14
+ { name: 'amount', type: 'uint256' },
15
+ ],
16
+ Token: [
17
+ { name: 'token', type: 'address' },
18
+ { name: 'amount', type: 'uint256' },
19
+ ],
20
+ Ops: [
21
+ { name: 'to', type: 'address' },
22
+ { name: 'value', type: 'uint256' },
23
+ { name: 'data', type: 'bytes' },
24
+ ],
25
+ Op: [
26
+ { name: 'vt', type: 'bytes32' },
27
+ { name: 'ops', type: 'Ops[]' },
28
+ ],
29
+ Target: [
30
+ { name: 'recipient', type: 'address' },
31
+ { name: 'tokenOut', type: 'Token[]' },
32
+ { name: 'targetChain', type: 'uint256' },
33
+ { name: 'fillExpiry', type: 'uint256' },
34
+ ],
35
+ Mandate: [
36
+ { name: 'target', type: 'Target' },
37
+ { name: 'minGas', type: 'uint128' },
38
+ { name: 'originOps', type: 'Op' },
39
+ { name: 'destOps', type: 'Op' },
40
+ { name: 'q', type: 'bytes32' },
41
+ ],
42
+ };
43
+ // --- EIP-712 hash helpers ---
44
+ function hashArray(hashes) {
45
+ return (0, viem_1.keccak256)(hashes.length > 0 ? (0, viem_1.concat)(hashes) : '0x');
46
+ }
47
+ function hashTokenPermissionsArray(permitted) {
48
+ return hashArray(permitted.map(({ token, amount }) => (0, viem_1.hashStruct)({
49
+ primaryType: 'TokenPermissions',
50
+ types: PERMIT2_TYPES,
51
+ data: { token, amount },
52
+ })));
53
+ }
54
+ function hashTokenOutArray(tokenOut) {
55
+ return hashArray(tokenOut.map(({ token, amount }) => (0, viem_1.hashStruct)({
56
+ primaryType: 'Token',
57
+ types: PERMIT2_TYPES,
58
+ data: { token, amount },
59
+ })));
60
+ }
61
+ function hashOpStruct(op) {
62
+ return (0, viem_1.hashStruct)({
63
+ primaryType: 'Op',
64
+ types: PERMIT2_TYPES,
65
+ data: { vt: op.vt, ops: Array.from(op.ops) },
66
+ });
67
+ }
68
+ function hashMandateStruct(mandate) {
69
+ return (0, viem_1.hashStruct)({
70
+ primaryType: 'Mandate',
71
+ types: PERMIT2_TYPES,
72
+ data: {
73
+ target: {
74
+ recipient: mandate.target.recipient,
75
+ tokenOut: Array.from(mandate.target.tokenOut),
76
+ targetChain: mandate.target.targetChain,
77
+ fillExpiry: mandate.target.fillExpiry,
78
+ },
79
+ minGas: mandate.minGas,
80
+ originOps: {
81
+ vt: mandate.originOps.vt,
82
+ ops: Array.from(mandate.originOps.ops),
83
+ },
84
+ destOps: { vt: mandate.destOps.vt, ops: Array.from(mandate.destOps.ops) },
85
+ q: mandate.q,
86
+ },
87
+ });
88
+ }
89
+ // --- Token array encoding helpers ---
90
+ /** Encodes a token+amount pair as [token_as_uint256:32][amount:32] (64 bytes) */
91
+ function encodeTokenEntry(token, amount) {
92
+ return (0, viem_1.encodeAbiParameters)([{ type: 'address' }, { type: 'uint256' }], [token, amount]);
93
+ }
94
+ /**
95
+ * Builds the policySpecificData calldata for a Permit2ClaimPolicy EIP-1271 check.
96
+ *
97
+ * Format (derived from Permit2ClaimPolicy.sol calldata layout):
98
+ * Header: [spender:20][nonce:32][deadline:32]
99
+ * TokenIn: expanded [count:1][token:32][amount:32]... OR pre-computed hash [32]
100
+ * Mandate: if any target check enabled — expanded target + minGas:16 + ops hashes + q
101
+ * else — pre-computed mandateHash [32]
102
+ *
103
+ */
104
+ function buildPermit2ClaimPolicyCalldata(policy, message) {
105
+ const tokenInEnabled = !!policy.tokensIn?.length;
106
+ const recipientEnabled = !!policy.recipients?.length;
107
+ const fillExpiryEnabled = !!policy.fillExpiryBounds?.length;
108
+ const tokenOutEnabled = !!policy.tokensOut?.length;
109
+ const recipientIsSponsorEnabled = !!policy.recipientIsSponsor;
110
+ // hasAnyTargetCheck mirrors the Solidity MASK_TARGET_CHECKS logic for our supported fields
111
+ const hasAnyTargetCheck = recipientEnabled ||
112
+ fillExpiryEnabled ||
113
+ tokenOutEnabled ||
114
+ recipientIsSponsorEnabled;
115
+ const parts = [];
116
+ // Header: [spender:20][nonce:32][deadline:32] (spender == arbiter in Permit2 context)
117
+ parts.push((0, viem_1.encodePacked)(['address', 'uint256', 'uint256'], [message.spender, message.nonce, message.deadline]));
118
+ // TokenIn section
119
+ if (tokenInEnabled) {
120
+ // Expanded: [count:1][token_as_uint256:32][amount:32]...
121
+ if (message.permitted.length > 255)
122
+ throw new Error('permitted array exceeds max length of 255');
123
+ parts.push((0, viem_1.toHex)(message.permitted.length, { size: 1 }));
124
+ for (const { token, amount } of message.permitted) {
125
+ parts.push(encodeTokenEntry(token, amount));
126
+ }
127
+ }
128
+ else {
129
+ parts.push(hashTokenPermissionsArray(message.permitted));
130
+ }
131
+ // Mandate section
132
+ if (!hasAnyTargetCheck) {
133
+ // No mandate-level checks enabled — provide pre-computed mandateHash
134
+ parts.push(hashMandateStruct(message.mandate));
135
+ }
136
+ else {
137
+ // Expanded mandate: target fields + minGas + ops hashes + q
138
+ const target = message.mandate.target;
139
+ // Target: [recipient:20][targetChain:32][fillExpiry:32]
140
+ parts.push((0, viem_1.encodePacked)(['address', 'uint256', 'uint256'], [target.recipient, target.targetChain, target.fillExpiry]));
141
+ // TokenOut (inside target)
142
+ if (tokenOutEnabled) {
143
+ if (target.tokenOut.length > 255)
144
+ throw new Error('tokenOut array exceeds max length of 255');
145
+ parts.push((0, viem_1.toHex)(target.tokenOut.length, { size: 1 }));
146
+ for (const { token, amount } of target.tokenOut) {
147
+ parts.push(encodeTokenEntry(token, amount));
148
+ }
149
+ }
150
+ else {
151
+ parts.push(hashTokenOutArray(target.tokenOut));
152
+ }
153
+ // minGas: uint128 = 16 bytes
154
+ parts.push((0, viem_1.toHex)(message.mandate.minGas, { size: 16 }));
155
+ // originOpsHash and destOpsHash: always 32-byte hashes (we don't support ops checks)
156
+ parts.push(hashOpStruct(message.mandate.originOps));
157
+ parts.push(hashOpStruct(message.mandate.destOps));
158
+ // qualificationHash: q is already keccak256(qualifier.encodedVal)
159
+ parts.push(message.mandate.q);
160
+ }
161
+ return (0, viem_1.concat)(parts);
162
+ }
163
+ exports.PERMIT2_CLAIM_POLICY_ADDRESS = '0x62E3588C6d861C9f986E82EC3757434EDF16ce91';
164
+ function encodePermit2ClaimPolicyInitData(policy) {
165
+ let modeConfig = 0;
166
+ const setMode = (fieldId) => {
167
+ modeConfig |= types_1.MODE_CHECK_STORAGE << (fieldId * 2);
168
+ };
169
+ if (policy.arbiters?.length)
170
+ setMode(types_1.FIELD_ARBITER);
171
+ if (policy.expiryBounds)
172
+ setMode(types_1.FIELD_EXPIRY);
173
+ if (policy.tokensIn?.length)
174
+ setMode(types_1.FIELD_TOKEN_IN);
175
+ if (policy.recipients?.length)
176
+ setMode(types_1.FIELD_RECIPIENT);
177
+ if (policy.fillExpiryBounds?.length)
178
+ setMode(types_1.FIELD_FILL_EXPIRY);
179
+ if (policy.tokensOut?.length)
180
+ setMode(types_1.FIELD_TOKEN_OUT);
181
+ if (policy.recipientIsSponsor)
182
+ setMode(types_1.FIELD_RECIPIENT_IS_SPONSOR);
183
+ const parts = [(0, viem_1.toHex)(modeConfig, { size: 4 })];
184
+ // Arbiter: [count: 1][address: 20] each
185
+ if (policy.arbiters?.length) {
186
+ if (policy.arbiters.length > 255)
187
+ throw new Error('arbiters array exceeds max length of 255');
188
+ parts.push((0, viem_1.encodePacked)(['uint8', ...policy.arbiters.map(() => 'address')], [policy.arbiters.length, ...policy.arbiters]));
189
+ }
190
+ // Expiry: [maxExpiry: 16][minExpiry: 16] packed into uint256
191
+ if (policy.expiryBounds) {
192
+ const mask128 = (1n << 128n) - 1n;
193
+ const min = (policy.expiryBounds.min ?? 0n) & mask128;
194
+ const max = (policy.expiryBounds.max ?? viem_1.maxUint256) & mask128;
195
+ parts.push((0, viem_1.toHex)((min & mask128) | (max << 128n), { size: 32 }));
196
+ }
197
+ // TokenIn: [count: 1][chainId: 32][token: 20] each
198
+ if (policy.tokensIn?.length) {
199
+ if (policy.tokensIn.length > 255)
200
+ throw new Error('tokensIn array exceeds max length of 255');
201
+ parts.push((0, viem_1.toHex)(policy.tokensIn.length, { size: 1 }));
202
+ for (const { chainId, token } of policy.tokensIn) {
203
+ parts.push((0, viem_1.encodePacked)(['uint256', 'address'], [BigInt(chainId), token]));
204
+ }
205
+ }
206
+ // Recipient: [count: 1][chainId: 32][recipient: 20] each
207
+ if (policy.recipients?.length) {
208
+ if (policy.recipients.length > 255)
209
+ throw new Error('recipients array exceeds max length of 255');
210
+ parts.push((0, viem_1.toHex)(policy.recipients.length, { size: 1 }));
211
+ for (const { chainId, recipient } of policy.recipients) {
212
+ parts.push((0, viem_1.encodePacked)(['uint256', 'address'], [BigInt(chainId), recipient === 'any' ? types_1.ANY_ADDRESS : recipient]));
213
+ }
214
+ }
215
+ // FillExpiry: [count: 1][chainId: 32][max<<128|min packed into uint256] each
216
+ if (policy.fillExpiryBounds?.length) {
217
+ if (policy.fillExpiryBounds.length > 255)
218
+ throw new Error('fillExpiryBounds array exceeds max length of 255');
219
+ const mask128 = (1n << 128n) - 1n;
220
+ parts.push((0, viem_1.toHex)(policy.fillExpiryBounds.length, { size: 1 }));
221
+ for (const { chainId, min: fMin, max: fMax } of policy.fillExpiryBounds) {
222
+ const minVal = (fMin ?? 0n) & mask128;
223
+ const maxVal = (fMax ?? viem_1.maxUint256) & mask128;
224
+ const packed = minVal | (maxVal << 128n);
225
+ parts.push((0, viem_1.encodePacked)(['uint256', 'uint256'], [BigInt(chainId), packed]));
226
+ }
227
+ }
228
+ // TokenOut: [count: 1][chainId: 32][token: 20] each
229
+ if (policy.tokensOut?.length) {
230
+ if (policy.tokensOut.length > 255)
231
+ throw new Error('tokensOut array exceeds max length of 255');
232
+ parts.push((0, viem_1.toHex)(policy.tokensOut.length, { size: 1 }));
233
+ for (const { chainId, token } of policy.tokensOut) {
234
+ parts.push((0, viem_1.encodePacked)(['uint256', 'address'], [BigInt(chainId), token]));
235
+ }
236
+ }
237
+ // RecipientIsSponsor has no data payload — mode bit alone enables it
238
+ return (0, viem_1.concat)(parts);
239
+ }
@@ -0,0 +1,12 @@
1
+ export declare const FIELD_ARBITER = 0;
2
+ export declare const FIELD_EXPIRY = 1;
3
+ export declare const FIELD_TOKEN_IN = 2;
4
+ export declare const FIELD_RECIPIENT = 3;
5
+ export declare const FIELD_FILL_EXPIRY = 4;
6
+ export declare const FIELD_TOKEN_OUT = 5;
7
+ export declare const FIELD_ORIGIN_OPS = 6;
8
+ export declare const FIELD_DEST_OPS = 7;
9
+ export declare const FIELD_RECIPIENT_IS_SPONSOR = 9;
10
+ export declare const MODE_CHECK_STORAGE = 1;
11
+ export declare const ANY_ADDRESS: "0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF";
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/policies/claim/types.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,IAAI,CAAA;AAC9B,eAAO,MAAM,YAAY,IAAI,CAAA;AAC7B,eAAO,MAAM,cAAc,IAAI,CAAA;AAC/B,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,gBAAgB,IAAI,CAAA;AACjC,eAAO,MAAM,cAAc,IAAI,CAAA;AAE/B,eAAO,MAAM,0BAA0B,IAAI,CAAA;AAG3C,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAGnC,eAAO,MAAM,WAAW,EAAG,4CAAqD,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ANY_ADDRESS = exports.MODE_CHECK_STORAGE = exports.FIELD_RECIPIENT_IS_SPONSOR = exports.FIELD_DEST_OPS = exports.FIELD_ORIGIN_OPS = exports.FIELD_TOKEN_OUT = exports.FIELD_FILL_EXPIRY = exports.FIELD_RECIPIENT = exports.FIELD_TOKEN_IN = exports.FIELD_EXPIRY = exports.FIELD_ARBITER = void 0;
4
+ // Field IDs matching BaseDataTypes.sol
5
+ exports.FIELD_ARBITER = 0;
6
+ exports.FIELD_EXPIRY = 1;
7
+ exports.FIELD_TOKEN_IN = 2;
8
+ exports.FIELD_RECIPIENT = 3;
9
+ exports.FIELD_FILL_EXPIRY = 4;
10
+ exports.FIELD_TOKEN_OUT = 5;
11
+ exports.FIELD_ORIGIN_OPS = 6;
12
+ exports.FIELD_DEST_OPS = 7;
13
+ // Field 8 is reserved in BaseDataTypes.sol
14
+ exports.FIELD_RECIPIENT_IS_SPONSOR = 9;
15
+ // Mode values
16
+ exports.MODE_CHECK_STORAGE = 1;
17
+ // Sentinel: allows any recipient address
18
+ exports.ANY_ADDRESS = '0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF';
@@ -1,5 +1,5 @@
1
1
  import { type Address, type Hex, type TypedDataDefinition } from 'viem';
2
- import type { ProviderConfig, RhinestoneAccountConfig, RhinestoneConfig, Session, SignerSet } from '../../types';
2
+ import type { Policy, ProviderConfig, RhinestoneAccountConfig, RhinestoneConfig, Session, SessionEnableData } from '../../types';
3
3
  import { type Module } from '../common';
4
4
  import { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV } from './core';
5
5
  interface SessionData {
@@ -164,9 +164,23 @@ 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 function packSignature(signers: SignerSet & {
167
+ declare const DUMMY_PRECLAIMOP_TARGET: Address;
168
+ declare const DUMMY_PRECLAIMOP_SELECTOR: Hex;
169
+ declare const SPENDING_LIMITS_POLICY_ADDRESS: Address;
170
+ declare const TIME_FRAME_POLICY_ADDRESS: Address;
171
+ declare const SUDO_POLICY_ADDRESS: Address;
172
+ declare const UNIVERSAL_ACTION_POLICY_ADDRESS: Address;
173
+ declare const USAGE_LIMIT_POLICY_ADDRESS: Address;
174
+ declare const VALUE_LIMIT_POLICY_ADDRESS: Address;
175
+ declare const INTENT_EXECUTION_POLICY_ADDRESS: Address;
176
+ interface ResolvedSessionSignerSet {
168
177
  type: 'experimental_session';
169
- }, validatorSignature: Hex): Hex;
178
+ session: Session;
179
+ enableData?: SessionEnableData;
180
+ verifyExecutions: boolean;
181
+ claimPolicyData?: Hex;
182
+ }
183
+ declare function packSignature(signers: ResolvedSessionSignerSet, validatorSignature: Hex): Hex;
170
184
  declare function getSessionDetails(account: Address, sessions: Session[], provider: ProviderConfig | undefined, useDevContracts?: boolean): Promise<SessionDetails>;
171
185
  declare function isSessionEnabled(account: Address, provider: ProviderConfig | undefined, session: Session, useDevContracts?: boolean): Promise<boolean>;
172
186
  declare function signEnableSession(config: RhinestoneAccountConfig, details: SessionDetails): Promise<Hex>;
@@ -177,8 +191,9 @@ declare function getEnableSessionCall(account: Address, session: Session, enable
177
191
  to: `0x${string}`;
178
192
  data: `0x${string}`;
179
193
  }>;
180
- declare function getSessionData(session: Session): SessionData;
194
+ declare function getSessionData(session: Session, useDevContracts?: boolean): SessionData;
181
195
  declare function getPermissionId(session: Session): `0x${string}`;
196
+ declare function getPolicyData(policy: Policy, useDevContracts?: boolean): PolicyData;
182
197
  declare function getSmartSessionValidator(config: RhinestoneConfig): Module | null;
183
198
  /**
184
199
  * Builds a mockSignature for SSX validation gas estimation.
@@ -188,7 +203,7 @@ declare function getSmartSessionValidator(config: RhinestoneConfig): Module | nu
188
203
  * The orchestrator slices off the first 20 bytes to identify the validator, then
189
204
  * simulates verifyExecution with the mock emissary to estimate gas before the user signs.
190
205
  */
191
- declare function buildMockSignature(session: Session, useDevContracts?: boolean, chainCount?: number): Hex;
192
- 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, packSignature, getSessionData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, isSessionEnabled, signEnableSession, buildMockSignature, };
193
- export type { ChainSession, ChainDigest, SessionData, SmartSessionModeType, SessionDetails, };
206
+ declare function buildMockSignature(session: Session, useDevContracts?: boolean, chainCount?: number, targetChainId?: number): Hex;
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, };
208
+ export type { ChainSession, ChainDigest, ResolvedSessionSignerSet, SessionData, SmartSessionModeType, SessionDetails, };
194
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,9 +3,10 @@ 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.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
+ exports.getPolicyData = getPolicyData;
9
10
  exports.getEnableSessionCall = getEnableSessionCall;
10
11
  exports.getPermissionId = getPermissionId;
11
12
  exports.getSmartSessionValidator = getSmartSessionValidator;
@@ -16,15 +17,18 @@ exports.buildMockSignature = buildMockSignature;
16
17
  const solady_1 = require("solady");
17
18
  const viem_1 = require("viem");
18
19
  const chains_1 = require("viem/chains");
20
+ const accounts_1 = require("../../accounts");
21
+ const startale_1 = require("../../accounts/startale");
19
22
  const utils_1 = require("../../accounts/utils");
20
23
  const compact_1 = require("../../execution/compact");
21
24
  const utils_2 = require("../../execution/utils");
22
- const orchestrator_1 = require("../../orchestrator");
25
+ const registry_1 = require("../../orchestrator/registry");
23
26
  const smart_session_emissary_1 = __importDefault(require("../abi/smart-session-emissary"));
24
27
  const common_1 = require("../common");
25
28
  const core_1 = require("./core");
26
29
  Object.defineProperty(exports, "SMART_SESSION_EMISSARY_ADDRESS", { enumerable: true, get: function () { return core_1.SMART_SESSION_EMISSARY_ADDRESS; } });
27
30
  Object.defineProperty(exports, "SMART_SESSION_EMISSARY_ADDRESS_DEV", { enumerable: true, get: function () { return core_1.SMART_SESSION_EMISSARY_ADDRESS_DEV; } });
31
+ const permit2_1 = require("./policies/claim/permit2");
28
32
  const types = {
29
33
  PolicyData: [
30
34
  { name: 'policy', type: 'address' },
@@ -77,13 +81,30 @@ const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = '0x00000001';
77
81
  exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG;
78
82
  const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = '0x00000002';
79
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...0420 is the ecRecover precompile; calls to it fail
87
+ // silently because preclaimops are failure-tolerant. Selector 0x69123456 is
88
+ // intentionally uncommon.
89
+ const DUMMY_PRECLAIMOP_TARGET = '0x0000000000000000000000000000000000000420';
90
+ exports.DUMMY_PRECLAIMOP_TARGET = DUMMY_PRECLAIMOP_TARGET;
91
+ const DUMMY_PRECLAIMOP_SELECTOR = '0x69123456';
92
+ exports.DUMMY_PRECLAIMOP_SELECTOR = DUMMY_PRECLAIMOP_SELECTOR;
80
93
  const SPENDING_LIMITS_POLICY_ADDRESS = '0x00000088d48cf102a8cdb0137a9b173f957c6343';
94
+ exports.SPENDING_LIMITS_POLICY_ADDRESS = SPENDING_LIMITS_POLICY_ADDRESS;
81
95
  const TIME_FRAME_POLICY_ADDRESS = '0x8177451511de0577b911c254e9551d981c26dc72';
96
+ exports.TIME_FRAME_POLICY_ADDRESS = TIME_FRAME_POLICY_ADDRESS;
82
97
  const SUDO_POLICY_ADDRESS = '0x0000003111cd8e92337c100f22b7a9dbf8dee301';
98
+ exports.SUDO_POLICY_ADDRESS = SUDO_POLICY_ADDRESS;
83
99
  const UNIVERSAL_ACTION_POLICY_ADDRESS = '0x0000006dda6c463511c4e9b05cfc34c1247fcf1f';
100
+ exports.UNIVERSAL_ACTION_POLICY_ADDRESS = UNIVERSAL_ACTION_POLICY_ADDRESS;
84
101
  const USAGE_LIMIT_POLICY_ADDRESS = '0x1f34ef8311345a3a4a4566af321b313052f51493';
102
+ exports.USAGE_LIMIT_POLICY_ADDRESS = USAGE_LIMIT_POLICY_ADDRESS;
85
103
  const VALUE_LIMIT_POLICY_ADDRESS = '0x730da93267e7e513e932301b47f2ac7d062abc83';
86
- const INTENT_EXECUTION_POLICY_ADDRESS = '0xa09b47de6e510cbdc18b97e9239bedcb44fb4901';
104
+ exports.VALUE_LIMIT_POLICY_ADDRESS = VALUE_LIMIT_POLICY_ADDRESS;
105
+ const INTENT_EXECUTION_POLICY_ADDRESS = '0xe9eA54d063975cDee9e06b7636d5563d95a7A23C';
106
+ exports.INTENT_EXECUTION_POLICY_ADDRESS = INTENT_EXECUTION_POLICY_ADDRESS;
107
+ const INTENT_EXECUTION_POLICY_ADDRESS_DEV = '0xa09b47de6e510cbdc18b97e9239bedcb44fb4901';
87
108
  const ACTION_CONDITION_EQUAL = 0;
88
109
  const ACTION_CONDITION_GREATER_THAN = 1;
89
110
  const ACTION_CONDITION_LESS_THAN = 2;
@@ -225,7 +246,7 @@ function packSignature(signers, validatorSignature) {
225
246
  const SIGNATURE_IS_VALID_SIG_1271 = '0x00';
226
247
  const policyDataOffset = BigInt(64 + (0, viem_1.size)(validatorSignature));
227
248
  const mode = SIGNATURE_IS_VALID_SIG_1271;
228
- const policySpecificData = '0x';
249
+ const policySpecificData = signers.claimPolicyData ?? '0x';
229
250
  const signature = (0, viem_1.encodePacked)(['bytes1', 'bytes32', 'uint256', 'bytes', 'bytes'], [
230
251
  mode,
231
252
  permissionId,
@@ -239,7 +260,7 @@ function packSignature(signers, validatorSignature) {
239
260
  async function getSessionDetails(account, sessions, provider, useDevContracts) {
240
261
  const lockTag = '0x000000000000000000000000';
241
262
  const sessionNonces = await Promise.all(sessions.map((session) => getSessionNonce(account, session, lockTag, provider, useDevContracts)));
242
- const sessionDatas = sessions.map((session) => getSessionData(session));
263
+ const sessionDatas = sessions.map((session) => getSessionData(session, useDevContracts));
243
264
  const signedSessions = sessionDatas.map((session, index) => getSignedSession(account, lockTag, session, sessionNonces[index], useDevContracts));
244
265
  const chains = sessions.map((session) => session.chain);
245
266
  const hashesAndChainIds = signedSessions.map((session, index) => ({
@@ -295,6 +316,22 @@ async function isSessionEnabled(account, provider, session, useDevContracts) {
295
316
  return isEnabled;
296
317
  }
297
318
  async function signEnableSession(config, details) {
319
+ const account = (0, accounts_1.getAccountProvider)(config);
320
+ const validator = (0, core_1.getOwnerValidator)(config);
321
+ const isStartaleK1 = account.type === 'startale' &&
322
+ validator.address.toLowerCase() ===
323
+ startale_1.K1_DEFAULT_VALIDATOR_ADDRESS.toLowerCase();
324
+ if (isStartaleK1) {
325
+ const chainIds = details.hashesAndChainIds.map((h) => h.chainId);
326
+ const uniqueChainIds = [...new Set(chainIds.map((c) => c.toString()))];
327
+ if (uniqueChainIds.length > 1) {
328
+ throw new Error('Startale accounts with K1 validator do not support multi-chain session enable');
329
+ }
330
+ const chain = (0, registry_1.getChainById)(Number(chainIds[0]));
331
+ return (0, utils_2.signTypedData)(config, details.data, chain, undefined, {
332
+ skipErc6492: true,
333
+ });
334
+ }
298
335
  return (0, utils_2.signTypedData)(config, details.data, chains_1.mainnet, undefined, {
299
336
  skipErc6492: true,
300
337
  });
@@ -352,7 +389,7 @@ function getSignedSession(account, lockTag, session, nonce, useDevContracts) {
352
389
  };
353
390
  }
354
391
  async function getEnableSessionCall(account, session, enableSessionSignature, hashesAndChainIds, sessionToEnableIndex, useDevContracts) {
355
- const sessionData = getSessionData(session);
392
+ const sessionData = getSessionData(session, useDevContracts);
356
393
  const permissionId = getPermissionId(session);
357
394
  return {
358
395
  to: getSmartSessionEmissaryAddress(useDevContracts),
@@ -381,7 +418,7 @@ async function getEnableSessionCall(account, session, enableSessionSignature, ha
381
418
  }),
382
419
  };
383
420
  }
384
- function getSessionData(session) {
421
+ function getSessionData(session, useDevContracts) {
385
422
  const validator = (0, core_1.getValidator)(session.owners);
386
423
  const allowedContent = [
387
424
  {
@@ -408,10 +445,11 @@ function getSessionData(session) {
408
445
  },
409
446
  ],
410
447
  };
448
+ const userHasFallbackAction = session.actions?.some((action) => !('target' in action) && !('selector' in action));
411
449
  const injectedActions = [
412
- // ETH wrapping
450
+ // Native token wrapping
413
451
  {
414
- target: (0, orchestrator_1.getTokenAddress)('WETH', session.chain.id),
452
+ target: (0, registry_1.getWrappedTokenAddress)(session.chain),
415
453
  selector: (0, viem_1.toFunctionSelector)({
416
454
  type: 'function',
417
455
  name: 'deposit',
@@ -420,15 +458,22 @@ function getSessionData(session) {
420
458
  stateMutability: 'payable',
421
459
  }),
422
460
  },
461
+ // Only inject the intent-execution fallback if the user hasn't defined their own
462
+ // fallback action — otherwise both map to the same actionId and their policies merge,
463
+ // causing IntentExecutionPolicy to be required for all fallback calls
464
+ ...(!userHasFallbackAction
465
+ ? [{ policies: [{ type: 'intent-execution' }] }]
466
+ : []),
467
+ // Dummy action: allows the filler to call verifyExecution in ENABLE mode using
468
+ // an injected dummy preclaimop so any session can be enabled on-chain without
469
+ // a separate UserOp, regardless of whether it has claim or action policies.
423
470
  {
424
- policies: [
425
- {
426
- type: 'intent-execution',
427
- },
428
- ],
471
+ target: DUMMY_PRECLAIMOP_TARGET,
472
+ selector: DUMMY_PRECLAIMOP_SELECTOR,
473
+ policies: [{ type: 'sudo' }],
429
474
  },
430
475
  ];
431
- const actions = session.actions
476
+ const actions = session.actions?.length
432
477
  ? [...session.actions, ...injectedActions].map((action) => ({
433
478
  actionTargetSelector: 'selector' in action
434
479
  ? action.selector
@@ -436,7 +481,7 @@ function getSessionData(session) {
436
481
  actionTarget: 'target' in action
437
482
  ? action.target
438
483
  : SMART_SESSIONS_FALLBACK_TARGET_FLAG,
439
- actionPolicies: action.policies?.map((policy) => getPolicyData(policy)) ?? [
484
+ actionPolicies: action.policies?.map((policy) => getPolicyData(policy, useDevContracts)) ?? [
440
485
  {
441
486
  policy: SUDO_POLICY_ADDRESS,
442
487
  initData: '0x',
@@ -450,7 +495,11 @@ function getSessionData(session) {
450
495
  sessionValidatorInitData: validator.initData,
451
496
  erc7739Policies: erc7739Data,
452
497
  actions,
453
- claimPolicies: [],
498
+ // Note: Permit2ClaimPolicy has no dev deployment — same address in all environments
499
+ claimPolicies: session.claimPolicies?.map((p) => ({
500
+ policy: permit2_1.PERMIT2_CLAIM_POLICY_ADDRESS,
501
+ initData: (0, permit2_1.encodePermit2ClaimPolicyInitData)(p),
502
+ })) ?? [],
454
503
  };
455
504
  }
456
505
  function getPermissionId(session) {
@@ -474,7 +523,7 @@ function getPermissionId(session) {
474
523
  sessionData.salt,
475
524
  ]));
476
525
  }
477
- function getPolicyData(policy) {
526
+ function getPolicyData(policy, useDevContracts) {
478
527
  switch (policy.type) {
479
528
  case 'sudo':
480
529
  return {
@@ -483,7 +532,9 @@ function getPolicyData(policy) {
483
532
  };
484
533
  case 'intent-execution':
485
534
  return {
486
- policy: INTENT_EXECUTION_POLICY_ADDRESS,
535
+ policy: useDevContracts
536
+ ? INTENT_EXECUTION_POLICY_ADDRESS_DEV
537
+ : INTENT_EXECUTION_POLICY_ADDRESS,
487
538
  initData: '0x',
488
539
  };
489
540
  case 'universal-action': {
@@ -659,13 +710,22 @@ function getSmartSessionEmissaryAddress(useDevContracts) {
659
710
  * The orchestrator slices off the first 20 bytes to identify the validator, then
660
711
  * simulates verifyExecution with the mock emissary to estimate gas before the user signs.
661
712
  */
662
- function buildMockSignature(session, useDevContracts, chainCount = 1) {
713
+ function buildMockSignature(session, useDevContracts, chainCount = 1, targetChainId) {
663
714
  const emissaryAddress = getSmartSessionEmissaryAddress(useDevContracts);
715
+ // Use targetChainId when provided (per-chain mockSignatures path) so the
716
+ // mock emissary's chainId check passes on the correct chain. Falls back to
717
+ // session.chain.id for the global mockSignature (single-chain path).
718
+ const primaryChainId = targetChainId ?? session.chain.id;
719
+ // Normalize chainCount to a finite positive integer. Guards against
720
+ // accidental NaN/undefined from caller (e.g. `sourceChains?.length` when
721
+ // sourceChains is undefined) which would otherwise make Array.from produce
722
+ // an empty array and silently drop the ChainId check.
723
+ const safeChainCount = Number.isFinite(chainCount) && chainCount > 0 ? Math.floor(chainCount) : 1;
664
724
  // Build one entry per chain — first entry is the real chain ID (for the ChainId check),
665
725
  // remaining entries use chainId 0 as placeholders. Hash mismatch is skipped by the
666
726
  // mock emissary, so sessionDigest can be zeroHash throughout.
667
- const hashesAndChainIds = Array.from({ length: Math.max(1, chainCount) }, (_, i) => ({
668
- chainId: i === 0 ? BigInt(session.chain.id) : 0n,
727
+ const hashesAndChainIds = Array.from({ length: safeChainCount }, (_, i) => ({
728
+ chainId: i === 0 ? BigInt(primaryChainId) : 0n,
669
729
  sessionDigest: viem_1.zeroHash,
670
730
  }));
671
731
  const dummySigners = {
@@ -1,10 +1,11 @@
1
1
  import type { Address } from 'viem';
2
+ import type { AuthProvider } from '../auth/provider';
2
3
  import type { IntentInput, IntentOpStatus, IntentResult, IntentRoute, Portfolio, SignedIntentOp, SplitIntentsInput, SplitIntentsResult } from './types';
3
4
  export declare class Orchestrator {
4
5
  private serverUrl;
5
- private apiKey?;
6
- private headers?;
7
- constructor(serverUrl: string, apiKey?: string, headers?: Record<string, string>);
6
+ private authProvider;
7
+ private extraHeaders?;
8
+ constructor(serverUrl: string, authProvider: AuthProvider, headers?: Record<string, string>);
8
9
  getPortfolio(userAddress: Address, filter?: {
9
10
  chainIds?: number[];
10
11
  tokens?: {
@@ -13,9 +14,13 @@ export declare class Orchestrator {
13
14
  }): Promise<Portfolio>;
14
15
  getIntentRoute(input: IntentInput): Promise<IntentRoute>;
15
16
  splitIntents(input: SplitIntentsInput): Promise<SplitIntentsResult>;
16
- submitIntent(signedIntentOpUnformatted: SignedIntentOp, dryRun: boolean): Promise<IntentResult>;
17
+ submitIntent(signedIntentOpUnformatted: SignedIntentOp, dryRun: boolean, policyContext?: {
18
+ intentInput: unknown;
19
+ isSponsored: boolean;
20
+ }): Promise<IntentResult>;
17
21
  getIntentOpStatus(intentId: bigint): Promise<IntentOpStatus>;
18
22
  private getHeaders;
23
+ private getSubmitHeaders;
19
24
  private fetch;
20
25
  private parseError;
21
26
  private parseErrorMessage;
@@ -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;AA2BnC,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;IACvB,OAAO,CAAC,OAAO,CAAC,CAAwB;gBAGtC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO5B,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;IASxD,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;IAelB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IASlE,OAAO,CAAC,UAAU;YAWJ,KAAK;IA6BnB,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;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AA2BpD,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,YAAY,CAAc;IAClC,OAAO,CAAC,YAAY,CAAC,CAAwB;gBAG3C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO5B,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;IASxD,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwDnE,YAAY,CAChB,yBAAyB,EAAE,cAAc,EACzC,MAAM,EAAE,OAAO,EACf,aAAa,CAAC,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,GAC7D,OAAO,CAAC,YAAY,CAAC;IAqBlB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YASpD,UAAU;YAWV,gBAAgB;YAgBhB,KAAK;IA6BnB,OAAO,CAAC,UAAU;IA6GlB,OAAO,CAAC,iBAAiB;CAmG1B"}