@rhinestone/sdk 0.12.2 → 0.12.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.
- package/dist/src/accounts/index.d.ts +5 -3
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +16 -15
- package/dist/src/accounts/kernel.d.ts +2 -1
- package/dist/src/accounts/kernel.d.ts.map +1 -1
- package/dist/src/accounts/kernel.js +7 -1
- package/dist/src/accounts/nexus.d.ts +2 -1
- package/dist/src/accounts/nexus.d.ts.map +1 -1
- package/dist/src/accounts/nexus.js +7 -1
- package/dist/src/accounts/safe.d.ts +2 -1
- package/dist/src/accounts/safe.d.ts.map +1 -1
- package/dist/src/accounts/safe.js +7 -1
- package/dist/src/accounts/utils.d.ts.map +1 -1
- package/dist/src/accounts/utils.js +15 -2
- package/dist/src/actions/index.d.ts +3 -1
- package/dist/src/actions/index.d.ts.map +1 -1
- package/dist/src/actions/index.js +5 -0
- package/dist/src/actions/registry.d.ts +7 -0
- package/dist/src/actions/registry.d.ts.map +1 -0
- package/dist/src/actions/registry.js +7 -0
- package/dist/src/actions/registry.test.d.ts +2 -0
- package/dist/src/actions/registry.test.d.ts.map +1 -0
- package/dist/src/actions/registry.test.js +25 -0
- package/dist/src/actions/smart-session.d.ts +5 -0
- package/dist/src/actions/smart-session.d.ts.map +1 -0
- package/dist/src/actions/smart-session.js +7 -0
- package/dist/src/execution/index.d.ts +2 -2
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +4 -1
- package/dist/src/execution/smart-session.d.ts +11 -1
- package/dist/src/execution/smart-session.d.ts.map +1 -1
- package/dist/src/execution/smart-session.js +264 -0
- package/dist/src/execution/smart-session.test.js +28 -0
- package/dist/src/execution/utils.d.ts +3 -3
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +76 -7
- package/dist/src/index.d.ts +11 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +25 -1
- package/dist/src/modules/index.d.ts +6 -1
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +15 -6
- package/dist/src/modules/read.d.ts +10 -0
- package/dist/src/modules/read.d.ts.map +1 -0
- package/dist/src/modules/read.js +152 -0
- package/dist/src/modules/validators/core.d.ts +2 -1
- package/dist/src/modules/validators/core.d.ts.map +1 -1
- package/dist/src/modules/validators/core.js +2 -1
- package/dist/src/modules/validators/smart-sessions.d.ts +49 -5
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +176 -4
- package/dist/src/orchestrator/registry.d.ts +1 -1
- package/dist/src/types.d.ts +11 -2
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Chain, type Hex, type PublicClient } from 'viem';
|
|
2
2
|
import { Module } from '../modules/common';
|
|
3
|
-
import
|
|
3
|
+
import { EnableSessionData } from '../modules/validators/smart-sessions';
|
|
4
|
+
import type { AccountProviderConfig, Call, OwnerSet, RhinestoneAccountConfig, Session } from '../types';
|
|
4
5
|
import { ValidatorConfig } from './utils';
|
|
5
6
|
declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
6
7
|
factory: `0x${string}`;
|
|
@@ -25,8 +26,9 @@ declare function deploySource(chain: Chain, config: RhinestoneAccountConfig): Pr
|
|
|
25
26
|
declare function deployTarget(chain: Chain, config: RhinestoneAccountConfig, asUserOp: boolean): Promise<void>;
|
|
26
27
|
declare function getBundleInitCode(config: RhinestoneAccountConfig): `0x${string}` | undefined;
|
|
27
28
|
declare function getSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, chain: Chain): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
28
|
-
declare function getSmartSessionSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, chain: Chain, session: Session): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
29
|
+
declare function getSmartSessionSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, chain: Chain, session: Session, enableData: EnableSessionData | null): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
29
30
|
declare function getGuardianSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, chain: Chain, guardians: OwnerSet): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
30
31
|
declare function sign(validators: OwnerSet, chain: Chain, hash: Hex): Promise<`0x${string}`>;
|
|
31
|
-
|
|
32
|
+
declare function getAccountProvider(config: RhinestoneAccountConfig): AccountProviderConfig;
|
|
33
|
+
export { getModuleInstallationCalls, getModuleUninstallationCalls, getDeployArgs, getBundleInitCode, getAddress, getAccountProvider, isDeployed, deploy, deploySource, deployTarget, getSmartAccount, getSmartSessionSmartAccount, getGuardianSmartAccount, getPackedSignature, sign, };
|
|
32
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAMV,KAAK,GAAG,EAER,KAAK,YAAY,EAGlB,MAAM,MAAM,CAAA;AAOb,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM1C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAMV,KAAK,GAAG,EAER,KAAK,YAAY,EAGlB,MAAM,MAAM,CAAA;AAOb,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,KAAK,EACV,qBAAqB,EACrB,IAAI,EACJ,QAAQ,EACR,uBAAuB,EACvB,OAAO,EACR,MAAM,UAAU,CAAA;AAkCjB,OAAO,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAA;AAE3D,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;;;;;;;EAarD;AAED,iBAAS,0BAA0B,CACjC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,IAAI,EAAE,CAuBR;AAED,iBAAS,4BAA4B,CACnC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,IAAI,EAAE,CA6BR;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAmBlD;AAGD,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,GAAG,EACT,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BA2BvE;AAED,iBAAe,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,oBAiBtE;AAED,iBAAe,MAAM,CACnB,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO,iBAMlB;AAED,iBAAe,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,iBAMxE;AAED,iBAAe,YAAY,CACzB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,OAAO,iBASlB;AAUD,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,6BAUzD;AAgID,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,sJAmCb;AAED,iBAAe,2BAA2B,CACxC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,iBAAiB,GAAG,IAAI,sJA0CrC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,sJAwCpB;AAED,iBAAe,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,0BAYhE;AA6DD,iBAAS,kBAAkB,CACzB,MAAM,EAAE,uBAAuB,GAC9B,qBAAqB,CAOvB;AAED,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAClB,IAAI,GACL,CAAA"}
|
|
@@ -5,6 +5,7 @@ exports.getModuleUninstallationCalls = getModuleUninstallationCalls;
|
|
|
5
5
|
exports.getDeployArgs = getDeployArgs;
|
|
6
6
|
exports.getBundleInitCode = getBundleInitCode;
|
|
7
7
|
exports.getAddress = getAddress;
|
|
8
|
+
exports.getAccountProvider = getAccountProvider;
|
|
8
9
|
exports.isDeployed = isDeployed;
|
|
9
10
|
exports.deploy = deploy;
|
|
10
11
|
exports.deploySource = deploySource;
|
|
@@ -24,7 +25,7 @@ const nexus_1 = require("./nexus");
|
|
|
24
25
|
const safe_1 = require("./safe");
|
|
25
26
|
const utils_1 = require("./utils");
|
|
26
27
|
function getDeployArgs(config) {
|
|
27
|
-
const account =
|
|
28
|
+
const account = getAccountProvider(config);
|
|
28
29
|
switch (account.type) {
|
|
29
30
|
case 'safe': {
|
|
30
31
|
return (0, safe_1.getDeployArgs)(config);
|
|
@@ -40,7 +41,7 @@ function getDeployArgs(config) {
|
|
|
40
41
|
function getModuleInstallationCalls(config, module) {
|
|
41
42
|
const address = getAddress(config);
|
|
42
43
|
function getInstallData() {
|
|
43
|
-
const account =
|
|
44
|
+
const account = getAccountProvider(config);
|
|
44
45
|
switch (account.type) {
|
|
45
46
|
case 'safe': {
|
|
46
47
|
return [(0, safe_1.getInstallData)(module)];
|
|
@@ -96,7 +97,7 @@ function getAddress(config) {
|
|
|
96
97
|
}
|
|
97
98
|
return config.eoa.address;
|
|
98
99
|
}
|
|
99
|
-
const account =
|
|
100
|
+
const account = getAccountProvider(config);
|
|
100
101
|
switch (account.type) {
|
|
101
102
|
case 'safe': {
|
|
102
103
|
return (0, safe_1.getAddress)(config);
|
|
@@ -112,7 +113,7 @@ function getAddress(config) {
|
|
|
112
113
|
// Signs and packs a signature to be EIP-1271 compatibleAdd commentMore actions
|
|
113
114
|
async function getPackedSignature(config, owners, chain, validator, hash, transformSignature = (signature) => signature) {
|
|
114
115
|
const signFn = (hash) => sign(owners, chain, hash);
|
|
115
|
-
const account =
|
|
116
|
+
const account = getAccountProvider(config);
|
|
116
117
|
const address = getAddress(config);
|
|
117
118
|
switch (account.type) {
|
|
118
119
|
case 'safe': {
|
|
@@ -190,7 +191,7 @@ async function deploy7702Self(chain, config) {
|
|
|
190
191
|
if (!config.eoa) {
|
|
191
192
|
throw new Error('EIP-7702 accounts must have an EOA account');
|
|
192
193
|
}
|
|
193
|
-
const account =
|
|
194
|
+
const account = getAccountProvider(config);
|
|
194
195
|
const { implementation, initializationCallData } = getDeployArgs(config);
|
|
195
196
|
if (!initializationCallData) {
|
|
196
197
|
throw new Error(`Initialization call data not available for ${account.type}`);
|
|
@@ -288,7 +289,7 @@ async function deploy7702WithBundler(chain, config) {
|
|
|
288
289
|
});
|
|
289
290
|
}
|
|
290
291
|
async function getSmartAccount(config, client, chain) {
|
|
291
|
-
const account =
|
|
292
|
+
const account = getAccountProvider(config);
|
|
292
293
|
const address = getAddress(config);
|
|
293
294
|
const ownerValidator = (0, validators_1.getOwnerValidator)(config);
|
|
294
295
|
const signFn = (hash) => sign(config.owners, chain, hash);
|
|
@@ -304,23 +305,23 @@ async function getSmartAccount(config, client, chain) {
|
|
|
304
305
|
}
|
|
305
306
|
}
|
|
306
307
|
}
|
|
307
|
-
async function getSmartSessionSmartAccount(config, client, chain, session) {
|
|
308
|
+
async function getSmartSessionSmartAccount(config, client, chain, session, enableData) {
|
|
308
309
|
const address = getAddress(config);
|
|
309
310
|
const smartSessionValidator = (0, validators_1.getSmartSessionValidator)(config);
|
|
310
311
|
if (!smartSessionValidator) {
|
|
311
312
|
throw new Error('Smart sessions are not enabled for this account');
|
|
312
313
|
}
|
|
313
314
|
const signFn = (hash) => sign(session.owners, chain, hash);
|
|
314
|
-
const account =
|
|
315
|
+
const account = getAccountProvider(config);
|
|
315
316
|
switch (account.type) {
|
|
316
317
|
case 'safe': {
|
|
317
|
-
return (0, safe_1.getSessionSmartAccount)(client, address, session, smartSessionValidator.address, signFn);
|
|
318
|
+
return (0, safe_1.getSessionSmartAccount)(client, address, session, smartSessionValidator.address, enableData, signFn);
|
|
318
319
|
}
|
|
319
320
|
case 'nexus': {
|
|
320
|
-
return (0, nexus_1.getSessionSmartAccount)(client, address, session, smartSessionValidator.address, signFn);
|
|
321
|
+
return (0, nexus_1.getSessionSmartAccount)(client, address, session, smartSessionValidator.address, enableData, signFn);
|
|
321
322
|
}
|
|
322
323
|
case 'kernel': {
|
|
323
|
-
return (0, kernel_1.getSessionSmartAccount)(client, address, session, smartSessionValidator.address, signFn);
|
|
324
|
+
return (0, kernel_1.getSessionSmartAccount)(client, address, session, smartSessionValidator.address, enableData, signFn);
|
|
324
325
|
}
|
|
325
326
|
}
|
|
326
327
|
}
|
|
@@ -332,7 +333,7 @@ async function getGuardianSmartAccount(config, client, chain, guardians) {
|
|
|
332
333
|
throw new Error('Social recovery is not enabled for this account');
|
|
333
334
|
}
|
|
334
335
|
const signFn = (hash) => sign(guardians, chain, hash);
|
|
335
|
-
const account =
|
|
336
|
+
const account = getAccountProvider(config);
|
|
336
337
|
switch (account.type) {
|
|
337
338
|
case 'safe': {
|
|
338
339
|
return (0, safe_1.getGuardianSmartAccount)(client, address, guardians, socialRecoveryValidator.address, signFn);
|
|
@@ -376,7 +377,7 @@ async function get7702SmartAccount(config, client) {
|
|
|
376
377
|
if (!config.eoa) {
|
|
377
378
|
throw new Error('EIP-7702 accounts must have an EOA account');
|
|
378
379
|
}
|
|
379
|
-
const account =
|
|
380
|
+
const account = getAccountProvider(config);
|
|
380
381
|
switch (account.type) {
|
|
381
382
|
case 'safe': {
|
|
382
383
|
return (0, safe_1.get7702SmartAccount)();
|
|
@@ -390,7 +391,7 @@ async function get7702SmartAccount(config, client) {
|
|
|
390
391
|
}
|
|
391
392
|
}
|
|
392
393
|
async function get7702InitCalls(config) {
|
|
393
|
-
const account =
|
|
394
|
+
const account = getAccountProvider(config);
|
|
394
395
|
switch (account.type) {
|
|
395
396
|
case 'safe': {
|
|
396
397
|
return (0, safe_1.get7702InitCalls)();
|
|
@@ -406,7 +407,7 @@ async function get7702InitCalls(config) {
|
|
|
406
407
|
function is7702(config) {
|
|
407
408
|
return config.eoa !== undefined;
|
|
408
409
|
}
|
|
409
|
-
function
|
|
410
|
+
function getAccountProvider(config) {
|
|
410
411
|
if (config.account) {
|
|
411
412
|
return config.account;
|
|
412
413
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Abi, Address, Hex, PublicClient } from 'viem';
|
|
2
2
|
import { SmartAccount, SmartAccountImplementation } from 'viem/account-abstraction';
|
|
3
3
|
import { Module } from '../modules/common';
|
|
4
|
+
import { EnableSessionData } from '../modules/validators/smart-sessions';
|
|
4
5
|
import { OwnerSet, RhinestoneAccountConfig, Session } from '../types';
|
|
5
6
|
import { ValidatorConfig } from './utils';
|
|
6
7
|
declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
@@ -16,7 +17,7 @@ declare function get7702InitCalls(): never;
|
|
|
16
17
|
declare function get7702SmartAccount(): never;
|
|
17
18
|
declare function getPackedSignature(signFn: (message: Hex) => Promise<Hex>, hash: Hex, validator: ValidatorConfig, accountAddress: Address, transformSignature?: (signature: Hex) => Hex): Promise<`0x${string}`>;
|
|
18
19
|
declare function getSmartAccount(client: PublicClient, address: Address, owners: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
19
|
-
declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
20
|
+
declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, enableData: EnableSessionData | null, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
20
21
|
declare function getGuardianSmartAccount(client: PublicClient, address: Address, guardians: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
21
22
|
export { getInstallData, getAddress, getDeployArgs, getSmartAccount, getSessionSmartAccount, getGuardianSmartAccount, get7702InitCalls, get7702SmartAccount, getPackedSignature, };
|
|
22
23
|
//# sourceMappingURL=kernel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../accounts/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,OAAO,EAQP,GAAG,EAEH,YAAY,EAMb,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,YAAY,EACZ,0BAA0B,EAE3B,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAKL,MAAM,EACP,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../accounts/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,OAAO,EAQP,GAAG,EAEH,YAAY,EAMb,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,YAAY,EACZ,0BAA0B,EAE3B,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAKL,MAAM,EACP,MAAM,mBAAmB,CAAA;AAQ1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAoC,eAAe,EAAE,MAAM,SAAS,CAAA;AAgB3E,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;EA4CrD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBASlD;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,CAsE7C;AAED,iBAAS,gBAAgB,IAAI,KAAK,CAEjC;AAED,iBAAS,mBAAmB,IAAI,KAAK,CAEpC;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACtC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,OAAO,EACvB,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAevE;AAwBD,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,iEAYlC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEA0ClC;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,iEAclC;AA+ED,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,CAAA"}
|
|
@@ -166,12 +166,18 @@ async function getSmartAccount(client, address, owners, validatorAddress, sign)
|
|
|
166
166
|
return (0, validators_1.getMockSignature)(owners);
|
|
167
167
|
}, sign);
|
|
168
168
|
}
|
|
169
|
-
async function getSessionSmartAccount(client, address, session, validatorAddress, sign) {
|
|
169
|
+
async function getSessionSmartAccount(client, address, session, validatorAddress, enableData, sign) {
|
|
170
170
|
return await getBaseSmartAccount(address, client, validatorAddress, 'validator', async () => {
|
|
171
171
|
const dummyOpSignature = (0, validators_1.getMockSignature)(session.owners);
|
|
172
|
+
if (enableData) {
|
|
173
|
+
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_ENABLE, (0, validators_1.getPermissionId)(session), dummyOpSignature, enableData);
|
|
174
|
+
}
|
|
172
175
|
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_USE, (0, validators_1.getPermissionId)(session), dummyOpSignature);
|
|
173
176
|
}, async (hash) => {
|
|
174
177
|
const signature = await sign(hash);
|
|
178
|
+
if (enableData) {
|
|
179
|
+
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_ENABLE, (0, validators_1.getPermissionId)(session), signature, enableData);
|
|
180
|
+
}
|
|
175
181
|
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_USE, (0, validators_1.getPermissionId)(session), signature);
|
|
176
182
|
});
|
|
177
183
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Abi, Account, Address, Hex, PublicClient } from 'viem';
|
|
2
2
|
import { type SmartAccount, type SmartAccountImplementation } from 'viem/account-abstraction';
|
|
3
3
|
import { Module } from '../modules/common';
|
|
4
|
+
import { EnableSessionData } from '../modules/validators/smart-sessions';
|
|
4
5
|
import type { OwnerSet, RhinestoneAccountConfig, Session } from '../types';
|
|
5
6
|
import { ValidatorConfig } from './utils';
|
|
6
7
|
declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
@@ -14,7 +15,7 @@ declare function getAddress(config: RhinestoneAccountConfig): `0x${string}`;
|
|
|
14
15
|
declare function getInstallData(module: Module): `0x${string}`;
|
|
15
16
|
declare function getPackedSignature(signFn: (message: Hex) => Promise<Hex>, hash: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<`0x${string}`>;
|
|
16
17
|
declare function getSmartAccount(client: PublicClient, address: Address, owners: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
17
|
-
declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
18
|
+
declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, enableData: EnableSessionData | null, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
18
19
|
declare function getGuardianSmartAccount(client: PublicClient, address: Address, guardians: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
19
20
|
declare function get7702SmartAccount(account: Account, client: PublicClient): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
20
21
|
declare function get7702InitCalls(config: RhinestoneAccountConfig): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexus.d.ts","sourceRoot":"","sources":["../../../accounts/nexus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAYpE,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"nexus.d.ts","sourceRoot":"","sources":["../../../accounts/nexus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAYpE,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAoC,eAAe,EAAE,MAAM,SAAS,CAAA;AAc3E,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;EA6DrD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBA4BlD;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACtC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAQvE;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,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAuClC;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;AAED,iBAAe,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,iEAkBxE;AAgFD,iBAAS,gBAAgB,CAAC,MAAM,EAAE,uBAAuB;;;IAqDxD;AAED,OAAO,EACL,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GACjB,CAAA"}
|
|
@@ -131,12 +131,18 @@ async function getSmartAccount(client, address, owners, validatorAddress, sign)
|
|
|
131
131
|
return (0, validators_1.getMockSignature)(owners);
|
|
132
132
|
}, sign);
|
|
133
133
|
}
|
|
134
|
-
async function getSessionSmartAccount(client, address, session, validatorAddress, sign) {
|
|
134
|
+
async function getSessionSmartAccount(client, address, session, validatorAddress, enableData, sign) {
|
|
135
135
|
return await getBaseSmartAccount(address, client, validatorAddress, async () => {
|
|
136
136
|
const dummyOpSignature = (0, validators_1.getMockSignature)(session.owners);
|
|
137
|
+
if (enableData) {
|
|
138
|
+
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_ENABLE, (0, validators_1.getPermissionId)(session), dummyOpSignature, enableData);
|
|
139
|
+
}
|
|
137
140
|
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_USE, (0, validators_1.getPermissionId)(session), dummyOpSignature);
|
|
138
141
|
}, async (hash) => {
|
|
139
142
|
const signature = await sign(hash);
|
|
143
|
+
if (enableData) {
|
|
144
|
+
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_ENABLE, (0, validators_1.getPermissionId)(session), signature, enableData);
|
|
145
|
+
}
|
|
140
146
|
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_USE, (0, validators_1.getPermissionId)(session), signature);
|
|
141
147
|
});
|
|
142
148
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Abi, type Address, type Hex, type PublicClient } from 'viem';
|
|
2
2
|
import { type SmartAccount, type SmartAccountImplementation } from 'viem/account-abstraction';
|
|
3
3
|
import { Module } from '../modules/common';
|
|
4
|
+
import { EnableSessionData } from '../modules/validators/smart-sessions';
|
|
4
5
|
import type { OwnerSet, RhinestoneAccountConfig, Session } from '../types';
|
|
5
6
|
import { ValidatorConfig } from './utils';
|
|
6
7
|
declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
@@ -14,7 +15,7 @@ declare function getAddress(config: RhinestoneAccountConfig): `0x${string}`;
|
|
|
14
15
|
declare function getInstallData(module: Module): `0x${string}`;
|
|
15
16
|
declare function getPackedSignature(signFn: (message: Hex) => Promise<Hex>, hash: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<`0x${string}`>;
|
|
16
17
|
declare function getSmartAccount(client: PublicClient, address: Address, owners: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
17
|
-
declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
18
|
+
declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, enableData: EnableSessionData | null, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
18
19
|
declare function getGuardianSmartAccount(client: PublicClient, address: Address, guardians: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
19
20
|
declare function get7702SmartAccount(): never;
|
|
20
21
|
declare function get7702InitCalls(): never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAIZ,KAAK,GAAG,EAER,KAAK,YAAY,EAIlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAoC,eAAe,EAAE,MAAM,SAAS,CAAA;AAc3E,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAsErD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAalD;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACtC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAQvE;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,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAyClC;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;AA0ED,iBAAS,mBAAmB,IAAI,KAAK,CAEpC;AAED,iBAAS,gBAAgB,IAAI,KAAK,CAEjC;AAsBD,OAAO,EACL,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,GACpB,CAAA"}
|
|
@@ -130,12 +130,18 @@ async function getSmartAccount(client, address, owners, validatorAddress, sign)
|
|
|
130
130
|
return (0, validators_1.getMockSignature)(owners);
|
|
131
131
|
}, sign);
|
|
132
132
|
}
|
|
133
|
-
async function getSessionSmartAccount(client, address, session, validatorAddress, sign) {
|
|
133
|
+
async function getSessionSmartAccount(client, address, session, validatorAddress, enableData, sign) {
|
|
134
134
|
return await getBaseSmartAccount(address, client, validatorAddress, async () => {
|
|
135
135
|
const dummyOpSignature = (0, validators_1.getMockSignature)(session.owners);
|
|
136
|
+
if (enableData) {
|
|
137
|
+
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_ENABLE, (0, validators_1.getPermissionId)(session), dummyOpSignature, enableData);
|
|
138
|
+
}
|
|
136
139
|
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_USE, (0, validators_1.getPermissionId)(session), dummyOpSignature);
|
|
137
140
|
}, async (hash) => {
|
|
138
141
|
const signature = await sign(hash);
|
|
142
|
+
if (enableData) {
|
|
143
|
+
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_ENABLE, (0, validators_1.getPermissionId)(session), signature, enableData);
|
|
144
|
+
}
|
|
139
145
|
return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_USE, (0, validators_1.getPermissionId)(session), signature);
|
|
140
146
|
});
|
|
141
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAiBhD,OAAO,KAAK,EAGV,uBAAuB,EACxB,MAAM,UAAU,CAAA;AAEjB,KAAK,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAErD,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,aAAa,CAAC,QAAQ,SAAS,QAAQ;IAC/C,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,GAAG,CAAA;CACd;AAED,UAAU,oBAAoB,CAAC,QAAQ,SAAS,QAAQ;IACtD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC7B,QAAQ,EAAE,SAAS;QACjB,EAAE,EAAE,OAAO,CAAA;QACX,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;KACvB,EAAE,CAAA;CACJ;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAkDD,iBAAS,eAAe,CAAC,QAAQ,SAAS,QAAQ,EAAE,EAClD,IAAI,EACJ,QAAQ,GACT,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,GAAG,CAuFtC;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,6IAuCxE;AAyBD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -142,7 +142,13 @@ function getBundlerClient(config, client) {
|
|
|
142
142
|
return `https://api.pimlico.io/v2/${chainId}/rpc?apikey=${config.apiKey}`;
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
|
|
145
|
+
function getPaymasterEndpoint(config, chainId) {
|
|
146
|
+
switch (config.type) {
|
|
147
|
+
case 'pimlico':
|
|
148
|
+
return `https://api.pimlico.io/v2/${chainId}/rpc?apikey=${config.apiKey}`;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const { bundler, paymaster } = config;
|
|
146
152
|
const chainId = client.chain?.id;
|
|
147
153
|
if (!chainId) {
|
|
148
154
|
throw new Error('Chain id is required');
|
|
@@ -150,10 +156,17 @@ function getBundlerClient(config, client) {
|
|
|
150
156
|
const endpoint = bundler
|
|
151
157
|
? getBundlerEndpoint(bundler, chainId)
|
|
152
158
|
: `https://public.pimlico.io/v2/${chainId}/rpc`;
|
|
159
|
+
const paymasterEndpoint = paymaster
|
|
160
|
+
? getPaymasterEndpoint(paymaster, chainId)
|
|
161
|
+
: undefined;
|
|
153
162
|
return (0, account_abstraction_1.createBundlerClient)({
|
|
154
163
|
client,
|
|
155
164
|
transport: (0, viem_1.http)(endpoint),
|
|
156
|
-
paymaster:
|
|
165
|
+
paymaster: paymasterEndpoint
|
|
166
|
+
? (0, account_abstraction_1.createPaymasterClient)({
|
|
167
|
+
transport: (0, viem_1.http)(paymasterEndpoint),
|
|
168
|
+
})
|
|
169
|
+
: undefined,
|
|
157
170
|
userOperation: {
|
|
158
171
|
estimateFeesPerGas: () => getGasPriceEstimate(endpoint),
|
|
159
172
|
},
|
|
@@ -2,6 +2,8 @@ import { Address, Chain } from 'viem';
|
|
|
2
2
|
import { RhinestoneAccount } from '..';
|
|
3
3
|
import { WebauthnCredential } from '../modules/validators/core';
|
|
4
4
|
import { Call, OwnerSet, Recovery } from '../types';
|
|
5
|
+
import { trustAttester } from './registry';
|
|
6
|
+
import { encodeSmartSessionSignature } from './smart-session';
|
|
5
7
|
declare function setUpRecovery({ rhinestoneAccount, guardians, threshold, }: {
|
|
6
8
|
rhinestoneAccount: RhinestoneAccount;
|
|
7
9
|
} & Recovery): Call[];
|
|
@@ -23,5 +25,5 @@ declare function disablePasskeys({ rhinestoneAccount, }: {
|
|
|
23
25
|
declare function addOwner(owner: Address): Call;
|
|
24
26
|
declare function removeOwner(prevOwner: Address, ownerToRemove: Address): Call;
|
|
25
27
|
declare function changeThreshold(newThreshold: number): Call;
|
|
26
|
-
export { enableEcdsa, enablePasskeys, disableEcdsa, disablePasskeys, addOwner, removeOwner, changeThreshold, recover, setUpRecovery, };
|
|
28
|
+
export { enableEcdsa, enablePasskeys, disableEcdsa, disablePasskeys, addOwner, removeOwner, changeThreshold, recover, setUpRecovery, encodeSmartSessionSignature, trustAttester, };
|
|
27
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAIN,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAA;AAKtC,OAAO,EAKL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,IAAI,EAA0B,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE3E,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,GACX,OAAO,CAAC,IAAI,EAAE,CAAC,CASjB;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,UAOA;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,UAOA;AAED,iBAAS,eAAe,CAAC,EACvB,iBAAiB,GAClB,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC,UASA;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAiBtC;AAED,iBAAS,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAoBrE;AAED,iBAAS,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAmBnD;AA+GD,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,eAAe,EACf,OAAO,EACP,aAAa,GACd,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAIN,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAA;AAKtC,OAAO,EAKL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,IAAI,EAA0B,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,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,GACX,OAAO,CAAC,IAAI,EAAE,CAAC,CASjB;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,UAOA;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,UAOA;AAED,iBAAS,eAAe,CAAC,EACvB,iBAAiB,GAClB,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC,UASA;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAiBtC;AAED,iBAAS,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAoBrE;AAED,iBAAS,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAmBnD;AA+GD,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,eAAe,EACf,OAAO,EACP,aAAa,EACb,2BAA2B,EAC3B,aAAa,GACd,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.trustAttester = exports.encodeSmartSessionSignature = void 0;
|
|
3
4
|
exports.enableEcdsa = enableEcdsa;
|
|
4
5
|
exports.enablePasskeys = enablePasskeys;
|
|
5
6
|
exports.disableEcdsa = disableEcdsa;
|
|
@@ -12,6 +13,10 @@ exports.setUpRecovery = setUpRecovery;
|
|
|
12
13
|
const viem_1 = require("viem");
|
|
13
14
|
const accounts_1 = require("../accounts");
|
|
14
15
|
const core_1 = require("../modules/validators/core");
|
|
16
|
+
const registry_1 = require("./registry");
|
|
17
|
+
Object.defineProperty(exports, "trustAttester", { enumerable: true, get: function () { return registry_1.trustAttester; } });
|
|
18
|
+
const smart_session_1 = require("./smart-session");
|
|
19
|
+
Object.defineProperty(exports, "encodeSmartSessionSignature", { enumerable: true, get: function () { return smart_session_1.encodeSmartSessionSignature; } });
|
|
15
20
|
function setUpRecovery({ rhinestoneAccount, guardians, threshold = 1, }) {
|
|
16
21
|
const module = (0, core_1.getSocialRecoveryValidator)(guardians, threshold);
|
|
17
22
|
const calls = (0, accounts_1.getModuleInstallationCalls)(rhinestoneAccount.config, module);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../actions/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAA;AAGtC,iBAAS,aAAa,CAAC,OAAO,EAAE,iBAAiB;;;EAEhD;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../actions/registry.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
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 consts_2 = require("../../test/consts");
|
|
6
|
+
const __1 = require("..");
|
|
7
|
+
const registry_1 = require("./registry");
|
|
8
|
+
(0, vitest_1.describe)('Actions', async () => {
|
|
9
|
+
const rhinestoneAccount = await (0, __1.createRhinestoneAccount)({
|
|
10
|
+
owners: {
|
|
11
|
+
type: 'ecdsa',
|
|
12
|
+
accounts: [consts_2.accountA],
|
|
13
|
+
},
|
|
14
|
+
rhinestoneApiKey: consts_1.MOCK_API_KEY,
|
|
15
|
+
});
|
|
16
|
+
(0, vitest_1.describe)('Trust Attester', () => {
|
|
17
|
+
(0, vitest_1.test)('should return the correct call', () => {
|
|
18
|
+
const call = (0, registry_1.trustAttester)(rhinestoneAccount);
|
|
19
|
+
(0, vitest_1.expect)(call).toStrictEqual({
|
|
20
|
+
data: '0xf05c04e1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000333034e9f539ce08819e12c1b8cb29084d0000000000000000000000006d0515e8e499468dce9583626f0ca15b887f9d03',
|
|
21
|
+
to: '0x000000000069e2a187aeffb852bf3ccdc95151b2',
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hex } from 'viem';
|
|
2
|
+
import { SessionDetails } from '../execution/smart-session';
|
|
3
|
+
declare function encodeSmartSessionSignature(sessionDetails: SessionDetails, sessionSignature: Hex): `0x${string}`;
|
|
4
|
+
export { encodeSmartSessionSignature };
|
|
5
|
+
//# sourceMappingURL=smart-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../actions/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,iBAAS,2BAA2B,CAClC,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,GAAG,iBAQtB;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeSmartSessionSignature = encodeSmartSessionSignature;
|
|
4
|
+
const smart_sessions_1 = require("../modules/validators/smart-sessions");
|
|
5
|
+
function encodeSmartSessionSignature(sessionDetails, sessionSignature) {
|
|
6
|
+
return (0, smart_sessions_1.encodeSmartSessionSignature)(sessionDetails.mode, sessionDetails.enableSessionData.permissionId, sessionSignature, sessionDetails.enableSessionData);
|
|
7
|
+
}
|
|
@@ -3,7 +3,7 @@ import type { BundleResult } from '../orchestrator';
|
|
|
3
3
|
import type { RhinestoneAccountConfig, Transaction } from '../types';
|
|
4
4
|
import type { BundleData, TransactionResult } from './utils';
|
|
5
5
|
declare function sendTransaction(config: RhinestoneAccountConfig, transaction: Transaction): Promise<TransactionResult>;
|
|
6
|
-
declare function waitForExecution(config: RhinestoneAccountConfig, result: TransactionResult, acceptsPreconfirmations: boolean): Promise<{
|
|
6
|
+
declare function waitForExecution(config: RhinestoneAccountConfig, result: TransactionResult, acceptsPreconfirmations: boolean): Promise<BundleResult | {
|
|
7
7
|
actualGasCost: bigint;
|
|
8
8
|
actualGasUsed: bigint;
|
|
9
9
|
entryPoint: Address;
|
|
@@ -15,7 +15,7 @@ declare function waitForExecution(config: RhinestoneAccountConfig, result: Trans
|
|
|
15
15
|
sender: Address;
|
|
16
16
|
success: boolean;
|
|
17
17
|
userOpHash: import("viem").Hash;
|
|
18
|
-
}
|
|
18
|
+
}>;
|
|
19
19
|
declare function getMaxSpendableAmount(config: RhinestoneAccountConfig, chain: Chain, tokenAddress: Address, gasUnits: bigint): Promise<bigint>;
|
|
20
20
|
declare function getPortfolio(config: RhinestoneAccountConfig, onTestnets: boolean): Promise<import("../orchestrator").UserTokenBalance[]>;
|
|
21
21
|
export { sendTransaction, waitForExecution, getMaxSpendableAmount, getPortfolio, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAIX,MAAM,MAAM,CAAA;AAKb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AASnD,OAAO,KAAK,EAEV,uBAAuB,EAGvB,WAAW,EACZ,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAe5D,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,WAAW,8BAyBzB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAIX,MAAM,MAAM,CAAA;AAKb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AASnD,OAAO,KAAK,EAEV,uBAAuB,EAGvB,WAAW,EACZ,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAe5D,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,WAAW,8BAyBzB;AA6LD,iBAAe,gBAAgB,CAC7B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,iBAAiB,EACzB,uBAAuB,EAAE,OAAO;;;;;;;;;;;;GAwCjC;AAED,iBAAe,qBAAqB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,iBAAe,YAAY,CACzB,MAAM,EAAE,uBAAuB,EAC/B,UAAU,EAAE,OAAO,yDAMpB;AAED,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,CAAA;AACD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -90,10 +90,13 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
|
|
|
90
90
|
}
|
|
91
91
|
const userOp = await (0, utils_2.getUserOp)(config, targetChain, signers, orderPath, calls, tokenRequests, accountAddress);
|
|
92
92
|
const signature = await (0, utils_2.signUserOp)(config, sourceChain, targetChain, accountAddress, signers, userOp, orderPath);
|
|
93
|
-
return await (0, utils_2.submitUserOp)(config, sourceChain, targetChain, userOp,
|
|
93
|
+
return await (0, utils_2.submitUserOp)(config, sourceChain, targetChain, userOp, signature, orderPath);
|
|
94
94
|
}
|
|
95
95
|
async function sendTransactionAsIntent(config, sourceChain, targetChain, calls, gasLimit, tokenRequests, accountAddress, signers) {
|
|
96
96
|
const { orderPath, hash: orderBundleHash } = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChain, targetChain, calls, gasLimit, tokenRequests, accountAddress);
|
|
97
|
+
if (!orderPath) {
|
|
98
|
+
throw new Error('Order path is required when using intents');
|
|
99
|
+
}
|
|
97
100
|
const signature = await (0, utils_2.signIntent)(config, sourceChain, targetChain, orderBundleHash, signers);
|
|
98
101
|
return await (0, utils_2.submitIntentInternal)(config, sourceChain, targetChain, orderPath, signature, true);
|
|
99
102
|
}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { type Address, type Chain, type Hex } from 'viem';
|
|
2
|
+
import { ChainDigest, EnableSessionData, SmartSessionModeType } from '../modules/validators/smart-sessions';
|
|
2
3
|
import type { OrderPath } from '../orchestrator';
|
|
3
4
|
import type { RhinestoneAccountConfig, Session } from '../types';
|
|
5
|
+
interface SessionDetails {
|
|
6
|
+
permissionEnableHash: Hex;
|
|
7
|
+
mode: SmartSessionModeType;
|
|
8
|
+
hashesAndChainIds: ChainDigest[];
|
|
9
|
+
enableSessionData: EnableSessionData;
|
|
10
|
+
}
|
|
11
|
+
declare function getSessionDetails(config: RhinestoneAccountConfig, sessions: Session[], sessionIndex: number, signature?: Hex): Promise<SessionDetails>;
|
|
12
|
+
declare function getMultichainDigest(chainDigests: ChainDigest[]): Hex;
|
|
4
13
|
declare function enableSmartSession(chain: Chain, config: RhinestoneAccountConfig, session: Session): Promise<void>;
|
|
5
14
|
declare function hashErc7739(sourceChain: Chain, orderPath: OrderPath, accountAddress: Address): Promise<{
|
|
6
15
|
hash: `0x${string}`;
|
|
@@ -9,5 +18,6 @@ declare function hashErc7739(sourceChain: Chain, orderPath: OrderPath, accountAd
|
|
|
9
18
|
structHash: `0x${string}`;
|
|
10
19
|
}>;
|
|
11
20
|
declare function getSessionSignature(signature: Hex, appDomainSeparator: Hex, structHash: Hex, contentsType: string, withSession: Session): `0x${string}`;
|
|
12
|
-
export { enableSmartSession, hashErc7739, getSessionSignature };
|
|
21
|
+
export { enableSmartSession, hashErc7739, getSessionSignature, getSessionDetails, getMultichainDigest, };
|
|
22
|
+
export type { SessionDetails };
|
|
13
23
|
//# sourceMappingURL=smart-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAkBb,OAAO,EACL,WAAW,EAEX,iBAAiB,EAGjB,oBAAoB,EACrB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,EAAe,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAE7E,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,iBAAe,WAAW,CACxB,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,OAAO;;;;;GAiExB;AAED,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,GAAG,EACd,kBAAkB,EAAE,GAAG,EACvB,UAAU,EAAE,GAAG,EACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,iBAkBrB;AAED,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,CAAA;AACD,YAAY,EAAE,cAAc,EAAE,CAAA"}
|