@charterlabs/rhinestone-sdk 0.3.9 → 0.4.1

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 (145) 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/message.d.ts +3 -1
  12. package/dist/src/accounts/signing/message.d.ts.map +1 -1
  13. package/dist/src/accounts/startale.js +1 -1
  14. package/dist/src/accounts/utils.d.ts +1 -1
  15. package/dist/src/accounts/utils.d.ts.map +1 -1
  16. package/dist/src/auth/provider.d.ts +7 -0
  17. package/dist/src/auth/provider.d.ts.map +1 -0
  18. package/dist/src/auth/provider.js +41 -0
  19. package/dist/src/errors/index.d.ts +2 -2
  20. package/dist/src/errors/index.d.ts.map +1 -1
  21. package/dist/src/errors/index.js +2 -1
  22. package/dist/src/execution/error.d.ts +9 -1
  23. package/dist/src/execution/error.d.ts.map +1 -1
  24. package/dist/src/execution/error.js +12 -1
  25. package/dist/src/execution/index.d.ts +6 -4
  26. package/dist/src/execution/index.d.ts.map +1 -1
  27. package/dist/src/execution/index.js +17 -13
  28. package/dist/src/execution/utils.d.ts +17 -6
  29. package/dist/src/execution/utils.d.ts.map +1 -1
  30. package/dist/src/execution/utils.js +193 -43
  31. package/dist/src/index.d.ts +5 -5
  32. package/dist/src/index.d.ts.map +1 -1
  33. package/dist/src/index.js +13 -11
  34. package/dist/src/jwt-server/digest.d.ts +11 -0
  35. package/dist/src/jwt-server/digest.d.ts.map +1 -0
  36. package/dist/src/jwt-server/digest.js +22 -0
  37. package/dist/src/jwt-server/express.d.ts +16 -0
  38. package/dist/src/jwt-server/express.d.ts.map +1 -0
  39. package/dist/src/jwt-server/express.js +24 -0
  40. package/dist/src/jwt-server/handlers.d.ts +10 -0
  41. package/dist/src/jwt-server/handlers.d.ts.map +1 -0
  42. package/dist/src/jwt-server/handlers.js +41 -0
  43. package/dist/src/jwt-server/index.d.ts +8 -0
  44. package/dist/src/jwt-server/index.d.ts.map +1 -0
  45. package/dist/src/jwt-server/index.js +18 -0
  46. package/dist/src/jwt-server/jcs.d.ts +12 -0
  47. package/dist/src/jwt-server/jcs.d.ts.map +1 -0
  48. package/dist/src/jwt-server/jcs.js +60 -0
  49. package/dist/src/jwt-server/signer.d.ts +18 -0
  50. package/dist/src/jwt-server/signer.d.ts.map +1 -0
  51. package/dist/src/jwt-server/signer.js +71 -0
  52. package/dist/src/jwt-server/sponsorship.d.ts +19 -0
  53. package/dist/src/jwt-server/sponsorship.d.ts.map +1 -0
  54. package/dist/src/jwt-server/sponsorship.js +56 -0
  55. package/dist/src/jwt-server/web.d.ts +4 -0
  56. package/dist/src/jwt-server/web.d.ts.map +1 -0
  57. package/dist/src/jwt-server/web.js +27 -0
  58. package/dist/src/modules/validators/index.d.ts +2 -2
  59. package/dist/src/modules/validators/index.d.ts.map +1 -1
  60. package/dist/src/modules/validators/index.js +5 -1
  61. package/dist/src/modules/validators/policies/claim/permit2.d.ts +55 -0
  62. package/dist/src/modules/validators/policies/claim/permit2.d.ts.map +1 -0
  63. package/dist/src/modules/validators/policies/claim/permit2.js +239 -0
  64. package/dist/src/modules/validators/policies/claim/types.d.ts +12 -0
  65. package/dist/src/modules/validators/policies/claim/types.d.ts.map +1 -0
  66. package/dist/src/modules/validators/policies/claim/types.js +18 -0
  67. package/dist/src/modules/validators/smart-sessions.d.ts +22 -7
  68. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  69. package/dist/src/modules/validators/smart-sessions.js +82 -22
  70. package/dist/src/orchestrator/client.d.ts +9 -4
  71. package/dist/src/orchestrator/client.d.ts.map +1 -1
  72. package/dist/src/orchestrator/client.js +29 -17
  73. package/dist/src/orchestrator/consts.d.ts +3 -2
  74. package/dist/src/orchestrator/consts.d.ts.map +1 -1
  75. package/dist/src/orchestrator/consts.js +4 -2
  76. package/dist/src/orchestrator/index.d.ts +4 -3
  77. package/dist/src/orchestrator/index.d.ts.map +1 -1
  78. package/dist/src/orchestrator/index.js +2 -2
  79. package/dist/src/orchestrator/registry.d.ts +2 -1
  80. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  81. package/dist/src/orchestrator/registry.js +17 -1
  82. package/dist/src/orchestrator/types.d.ts +6 -1
  83. package/dist/src/orchestrator/types.d.ts.map +1 -1
  84. package/dist/src/types.d.ts +87 -5
  85. package/dist/src/types.d.ts.map +1 -1
  86. package/dist/src/utils/index.d.ts +3 -9
  87. package/dist/src/utils/index.d.ts.map +1 -1
  88. package/package.json +18 -4
  89. package/dist/src/accounts/index.test.d.ts +0 -2
  90. package/dist/src/accounts/index.test.d.ts.map +0 -1
  91. package/dist/src/accounts/index.test.js +0 -33
  92. package/dist/src/accounts/json-rpc/index.test.d.ts +0 -2
  93. package/dist/src/accounts/json-rpc/index.test.d.ts.map +0 -1
  94. package/dist/src/accounts/json-rpc/index.test.js +0 -35
  95. package/dist/src/accounts/json-rpc/providers.test.d.ts +0 -2
  96. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +0 -1
  97. package/dist/src/accounts/json-rpc/providers.test.js +0 -43
  98. package/dist/src/accounts/kernel.test.d.ts +0 -2
  99. package/dist/src/accounts/kernel.test.d.ts.map +0 -1
  100. package/dist/src/accounts/kernel.test.js +0 -132
  101. package/dist/src/accounts/nexus.test.d.ts +0 -2
  102. package/dist/src/accounts/nexus.test.d.ts.map +0 -1
  103. package/dist/src/accounts/nexus.test.js +0 -118
  104. package/dist/src/accounts/safe.test.d.ts +0 -2
  105. package/dist/src/accounts/safe.test.d.ts.map +0 -1
  106. package/dist/src/accounts/safe.test.js +0 -118
  107. package/dist/src/accounts/signing/passkeys.test.d.ts +0 -2
  108. package/dist/src/accounts/signing/passkeys.test.d.ts.map +0 -1
  109. package/dist/src/accounts/signing/passkeys.test.js +0 -88
  110. package/dist/src/accounts/startale.test.d.ts +0 -2
  111. package/dist/src/accounts/startale.test.d.ts.map +0 -1
  112. package/dist/src/accounts/startale.test.js +0 -189
  113. package/dist/src/accounts/utils.test.d.ts +0 -2
  114. package/dist/src/accounts/utils.test.d.ts.map +0 -1
  115. package/dist/src/accounts/utils.test.js +0 -49
  116. package/dist/src/actions/ecdsa.test.d.ts +0 -2
  117. package/dist/src/actions/ecdsa.test.d.ts.map +0 -1
  118. package/dist/src/actions/ecdsa.test.js +0 -99
  119. package/dist/src/actions/passkeys.test.d.ts +0 -2
  120. package/dist/src/actions/passkeys.test.d.ts.map +0 -1
  121. package/dist/src/actions/passkeys.test.js +0 -54
  122. package/dist/src/actions/recovery.test.d.ts +0 -2
  123. package/dist/src/actions/recovery.test.d.ts.map +0 -1
  124. package/dist/src/actions/recovery.test.js +0 -168
  125. package/dist/src/execution/utils.test.d.ts +0 -2
  126. package/dist/src/execution/utils.test.d.ts.map +0 -1
  127. package/dist/src/execution/utils.test.js +0 -150
  128. package/dist/src/modules/index.test.d.ts +0 -2
  129. package/dist/src/modules/index.test.d.ts.map +0 -1
  130. package/dist/src/modules/index.test.js +0 -81
  131. package/dist/src/modules/validators/core.test.d.ts +0 -2
  132. package/dist/src/modules/validators/core.test.d.ts.map +0 -1
  133. package/dist/src/modules/validators/core.test.js +0 -101
  134. package/dist/src/modules/validators/smart-sessions.test.d.ts +0 -2
  135. package/dist/src/modules/validators/smart-sessions.test.d.ts.map +0 -1
  136. package/dist/src/modules/validators/smart-sessions.test.js +0 -61
  137. package/dist/src/orchestrator/registry.test.d.ts +0 -2
  138. package/dist/src/orchestrator/registry.test.d.ts.map +0 -1
  139. package/dist/src/orchestrator/registry.test.js +0 -154
  140. package/dist/test/consts.d.ts +0 -10
  141. package/dist/test/consts.d.ts.map +0 -1
  142. package/dist/test/consts.js +0 -22
  143. package/dist/test/utils/utils.d.ts +0 -5
  144. package/dist/test/utils/utils.d.ts.map +0 -1
  145. package/dist/test/utils/utils.js +0 -20
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SignerNotSupportedError = exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.IntentStatusTimeoutError = exports.IntentFailedError = exports.ExecutionError = exports.isExecutionError = void 0;
3
+ exports.SignerNotSupportedError = exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.InvalidSourceCallsError = exports.IntentStatusTimeoutError = exports.IntentFailedError = exports.ExecutionError = exports.isExecutionError = void 0;
4
4
  exports.sendTransaction = sendTransaction;
5
5
  exports.sendTransactionInternal = sendTransactionInternal;
6
6
  exports.sendUserOperation = sendUserOperation;
@@ -12,12 +12,14 @@ exports.splitIntents = splitIntents;
12
12
  const viem_1 = require("viem");
13
13
  const accounts_1 = require("../accounts");
14
14
  const utils_1 = require("../accounts/utils");
15
+ const provider_1 = require("../auth/provider");
15
16
  const orchestrator_1 = require("../orchestrator");
16
17
  const registry_1 = require("../orchestrator/registry");
17
18
  const error_1 = require("./error");
18
19
  Object.defineProperty(exports, "ExecutionError", { enumerable: true, get: function () { return error_1.ExecutionError; } });
19
20
  Object.defineProperty(exports, "IntentFailedError", { enumerable: true, get: function () { return error_1.IntentFailedError; } });
20
21
  Object.defineProperty(exports, "IntentStatusTimeoutError", { enumerable: true, get: function () { return error_1.IntentStatusTimeoutError; } });
22
+ Object.defineProperty(exports, "InvalidSourceCallsError", { enumerable: true, get: function () { return error_1.InvalidSourceCallsError; } });
21
23
  Object.defineProperty(exports, "isExecutionError", { enumerable: true, get: function () { return error_1.isExecutionError; } });
22
24
  Object.defineProperty(exports, "OrderPathRequiredForIntentsError", { enumerable: true, get: function () { return error_1.OrderPathRequiredForIntentsError; } });
23
25
  Object.defineProperty(exports, "SessionChainRequiredError", { enumerable: true, get: function () { return error_1.SessionChainRequiredError; } });
@@ -32,13 +34,14 @@ const POLL_ERROR_BACKOFF_MAX_MS = 10000;
32
34
  async function sendTransaction(config, transaction) {
33
35
  const sourceChains = 'chain' in transaction ? [transaction.chain] : transaction.sourceChains;
34
36
  const targetChain = 'chain' in transaction ? transaction.chain : transaction.targetChain;
35
- const { calls, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, } = transaction;
37
+ const { calls, sourceCalls, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, } = transaction;
36
38
  const isUserOpSigner = signers?.type === 'guardians';
37
39
  if (isUserOpSigner) {
38
40
  throw new error_1.SignerNotSupportedError();
39
41
  }
40
42
  return await sendTransactionInternal(config, sourceChains, targetChain, {
41
43
  callInputs: calls,
44
+ sourceCalls,
42
45
  gasLimit,
43
46
  initialTokenRequests: tokenRequests,
44
47
  recipient,
@@ -64,7 +67,7 @@ async function sendTransactionInternal(config, sourceChains, targetChain, option
64
67
  throw new error_1.SignerNotSupportedError();
65
68
  }
66
69
  else {
67
- return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient, options.signers, options.sponsored, options.eip7702InitSignature, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds);
70
+ return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient, options.signers, options.sponsored, options.eip7702InitSignature, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds, options.sourceCalls);
68
71
  }
69
72
  }
70
73
  async function sendUserOperationInternal(config, chain, callInputs, signers) {
@@ -90,17 +93,18 @@ async function sendUserOperationInternal(config, chain, callInputs, signers) {
90
93
  chain: chain.id,
91
94
  };
92
95
  }
93
- async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds) {
94
- const intentRoute = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined, undefined, signers);
95
- if (!intentRoute) {
96
+ async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, sourceCalls) {
97
+ const prepared = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined, undefined, signers, sourceCalls);
98
+ if (!prepared) {
96
99
  throw new error_1.OrderPathRequiredForIntentsError();
97
100
  }
101
+ const { intentRoute, intentInput } = prepared;
98
102
  const { originSignatures, destinationSignature } = await (0, utils_2.signIntent)(config, intentRoute.intentOp, targetChain, signers);
99
103
  const targetExecutionSignature = await (0, utils_2.getTargetExecutionSignature)(config, intentRoute.intentOp, targetChain, signers);
100
104
  const authorizations = config.eoa
101
105
  ? await (0, utils_2.signAuthorizationsInternal)(config, intentRoute)
102
106
  : [];
103
- return await (0, utils_2.submitIntentInternal)(config, sourceChains, targetChain, intentRoute.intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, false);
107
+ return await (0, utils_2.submitIntentInternal)(config, sourceChains, targetChain, intentRoute.intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, false, intentInput);
104
108
  }
105
109
  async function waitForExecution(config, result, acceptsPreconfirmations) {
106
110
  const validStatuses = new Set([
@@ -126,7 +130,7 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
126
130
  },
127
131
  });
128
132
  }
129
- const orchestrator = (0, orchestrator_1.getOrchestrator)(config.apiKey, config.endpointUrl, config.headers);
133
+ const orchestrator = (0, orchestrator_1.getOrchestrator)(config._authProvider ?? (0, provider_1.createAuthProvider)(config), config.endpointUrl, config.headers);
130
134
  try {
131
135
  intentStatus = await orchestrator.getIntentOpStatus(result.id);
132
136
  // reset error backoff on success
@@ -205,7 +209,7 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
205
209
  }
206
210
  async function getPortfolio(config, onTestnets) {
207
211
  const address = (0, accounts_1.getAddress)(config);
208
- const orchestrator = (0, orchestrator_1.getOrchestrator)(config.apiKey, config.endpointUrl, config.headers);
212
+ const orchestrator = (0, orchestrator_1.getOrchestrator)(config._authProvider ?? (0, provider_1.createAuthProvider)(config), config.endpointUrl, config.headers);
209
213
  const supportedChainIds = (0, registry_1.getSupportedChainIds)();
210
214
  const filteredChainIds = supportedChainIds.filter((id) => {
211
215
  try {
@@ -217,8 +221,8 @@ async function getPortfolio(config, onTestnets) {
217
221
  });
218
222
  return orchestrator.getPortfolio(address, { chainIds: filteredChainIds });
219
223
  }
220
- async function getIntentStatus(apiKey, endpointUrl, intentId, headers) {
221
- const orchestrator = (0, orchestrator_1.getOrchestrator)(apiKey, endpointUrl, headers);
224
+ async function getIntentStatus(authProvider, endpointUrl, intentId, headers) {
225
+ const orchestrator = (0, orchestrator_1.getOrchestrator)(authProvider, endpointUrl, headers);
222
226
  const internalStatus = await orchestrator.getIntentOpStatus(intentId);
223
227
  return {
224
228
  status: internalStatus.status,
@@ -232,7 +236,7 @@ async function getIntentStatus(apiKey, endpointUrl, intentId, headers) {
232
236
  })),
233
237
  };
234
238
  }
235
- async function splitIntents(apiKey, endpointUrl, input, headers) {
236
- const orchestrator = (0, orchestrator_1.getOrchestrator)(apiKey, endpointUrl, headers);
239
+ async function splitIntents(authProvider, endpointUrl, input, headers) {
240
+ const orchestrator = (0, orchestrator_1.getOrchestrator)(authProvider, endpointUrl, headers);
237
241
  return orchestrator.splitIntents(input);
238
242
  }
@@ -1,8 +1,15 @@
1
1
  import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData, type TypedDataDefinition, type TypedDataDomain } from 'viem';
2
2
  import { type UserOperation } from 'viem/account-abstraction';
3
+ import type { ResolvedSessionSignerSet } from '../modules/validators/smart-sessions';
3
4
  import { type IntentOp, type IntentRoute } from '../orchestrator';
4
5
  import { type AuxiliaryFunds, type OriginSignature, type SettlementLayer } from '../orchestrator/types';
5
- import type { Call, CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
6
+ import type { Call, CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, Session, SessionEnableData, SessionSignerSet, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
7
+ type InternalSignerSet = Exclude<SignerSet, SessionSignerSet> | ResolvedSessionSignerSet;
8
+ declare function resolveSessionForChain(signers: SessionSignerSet, chainId: number): {
9
+ session: Session;
10
+ enableData?: SessionEnableData;
11
+ verifyExecutions?: boolean;
12
+ };
6
13
  interface UserOperationResult {
7
14
  type: 'userop';
8
15
  hash: Hex;
@@ -16,6 +23,7 @@ interface TransactionResult {
16
23
  }
17
24
  interface PreparedTransactionData {
18
25
  intentRoute: IntentRoute;
26
+ intentInput: unknown;
19
27
  transaction: Transaction;
20
28
  }
21
29
  interface PreparedUserOperationData {
@@ -73,13 +81,16 @@ declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChai
73
81
  to: Address;
74
82
  data: Hex;
75
83
  }[];
76
- } | undefined, signers: SignerSet | undefined): Promise<IntentRoute>;
84
+ } | undefined, signers: SignerSet | undefined, sourceCalls: Record<number, CallInput[]> | undefined): Promise<{
85
+ intentRoute: IntentRoute;
86
+ intentInput: any;
87
+ }>;
77
88
  declare function signIntent(config: RhinestoneConfig, intentOp: IntentOp, targetChain: Chain, signers?: SignerSet, targetExecution?: boolean): Promise<{
78
89
  originSignatures: OriginSignature[];
79
90
  destinationSignature: `0x${string}`;
80
91
  }>;
81
- declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures: OriginSignature[], destinationSignature: Hex, targetExecutionSignature: Hex | undefined, authorizations: SignedAuthorizationList, dryRun: boolean): Promise<TransactionResult>;
82
- 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>;
92
+ declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures: OriginSignature[], destinationSignature: Hex, targetExecutionSignature: Hex | undefined, authorizations: SignedAuthorizationList, dryRun: boolean, intentInput?: unknown): Promise<TransactionResult>;
93
+ declare function getValidatorAccount(config: RhinestoneConfig, signers: SignerSet | undefined, publicClient: PublicClient, chain: Chain): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | null | undefined>;
83
94
  declare function parseCalls(calls: CalldataInput[], chainId: number): Call[];
84
95
  declare function hashErc7739TypedDataForSolady({ domain, types, primaryType, message, verifierDomain, }: {
85
96
  domain: TypedDataDomain;
@@ -94,6 +105,6 @@ declare function hashErc7739TypedDataForSolady({ domain, types, primaryType, mes
94
105
  salt: Hex;
95
106
  };
96
107
  }): Hex;
97
- export { prepareTransaction, getTransactionMessages, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, };
98
- export type { IntentRoute, TransactionResult, PreparedTransactionData, PreparedUserOperationData, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
108
+ export { prepareTransaction, getTransactionMessages, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, resolveSessionForChain, };
109
+ export type { InternalSignerSet, IntentRoute, TransactionResult, PreparedTransactionData, PreparedUserOperationData, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
99
110
  //# 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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"}
@@ -21,32 +21,67 @@ exports.resolveCallInputs = resolveCallInputs;
21
21
  exports.getIntentAccount = getIntentAccount;
22
22
  exports.getTargetExecutionSignature = getTargetExecutionSignature;
23
23
  exports.hashErc7739TypedDataForSolady = hashErc7739TypedDataForSolady;
24
+ exports.resolveSessionForChain = resolveSessionForChain;
24
25
  const viem_1 = require("viem");
25
26
  const account_abstraction_1 = require("viem/account-abstraction");
26
27
  const erc7739_1 = require("viem/experimental/erc7739");
27
28
  const accounts_1 = require("../accounts");
29
+ const common_1 = require("../accounts/signing/common");
28
30
  const startale_1 = require("../accounts/startale");
29
31
  const utils_1 = require("../accounts/utils");
32
+ const provider_1 = require("../auth/provider");
30
33
  const modules_1 = require("../modules");
31
34
  const validators_1 = require("../modules/validators");
32
35
  const core_1 = require("../modules/validators/core");
36
+ const permit2_1 = require("../modules/validators/policies/claim/permit2");
33
37
  const orchestrator_1 = require("../orchestrator");
34
38
  const registry_1 = require("../orchestrator/registry");
35
39
  const types_1 = require("../orchestrator/types");
40
+ const utils_2 = require("../orchestrator/utils");
36
41
  const compact_1 = require("./compact");
37
42
  const error_1 = require("./error");
38
- const permit2_1 = require("./permit2");
43
+ const permit2_2 = require("./permit2");
39
44
  const singleChainOps_1 = require("./singleChainOps");
45
+ function isResolvedSessionSignerSet(signers) {
46
+ return (signers?.type === 'experimental_session' && 'verifyExecutions' in signers);
47
+ }
48
+ async function resolveSignersForChain(config, signers, chainId) {
49
+ if (signers?.type !== 'experimental_session') {
50
+ return signers;
51
+ }
52
+ const resolved = resolveSessionForChain(signers, chainId);
53
+ const enabled = await (0, validators_1.isSessionEnabled)((0, accounts_1.getAddress)(config), config.provider, resolved.session, config.useDevContracts);
54
+ const enableData = enabled ? undefined : resolved.enableData;
55
+ const hasExplicitActions = !!resolved.session.actions?.length;
56
+ const verifyExecutions = resolved.verifyExecutions ?? signers.verifyExecutions ?? hasExplicitActions;
57
+ return {
58
+ type: 'experimental_session',
59
+ session: resolved.session,
60
+ enableData,
61
+ verifyExecutions,
62
+ };
63
+ }
64
+ function resolveSessionForChain(signers, chainId) {
65
+ if ('sessions' in signers) {
66
+ const config = signers.sessions[chainId];
67
+ if (!config) {
68
+ throw new Error(`No session configured for chain ${chainId}`);
69
+ }
70
+ return config;
71
+ }
72
+ return { session: signers.session, enableData: signers.enableData };
73
+ }
40
74
  async function prepareTransaction(config, transaction) {
41
- const { sourceChains, targetChain, tokenRequests, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, recipient, } = getTransactionParams(transaction);
75
+ const { sourceChains, targetChain, tokenRequests, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, recipient, sourceCalls, } = getTransactionParams(transaction);
42
76
  const accountAddress = (0, accounts_1.getAddress)(config);
43
77
  const isUserOpSigner = signers?.type === 'guardians';
44
78
  if (isUserOpSigner) {
45
79
  throw new error_1.SignerNotSupportedError();
46
80
  }
47
- const intentRoute = await prepareTransactionAsIntent(config, sourceChains, targetChain, await resolveCallInputs(transaction.calls, config, targetChain, accountAddress), transaction.gasLimit, tokenRequests, recipient, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers);
81
+ const prepared = await prepareTransactionAsIntent(config, sourceChains, targetChain, await resolveCallInputs(transaction.calls, config, targetChain, accountAddress), transaction.gasLimit, tokenRequests, recipient, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers, sourceCalls);
48
82
  return {
49
- intentRoute,
83
+ intentRoute: prepared.intentRoute,
84
+ intentInput: prepared.intentInput,
50
85
  transaction,
51
86
  };
52
87
  }
@@ -95,6 +130,7 @@ async function signTransaction(config, preparedTransaction) {
95
130
  const targetExecutionSignature = await getTargetExecutionSignature(config, intentRoute.intentOp, targetChain, signers);
96
131
  return {
97
132
  intentRoute,
133
+ intentInput: preparedTransaction.intentInput,
98
134
  transaction: preparedTransaction.transaction,
99
135
  originSignatures,
100
136
  destinationSignature,
@@ -105,6 +141,16 @@ async function getTargetExecutionSignature(config, intentOp, targetChain, signer
105
141
  if (signers?.type !== 'experimental_session') {
106
142
  return undefined;
107
143
  }
144
+ const settlementLayers = intentOp.elements.map((e) => e.mandate.qualifier.settlementContext.settlementLayer);
145
+ const hasIntentExecutorOps = settlementLayers.some((l) => l === 'INTENT_EXECUTOR' || l === 'SAME_CHAIN');
146
+ if (!hasIntentExecutorOps) {
147
+ return undefined;
148
+ }
149
+ const resolvedSigners = await resolveSignersForChain(config, signers, targetChain.id);
150
+ if (!isResolvedSessionSignerSet(resolvedSigners) ||
151
+ !resolvedSigners.verifyExecutions) {
152
+ return undefined;
153
+ }
108
154
  const destination = getTargetExecutionMessage(config, intentOp);
109
155
  const validator = getValidator(config, signers);
110
156
  if (!validator) {
@@ -112,7 +158,7 @@ async function getTargetExecutionSignature(config, intentOp, targetChain, signer
112
158
  }
113
159
  const ownerValidator = (0, validators_1.getOwnerValidator)(config);
114
160
  const isRoot = validator.address === ownerValidator.address;
115
- const signature = await getDestinationSignature(config, signers, validator, isRoot, targetChain, destination, [], true);
161
+ const signature = await getDestinationSignature(config, resolvedSigners, validator, isRoot, targetChain, destination, [], true);
116
162
  return signature;
117
163
  }
118
164
  async function signUserOperation(config, preparedUserOperation) {
@@ -153,10 +199,23 @@ async function signTypedData(config, parameters, chain, signers, options) {
153
199
  const ownerValidator = (0, validators_1.getOwnerValidator)(config);
154
200
  const isRoot = validator.address === ownerValidator.address;
155
201
  if (signers?.type === 'experimental_session') {
202
+ const resolved = resolveSessionForChain(signers, chain.id);
156
203
  return await signTypedDataWithSession(config, chain, {
157
204
  address: validator.address,
158
205
  isRoot,
159
- }, signers, parameters);
206
+ }, resolved.session, parameters);
207
+ }
208
+ const account = (0, accounts_1.getAccountProvider)(config);
209
+ if (account.type === 'startale' && (0, core_1.supportsEip712)(validator)) {
210
+ const isK1 = validator.address.toLowerCase() ===
211
+ startale_1.K1_DEFAULT_VALIDATOR_ADDRESS.toLowerCase();
212
+ if (isK1) {
213
+ const sig = await signErc7739TypedData(config, signers, validator, isRoot, parameters, chain);
214
+ if (!options?.skipErc6492) {
215
+ return await (0, accounts_1.toErc6492Signature)(config, sig, chain);
216
+ }
217
+ return sig;
218
+ }
160
219
  }
161
220
  const signature = await (0, accounts_1.getTypedDataPackedSignature)(config, signers, chain, {
162
221
  address: validator.address,
@@ -167,8 +226,9 @@ async function signTypedData(config, parameters, chain, signers, options) {
167
226
  }
168
227
  return signature;
169
228
  }
170
- async function signTypedDataWithSession(config, chain, validator, signers, parameters) {
229
+ async function signTypedDataWithSession(config, chain, validator, session, parameters) {
171
230
  const { name, version, chainId, verifyingContract, salt } = (0, accounts_1.getEip712Domain)(config, chain);
231
+ const signers = (0, common_1.convertOwnerSetToSignerSet)(session.owners);
172
232
  const signature = await (0, accounts_1.getTypedDataPackedSignature)(config, signers, chain, validator, {
173
233
  domain: parameters.domain,
174
234
  primaryType: 'TypedDataSign',
@@ -199,7 +259,7 @@ async function signTypedDataWithSession(config, chain, validator, signers, param
199
259
  message: parameters.message,
200
260
  signature,
201
261
  });
202
- return (0, viem_1.encodePacked)(['bytes32', 'bytes'], [(0, validators_1.getPermissionId)(signers.session), erc7739Signature]);
262
+ return (0, viem_1.encodePacked)(['bytes32', 'bytes'], [(0, validators_1.getPermissionId)(session), erc7739Signature]);
203
263
  });
204
264
  return await (0, accounts_1.toErc6492Signature)(config, signature, chain);
205
265
  }
@@ -240,10 +300,10 @@ async function signAuthorizationsInternal(config, data) {
240
300
  return authorizations;
241
301
  }
242
302
  async function submitTransaction(config, signedTransaction, authorizations, dryRun = false) {
243
- const { intentRoute, transaction, originSignatures, destinationSignature, targetExecutionSignature, } = signedTransaction;
303
+ const { intentRoute, intentInput, transaction, originSignatures, destinationSignature, targetExecutionSignature, } = signedTransaction;
244
304
  const { sourceChains, targetChain } = getTransactionParams(transaction);
245
305
  const intentOp = intentRoute.intentOp;
246
- return await submitIntent(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, dryRun);
306
+ return await submitIntent(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, dryRun, intentInput);
247
307
  }
248
308
  async function submitUserOperation(config, signedUserOperation) {
249
309
  const chain = signedUserOperation.transaction.chain;
@@ -267,6 +327,7 @@ function getTransactionParams(transaction) {
267
327
  const auxiliaryFunds = transaction.auxiliaryFunds;
268
328
  const account = transaction.experimental_accountOverride;
269
329
  const recipient = transaction.recipient;
330
+ const sourceCalls = transaction.sourceCalls;
270
331
  const tokenRequests = getTokenRequests(targetChain, initialTokenRequests);
271
332
  return {
272
333
  sourceChains,
@@ -283,6 +344,7 @@ function getTransactionParams(transaction) {
283
344
  auxiliaryFunds,
284
345
  account,
285
346
  recipient,
347
+ sourceCalls,
286
348
  };
287
349
  }
288
350
  function getTokenRequests(targetChain, initialTokenRequests) {
@@ -336,7 +398,7 @@ function getIntentAccount(config, eip7702InitSignature, account) {
336
398
  delegations,
337
399
  };
338
400
  }
339
- async function prepareTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipientInput, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers) {
401
+ async function prepareTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipientInput, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers, sourceCalls) {
340
402
  const calls = parseCalls(callInputs, targetChain.id);
341
403
  const accountAccessList = createAccountAccessList(sourceChains, sourceAssets);
342
404
  function getRecipient(recipient) {
@@ -357,13 +419,76 @@ async function prepareTransactionAsIntent(config, sourceChains, targetChain, cal
357
419
  const intentAccount = {
358
420
  ...getIntentAccount(config, eip7702InitSignature, account),
359
421
  ...(signers?.type === 'experimental_session' && {
360
- mockSignature: (0, validators_1.buildMockSignature)(signers.session, config.useDevContracts, sourceChains?.length),
422
+ // Global fallback: target-chain sig for backward-compat with older orchestrators
423
+ mockSignature: (0, validators_1.buildMockSignature)(resolveSessionForChain(signers, targetChain.id).session, config.useDevContracts, sourceChains?.length ?? 1),
424
+ // Per-chain map: enables accurate per-chain session validation gas simulation
425
+ mockSignatures: Object.fromEntries([
426
+ ...new Set([
427
+ ...(sourceChains ?? []).map((c) => c.id),
428
+ targetChain.id,
429
+ ]),
430
+ ].map((chainId) => [
431
+ String(chainId),
432
+ (0, validators_1.buildMockSignature)(resolveSessionForChain(signers, chainId).session, config.useDevContracts, sourceChains?.length ?? 1, chainId),
433
+ ])),
361
434
  }),
362
435
  };
363
436
  const recipient = getRecipient(recipientInput);
364
437
  const signatureMode = signers?.type === 'experimental_session'
365
438
  ? types_1.SIG_MODE_EMISSARY_EXECUTION_ERC1271
366
439
  : types_1.SIG_MODE_ERC1271_EMISSARY;
440
+ // For session signers that need enabling, pass a dummy preclaimop per source chain
441
+ // so the orchestrator bakes it into the bundle before computing its HMAC. The filler
442
+ // executes the op via verifyExecution in ENABLE mode, enabling the session on-chain
443
+ // without a separate UserOp. Must be sent in the routing request — not injected
444
+ // post-facto — because the orchestrator HMAC covers preClaimOps.
445
+ const preClaimExecutions = {};
446
+ if (signers?.type === 'experimental_session' && sourceChains) {
447
+ const resolvedPerChain = await Promise.all(sourceChains.map(async (chain) => ({
448
+ chainId: chain.id,
449
+ resolved: await resolveSignersForChain(config, signers, chain.id),
450
+ })));
451
+ for (const { chainId, resolved } of resolvedPerChain) {
452
+ if (!isResolvedSessionSignerSet(resolved))
453
+ continue;
454
+ const { enableData, verifyExecutions } = resolved;
455
+ if (!verifyExecutions || !enableData)
456
+ continue;
457
+ preClaimExecutions[chainId] = [
458
+ {
459
+ to: validators_1.DUMMY_PRECLAIMOP_TARGET,
460
+ value: 0n,
461
+ data: validators_1.DUMMY_PRECLAIMOP_SELECTOR,
462
+ },
463
+ ];
464
+ }
465
+ }
466
+ if (sourceCalls) {
467
+ const accountAddress = (0, accounts_1.getAddress)(config);
468
+ const allowedChainIds = new Set([
469
+ ...(sourceChains ?? []).map((c) => c.id),
470
+ targetChain.id,
471
+ ]);
472
+ for (const [chainIdStr, calls] of Object.entries(sourceCalls)) {
473
+ const chainId = Number(chainIdStr);
474
+ if (!allowedChainIds.has(chainId)) {
475
+ throw new error_1.InvalidSourceCallsError({ chainId });
476
+ }
477
+ const chain = sourceChains?.find((c) => c.id === chainId) ??
478
+ (targetChain.id === chainId ? targetChain : undefined);
479
+ if (!chain) {
480
+ throw new error_1.InvalidSourceCallsError({ chainId });
481
+ }
482
+ const resolved = await resolveCallInputs(calls, config, chain, accountAddress);
483
+ const userExecutions = parseCalls(resolved, chainId);
484
+ if (userExecutions.length === 0)
485
+ continue;
486
+ preClaimExecutions[chainId] = [
487
+ ...(preClaimExecutions[chainId] ?? []),
488
+ ...userExecutions,
489
+ ];
490
+ }
491
+ }
367
492
  const metaIntent = {
368
493
  destinationChainId: targetChain.id,
369
494
  tokenRequests: tokenRequests.map((tokenRequest) => ({
@@ -395,10 +520,12 @@ async function prepareTransactionAsIntent(config, sourceChains, targetChain, cal
395
520
  signatureMode,
396
521
  auxiliaryFunds,
397
522
  },
523
+ ...(Object.keys(preClaimExecutions).length > 0 && { preClaimExecutions }),
398
524
  };
399
- const orchestrator = (0, orchestrator_1.getOrchestrator)(config.apiKey, config.endpointUrl, config.headers);
525
+ const serializedIntent = (0, utils_2.convertBigIntFields)(metaIntent);
526
+ const orchestrator = (0, orchestrator_1.getOrchestrator)(config._authProvider ?? (0, provider_1.createAuthProvider)(config), config.endpointUrl, config.headers);
400
527
  const intentRoute = await orchestrator.getIntentRoute(metaIntent);
401
- return intentRoute;
528
+ return { intentRoute, intentInput: serializedIntent };
402
529
  }
403
530
  async function signIntent(config, intentOp, targetChain, signers, targetExecution) {
404
531
  const { origin, destination } = getIntentMessages(config, intentOp);
@@ -432,23 +559,12 @@ async function signIntent(config, intentOp, targetChain, signers, targetExecutio
432
559
  const originSignatures = [];
433
560
  for (const typedData of origin) {
434
561
  const chain = (0, registry_1.getChainById)(typedData.domain?.chainId);
435
- // For same chain transactions, we need to modify the origin signers
436
- // Specifically, we need to remove the enable data in this case
437
- const matchesTargetChain = chain.id === targetChain.id;
438
- const originSigners = signers?.type === 'experimental_session'
439
- ? {
440
- type: 'experimental_session',
441
- session: signers.session,
442
- verifyExecutions: matchesTargetChain
443
- ? signers.verifyExecutions
444
- : undefined,
445
- enableData: matchesTargetChain ? signers.enableData : undefined,
446
- }
447
- : signers;
562
+ const originSigners = await resolveSignersForChain(config, signers, chain.id);
448
563
  const signature = await signIntentTypedData(config, originSigners, validator, isRoot, typedData, chain, targetExecution ?? false);
449
564
  originSignatures.push(signature);
450
565
  }
451
- const destinationSignature = await getDestinationSignature(config, signers, validator, isRoot, targetChain, destination, originSignatures, targetExecution ?? false);
566
+ const destinationSigners = await resolveSignersForChain(config, signers, targetChain.id);
567
+ const destinationSignature = await getDestinationSignature(config, destinationSigners, validator, isRoot, targetChain, destination, originSignatures, targetExecution ?? false);
452
568
  return {
453
569
  originSignatures,
454
570
  destinationSignature,
@@ -493,7 +609,7 @@ function getIntentMessages(config, intentOp) {
493
609
  origin.push(typedData);
494
610
  }
495
611
  else if (withPermit2) {
496
- const typedData = (0, permit2_1.getTypedData)(element, BigInt(intentOp.nonce), BigInt(intentOp.expires));
612
+ const typedData = (0, permit2_2.getTypedData)(element, BigInt(intentOp.nonce), BigInt(intentOp.expires));
497
613
  origin.push(typedData);
498
614
  }
499
615
  else {
@@ -519,12 +635,28 @@ function getTargetExecutionMessage(config, intentOp) {
519
635
  };
520
636
  return typedData;
521
637
  }
638
+ /** Computes claim policy calldata when parameters are Permit2 typed data with claim policies. */
639
+ function resolveClaimPolicyData(signers, parameters) {
640
+ if (parameters.primaryType !== 'PermitBatchWitnessTransferFrom' ||
641
+ !signers.session.claimPolicies?.length) {
642
+ return undefined;
643
+ }
644
+ const msg = parameters.message;
645
+ if (!msg.permitted ||
646
+ !msg.mandate ||
647
+ typeof msg.spender !== 'string' ||
648
+ typeof msg.nonce !== 'bigint' ||
649
+ typeof msg.deadline !== 'bigint') {
650
+ return undefined;
651
+ }
652
+ return (0, permit2_1.buildPermit2ClaimPolicyCalldata)(signers.session.claimPolicies[0], parameters.message);
653
+ }
522
654
  async function signIntentTypedData(config, signers, validator, isRoot, parameters, chain, targetExecution) {
523
655
  if ((0, core_1.supportsEip712)(validator)) {
524
656
  const isK1Validator = validator.address.toLowerCase() ===
525
657
  startale_1.K1_DEFAULT_VALIDATOR_ADDRESS.toLowerCase();
526
658
  if (isK1Validator) {
527
- return await signErc7739IntentTypedData(config, signers, validator, isRoot, parameters, chain);
659
+ return await signErc7739TypedData(config, signers, validator, isRoot, parameters, chain);
528
660
  }
529
661
  return await (0, accounts_1.getTypedDataPackedSignature)(config, signers, chain, {
530
662
  address: validator.address,
@@ -532,20 +664,27 @@ async function signIntentTypedData(config, signers, validator, isRoot, parameter
532
664
  }, parameters);
533
665
  }
534
666
  const hash = (0, viem_1.hashTypedData)(parameters);
535
- if (signers?.type === 'experimental_session' && signers.verifyExecutions) {
667
+ if (isResolvedSessionSignerSet(signers) && signers.verifyExecutions) {
536
668
  if (targetExecution) {
537
- return await (0, accounts_1.getEmissarySignature)(config, {
669
+ const targetSigners = {
538
670
  type: 'experimental_session',
539
671
  session: signers.session,
540
672
  verifyExecutions: true,
541
- }, chain, hash);
673
+ enableData: signers.enableData,
674
+ };
675
+ // signWithSession (called inside getEmissarySignature) already calls packSignature
676
+ // internally, so no transform is needed here
677
+ return await (0, accounts_1.getEmissarySignature)(config, targetSigners, chain, hash);
542
678
  }
543
- const eip1271Signature = await (0, accounts_1.getEip1271Signature)(config, {
679
+ const claimPolicyData = resolveClaimPolicyData(signers, parameters);
680
+ const sessionSignersForEip1271 = {
544
681
  type: 'experimental_session',
545
682
  session: signers.session,
546
683
  verifyExecutions: false,
547
684
  enableData: signers.enableData,
548
- }, chain, {
685
+ claimPolicyData,
686
+ };
687
+ const eip1271Signature = await (0, accounts_1.getEip1271Signature)(config, sessionSignersForEip1271, chain, {
549
688
  address: validator.address,
550
689
  isRoot,
551
690
  }, hash);
@@ -560,6 +699,13 @@ async function signIntentTypedData(config, signers, validator, isRoot, parameter
560
699
  notarizedClaimSig: eip1271Signature,
561
700
  };
562
701
  }
702
+ if (isResolvedSessionSignerSet(signers)) {
703
+ const claimPolicyData = resolveClaimPolicyData(signers, parameters);
704
+ return await (0, accounts_1.getEip1271Signature)(config, claimPolicyData !== undefined ? { ...signers, claimPolicyData } : signers, chain, {
705
+ address: validator.address,
706
+ isRoot,
707
+ }, hash);
708
+ }
563
709
  return await (0, accounts_1.getEip1271Signature)(config, signers, chain, {
564
710
  address: validator.address,
565
711
  isRoot,
@@ -619,8 +765,8 @@ async function submitUserOp(config, chain, userOp, signature) {
619
765
  chain: chain.id,
620
766
  };
621
767
  }
622
- async function submitIntent(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, dryRun) {
623
- return submitIntentInternal(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, dryRun);
768
+ async function submitIntent(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, dryRun, intentInput) {
769
+ return submitIntentInternal(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, dryRun, intentInput);
624
770
  }
625
771
  function createSignedIntentOp(intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations) {
626
772
  return {
@@ -640,13 +786,17 @@ function createSignedIntentOp(intentOp, originSignatures, destinationSignature,
640
786
  : undefined,
641
787
  };
642
788
  }
643
- async function submitIntentInternal(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, dryRun) {
789
+ async function submitIntentInternal(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations, dryRun, intentInput) {
644
790
  const signedIntentOp = createSignedIntentOp(intentOp, originSignatures, destinationSignature, targetExecutionSignature, authorizations);
645
- const orchestrator = (0, orchestrator_1.getOrchestrator)(config.apiKey, config.endpointUrl, config.headers);
646
- const intentResults = await orchestrator.submitIntent(signedIntentOp, dryRun);
791
+ const isSponsored = !!intentInput?.options?.sponsorSettings;
792
+ const orchestrator = (0, orchestrator_1.getOrchestrator)(config._authProvider ?? (0, provider_1.createAuthProvider)(config), config.endpointUrl, config.headers);
793
+ const intentResults = await orchestrator.submitIntent(signedIntentOp, dryRun, intentInput ? { intentInput, isSponsored } : undefined);
794
+ // Some settlement paths (e.g. SAME_CHAIN) may not return a result.id — fall
795
+ // back to the nonce which the orchestrator also accepts as an intent identifier.
796
+ const intentId = intentResults.result.id ?? intentOp.nonce;
647
797
  return {
648
798
  type: 'intent',
649
- id: BigInt(intentResults.result.id),
799
+ id: BigInt(intentId),
650
800
  sourceChains: sourceChains?.map((chain) => chain.id),
651
801
  targetChain: targetChain.id,
652
802
  };
@@ -807,10 +957,10 @@ function validateTokenSymbols(chain, tokenAddressOrSymbols) {
807
957
  }
808
958
  }
809
959
  }
810
- // Signs intent typed data using ERC-7739 nested EIP-712 for Startale accounts.
960
+ // Signs typed data using ERC-7739 nested EIP-712 for Startale accounts.
811
961
  // Uses a Solady-compatible TypedDataSign hash and wraps the signature with
812
962
  // the app domain separator and contents hash for on-chain verification.
813
- async function signErc7739IntentTypedData(config, signers, validator, isRoot, parameters, chain) {
963
+ async function signErc7739TypedData(config, signers, validator, isRoot, parameters, chain) {
814
964
  const verifierDomain = (0, accounts_1.getEip712Domain)(config, chain);
815
965
  const hash = hashErc7739TypedDataForSolady({
816
966
  domain: parameters.domain,