@rhinestone/sdk 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EAOV,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAe,MAAM,UAAU,CAAA;AAM9E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;SAmGrD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAgFvD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAiBlD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAWlC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;AA0GD,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,CAAA"}
1
+ {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EAOV,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAe,MAAM,UAAU,CAAA;AAM9E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;SAmGrD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAgFvD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAoBlD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAWlC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;AA0GD,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,CAAA"}
@@ -186,6 +186,9 @@ function getV0DeployArgs(config) {
186
186
  function getAddress(config) {
187
187
  const deployArgs = getDeployArgs(config);
188
188
  if (!deployArgs) {
189
+ if (config.initData?.address) {
190
+ return config.initData.address;
191
+ }
189
192
  throw new Error('Cannot derive address: deploy args not available');
190
193
  }
191
194
  const { factory, implementation, salt } = deployArgs;
@@ -199,7 +202,7 @@ function getAddress(config) {
199
202
  return address;
200
203
  }
201
204
  function getEip712Domain(config, chain) {
202
- if (config.initData) {
205
+ if (config.initData && !('factory' in config.initData)) {
203
206
  throw new error_1.Eip712DomainNotAvailableError('Existing Safe-7579 accounts are not yet supported');
204
207
  }
205
208
  return {
@@ -91,6 +91,56 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
91
91
  });
92
92
  (0, vitest_1.expect)(address).toEqual('0xc41bb9cfB2658dD3D74Ada0862044f5f30304b38');
93
93
  });
94
+ (0, vitest_1.test)('Address-only initData fallback', () => {
95
+ const address = (0, safe_1.getAddress)({
96
+ account: {
97
+ type: 'safe',
98
+ },
99
+ owners: {
100
+ type: 'ecdsa',
101
+ accounts: [consts_1.accountA, consts_1.accountB],
102
+ },
103
+ initData: {
104
+ address: '0xc41bb9cfB2658dD3D74Ada0862044f5f30304b38',
105
+ },
106
+ });
107
+ (0, vitest_1.expect)(address).toEqual('0xc41bb9cfB2658dD3D74Ada0862044f5f30304b38');
108
+ });
109
+ });
110
+ (0, vitest_1.describe)('EIP-712 Domain', () => {
111
+ (0, vitest_1.test)('Factory-backed initData stays signable', () => {
112
+ const domain = (0, safe_1.getEip712Domain)({
113
+ owners: {
114
+ type: 'ecdsa',
115
+ accounts: [consts_1.accountA, consts_1.accountB],
116
+ },
117
+ initData: {
118
+ factory: '0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67',
119
+ factoryData: '0x1688f0b90000000000000000000000007579011ab74c46090561ea277ba79d510c6c00ff0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000844fff40e1ec88f0966a6bc17a138345cdf7519caf9a1e0bb840330108a6a4315f1028c39000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
120
+ address: '0xc41bb9cfB2658dD3D74Ada0862044f5f30304b38',
121
+ intentExecutorInstalled: true,
122
+ },
123
+ }, {
124
+ id: 1,
125
+ });
126
+ (0, vitest_1.expect)(domain.verifyingContract).toEqual('0xc41bb9cfB2658dD3D74Ada0862044f5f30304b38');
127
+ });
128
+ (0, vitest_1.test)('Address-only initData remains unsupported', () => {
129
+ (0, vitest_1.expect)(() => (0, safe_1.getEip712Domain)({
130
+ account: {
131
+ type: 'safe',
132
+ },
133
+ owners: {
134
+ type: 'ecdsa',
135
+ accounts: [consts_1.accountA, consts_1.accountB],
136
+ },
137
+ initData: {
138
+ address: '0xc41bb9cfB2658dD3D74Ada0862044f5f30304b38',
139
+ },
140
+ }, {
141
+ id: 1,
142
+ })).toThrow('Existing Safe-7579 accounts are not yet supported');
143
+ });
94
144
  });
95
145
  (0, vitest_1.describe)('Get Install Data', () => {
96
146
  (0, vitest_1.test)('Module', () => {
@@ -1,5 +1,5 @@
1
1
  declare const PROD_ORCHESTRATOR_URL = "https://v1.orchestrator.rhinestone.dev";
2
2
  declare const RHINESTONE_SPOKE_POOL_ADDRESS = "0x000000000060f6e853447881951574cdd0663530";
3
- declare const SDK_VERSION = "1.4.0";
3
+ declare const SDK_VERSION = "1.4.1";
4
4
  export { PROD_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, SDK_VERSION };
5
5
  //# sourceMappingURL=consts.d.ts.map
@@ -5,5 +5,5 @@ const PROD_ORCHESTRATOR_URL = 'https://v1.orchestrator.rhinestone.dev';
5
5
  exports.PROD_ORCHESTRATOR_URL = PROD_ORCHESTRATOR_URL;
6
6
  const RHINESTONE_SPOKE_POOL_ADDRESS = '0x000000000060f6e853447881951574cdd0663530';
7
7
  exports.RHINESTONE_SPOKE_POOL_ADDRESS = RHINESTONE_SPOKE_POOL_ADDRESS;
8
- const SDK_VERSION = '1.4.0';
8
+ const SDK_VERSION = '1.4.1';
9
9
  exports.SDK_VERSION = SDK_VERSION;
@@ -1,19 +1,13 @@
1
1
  import type { Account, Address, Hex } from 'viem';
2
2
  import { getSetup as experimental_getModuleSetup } from '../modules';
3
- import type { AccountProviderConfig, OwnerSet } from '../types';
4
- declare function experimental_getV0InitData(config: {
5
- account?: AccountProviderConfig;
6
- owners?: OwnerSet;
7
- }): {
3
+ import type { RhinestoneAccountConfig } from '../types';
4
+ declare function experimental_getV0InitData(config: RhinestoneAccountConfig): {
8
5
  address: Address;
9
6
  factory: Address;
10
7
  factoryData: Hex;
11
8
  intentExecutorInstalled: boolean;
12
9
  };
13
- declare function experimental_getRhinestoneInitData(config: {
14
- account?: AccountProviderConfig;
15
- owners?: OwnerSet;
16
- }): {
10
+ declare function experimental_getRhinestoneInitData(config: RhinestoneAccountConfig): {
17
11
  address: Address;
18
12
  factory: Address;
19
13
  factoryData: Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAGjD,OAAO,EAAE,QAAQ,IAAI,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE/D,iBAAS,0BAA0B,CAAC,MAAM,EAAE;IAC1C,OAAO,CAAC,EAAE,qBAAqB,CAAA;IAC/B,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB,GAAG;IACF,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,GAAG,CAAA;IAChB,uBAAuB,EAAE,OAAO,CAAA;CACjC,CAgBA;AAED,iBAAS,kCAAkC,CAAC,MAAM,EAAE;IAClD,OAAO,CAAC,EAAE,qBAAqB,CAAA;IAC/B,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB,GACG;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,GAAG,CAAA;IAChB,uBAAuB,EAAE,OAAO,CAAA;CACjC,GACD;IACE,OAAO,EAAE,OAAO,CAAA;CACjB,CAmBJ;AAED,iBAAS,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAcpD;AAED,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,kCAAkC,EAClC,iBAAiB,GAClB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAGjD,OAAO,EAAE,QAAQ,IAAI,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAEvD,iBAAS,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG;IACpE,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,GAAG,CAAA;IAChB,uBAAuB,EAAE,OAAO,CAAA;CACjC,CAgBA;AAED,iBAAS,kCAAkC,CAAC,MAAM,EAAE,uBAAuB,GACvE;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,GAAG,CAAA;IAChB,uBAAuB,EAAE,OAAO,CAAA;CACjC,GACD;IACE,OAAO,EAAE,OAAO,CAAA;CACjB,CAmBJ;AAED,iBAAS,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAcpD;AAED,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,kCAAkC,EAClC,iBAAiB,GAClB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../utils/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const consts_1 = require("../../test/consts");
5
+ const index_1 = require("./index");
6
+ (0, vitest_1.describe)('Utils', () => {
7
+ (0, vitest_1.test)('experimental_getV0InitData accepts session-enabled safe config', () => {
8
+ const baseConfig = {
9
+ account: {
10
+ type: 'safe',
11
+ },
12
+ owners: {
13
+ type: 'ecdsa',
14
+ accounts: [consts_1.accountA],
15
+ },
16
+ };
17
+ const withoutSessions = (0, index_1.experimental_getV0InitData)(baseConfig);
18
+ const withSessions = (0, index_1.experimental_getV0InitData)({
19
+ ...baseConfig,
20
+ experimental_sessions: {
21
+ enabled: true,
22
+ },
23
+ });
24
+ (0, vitest_1.expect)(withSessions.address).toMatch(/^0x[a-fA-F0-9]{40}$/);
25
+ (0, vitest_1.expect)(withSessions.factoryData).not.toEqual(withoutSessions.factoryData);
26
+ });
27
+ (0, vitest_1.test)('experimental_getRhinestoneInitData accepts session-enabled safe config', () => {
28
+ const initData = (0, index_1.experimental_getRhinestoneInitData)({
29
+ account: {
30
+ type: 'safe',
31
+ },
32
+ owners: {
33
+ type: 'ecdsa',
34
+ accounts: [consts_1.accountA],
35
+ },
36
+ experimental_sessions: {
37
+ enabled: true,
38
+ },
39
+ });
40
+ (0, vitest_1.expect)('factory' in initData).toBe(true);
41
+ });
42
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rhinestone/sdk",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "End-to-end chain abstraction and modularity toolkit",
5
5
  "author": {
6
6
  "name": "Rhinestone",