@charterlabs/rhinestone-sdk 0.2.8 → 0.3.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 (100) hide show
  1. package/dist/src/accounts/error.d.ts +4 -1
  2. package/dist/src/accounts/error.d.ts.map +1 -1
  3. package/dist/src/accounts/error.js +9 -1
  4. package/dist/src/accounts/index.d.ts +11 -4
  5. package/dist/src/accounts/index.d.ts.map +1 -1
  6. package/dist/src/accounts/index.js +32 -10
  7. package/dist/src/accounts/json-rpc/index.d.ts.map +1 -1
  8. package/dist/src/accounts/json-rpc/index.js +4 -0
  9. package/dist/src/accounts/json-rpc/index.test.d.ts +2 -0
  10. package/dist/src/accounts/json-rpc/index.test.d.ts.map +1 -0
  11. package/dist/src/accounts/json-rpc/index.test.js +33 -0
  12. package/dist/src/accounts/json-rpc/providers.d.ts +2 -1
  13. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -1
  14. package/dist/src/accounts/json-rpc/providers.js +8 -0
  15. package/dist/src/accounts/json-rpc/providers.test.d.ts +2 -0
  16. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +1 -0
  17. package/dist/src/accounts/json-rpc/providers.test.js +43 -0
  18. package/dist/src/accounts/kernel.d.ts +9 -2
  19. package/dist/src/accounts/kernel.d.ts.map +1 -1
  20. package/dist/src/accounts/kernel.js +15 -1
  21. package/dist/src/accounts/nexus.d.ts +11 -4
  22. package/dist/src/accounts/nexus.d.ts.map +1 -1
  23. package/dist/src/accounts/nexus.js +19 -3
  24. package/dist/src/accounts/passport.d.ts +4 -4
  25. package/dist/src/accounts/passport.d.ts.map +1 -1
  26. package/dist/src/accounts/safe.d.ts +9 -2
  27. package/dist/src/accounts/safe.d.ts.map +1 -1
  28. package/dist/src/accounts/safe.js +17 -1
  29. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  30. package/dist/src/accounts/signing/common.js +26 -5
  31. package/dist/src/accounts/signing/message.js +1 -1
  32. package/dist/src/accounts/startale.d.ts +9 -2
  33. package/dist/src/accounts/startale.d.ts.map +1 -1
  34. package/dist/src/accounts/startale.js +17 -1
  35. package/dist/src/accounts/walletClient.d.ts +27 -0
  36. package/dist/src/accounts/walletClient.d.ts.map +1 -1
  37. package/dist/src/accounts/walletClient.js +77 -0
  38. package/dist/src/actions/index.d.ts +1 -10
  39. package/dist/src/actions/index.d.ts.map +1 -1
  40. package/dist/src/actions/smart-sessions.d.ts +2 -11
  41. package/dist/src/actions/smart-sessions.d.ts.map +1 -1
  42. package/dist/src/actions/smart-sessions.js +0 -10
  43. package/dist/src/errors/index.d.ts +3 -3
  44. package/dist/src/errors/index.d.ts.map +1 -1
  45. package/dist/src/errors/index.js +3 -1
  46. package/dist/src/execution/error.d.ts +8 -1
  47. package/dist/src/execution/error.d.ts.map +1 -1
  48. package/dist/src/execution/error.js +10 -1
  49. package/dist/src/execution/index.d.ts +9 -4
  50. package/dist/src/execution/index.d.ts.map +1 -1
  51. package/dist/src/execution/index.js +32 -12
  52. package/dist/src/execution/singleChainOps.d.ts +28 -0
  53. package/dist/src/execution/singleChainOps.d.ts.map +1 -0
  54. package/dist/src/execution/{multiChainOps.js → singleChainOps.js} +7 -14
  55. package/dist/src/execution/smart-session.d.ts +5 -7
  56. package/dist/src/execution/smart-session.d.ts.map +1 -1
  57. package/dist/src/execution/smart-session.js +113 -228
  58. package/dist/src/execution/utils.d.ts +4 -4
  59. package/dist/src/execution/utils.d.ts.map +1 -1
  60. package/dist/src/execution/utils.js +125 -29
  61. package/dist/src/index.d.ts +13 -15
  62. package/dist/src/index.d.ts.map +1 -1
  63. package/dist/src/index.js +14 -6
  64. package/dist/src/modules/common.d.ts +3 -1
  65. package/dist/src/modules/common.d.ts.map +1 -1
  66. package/dist/src/modules/common.js +10 -0
  67. package/dist/src/modules/index.d.ts.map +1 -1
  68. package/dist/src/modules/index.js +15 -1
  69. package/dist/src/modules/validators/core.d.ts +5 -3
  70. package/dist/src/modules/validators/core.d.ts.map +1 -1
  71. package/dist/src/modules/validators/core.js +39 -2
  72. package/dist/src/modules/validators/smart-sessions.d.ts +6 -6
  73. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  74. package/dist/src/modules/validators/smart-sessions.js +23 -12
  75. package/dist/src/orchestrator/client.d.ts.map +1 -1
  76. package/dist/src/orchestrator/client.js +13 -1
  77. package/dist/src/orchestrator/error.d.ts +27 -1
  78. package/dist/src/orchestrator/error.d.ts.map +1 -1
  79. package/dist/src/orchestrator/error.js +10 -1
  80. package/dist/src/orchestrator/index.d.ts +6 -6
  81. package/dist/src/orchestrator/index.d.ts.map +1 -1
  82. package/dist/src/orchestrator/index.js +4 -3
  83. package/dist/src/orchestrator/registry.d.ts +6 -2
  84. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  85. package/dist/src/orchestrator/registry.js +30 -70
  86. package/dist/src/orchestrator/registry.test.js +24 -24
  87. package/dist/src/orchestrator/types.d.ts +31 -21
  88. package/dist/src/orchestrator/types.d.ts.map +1 -1
  89. package/dist/src/orchestrator/types.js +3 -5
  90. package/dist/src/types.d.ts +43 -8
  91. package/dist/src/types.d.ts.map +1 -1
  92. package/dist/src/utils/index.d.ts +12 -1
  93. package/dist/src/utils/index.d.ts.map +1 -1
  94. package/dist/src/utils/index.js +16 -0
  95. package/package.json +5 -5
  96. package/dist/src/execution/multiChainOps.d.ts +0 -40
  97. package/dist/src/execution/multiChainOps.d.ts.map +0 -1
  98. package/dist/src/execution/smart-session.test.d.ts +0 -2
  99. package/dist/src/execution/smart-session.test.d.ts.map +0 -1
  100. package/dist/src/execution/smart-session.test.js +0 -34
@@ -8,6 +8,7 @@ exports.sendUserOperationInternal = sendUserOperationInternal;
8
8
  exports.waitForExecution = waitForExecution;
9
9
  exports.getMaxSpendableAmount = getMaxSpendableAmount;
10
10
  exports.getPortfolio = getPortfolio;
11
+ exports.getIntentStatus = getIntentStatus;
11
12
  const viem_1 = require("viem");
12
13
  const chains_1 = require("viem/chains");
13
14
  const accounts_1 = require("../accounts");
@@ -25,7 +26,7 @@ Object.defineProperty(exports, "SignerNotSupportedError", { enumerable: true, ge
25
26
  const smart_session_1 = require("./smart-session");
26
27
  const utils_2 = require("./utils");
27
28
  const POLL_INITIAL_MS = 500;
28
- const POLL_SLOW_AFTER_MS = 5000;
29
+ const POLL_SLOW_AFTER_MS = 15000;
29
30
  const POLL_SLOW_MS = 2000;
30
31
  const POLL_MAX_WAIT_MS = 180000;
31
32
  const POLL_ERROR_BACKOFF_MS = 1000;
@@ -35,20 +36,21 @@ async function sendTransaction(config, transaction) {
35
36
  ? [transaction.chain]
36
37
  : transaction.sourceChains || [];
37
38
  const targetChain = 'chain' in transaction ? transaction.chain : transaction.targetChain;
38
- const { calls, gasLimit, tokenRequests, signers, sponsored, settlementLayers, sourceAssets, feeAsset, dryRun, } = transaction;
39
+ const { calls, gasLimit, tokenRequests, recipient, signers, sponsored, settlementLayers, sourceAssets, feeAsset, } = transaction;
39
40
  const isUserOpSigner = signers?.type === 'guardians' || signers?.type === 'session';
40
41
  if (isUserOpSigner) {
41
42
  throw new error_1.SignerNotSupportedError();
42
43
  }
43
- return await sendTransactionInternal(config, sourceChains, targetChain, calls, {
44
+ return await sendTransactionInternal(config, sourceChains, targetChain, {
45
+ callInputs: calls,
44
46
  gasLimit,
45
47
  initialTokenRequests: tokenRequests,
48
+ recipient,
46
49
  signers,
47
50
  sponsored,
48
51
  settlementLayers,
49
52
  sourceAssets,
50
53
  feeAsset,
51
- dryRun,
52
54
  });
53
55
  }
54
56
  async function sendUserOperation(config, transaction) {
@@ -61,16 +63,16 @@ async function sendUserOperation(config, transaction) {
61
63
  // Smart sessions require a UserOp flow
62
64
  return await sendUserOperationInternal(config, transaction.chain, resolvedCalls, transaction.signers);
63
65
  }
64
- async function sendTransactionInternal(config, sourceChains, targetChain, callInputs, options) {
66
+ async function sendTransactionInternal(config, sourceChains, targetChain, options) {
65
67
  const accountAddress = (0, accounts_1.getAddress)(config);
66
- const resolvedCalls = await (0, utils_2.resolveCallInputs)(callInputs, config, targetChain, accountAddress);
68
+ const resolvedCalls = await (0, utils_2.resolveCallInputs)(options.callInputs, config, targetChain, accountAddress);
67
69
  const tokenRequests = (0, utils_2.getTokenRequests)(sourceChains, targetChain, options.initialTokenRequests, options.settlementLayers);
68
70
  const sendAsUserOp = options.signers?.type === 'guardians' || options.signers?.type === 'session';
69
71
  if (sendAsUserOp) {
70
72
  throw new error_1.SignerNotSupportedError();
71
73
  }
72
74
  else {
73
- return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, accountAddress, options.dryRun, options.signers, options.sponsored, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds);
75
+ return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient, accountAddress, options.signers, options.sponsored, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds);
74
76
  }
75
77
  }
76
78
  async function sendUserOperationInternal(config, chain, callInputs, signers) {
@@ -100,8 +102,8 @@ async function sendUserOperationInternal(config, chain, callInputs, signers) {
100
102
  chain: chain.id,
101
103
  };
102
104
  }
103
- async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, accountAddress, dryRun = false, signers, sponsored, settlementLayers, sourceAssets, feeAsset, lockFunds) {
104
- const intentRoute = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, accountAddress, sponsored ?? false, undefined, settlementLayers, sourceAssets, feeAsset, lockFunds);
105
+ async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, accountAddress, signers, sponsored, settlementLayers, sourceAssets, feeAsset, lockFunds) {
106
+ const intentRoute = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, accountAddress, sponsored ?? false, undefined, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined);
105
107
  if (!intentRoute) {
106
108
  throw new error_1.OrderPathRequiredForIntentsError();
107
109
  }
@@ -109,7 +111,7 @@ async function sendTransactionAsIntent(config, sourceChains, targetChain, callIn
109
111
  const authorizations = config.eoa
110
112
  ? await (0, utils_2.signAuthorizationsInternal)(config, intentRoute)
111
113
  : [];
112
- return await (0, utils_2.submitIntentInternal)(config, sourceChains, targetChain, intentRoute.intentOp, originSignatures, destinationSignature, authorizations, dryRun);
114
+ return await (0, utils_2.submitIntentInternal)(config, sourceChains, targetChain, intentRoute.intentOp, originSignatures, destinationSignature, authorizations, false);
113
115
  }
114
116
  async function waitForExecution(config, result, acceptsPreconfirmations) {
115
117
  const validStatuses = new Set([
@@ -205,14 +207,32 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
205
207
  }
206
208
  }
207
209
  }
208
- async function getMaxSpendableAmount(config, chain, tokenAddress, gasUnits, sponsored = false) {
210
+ async function getMaxSpendableAmount(config, chain, token, gasUnits, sponsored = false) {
209
211
  const address = (0, accounts_1.getAddress)(config);
210
212
  const orchestrator = (0, utils_2.getOrchestratorByChain)(chain.id, config.apiKey, config.endpointUrl);
213
+ const tokenAddress = (0, registry_1.resolveTokenAddress)(token, chain.id);
211
214
  return orchestrator.getMaxTokenAmount(address, chain.id, tokenAddress, gasUnits, sponsored);
212
215
  }
213
216
  async function getPortfolio(config, onTestnets) {
214
217
  const address = (0, accounts_1.getAddress)(config);
215
- const chainId = onTestnets ? chains_1.sepolia.id : chains_1.mainnet.id;
218
+ const chainId = onTestnets ? chains_1.baseSepolia.id : chains_1.base.id;
216
219
  const orchestrator = (0, utils_2.getOrchestratorByChain)(chainId, config.apiKey, config.endpointUrl);
217
220
  return orchestrator.getPortfolio(address);
218
221
  }
222
+ async function getIntentStatus(apiKey, endpointUrl, intentId) {
223
+ const environment = BigInt(intentId.toString().slice(0, 1));
224
+ const chainId = environment === 4n ? chains_1.base.id : chains_1.baseSepolia.id;
225
+ const orchestrator = (0, utils_2.getOrchestratorByChain)(chainId, apiKey, endpointUrl);
226
+ const internalStatus = await orchestrator.getIntentOpStatus(intentId);
227
+ return {
228
+ status: internalStatus.status,
229
+ fill: {
230
+ hash: internalStatus.fillTransactionHash,
231
+ chainId: chainId,
232
+ },
233
+ claims: internalStatus.claims.map((claim) => ({
234
+ hash: claim.claimTransactionHash,
235
+ chainId: claim.chainId,
236
+ })),
237
+ };
238
+ }
@@ -0,0 +1,28 @@
1
+ import type { Address } from 'viem';
2
+ import type { Execution, IntentOpElement } from '../orchestrator/types';
3
+ declare function getTypedData(account: Address, intentExecutorAddress: Address, element: IntentOpElement, nonce: bigint): {
4
+ domain: {
5
+ name: string;
6
+ version: string;
7
+ chainId: number;
8
+ verifyingContract: `0x${string}`;
9
+ };
10
+ types: {
11
+ SingleChainOps: {
12
+ name: string;
13
+ type: string;
14
+ }[];
15
+ Op: {
16
+ name: string;
17
+ type: string;
18
+ }[];
19
+ };
20
+ primaryType: "SingleChainOps";
21
+ message: {
22
+ account: `0x${string}`;
23
+ nonce: bigint;
24
+ ops: Execution[];
25
+ };
26
+ };
27
+ export { getTypedData };
28
+ //# sourceMappingURL=singleChainOps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleChainOps.d.ts","sourceRoot":"","sources":["../../../execution/singleChainOps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvE,iBAAS,YAAY,CACnB,OAAO,EAAE,OAAO,EAChB,qBAAqB,EAAE,OAAO,EAC9B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;EA8Bd;AACD,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,26 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTypedData = getTypedData;
4
- function getTypedData(account, intentExecutorAddress, intentOp) {
5
- const ops = intentOp.elements[0].mandate.destinationOps;
6
- const chainOps = {
7
- chainId: BigInt(intentOp.elements[0].chainId),
8
- nonce: BigInt(intentOp.nonce),
9
- ops,
10
- };
4
+ function getTypedData(account, intentExecutorAddress, element, nonce) {
5
+ const ops = element.mandate.destinationOps;
11
6
  return {
12
7
  domain: {
13
8
  name: 'IntentExecutor',
14
9
  version: 'v0.0.1',
10
+ chainId: Number(element.mandate.destinationChainId),
15
11
  verifyingContract: intentExecutorAddress,
16
12
  },
17
13
  types: {
18
- MultiChainOps: [
14
+ SingleChainOps: [
19
15
  { name: 'account', type: 'address' },
20
- { name: 'ops', type: 'ChainOps[]' },
21
- ],
22
- ChainOps: [
23
- { name: 'chainId', type: 'uint256' },
24
16
  { name: 'nonce', type: 'uint256' },
25
17
  { name: 'ops', type: 'Op[]' },
26
18
  ],
@@ -30,10 +22,11 @@ function getTypedData(account, intentExecutorAddress, intentOp) {
30
22
  { name: 'data', type: 'bytes' },
31
23
  ],
32
24
  },
33
- primaryType: 'MultiChainOps',
25
+ primaryType: 'SingleChainOps',
34
26
  message: {
35
27
  account,
36
- ops: [chainOps],
28
+ nonce,
29
+ ops,
37
30
  },
38
31
  };
39
32
  }
@@ -1,15 +1,13 @@
1
1
  import { type Chain, type Hex } from 'viem';
2
- import { type ChainDigest, type EnableSessionData, type SmartSessionModeType } from '../modules/validators/smart-sessions';
2
+ import { type EnableSessionData } from '../modules/validators/smart-sessions';
3
3
  import type { RhinestoneConfig, Session } from '../types';
4
4
  interface SessionDetails {
5
- permissionEnableHash: Hex;
6
- mode: SmartSessionModeType;
7
- hashesAndChainIds: ChainDigest[];
5
+ signature: Hex;
6
+ nonces: bigint[];
8
7
  enableSessionData: EnableSessionData;
9
8
  }
10
- declare function getSessionDetails(config: RhinestoneConfig, sessions: Session[], sessionIndex: number, signature?: Hex): Promise<SessionDetails>;
11
- declare function getMultichainDigest(chainDigests: ChainDigest[]): Hex;
9
+ declare function getSessionDetails(config: RhinestoneConfig, sessions: Session[], sessionIndex: number, initialNonces?: bigint[], signature?: Hex): Promise<SessionDetails>;
12
10
  declare function enableSmartSession(chain: Chain, config: RhinestoneConfig, session: Session): Promise<void>;
13
- export { enableSmartSession, getSessionDetails, getMultichainDigest };
11
+ export { enableSmartSession, getSessionDetails };
14
12
  export type { SessionDetails };
15
13
  //# sourceMappingURL=smart-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAIV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAmBb,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAGtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAGV,gBAAgB,EAChB,OAAO,EACR,MAAM,UAAU,CAAA;AAGjB,UAAU,cAAc;IACtB,oBAAoB,EAAE,GAAG,CAAA;IACzB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,iBAAiB,EAAE,WAAW,EAAE,CAAA;IAChC,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,CAAC,CA4BzB;AA4FD,iBAAS,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAgC7D;AAiLD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,OAAO,iBA2BjB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACrE,YAAY,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAEV,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAiBb,OAAO,EACL,KAAK,iBAAiB,EAKvB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGzD,UAAU,cAAc;IACtB,SAAS,EAAE,GAAG,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AA6CD,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,CAAC,CAiHzB;AA+BD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,OAAO,iBA2BjB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;AAChD,YAAY,EAAE,cAAc,EAAE,CAAA"}
@@ -2,113 +2,137 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.enableSmartSession = enableSmartSession;
4
4
  exports.getSessionDetails = getSessionDetails;
5
- exports.getMultichainDigest = getMultichainDigest;
6
5
  const viem_1 = require("viem");
7
6
  const accounts_1 = require("../accounts");
8
7
  const utils_1 = require("../accounts/utils");
9
8
  const validators_1 = require("../modules/validators");
10
9
  const smart_sessions_1 = require("../modules/validators/smart-sessions");
11
10
  const error_1 = require("./error");
12
- async function getSessionDetails(config, sessions, sessionIndex, signature) {
13
- const account = (0, accounts_1.getAccountProvider)(config);
11
+ const smartSessionTypes = {
12
+ PolicyData: [
13
+ { name: 'policy', type: 'address' },
14
+ { name: 'initData', type: 'bytes' },
15
+ ],
16
+ ActionData: [
17
+ { name: 'actionTargetSelector', type: 'bytes4' },
18
+ { name: 'actionTarget', type: 'address' },
19
+ { name: 'actionPolicies', type: 'PolicyData[]' },
20
+ ],
21
+ ERC7739Context: [
22
+ { name: 'appDomainSeparator', type: 'bytes32' },
23
+ { name: 'contentName', type: 'string[]' },
24
+ ],
25
+ ERC7739Data: [
26
+ { name: 'allowedERC7739Content', type: 'ERC7739Context[]' },
27
+ { name: 'erc1271Policies', type: 'PolicyData[]' },
28
+ ],
29
+ SignedPermissions: [
30
+ { name: 'permitGenericPolicy', type: 'bool' },
31
+ { name: 'permitAdminAccess', type: 'bool' },
32
+ { name: 'ignoreSecurityAttestations', type: 'bool' },
33
+ { name: 'permitERC4337Paymaster', type: 'bool' },
34
+ { name: 'userOpPolicies', type: 'PolicyData[]' },
35
+ { name: 'erc7739Policies', type: 'ERC7739Data' },
36
+ { name: 'actions', type: 'ActionData[]' },
37
+ ],
38
+ SignedSession: [
39
+ { name: 'account', type: 'address' },
40
+ { name: 'permissions', type: 'SignedPermissions' },
41
+ { name: 'sessionValidator', type: 'address' },
42
+ { name: 'sessionValidatorInitData', type: 'bytes' },
43
+ { name: 'salt', type: 'bytes32' },
44
+ { name: 'smartSession', type: 'address' },
45
+ { name: 'nonce', type: 'uint256' },
46
+ ],
47
+ ChainSession: [
48
+ { name: 'chainId', type: 'uint64' },
49
+ { name: 'session', type: 'SignedSession' },
50
+ ],
51
+ MultiChainSession: [{ name: 'sessionsAndChainIds', type: 'ChainSession[]' }],
52
+ };
53
+ async function getSessionDetails(config, sessions, sessionIndex, initialNonces, signature) {
54
+ const chains = sessions
55
+ .map((session) => session.chain)
56
+ .filter((chain) => !!chain);
57
+ if (chains.length !== sessions.length) {
58
+ throw new error_1.SessionChainRequiredError();
59
+ }
14
60
  const accountAddress = (0, accounts_1.getAddress)(config);
15
- const sessionDetails = await getEnableSessionDetails(account.type, sessions, sessionIndex, accountAddress, config.provider);
61
+ const publicClients = chains.map((chain) => (0, viem_1.createPublicClient)({
62
+ chain,
63
+ transport: (0, utils_1.createTransport)(chain, config.provider),
64
+ }));
65
+ const sessionDatas = sessions.map((session) => (0, smart_sessions_1.getSmartSessionData)(session));
66
+ const sessionNonces = await Promise.all(sessions.map((session, index) => initialNonces?.[index] ??
67
+ getSessionNonce(publicClients[index], accountAddress, (0, validators_1.getPermissionId)(session))));
68
+ const signedSessions = sessionDatas.map((session, index) => ({
69
+ account: accountAddress,
70
+ permissions: {
71
+ permitGenericPolicy: session.actions.some((action) => action.actionTarget === smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG &&
72
+ action.actionTargetSelector ===
73
+ smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG),
74
+ permitAdminAccess: session.actions.some((action) => action.actionTargetSelector ===
75
+ smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION),
76
+ ignoreSecurityAttestations: false,
77
+ permitERC4337Paymaster: session.permitERC4337Paymaster,
78
+ userOpPolicies: session.userOpPolicies,
79
+ erc7739Policies: session.erc7739Policies,
80
+ actions: session.actions,
81
+ },
82
+ sessionValidator: session.sessionValidator,
83
+ sessionValidatorInitData: session.sessionValidatorInitData,
84
+ salt: session.salt,
85
+ smartSession: validators_1.SMART_SESSIONS_VALIDATOR_ADDRESS,
86
+ nonce: sessionNonces[index],
87
+ }));
88
+ const chainDigests = signedSessions.map((session, index) => ({
89
+ chainId: BigInt(chains[index].id),
90
+ sessionDigest: (0, viem_1.hashStruct)({
91
+ types: smartSessionTypes,
92
+ primaryType: 'SignedSession',
93
+ data: session,
94
+ }),
95
+ }));
96
+ const typedData = {
97
+ domain: {
98
+ name: 'SmartSession',
99
+ version: '1',
100
+ },
101
+ types: smartSessionTypes,
102
+ primaryType: 'MultiChainSession',
103
+ message: {
104
+ sessionsAndChainIds: signedSessions.map((session, index) => ({
105
+ chainId: BigInt(chains[index].id),
106
+ session,
107
+ })),
108
+ },
109
+ };
16
110
  const chain = sessions[sessionIndex].chain;
17
111
  if (!chain) {
18
112
  throw new error_1.SessionChainRequiredError();
19
113
  }
20
114
  const validator = {
21
- address: sessionDetails.enableSessionData.validator,
22
- isRoot: true,
115
+ address: sessionDatas[sessionIndex].sessionValidator,
116
+ isRoot: false,
23
117
  };
24
- sessionDetails.enableSessionData.signature =
25
- signature ??
26
- (await (0, accounts_1.getPackedSignature)(config, undefined, chain, validator, sessionDetails.permissionEnableHash));
27
- return sessionDetails;
28
- }
29
- async function getEnableSessionDetails(accountType, sessions, sessionIndex, accountAddress, provider) {
30
- const chainDigests = [];
31
- const chainSessions = [];
32
- for (const session of sessions) {
33
- const permissionId = (0, validators_1.getPermissionId)(session);
34
- const sessionChain = session.chain;
35
- if (!sessionChain) {
36
- throw new error_1.SessionChainRequiredError();
37
- }
38
- const publicClient = (0, viem_1.createPublicClient)({
39
- chain: sessionChain,
40
- transport: (0, utils_1.createTransport)(sessionChain, provider),
41
- });
42
- const sessionNonce = await getSessionNonce(publicClient, accountAddress, permissionId);
43
- const sessionData = await (0, smart_sessions_1.getSessionData)(session);
44
- const sessionDigest = await getSessionDigest(publicClient, accountAddress, sessionData, permissionId, validators_1.SMART_SESSION_MODE_ENABLE);
45
- chainDigests.push({
46
- chainId: BigInt(sessionChain.id),
47
- sessionDigest,
48
- });
49
- chainSessions.push({
50
- chainId: BigInt(sessionChain.id),
51
- session: {
52
- permissions: {
53
- permitGenericPolicy: false,
54
- permitAdminAccess: false,
55
- ignoreSecurityAttestations: false,
56
- permitERC4337Paymaster: sessionData.permitERC4337Paymaster,
57
- userOpPolicies: sessionData.userOpPolicies,
58
- erc7739Policies: sessionData.erc7739Policies,
59
- actions: sessionData.actions,
60
- },
61
- salt: sessionData.salt,
62
- sessionValidator: sessionData.sessionValidator,
63
- sessionValidatorInitData: sessionData.sessionValidatorInitData,
64
- account: accountAddress,
65
- smartSession: validators_1.SMART_SESSIONS_VALIDATOR_ADDRESS,
66
- nonce: sessionNonce,
67
- },
68
- });
69
- }
70
- const permissionEnableHash = getMultichainDigest(chainDigests);
71
- const sessionToEnable = sessions[sessionIndex || 0];
72
- const sessionChain = sessionToEnable.chain;
73
- if (!sessionChain) {
74
- throw new error_1.SessionChainRequiredError();
75
- }
76
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionToEnable);
118
+ const sessionSignature = signature ??
119
+ (await (0, accounts_1.getTypedDataPackedSignature)(config, undefined, chain, validator, typedData));
77
120
  return {
78
- permissionEnableHash,
79
- mode: validators_1.SMART_SESSION_MODE_ENABLE,
80
- hashesAndChainIds: chainDigests,
121
+ nonces: sessionNonces,
122
+ signature: sessionSignature,
81
123
  enableSessionData: {
82
- permissionId: (0, validators_1.getPermissionId)(sessionToEnable),
83
- validator: sessionData.sessionValidator,
84
- accountType,
85
124
  chainDigestIndex: sessionIndex,
86
- hashesAndChainIds: chainDigests,
87
- sessionToEnable: sessionData,
88
- signature: '0x',
125
+ hashesAndChainIds: chainDigests.map((chainDigest) => ({
126
+ chainId: BigInt(chainDigest.chainId),
127
+ sessionDigest: chainDigest.sessionDigest,
128
+ })),
129
+ sessionToEnable: sessionDatas[sessionIndex],
130
+ signature: sessionSignature,
89
131
  },
90
132
  };
91
133
  }
92
- function getMultichainDigest(chainDigests) {
93
- function hashChainDigestMimicRPC(chainDigest) {
94
- const CHAIN_SESSION_TYPEHASH = '0x1ea7e4bc398fa0ccd68d92b5d8931a3fd93eebe1cf0391b4ba28935801af7c80';
95
- return (0, viem_1.keccak256)((0, viem_1.encodePacked)(['bytes32', 'uint256', 'bytes32'], [
96
- CHAIN_SESSION_TYPEHASH,
97
- chainDigest.chainId,
98
- chainDigest.sessionDigest,
99
- ]));
100
- }
101
- function hashChainDigestArray(chainDigests) {
102
- const hashes = chainDigests.map((digest) => hashChainDigestMimicRPC(digest));
103
- return (0, viem_1.keccak256)((0, viem_1.concat)(hashes));
104
- }
105
- const MULTICHAIN_SESSION_TYPEHASH = '0x0c9d02fb89a1da34d66ea2088dc9ee6a58efee71cef6f1bb849ed74fc6003d98';
106
- const MULTICHAIN_DOMAIN_SEPARATOR = '0x057501e891776d1482927e5f094ae44049a4d893ba2d7b334dd7db8d38d3a0e1';
107
- const structHash = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['bytes32', 'bytes32'], [MULTICHAIN_SESSION_TYPEHASH, hashChainDigestArray(chainDigests)]));
108
- return (0, viem_1.keccak256)((0, viem_1.concat)(['0x1901', MULTICHAIN_DOMAIN_SEPARATOR, structHash]));
109
- }
110
134
  async function getSessionNonce(client, account, permissionId) {
111
- return (await client.readContract({
135
+ const nonce = await client.readContract({
112
136
  address: validators_1.SMART_SESSIONS_VALIDATOR_ADDRESS,
113
137
  abi: [
114
138
  {
@@ -128,147 +152,8 @@ async function getSessionNonce(client, account, permissionId) {
128
152
  ],
129
153
  functionName: 'getNonce',
130
154
  args: [permissionId, account],
131
- }));
132
- }
133
- async function getSessionDigest(client, account, session, permissionId, mode) {
134
- return (await client.readContract({
135
- address: validators_1.SMART_SESSIONS_VALIDATOR_ADDRESS,
136
- abi: [
137
- {
138
- type: 'function',
139
- name: 'getSessionDigest',
140
- inputs: [
141
- {
142
- name: 'permissionId',
143
- type: 'bytes32',
144
- internalType: 'PermissionId',
145
- },
146
- { name: 'account', type: 'address', internalType: 'address' },
147
- {
148
- name: 'data',
149
- type: 'tuple',
150
- internalType: 'struct Session',
151
- components: [
152
- {
153
- name: 'sessionValidator',
154
- type: 'address',
155
- internalType: 'contract ISessionValidator',
156
- },
157
- {
158
- name: 'sessionValidatorInitData',
159
- type: 'bytes',
160
- internalType: 'bytes',
161
- },
162
- { name: 'salt', type: 'bytes32', internalType: 'bytes32' },
163
- {
164
- name: 'userOpPolicies',
165
- type: 'tuple[]',
166
- internalType: 'struct PolicyData[]',
167
- components: [
168
- {
169
- name: 'policy',
170
- type: 'address',
171
- internalType: 'address',
172
- },
173
- { name: 'initData', type: 'bytes', internalType: 'bytes' },
174
- ],
175
- },
176
- {
177
- name: 'erc7739Policies',
178
- type: 'tuple',
179
- internalType: 'struct ERC7739Data',
180
- components: [
181
- {
182
- name: 'allowedERC7739Content',
183
- type: 'tuple[]',
184
- internalType: 'struct ERC7739Context[]',
185
- components: [
186
- {
187
- name: 'appDomainSeparator',
188
- type: 'bytes32',
189
- internalType: 'bytes32',
190
- },
191
- {
192
- name: 'contentName',
193
- type: 'string[]',
194
- internalType: 'string[]',
195
- },
196
- ],
197
- },
198
- {
199
- name: 'erc1271Policies',
200
- type: 'tuple[]',
201
- internalType: 'struct PolicyData[]',
202
- components: [
203
- {
204
- name: 'policy',
205
- type: 'address',
206
- internalType: 'address',
207
- },
208
- {
209
- name: 'initData',
210
- type: 'bytes',
211
- internalType: 'bytes',
212
- },
213
- ],
214
- },
215
- ],
216
- },
217
- {
218
- name: 'actions',
219
- type: 'tuple[]',
220
- internalType: 'struct ActionData[]',
221
- components: [
222
- {
223
- name: 'actionTargetSelector',
224
- type: 'bytes4',
225
- internalType: 'bytes4',
226
- },
227
- {
228
- name: 'actionTarget',
229
- type: 'address',
230
- internalType: 'address',
231
- },
232
- {
233
- name: 'actionPolicies',
234
- type: 'tuple[]',
235
- internalType: 'struct PolicyData[]',
236
- components: [
237
- {
238
- name: 'policy',
239
- type: 'address',
240
- internalType: 'address',
241
- },
242
- {
243
- name: 'initData',
244
- type: 'bytes',
245
- internalType: 'bytes',
246
- },
247
- ],
248
- },
249
- ],
250
- },
251
- {
252
- name: 'permitERC4337Paymaster',
253
- type: 'bool',
254
- internalType: 'bool',
255
- },
256
- ],
257
- },
258
- {
259
- name: 'mode',
260
- type: 'uint8',
261
- internalType: 'enum SmartSessionMode',
262
- },
263
- ],
264
- outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
265
- stateMutability: 'view',
266
- },
267
- ],
268
- functionName: 'getSessionDigest',
269
- // @ts-ignore Viem fails to infer the type of "session"
270
- args: [permissionId, account, session, Number(mode)],
271
- }));
155
+ });
156
+ return nonce;
272
157
  }
273
158
  async function enableSmartSession(chain, config, session) {
274
159
  const publicClient = (0, viem_1.createPublicClient)({
@@ -2,7 +2,7 @@ import { type Address, type Chain, type HashTypedDataParameters, type Hex, type
2
2
  import { type UserOperation } from 'viem/account-abstraction';
3
3
  import { type IntentOp, type IntentRoute } from '../orchestrator';
4
4
  import type { SettlementLayer } from '../orchestrator/types';
5
- import type { Call, CalldataInput, CallInput, RhinestoneConfig, SignerSet, SourceAssetInput, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
5
+ import type { Call, CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
6
6
  interface UserOperationResult {
7
7
  type: 'userop';
8
8
  hash: Hex;
@@ -32,7 +32,7 @@ interface SignedUserOperationData extends PreparedUserOperationData {
32
32
  }
33
33
  declare function prepareTransaction(config: RhinestoneConfig, transaction: Transaction): Promise<PreparedTransactionData>;
34
34
  declare function prepareUserOperation(config: RhinestoneConfig, transaction: UserOperationTransaction): Promise<PreparedUserOperationData>;
35
- declare function resolveCallInputs(inputs: CallInput[], config: RhinestoneConfig, chain: Chain, accountAddress: Address): Promise<CalldataInput[]>;
35
+ declare function resolveCallInputs(inputs: CallInput[] | undefined, config: RhinestoneConfig, chain: Chain, accountAddress: Address): Promise<CalldataInput[]>;
36
36
  declare function signTransaction(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedTransactionData>;
37
37
  declare function signUserOperation(config: RhinestoneConfig, preparedUserOperation: PreparedUserOperationData): Promise<SignedUserOperationData>;
38
38
  declare function signAuthorizations(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedAuthorization[]>;
@@ -42,12 +42,12 @@ declare function signAuthorizationsInternal(config: RhinestoneConfig, data: Inte
42
42
  declare function submitTransaction(config: RhinestoneConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList, dryRun?: boolean): Promise<TransactionResult>;
43
43
  declare function submitUserOperation(config: RhinestoneConfig, signedUserOperation: SignedUserOperationData): Promise<UserOperationResult>;
44
44
  declare function getTokenRequests(sourceChains: Chain[], targetChain: Chain, initialTokenRequests: TokenRequest[] | undefined, settlementLayers: SettlementLayer[] | undefined): TokenRequest[];
45
- declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CalldataInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], accountAddress: Address, isSponsored: boolean, eip7702InitSignature: Hex | undefined, settlementLayers: SettlementLayer[] | undefined, sourceAssets: SourceAssetInput | undefined, feeAsset: Address | TokenSymbol | undefined, lockFunds?: boolean, account?: {
45
+ declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CalldataInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], recipientInput: RhinestoneAccountConfig | Address | undefined, accountAddress: Address, isSponsored: boolean, eip7702InitSignature: Hex | undefined, settlementLayers: SettlementLayer[] | undefined, sourceAssets: SourceAssetInput | undefined, feeAsset: Address | TokenSymbol | undefined, lockFunds: boolean | undefined, account: {
46
46
  setupOps?: {
47
47
  to: Address;
48
48
  data: Hex;
49
49
  }[];
50
- }): Promise<IntentRoute>;
50
+ } | undefined): Promise<IntentRoute>;
51
51
  declare function signIntent(config: RhinestoneConfig, targetChain: Chain, intentOp: IntentOp, signers?: SignerSet): Promise<{
52
52
  originSignatures: any[];
53
53
  destinationSignature: `0x${string}`;
@@ -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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"}