@rhinestone/sdk 1.0.0-alpha.1 → 1.0.0-alpha.10
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/error.d.ts.map +1 -1
- package/dist/src/accounts/error.js +2 -0
- package/dist/src/accounts/index.d.ts +15 -8
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +204 -164
- package/dist/src/accounts/index.test.js +2 -2
- package/dist/src/accounts/kernel.d.ts +7 -9
- package/dist/src/accounts/kernel.d.ts.map +1 -1
- package/dist/src/accounts/kernel.js +0 -9
- package/dist/src/accounts/kernel.test.js +6 -6
- package/dist/src/accounts/nexus.d.ts +14 -13
- package/dist/src/accounts/nexus.d.ts.map +1 -1
- package/dist/src/accounts/nexus.js +91 -88
- package/dist/src/accounts/nexus.test.js +10 -10
- package/dist/src/accounts/safe.d.ts +4 -6
- package/dist/src/accounts/safe.d.ts.map +1 -1
- package/dist/src/accounts/safe.js +20 -30
- package/dist/src/accounts/safe.test.js +6 -6
- package/dist/src/accounts/startale.d.ts +20 -0
- package/dist/src/accounts/startale.d.ts.map +1 -0
- package/dist/src/accounts/startale.js +100 -0
- package/dist/src/accounts/startale.test.d.ts +2 -0
- package/dist/src/accounts/startale.test.d.ts.map +1 -0
- package/dist/src/accounts/startale.test.js +97 -0
- package/dist/src/accounts/utils.d.ts +4 -3
- package/dist/src/accounts/utils.d.ts.map +1 -1
- package/dist/src/accounts/utils.js +44 -0
- package/dist/src/actions/index.d.ts +17 -7
- package/dist/src/actions/index.d.ts.map +1 -1
- package/dist/src/actions/index.js +108 -15
- package/dist/src/actions/index.test.js +35 -17
- package/dist/src/actions/smart-session.d.ts +2 -2
- package/dist/src/actions/smart-session.d.ts.map +1 -1
- package/dist/src/execution/compact.d.ts +6 -3
- package/dist/src/execution/compact.d.ts.map +1 -1
- package/dist/src/execution/compact.js +44 -1
- package/dist/src/execution/error.d.ts +2 -9
- package/dist/src/execution/error.d.ts.map +1 -1
- package/dist/src/execution/error.js +4 -13
- package/dist/src/execution/index.d.ts +2 -3
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +34 -49
- package/dist/src/execution/smart-session.d.ts +1 -1
- package/dist/src/execution/smart-session.d.ts.map +1 -1
- package/dist/src/execution/smart-session.js +12 -17
- package/dist/src/execution/utils.d.ts +13 -11
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +141 -85
- package/dist/src/index.d.ts +14 -14
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +24 -20
- package/dist/src/modules/index.d.ts +3 -7
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +1 -10
- package/dist/src/modules/index.test.js +2 -2
- package/dist/src/modules/omni-account.d.ts +1 -4
- package/dist/src/modules/omni-account.d.ts.map +1 -1
- package/dist/src/modules/omni-account.js +2 -8
- package/dist/src/modules/read.d.ts +5 -6
- package/dist/src/modules/read.d.ts.map +1 -1
- package/dist/src/modules/read.js +6 -37
- package/dist/src/modules/validators/core.d.ts +6 -7
- package/dist/src/modules/validators/core.d.ts.map +1 -1
- package/dist/src/modules/validators/core.js +83 -8
- package/dist/src/modules/validators/core.test.js +4 -4
- package/dist/src/modules/validators/smart-sessions.d.ts +3 -3
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +7 -6
- package/dist/src/modules/validators/smart-sessions.test.js +4 -4
- package/dist/src/orchestrator/client.d.ts +1 -0
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +136 -94
- package/dist/src/orchestrator/consts.d.ts +3 -3
- package/dist/src/orchestrator/consts.d.ts.map +1 -1
- package/dist/src/orchestrator/consts.js +4 -4
- package/dist/src/orchestrator/index.d.ts +2 -2
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +1 -7
- package/dist/src/orchestrator/registry.d.ts +31 -12
- package/dist/src/orchestrator/registry.d.ts.map +1 -1
- package/dist/src/orchestrator/registry.js +57 -380
- package/dist/src/orchestrator/registry.json +365 -0
- package/dist/src/orchestrator/registry.test.d.ts.map +1 -0
- package/dist/src/orchestrator/registry.test.js +137 -0
- package/dist/src/orchestrator/types.d.ts +69 -14
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/orchestrator/utils.d.ts.map +1 -1
- package/dist/src/orchestrator/utils.js +2 -2
- package/dist/src/types.d.ts +41 -21
- package/dist/src/types.d.ts.map +1 -1
- package/dist/test/consts.d.ts +2 -2
- package/dist/test/consts.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/src/actions/registry.d.ts +0 -7
- package/dist/src/actions/registry.d.ts.map +0 -1
- package/dist/src/actions/registry.js +0 -7
- package/dist/src/actions/registry.test.d.ts.map +0 -1
- package/dist/src/actions/registry.test.js +0 -25
- package/dist/src/modules/registry.d.ts +0 -13
- package/dist/src/modules/registry.d.ts.map +0 -1
- package/dist/src/modules/registry.js +0 -67
- /package/dist/src/{actions → orchestrator}/registry.test.d.ts +0 -0
|
@@ -1,26 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.
|
|
3
|
+
exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.SourceChainsNotAvailableForUserOpFlowError = exports.ExecutionError = exports.IntentFailedError = exports.isExecutionError = void 0;
|
|
4
4
|
exports.sendTransaction = sendTransaction;
|
|
5
5
|
exports.waitForExecution = waitForExecution;
|
|
6
6
|
exports.getMaxSpendableAmount = getMaxSpendableAmount;
|
|
7
7
|
exports.getPortfolio = getPortfolio;
|
|
8
|
-
exports.depositEther = depositEther;
|
|
9
8
|
const viem_1 = require("viem");
|
|
10
9
|
const chains_1 = require("viem/chains");
|
|
11
10
|
const accounts_1 = require("../accounts");
|
|
12
11
|
const utils_1 = require("../accounts/utils");
|
|
13
12
|
const orchestrator_1 = require("../orchestrator");
|
|
14
13
|
const registry_1 = require("../orchestrator/registry");
|
|
15
|
-
const compact_1 = require("./compact");
|
|
16
14
|
const error_1 = require("./error");
|
|
17
15
|
Object.defineProperty(exports, "ExecutionError", { enumerable: true, get: function () { return error_1.ExecutionError; } });
|
|
18
16
|
Object.defineProperty(exports, "IntentFailedError", { enumerable: true, get: function () { return error_1.IntentFailedError; } });
|
|
19
17
|
Object.defineProperty(exports, "isExecutionError", { enumerable: true, get: function () { return error_1.isExecutionError; } });
|
|
20
18
|
Object.defineProperty(exports, "OrderPathRequiredForIntentsError", { enumerable: true, get: function () { return error_1.OrderPathRequiredForIntentsError; } });
|
|
21
19
|
Object.defineProperty(exports, "SessionChainRequiredError", { enumerable: true, get: function () { return error_1.SessionChainRequiredError; } });
|
|
22
|
-
Object.defineProperty(exports, "
|
|
23
|
-
Object.defineProperty(exports, "SourceTargetChainMismatchError", { enumerable: true, get: function () { return error_1.SourceTargetChainMismatchError; } });
|
|
20
|
+
Object.defineProperty(exports, "SourceChainsNotAvailableForUserOpFlowError", { enumerable: true, get: function () { return error_1.SourceChainsNotAvailableForUserOpFlowError; } });
|
|
24
21
|
Object.defineProperty(exports, "UserOperationRequiredForSmartSessionsError", { enumerable: true, get: function () { return error_1.UserOperationRequiredForSmartSessionsError; } });
|
|
25
22
|
const smart_session_1 = require("./smart-session");
|
|
26
23
|
const utils_2 = require("./utils");
|
|
@@ -28,23 +25,17 @@ const POLLING_INTERVAL = 500;
|
|
|
28
25
|
async function sendTransaction(config, transaction) {
|
|
29
26
|
if ('chain' in transaction) {
|
|
30
27
|
// Same-chain transaction
|
|
31
|
-
return await sendTransactionInternal(config, transaction.chain, transaction.chain, transaction.calls, transaction.gasLimit, transaction.tokenRequests, transaction.signers);
|
|
28
|
+
return await sendTransactionInternal(config, [transaction.chain], transaction.chain, transaction.calls, transaction.gasLimit, transaction.tokenRequests, transaction.signers);
|
|
32
29
|
}
|
|
33
30
|
else {
|
|
34
31
|
// Cross-chain transaction
|
|
35
|
-
return await sendTransactionInternal(config, transaction.
|
|
32
|
+
return await sendTransactionInternal(config, transaction.sourceChains || [], transaction.targetChain, transaction.calls, transaction.gasLimit, transaction.tokenRequests, transaction.signers);
|
|
36
33
|
}
|
|
37
34
|
}
|
|
38
|
-
async function sendTransactionInternal(config,
|
|
39
|
-
if (sourceChain) {
|
|
40
|
-
const isAccountDeployed = await (0, accounts_1.isDeployed)(sourceChain, config);
|
|
41
|
-
if (!isAccountDeployed) {
|
|
42
|
-
await (0, accounts_1.deploySource)(sourceChain, config);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
35
|
+
async function sendTransactionInternal(config, sourceChains, targetChain, callInputs, gasLimit, initialTokenRequests, signers) {
|
|
45
36
|
const accountAddress = (0, accounts_1.getAddress)(config);
|
|
46
37
|
// Across requires passing some value to repay the solvers
|
|
47
|
-
const tokenRequests = initialTokenRequests.length === 0
|
|
38
|
+
const tokenRequests = !initialTokenRequests || initialTokenRequests.length === 0
|
|
48
39
|
? [
|
|
49
40
|
{
|
|
50
41
|
address: viem_1.zeroAddress,
|
|
@@ -54,34 +45,34 @@ async function sendTransactionInternal(config, sourceChain, targetChain, calls,
|
|
|
54
45
|
: initialTokenRequests;
|
|
55
46
|
const asUserOp = signers?.type === 'guardians' || signers?.type === 'session';
|
|
56
47
|
if (asUserOp) {
|
|
57
|
-
if (!sourceChain) {
|
|
58
|
-
throw new error_1.SourceChainRequiredForSmartSessionsError();
|
|
59
|
-
}
|
|
60
48
|
const withSession = signers?.type === 'session' ? signers.session : null;
|
|
61
49
|
if (withSession) {
|
|
62
|
-
await (0, smart_session_1.enableSmartSession)(
|
|
50
|
+
await (0, smart_session_1.enableSmartSession)(targetChain, config, withSession);
|
|
63
51
|
}
|
|
64
52
|
// Smart sessions require a UserOp flow
|
|
65
|
-
return await sendTransactionAsUserOp(config,
|
|
53
|
+
return await sendTransactionAsUserOp(config, targetChain, callInputs, signers);
|
|
66
54
|
}
|
|
67
55
|
else {
|
|
68
|
-
return await sendTransactionAsIntent(config,
|
|
56
|
+
return await sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, accountAddress, signers);
|
|
69
57
|
}
|
|
70
58
|
}
|
|
71
|
-
async function sendTransactionAsUserOp(config,
|
|
59
|
+
async function sendTransactionAsUserOp(config, chain, callInputs, signers) {
|
|
60
|
+
// Make sure the account is deployed
|
|
61
|
+
await (0, accounts_1.deploy)(config, chain);
|
|
72
62
|
const withSession = signers?.type === 'session' ? signers.session : null;
|
|
73
63
|
const publicClient = (0, viem_1.createPublicClient)({
|
|
74
|
-
chain
|
|
75
|
-
transport: (0,
|
|
64
|
+
chain,
|
|
65
|
+
transport: (0, utils_1.createTransport)(chain, config.provider),
|
|
76
66
|
});
|
|
77
|
-
const validatorAccount = await (0, utils_2.getValidatorAccount)(config, signers, publicClient,
|
|
67
|
+
const validatorAccount = await (0, utils_2.getValidatorAccount)(config, signers, publicClient, chain);
|
|
78
68
|
if (!validatorAccount) {
|
|
79
69
|
throw new Error('No validator account found');
|
|
80
70
|
}
|
|
81
71
|
const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
|
|
82
72
|
if (withSession) {
|
|
83
|
-
await (0, smart_session_1.enableSmartSession)(
|
|
73
|
+
await (0, smart_session_1.enableSmartSession)(chain, config, withSession);
|
|
84
74
|
}
|
|
75
|
+
const calls = (0, utils_2.parseCalls)(callInputs, chain.id);
|
|
85
76
|
const hash = await bundlerClient.sendUserOperation({
|
|
86
77
|
account: validatorAccount,
|
|
87
78
|
calls,
|
|
@@ -89,17 +80,23 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
|
|
|
89
80
|
return {
|
|
90
81
|
type: 'userop',
|
|
91
82
|
hash,
|
|
92
|
-
|
|
93
|
-
targetChain: targetChain.id,
|
|
83
|
+
chain: chain.id,
|
|
94
84
|
};
|
|
95
85
|
}
|
|
96
|
-
async function sendTransactionAsIntent(config,
|
|
97
|
-
const { intentRoute, hash: intentHash } = await (0, utils_2.prepareTransactionAsIntent)(config,
|
|
86
|
+
async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, accountAddress, signers) {
|
|
87
|
+
const { intentRoute, hash: intentHash } = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, accountAddress);
|
|
98
88
|
if (!intentRoute) {
|
|
99
89
|
throw new error_1.OrderPathRequiredForIntentsError();
|
|
100
90
|
}
|
|
101
|
-
const signature = await (0, utils_2.signIntent)(config,
|
|
102
|
-
|
|
91
|
+
const signature = await (0, utils_2.signIntent)(config, targetChain, intentHash, signers);
|
|
92
|
+
const authorizations = config.eoa
|
|
93
|
+
? await (0, utils_2.signAuthorizationsInternal)(config, {
|
|
94
|
+
type: 'intent',
|
|
95
|
+
intentRoute,
|
|
96
|
+
hash: intentHash,
|
|
97
|
+
})
|
|
98
|
+
: [];
|
|
99
|
+
return await (0, utils_2.submitIntentInternal)(config, sourceChains, targetChain, intentRoute.intentOp, signature, authorizations);
|
|
103
100
|
}
|
|
104
101
|
async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
105
102
|
const validStatuses = new Set([
|
|
@@ -124,10 +121,13 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
|
124
121
|
return intentStatus;
|
|
125
122
|
}
|
|
126
123
|
case 'userop': {
|
|
127
|
-
const targetChain = (0, registry_1.getChainById)(result.
|
|
124
|
+
const targetChain = (0, registry_1.getChainById)(result.chain);
|
|
125
|
+
if (!targetChain) {
|
|
126
|
+
throw new Error(`Unsupported chain ID: ${result.chain}`);
|
|
127
|
+
}
|
|
128
128
|
const publicClient = (0, viem_1.createPublicClient)({
|
|
129
129
|
chain: targetChain,
|
|
130
|
-
transport: (0,
|
|
130
|
+
transport: (0, utils_1.createTransport)(targetChain, config.provider),
|
|
131
131
|
});
|
|
132
132
|
const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
|
|
133
133
|
const receipt = await bundlerClient.waitForUserOperationReceipt({
|
|
@@ -148,18 +148,3 @@ async function getPortfolio(config, onTestnets) {
|
|
|
148
148
|
const orchestrator = (0, utils_2.getOrchestratorByChain)(chainId, config.rhinestoneApiKey);
|
|
149
149
|
return orchestrator.getPortfolio(address);
|
|
150
150
|
}
|
|
151
|
-
async function depositEther(config, chain, value) {
|
|
152
|
-
const address = (0, accounts_1.getAddress)(config);
|
|
153
|
-
const owners = config.owners;
|
|
154
|
-
return await sendTransactionAsUserOp(config, chain, chain, [(0, compact_1.getDepositEtherCall)(address, value)], owners.type === 'ecdsa'
|
|
155
|
-
? {
|
|
156
|
-
type: 'owner',
|
|
157
|
-
kind: 'ecdsa',
|
|
158
|
-
accounts: owners.accounts,
|
|
159
|
-
}
|
|
160
|
-
: {
|
|
161
|
-
type: 'owner',
|
|
162
|
-
kind: 'passkey',
|
|
163
|
-
account: owners.account,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Chain, type Hex } from 'viem';
|
|
2
|
-
import { ChainDigest, EnableSessionData, SmartSessionModeType } from '../modules/validators/smart-sessions';
|
|
2
|
+
import { type ChainDigest, type EnableSessionData, type SmartSessionModeType } from '../modules/validators/smart-sessions';
|
|
3
3
|
import type { RhinestoneAccountConfig, Session } from '../types';
|
|
4
4
|
interface SessionDetails {
|
|
5
5
|
permissionEnableHash: Hex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAIV,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAIV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAmBb,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAGtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAGV,uBAAuB,EACvB,OAAO,EACR,MAAM,UAAU,CAAA;AAGjB,UAAU,cAAc;IACtB,oBAAoB,EAAE,GAAG,CAAA;IACzB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,iBAAiB,EAAE,WAAW,EAAE,CAAA;IAChC,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,CAAC,CA4BzB;AAgGD,iBAAS,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAgC7D;AAiLD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,iBA+BjB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACrE,YAAY,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -6,14 +6,13 @@ exports.getMultichainDigest = getMultichainDigest;
|
|
|
6
6
|
const viem_1 = require("viem");
|
|
7
7
|
const accounts_1 = require("../accounts");
|
|
8
8
|
const utils_1 = require("../accounts/utils");
|
|
9
|
-
const modules_1 = require("../modules");
|
|
10
9
|
const validators_1 = require("../modules/validators");
|
|
11
10
|
const smart_sessions_1 = require("../modules/validators/smart-sessions");
|
|
12
11
|
const error_1 = require("./error");
|
|
13
12
|
async function getSessionDetails(config, sessions, sessionIndex, signature) {
|
|
14
13
|
const account = (0, accounts_1.getAccountProvider)(config);
|
|
15
14
|
const accountAddress = (0, accounts_1.getAddress)(config);
|
|
16
|
-
const sessionDetails = await getEnableSessionDetails(account.type, sessions, sessionIndex, accountAddress);
|
|
15
|
+
const sessionDetails = await getEnableSessionDetails(account.type, sessions, sessionIndex, accountAddress, config.provider);
|
|
17
16
|
const chain = sessions[sessionIndex].chain;
|
|
18
17
|
if (!chain) {
|
|
19
18
|
throw new error_1.SessionChainRequiredError();
|
|
@@ -24,24 +23,24 @@ async function getSessionDetails(config, sessions, sessionIndex, signature) {
|
|
|
24
23
|
};
|
|
25
24
|
sessionDetails.enableSessionData.signature =
|
|
26
25
|
signature ??
|
|
27
|
-
(await (0, accounts_1.getPackedSignature)(config,
|
|
26
|
+
(await (0, accounts_1.getPackedSignature)(config, undefined, chain, validator, sessionDetails.permissionEnableHash));
|
|
28
27
|
return sessionDetails;
|
|
29
28
|
}
|
|
30
|
-
async function getEnableSessionDetails(accountType, sessions, sessionIndex, accountAddress) {
|
|
29
|
+
async function getEnableSessionDetails(accountType, sessions, sessionIndex, accountAddress, provider) {
|
|
31
30
|
const chainDigests = [];
|
|
32
31
|
const chainSessions = [];
|
|
33
32
|
for (const session of sessions) {
|
|
34
33
|
const permissionId = (0, validators_1.getPermissionId)(session);
|
|
35
|
-
const publicClient = (0, viem_1.createPublicClient)({
|
|
36
|
-
chain: session.chain,
|
|
37
|
-
transport: (0, viem_1.http)(),
|
|
38
|
-
});
|
|
39
34
|
const sessionChain = session.chain;
|
|
40
35
|
if (!sessionChain) {
|
|
41
36
|
throw new error_1.SessionChainRequiredError();
|
|
42
37
|
}
|
|
38
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
39
|
+
chain: sessionChain,
|
|
40
|
+
transport: (0, utils_1.createTransport)(sessionChain, provider),
|
|
41
|
+
});
|
|
43
42
|
const sessionNonce = await getSessionNonce(publicClient, accountAddress, permissionId);
|
|
44
|
-
const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, session);
|
|
43
|
+
const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, session, provider);
|
|
45
44
|
const sessionDigest = await getSessionDigest(publicClient, accountAddress, sessionData, permissionId, validators_1.SMART_SESSION_MODE_ENABLE);
|
|
46
45
|
chainDigests.push({
|
|
47
46
|
chainId: BigInt(sessionChain.id),
|
|
@@ -74,7 +73,7 @@ async function getEnableSessionDetails(accountType, sessions, sessionIndex, acco
|
|
|
74
73
|
if (!sessionChain) {
|
|
75
74
|
throw new error_1.SessionChainRequiredError();
|
|
76
75
|
}
|
|
77
|
-
const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, sessionToEnable);
|
|
76
|
+
const sessionData = await (0, smart_sessions_1.getSessionData)(sessionChain, sessionToEnable, provider);
|
|
78
77
|
return {
|
|
79
78
|
permissionEnableHash,
|
|
80
79
|
mode: validators_1.SMART_SESSION_MODE_ENABLE,
|
|
@@ -274,23 +273,19 @@ async function getSessionDigest(client, account, session, permissionId, mode) {
|
|
|
274
273
|
async function enableSmartSession(chain, config, session) {
|
|
275
274
|
const publicClient = (0, viem_1.createPublicClient)({
|
|
276
275
|
chain,
|
|
277
|
-
transport: (0,
|
|
276
|
+
transport: (0, utils_1.createTransport)(chain, config.provider),
|
|
278
277
|
});
|
|
279
278
|
const address = (0, accounts_1.getAddress)(config);
|
|
280
279
|
const isEnabled = await (0, validators_1.isSessionEnabled)(publicClient, address, (0, validators_1.getPermissionId)(session));
|
|
281
280
|
if (isEnabled) {
|
|
282
281
|
return;
|
|
283
282
|
}
|
|
284
|
-
const enableSessionCall = await (0, validators_1.getEnableSessionCall)(chain, session);
|
|
285
|
-
const trustedAttesters = await (0, modules_1.getTrustedAttesters)(publicClient, address);
|
|
286
|
-
const trustAttesterCall = trustedAttesters.length === 0 ? (0, modules_1.getTrustAttesterCall)(config) : undefined;
|
|
283
|
+
const enableSessionCall = await (0, validators_1.getEnableSessionCall)(chain, session, config.provider);
|
|
287
284
|
const smartAccount = await (0, accounts_1.getSmartAccount)(config, publicClient, chain);
|
|
288
285
|
const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
|
|
289
286
|
const opHash = await bundlerClient.sendUserOperation({
|
|
290
287
|
account: smartAccount,
|
|
291
|
-
calls:
|
|
292
|
-
? [trustAttesterCall, enableSessionCall]
|
|
293
|
-
: [enableSessionCall],
|
|
288
|
+
calls: [enableSessionCall],
|
|
294
289
|
});
|
|
295
290
|
await bundlerClient.waitForUserOperationReceipt({
|
|
296
291
|
hash: opHash,
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { Address, Chain, Hex, PublicClient } from 'viem';
|
|
2
|
-
import { UserOperation } from 'viem/account-abstraction';
|
|
3
|
-
import { IntentOp, IntentRoute } from '../orchestrator';
|
|
4
|
-
import { Call, RhinestoneAccountConfig, SignerSet, TokenRequest, Transaction } from '../types';
|
|
1
|
+
import { type Address, type Chain, type Hex, type PublicClient, type SignedAuthorization, type SignedAuthorizationList } from 'viem';
|
|
2
|
+
import { type UserOperation } from 'viem/account-abstraction';
|
|
3
|
+
import { type IntentOp, type IntentRoute } from '../orchestrator';
|
|
4
|
+
import type { Call, CallInput, RhinestoneAccountConfig, SignerSet, TokenRequest, Transaction } from '../types';
|
|
5
5
|
type TransactionResult = {
|
|
6
6
|
type: 'userop';
|
|
7
7
|
hash: Hex;
|
|
8
|
-
|
|
9
|
-
targetChain: number;
|
|
8
|
+
chain: number;
|
|
10
9
|
} | {
|
|
11
10
|
type: 'intent';
|
|
12
11
|
id: bigint;
|
|
@@ -32,12 +31,15 @@ interface SignedTransactionData extends PreparedTransactionData {
|
|
|
32
31
|
}
|
|
33
32
|
declare function prepareTransaction(config: RhinestoneAccountConfig, transaction: Transaction): Promise<PreparedTransactionData>;
|
|
34
33
|
declare function signTransaction(config: RhinestoneAccountConfig, preparedTransaction: PreparedTransactionData): Promise<SignedTransactionData>;
|
|
35
|
-
declare function
|
|
36
|
-
declare function
|
|
37
|
-
declare function
|
|
34
|
+
declare function signAuthorizations(config: RhinestoneAccountConfig, preparedTransaction: PreparedTransactionData): Promise<SignedAuthorization[]>;
|
|
35
|
+
declare function signAuthorizationsInternal(config: RhinestoneAccountConfig, data: IntentData | UserOpData): Promise<SignedAuthorization[]>;
|
|
36
|
+
declare function submitTransaction(config: RhinestoneAccountConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList): Promise<TransactionResult>;
|
|
37
|
+
declare function prepareTransactionAsIntent(config: RhinestoneAccountConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CallInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], accountAddress: Address, eip7702InitSignature?: Hex): Promise<IntentData>;
|
|
38
|
+
declare function signIntent(config: RhinestoneAccountConfig, targetChain: Chain, intentHash: Hex, signers?: SignerSet): Promise<`0x${string}`>;
|
|
38
39
|
declare function getOrchestratorByChain(chainId: number, apiKey: string): import("../orchestrator").Orchestrator;
|
|
39
|
-
declare function submitIntentInternal(config: RhinestoneAccountConfig,
|
|
40
|
+
declare function submitIntentInternal(config: RhinestoneAccountConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, signature: Hex, authorizations: SignedAuthorizationList): Promise<TransactionResult>;
|
|
40
41
|
declare function getValidatorAccount(config: RhinestoneAccountConfig, signers: SignerSet | undefined, publicClient: PublicClient, chain: Chain): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | null | undefined>;
|
|
41
|
-
|
|
42
|
+
declare function parseCalls(calls: CallInput[], chainId: number): Call[];
|
|
43
|
+
export { prepareTransaction, signTransaction, signAuthorizations, signAuthorizationsInternal, submitTransaction, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, };
|
|
42
44
|
export type { IntentData, TransactionResult, PreparedTransactionData, SignedTransactionData, };
|
|
43
45
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
|