@rhinestone/sdk 1.0.0-alpha.1 → 1.0.0-alpha.10

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 (102) hide show
  1. package/dist/src/accounts/error.d.ts.map +1 -1
  2. package/dist/src/accounts/error.js +2 -0
  3. package/dist/src/accounts/index.d.ts +15 -8
  4. package/dist/src/accounts/index.d.ts.map +1 -1
  5. package/dist/src/accounts/index.js +204 -164
  6. package/dist/src/accounts/index.test.js +2 -2
  7. package/dist/src/accounts/kernel.d.ts +7 -9
  8. package/dist/src/accounts/kernel.d.ts.map +1 -1
  9. package/dist/src/accounts/kernel.js +0 -9
  10. package/dist/src/accounts/kernel.test.js +6 -6
  11. package/dist/src/accounts/nexus.d.ts +14 -13
  12. package/dist/src/accounts/nexus.d.ts.map +1 -1
  13. package/dist/src/accounts/nexus.js +91 -88
  14. package/dist/src/accounts/nexus.test.js +10 -10
  15. package/dist/src/accounts/safe.d.ts +4 -6
  16. package/dist/src/accounts/safe.d.ts.map +1 -1
  17. package/dist/src/accounts/safe.js +20 -30
  18. package/dist/src/accounts/safe.test.js +6 -6
  19. package/dist/src/accounts/startale.d.ts +20 -0
  20. package/dist/src/accounts/startale.d.ts.map +1 -0
  21. package/dist/src/accounts/startale.js +100 -0
  22. package/dist/src/accounts/startale.test.d.ts +2 -0
  23. package/dist/src/accounts/startale.test.d.ts.map +1 -0
  24. package/dist/src/accounts/startale.test.js +97 -0
  25. package/dist/src/accounts/utils.d.ts +4 -3
  26. package/dist/src/accounts/utils.d.ts.map +1 -1
  27. package/dist/src/accounts/utils.js +44 -0
  28. package/dist/src/actions/index.d.ts +17 -7
  29. package/dist/src/actions/index.d.ts.map +1 -1
  30. package/dist/src/actions/index.js +108 -15
  31. package/dist/src/actions/index.test.js +35 -17
  32. package/dist/src/actions/smart-session.d.ts +2 -2
  33. package/dist/src/actions/smart-session.d.ts.map +1 -1
  34. package/dist/src/execution/compact.d.ts +6 -3
  35. package/dist/src/execution/compact.d.ts.map +1 -1
  36. package/dist/src/execution/compact.js +44 -1
  37. package/dist/src/execution/error.d.ts +2 -9
  38. package/dist/src/execution/error.d.ts.map +1 -1
  39. package/dist/src/execution/error.js +4 -13
  40. package/dist/src/execution/index.d.ts +2 -3
  41. package/dist/src/execution/index.d.ts.map +1 -1
  42. package/dist/src/execution/index.js +34 -49
  43. package/dist/src/execution/smart-session.d.ts +1 -1
  44. package/dist/src/execution/smart-session.d.ts.map +1 -1
  45. package/dist/src/execution/smart-session.js +12 -17
  46. package/dist/src/execution/utils.d.ts +13 -11
  47. package/dist/src/execution/utils.d.ts.map +1 -1
  48. package/dist/src/execution/utils.js +141 -85
  49. package/dist/src/index.d.ts +14 -14
  50. package/dist/src/index.d.ts.map +1 -1
  51. package/dist/src/index.js +24 -20
  52. package/dist/src/modules/index.d.ts +3 -7
  53. package/dist/src/modules/index.d.ts.map +1 -1
  54. package/dist/src/modules/index.js +1 -10
  55. package/dist/src/modules/index.test.js +2 -2
  56. package/dist/src/modules/omni-account.d.ts +1 -4
  57. package/dist/src/modules/omni-account.d.ts.map +1 -1
  58. package/dist/src/modules/omni-account.js +2 -8
  59. package/dist/src/modules/read.d.ts +5 -6
  60. package/dist/src/modules/read.d.ts.map +1 -1
  61. package/dist/src/modules/read.js +6 -37
  62. package/dist/src/modules/validators/core.d.ts +6 -7
  63. package/dist/src/modules/validators/core.d.ts.map +1 -1
  64. package/dist/src/modules/validators/core.js +83 -8
  65. package/dist/src/modules/validators/core.test.js +4 -4
  66. package/dist/src/modules/validators/smart-sessions.d.ts +3 -3
  67. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  68. package/dist/src/modules/validators/smart-sessions.js +7 -6
  69. package/dist/src/modules/validators/smart-sessions.test.js +4 -4
  70. package/dist/src/orchestrator/client.d.ts +1 -0
  71. package/dist/src/orchestrator/client.d.ts.map +1 -1
  72. package/dist/src/orchestrator/client.js +136 -94
  73. package/dist/src/orchestrator/consts.d.ts +3 -3
  74. package/dist/src/orchestrator/consts.d.ts.map +1 -1
  75. package/dist/src/orchestrator/consts.js +4 -4
  76. package/dist/src/orchestrator/index.d.ts +2 -2
  77. package/dist/src/orchestrator/index.d.ts.map +1 -1
  78. package/dist/src/orchestrator/index.js +1 -7
  79. package/dist/src/orchestrator/registry.d.ts +31 -12
  80. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  81. package/dist/src/orchestrator/registry.js +57 -380
  82. package/dist/src/orchestrator/registry.json +365 -0
  83. package/dist/src/orchestrator/registry.test.d.ts.map +1 -0
  84. package/dist/src/orchestrator/registry.test.js +137 -0
  85. package/dist/src/orchestrator/types.d.ts +69 -14
  86. package/dist/src/orchestrator/types.d.ts.map +1 -1
  87. package/dist/src/orchestrator/utils.d.ts.map +1 -1
  88. package/dist/src/orchestrator/utils.js +2 -2
  89. package/dist/src/types.d.ts +41 -21
  90. package/dist/src/types.d.ts.map +1 -1
  91. package/dist/test/consts.d.ts +2 -2
  92. package/dist/test/consts.d.ts.map +1 -1
  93. package/package.json +1 -1
  94. package/dist/src/actions/registry.d.ts +0 -7
  95. package/dist/src/actions/registry.d.ts.map +0 -1
  96. package/dist/src/actions/registry.js +0 -7
  97. package/dist/src/actions/registry.test.d.ts.map +0 -1
  98. package/dist/src/actions/registry.test.js +0 -25
  99. package/dist/src/modules/registry.d.ts +0 -13
  100. package/dist/src/modules/registry.d.ts.map +0 -1
  101. package/dist/src/modules/registry.js +0 -67
  102. /package/dist/src/{actions → orchestrator}/registry.test.d.ts +0 -0
@@ -1,26 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.SourceTargetChainMismatchError = exports.SourceChainRequiredForSmartSessionsError = exports.ExecutionError = exports.IntentFailedError = exports.isExecutionError = void 0;
3
+ exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.SourceChainsNotAvailableForUserOpFlowError = exports.ExecutionError = exports.IntentFailedError = exports.isExecutionError = void 0;
4
4
  exports.sendTransaction = sendTransaction;
5
5
  exports.waitForExecution = waitForExecution;
6
6
  exports.getMaxSpendableAmount = getMaxSpendableAmount;
7
7
  exports.getPortfolio = getPortfolio;
8
- exports.depositEther = depositEther;
9
8
  const viem_1 = require("viem");
10
9
  const chains_1 = require("viem/chains");
11
10
  const accounts_1 = require("../accounts");
12
11
  const utils_1 = require("../accounts/utils");
13
12
  const orchestrator_1 = require("../orchestrator");
14
13
  const registry_1 = require("../orchestrator/registry");
15
- const compact_1 = require("./compact");
16
14
  const error_1 = require("./error");
17
15
  Object.defineProperty(exports, "ExecutionError", { enumerable: true, get: function () { return error_1.ExecutionError; } });
18
16
  Object.defineProperty(exports, "IntentFailedError", { enumerable: true, get: function () { return error_1.IntentFailedError; } });
19
17
  Object.defineProperty(exports, "isExecutionError", { enumerable: true, get: function () { return error_1.isExecutionError; } });
20
18
  Object.defineProperty(exports, "OrderPathRequiredForIntentsError", { enumerable: true, get: function () { return error_1.OrderPathRequiredForIntentsError; } });
21
19
  Object.defineProperty(exports, "SessionChainRequiredError", { enumerable: true, get: function () { return error_1.SessionChainRequiredError; } });
22
- Object.defineProperty(exports, "SourceChainRequiredForSmartSessionsError", { enumerable: true, get: function () { return error_1.SourceChainRequiredForSmartSessionsError; } });
23
- Object.defineProperty(exports, "SourceTargetChainMismatchError", { enumerable: true, get: function () { return error_1.SourceTargetChainMismatchError; } });
20
+ Object.defineProperty(exports, "SourceChainsNotAvailableForUserOpFlowError", { enumerable: true, get: function () { return error_1.SourceChainsNotAvailableForUserOpFlowError; } });
24
21
  Object.defineProperty(exports, "UserOperationRequiredForSmartSessionsError", { enumerable: true, get: function () { return error_1.UserOperationRequiredForSmartSessionsError; } });
25
22
  const smart_session_1 = require("./smart-session");
26
23
  const utils_2 = require("./utils");
@@ -28,23 +25,17 @@ const POLLING_INTERVAL = 500;
28
25
  async function sendTransaction(config, transaction) {
29
26
  if ('chain' in transaction) {
30
27
  // Same-chain transaction
31
- return await sendTransactionInternal(config, transaction.chain, transaction.chain, transaction.calls, transaction.gasLimit, transaction.tokenRequests, transaction.signers);
28
+ return await sendTransactionInternal(config, [transaction.chain], transaction.chain, transaction.calls, transaction.gasLimit, transaction.tokenRequests, transaction.signers);
32
29
  }
33
30
  else {
34
31
  // Cross-chain transaction
35
- return await sendTransactionInternal(config, transaction.sourceChain, transaction.targetChain, transaction.calls, transaction.gasLimit, transaction.tokenRequests, transaction.signers);
32
+ return await sendTransactionInternal(config, transaction.sourceChains || [], transaction.targetChain, transaction.calls, transaction.gasLimit, transaction.tokenRequests, transaction.signers);
36
33
  }
37
34
  }
38
- async function sendTransactionInternal(config, sourceChain, targetChain, calls, gasLimit, initialTokenRequests, signers) {
39
- if (sourceChain) {
40
- const isAccountDeployed = await (0, accounts_1.isDeployed)(sourceChain, config);
41
- if (!isAccountDeployed) {
42
- await (0, accounts_1.deploySource)(sourceChain, config);
43
- }
44
- }
35
+ async function sendTransactionInternal(config, sourceChains, targetChain, callInputs, gasLimit, initialTokenRequests, signers) {
45
36
  const accountAddress = (0, accounts_1.getAddress)(config);
46
37
  // Across requires passing some value to repay the solvers
47
- const tokenRequests = initialTokenRequests.length === 0
38
+ const tokenRequests = !initialTokenRequests || initialTokenRequests.length === 0
48
39
  ? [
49
40
  {
50
41
  address: viem_1.zeroAddress,
@@ -54,34 +45,34 @@ async function sendTransactionInternal(config, sourceChain, targetChain, calls,
54
45
  : initialTokenRequests;
55
46
  const asUserOp = signers?.type === 'guardians' || signers?.type === 'session';
56
47
  if (asUserOp) {
57
- if (!sourceChain) {
58
- throw new error_1.SourceChainRequiredForSmartSessionsError();
59
- }
60
48
  const withSession = signers?.type === 'session' ? signers.session : null;
61
49
  if (withSession) {
62
- await (0, smart_session_1.enableSmartSession)(sourceChain, config, withSession);
50
+ await (0, smart_session_1.enableSmartSession)(targetChain, config, withSession);
63
51
  }
64
52
  // Smart sessions require a UserOp flow
65
- return await sendTransactionAsUserOp(config, sourceChain, targetChain, calls, signers);
53
+ return await sendTransactionAsUserOp(config, targetChain, callInputs, signers);
66
54
  }
67
55
  else {
68
- return await sendTransactionAsIntent(config, sourceChain, targetChain, calls, gasLimit, tokenRequests, accountAddress, signers);
56
+ return await sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, accountAddress, signers);
69
57
  }
70
58
  }
71
- async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls, signers) {
59
+ async function sendTransactionAsUserOp(config, chain, callInputs, signers) {
60
+ // Make sure the account is deployed
61
+ await (0, accounts_1.deploy)(config, chain);
72
62
  const withSession = signers?.type === 'session' ? signers.session : null;
73
63
  const publicClient = (0, viem_1.createPublicClient)({
74
- chain: sourceChain,
75
- transport: (0, viem_1.http)(),
64
+ chain,
65
+ transport: (0, utils_1.createTransport)(chain, config.provider),
76
66
  });
77
- const validatorAccount = await (0, utils_2.getValidatorAccount)(config, signers, publicClient, sourceChain);
67
+ const validatorAccount = await (0, utils_2.getValidatorAccount)(config, signers, publicClient, chain);
78
68
  if (!validatorAccount) {
79
69
  throw new Error('No validator account found');
80
70
  }
81
71
  const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
82
72
  if (withSession) {
83
- await (0, smart_session_1.enableSmartSession)(targetChain, config, withSession);
73
+ await (0, smart_session_1.enableSmartSession)(chain, config, withSession);
84
74
  }
75
+ const calls = (0, utils_2.parseCalls)(callInputs, chain.id);
85
76
  const hash = await bundlerClient.sendUserOperation({
86
77
  account: validatorAccount,
87
78
  calls,
@@ -89,17 +80,23 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
89
80
  return {
90
81
  type: 'userop',
91
82
  hash,
92
- sourceChain: sourceChain.id,
93
- targetChain: targetChain.id,
83
+ chain: chain.id,
94
84
  };
95
85
  }
96
- async function sendTransactionAsIntent(config, sourceChain, targetChain, calls, gasLimit, tokenRequests, accountAddress, signers) {
97
- const { intentRoute, hash: intentHash } = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChain, targetChain, calls, gasLimit, tokenRequests, accountAddress);
86
+ async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, accountAddress, signers) {
87
+ const { intentRoute, hash: intentHash } = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, accountAddress);
98
88
  if (!intentRoute) {
99
89
  throw new error_1.OrderPathRequiredForIntentsError();
100
90
  }
101
- const signature = await (0, utils_2.signIntent)(config, sourceChain, targetChain, intentHash, signers);
102
- return await (0, utils_2.submitIntentInternal)(config, sourceChain, targetChain, intentRoute.intentOp, signature, true);
91
+ const signature = await (0, utils_2.signIntent)(config, targetChain, intentHash, signers);
92
+ const authorizations = config.eoa
93
+ ? await (0, utils_2.signAuthorizationsInternal)(config, {
94
+ type: 'intent',
95
+ intentRoute,
96
+ hash: intentHash,
97
+ })
98
+ : [];
99
+ return await (0, utils_2.submitIntentInternal)(config, sourceChains, targetChain, intentRoute.intentOp, signature, authorizations);
103
100
  }
104
101
  async function waitForExecution(config, result, acceptsPreconfirmations) {
105
102
  const validStatuses = new Set([
@@ -124,10 +121,13 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
124
121
  return intentStatus;
125
122
  }
126
123
  case 'userop': {
127
- const targetChain = (0, registry_1.getChainById)(result.targetChain);
124
+ const targetChain = (0, registry_1.getChainById)(result.chain);
125
+ if (!targetChain) {
126
+ throw new Error(`Unsupported chain ID: ${result.chain}`);
127
+ }
128
128
  const publicClient = (0, viem_1.createPublicClient)({
129
129
  chain: targetChain,
130
- transport: (0, viem_1.http)(),
130
+ transport: (0, utils_1.createTransport)(targetChain, config.provider),
131
131
  });
132
132
  const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
133
133
  const receipt = await bundlerClient.waitForUserOperationReceipt({
@@ -148,18 +148,3 @@ async function getPortfolio(config, onTestnets) {
148
148
  const orchestrator = (0, utils_2.getOrchestratorByChain)(chainId, config.rhinestoneApiKey);
149
149
  return orchestrator.getPortfolio(address);
150
150
  }
151
- async function depositEther(config, chain, value) {
152
- const address = (0, accounts_1.getAddress)(config);
153
- const owners = config.owners;
154
- return await sendTransactionAsUserOp(config, chain, chain, [(0, compact_1.getDepositEtherCall)(address, value)], owners.type === 'ecdsa'
155
- ? {
156
- type: 'owner',
157
- kind: 'ecdsa',
158
- accounts: owners.accounts,
159
- }
160
- : {
161
- type: 'owner',
162
- kind: 'passkey',
163
- account: owners.account,
164
- });
165
- }
@@ -1,5 +1,5 @@
1
1
  import { type Chain, type Hex } from 'viem';
2
- import { ChainDigest, EnableSessionData, SmartSessionModeType } from '../modules/validators/smart-sessions';
2
+ import { type ChainDigest, type EnableSessionData, type SmartSessionModeType } from '../modules/validators/smart-sessions';
3
3
  import type { RhinestoneAccountConfig, Session } from '../types';
4
4
  interface SessionDetails {
5
5
  permissionEnableHash: Hex;
@@ -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,EAIT,MAAM,MAAM,CAAA;AAgBb,OAAO,EACL,WAAW,EAEX,iBAAiB,EAGjB,oBAAoB,EACrB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAe,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAG7E,UAAU,cAAc;IACtB,oBAAoB,EAAE,GAAG,CAAA;IACzB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,iBAAiB,EAAE,WAAW,EAAE,CAAA;IAChC,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,CAAC,CA2BzB;AA2FD,iBAAS,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAgC7D;AAiLD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,iBAiCjB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACrE,YAAY,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAIV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAmBb,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAGtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAGV,uBAAuB,EACvB,OAAO,EACR,MAAM,UAAU,CAAA;AAGjB,UAAU,cAAc;IACtB,oBAAoB,EAAE,GAAG,CAAA;IACzB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,iBAAiB,EAAE,WAAW,EAAE,CAAA;IAChC,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,CAAC,CA4BzB;AAgGD,iBAAS,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAgC7D;AAiLD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,iBA+BjB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACrE,YAAY,EAAE,cAAc,EAAE,CAAA"}
@@ -6,14 +6,13 @@ exports.getMultichainDigest = getMultichainDigest;
6
6
  const viem_1 = require("viem");
7
7
  const accounts_1 = require("../accounts");
8
8
  const utils_1 = require("../accounts/utils");
9
- const modules_1 = require("../modules");
10
9
  const validators_1 = require("../modules/validators");
11
10
  const smart_sessions_1 = require("../modules/validators/smart-sessions");
12
11
  const error_1 = require("./error");
13
12
  async function getSessionDetails(config, sessions, sessionIndex, signature) {
14
13
  const account = (0, accounts_1.getAccountProvider)(config);
15
14
  const accountAddress = (0, accounts_1.getAddress)(config);
16
- const sessionDetails = await getEnableSessionDetails(account.type, sessions, sessionIndex, accountAddress);
15
+ const sessionDetails = await getEnableSessionDetails(account.type, sessions, sessionIndex, accountAddress, config.provider);
17
16
  const chain = sessions[sessionIndex].chain;
18
17
  if (!chain) {
19
18
  throw new error_1.SessionChainRequiredError();
@@ -24,24 +23,24 @@ async function getSessionDetails(config, sessions, sessionIndex, signature) {
24
23
  };
25
24
  sessionDetails.enableSessionData.signature =
26
25
  signature ??
27
- (await (0, accounts_1.getPackedSignature)(config, config.owners, chain, validator, sessionDetails.permissionEnableHash));
26
+ (await (0, accounts_1.getPackedSignature)(config, undefined, chain, validator, sessionDetails.permissionEnableHash));
28
27
  return sessionDetails;
29
28
  }
30
- async function getEnableSessionDetails(accountType, sessions, sessionIndex, accountAddress) {
29
+ async function getEnableSessionDetails(accountType, sessions, sessionIndex, accountAddress, provider) {
31
30
  const chainDigests = [];
32
31
  const chainSessions = [];
33
32
  for (const session of sessions) {
34
33
  const permissionId = (0, validators_1.getPermissionId)(session);
35
- const publicClient = (0, viem_1.createPublicClient)({
36
- chain: session.chain,
37
- transport: (0, viem_1.http)(),
38
- });
39
34
  const sessionChain = session.chain;
40
35
  if (!sessionChain) {
41
36
  throw new error_1.SessionChainRequiredError();
42
37
  }
38
+ const publicClient = (0, viem_1.createPublicClient)({
39
+ chain: sessionChain,
40
+ transport: (0, utils_1.createTransport)(sessionChain, provider),
41
+ });
43
42
  const sessionNonce = await getSessionNonce(publicClient, accountAddress, permissionId);
44
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, session);
43
+ const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, session, provider);
45
44
  const sessionDigest = await getSessionDigest(publicClient, accountAddress, sessionData, permissionId, validators_1.SMART_SESSION_MODE_ENABLE);
46
45
  chainDigests.push({
47
46
  chainId: BigInt(sessionChain.id),
@@ -74,7 +73,7 @@ async function getEnableSessionDetails(accountType, sessions, sessionIndex, acco
74
73
  if (!sessionChain) {
75
74
  throw new error_1.SessionChainRequiredError();
76
75
  }
77
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, sessionToEnable);
76
+ const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, sessionToEnable, provider);
78
77
  return {
79
78
  permissionEnableHash,
80
79
  mode: validators_1.SMART_SESSION_MODE_ENABLE,
@@ -274,23 +273,19 @@ async function getSessionDigest(client, account, session, permissionId, mode) {
274
273
  async function enableSmartSession(chain, config, session) {
275
274
  const publicClient = (0, viem_1.createPublicClient)({
276
275
  chain,
277
- transport: (0, viem_1.http)(),
276
+ transport: (0, utils_1.createTransport)(chain, config.provider),
278
277
  });
279
278
  const address = (0, accounts_1.getAddress)(config);
280
279
  const isEnabled = await (0, validators_1.isSessionEnabled)(publicClient, address, (0, validators_1.getPermissionId)(session));
281
280
  if (isEnabled) {
282
281
  return;
283
282
  }
284
- const enableSessionCall = await (0, validators_1.getEnableSessionCall)(chain, session);
285
- const trustedAttesters = await (0, modules_1.getTrustedAttesters)(publicClient, address);
286
- const trustAttesterCall = trustedAttesters.length === 0 ? (0, modules_1.getTrustAttesterCall)(config) : undefined;
283
+ const enableSessionCall = await (0, validators_1.getEnableSessionCall)(chain, session, config.provider);
287
284
  const smartAccount = await (0, accounts_1.getSmartAccount)(config, publicClient, chain);
288
285
  const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
289
286
  const opHash = await bundlerClient.sendUserOperation({
290
287
  account: smartAccount,
291
- calls: trustAttesterCall
292
- ? [trustAttesterCall, enableSessionCall]
293
- : [enableSessionCall],
288
+ calls: [enableSessionCall],
294
289
  });
295
290
  await bundlerClient.waitForUserOperationReceipt({
296
291
  hash: opHash,
@@ -1,12 +1,11 @@
1
- import { Address, Chain, Hex, PublicClient } from 'viem';
2
- import { UserOperation } from 'viem/account-abstraction';
3
- import { IntentOp, IntentRoute } from '../orchestrator';
4
- import { Call, RhinestoneAccountConfig, SignerSet, TokenRequest, Transaction } from '../types';
1
+ import { type Address, type Chain, type Hex, type PublicClient, type SignedAuthorization, type SignedAuthorizationList } from 'viem';
2
+ import { type UserOperation } from 'viem/account-abstraction';
3
+ import { type IntentOp, type IntentRoute } from '../orchestrator';
4
+ import type { Call, CallInput, RhinestoneAccountConfig, SignerSet, TokenRequest, Transaction } from '../types';
5
5
  type TransactionResult = {
6
6
  type: 'userop';
7
7
  hash: Hex;
8
- sourceChain: number;
9
- targetChain: number;
8
+ chain: number;
10
9
  } | {
11
10
  type: 'intent';
12
11
  id: bigint;
@@ -32,12 +31,15 @@ interface SignedTransactionData extends PreparedTransactionData {
32
31
  }
33
32
  declare function prepareTransaction(config: RhinestoneAccountConfig, transaction: Transaction): Promise<PreparedTransactionData>;
34
33
  declare function signTransaction(config: RhinestoneAccountConfig, preparedTransaction: PreparedTransactionData): Promise<SignedTransactionData>;
35
- declare function submitTransaction(config: RhinestoneAccountConfig, signedTransaction: SignedTransactionData): Promise<TransactionResult>;
36
- declare function prepareTransactionAsIntent(config: RhinestoneAccountConfig, sourceChain: Chain | undefined, targetChain: Chain, calls: Call[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], accountAddress: Address): Promise<IntentData>;
37
- declare function signIntent(config: RhinestoneAccountConfig, sourceChain: Chain | undefined, targetChain: Chain, intentHash: Hex, signers?: SignerSet): Promise<`0x${string}`>;
34
+ declare function signAuthorizations(config: RhinestoneAccountConfig, preparedTransaction: PreparedTransactionData): Promise<SignedAuthorization[]>;
35
+ declare function signAuthorizationsInternal(config: RhinestoneAccountConfig, data: IntentData | UserOpData): Promise<SignedAuthorization[]>;
36
+ declare function submitTransaction(config: RhinestoneAccountConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList): Promise<TransactionResult>;
37
+ declare function prepareTransactionAsIntent(config: RhinestoneAccountConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CallInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], accountAddress: Address, eip7702InitSignature?: Hex): Promise<IntentData>;
38
+ declare function signIntent(config: RhinestoneAccountConfig, targetChain: Chain, intentHash: Hex, signers?: SignerSet): Promise<`0x${string}`>;
38
39
  declare function getOrchestratorByChain(chainId: number, apiKey: string): import("../orchestrator").Orchestrator;
39
- declare function submitIntentInternal(config: RhinestoneAccountConfig, sourceChain: Chain | undefined, targetChain: Chain, intentOp: IntentOp, signature: Hex, deploy: boolean): Promise<TransactionResult>;
40
+ declare function submitIntentInternal(config: RhinestoneAccountConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, signature: Hex, authorizations: SignedAuthorizationList): Promise<TransactionResult>;
40
41
  declare function getValidatorAccount(config: RhinestoneAccountConfig, signers: SignerSet | undefined, publicClient: PublicClient, chain: Chain): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | null | undefined>;
41
- export { prepareTransaction, signTransaction, submitTransaction, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, };
42
+ declare function parseCalls(calls: CallInput[], chainId: number): Call[];
43
+ export { prepareTransaction, signTransaction, signAuthorizations, signAuthorizationsInternal, submitTransaction, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, };
42
44
  export type { IntentData, TransactionResult, PreparedTransactionData, SignedTransactionData, };
43
45
  //# 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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"}