@rhinestone/sdk 1.4.2 → 2.0.0-beta.0

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 (202) hide show
  1. package/README.md +89 -1
  2. package/dist/src/accounts/error.d.ts +1 -1
  3. package/dist/src/accounts/error.js +1 -19
  4. package/dist/src/accounts/index.d.ts +5 -5
  5. package/dist/src/accounts/index.js +121 -157
  6. package/dist/src/accounts/json-rpc/index.d.ts +1 -1
  7. package/dist/src/accounts/json-rpc/index.js +8 -10
  8. package/dist/src/accounts/json-rpc/providers.d.ts +1 -1
  9. package/dist/src/accounts/json-rpc/providers.js +4 -7
  10. package/dist/src/accounts/kernel.d.ts +3 -3
  11. package/dist/src/accounts/kernel.js +66 -75
  12. package/dist/src/accounts/nexus.d.ts +3 -3
  13. package/dist/src/accounts/nexus.js +62 -73
  14. package/dist/src/accounts/passport.d.ts +3 -3
  15. package/dist/src/accounts/passport.js +9 -13
  16. package/dist/src/accounts/safe.d.ts +3 -3
  17. package/dist/src/accounts/safe.js +54 -63
  18. package/dist/src/accounts/signing/common.d.ts +10 -4
  19. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  20. package/dist/src/accounts/signing/common.js +30 -36
  21. package/dist/src/accounts/signing/message.d.ts +2 -2
  22. package/dist/src/accounts/signing/message.js +10 -12
  23. package/dist/src/accounts/signing/passkeys.js +11 -17
  24. package/dist/src/accounts/signing/typedData.d.ts +1 -1
  25. package/dist/src/accounts/signing/typedData.js +6 -8
  26. package/dist/src/accounts/startale.d.ts +3 -3
  27. package/dist/src/accounts/startale.js +37 -47
  28. package/dist/src/accounts/utils.d.ts +2 -2
  29. package/dist/src/accounts/utils.js +22 -28
  30. package/dist/src/accounts/walletClient.js +4 -8
  31. package/dist/src/actions/compact.d.ts +1 -1
  32. package/dist/src/actions/compact.js +22 -35
  33. package/dist/src/actions/deployment.d.ts +1 -1
  34. package/dist/src/actions/deployment.js +11 -13
  35. package/dist/src/actions/ecdsa.d.ts +1 -1
  36. package/dist/src/actions/ecdsa.js +14 -20
  37. package/dist/src/actions/index.d.ts +2 -2
  38. package/dist/src/actions/index.js +6 -10
  39. package/dist/src/actions/mfa.d.ts +1 -1
  40. package/dist/src/actions/mfa.js +18 -24
  41. package/dist/src/actions/passkeys.d.ts +2 -2
  42. package/dist/src/actions/passkeys.js +14 -20
  43. package/dist/src/actions/recovery.d.ts +1 -1
  44. package/dist/src/actions/recovery.js +25 -29
  45. package/dist/src/actions/smart-sessions.d.ts +1 -1
  46. package/dist/src/actions/smart-sessions.js +8 -12
  47. package/dist/src/auth/provider.d.ts +7 -0
  48. package/dist/src/auth/provider.d.ts.map +1 -0
  49. package/dist/src/auth/provider.js +38 -0
  50. package/dist/src/errors/index.d.ts +3 -3
  51. package/dist/src/errors/index.js +10 -54
  52. package/dist/src/execution/compact.d.ts +3 -3
  53. package/dist/src/execution/compact.js +10 -18
  54. package/dist/src/execution/error.js +1 -11
  55. package/dist/src/execution/index.d.ts +9 -8
  56. package/dist/src/execution/index.d.ts.map +1 -1
  57. package/dist/src/execution/index.js +54 -67
  58. package/dist/src/execution/permit2.d.ts +5 -5
  59. package/dist/src/execution/permit2.js +8 -13
  60. package/dist/src/execution/singleChainOps.d.ts +2 -2
  61. package/dist/src/execution/singleChainOps.js +1 -3
  62. package/dist/src/execution/types.d.ts +1 -1
  63. package/dist/src/execution/types.js +1 -2
  64. package/dist/src/execution/utils.d.ts +10 -6
  65. package/dist/src/execution/utils.d.ts.map +1 -1
  66. package/dist/src/execution/utils.js +159 -162
  67. package/dist/src/index.d.ts +10 -10
  68. package/dist/src/index.d.ts.map +1 -1
  69. package/dist/src/index.js +57 -67
  70. package/dist/src/jwt-server/digest.d.ts +11 -0
  71. package/dist/src/jwt-server/digest.d.ts.map +1 -0
  72. package/dist/src/jwt-server/digest.js +19 -0
  73. package/dist/src/jwt-server/express.d.ts +16 -0
  74. package/dist/src/jwt-server/express.d.ts.map +1 -0
  75. package/dist/src/jwt-server/express.js +23 -0
  76. package/dist/src/jwt-server/handlers.d.ts +10 -0
  77. package/dist/src/jwt-server/handlers.d.ts.map +1 -0
  78. package/dist/src/jwt-server/handlers.js +37 -0
  79. package/dist/src/jwt-server/index.d.ts +8 -0
  80. package/dist/src/jwt-server/index.d.ts.map +1 -0
  81. package/dist/src/jwt-server/index.js +7 -0
  82. package/dist/src/jwt-server/jcs.d.ts +12 -0
  83. package/dist/src/jwt-server/jcs.d.ts.map +1 -0
  84. package/dist/src/jwt-server/jcs.js +57 -0
  85. package/dist/src/jwt-server/signer.d.ts +18 -0
  86. package/dist/src/jwt-server/signer.d.ts.map +1 -0
  87. package/dist/src/jwt-server/signer.js +68 -0
  88. package/dist/src/jwt-server/sponsorship.d.ts +19 -0
  89. package/dist/src/jwt-server/sponsorship.d.ts.map +1 -0
  90. package/dist/src/jwt-server/sponsorship.js +51 -0
  91. package/dist/src/jwt-server/web.d.ts +4 -0
  92. package/dist/src/jwt-server/web.d.ts.map +1 -0
  93. package/dist/src/jwt-server/web.js +23 -0
  94. package/dist/src/modules/abi/smart-session-emissary.js +1 -3
  95. package/dist/src/modules/abi/smart-sessions.js +1 -4
  96. package/dist/src/modules/chain-abstraction.js +1 -5
  97. package/dist/src/modules/common.d.ts +1 -1
  98. package/dist/src/modules/common.js +1 -13
  99. package/dist/src/modules/index.d.ts +5 -5
  100. package/dist/src/modules/index.js +35 -50
  101. package/dist/src/modules/legacy.d.ts +2 -2
  102. package/dist/src/modules/legacy.js +11 -14
  103. package/dist/src/modules/read.d.ts +1 -1
  104. package/dist/src/modules/read.js +11 -15
  105. package/dist/src/modules/validators/core.d.ts +2 -2
  106. package/dist/src/modules/validators/core.js +26 -44
  107. package/dist/src/modules/validators/index.d.ts +2 -2
  108. package/dist/src/modules/validators/index.js +3 -19
  109. package/dist/src/modules/validators/policies/claim/permit2.d.ts +1 -1
  110. package/dist/src/modules/validators/policies/claim/permit2.js +39 -44
  111. package/dist/src/modules/validators/policies/claim/types.js +11 -14
  112. package/dist/src/modules/validators/smart-sessions.d.ts +4 -4
  113. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  114. package/dist/src/modules/validators/smart-sessions.js +77 -97
  115. package/dist/src/orchestrator/client.d.ts +10 -5
  116. package/dist/src/orchestrator/client.d.ts.map +1 -1
  117. package/dist/src/orchestrator/client.js +73 -66
  118. package/dist/src/orchestrator/consts.d.ts +1 -1
  119. package/dist/src/orchestrator/consts.d.ts.map +1 -1
  120. package/dist/src/orchestrator/consts.js +2 -8
  121. package/dist/src/orchestrator/error.js +1 -33
  122. package/dist/src/orchestrator/index.d.ts +8 -7
  123. package/dist/src/orchestrator/index.d.ts.map +1 -1
  124. package/dist/src/orchestrator/index.js +8 -57
  125. package/dist/src/orchestrator/registry.d.ts +2 -2
  126. package/dist/src/orchestrator/registry.js +19 -33
  127. package/dist/src/orchestrator/types.d.ts +5 -1
  128. package/dist/src/orchestrator/types.d.ts.map +1 -1
  129. package/dist/src/orchestrator/types.js +1 -17
  130. package/dist/src/orchestrator/utils.js +1 -3
  131. package/dist/src/types.d.ts +29 -5
  132. package/dist/src/types.d.ts.map +1 -1
  133. package/dist/src/types.js +1 -2
  134. package/dist/src/utils/index.d.ts +2 -2
  135. package/dist/src/utils/index.js +9 -15
  136. package/package.json +29 -98
  137. package/dist/src/accounts/index.test.d.ts +0 -2
  138. package/dist/src/accounts/index.test.d.ts.map +0 -1
  139. package/dist/src/accounts/index.test.js +0 -33
  140. package/dist/src/accounts/json-rpc/index.test.d.ts +0 -2
  141. package/dist/src/accounts/json-rpc/index.test.d.ts.map +0 -1
  142. package/dist/src/accounts/json-rpc/index.test.js +0 -35
  143. package/dist/src/accounts/json-rpc/providers.test.d.ts +0 -2
  144. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +0 -1
  145. package/dist/src/accounts/json-rpc/providers.test.js +0 -43
  146. package/dist/src/accounts/kernel.test.d.ts +0 -2
  147. package/dist/src/accounts/kernel.test.d.ts.map +0 -1
  148. package/dist/src/accounts/kernel.test.js +0 -132
  149. package/dist/src/accounts/nexus.test.d.ts +0 -2
  150. package/dist/src/accounts/nexus.test.d.ts.map +0 -1
  151. package/dist/src/accounts/nexus.test.js +0 -118
  152. package/dist/src/accounts/safe.test.d.ts +0 -2
  153. package/dist/src/accounts/safe.test.d.ts.map +0 -1
  154. package/dist/src/accounts/safe.test.js +0 -168
  155. package/dist/src/accounts/signing/passkeys.test.d.ts +0 -2
  156. package/dist/src/accounts/signing/passkeys.test.d.ts.map +0 -1
  157. package/dist/src/accounts/signing/passkeys.test.js +0 -88
  158. package/dist/src/accounts/startale.test.d.ts +0 -2
  159. package/dist/src/accounts/startale.test.d.ts.map +0 -1
  160. package/dist/src/accounts/startale.test.js +0 -189
  161. package/dist/src/accounts/utils.test.d.ts +0 -2
  162. package/dist/src/accounts/utils.test.d.ts.map +0 -1
  163. package/dist/src/accounts/utils.test.js +0 -49
  164. package/dist/src/actions/ecdsa.test.d.ts +0 -2
  165. package/dist/src/actions/ecdsa.test.d.ts.map +0 -1
  166. package/dist/src/actions/ecdsa.test.js +0 -99
  167. package/dist/src/actions/passkeys.test.d.ts +0 -2
  168. package/dist/src/actions/passkeys.test.d.ts.map +0 -1
  169. package/dist/src/actions/passkeys.test.js +0 -54
  170. package/dist/src/actions/recovery.test.d.ts +0 -2
  171. package/dist/src/actions/recovery.test.d.ts.map +0 -1
  172. package/dist/src/actions/recovery.test.js +0 -168
  173. package/dist/src/execution/signing.test.d.ts +0 -2
  174. package/dist/src/execution/signing.test.d.ts.map +0 -1
  175. package/dist/src/execution/signing.test.js +0 -465
  176. package/dist/src/execution/utils.test.d.ts +0 -2
  177. package/dist/src/execution/utils.test.d.ts.map +0 -1
  178. package/dist/src/execution/utils.test.js +0 -388
  179. package/dist/src/modules/index.test.d.ts +0 -2
  180. package/dist/src/modules/index.test.d.ts.map +0 -1
  181. package/dist/src/modules/index.test.js +0 -81
  182. package/dist/src/modules/validators/core.test.d.ts +0 -2
  183. package/dist/src/modules/validators/core.test.d.ts.map +0 -1
  184. package/dist/src/modules/validators/core.test.js +0 -101
  185. package/dist/src/modules/validators/policies/claim/permit2.test.d.ts +0 -2
  186. package/dist/src/modules/validators/policies/claim/permit2.test.d.ts.map +0 -1
  187. package/dist/src/modules/validators/policies/claim/permit2.test.js +0 -519
  188. package/dist/src/modules/validators/smart-sessions.test.d.ts +0 -2
  189. package/dist/src/modules/validators/smart-sessions.test.d.ts.map +0 -1
  190. package/dist/src/modules/validators/smart-sessions.test.js +0 -311
  191. package/dist/src/orchestrator/registry.test.d.ts +0 -2
  192. package/dist/src/orchestrator/registry.test.d.ts.map +0 -1
  193. package/dist/src/orchestrator/registry.test.js +0 -154
  194. package/dist/src/utils/index.test.d.ts +0 -2
  195. package/dist/src/utils/index.test.d.ts.map +0 -1
  196. package/dist/src/utils/index.test.js +0 -42
  197. package/dist/test/consts.d.ts +0 -10
  198. package/dist/test/consts.d.ts.map +0 -1
  199. package/dist/test/consts.js +0 -22
  200. package/dist/test/utils/utils.d.ts +0 -5
  201. package/dist/test/utils/utils.d.ts.map +0 -1
  202. package/dist/test/utils/utils.js +0 -20
@@ -1,34 +1,16 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.INTENT_EXECUTION_POLICY_ADDRESS = exports.VALUE_LIMIT_POLICY_ADDRESS = exports.USAGE_LIMIT_POLICY_ADDRESS = exports.UNIVERSAL_ACTION_POLICY_ADDRESS = exports.SUDO_POLICY_ADDRESS = exports.TIME_FRAME_POLICY_ADDRESS = exports.SPENDING_LIMITS_POLICY_ADDRESS = exports.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
- exports.packSignature = packSignature;
8
- exports.getSessionData = getSessionData;
9
- exports.getPolicyData = getPolicyData;
10
- exports.getEnableSessionCall = getEnableSessionCall;
11
- exports.getPermissionId = getPermissionId;
12
- exports.getSmartSessionValidator = getSmartSessionValidator;
13
- exports.getSessionDetails = getSessionDetails;
14
- exports.isSessionEnabled = isSessionEnabled;
15
- exports.signEnableSession = signEnableSession;
16
- exports.buildMockSignature = buildMockSignature;
17
- const solady_1 = require("solady");
18
- const viem_1 = require("viem");
19
- const chains_1 = require("viem/chains");
20
- const accounts_1 = require("../../accounts");
21
- const startale_1 = require("../../accounts/startale");
22
- const utils_1 = require("../../accounts/utils");
23
- const compact_1 = require("../../execution/compact");
24
- const utils_2 = require("../../execution/utils");
25
- const registry_1 = require("../../orchestrator/registry");
26
- const smart_session_emissary_1 = __importDefault(require("../abi/smart-session-emissary"));
27
- const common_1 = require("../common");
28
- const core_1 = require("./core");
29
- Object.defineProperty(exports, "SMART_SESSION_EMISSARY_ADDRESS", { enumerable: true, get: function () { return core_1.SMART_SESSION_EMISSARY_ADDRESS; } });
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");
1
+ import { LibZip } from 'solady';
2
+ import { concat, createPublicClient, encodeAbiParameters, encodeFunctionData, encodePacked, hashStruct, isHex, keccak256, maxUint256, padHex, size, toFunctionSelector, toHex, zeroAddress, zeroHash, } from 'viem';
3
+ import { mainnet } from 'viem/chains';
4
+ import { getAccountProvider } from '../../accounts/index.js';
5
+ import { K1_DEFAULT_VALIDATOR_ADDRESS } from '../../accounts/startale.js';
6
+ import { createTransport } from '../../accounts/utils.js';
7
+ import { RESET_PERIOD_ONE_WEEK, SCOPE_MULTICHAIN, } from '../../execution/compact.js';
8
+ import { signTypedData } from '../../execution/utils.js';
9
+ import { getChainById, getWrappedTokenAddress, } from '../../orchestrator/registry.js';
10
+ import smartSessionEmissaryAbi from '../abi/smart-session-emissary.js';
11
+ import { MODULE_TYPE_ID_VALIDATOR } from '../common.js';
12
+ import { getOwnerValidator, getValidator, SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, } from './core.js';
13
+ import { encodePermit2ClaimPolicyInitData, PERMIT2_CLAIM_POLICY_ADDRESS, } from './policies/claim/permit2.js';
32
14
  const types = {
33
15
  PolicyData: [
34
16
  { name: 'policy', type: 'address' },
@@ -76,11 +58,8 @@ const types = {
76
58
  const SMART_SESSION_MODE_USE = '0x00';
77
59
  const SMART_SESSION_MODE_ENABLE = '0x01';
78
60
  const SMART_SESSIONS_FALLBACK_TARGET_FLAG = '0x0000000000000000000000000000000000000001';
79
- exports.SMART_SESSIONS_FALLBACK_TARGET_FLAG = SMART_SESSIONS_FALLBACK_TARGET_FLAG;
80
61
  const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = '0x00000001';
81
- exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG = SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG;
82
62
  const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = '0x00000002';
83
- exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION = SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION;
84
63
  // Dummy preclaimop action injected into every session so that the filler can trigger
85
64
  // verifyExecution (ENABLE mode) using an injected dummy preclaimop when there are no
86
65
  // real preclaimops. Target 0x...0001 is the ecRecover precompile; calls to it fail
@@ -89,23 +68,14 @@ exports.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESS
89
68
  // SMART_SESSIONS_FALLBACK_TARGET_FLAG — that is harmless because they operate in
90
69
  // different contexts (action matching vs. literal execution target).
91
70
  const DUMMY_PRECLAIMOP_TARGET = '0x0000000000000000000000000000000000000001';
92
- exports.DUMMY_PRECLAIMOP_TARGET = DUMMY_PRECLAIMOP_TARGET;
93
71
  const DUMMY_PRECLAIMOP_SELECTOR = '0x69123456';
94
- exports.DUMMY_PRECLAIMOP_SELECTOR = DUMMY_PRECLAIMOP_SELECTOR;
95
72
  const SPENDING_LIMITS_POLICY_ADDRESS = '0x00000088d48cf102a8cdb0137a9b173f957c6343';
96
- exports.SPENDING_LIMITS_POLICY_ADDRESS = SPENDING_LIMITS_POLICY_ADDRESS;
97
73
  const TIME_FRAME_POLICY_ADDRESS = '0x8177451511de0577b911c254e9551d981c26dc72';
98
- exports.TIME_FRAME_POLICY_ADDRESS = TIME_FRAME_POLICY_ADDRESS;
99
74
  const SUDO_POLICY_ADDRESS = '0x0000003111cd8e92337c100f22b7a9dbf8dee301';
100
- exports.SUDO_POLICY_ADDRESS = SUDO_POLICY_ADDRESS;
101
75
  const UNIVERSAL_ACTION_POLICY_ADDRESS = '0x0000006dda6c463511c4e9b05cfc34c1247fcf1f';
102
- exports.UNIVERSAL_ACTION_POLICY_ADDRESS = UNIVERSAL_ACTION_POLICY_ADDRESS;
103
76
  const USAGE_LIMIT_POLICY_ADDRESS = '0x1f34ef8311345a3a4a4566af321b313052f51493';
104
- exports.USAGE_LIMIT_POLICY_ADDRESS = USAGE_LIMIT_POLICY_ADDRESS;
105
77
  const VALUE_LIMIT_POLICY_ADDRESS = '0x730da93267e7e513e932301b47f2ac7d062abc83';
106
- exports.VALUE_LIMIT_POLICY_ADDRESS = VALUE_LIMIT_POLICY_ADDRESS;
107
78
  const INTENT_EXECUTION_POLICY_ADDRESS = '0xe9eA54d063975cDee9e06b7636d5563d95a7A23C';
108
- exports.INTENT_EXECUTION_POLICY_ADDRESS = INTENT_EXECUTION_POLICY_ADDRESS;
109
79
  const INTENT_EXECUTION_POLICY_ADDRESS_DEV = '0xa09b47de6e510cbdc18b97e9239bedcb44fb4901';
110
80
  const ACTION_CONDITION_EQUAL = 0;
111
81
  const ACTION_CONDITION_GREATER_THAN = 1;
@@ -123,7 +93,7 @@ function packSignature(signers, validatorSignature) {
123
93
  : SMART_SESSION_MODE_USE;
124
94
  const sessionData = getSessionData(signers.session);
125
95
  const packedSignature = signers.enableData
126
- ? solady_1.LibZip.flzCompress((0, viem_1.encodeAbiParameters)([
96
+ ? LibZip.flzCompress(encodeAbiParameters([
127
97
  {
128
98
  type: 'tuple',
129
99
  name: 'enableData',
@@ -222,9 +192,9 @@ function packSignature(signers, validatorSignature) {
222
192
  { type: 'bytes' },
223
193
  ], [
224
194
  {
225
- allocatorSig: viem_1.zeroHash,
195
+ allocatorSig: zeroHash,
226
196
  userSig: signers.enableData.userSignature,
227
- expires: viem_1.maxUint256,
197
+ expires: maxUint256,
228
198
  enableSession: {
229
199
  chainDigestIndex: signers.enableData.sessionToEnableIndex,
230
200
  hashesAndChainIds: signers.enableData.hashesAndChainIds,
@@ -232,24 +202,24 @@ function packSignature(signers, validatorSignature) {
232
202
  },
233
203
  },
234
204
  {
235
- scope: compact_1.SCOPE_MULTICHAIN,
236
- resetPeriod: compact_1.RESET_PERIOD_ONE_WEEK,
237
- allocator: viem_1.zeroAddress,
205
+ scope: SCOPE_MULTICHAIN,
206
+ resetPeriod: RESET_PERIOD_ONE_WEEK,
207
+ allocator: zeroAddress,
238
208
  permissionId: getPermissionId(signers.session),
239
209
  },
240
210
  validatorSignature,
241
211
  ]))
242
212
  : validatorSignature;
243
213
  return signers.enableData
244
- ? (0, viem_1.encodePacked)(['bytes1', 'bytes'], [smartSessionMode, packedSignature])
245
- : (0, viem_1.encodePacked)(['bytes1', 'bytes32', 'bytes'], [smartSessionMode, permissionId, packedSignature]);
214
+ ? encodePacked(['bytes1', 'bytes'], [smartSessionMode, packedSignature])
215
+ : encodePacked(['bytes1', 'bytes32', 'bytes'], [smartSessionMode, permissionId, packedSignature]);
246
216
  }
247
217
  else {
248
218
  const SIGNATURE_IS_VALID_SIG_1271 = '0x00';
249
- const policyDataOffset = BigInt(64 + (0, viem_1.size)(validatorSignature));
219
+ const policyDataOffset = BigInt(64 + size(validatorSignature));
250
220
  const mode = SIGNATURE_IS_VALID_SIG_1271;
251
221
  const policySpecificData = signers.claimPolicyData ?? '0x';
252
- const signature = (0, viem_1.encodePacked)(['bytes1', 'bytes32', 'uint256', 'bytes', 'bytes'], [
222
+ const signature = encodePacked(['bytes1', 'bytes32', 'uint256', 'bytes', 'bytes'], [
253
223
  mode,
254
224
  permissionId,
255
225
  policyDataOffset,
@@ -267,7 +237,7 @@ async function getSessionDetails(account, sessions, provider, useDevContracts) {
267
237
  const chains = sessions.map((session) => session.chain);
268
238
  const hashesAndChainIds = signedSessions.map((session, index) => ({
269
239
  chainId: BigInt(chains[index].id),
270
- sessionDigest: (0, viem_1.hashStruct)({
240
+ sessionDigest: hashStruct({
271
241
  types,
272
242
  primaryType: 'SignedSession',
273
243
  data: session,
@@ -294,9 +264,9 @@ async function getSessionDetails(account, sessions, provider, useDevContracts) {
294
264
  };
295
265
  }
296
266
  async function isSessionEnabled(account, provider, session, useDevContracts) {
297
- const publicClient = (0, viem_1.createPublicClient)({
267
+ const publicClient = createPublicClient({
298
268
  chain: session.chain,
299
- transport: (0, utils_1.createTransport)(session.chain, provider),
269
+ transport: createTransport(session.chain, provider),
300
270
  });
301
271
  const isEnabled = await publicClient.readContract({
302
272
  address: getSmartSessionEmissaryAddress(useDevContracts),
@@ -318,30 +288,30 @@ async function isSessionEnabled(account, provider, session, useDevContracts) {
318
288
  return isEnabled;
319
289
  }
320
290
  async function signEnableSession(config, details) {
321
- const account = (0, accounts_1.getAccountProvider)(config);
322
- const validator = (0, core_1.getOwnerValidator)(config);
291
+ const account = getAccountProvider(config);
292
+ const validator = getOwnerValidator(config);
323
293
  const isStartaleK1 = account.type === 'startale' &&
324
294
  validator.address.toLowerCase() ===
325
- startale_1.K1_DEFAULT_VALIDATOR_ADDRESS.toLowerCase();
295
+ K1_DEFAULT_VALIDATOR_ADDRESS.toLowerCase();
326
296
  if (isStartaleK1) {
327
297
  const chainIds = details.hashesAndChainIds.map((h) => h.chainId);
328
298
  const uniqueChainIds = [...new Set(chainIds.map((c) => c.toString()))];
329
299
  if (uniqueChainIds.length > 1) {
330
300
  throw new Error('Startale accounts with K1 validator do not support multi-chain session enable');
331
301
  }
332
- const chain = (0, registry_1.getChainById)(Number(chainIds[0]));
333
- return (0, utils_2.signTypedData)(config, details.data, chain, undefined, {
302
+ const chain = getChainById(Number(chainIds[0]));
303
+ return signTypedData(config, details.data, chain, undefined, {
334
304
  skipErc6492: true,
335
305
  });
336
306
  }
337
- return (0, utils_2.signTypedData)(config, details.data, chains_1.mainnet, undefined, {
307
+ return signTypedData(config, details.data, mainnet, undefined, {
338
308
  skipErc6492: true,
339
309
  });
340
310
  }
341
311
  async function getSessionNonce(account, session, lockTag, provider, useDevContracts) {
342
- const publicClient = (0, viem_1.createPublicClient)({
312
+ const publicClient = createPublicClient({
343
313
  chain: session.chain,
344
- transport: (0, utils_1.createTransport)(session.chain, provider),
314
+ transport: createTransport(session.chain, provider),
345
315
  });
346
316
  const nonce = await publicClient.readContract({
347
317
  address: getSmartSessionEmissaryAddress(useDevContracts),
@@ -386,7 +356,7 @@ function getSignedSession(account, lockTag, session, nonce, useDevContracts) {
386
356
  sessionValidatorInitData: session.sessionValidatorInitData,
387
357
  salt: session.salt,
388
358
  smartSessionEmissary: getSmartSessionEmissaryAddress(useDevContracts),
389
- expires: viem_1.maxUint256,
359
+ expires: maxUint256,
390
360
  nonce,
391
361
  };
392
362
  }
@@ -395,21 +365,21 @@ async function getEnableSessionCall(account, session, enableSessionSignature, ha
395
365
  const permissionId = getPermissionId(session);
396
366
  return {
397
367
  to: getSmartSessionEmissaryAddress(useDevContracts),
398
- data: (0, viem_1.encodeFunctionData)({
399
- abi: smart_session_emissary_1.default,
368
+ data: encodeFunctionData({
369
+ abi: smartSessionEmissaryAbi,
400
370
  functionName: 'setConfig',
401
371
  args: [
402
372
  account,
403
373
  {
404
- scope: compact_1.SCOPE_MULTICHAIN,
405
- resetPeriod: compact_1.RESET_PERIOD_ONE_WEEK,
406
- allocator: viem_1.zeroAddress,
374
+ scope: SCOPE_MULTICHAIN,
375
+ resetPeriod: RESET_PERIOD_ONE_WEEK,
376
+ allocator: zeroAddress,
407
377
  permissionId,
408
378
  },
409
379
  {
410
- allocatorSig: viem_1.zeroHash,
380
+ allocatorSig: zeroHash,
411
381
  userSig: enableSessionSignature,
412
- expires: viem_1.maxUint256,
382
+ expires: maxUint256,
413
383
  session: {
414
384
  chainDigestIndex: sessionToEnableIndex,
415
385
  hashesAndChainIds,
@@ -421,11 +391,11 @@ async function getEnableSessionCall(account, session, enableSessionSignature, ha
421
391
  };
422
392
  }
423
393
  function getSessionData(session, useDevContracts) {
424
- const validator = (0, core_1.getValidator)(session.owners);
394
+ const validator = getValidator(session.owners);
425
395
  const allowedContent = [
426
396
  {
427
397
  contentNames: [''],
428
- appDomainSeparator: viem_1.zeroHash,
398
+ appDomainSeparator: zeroHash,
429
399
  },
430
400
  ];
431
401
  const erc7739Data = {
@@ -451,8 +421,8 @@ function getSessionData(session, useDevContracts) {
451
421
  const injectedActions = [
452
422
  // Native token wrapping
453
423
  {
454
- target: (0, registry_1.getWrappedTokenAddress)(session.chain),
455
- selector: (0, viem_1.toFunctionSelector)({
424
+ target: getWrappedTokenAddress(session.chain),
425
+ selector: toFunctionSelector({
456
426
  type: 'function',
457
427
  name: 'deposit',
458
428
  inputs: [],
@@ -493,20 +463,20 @@ function getSessionData(session, useDevContracts) {
493
463
  : [sudoAction];
494
464
  return {
495
465
  sessionValidator: validator.address,
496
- salt: viem_1.zeroHash,
466
+ salt: zeroHash,
497
467
  sessionValidatorInitData: validator.initData,
498
468
  erc7739Policies: erc7739Data,
499
469
  actions,
500
470
  // Note: Permit2ClaimPolicy has no dev deployment — same address in all environments
501
471
  claimPolicies: session.claimPolicies?.map((p) => ({
502
- policy: permit2_1.PERMIT2_CLAIM_POLICY_ADDRESS,
503
- initData: (0, permit2_1.encodePermit2ClaimPolicyInitData)(p),
472
+ policy: PERMIT2_CLAIM_POLICY_ADDRESS,
473
+ initData: encodePermit2ClaimPolicyInitData(p),
504
474
  })) ?? [],
505
475
  };
506
476
  }
507
477
  function getPermissionId(session) {
508
478
  const sessionData = getSessionData(session);
509
- return (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([
479
+ return keccak256(encodeAbiParameters([
510
480
  {
511
481
  type: 'address',
512
482
  name: 'sessionValidator',
@@ -563,14 +533,14 @@ function getPolicyData(policy, useDevContracts) {
563
533
  condition: ACTION_CONDITION_EQUAL,
564
534
  offset: 0n,
565
535
  isLimited: false,
566
- ref: viem_1.zeroHash,
536
+ ref: zeroHash,
567
537
  usage: { limit: 0n, used: 0n },
568
538
  }));
569
539
  for (let i = 0; i < policy.rules.length; i++) {
570
540
  const rule = policy.rules[i];
571
- const ref = (0, viem_1.isHex)(rule.referenceValue)
572
- ? (0, viem_1.padHex)(rule.referenceValue)
573
- : (0, viem_1.toHex)(rule.referenceValue, { size: 32 });
541
+ const ref = isHex(rule.referenceValue)
542
+ ? padHex(rule.referenceValue)
543
+ : toHex(rule.referenceValue, { size: 32 });
574
544
  rules[i] = {
575
545
  condition: getCondition(rule.condition),
576
546
  offset: rule.calldataOffset,
@@ -584,7 +554,7 @@ function getPolicyData(policy, useDevContracts) {
584
554
  }
585
555
  return {
586
556
  policy: UNIVERSAL_ACTION_POLICY_ADDRESS,
587
- initData: (0, viem_1.encodeAbiParameters)([
557
+ initData: encodeAbiParameters([
588
558
  {
589
559
  components: [
590
560
  {
@@ -657,13 +627,13 @@ function getPolicyData(policy, useDevContracts) {
657
627
  const limits = policy.limits.map(({ amount }) => amount);
658
628
  return {
659
629
  policy: SPENDING_LIMITS_POLICY_ADDRESS,
660
- initData: (0, viem_1.encodeAbiParameters)([{ type: 'address[]' }, { type: 'uint256[]' }], [tokens, limits]),
630
+ initData: encodeAbiParameters([{ type: 'address[]' }, { type: 'uint256[]' }], [tokens, limits]),
661
631
  };
662
632
  }
663
633
  case 'time-frame': {
664
634
  return {
665
635
  policy: TIME_FRAME_POLICY_ADDRESS,
666
- initData: (0, viem_1.encodePacked)(['uint48', 'uint48'], [
636
+ initData: encodePacked(['uint48', 'uint48'], [
667
637
  Math.floor(policy.validUntil / 1000),
668
638
  Math.floor(policy.validAfter / 1000),
669
639
  ]),
@@ -672,13 +642,13 @@ function getPolicyData(policy, useDevContracts) {
672
642
  case 'usage-limit': {
673
643
  return {
674
644
  policy: USAGE_LIMIT_POLICY_ADDRESS,
675
- initData: (0, viem_1.encodePacked)(['uint128'], [policy.limit]),
645
+ initData: encodePacked(['uint128'], [policy.limit]),
676
646
  };
677
647
  }
678
648
  case 'value-limit': {
679
649
  return {
680
650
  policy: VALUE_LIMIT_POLICY_ADDRESS,
681
- initData: (0, viem_1.encodeAbiParameters)([{ type: 'uint256' }], [policy.limit]),
651
+ initData: encodeAbiParameters([{ type: 'uint256' }], [policy.limit]),
682
652
  };
683
653
  }
684
654
  }
@@ -696,13 +666,13 @@ function getSmartSessionValidator(config) {
696
666
  initData: '0x',
697
667
  deInitData: '0x',
698
668
  additionalContext: '0x',
699
- type: common_1.MODULE_TYPE_ID_VALIDATOR,
669
+ type: MODULE_TYPE_ID_VALIDATOR,
700
670
  };
701
671
  }
702
672
  function getSmartSessionEmissaryAddress(useDevContracts) {
703
673
  return useDevContracts === true
704
- ? core_1.SMART_SESSION_EMISSARY_ADDRESS_DEV
705
- : core_1.SMART_SESSION_EMISSARY_ADDRESS;
674
+ ? SMART_SESSION_EMISSARY_ADDRESS_DEV
675
+ : SMART_SESSION_EMISSARY_ADDRESS;
706
676
  }
707
677
  /**
708
678
  * Builds a mockSignature for SSX validation gas estimation.
@@ -712,14 +682,23 @@ function getSmartSessionEmissaryAddress(useDevContracts) {
712
682
  * The orchestrator slices off the first 20 bytes to identify the validator, then
713
683
  * simulates verifyExecution with the mock emissary to estimate gas before the user signs.
714
684
  */
715
- function buildMockSignature(session, useDevContracts, chainCount = 1) {
685
+ function buildMockSignature(session, useDevContracts, chainCount = 1, targetChainId) {
716
686
  const emissaryAddress = getSmartSessionEmissaryAddress(useDevContracts);
687
+ // Use targetChainId when provided (per-chain mockSignatures path) so the
688
+ // mock emissary's chainId check passes on the correct chain. Falls back to
689
+ // session.chain.id for the global mockSignature (single-chain path).
690
+ const primaryChainId = targetChainId ?? session.chain.id;
691
+ // Normalize chainCount to a finite positive integer. Guards against
692
+ // accidental NaN/undefined from caller (e.g. `sourceChains?.length` when
693
+ // sourceChains is undefined) which would otherwise make Array.from produce
694
+ // an empty array and silently drop the ChainId check.
695
+ const safeChainCount = Number.isFinite(chainCount) && chainCount > 0 ? Math.floor(chainCount) : 1;
717
696
  // Build one entry per chain — first entry is the real chain ID (for the ChainId check),
718
697
  // remaining entries use chainId 0 as placeholders. Hash mismatch is skipped by the
719
698
  // mock emissary, so sessionDigest can be zeroHash throughout.
720
- const hashesAndChainIds = Array.from({ length: Math.max(1, chainCount) }, (_, i) => ({
721
- chainId: i === 0 ? BigInt(session.chain.id) : 0n,
722
- sessionDigest: viem_1.zeroHash,
699
+ const hashesAndChainIds = Array.from({ length: safeChainCount }, (_, i) => ({
700
+ chainId: i === 0 ? BigInt(primaryChainId) : 0n,
701
+ sessionDigest: zeroHash,
723
702
  }));
724
703
  const dummySigners = {
725
704
  type: 'experimental_session',
@@ -733,8 +712,9 @@ function buildMockSignature(session, useDevContracts, chainCount = 1) {
733
712
  };
734
713
  const dummyValidatorSignature = `0x${'00'.repeat(65)}`;
735
714
  const sigData = packSignature(dummySigners, dummyValidatorSignature);
736
- return (0, viem_1.concat)([emissaryAddress, sigData]);
715
+ return concat([emissaryAddress, sigData]);
737
716
  }
738
717
  function createFixedArray(length, getValue) {
739
718
  return Array.from({ length }, (_, i) => getValue(i));
740
719
  }
720
+ 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, };
@@ -1,10 +1,11 @@
1
1
  import type { Address } from 'viem';
2
- import type { IntentInput, IntentOpStatus, IntentResult, IntentRoute, Portfolio, SignedIntentOp, SplitIntentsInput, SplitIntentsResult } from './types';
2
+ import type { AuthProvider } from '../auth/provider.js';
3
+ import type { IntentInput, IntentOpStatus, IntentResult, IntentRoute, Portfolio, SignedIntentOp, SplitIntentsInput, SplitIntentsResult } from './types.js';
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;YAYJ,KAAK;IA4BnB,OAAO,CAAC,UAAU;IA6GlB,OAAO,CAAC,iBAAiB;CAmG1B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;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;IA4BnB,OAAO,CAAC,UAAU;IA6GlB,OAAO,CAAC,iBAAiB;CAmG1B"}