@rhinestone/sdk 1.0.0-alpha.11 → 1.0.0-alpha.13

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 (59) hide show
  1. package/dist/src/accounts/index.d.ts +8 -6
  2. package/dist/src/accounts/index.d.ts.map +1 -1
  3. package/dist/src/accounts/index.js +69 -134
  4. package/dist/src/accounts/index.test.js +2 -2
  5. package/dist/src/accounts/kernel.d.ts +3 -2
  6. package/dist/src/accounts/kernel.d.ts.map +1 -1
  7. package/dist/src/accounts/kernel.js +3 -5
  8. package/dist/src/accounts/kernel.test.js +5 -10
  9. package/dist/src/accounts/nexus.d.ts +2 -2
  10. package/dist/src/accounts/nexus.d.ts.map +1 -1
  11. package/dist/src/accounts/nexus.js +5 -6
  12. package/dist/src/accounts/nexus.test.js +11 -12
  13. package/dist/src/accounts/safe.d.ts +2 -2
  14. package/dist/src/accounts/safe.d.ts.map +1 -1
  15. package/dist/src/accounts/safe.js +3 -5
  16. package/dist/src/accounts/safe.test.js +4 -5
  17. package/dist/src/accounts/signing/common.d.ts +23 -0
  18. package/dist/src/accounts/signing/common.d.ts.map +1 -0
  19. package/dist/src/accounts/signing/common.js +113 -0
  20. package/dist/src/accounts/signing/message.d.ts +5 -0
  21. package/dist/src/accounts/signing/message.d.ts.map +1 -0
  22. package/dist/src/accounts/signing/message.js +51 -0
  23. package/dist/src/accounts/signing/typedData.d.ts +5 -0
  24. package/dist/src/accounts/signing/typedData.d.ts.map +1 -0
  25. package/dist/src/accounts/signing/typedData.js +39 -0
  26. package/dist/src/accounts/startale.d.ts +2 -2
  27. package/dist/src/accounts/startale.d.ts.map +1 -1
  28. package/dist/src/accounts/startale.js +3 -3
  29. package/dist/src/accounts/startale.test.js +4 -5
  30. package/dist/src/actions/index.d.ts +84 -0
  31. package/dist/src/actions/index.d.ts.map +1 -1
  32. package/dist/src/actions/index.js +92 -0
  33. package/dist/src/actions/index.test.js +15 -15
  34. package/dist/src/actions/smart-session.d.ts +6 -0
  35. package/dist/src/actions/smart-session.d.ts.map +1 -1
  36. package/dist/src/actions/smart-session.js +6 -0
  37. package/dist/src/execution/compact.d.ts +128 -1
  38. package/dist/src/execution/compact.d.ts.map +1 -1
  39. package/dist/src/execution/compact.js +91 -0
  40. package/dist/src/execution/index.d.ts.map +1 -1
  41. package/dist/src/execution/index.js +2 -3
  42. package/dist/src/execution/utils.d.ts +6 -5
  43. package/dist/src/execution/utils.d.ts.map +1 -1
  44. package/dist/src/execution/utils.js +35 -6
  45. package/dist/src/index.d.ts +6 -5
  46. package/dist/src/index.d.ts.map +1 -1
  47. package/dist/src/index.js +77 -11
  48. package/dist/src/modules/index.test.js +1 -1
  49. package/dist/src/modules/validators/core.js +1 -1
  50. package/dist/src/modules/validators/core.test.js +3 -3
  51. package/dist/src/modules/validators/smart-sessions.js +3 -3
  52. package/dist/src/modules/validators/smart-sessions.test.js +4 -4
  53. package/dist/src/orchestrator/index.d.ts +1 -2
  54. package/dist/src/orchestrator/index.d.ts.map +1 -1
  55. package/dist/src/orchestrator/index.js +1 -3
  56. package/dist/src/orchestrator/utils.d.ts +1 -3
  57. package/dist/src/orchestrator/utils.d.ts.map +1 -1
  58. package/dist/src/orchestrator/utils.js +0 -102
  59. package/package.json +1 -1
@@ -3,37 +3,121 @@ import type { RhinestoneAccount } from '..';
3
3
  import { type WebauthnCredential } from '../modules/validators/core';
4
4
  import type { Call, OwnableValidatorConfig, OwnerSet, ProviderConfig, Recovery, WebauthnValidatorConfig } from '../types';
5
5
  import { encodeSmartSessionSignature } from './smart-session';
6
+ /**
7
+ * Set up social recovery
8
+ * @param rhinestoneAccount Account to set up social recovery on
9
+ * @param guardians Guardians to use for recovery
10
+ * @param threshold Threshold for the guardians
11
+ * @returns Calls to set up social recovery
12
+ */
6
13
  declare function setUpRecovery({ rhinestoneAccount, guardians, threshold, }: {
7
14
  rhinestoneAccount: RhinestoneAccount;
8
15
  } & Recovery): Call[];
16
+ /**
17
+ * Recover an account's ownership
18
+ * @param address Account address
19
+ * @param newOwners New owners
20
+ * @param chain Chain to recover ownership on
21
+ * @param provider Provider to use for the recovery
22
+ * @returns Calls to recover ownership
23
+ */
9
24
  declare function recover(address: Address, newOwners: OwnerSet, chain: Chain, provider?: ProviderConfig): Promise<Call[]>;
25
+ /**
26
+ * Enable ECDSA authentication
27
+ * @param rhinestoneAccount Account to enable ECDSA authentication on
28
+ * @param owners Owners to use for authentication
29
+ * @param threshold Threshold for the owners
30
+ * @returns Calls to enable ECDSA authentication
31
+ */
10
32
  declare function enableEcdsa({ rhinestoneAccount, owners, threshold, }: {
11
33
  rhinestoneAccount: RhinestoneAccount;
12
34
  owners: Address[];
13
35
  threshold?: number;
14
36
  }): Call[];
37
+ /**
38
+ * Enable passkeys authentication
39
+ * @param rhinestoneAccount Account to enable passkeys authentication on
40
+ * @param pubKey Public key for the passkey
41
+ * @param authenticatorId Authenticator ID for the passkey
42
+ * @returns Calls to enable passkeys authentication
43
+ */
15
44
  declare function enablePasskeys({ rhinestoneAccount, pubKey, authenticatorId, }: {
16
45
  rhinestoneAccount: RhinestoneAccount;
17
46
  } & WebauthnCredential): Call[];
47
+ /**
48
+ * Disable ECDSA authentication
49
+ * @param rhinestoneAccount Account to disable ECDSA authentication on
50
+ * @returns Calls to disable ECDSA authentication
51
+ */
18
52
  declare function disableEcdsa({ rhinestoneAccount, }: {
19
53
  rhinestoneAccount: RhinestoneAccount;
20
54
  }): Call[];
55
+ /**
56
+ * Disable passkeys (WebAuthn) authentication
57
+ * @param rhinestoneAccount Account to disable passkeys authentication on
58
+ * @returns Calls to disable passkeys authentication
59
+ */
21
60
  declare function disablePasskeys({ rhinestoneAccount, }: {
22
61
  rhinestoneAccount: RhinestoneAccount;
23
62
  }): Call[];
63
+ /**
64
+ * Add an ECDSA owner
65
+ * @param owner Owner address
66
+ * @returns Call to add the owner
67
+ */
24
68
  declare function addOwner(owner: Address): Call;
69
+ /**
70
+ * Remove an ECDSA owner
71
+ * @param prevOwner Previous owner address
72
+ * @param ownerToRemove Owner to remove
73
+ * @returns Call to remove the owner
74
+ */
25
75
  declare function removeOwner(prevOwner: Address, ownerToRemove: Address): Call;
76
+ /**
77
+ * Change an account's signer threshold (ECDSA)
78
+ * @param newThreshold New threshold
79
+ * @returns Call to change the threshold
80
+ */
26
81
  declare function changeThreshold(newThreshold: number): Call;
82
+ /**
83
+ * Enable multi-factor authentication
84
+ * @param rhinestoneAccount Account to enable multi-factor authentication on
85
+ * @param validators List of validators to use
86
+ * @param threshold Threshold for the validators
87
+ * @returns Calls to enable multi-factor authentication
88
+ */
27
89
  declare function enableMultiFactor({ rhinestoneAccount, validators, threshold, }: {
28
90
  rhinestoneAccount: RhinestoneAccount;
29
91
  validators: (OwnableValidatorConfig | WebauthnValidatorConfig | null)[];
30
92
  threshold?: number;
31
93
  }): Call[];
94
+ /**
95
+ * Disable multi-factor authentication
96
+ * @param rhinestoneAccount Account to disable multi-factor authentication on
97
+ * @returns Calls to disable multi-factor authentication
98
+ */
32
99
  declare function disableMultiFactor({ rhinestoneAccount, }: {
33
100
  rhinestoneAccount: RhinestoneAccount;
34
101
  }): Call[];
102
+ /**
103
+ * Change the multi-factor threshold
104
+ * @param newThreshold New threshold
105
+ * @returns Call to change the threshold
106
+ */
35
107
  declare function changeMultiFactorThreshold(newThreshold: number): Call;
108
+ /**
109
+ * Set a sub-validator (multi-factor)
110
+ * @param id Validator ID
111
+ * @param validator Validator module
112
+ * @returns Call to set the sub-validator
113
+ */
36
114
  declare function setSubValidator(id: Hex | number, validator: OwnableValidatorConfig | WebauthnValidatorConfig): Call;
115
+ /**
116
+ * Remove a sub-validator (multi-factor)
117
+ * @param id Validator ID
118
+ * @param validator Validator module
119
+ * @returns Call to remove the sub-validator
120
+ */
37
121
  declare function removeSubValidator(id: Hex | number, validator: OwnableValidatorConfig | WebauthnValidatorConfig): Call;
38
122
  export { enableEcdsa, enablePasskeys, disableEcdsa, disablePasskeys, addOwner, removeOwner, changeThreshold, recover, setUpRecovery, encodeSmartSessionSignature, enableMultiFactor, disableMultiFactor, changeMultiFactorThreshold, setSubValidator, removeSubValidator, };
39
123
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAA;AAM3C,OAAO,EAQL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EACV,IAAI,EACJ,sBAAsB,EACtB,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,uBAAuB,EACxB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAE7D,iBAAS,aAAa,CAAC,EACrB,iBAAiB,EACjB,SAAS,EACT,SAAa,GACd,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC,GAAG,QAAQ,UAIX;AAED,iBAAe,OAAO,CACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,IAAI,EAAE,CAAC,CAYjB;AAED,iBAAS,WAAW,CAAC,EACnB,iBAAiB,EACjB,MAAM,EACN,SAAa,GACd,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,UAIA;AAED,iBAAS,cAAc,CAAC,EACtB,iBAAiB,EACjB,MAAM,EACN,eAAe,GAChB,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC,GAAG,kBAAkB,UAIrB;AAED,iBAAS,YAAY,CAAC,EACpB,iBAAiB,GAClB,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC,UAIA;AAED,iBAAS,eAAe,CAAC,EACvB,iBAAiB,GAClB,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC,UASA;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAkBtC;AAED,iBAAS,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAqBrE;AAED,iBAAS,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAoBnD;AAgHD,iBAAS,iBAAiB,CAAC,EACzB,iBAAiB,EACjB,UAAU,EACV,SAAa,GACd,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,UAAU,EAAE,CAAC,sBAAsB,GAAG,uBAAuB,GAAG,IAAI,CAAC,EAAE,CAAA;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,UAIA;AAED,iBAAS,kBAAkB,CAAC,EAC1B,iBAAiB,GAClB,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC,UAIA;AAED,iBAAS,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAkB9D;AAED,iBAAS,eAAe,CACtB,EAAE,EAAE,GAAG,GAAG,MAAM,EAChB,SAAS,EAAE,sBAAsB,GAAG,uBAAuB,GAC1D,IAAI,CA+BN;AAED,iBAAS,kBAAkB,CACzB,EAAE,EAAE,GAAG,GAAG,MAAM,EAChB,SAAS,EAAE,sBAAsB,GAAG,uBAAuB,GAC1D,IAAI,CA2BN;AAED,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,eAAe,EACf,OAAO,EACP,aAAa,EACb,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,kBAAkB,GACnB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/index.ts"],"names":[],"mappings":"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"}
@@ -21,11 +21,26 @@ const utils_1 = require("../accounts/utils");
21
21
  const core_1 = require("../modules/validators/core");
22
22
  const smart_session_1 = require("./smart-session");
23
23
  Object.defineProperty(exports, "encodeSmartSessionSignature", { enumerable: true, get: function () { return smart_session_1.encodeSmartSessionSignature; } });
24
+ /**
25
+ * Set up social recovery
26
+ * @param rhinestoneAccount Account to set up social recovery on
27
+ * @param guardians Guardians to use for recovery
28
+ * @param threshold Threshold for the guardians
29
+ * @returns Calls to set up social recovery
30
+ */
24
31
  function setUpRecovery({ rhinestoneAccount, guardians, threshold = 1, }) {
25
32
  const module = (0, core_1.getSocialRecoveryValidator)(guardians, threshold);
26
33
  const calls = (0, accounts_1.getModuleInstallationCalls)(rhinestoneAccount.config, module);
27
34
  return calls;
28
35
  }
36
+ /**
37
+ * Recover an account's ownership
38
+ * @param address Account address
39
+ * @param newOwners New owners
40
+ * @param chain Chain to recover ownership on
41
+ * @param provider Provider to use for the recovery
42
+ * @returns Calls to recover ownership
43
+ */
29
44
  async function recover(address, newOwners, chain, provider) {
30
45
  switch (newOwners.type) {
31
46
  case 'ecdsa': {
@@ -39,21 +54,45 @@ async function recover(address, newOwners, chain, provider) {
39
54
  }
40
55
  }
41
56
  }
57
+ /**
58
+ * Enable ECDSA authentication
59
+ * @param rhinestoneAccount Account to enable ECDSA authentication on
60
+ * @param owners Owners to use for authentication
61
+ * @param threshold Threshold for the owners
62
+ * @returns Calls to enable ECDSA authentication
63
+ */
42
64
  function enableEcdsa({ rhinestoneAccount, owners, threshold = 1, }) {
43
65
  const module = (0, core_1.getOwnableValidator)(threshold, owners);
44
66
  const calls = (0, accounts_1.getModuleInstallationCalls)(rhinestoneAccount.config, module);
45
67
  return calls;
46
68
  }
69
+ /**
70
+ * Enable passkeys authentication
71
+ * @param rhinestoneAccount Account to enable passkeys authentication on
72
+ * @param pubKey Public key for the passkey
73
+ * @param authenticatorId Authenticator ID for the passkey
74
+ * @returns Calls to enable passkeys authentication
75
+ */
47
76
  function enablePasskeys({ rhinestoneAccount, pubKey, authenticatorId, }) {
48
77
  const module = (0, core_1.getWebAuthnValidator)({ pubKey, authenticatorId });
49
78
  const calls = (0, accounts_1.getModuleInstallationCalls)(rhinestoneAccount.config, module);
50
79
  return calls;
51
80
  }
81
+ /**
82
+ * Disable ECDSA authentication
83
+ * @param rhinestoneAccount Account to disable ECDSA authentication on
84
+ * @returns Calls to disable ECDSA authentication
85
+ */
52
86
  function disableEcdsa({ rhinestoneAccount, }) {
53
87
  const module = (0, core_1.getOwnableValidator)(1, []);
54
88
  const calls = (0, accounts_1.getModuleUninstallationCalls)(rhinestoneAccount.config, module);
55
89
  return calls;
56
90
  }
91
+ /**
92
+ * Disable passkeys (WebAuthn) authentication
93
+ * @param rhinestoneAccount Account to disable passkeys authentication on
94
+ * @returns Calls to disable passkeys authentication
95
+ */
57
96
  function disablePasskeys({ rhinestoneAccount, }) {
58
97
  const module = (0, core_1.getWebAuthnValidator)({
59
98
  // Mocked values
@@ -63,6 +102,11 @@ function disablePasskeys({ rhinestoneAccount, }) {
63
102
  const calls = (0, accounts_1.getModuleUninstallationCalls)(rhinestoneAccount.config, module);
64
103
  return calls;
65
104
  }
105
+ /**
106
+ * Add an ECDSA owner
107
+ * @param owner Owner address
108
+ * @returns Call to add the owner
109
+ */
66
110
  function addOwner(owner) {
67
111
  return {
68
112
  to: core_1.OWNABLE_VALIDATOR_ADDRESS,
@@ -82,6 +126,12 @@ function addOwner(owner) {
82
126
  }),
83
127
  };
84
128
  }
129
+ /**
130
+ * Remove an ECDSA owner
131
+ * @param prevOwner Previous owner address
132
+ * @param ownerToRemove Owner to remove
133
+ * @returns Call to remove the owner
134
+ */
85
135
  function removeOwner(prevOwner, ownerToRemove) {
86
136
  return {
87
137
  to: core_1.OWNABLE_VALIDATOR_ADDRESS,
@@ -104,6 +154,11 @@ function removeOwner(prevOwner, ownerToRemove) {
104
154
  }),
105
155
  };
106
156
  }
157
+ /**
158
+ * Change an account's signer threshold (ECDSA)
159
+ * @param newThreshold New threshold
160
+ * @returns Call to change the threshold
161
+ */
107
162
  function changeThreshold(newThreshold) {
108
163
  return {
109
164
  to: core_1.OWNABLE_VALIDATOR_ADDRESS,
@@ -125,6 +180,14 @@ function changeThreshold(newThreshold) {
125
180
  }),
126
181
  };
127
182
  }
183
+ /**
184
+ * Recover an account's ownership (ECDSA)
185
+ * @param address Account address
186
+ * @param newOwners New owners
187
+ * @param chain Chain to recover ownership on
188
+ * @param provider Provider to use for the recovery
189
+ * @returns Calls to recover ownership
190
+ */
128
191
  async function recoverEcdsaOwnership(address, newOwners, chain, provider) {
129
192
  const publicClient = (0, viem_1.createPublicClient)({
130
193
  chain,
@@ -215,16 +278,33 @@ async function recoverEcdsaOwnership(address, newOwners, chain, provider) {
215
278
  }
216
279
  return calls;
217
280
  }
281
+ /**
282
+ * Enable multi-factor authentication
283
+ * @param rhinestoneAccount Account to enable multi-factor authentication on
284
+ * @param validators List of validators to use
285
+ * @param threshold Threshold for the validators
286
+ * @returns Calls to enable multi-factor authentication
287
+ */
218
288
  function enableMultiFactor({ rhinestoneAccount, validators, threshold = 1, }) {
219
289
  const module = (0, core_1.getMultiFactorValidator)(threshold, validators);
220
290
  const calls = (0, accounts_1.getModuleInstallationCalls)(rhinestoneAccount.config, module);
221
291
  return calls;
222
292
  }
293
+ /**
294
+ * Disable multi-factor authentication
295
+ * @param rhinestoneAccount Account to disable multi-factor authentication on
296
+ * @returns Calls to disable multi-factor authentication
297
+ */
223
298
  function disableMultiFactor({ rhinestoneAccount, }) {
224
299
  const module = (0, core_1.getMultiFactorValidator)(1, []);
225
300
  const calls = (0, accounts_1.getModuleUninstallationCalls)(rhinestoneAccount.config, module);
226
301
  return calls;
227
302
  }
303
+ /**
304
+ * Change the multi-factor threshold
305
+ * @param newThreshold New threshold
306
+ * @returns Call to change the threshold
307
+ */
228
308
  function changeMultiFactorThreshold(newThreshold) {
229
309
  return {
230
310
  to: core_1.MULTI_FACTOR_VALIDATOR_ADDRESS,
@@ -244,6 +324,12 @@ function changeMultiFactorThreshold(newThreshold) {
244
324
  }),
245
325
  };
246
326
  }
327
+ /**
328
+ * Set a sub-validator (multi-factor)
329
+ * @param id Validator ID
330
+ * @param validator Validator module
331
+ * @returns Call to set the sub-validator
332
+ */
247
333
  function setSubValidator(id, validator) {
248
334
  const validatorId = (0, viem_1.padHex)((0, viem_1.toHex)(id), { size: 12 });
249
335
  const validatorModule = (0, core_1.getValidator)(validator);
@@ -276,6 +362,12 @@ function setSubValidator(id, validator) {
276
362
  }),
277
363
  };
278
364
  }
365
+ /**
366
+ * Remove a sub-validator (multi-factor)
367
+ * @param id Validator ID
368
+ * @param validator Validator module
369
+ * @returns Call to remove the sub-validator
370
+ */
279
371
  function removeSubValidator(id, validator) {
280
372
  const validatorId = (0, viem_1.padHex)((0, viem_1.toHex)(id), { size: 12 });
281
373
  const validatorModule = (0, core_1.getValidator)(validator);
@@ -10,7 +10,7 @@ const MOCK_OWNER_A = '0xd1aefebdceefc094f1805b241fa5e6db63a9181a';
10
10
  const MOCK_OWNER_B = '0xeddfcb50d18f6d3d51c4f7cbca5ed6bdebc59817';
11
11
  const MOCK_OWNER_C = '0xb31e76f19defe76edc4b7eceeb4b0a2d6ddaca39';
12
12
  const MOCK_ACCOUNT_ADDRESS = '0x1234567890123456789012345678901234567890';
13
- const accountAddress = '0x464aae2512ead54fffad07fdf1f13d513050678b';
13
+ const accountAddress = '0xc1b6c46c220dbc0ce6d13f4fb5adf70ccc1eb423';
14
14
  // Mock viem
15
15
  vitest_1.vi.mock('viem', async (importOriginal) => {
16
16
  const actual = await importOriginal();
@@ -37,7 +37,7 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
37
37
  {
38
38
  to: accountAddress,
39
39
  value: 0n,
40
- data: '0x9517e29f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000e9e6e96bcaa3c113187cdb7e38aed900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d1aefebdceefc094f1805b241fa5e6db63a9181a',
40
+ data: '0x9517e29f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000020c008719ba9d8aa14c7d07d122cd5e965aa8da500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d1aefebdceefc094f1805b241fa5e6db63a9181a',
41
41
  },
42
42
  ]);
43
43
  });
@@ -49,7 +49,7 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
49
49
  {
50
50
  to: accountAddress,
51
51
  value: 0n,
52
- data: '0x9517e29f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000e9e6e96bcaa3c113187cdb7e38aed9000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d1aefebdceefc094f1805b241fa5e6db63a9181a000000000000000000000000eddfcb50d18f6d3d51c4f7cbca5ed6bdebc59817',
52
+ data: '0x9517e29f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000020c008719ba9d8aa14c7d07d122cd5e965aa8da5000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d1aefebdceefc094f1805b241fa5e6db63a9181a000000000000000000000000eddfcb50d18f6d3d51c4f7cbca5ed6bdebc59817',
53
53
  },
54
54
  ]);
55
55
  });
@@ -62,7 +62,7 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
62
62
  {
63
63
  to: accountAddress,
64
64
  value: 0n,
65
- data: '0x9517e29f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000e9e6e96bcaa3c113187cdb7e38aed9000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000b31e76f19defe76edc4b7eceeb4b0a2d6ddaca39000000000000000000000000d1aefebdceefc094f1805b241fa5e6db63a9181a000000000000000000000000eddfcb50d18f6d3d51c4f7cbca5ed6bdebc59817',
65
+ data: '0x9517e29f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000020c008719ba9d8aa14c7d07d122cd5e965aa8da5000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000b31e76f19defe76edc4b7eceeb4b0a2d6ddaca39000000000000000000000000d1aefebdceefc094f1805b241fa5e6db63a9181a000000000000000000000000eddfcb50d18f6d3d51c4f7cbca5ed6bdebc59817',
66
66
  },
67
67
  ]);
68
68
  });
@@ -104,7 +104,7 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
104
104
  {
105
105
  to: accountAddress,
106
106
  value: 0n,
107
- data: '0xa71763a800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000e9e6e96bcaa3c113187cdb7e38aed900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000',
107
+ data: '0xa71763a8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000020c008719ba9d8aa14c7d07d122cd5e965aa8da500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000',
108
108
  },
109
109
  ]);
110
110
  });
@@ -132,7 +132,7 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
132
132
  (0, vitest_1.describe)('Add Owner', () => {
133
133
  (0, vitest_1.test)('', () => {
134
134
  (0, vitest_1.expect)((0, _1.addOwner)(MOCK_OWNER_A)).toEqual({
135
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
135
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
136
136
  value: 0n,
137
137
  data: '0x7065cb48000000000000000000000000d1aefebdceefc094f1805b241fa5e6db63a9181a',
138
138
  });
@@ -141,7 +141,7 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
141
141
  (0, vitest_1.describe)('Remove Owner', () => {
142
142
  (0, vitest_1.test)('', () => {
143
143
  (0, vitest_1.expect)((0, _1.removeOwner)(MOCK_OWNER_A, MOCK_OWNER_B)).toEqual({
144
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
144
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
145
145
  value: 0n,
146
146
  data: '0xfbe5ce0a000000000000000000000000d1aefebdceefc094f1805b241fa5e6db63a9181a000000000000000000000000eddfcb50d18f6d3d51c4f7cbca5ed6bdebc59817',
147
147
  });
@@ -150,7 +150,7 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
150
150
  (0, vitest_1.describe)('Set Threshold', () => {
151
151
  (0, vitest_1.test)('', () => {
152
152
  (0, vitest_1.expect)((0, _1.changeThreshold)(1)).toEqual({
153
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
153
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
154
154
  value: 0n,
155
155
  data: '0x960bfe040000000000000000000000000000000000000000000000000000000000000001',
156
156
  });
@@ -216,12 +216,12 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
216
216
  (0, vitest_1.expect)(mockPublicClient.multicall).toHaveBeenCalledTimes(1);
217
217
  (0, vitest_1.expect)(result).toEqual([
218
218
  {
219
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
219
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
220
220
  value: 0n,
221
221
  data: '0x7065cb480000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7',
222
222
  },
223
223
  {
224
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
224
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
225
225
  value: 0n,
226
226
  data: '0xfbe5ce0a0000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936',
227
227
  },
@@ -249,12 +249,12 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
249
249
  (0, vitest_1.expect)(mockPublicClient.multicall).toHaveBeenCalledTimes(1);
250
250
  (0, vitest_1.expect)(result).toEqual([
251
251
  {
252
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
252
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
253
253
  value: 0n,
254
254
  data: '0x7065cb48000000000000000000000000c5587d912c862252599b61926adaef316ba06da0',
255
255
  },
256
256
  {
257
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
257
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
258
258
  value: 0n,
259
259
  data: '0xfbe5ce0a000000000000000000000000c5587d912c862252599b61926adaef316ba06da0000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936',
260
260
  },
@@ -282,17 +282,17 @@ vitest_1.vi.mock('viem', async (importOriginal) => {
282
282
  (0, vitest_1.expect)(mockPublicClient.multicall).toHaveBeenCalledTimes(1);
283
283
  (0, vitest_1.expect)(result).toEqual([
284
284
  {
285
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
285
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
286
286
  value: 0n,
287
287
  data: '0x7065cb48000000000000000000000000c5587d912c862252599b61926adaef316ba06da0',
288
288
  },
289
289
  {
290
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
290
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
291
291
  value: 0n,
292
292
  data: '0xfbe5ce0a000000000000000000000000c5587d912c862252599b61926adaef316ba06da0000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936',
293
293
  },
294
294
  {
295
- to: '0x0000000000E9E6E96Bcaa3c113187CdB7E38AED9',
295
+ to: '0x20C008719Ba9D8aA14C7d07D122cd5E965aA8da5',
296
296
  value: 0n,
297
297
  data: '0xfbe5ce0a0000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000c27b7578151c5ef713c62c65db09763d57ac3596',
298
298
  },
@@ -1,5 +1,11 @@
1
1
  import type { Hex } from 'viem';
2
2
  import type { SessionDetails } from '../execution/smart-session';
3
+ /**
4
+ * Encode a smart session signature
5
+ * @param sessionDetails Session details
6
+ * @param sessionSignature Session signature
7
+ * @returns Encoded smart session signature
8
+ */
3
9
  declare function encodeSmartSessionSignature(sessionDetails: SessionDetails, sessionSignature: Hex): `0x${string}`;
4
10
  export { encodeSmartSessionSignature };
5
11
  //# sourceMappingURL=smart-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../actions/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAGhE,iBAAS,2BAA2B,CAClC,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,GAAG,iBAQtB;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAA"}
1
+ {"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../actions/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAGhE;;;;;GAKG;AACH,iBAAS,2BAA2B,CAClC,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,GAAG,iBAQtB;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAA"}
@@ -2,6 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodeSmartSessionSignature = encodeSmartSessionSignature;
4
4
  const smart_sessions_1 = require("../modules/validators/smart-sessions");
5
+ /**
6
+ * Encode a smart session signature
7
+ * @param sessionDetails Session details
8
+ * @param sessionSignature Session signature
9
+ * @returns Encoded smart session signature
10
+ */
5
11
  function encodeSmartSessionSignature(sessionDetails, sessionSignature) {
6
12
  return (0, smart_sessions_1.encodeSmartSessionSignature)(sessionDetails.mode, sessionDetails.enableSessionData.permissionId, sessionSignature, sessionDetails.enableSessionData);
7
13
  }
@@ -1,8 +1,135 @@
1
1
  import { type Address } from 'viem';
2
+ import type { IntentOp } from '../orchestrator/types';
2
3
  import type { Call } from '../types';
3
4
  declare const COMPACT_ADDRESS = "0xa2E6C7Ba8613E1534dCB990e7e4962216C0a5d58";
4
5
  declare function getDepositEtherCall(account: Address, value: bigint): Call;
5
6
  declare function getDepositErc20Call(account: Address, tokenAddress: Address, amount: bigint): Call;
6
7
  declare function getApproveErc20Call(tokenAddress: Address, amount: bigint): Call;
7
- export { COMPACT_ADDRESS, getDepositEtherCall, getDepositErc20Call, getApproveErc20Call, };
8
+ declare function getIntentData(intentOp: IntentOp): {
9
+ readonly domain: {
10
+ readonly name: "The Compact";
11
+ readonly version: "1";
12
+ readonly chainId: bigint;
13
+ readonly verifyingContract: "0x73d2dc0c21fca4ec1601895d50df7f5624f07d3f";
14
+ };
15
+ readonly types: {
16
+ readonly MultichainCompact: readonly [{
17
+ readonly name: "sponsor";
18
+ readonly type: "address";
19
+ }, {
20
+ readonly name: "nonce";
21
+ readonly type: "uint256";
22
+ }, {
23
+ readonly name: "expires";
24
+ readonly type: "uint256";
25
+ }, {
26
+ readonly name: "elements";
27
+ readonly type: "Element[]";
28
+ }];
29
+ readonly Element: readonly [{
30
+ readonly name: "arbiter";
31
+ readonly type: "address";
32
+ }, {
33
+ readonly name: "chainId";
34
+ readonly type: "uint256";
35
+ }, {
36
+ readonly name: "commitments";
37
+ readonly type: "Lock[]";
38
+ }, {
39
+ readonly name: "mandate";
40
+ readonly type: "Mandate";
41
+ }];
42
+ readonly Lock: readonly [{
43
+ readonly name: "lockTag";
44
+ readonly type: "bytes12";
45
+ }, {
46
+ readonly name: "token";
47
+ readonly type: "address";
48
+ }, {
49
+ readonly name: "amount";
50
+ readonly type: "uint256";
51
+ }];
52
+ readonly Mandate: readonly [{
53
+ readonly name: "target";
54
+ readonly type: "Target";
55
+ }, {
56
+ readonly name: "originOps";
57
+ readonly type: "Op[]";
58
+ }, {
59
+ readonly name: "destOps";
60
+ readonly type: "Op[]";
61
+ }, {
62
+ readonly name: "q";
63
+ readonly type: "bytes32";
64
+ }];
65
+ readonly Target: readonly [{
66
+ readonly name: "recipient";
67
+ readonly type: "address";
68
+ }, {
69
+ readonly name: "tokenOut";
70
+ readonly type: "Token[]";
71
+ }, {
72
+ readonly name: "targetChain";
73
+ readonly type: "uint256";
74
+ }, {
75
+ readonly name: "fillExpiry";
76
+ readonly type: "uint256";
77
+ }];
78
+ readonly Token: readonly [{
79
+ readonly name: "token";
80
+ readonly type: "address";
81
+ }, {
82
+ readonly name: "amount";
83
+ readonly type: "uint256";
84
+ }];
85
+ readonly Op: readonly [{
86
+ readonly name: "to";
87
+ readonly type: "address";
88
+ }, {
89
+ readonly name: "value";
90
+ readonly type: "uint256";
91
+ }, {
92
+ readonly name: "data";
93
+ readonly type: "bytes";
94
+ }];
95
+ };
96
+ readonly primaryType: "MultichainCompact";
97
+ readonly message: {
98
+ readonly sponsor: `0x${string}`;
99
+ readonly nonce: bigint;
100
+ readonly expires: bigint;
101
+ readonly elements: {
102
+ arbiter: `0x${string}`;
103
+ chainId: bigint;
104
+ commitments: {
105
+ lockTag: `0x${string}`;
106
+ token: `0x${string}`;
107
+ amount: bigint;
108
+ }[];
109
+ mandate: {
110
+ target: {
111
+ recipient: `0x${string}`;
112
+ tokenOut: {
113
+ token: `0x${string}`;
114
+ amount: bigint;
115
+ }[];
116
+ targetChain: bigint;
117
+ fillExpiry: bigint;
118
+ };
119
+ originOps: {
120
+ to: `0x${string}`;
121
+ value: bigint;
122
+ data: `0x${string}`;
123
+ }[];
124
+ destOps: {
125
+ to: `0x${string}`;
126
+ value: bigint;
127
+ data: `0x${string}`;
128
+ }[];
129
+ q: `0x${string}`;
130
+ };
131
+ }[];
132
+ };
133
+ };
134
+ export { COMPACT_ADDRESS, getDepositEtherCall, getDepositErc20Call, getApproveErc20Call, getIntentData, };
8
135
  //# sourceMappingURL=compact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../execution/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA0C,MAAM,MAAM,CAAA;AAC3E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAcpC,QAAA,MAAM,eAAe,+CAA+C,CAAA;AAKpE,iBAAS,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAqBlE;AAED,iBAAS,mBAAmB,CAC1B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,OAAO,EACrB,MAAM,EAAE,MAAM,GACb,IAAI,CA2BN;AAED,iBAAS,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAUxE;AAoCD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,CAAA"}
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../execution/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAOb,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAcpC,QAAA,MAAM,eAAe,+CAA+C,CAAA;AAKpE,iBAAS,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAqBlE;AAED,iBAAS,mBAAmB,CAC1B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,OAAO,EACrB,MAAM,EAAE,MAAM,GACb,IAAI,CA2BN;AAED,iBAAS,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAUxE;AA8ED,iBAAS,aAAa,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDxC;AAED,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,CAAA"}