@rhinestone/sdk 1.0.0-alpha.2 → 1.0.0-alpha.3

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 (64) hide show
  1. package/dist/src/accounts/index.d.ts +3 -3
  2. package/dist/src/accounts/index.d.ts.map +1 -1
  3. package/dist/src/accounts/index.js +10 -9
  4. package/dist/src/accounts/kernel.d.ts +6 -6
  5. package/dist/src/accounts/kernel.d.ts.map +1 -1
  6. package/dist/src/accounts/nexus.d.ts +3 -3
  7. package/dist/src/accounts/nexus.d.ts.map +1 -1
  8. package/dist/src/accounts/safe.d.ts +3 -3
  9. package/dist/src/accounts/safe.d.ts.map +1 -1
  10. package/dist/src/accounts/utils.d.ts +4 -3
  11. package/dist/src/accounts/utils.d.ts.map +1 -1
  12. package/dist/src/accounts/utils.js +44 -0
  13. package/dist/src/actions/index.d.ts +5 -5
  14. package/dist/src/actions/index.d.ts.map +1 -1
  15. package/dist/src/actions/index.js +8 -4
  16. package/dist/src/actions/index.test.js +18 -0
  17. package/dist/src/actions/registry.d.ts +1 -1
  18. package/dist/src/actions/registry.d.ts.map +1 -1
  19. package/dist/src/actions/registry.test.js +1 -2
  20. package/dist/src/actions/smart-session.d.ts +2 -2
  21. package/dist/src/actions/smart-session.d.ts.map +1 -1
  22. package/dist/src/execution/compact.d.ts +2 -2
  23. package/dist/src/execution/compact.d.ts.map +1 -1
  24. package/dist/src/execution/compact.js +3 -1
  25. package/dist/src/execution/index.d.ts.map +1 -1
  26. package/dist/src/execution/index.js +14 -10
  27. package/dist/src/execution/smart-session.d.ts +1 -1
  28. package/dist/src/execution/smart-session.d.ts.map +1 -1
  29. package/dist/src/execution/smart-session.js +10 -10
  30. package/dist/src/execution/utils.d.ts +7 -6
  31. package/dist/src/execution/utils.d.ts.map +1 -1
  32. package/dist/src/execution/utils.js +18 -12
  33. package/dist/src/index.d.ts +8 -8
  34. package/dist/src/index.d.ts.map +1 -1
  35. package/dist/src/index.js +10 -8
  36. package/dist/src/modules/read.d.ts +5 -5
  37. package/dist/src/modules/read.d.ts.map +1 -1
  38. package/dist/src/modules/read.js +7 -6
  39. package/dist/src/modules/registry.d.ts +2 -2
  40. package/dist/src/modules/registry.d.ts.map +1 -1
  41. package/dist/src/modules/validators/core.d.ts +1 -1
  42. package/dist/src/modules/validators/core.d.ts.map +1 -1
  43. package/dist/src/modules/validators/smart-sessions.d.ts +3 -3
  44. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  45. package/dist/src/modules/validators/smart-sessions.js +7 -6
  46. package/dist/src/orchestrator/client.d.ts.map +1 -1
  47. package/dist/src/orchestrator/index.d.ts +2 -2
  48. package/dist/src/orchestrator/index.d.ts.map +1 -1
  49. package/dist/src/orchestrator/index.js +1 -7
  50. package/dist/src/orchestrator/registry.d.ts +31 -12
  51. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  52. package/dist/src/orchestrator/registry.js +56 -379
  53. package/dist/src/orchestrator/registry.json +356 -0
  54. package/dist/src/orchestrator/registry.test.d.ts +2 -0
  55. package/dist/src/orchestrator/registry.test.d.ts.map +1 -0
  56. package/dist/src/orchestrator/registry.test.js +137 -0
  57. package/dist/src/orchestrator/types.d.ts +1 -2
  58. package/dist/src/orchestrator/types.d.ts.map +1 -1
  59. package/dist/src/orchestrator/utils.d.ts.map +1 -1
  60. package/dist/src/types.d.ts +20 -17
  61. package/dist/src/types.d.ts.map +1 -1
  62. package/dist/test/consts.d.ts +2 -2
  63. package/dist/test/consts.d.ts.map +1 -1
  64. package/package.json +1 -1
@@ -35,7 +35,7 @@ async function sendTransaction(config, transaction) {
35
35
  return await sendTransactionInternal(config, transaction.sourceChain, transaction.targetChain, transaction.calls, transaction.gasLimit, transaction.tokenRequests, transaction.signers);
36
36
  }
37
37
  }
38
- async function sendTransactionInternal(config, sourceChain, targetChain, calls, gasLimit, initialTokenRequests, signers) {
38
+ async function sendTransactionInternal(config, sourceChain, targetChain, callInputs, gasLimit, initialTokenRequests, signers) {
39
39
  if (sourceChain) {
40
40
  const isAccountDeployed = await (0, accounts_1.isDeployed)(sourceChain, config);
41
41
  if (!isAccountDeployed) {
@@ -44,7 +44,7 @@ async function sendTransactionInternal(config, sourceChain, targetChain, calls,
44
44
  }
45
45
  const accountAddress = (0, accounts_1.getAddress)(config);
46
46
  // Across requires passing some value to repay the solvers
47
- const tokenRequests = initialTokenRequests.length === 0
47
+ const tokenRequests = !initialTokenRequests || initialTokenRequests.length === 0
48
48
  ? [
49
49
  {
50
50
  address: viem_1.zeroAddress,
@@ -62,17 +62,17 @@ async function sendTransactionInternal(config, sourceChain, targetChain, calls,
62
62
  await (0, smart_session_1.enableSmartSession)(sourceChain, config, withSession);
63
63
  }
64
64
  // Smart sessions require a UserOp flow
65
- return await sendTransactionAsUserOp(config, sourceChain, targetChain, calls, signers);
65
+ return await sendTransactionAsUserOp(config, sourceChain, targetChain, callInputs, signers);
66
66
  }
67
67
  else {
68
- return await sendTransactionAsIntent(config, sourceChain, targetChain, calls, gasLimit, tokenRequests, accountAddress, signers);
68
+ return await sendTransactionAsIntent(config, sourceChain, targetChain, callInputs, gasLimit, tokenRequests, accountAddress, signers);
69
69
  }
70
70
  }
71
- async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls, signers) {
71
+ async function sendTransactionAsUserOp(config, sourceChain, targetChain, callInputs, signers) {
72
72
  const withSession = signers?.type === 'session' ? signers.session : null;
73
73
  const publicClient = (0, viem_1.createPublicClient)({
74
74
  chain: sourceChain,
75
- transport: (0, viem_1.http)(),
75
+ transport: (0, utils_1.createTransport)(sourceChain, config.provider),
76
76
  });
77
77
  const validatorAccount = await (0, utils_2.getValidatorAccount)(config, signers, publicClient, sourceChain);
78
78
  if (!validatorAccount) {
@@ -82,6 +82,7 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
82
82
  if (withSession) {
83
83
  await (0, smart_session_1.enableSmartSession)(targetChain, config, withSession);
84
84
  }
85
+ const calls = (0, utils_2.parseCalls)(callInputs, targetChain.id);
85
86
  const hash = await bundlerClient.sendUserOperation({
86
87
  account: validatorAccount,
87
88
  calls,
@@ -93,8 +94,8 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
93
94
  targetChain: targetChain.id,
94
95
  };
95
96
  }
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);
97
+ async function sendTransactionAsIntent(config, sourceChain, targetChain, callInputs, gasLimit, tokenRequests, accountAddress, signers) {
98
+ const { intentRoute, hash: intentHash } = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChain, targetChain, callInputs, gasLimit, tokenRequests, accountAddress);
98
99
  if (!intentRoute) {
99
100
  throw new error_1.OrderPathRequiredForIntentsError();
100
101
  }
@@ -125,9 +126,12 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
125
126
  }
126
127
  case 'userop': {
127
128
  const targetChain = (0, registry_1.getChainById)(result.targetChain);
129
+ if (!targetChain) {
130
+ throw new Error(`Unsupported chain ID: ${result.targetChain}`);
131
+ }
128
132
  const publicClient = (0, viem_1.createPublicClient)({
129
133
  chain: targetChain,
130
- transport: (0, viem_1.http)(),
134
+ transport: (0, utils_1.createTransport)(targetChain, config.provider),
131
135
  });
132
136
  const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
133
137
  const receipt = await bundlerClient.waitForUserOperationReceipt({
@@ -158,7 +162,7 @@ async function deposit(config, chain, amount, tokenAddress) {
158
162
  // ERC20 deposit
159
163
  const publicClient = (0, viem_1.createPublicClient)({
160
164
  chain,
161
- transport: (0, viem_1.http)(),
165
+ transport: (0, utils_1.createTransport)(chain, config.provider),
162
166
  });
163
167
  const allowance = await publicClient.readContract({
164
168
  address: tokenAddress,
@@ -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;AAoBb,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,iBAqCjB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACrE,YAAY,EAAE,cAAc,EAAE,CAAA"}
@@ -13,7 +13,7 @@ const error_1 = require("./error");
13
13
  async function getSessionDetails(config, sessions, sessionIndex, signature) {
14
14
  const account = (0, accounts_1.getAccountProvider)(config);
15
15
  const accountAddress = (0, accounts_1.getAddress)(config);
16
- const sessionDetails = await getEnableSessionDetails(account.type, sessions, sessionIndex, accountAddress);
16
+ const sessionDetails = await getEnableSessionDetails(account.type, sessions, sessionIndex, accountAddress, config.provider);
17
17
  const chain = sessions[sessionIndex].chain;
18
18
  if (!chain) {
19
19
  throw new error_1.SessionChainRequiredError();
@@ -27,21 +27,21 @@ async function getSessionDetails(config, sessions, sessionIndex, signature) {
27
27
  (await (0, accounts_1.getPackedSignature)(config, config.owners, chain, validator, sessionDetails.permissionEnableHash));
28
28
  return sessionDetails;
29
29
  }
30
- async function getEnableSessionDetails(accountType, sessions, sessionIndex, accountAddress) {
30
+ async function getEnableSessionDetails(accountType, sessions, sessionIndex, accountAddress, provider) {
31
31
  const chainDigests = [];
32
32
  const chainSessions = [];
33
33
  for (const session of sessions) {
34
34
  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
35
  const sessionChain = session.chain;
40
36
  if (!sessionChain) {
41
37
  throw new error_1.SessionChainRequiredError();
42
38
  }
39
+ const publicClient = (0, viem_1.createPublicClient)({
40
+ chain: sessionChain,
41
+ transport: (0, utils_1.createTransport)(sessionChain, provider),
42
+ });
43
43
  const sessionNonce = await getSessionNonce(publicClient, accountAddress, permissionId);
44
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, session);
44
+ const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, session, provider);
45
45
  const sessionDigest = await getSessionDigest(publicClient, accountAddress, sessionData, permissionId, validators_1.SMART_SESSION_MODE_ENABLE);
46
46
  chainDigests.push({
47
47
  chainId: BigInt(sessionChain.id),
@@ -74,7 +74,7 @@ async function getEnableSessionDetails(accountType, sessions, sessionIndex, acco
74
74
  if (!sessionChain) {
75
75
  throw new error_1.SessionChainRequiredError();
76
76
  }
77
- const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, sessionToEnable);
77
+ const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, sessionToEnable, provider);
78
78
  return {
79
79
  permissionEnableHash,
80
80
  mode: validators_1.SMART_SESSION_MODE_ENABLE,
@@ -274,14 +274,14 @@ async function getSessionDigest(client, account, session, permissionId, mode) {
274
274
  async function enableSmartSession(chain, config, session) {
275
275
  const publicClient = (0, viem_1.createPublicClient)({
276
276
  chain,
277
- transport: (0, viem_1.http)(),
277
+ transport: (0, utils_1.createTransport)(chain, config.provider),
278
278
  });
279
279
  const address = (0, accounts_1.getAddress)(config);
280
280
  const isEnabled = await (0, validators_1.isSessionEnabled)(publicClient, address, (0, validators_1.getPermissionId)(session));
281
281
  if (isEnabled) {
282
282
  return;
283
283
  }
284
- const enableSessionCall = await (0, validators_1.getEnableSessionCall)(chain, session);
284
+ const enableSessionCall = await (0, validators_1.getEnableSessionCall)(chain, session, config.provider);
285
285
  const trustedAttesters = await (0, modules_1.getTrustedAttesters)(publicClient, address);
286
286
  const trustAttesterCall = trustedAttesters.length === 0 ? (0, modules_1.getTrustAttesterCall)(config) : undefined;
287
287
  const smartAccount = await (0, accounts_1.getSmartAccount)(config, publicClient, chain);
@@ -1,7 +1,7 @@
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 } 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;
@@ -33,11 +33,12 @@ interface SignedTransactionData extends PreparedTransactionData {
33
33
  declare function prepareTransaction(config: RhinestoneAccountConfig, transaction: Transaction): Promise<PreparedTransactionData>;
34
34
  declare function signTransaction(config: RhinestoneAccountConfig, preparedTransaction: PreparedTransactionData): Promise<SignedTransactionData>;
35
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>;
36
+ declare function prepareTransactionAsIntent(config: RhinestoneAccountConfig, sourceChain: Chain | undefined, targetChain: Chain, callInputs: CallInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], accountAddress: Address): Promise<IntentData>;
37
37
  declare function signIntent(config: RhinestoneAccountConfig, sourceChain: Chain | undefined, targetChain: Chain, intentHash: Hex, signers?: SignerSet): Promise<`0x${string}`>;
38
38
  declare function getOrchestratorByChain(chainId: number, apiKey: string): import("../orchestrator").Orchestrator;
39
39
  declare function submitIntentInternal(config: RhinestoneAccountConfig, sourceChain: Chain | undefined, targetChain: Chain, intentOp: IntentOp, signature: Hex, deploy: boolean): Promise<TransactionResult>;
40
40
  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, };
41
+ declare function parseCalls(calls: CallInput[], chainId: number): Call[];
42
+ export { prepareTransaction, signTransaction, submitTransaction, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, };
42
43
  export type { IntentData, TransactionResult, PreparedTransactionData, SignedTransactionData, };
43
44
  //# 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":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAEV,KAAK,GAAG,EACR,KAAK,YAAY,EAGlB,MAAM,MAAM,CAAA;AACb,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;AAmBjC,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,KAAK,EACV,IAAI,EACJ,SAAS,EAET,uBAAuB,EACvB,SAAS,EACT,YAAY,EACZ,WAAW,EACZ,MAAM,UAAU,CAAA;AAQjB,KAAK,iBAAiB,GAClB;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACpB,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAEL,UAAU,UAAU;IAClB,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,EAAE,aAAa,CAAA;CACtB;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,UAAU,GAAG,UAAU,CAAA;IAC7B,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,UAAU,qBAAsB,SAAQ,uBAAuB;IAC7D,SAAS,EAAE,GAAG,CAAA;CACf;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,uBAAuB,CAAC,CAsClC;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,mBAAmB,EAAE,uBAAuB,GAC3C,OAAO,CAAC,qBAAqB,CAAC,CAyBhC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,iBAAiB,EAAE,qBAAqB,GACvC,OAAO,CAAC,iBAAiB,CAAC,CA2B5B;AAkED,iBAAe,0BAA0B,CACvC,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,KAAK,GAAG,SAAS,EAC9B,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,aAAa,EAAE,YAAY,EAAE,EAC7B,cAAc,EAAE,OAAO,uBAoCxB;AAED,iBAAe,UAAU,CACvB,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,KAAK,GAAG,SAAS,EAC9B,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,GAAG,EACf,OAAO,CAAC,EAAE,SAAS,0BAwBpB;AA6FD,iBAAS,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0CAK9D;AAED,iBAAe,oBAAoB,CACjC,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,KAAK,GAAG,SAAS,EAC9B,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,GAAG,EACd,MAAM,EAAE,OAAO,8BAqBhB;AAED,iBAAe,mBAAmB,CAChC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,yKA6Bb;AA0FD,iBAAS,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,CAM/D;AAED,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,UAAU,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,GACX,CAAA;AACD,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,CAAA"}
@@ -8,6 +8,7 @@ exports.signIntent = signIntent;
8
8
  exports.prepareTransactionAsIntent = prepareTransactionAsIntent;
9
9
  exports.submitIntentInternal = submitIntentInternal;
10
10
  exports.getValidatorAccount = getValidatorAccount;
11
+ exports.parseCalls = parseCalls;
11
12
  const viem_1 = require("viem");
12
13
  const account_abstraction_1 = require("viem/account-abstraction");
13
14
  const accounts_1 = require("../accounts");
@@ -91,7 +92,7 @@ function getTransactionParams(transaction) {
91
92
  const initialTokenRequests = transaction.tokenRequests;
92
93
  const signers = transaction.signers;
93
94
  // Across requires passing some value to repay the solvers
94
- const tokenRequests = initialTokenRequests.length === 0
95
+ const tokenRequests = !initialTokenRequests || initialTokenRequests.length === 0
95
96
  ? [
96
97
  {
97
98
  address: viem_1.zeroAddress,
@@ -106,16 +107,17 @@ function getTransactionParams(transaction) {
106
107
  signers,
107
108
  };
108
109
  }
109
- async function prepareTransactionAsUserOp(config, chain, calls, signers) {
110
+ async function prepareTransactionAsUserOp(config, chain, callInputs, signers) {
110
111
  const publicClient = (0, viem_1.createPublicClient)({
111
112
  chain,
112
- transport: (0, viem_1.http)(),
113
+ transport: (0, utils_1.createTransport)(chain, config.provider),
113
114
  });
114
115
  const validatorAccount = await getValidatorAccount(config, signers, publicClient, chain);
115
116
  if (!validatorAccount) {
116
117
  throw new Error('No validator account found');
117
118
  }
118
119
  const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
120
+ const calls = parseCalls(callInputs, chain.id);
119
121
  const userOp = await bundlerClient.prepareUserOperation({
120
122
  account: validatorAccount,
121
123
  calls,
@@ -131,7 +133,8 @@ async function prepareTransactionAsUserOp(config, chain, calls, signers) {
131
133
  }),
132
134
  };
133
135
  }
134
- async function prepareTransactionAsIntent(config, sourceChain, targetChain, calls, gasLimit, tokenRequests, accountAddress) {
136
+ async function prepareTransactionAsIntent(config, sourceChain, targetChain, callInputs, gasLimit, tokenRequests, accountAddress) {
137
+ const calls = parseCalls(callInputs, targetChain.id);
135
138
  const accountAccessList = sourceChain
136
139
  ? {
137
140
  chainIds: [sourceChain.id],
@@ -140,15 +143,11 @@ async function prepareTransactionAsIntent(config, sourceChain, targetChain, call
140
143
  const metaIntent = {
141
144
  destinationChainId: targetChain.id,
142
145
  tokenTransfers: tokenRequests.map((tokenRequest) => ({
143
- tokenAddress: tokenRequest.address,
146
+ tokenAddress: (0, registry_1.resolveTokenAddress)(tokenRequest.address, targetChain.id),
144
147
  amount: tokenRequest.amount,
145
148
  })),
146
149
  account: accountAddress,
147
- destinationExecutions: calls.map((call) => ({
148
- value: call.value ?? 0n,
149
- to: call.to,
150
- data: call.data ?? '0x',
151
- })),
150
+ destinationExecutions: calls,
152
151
  destinationGasUnits: gasLimit,
153
152
  accountAccessList,
154
153
  smartAccount: {
@@ -188,7 +187,7 @@ async function signUserOp(config, chain, signers, userOp) {
188
187
  }
189
188
  const publicClient = (0, viem_1.createPublicClient)({
190
189
  chain,
191
- transport: (0, viem_1.http)(),
190
+ transport: (0, utils_1.createTransport)(chain, config.provider),
192
191
  });
193
192
  const account = await getValidatorAccount(config, signers, publicClient, chain);
194
193
  if (!account) {
@@ -199,7 +198,7 @@ async function signUserOp(config, chain, signers, userOp) {
199
198
  async function submitUserOp(config, chain, userOp, signature) {
200
199
  const publicClient = (0, viem_1.createPublicClient)({
201
200
  chain,
202
- transport: (0, viem_1.http)(),
201
+ transport: (0, utils_1.createTransport)(chain, config.provider),
203
202
  });
204
203
  const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
205
204
  const hash = await bundlerClient.request({
@@ -356,3 +355,10 @@ function getOwners(config, signers) {
356
355
  }
357
356
  return undefined;
358
357
  }
358
+ function parseCalls(calls, chainId) {
359
+ return calls.map((call) => ({
360
+ data: call.data ?? '0x',
361
+ value: call.value ?? 0n,
362
+ to: (0, registry_1.resolveTokenAddress)(call.to, chainId),
363
+ }));
364
+ }
@@ -1,14 +1,14 @@
1
1
  import type { Address, Chain, Hex } from 'viem';
2
- import { UserOperationReceipt } from 'viem/account-abstraction';
2
+ import type { UserOperationReceipt } from 'viem/account-abstraction';
3
3
  import { AccountError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, isAccountError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, SmartSessionsNotEnabledError } from './accounts';
4
+ import { createTransport } from './accounts/utils';
4
5
  import { addOwner, changeThreshold, disableEcdsa, disablePasskeys, enableEcdsa, enablePasskeys, encodeSmartSessionSignature, recover, removeOwner, setUpRecovery, trustAttester } from './actions';
5
6
  import type { TransactionResult } from './execution';
6
7
  import { ExecutionError, IntentFailedError, isExecutionError, OrderPathRequiredForIntentsError, SessionChainRequiredError, SourceChainRequiredForSmartSessionsError, SourceTargetChainMismatchError, UserOperationRequiredForSmartSessionsError } from './execution';
7
- import { SessionDetails } from './execution/smart-session';
8
- import { IntentData, PreparedTransactionData, SignedTransactionData } from './execution/utils';
9
- import { IntentCost, IntentInput, IntentOp, IntentOpStatus, IntentResult, IntentRoute, Portfolio, SettlementSystem, SignedIntentOp } from './orchestrator';
10
- import { AuthenticationRequiredError, InsufficientBalanceError, IntentNotFoundError, InvalidApiKeyError, InvalidIntentSignatureError, isOrchestratorError, NoPathFoundError, OnlyOneTargetTokenAmountCanBeUnsetError, OrchestratorError, TokenNotSupportedError, UnsupportedChainError, UnsupportedChainIdError, UnsupportedTokenError } from './orchestrator';
11
- import type { Call, Execution, RhinestoneAccountConfig, Session, Transaction } from './types';
8
+ import { type SessionDetails } from './execution/smart-session';
9
+ import { type IntentData, type PreparedTransactionData, type SignedTransactionData } from './execution/utils';
10
+ import { AuthenticationRequiredError, InsufficientBalanceError, type IntentCost, type IntentInput, IntentNotFoundError, type IntentOp, type IntentOpStatus, type IntentResult, type IntentRoute, InvalidApiKeyError, InvalidIntentSignatureError, isOrchestratorError, NoPathFoundError, OnlyOneTargetTokenAmountCanBeUnsetError, OrchestratorError, type Portfolio, type SettlementSystem, type SignedIntentOp, TokenNotSupportedError, UnsupportedChainError, UnsupportedChainIdError, UnsupportedTokenError } from './orchestrator';
11
+ import type { Call, RhinestoneAccountConfig, Session, Transaction } from './types';
12
12
  interface RhinestoneAccount {
13
13
  config: RhinestoneAccountConfig;
14
14
  deploy: (chain: Chain, session?: Session) => Promise<void>;
@@ -36,6 +36,6 @@ interface RhinestoneAccount {
36
36
  * @returns account
37
37
  */
38
38
  declare function createRhinestoneAccount(config: RhinestoneAccountConfig): Promise<RhinestoneAccount>;
39
- export { createRhinestoneAccount, addOwner, changeThreshold, disableEcdsa, disablePasskeys, enableEcdsa, enablePasskeys, recover, removeOwner, setUpRecovery, encodeSmartSessionSignature, trustAttester, isAccountError, AccountError, Eip7702AccountMustHaveEoaError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, SmartSessionsNotEnabledError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, Eip7702NotSupportedForAccountError, isExecutionError, IntentFailedError, ExecutionError, SourceChainRequiredForSmartSessionsError, SourceTargetChainMismatchError, UserOperationRequiredForSmartSessionsError, OrderPathRequiredForIntentsError, SessionChainRequiredError, isOrchestratorError, AuthenticationRequiredError, InsufficientBalanceError, InvalidApiKeyError, InvalidIntentSignatureError, NoPathFoundError, OnlyOneTargetTokenAmountCanBeUnsetError, OrchestratorError, IntentNotFoundError, TokenNotSupportedError, UnsupportedChainError, UnsupportedChainIdError, UnsupportedTokenError, };
40
- export type { RhinestoneAccount, Session, Call, Execution, IntentData, PreparedTransactionData, SignedTransactionData, TransactionResult, IntentCost, IntentInput, IntentOp, IntentOpStatus, IntentResult, IntentRoute, SettlementSystem, SignedIntentOp, Portfolio, };
39
+ export { createRhinestoneAccount, createTransport, addOwner, changeThreshold, disableEcdsa, disablePasskeys, enableEcdsa, enablePasskeys, recover, removeOwner, setUpRecovery, encodeSmartSessionSignature, trustAttester, isAccountError, AccountError, Eip7702AccountMustHaveEoaError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, SmartSessionsNotEnabledError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, Eip7702NotSupportedForAccountError, isExecutionError, IntentFailedError, ExecutionError, SourceChainRequiredForSmartSessionsError, SourceTargetChainMismatchError, UserOperationRequiredForSmartSessionsError, OrderPathRequiredForIntentsError, SessionChainRequiredError, isOrchestratorError, AuthenticationRequiredError, InsufficientBalanceError, InvalidApiKeyError, InvalidIntentSignatureError, NoPathFoundError, OnlyOneTargetTokenAmountCanBeUnsetError, OrchestratorError, IntentNotFoundError, TokenNotSupportedError, UnsupportedChainError, UnsupportedChainIdError, UnsupportedTokenError, };
40
+ export type { RhinestoneAccount, Session, Call, IntentData, PreparedTransactionData, SignedTransactionData, TransactionResult, IntentCost, IntentInput, IntentOp, IntentOpStatus, IntentResult, IntentRoute, SettlementSystem, SignedIntentOp, Portfolio, };
41
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnsupportedTokenError = exports.UnsupportedChainIdError = exports.UnsupportedChainError = exports.TokenNotSupportedError = exports.IntentNotFoundError = exports.OrchestratorError = exports.OnlyOneTargetTokenAmountCanBeUnsetError = exports.NoPathFoundError = exports.InvalidIntentSignatureError = exports.InvalidApiKeyError = exports.InsufficientBalanceError = exports.AuthenticationRequiredError = exports.isOrchestratorError = exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.SourceTargetChainMismatchError = exports.SourceChainRequiredForSmartSessionsError = exports.ExecutionError = exports.IntentFailedError = exports.isExecutionError = exports.Eip7702NotSupportedForAccountError = exports.SignMessageNotSupportedByAccountError = exports.SigningNotSupportedForAccountError = exports.SmartSessionsNotEnabledError = exports.FactoryArgsNotAvailableError = exports.ExistingEip7702AccountsNotSupportedError = exports.Eip7702AccountMustHaveEoaError = exports.AccountError = exports.isAccountError = exports.trustAttester = exports.encodeSmartSessionSignature = exports.setUpRecovery = exports.removeOwner = exports.recover = exports.enablePasskeys = exports.enableEcdsa = exports.disablePasskeys = exports.disableEcdsa = exports.changeThreshold = exports.addOwner = void 0;
3
+ exports.UnsupportedTokenError = exports.UnsupportedChainIdError = exports.UnsupportedChainError = exports.TokenNotSupportedError = exports.IntentNotFoundError = exports.OrchestratorError = exports.OnlyOneTargetTokenAmountCanBeUnsetError = exports.NoPathFoundError = exports.InvalidIntentSignatureError = exports.InvalidApiKeyError = exports.InsufficientBalanceError = exports.AuthenticationRequiredError = exports.isOrchestratorError = exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.SourceTargetChainMismatchError = exports.SourceChainRequiredForSmartSessionsError = exports.ExecutionError = exports.IntentFailedError = exports.isExecutionError = exports.Eip7702NotSupportedForAccountError = exports.SignMessageNotSupportedByAccountError = exports.SigningNotSupportedForAccountError = exports.SmartSessionsNotEnabledError = exports.FactoryArgsNotAvailableError = exports.ExistingEip7702AccountsNotSupportedError = exports.Eip7702AccountMustHaveEoaError = exports.AccountError = exports.isAccountError = exports.trustAttester = exports.encodeSmartSessionSignature = exports.setUpRecovery = exports.removeOwner = exports.recover = exports.enablePasskeys = exports.enableEcdsa = exports.disablePasskeys = exports.disableEcdsa = exports.changeThreshold = exports.addOwner = exports.createTransport = void 0;
4
4
  exports.createRhinestoneAccount = createRhinestoneAccount;
5
5
  const accounts_1 = require("./accounts");
6
6
  Object.defineProperty(exports, "AccountError", { enumerable: true, get: function () { return accounts_1.AccountError; } });
@@ -12,6 +12,8 @@ Object.defineProperty(exports, "isAccountError", { enumerable: true, get: functi
12
12
  Object.defineProperty(exports, "SigningNotSupportedForAccountError", { enumerable: true, get: function () { return accounts_1.SigningNotSupportedForAccountError; } });
13
13
  Object.defineProperty(exports, "SignMessageNotSupportedByAccountError", { enumerable: true, get: function () { return accounts_1.SignMessageNotSupportedByAccountError; } });
14
14
  Object.defineProperty(exports, "SmartSessionsNotEnabledError", { enumerable: true, get: function () { return accounts_1.SmartSessionsNotEnabledError; } });
15
+ const utils_1 = require("./accounts/utils");
16
+ Object.defineProperty(exports, "createTransport", { enumerable: true, get: function () { return utils_1.createTransport; } });
15
17
  const actions_1 = require("./actions");
16
18
  Object.defineProperty(exports, "addOwner", { enumerable: true, get: function () { return actions_1.addOwner; } });
17
19
  Object.defineProperty(exports, "changeThreshold", { enumerable: true, get: function () { return actions_1.changeThreshold; } });
@@ -34,7 +36,7 @@ Object.defineProperty(exports, "SourceChainRequiredForSmartSessionsError", { enu
34
36
  Object.defineProperty(exports, "SourceTargetChainMismatchError", { enumerable: true, get: function () { return execution_1.SourceTargetChainMismatchError; } });
35
37
  Object.defineProperty(exports, "UserOperationRequiredForSmartSessionsError", { enumerable: true, get: function () { return execution_1.UserOperationRequiredForSmartSessionsError; } });
36
38
  const smart_session_1 = require("./execution/smart-session");
37
- const utils_1 = require("./execution/utils");
39
+ const utils_2 = require("./execution/utils");
38
40
  const modules_1 = require("./modules");
39
41
  const orchestrator_1 = require("./orchestrator");
40
42
  Object.defineProperty(exports, "AuthenticationRequiredError", { enumerable: true, get: function () { return orchestrator_1.AuthenticationRequiredError; } });
@@ -61,13 +63,13 @@ async function createRhinestoneAccount(config) {
61
63
  return (0, accounts_1.deploy)(config, chain, session);
62
64
  }
63
65
  function prepareTransaction(transaction) {
64
- return (0, utils_1.prepareTransaction)(config, transaction);
66
+ return (0, utils_2.prepareTransaction)(config, transaction);
65
67
  }
66
68
  function signTransaction(preparedTransaction) {
67
- return (0, utils_1.signTransaction)(config, preparedTransaction);
69
+ return (0, utils_2.signTransaction)(config, preparedTransaction);
68
70
  }
69
71
  function submitTransaction(signedTransaction) {
70
- return (0, utils_1.submitTransaction)(config, signedTransaction);
72
+ return (0, utils_2.submitTransaction)(config, signedTransaction);
71
73
  }
72
74
  /**
73
75
  * Sign and send a transaction
@@ -116,16 +118,16 @@ async function createRhinestoneAccount(config) {
116
118
  }
117
119
  function areAttestersTrusted(chain) {
118
120
  const account = getAddress();
119
- return (0, modules_1.areAttestersTrusted)(account, chain);
121
+ return (0, modules_1.areAttestersTrusted)(account, chain, config.provider);
120
122
  }
121
123
  function getOwners(chain) {
122
124
  const account = getAddress();
123
- return (0, modules_1.getOwners)(account, chain);
125
+ return (0, modules_1.getOwners)(account, chain, config.provider);
124
126
  }
125
127
  function getValidators(chain) {
126
128
  const accountType = config.account?.type || 'nexus';
127
129
  const account = getAddress();
128
- return (0, modules_1.getValidators)(accountType, account, chain);
130
+ return (0, modules_1.getValidators)(accountType, account, chain, config.provider);
129
131
  }
130
132
  async function deposit(chain, amount, tokenAddress) {
131
133
  return (0, execution_1.deposit)(config, chain, amount, tokenAddress);
@@ -1,10 +1,10 @@
1
- import { Address, Chain } from 'viem';
2
- import { AccountType } from '../types';
3
- declare function getValidators(accountType: AccountType, account: Address, chain: Chain): Promise<Address[]>;
4
- declare function getOwners(account: Address, chain: Chain): Promise<{
1
+ import { type Address, type Chain } from 'viem';
2
+ import type { AccountType, ProviderConfig } from '../types';
3
+ declare function getValidators(accountType: AccountType, account: Address, chain: Chain, provider?: ProviderConfig): Promise<Address[]>;
4
+ declare function getOwners(account: Address, chain: Chain, provider?: ProviderConfig): Promise<{
5
5
  accounts: Address[];
6
6
  threshold: number;
7
7
  } | null>;
8
- declare function areAttestersTrusted(account: Address, chain: Chain): Promise<boolean>;
8
+ declare function areAttestersTrusted(account: Address, chain: Chain, provider?: ProviderConfig): Promise<boolean>;
9
9
  export { getValidators, getOwners, areAttestersTrusted };
10
10
  //# sourceMappingURL=read.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../modules/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAwC,MAAM,MAAM,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAKtC,iBAAe,aAAa,CAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,OAAO,EAAE,CAAC,CA6CpB;AAED,iBAAe,SAAS,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,CAkER;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../modules/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAkC,MAAM,MAAM,CAAA;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK3D,iBAAe,aAAa,CAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,CA6CpB;AAED,iBAAe,SAAS,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,CAkER;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAA"}
@@ -4,13 +4,14 @@ exports.getValidators = getValidators;
4
4
  exports.getOwners = getOwners;
5
5
  exports.areAttestersTrusted = areAttestersTrusted;
6
6
  const viem_1 = require("viem");
7
+ const utils_1 = require("../accounts/utils");
7
8
  const omni_account_1 = require("./omni-account");
8
9
  const registry_1 = require("./registry");
9
10
  const core_1 = require("./validators/core");
10
- async function getValidators(accountType, account, chain) {
11
+ async function getValidators(accountType, account, chain, provider) {
11
12
  const publicClient = (0, viem_1.createPublicClient)({
12
13
  chain,
13
- transport: (0, viem_1.http)(),
14
+ transport: (0, utils_1.createTransport)(chain, provider),
14
15
  });
15
16
  switch (accountType) {
16
17
  case 'safe':
@@ -53,10 +54,10 @@ async function getValidators(accountType, account, chain) {
53
54
  }
54
55
  }
55
56
  }
56
- async function getOwners(account, chain) {
57
+ async function getOwners(account, chain, provider) {
57
58
  const publicClient = (0, viem_1.createPublicClient)({
58
59
  chain,
59
- transport: (0, viem_1.http)(),
60
+ transport: (0, utils_1.createTransport)(chain, provider),
60
61
  });
61
62
  const moduleAddress = core_1.OWNABLE_VALIDATOR_ADDRESS;
62
63
  const [ownerResult, thresholdResult] = await publicClient.multicall({
@@ -120,11 +121,11 @@ async function getOwners(account, chain) {
120
121
  threshold: thresholdResult.result,
121
122
  };
122
123
  }
123
- async function areAttestersTrusted(account, chain) {
124
+ async function areAttestersTrusted(account, chain, provider) {
124
125
  const { list: requiredAttesters } = (0, registry_1.getAttesters)();
125
126
  const publicClient = (0, viem_1.createPublicClient)({
126
127
  chain,
127
- transport: (0, viem_1.http)(),
128
+ transport: (0, utils_1.createTransport)(chain, provider),
128
129
  });
129
130
  const trustedAttesters = await publicClient.readContract({
130
131
  abi: [
@@ -1,5 +1,5 @@
1
- import { Address, PublicClient } from 'viem';
2
- import { RhinestoneAccountConfig } from '../types';
1
+ import { type Address, type PublicClient } from 'viem';
2
+ import type { RhinestoneAccountConfig } from '../types';
3
3
  declare function getAttesters(): {
4
4
  list: Address[];
5
5
  threshold: number;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../modules/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,YAAY,EAAE,MAAM,MAAM,CAAA;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAQlD,iBAAS,YAAY,IAAI;IACvB,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,CAKA;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,uBAAuB;;;EA0B5D;AAED,iBAAe,mBAAmB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAyB7B;AAED,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../modules/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAE1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAQvD,iBAAS,YAAY,IAAI;IACvB,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,CAKA;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,uBAAuB;;;EA0B5D;AAED,iBAAe,mBAAmB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAyB7B;AAED,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Account, type Address, type Hex } from 'viem';
1
+ import { type Account, type Address, type Hex } from 'viem';
2
2
  import type { OwnerSet, RhinestoneAccountConfig } from '../../types';
3
3
  import { type Module } from '../common';
4
4
  interface PublicKey {
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,OAAO,EAIZ,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAEjE,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG,UAAU,CAAA;IACpC,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAC9C,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAS9C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAEzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAUjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UAarC;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB,GAAG,MAAM,CAiBT;AAED,iBAAS,oBAAoB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,MAAM,CAwD5E;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAsBR;AAeD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,GACjB,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAIZ,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAEjE,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG,UAAU,CAAA;IACpC,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAC9C,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAS9C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAEzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAUjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UAarC;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB,GAAG,MAAM,CAiBT;AAED,iBAAS,oBAAoB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,MAAM,CAwD5E;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAsBR;AAeD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,GACjB,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { type Address, type Chain, type Hex, type PublicClient } from 'viem';
2
- import type { AccountType, RhinestoneAccountConfig, Session } from '../../types';
2
+ import type { AccountType, ProviderConfig, RhinestoneAccountConfig, Session } from '../../types';
3
3
  import { type Module } from '../common';
4
4
  interface SessionData {
5
5
  sessionValidator: Address;
@@ -82,8 +82,8 @@ declare const SMART_SESSIONS_VALIDATOR_ADDRESS: Address;
82
82
  declare const SMART_SESSION_MODE_USE = "0x00";
83
83
  declare const SMART_SESSION_MODE_ENABLE = "0x01";
84
84
  declare const SMART_SESSION_MODE_UNSAFE_ENABLE = "0x02";
85
- declare function getSessionData(chain: Chain, session: Session): Promise<SessionData>;
86
- declare function getEnableSessionCall(chain: Chain, session: Session): Promise<{
85
+ declare function getSessionData(chain: Chain, session: Session, provider?: ProviderConfig): Promise<SessionData>;
86
+ declare function getEnableSessionCall(chain: Chain, session: Session, provider?: ProviderConfig): Promise<{
87
87
  to: `0x${string}`;
88
88
  data: `0x${string}`;
89
89
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ exports.getPermissionId = getPermissionId;
9
9
  exports.isSessionEnabled = isSessionEnabled;
10
10
  const solady_1 = require("solady");
11
11
  const viem_1 = require("viem");
12
+ const utils_1 = require("../../accounts/utils");
12
13
  const orchestrator_1 = require("../../orchestrator");
13
14
  const smart_sessions_1 = require("../abi/smart-sessions");
14
15
  const common_1 = require("../common");
@@ -36,8 +37,8 @@ const ACTION_CONDITION_GREATER_THAN_OR_EQUAL = 3;
36
37
  const ACTION_CONDITION_LESS_THAN_OR_EQUAL = 4;
37
38
  const ACTION_CONDITION_NOT_EQUAL = 5;
38
39
  const ACTION_CONDITION_IN_RANGE = 6;
39
- async function getSessionData(chain, session) {
40
- const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(chain);
40
+ async function getSessionData(chain, session, provider) {
41
+ const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(chain, provider);
41
42
  const allowedERC7739Content = [
42
43
  {
43
44
  appDomainSeparator,
@@ -46,8 +47,8 @@ async function getSessionData(chain, session) {
46
47
  ];
47
48
  return getSmartSessionData(chain, session, allowedERC7739Content);
48
49
  }
49
- async function getEnableSessionCall(chain, session) {
50
- const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(chain);
50
+ async function getEnableSessionCall(chain, session, provider) {
51
+ const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(chain, provider);
51
52
  const allowedERC7739Content = [
52
53
  {
53
54
  appDomainSeparator,
@@ -90,10 +91,10 @@ function getOmniAccountActions(chain) {
90
91
  ];
91
92
  return omniActions;
92
93
  }
93
- async function getSessionAllowedERC7739Content(chain) {
94
+ async function getSessionAllowedERC7739Content(chain, provider) {
94
95
  const publicClient = (0, viem_1.createPublicClient)({
95
96
  chain,
96
- transport: (0, viem_1.http)(),
97
+ transport: (0, utils_1.createTransport)(chain, provider),
97
98
  });
98
99
  const appDomainSeparator = await publicClient.readContract({
99
100
  address: omni_account_1.HOOK_ADDRESS,
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,MAAM,CAAA;AAe3C,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EAGT,cAAc,EACf,MAAM,SAAS,CAAA;AAGhB,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAQ;gBAEV,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKvC,YAAY,CAChB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,MAAM,CAAC,EAAE;YACP,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;SAC7B,CAAA;KACF,GACA,OAAO,CAAC,SAAS,CAAC;IAmDf,iBAAiB,CACrB,WAAW,EAAE,OAAO,EACpB,kBAAkB,EAAE,MAAM,EAC1B,uBAAuB,EAAE,OAAO,EAChC,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC;IAmCZ,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBtD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBxD,YAAY,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAgBnE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAalE,OAAO,CAAC,UAAU;CAwHnB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,MAAM,CAAA;AAe3C,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EAET,cAAc,EACf,MAAM,SAAS,CAAA;AAGhB,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAQ;gBAEV,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKvC,YAAY,CAChB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,MAAM,CAAC,EAAE;YACP,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;SAC7B,CAAA;KACF,GACA,OAAO,CAAC,SAAS,CAAC;IAmDf,iBAAiB,CACrB,WAAW,EAAE,OAAO,EACpB,kBAAkB,EAAE,MAAM,EAC1B,uBAAuB,EAAE,OAAO,EAChC,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC;IAmCZ,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBtD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBxD,YAAY,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAgBnE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAalE,OAAO,CAAC,UAAU;CAwHnB"}