@charterlabs/rhinestone-sdk 0.2.9 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/src/accounts/error.d.ts +8 -1
  2. package/dist/src/accounts/error.d.ts.map +1 -1
  3. package/dist/src/accounts/error.js +10 -1
  4. package/dist/src/accounts/index.d.ts +11 -11
  5. package/dist/src/accounts/index.d.ts.map +1 -1
  6. package/dist/src/accounts/index.js +71 -53
  7. package/dist/src/accounts/kernel.d.ts +3 -5
  8. package/dist/src/accounts/kernel.d.ts.map +1 -1
  9. package/dist/src/accounts/kernel.js +10 -18
  10. package/dist/src/accounts/kernel.test.js +10 -3
  11. package/dist/src/accounts/nexus.d.ts +5 -7
  12. package/dist/src/accounts/nexus.d.ts.map +1 -1
  13. package/dist/src/accounts/nexus.js +112 -59
  14. package/dist/src/accounts/nexus.test.js +10 -3
  15. package/dist/src/accounts/passport.d.ts +4 -7
  16. package/dist/src/accounts/passport.d.ts.map +1 -1
  17. package/dist/src/accounts/passport.js +0 -91
  18. package/dist/src/accounts/safe.d.ts +9 -4
  19. package/dist/src/accounts/safe.d.ts.map +1 -1
  20. package/dist/src/accounts/safe.js +110 -39
  21. package/dist/src/accounts/safe.test.js +10 -3
  22. package/dist/src/accounts/signing/common.d.ts +3 -3
  23. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  24. package/dist/src/accounts/signing/common.js +36 -3
  25. package/dist/src/accounts/signing/message.js +2 -2
  26. package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
  27. package/dist/src/accounts/signing/typedData.js +3 -3
  28. package/dist/src/accounts/startale.d.ts +2 -4
  29. package/dist/src/accounts/startale.d.ts.map +1 -1
  30. package/dist/src/accounts/startale.js +2 -5
  31. package/dist/src/accounts/utils.d.ts.map +1 -1
  32. package/dist/src/accounts/utils.js +10 -3
  33. package/dist/src/accounts/walletClient.d.ts.map +1 -1
  34. package/dist/src/accounts/walletClient.js +6 -0
  35. package/dist/src/actions/compact.d.ts +3 -2
  36. package/dist/src/actions/compact.d.ts.map +1 -1
  37. package/dist/src/actions/compact.js +1 -0
  38. package/dist/src/actions/deployment.d.ts +19 -0
  39. package/dist/src/actions/deployment.d.ts.map +1 -0
  40. package/dist/src/actions/deployment.js +78 -0
  41. package/dist/src/actions/index.d.ts +4 -11
  42. package/dist/src/actions/index.d.ts.map +1 -1
  43. package/dist/src/actions/index.js +12 -0
  44. package/dist/src/actions/smart-sessions.d.ts +7 -8
  45. package/dist/src/actions/smart-sessions.d.ts.map +1 -1
  46. package/dist/src/actions/smart-sessions.js +7 -4
  47. package/dist/src/errors/index.d.ts +2 -2
  48. package/dist/src/errors/index.d.ts.map +1 -1
  49. package/dist/src/errors/index.js +2 -1
  50. package/dist/src/execution/compact.d.ts +12 -17
  51. package/dist/src/execution/compact.d.ts.map +1 -1
  52. package/dist/src/execution/compact.js +10 -16
  53. package/dist/src/execution/index.d.ts +6 -6
  54. package/dist/src/execution/index.d.ts.map +1 -1
  55. package/dist/src/execution/index.js +16 -27
  56. package/dist/src/execution/permit2.d.ts +12 -17
  57. package/dist/src/execution/permit2.d.ts.map +1 -1
  58. package/dist/src/execution/permit2.js +10 -16
  59. package/dist/src/execution/singleChainOps.d.ts +15 -3
  60. package/dist/src/execution/singleChainOps.d.ts.map +1 -1
  61. package/dist/src/execution/singleChainOps.js +17 -3
  62. package/dist/src/execution/utils.d.ts +32 -10
  63. package/dist/src/execution/utils.d.ts.map +1 -1
  64. package/dist/src/execution/utils.js +121 -108
  65. package/dist/src/index.d.ts +23 -7
  66. package/dist/src/index.d.ts.map +1 -1
  67. package/dist/src/index.js +36 -6
  68. package/dist/src/modules/abi/smart-session-emissary.d.ts +696 -0
  69. package/dist/src/modules/abi/smart-session-emissary.d.ts.map +1 -0
  70. package/dist/src/modules/abi/smart-session-emissary.js +565 -0
  71. package/dist/src/modules/chain-abstraction.d.ts +5 -0
  72. package/dist/src/modules/chain-abstraction.d.ts.map +1 -0
  73. package/dist/src/modules/chain-abstraction.js +7 -0
  74. package/dist/src/modules/common.d.ts +10 -2
  75. package/dist/src/modules/common.d.ts.map +1 -1
  76. package/dist/src/modules/common.js +10 -0
  77. package/dist/src/modules/index.d.ts +3 -9
  78. package/dist/src/modules/index.d.ts.map +1 -1
  79. package/dist/src/modules/index.js +24 -8
  80. package/dist/src/modules/index.test.js +3 -9
  81. package/dist/src/modules/legacy.d.ts +10 -0
  82. package/dist/src/modules/legacy.d.ts.map +1 -0
  83. package/dist/src/modules/legacy.js +65 -0
  84. package/dist/src/modules/validators/core.d.ts.map +1 -1
  85. package/dist/src/modules/validators/core.js +2 -0
  86. package/dist/src/modules/validators/index.d.ts +2 -2
  87. package/dist/src/modules/validators/index.d.ts.map +1 -1
  88. package/dist/src/modules/validators/index.js +1 -6
  89. package/dist/src/modules/validators/smart-sessions.d.ts +105 -20
  90. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  91. package/dist/src/modules/validators/smart-sessions.js +199 -435
  92. package/dist/src/orchestrator/client.d.ts +7 -3
  93. package/dist/src/orchestrator/client.d.ts.map +1 -1
  94. package/dist/src/orchestrator/client.js +3 -13
  95. package/dist/src/orchestrator/index.d.ts +2 -2
  96. package/dist/src/orchestrator/index.d.ts.map +1 -1
  97. package/dist/src/orchestrator/index.js +2 -1
  98. package/dist/src/orchestrator/registry.d.ts +2 -1
  99. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  100. package/dist/src/orchestrator/registry.js +28 -8
  101. package/dist/src/orchestrator/registry.test.js +13 -0
  102. package/dist/src/orchestrator/types.d.ts +11 -12
  103. package/dist/src/orchestrator/types.d.ts.map +1 -1
  104. package/dist/src/orchestrator/types.js +1 -7
  105. package/dist/src/types.d.ts +47 -25
  106. package/dist/src/types.d.ts.map +1 -1
  107. package/dist/src/utils/index.d.ts +24 -1
  108. package/dist/src/utils/index.d.ts.map +1 -1
  109. package/dist/src/utils/index.js +58 -0
  110. package/dist/test/utils/utils.d.ts +5 -0
  111. package/dist/test/utils/utils.d.ts.map +1 -0
  112. package/dist/test/utils/utils.js +20 -0
  113. package/package.json +33 -3
  114. package/dist/src/execution/smart-session.d.ts +0 -13
  115. package/dist/src/execution/smart-session.d.ts.map +0 -1
  116. package/dist/src/execution/smart-session.js +0 -178
  117. package/dist/src/modules/omni-account.d.ts +0 -8
  118. package/dist/src/modules/omni-account.d.ts.map +0 -1
  119. package/dist/src/modules/omni-account.js +0 -13
  120. package/dist/src/modules/validators/smart-sessions.test.d.ts +0 -2
  121. package/dist/src/modules/validators/smart-sessions.test.d.ts.map +0 -1
  122. package/dist/src/modules/validators/smart-sessions.test.js +0 -222
@@ -1,20 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getValidators = exports.getOwners = exports.getOwnerValidator = exports.HOOK_ADDRESS = void 0;
3
+ exports.getSessionDetails = exports.getValidators = exports.getOwners = exports.getOwnerValidator = void 0;
4
4
  exports.getSetup = getSetup;
5
5
  exports.getIntentExecutor = getIntentExecutor;
6
6
  exports.isRip7212SupportedNetwork = isRip7212SupportedNetwork;
7
7
  const viem_1 = require("viem");
8
8
  const chains_1 = require("viem/chains");
9
+ const chain_abstraction_1 = require("./chain-abstraction");
9
10
  const common_1 = require("./common");
10
- const omni_account_1 = require("./omni-account");
11
- Object.defineProperty(exports, "HOOK_ADDRESS", { enumerable: true, get: function () { return omni_account_1.HOOK_ADDRESS; } });
12
11
  const read_1 = require("./read");
13
12
  Object.defineProperty(exports, "getOwners", { enumerable: true, get: function () { return read_1.getOwners; } });
14
13
  Object.defineProperty(exports, "getValidators", { enumerable: true, get: function () { return read_1.getValidators; } });
15
14
  const validators_1 = require("./validators");
16
15
  Object.defineProperty(exports, "getOwnerValidator", { enumerable: true, get: function () { return validators_1.getOwnerValidator; } });
17
16
  const core_1 = require("./validators/core");
17
+ const smart_sessions_1 = require("./validators/smart-sessions");
18
+ Object.defineProperty(exports, "getSessionDetails", { enumerable: true, get: function () { return smart_sessions_1.getSessionDetails; } });
18
19
  const SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS = '0x000000000052e9685932845660777DF43C2dC496';
19
20
  function getSetup(config) {
20
21
  const ownerValidator = (0, validators_1.getOwnerValidator)(config);
@@ -31,10 +32,11 @@ function getSetup(config) {
31
32
  const executors = [intentExecutor];
32
33
  const fallbacks = [];
33
34
  // Some accounts (e.g. Safe) need a fallback method to support smart sessions
34
- if (config.sessions) {
35
- if (config.account && config.account.type === 'safe') {
35
+ if (config.experimental_sessions) {
36
+ const { enabled, compatibilityFallback } = config.experimental_sessions;
37
+ if (enabled && config.account && config.account.type === 'safe') {
36
38
  fallbacks.push({
37
- address: SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS,
39
+ address: compatibilityFallback ?? SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS,
38
40
  initData: (0, viem_1.encodeAbiParameters)([
39
41
  { name: 'selector', type: 'bytes4' },
40
42
  { name: 'flags', type: 'bytes1' },
@@ -47,6 +49,20 @@ function getSetup(config) {
47
49
  }
48
50
  }
49
51
  const hooks = [];
52
+ if (config.modules) {
53
+ validators.push(...config.modules
54
+ .filter((m) => m.type === common_1.MODULE_TYPE_VALIDATOR)
55
+ .map((m) => (0, common_1.getModule)(m)));
56
+ executors.push(...config.modules
57
+ .filter((m) => m.type === common_1.MODULE_TYPE_EXECUTOR)
58
+ .map((m) => (0, common_1.getModule)(m)));
59
+ fallbacks.push(...config.modules
60
+ .filter((m) => m.type === common_1.MODULE_TYPE_FALLBACK)
61
+ .map((m) => (0, common_1.getModule)(m)));
62
+ hooks.push(...config.modules
63
+ .filter((m) => m.type === common_1.MODULE_TYPE_HOOK)
64
+ .map((m) => (0, common_1.getModule)(m)));
65
+ }
50
66
  return {
51
67
  validators,
52
68
  executors,
@@ -56,8 +72,8 @@ function getSetup(config) {
56
72
  }
57
73
  function getIntentExecutor(config) {
58
74
  const intentExecutorAddress = config.useDevContracts === true
59
- ? omni_account_1.INTENT_EXECUTOR_ADDRESS_DEV
60
- : omni_account_1.INTENT_EXECUTOR_ADDRESS;
75
+ ? chain_abstraction_1.INTENT_EXECUTOR_ADDRESS_DEV
76
+ : chain_abstraction_1.INTENT_EXECUTOR_ADDRESS;
61
77
  return {
62
78
  address: intentExecutorAddress,
63
79
  initData: '0x',
@@ -61,15 +61,9 @@ const index_1 = require("./index");
61
61
  accounts: [consts_1.accountA],
62
62
  threshold: 1,
63
63
  },
64
- sessions: [
65
- {
66
- owners: {
67
- type: 'ecdsa',
68
- accounts: [consts_1.accountB],
69
- threshold: 1,
70
- },
71
- },
72
- ],
64
+ experimental_sessions: {
65
+ enabled: true,
66
+ },
73
67
  account: {
74
68
  type: 'safe',
75
69
  },
@@ -0,0 +1,10 @@
1
+ import { type Address } from 'viem';
2
+ import type { RhinestoneAccountConfig } from '../types';
3
+ import { type ModeleSetup } from './common';
4
+ declare function getV0Attesters(): {
5
+ addresses: Address[];
6
+ threshold: number;
7
+ };
8
+ declare function getV0Setup(config: RhinestoneAccountConfig): ModeleSetup;
9
+ export { getV0Attesters, getV0Setup };
10
+ //# sourceMappingURL=legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../modules/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,MAAM,CAAA;AACxD,OAAO,KAAK,EAAe,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAEpE,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,UAAU,CAAA;AAYjB,iBAAS,cAAc,IAAI;IACzB,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,CAQA;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,CAuDhE;AAED,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getV0Attesters = getV0Attesters;
4
+ exports.getV0Setup = getV0Setup;
5
+ const viem_1 = require("viem");
6
+ const _1 = require(".");
7
+ const common_1 = require("./common");
8
+ const OMNI_ACCOUNT_MOCK_ATTESTER_ADDRESS = '0x6D0515e8E499468DCe9583626f0cA15b887f9d03';
9
+ const RHINESTONE_ATTESTER_ADDRESS = '0x000000333034E9f539ce08819E12c1b8Cb29084d';
10
+ const HOOK_ADDRESS = '0x0000000000f6Ed8Be424d673c63eeFF8b9267420';
11
+ const TARGET_MODULE_ADDRESS = '0x0000000000E5a37279A001301A837a91b5de1D5E';
12
+ const SAME_CHAIN_MODULE_ADDRESS = '0x000000000043ff16d5776c7F0f65Ec485C17Ca04';
13
+ function getV0Attesters() {
14
+ return {
15
+ addresses: [
16
+ RHINESTONE_ATTESTER_ADDRESS,
17
+ OMNI_ACCOUNT_MOCK_ATTESTER_ADDRESS,
18
+ ],
19
+ threshold: 1,
20
+ };
21
+ }
22
+ function getV0Setup(config) {
23
+ const defaultSetup = (0, _1.getSetup)(config);
24
+ // Define v0 modules
25
+ const v0ModuleInputs = [
26
+ // Same Chain Module
27
+ {
28
+ type: 'executor',
29
+ address: SAME_CHAIN_MODULE_ADDRESS,
30
+ },
31
+ // Target Module
32
+ {
33
+ type: 'executor',
34
+ address: TARGET_MODULE_ADDRESS,
35
+ },
36
+ // "Hook" Executor
37
+ {
38
+ type: 'executor',
39
+ address: HOOK_ADDRESS,
40
+ },
41
+ // Fallback
42
+ {
43
+ type: 'fallback',
44
+ address: TARGET_MODULE_ADDRESS,
45
+ initData: (0, viem_1.encodeAbiParameters)([
46
+ { name: 'selector', type: 'bytes4' },
47
+ { name: 'flags', type: 'bytes1' },
48
+ { name: 'data', type: 'bytes' },
49
+ ], ['0x3a5be8cb', '0x00', '0x']),
50
+ },
51
+ ];
52
+ // Convert and categorize v0 modules once
53
+ const v0Modules = v0ModuleInputs.map((m) => (0, common_1.getModule)(m));
54
+ const v0Validators = v0Modules.filter((m) => m.type === common_1.MODULE_TYPE_ID_VALIDATOR);
55
+ const v0Executors = v0Modules.filter((m) => m.type === common_1.MODULE_TYPE_ID_EXECUTOR);
56
+ const v0Fallbacks = v0Modules.filter((m) => m.type === common_1.MODULE_TYPE_ID_FALLBACK);
57
+ const v0Hooks = v0Modules.filter((m) => m.type === common_1.MODULE_TYPE_ID_HOOK);
58
+ // Merge directly with default setup
59
+ return {
60
+ validators: [...v0Validators, ...defaultSetup.validators],
61
+ executors: [...v0Executors, ...defaultSetup.executors],
62
+ fallbacks: [...v0Fallbacks, ...defaultSetup.fallbacks],
63
+ hooks: [...v0Hooks, ...defaultSetup.hooks],
64
+ };
65
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAKZ,KAAK,GAAG,EAKT,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAA;AAEpB,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,qBAAqB,EAAE,OACiB,CAAA;AAC9C,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAG9C,QAAA,MAAM,8BAA8B,EAAE,OACQ,CAAA;AAO9C,QAAA,MAAM,6BAA6B,EAAE,OACS,CAAA;AAO9C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAKzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAmDjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UA2BrC;AAED,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAiBR;AAED,iBAAS,eAAe,CACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAsCR;AAED,iBAAS,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CA4DR;AAED,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CACR,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,IAAI,CACP,EAAE,GACF,MAAM,CAgDR;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAsBR;AAeD,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,WAQxC;AAED,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,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,EAKZ,KAAK,GAAG,EAKT,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAGjE,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,qBAAqB,EAAE,OACiB,CAAA;AAC9C,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAG9C,QAAA,MAAM,8BAA8B,EAAE,OACQ,CAAA;AAO9C,QAAA,MAAM,6BAA6B,EAAE,OACS,CAAA;AAO9C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAKzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAmDjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UA2BrC;AAED,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAiBR;AAED,iBAAS,eAAe,CACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAsCR;AAED,iBAAS,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CA4DR;AAED,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CACR,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,IAAI,CACP,EAAE,GACF,MAAM,CAgDR;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAsBR;AAeD,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,WASxC;AAED,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
@@ -13,6 +13,7 @@ exports.supportsEip712 = supportsEip712;
13
13
  const viem_1 = require("viem");
14
14
  const error_1 = require("../../accounts/error");
15
15
  const common_1 = require("../common");
16
+ const smart_sessions_1 = require("./smart-sessions");
16
17
  const OWNABLE_VALIDATOR_ADDRESS = '0x000000000013fdb5234e4e3162a810f54d9f7e98';
17
18
  exports.OWNABLE_VALIDATOR_ADDRESS = OWNABLE_VALIDATOR_ADDRESS;
18
19
  const ENS_VALIDATOR_ADDRESS = '0xdc38f07b060374b6480c4bf06231e7d10955bca4';
@@ -271,6 +272,7 @@ function supportsEip712(validator) {
271
272
  switch (validator.address.toLowerCase()) {
272
273
  case OWNABLE_BETA_VALIDATOR_ADDRESS: // Ownable Validator V1-beta
273
274
  case OWNABLE_V0_VALIDATOR_ADDRESS: // Ownable Validator V0
275
+ case smart_sessions_1.SMART_SESSION_EMISSARY_ADDRESS: // Smart Sessions (not yet supported)
274
276
  return false;
275
277
  default:
276
278
  return true;
@@ -1,4 +1,4 @@
1
1
  import { getMockSignature, getOwnerValidator } from './core';
2
- import { encodeSmartSessionSignature, getEnableSessionCall, getPermissionId, getSmartSessionValidator, isSessionEnabled, SMART_SESSION_MODE_ENABLE, SMART_SESSION_MODE_USE, SMART_SESSIONS_VALIDATOR_ADDRESS } from './smart-sessions';
3
- export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getMockSignature, isSessionEnabled, };
2
+ import { getEnableSessionCall, getPermissionId, getSmartSessionValidator } from './smart-sessions';
3
+ export { getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, getPermissionId, getMockSignature, };
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACzB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,CAAA"}
@@ -1,15 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSessionEnabled = exports.getMockSignature = exports.getPermissionId = exports.encodeSmartSessionSignature = exports.getEnableSessionCall = exports.getSmartSessionValidator = exports.getOwnerValidator = exports.SMART_SESSIONS_VALIDATOR_ADDRESS = exports.SMART_SESSION_MODE_ENABLE = exports.SMART_SESSION_MODE_USE = void 0;
3
+ exports.getMockSignature = exports.getPermissionId = exports.getEnableSessionCall = exports.getSmartSessionValidator = exports.getOwnerValidator = void 0;
4
4
  const core_1 = require("./core");
5
5
  Object.defineProperty(exports, "getMockSignature", { enumerable: true, get: function () { return core_1.getMockSignature; } });
6
6
  Object.defineProperty(exports, "getOwnerValidator", { enumerable: true, get: function () { return core_1.getOwnerValidator; } });
7
7
  const smart_sessions_1 = require("./smart-sessions");
8
- Object.defineProperty(exports, "encodeSmartSessionSignature", { enumerable: true, get: function () { return smart_sessions_1.encodeSmartSessionSignature; } });
9
8
  Object.defineProperty(exports, "getEnableSessionCall", { enumerable: true, get: function () { return smart_sessions_1.getEnableSessionCall; } });
10
9
  Object.defineProperty(exports, "getPermissionId", { enumerable: true, get: function () { return smart_sessions_1.getPermissionId; } });
11
10
  Object.defineProperty(exports, "getSmartSessionValidator", { enumerable: true, get: function () { return smart_sessions_1.getSmartSessionValidator; } });
12
- Object.defineProperty(exports, "isSessionEnabled", { enumerable: true, get: function () { return smart_sessions_1.isSessionEnabled; } });
13
- Object.defineProperty(exports, "SMART_SESSION_MODE_ENABLE", { enumerable: true, get: function () { return smart_sessions_1.SMART_SESSION_MODE_ENABLE; } });
14
- Object.defineProperty(exports, "SMART_SESSION_MODE_USE", { enumerable: true, get: function () { return smart_sessions_1.SMART_SESSION_MODE_USE; } });
15
- Object.defineProperty(exports, "SMART_SESSIONS_VALIDATOR_ADDRESS", { enumerable: true, get: function () { return smart_sessions_1.SMART_SESSIONS_VALIDATOR_ADDRESS; } });
@@ -1,21 +1,16 @@
1
- import { type Address, type Hex, type PublicClient } from 'viem';
1
+ import { type Address, type Hex, type TypedDataDefinition } from 'viem';
2
2
  import type { RhinestoneAccountConfig, Session } from '../../types';
3
3
  import { type Module } from '../common';
4
4
  interface SessionData {
5
5
  sessionValidator: Address;
6
6
  sessionValidatorInitData: Hex;
7
7
  salt: Hex;
8
- userOpPolicies: readonly UserOpPolicy[];
9
8
  erc7739Policies: {
10
9
  allowedERC7739Content: readonly AllowedERC7739Content[];
11
10
  erc1271Policies: readonly ERC1271Policy[];
12
11
  };
13
12
  actions: readonly ActionData[];
14
- permitERC4337Paymaster: boolean;
15
- }
16
- interface UserOpPolicy {
17
- policy: Address;
18
- initData: Hex;
13
+ claimPolicies: readonly PolicyData[];
19
14
  }
20
15
  interface ERC1271Policy {
21
16
  policy: Address;
@@ -23,7 +18,7 @@ interface ERC1271Policy {
23
18
  }
24
19
  interface AllowedERC7739Content {
25
20
  appDomainSeparator: Hex;
26
- contentName: readonly string[];
21
+ contentNames: readonly string[];
27
22
  }
28
23
  interface ActionData {
29
24
  actionTargetSelector: Hex;
@@ -69,28 +64,118 @@ interface ERC7739Context {
69
64
  appDomainSeparator: Hex;
70
65
  contentName: readonly string[];
71
66
  }
72
- interface EnableSessionData {
73
- chainDigestIndex: number;
67
+ interface SessionDetails {
68
+ nonces: bigint[];
74
69
  hashesAndChainIds: ChainDigest[];
75
- sessionToEnable: SessionData;
76
- signature: Hex;
70
+ data: TypedDataDefinition<typeof types, 'MultiChainSession'>;
77
71
  }
78
- declare const SMART_SESSIONS_VALIDATOR_ADDRESS: Address;
72
+ declare const types: {
73
+ readonly PolicyData: readonly [{
74
+ readonly name: "policy";
75
+ readonly type: "address";
76
+ }, {
77
+ readonly name: "initData";
78
+ readonly type: "bytes";
79
+ }];
80
+ readonly ActionData: readonly [{
81
+ readonly name: "actionTargetSelector";
82
+ readonly type: "bytes4";
83
+ }, {
84
+ readonly name: "actionTarget";
85
+ readonly type: "address";
86
+ }, {
87
+ readonly name: "actionPolicies";
88
+ readonly type: "PolicyData[]";
89
+ }];
90
+ readonly ERC7739Context: readonly [{
91
+ readonly name: "appDomainSeparator";
92
+ readonly type: "bytes32";
93
+ }, {
94
+ readonly name: "contentName";
95
+ readonly type: "string[]";
96
+ }];
97
+ readonly ERC7739Data: readonly [{
98
+ readonly name: "allowedERC7739Content";
99
+ readonly type: "ERC7739Context[]";
100
+ }, {
101
+ readonly name: "erc1271Policies";
102
+ readonly type: "PolicyData[]";
103
+ }];
104
+ readonly LockTagData: readonly [{
105
+ readonly name: "lockTag";
106
+ readonly type: "bytes12";
107
+ }, {
108
+ readonly name: "claimPolicies";
109
+ readonly type: "PolicyData[]";
110
+ }];
111
+ readonly SignedPermissions: readonly [{
112
+ readonly name: "actions";
113
+ readonly type: "ActionData[]";
114
+ }, {
115
+ readonly name: "erc7739Policies";
116
+ readonly type: "ERC7739Data";
117
+ }, {
118
+ readonly name: "lockTagPolicies";
119
+ readonly type: "LockTagData";
120
+ }, {
121
+ readonly name: "permitGenericPolicy";
122
+ readonly type: "bool";
123
+ }];
124
+ readonly SignedSession: readonly [{
125
+ readonly name: "account";
126
+ readonly type: "address";
127
+ }, {
128
+ readonly name: "expires";
129
+ readonly type: "uint256";
130
+ }, {
131
+ readonly name: "nonce";
132
+ readonly type: "uint256";
133
+ }, {
134
+ readonly name: "permissions";
135
+ readonly type: "SignedPermissions";
136
+ }, {
137
+ readonly name: "salt";
138
+ readonly type: "bytes32";
139
+ }, {
140
+ readonly name: "sessionValidator";
141
+ readonly type: "address";
142
+ }, {
143
+ readonly name: "sessionValidatorInitData";
144
+ readonly type: "bytes";
145
+ }, {
146
+ readonly name: "smartSessionEmissary";
147
+ readonly type: "address";
148
+ }];
149
+ readonly ChainSession: readonly [{
150
+ readonly name: "chainId";
151
+ readonly type: "uint64";
152
+ }, {
153
+ readonly name: "session";
154
+ readonly type: "SignedSession";
155
+ }];
156
+ readonly MultiChainSession: readonly [{
157
+ readonly name: "sessionsAndChainIds";
158
+ readonly type: "ChainSession[]";
159
+ }];
160
+ };
161
+ declare const SMART_SESSION_EMISSARY_ADDRESS: Address;
79
162
  declare const SMART_SESSION_MODE_USE = "0x00";
80
163
  declare const SMART_SESSION_MODE_ENABLE = "0x01";
81
164
  declare const SMART_SESSION_MODE_UNSAFE_ENABLE = "0x02";
82
165
  declare const SMART_SESSIONS_FALLBACK_TARGET_FLAG: Address;
83
166
  declare const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG: Hex;
84
167
  declare const SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION: Hex;
85
- declare function getEnableSessionCall(session: Session): Promise<{
168
+ declare function getSessionDetails(account: Address, sessions: Session[]): Promise<SessionDetails>;
169
+ declare function getEnableSessionCall(account: Address, session: Session, enableSessionSignature: Hex, hashesAndChainIds: {
170
+ chainId: bigint;
171
+ sessionDigest: Hex;
172
+ }[], sessionToEnableIndex: number): Promise<{
86
173
  to: `0x${string}`;
87
174
  data: `0x${string}`;
88
175
  }>;
89
- declare function getSmartSessionData(session: Session): SessionData;
90
- declare function getSmartSessionValidator(config: RhinestoneAccountConfig): Module | null;
91
- declare function isSessionEnabled(client: PublicClient, address: Address, permissionId: Hex): Promise<boolean>;
92
- declare function encodeSmartSessionSignature(mode: SmartSessionModeType, permissionId: Hex, signature: Hex, enableSessionData?: EnableSessionData): `0x${string}`;
176
+ declare function getSessionData(session: Session): SessionData;
93
177
  declare function getPermissionId(session: Session): `0x${string}`;
94
- export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, getSmartSessionData, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, isSessionEnabled, };
95
- export type { EnableSessionData, ChainSession, ChainDigest, SessionData, SmartSessionModeType, };
178
+ declare function getSmartSessionValidator(config: RhinestoneAccountConfig): Module | null;
179
+ export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, getSessionData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, };
180
+ export type { ChainSession, ChainDigest, SessionData, SmartSessionModeType, SessionDetails, };
96
181
  //# sourceMappingURL=smart-sessions.d.ts.map
@@ -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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"}