@rhinestone/sdk 2.0.0-beta.1 → 2.0.0-beta.2
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/README.md +42 -1
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +6 -34
- package/dist/src/actions/smart-sessions.d.ts.map +1 -1
- package/dist/src/actions/smart-sessions.js +3 -3
- package/dist/src/execution/index.d.ts +3 -4
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +3 -27
- package/dist/src/execution/utils.d.ts +1 -1
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +7 -5
- package/dist/src/index.d.ts +16 -12
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -39
- package/dist/src/modules/index.d.ts +2 -2
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +2 -2
- package/dist/src/modules/read.d.ts.map +1 -1
- package/dist/src/modules/read.js +2 -4
- package/dist/src/modules/validators/index.d.ts +2 -2
- package/dist/src/modules/validators/index.d.ts.map +1 -1
- package/dist/src/modules/validators/index.js +2 -2
- package/dist/src/modules/validators/permissions.d.ts +5 -0
- package/dist/src/modules/validators/permissions.d.ts.map +1 -0
- package/dist/src/modules/validators/permissions.js +111 -0
- package/dist/src/modules/validators/policies/claim/permit2.d.ts +29 -3
- package/dist/src/modules/validators/policies/claim/permit2.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.d.ts +14 -27
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +71 -17
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- 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 +2 -2
- package/dist/src/orchestrator/registry.d.ts +1 -8
- package/dist/src/orchestrator/registry.d.ts.map +1 -1
- package/dist/src/orchestrator/registry.js +1 -26
- package/dist/src/types.d.ts +99 -28
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +2 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +2 -1
- package/dist/src/utils/walletClient.d.ts.map +1 -0
- package/dist/src/{accounts → utils}/walletClient.js +1 -1
- package/package.json +1 -5
- package/dist/src/accounts/passport.d.ts +0 -9
- package/dist/src/accounts/passport.d.ts.map +0 -1
- package/dist/src/accounts/passport.js +0 -78
- package/dist/src/accounts/walletClient.d.ts.map +0 -1
- package/dist/src/actions/compact.d.ts +0 -15
- package/dist/src/actions/compact.d.ts.map +0 -1
- package/dist/src/actions/compact.js +0 -200
- package/dist/src/actions/deployment.d.ts +0 -19
- package/dist/src/actions/deployment.d.ts.map +0 -1
- package/dist/src/actions/deployment.js +0 -76
- package/dist/src/execution/permit2.d.ts +0 -7
- package/dist/src/execution/permit2.d.ts.map +0 -1
- package/dist/src/execution/permit2.js +0 -51
- /package/dist/src/{accounts → utils}/walletClient.d.ts +0 -0
package/README.md
CHANGED
|
@@ -138,7 +138,7 @@ const account = await rhinestone.createAccount({
|
|
|
138
138
|
Send a crosschain transaction:
|
|
139
139
|
|
|
140
140
|
```ts
|
|
141
|
-
const
|
|
141
|
+
const prepared = await account.prepareTransaction({
|
|
142
142
|
sourceChains: [baseSepolia],
|
|
143
143
|
targetChain: arbitrumSepolia,
|
|
144
144
|
calls: [
|
|
@@ -155,9 +155,50 @@ const transaction = await account.sendTransaction({
|
|
|
155
155
|
tokenRequests: [{ address: 'USDC', amount }],
|
|
156
156
|
})
|
|
157
157
|
|
|
158
|
+
const signed = await account.signTransaction(prepared)
|
|
159
|
+
const transaction = await account.submitTransaction(signed)
|
|
158
160
|
const result = await account.waitForExecution(transaction)
|
|
159
161
|
```
|
|
160
162
|
|
|
163
|
+
Create a smart session from ABI-driven permissions:
|
|
164
|
+
|
|
165
|
+
```ts
|
|
166
|
+
import { toSession } from '@rhinestone/sdk/smart-sessions'
|
|
167
|
+
|
|
168
|
+
const session = toSession({
|
|
169
|
+
chain: base,
|
|
170
|
+
owners: {
|
|
171
|
+
type: 'ecdsa',
|
|
172
|
+
accounts: [sessionSigner],
|
|
173
|
+
},
|
|
174
|
+
permissions: [
|
|
175
|
+
{
|
|
176
|
+
abi: erc20Abi,
|
|
177
|
+
address: usdc,
|
|
178
|
+
functions: {
|
|
179
|
+
transfer: {
|
|
180
|
+
params: {
|
|
181
|
+
recipient: { condition: 'equal', value: recipient },
|
|
182
|
+
amount: { condition: 'lessThanOrEqual', value: 1000n },
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
claimPolicies: [
|
|
189
|
+
{
|
|
190
|
+
type: 'permit2',
|
|
191
|
+
spenders: [permit2Spender],
|
|
192
|
+
sourceTokens: [{ chain: base, address: usdc }],
|
|
193
|
+
destinationTokens: [{ chain: optimism, address: usdc }],
|
|
194
|
+
recipients: [{ chain: optimism, address: recipient }],
|
|
195
|
+
permitDeadline: { max: permitDeadline },
|
|
196
|
+
fillDeadline: [{ chain: optimism, max: fillDeadline }],
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
})
|
|
200
|
+
```
|
|
201
|
+
|
|
161
202
|
For a complete walkthrough, see the [Quickstart guide](https://docs.rhinestone.dev/smart-wallet/quickstart).
|
|
162
203
|
|
|
163
204
|
## Migrating from Orchestrator SDK
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAKV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAER,KAAK,YAAY,EAEjB,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAKV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAER,KAAK,YAAY,EAEjB,KAAK,SAAS,EAEf,MAAM,MAAM,CAAA;AASb,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AACpF,OAAO,KAAK,EACV,qBAAqB,EACrB,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACV,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,qCAAqC,EACrC,YAAY,EACZ,6BAA6B,EAC7B,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,wCAAwC,EACxC,4BAA4B,EAC5B,cAAc,EACd,mCAAmC,EACnC,wBAAwB,EACxB,kCAAkC,EAClC,4BAA4B,EAC5B,mCAAmC,EACpC,MAAM,SAAS,CAAA;AA6ChB,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,SAAS,CAAA;AAEhB,KAAK,iBAAiB,GAAG,SAAS,GAAG,wBAAwB,CAAA;AAmC7D,iBAAS,WAAW,CAAC,MAAM,EAAE,gBAAgB;;;;;cAkB5C;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,gBAAgB;;;;;cAkB9C;AAED,iBAAe,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,0BAsB1D;AAED,iBAAS,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG;;;EAenE;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK;;;;;;EA0B9D;AAED,iBAAS,0BAA0B,CACjC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,IAAI,EAAE,CA8BR;AAED,iBAAS,4BAA4B,CACnC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,IAAI,EAAE,CA6BR;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,gBAAgB,iBA8B3C;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,gBAAgB,WAS7C;AAGD,iBAAe,mBAAmB,CAChC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,GAAG,EACT,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,GACrE,OAAO,CAAC,GAAG,CAAC,CAuCd;AAGD,iBAAe,oBAAoB,CACjC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,GAAG,EACT,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,GACrE,OAAO,CAAC,GAAG,CAAC,CAWd;AAGD,iBAAe,2BAA2B,CACxC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,EAEtE,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,EAC3D,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,GACrE,OAAO,CAAC,GAAG,CAAC,CA6Cd;AAED,iBAAe,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,oBAmB/D;AAED,iBAAe,MAAM,CACnB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,oBAAoB,CAAC,EAAE,GAAG,CAAA;CAC3B,GACA,OAAO,CAAC,OAAO,CAAC,CAoClB;AAKD,iBAAe,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAiE7E;AA8DD,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,GAAG,EACd,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,GAAG,CAAC,CA4Bd;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,gLA0Db;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,gLAyDpB;AAED,iBAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAGjD;AAED,iBAAS,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,CAO3E;AAED,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAE3B,cAAc,EACd,YAAY,EACZ,qCAAqC,EACrC,6BAA6B,EAC7B,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,wCAAwC,EACxC,4BAA4B,EAC5B,mCAAmC,EACnC,wBAAwB,EACxB,kCAAkC,EAClC,4BAA4B,EAC5B,mCAAmC,GACpC,CAAA"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { concat, createPublicClient, encodeAbiParameters, encodeFunctionData, hashTypedData, size, zeroAddress,
|
|
2
|
-
import {
|
|
1
|
+
import { concat, createPublicClient, encodeAbiParameters, encodeFunctionData, hashTypedData, size, zeroAddress, } from 'viem';
|
|
2
|
+
import { sendTransactionInternal, sendUserOperationInternal, waitForExecution, } from '../execution/index.js';
|
|
3
3
|
import { getIntentExecutor, getSetup } from '../modules/index.js';
|
|
4
4
|
import { getOwnerValidator } from '../modules/validators/index.js';
|
|
5
5
|
import { getSocialRecoveryValidator } from '../modules/validators/core.js';
|
|
6
6
|
import { AccountConfigurationNotSupportedError, AccountError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, isAccountError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, SmartSessionsNotEnabledError, WalletClientNoConnectedAccountError, } from './error.js';
|
|
7
7
|
import { getAddress as getKernelAddress, getDeployArgs as getKernelDeployArgs, getEip712Domain as getKernelEip712Domain, getGuardianSmartAccount as getKernelGuardianSmartAccount, getInstallData as getKernelInstallData, getSmartAccount as getKernelSmartAccount, packSignature as packKernelSignature, wrapMessageHash as wrapKernelMessageHash, } from './kernel.js';
|
|
8
8
|
import { getAddress as getNexusAddress, getDefaultValidatorAddress as getNexusDefaultValidatorAddress, getDeployArgs as getNexusDeployArgs, getEip712Domain as getNexusEip712Domain, getEip7702InitCall as getNexusEip7702InitCall, getGuardianSmartAccount as getNexusGuardianSmartAccount, getInstallData as getNexusInstallData, getSmartAccount as getNexusSmartAccount, packSignature as packNexusSignature, signEip7702InitData as signNexusEip7702InitData, } from './nexus.js';
|
|
9
|
-
import { getAddress as getPassportAddress, getInstallData as getPassportInstallData, packSignature as packPassportSignature, } from './passport.js';
|
|
10
9
|
import { getAddress as getSafeAddress, getDeployArgs as getSafeDeployArgs, getEip712Domain as getSafeEip712Domain, getGuardianSmartAccount as getSafeGuardianSmartAccount, getInstallData as getSafeInstallData, getSmartAccount as getSafeSmartAccount, getV0DeployArgs as getSafeV0DeployArgs, packSignature as packSafeSignature, } from './safe.js';
|
|
11
10
|
import { convertOwnerSetToSignerSet } from './signing/common.js';
|
|
12
11
|
import { sign as signMessage } from './signing/message.js';
|
|
@@ -28,17 +27,6 @@ function getDeployArgs(config) {
|
|
|
28
27
|
case 'startale': {
|
|
29
28
|
return getStartaleDeployArgs(config);
|
|
30
29
|
}
|
|
31
|
-
case 'passport': {
|
|
32
|
-
// Mocked data; will be overridden by the actual deploy args
|
|
33
|
-
return {
|
|
34
|
-
factory: zeroAddress,
|
|
35
|
-
factoryData: zeroHash,
|
|
36
|
-
salt: zeroHash,
|
|
37
|
-
implementation: zeroAddress,
|
|
38
|
-
initializationCallData: '0x',
|
|
39
|
-
initData: '0x',
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
30
|
case 'eoa': {
|
|
43
31
|
throw new Error('EOA accounts do not have deploy args');
|
|
44
32
|
}
|
|
@@ -178,9 +166,6 @@ function getModuleInstallationCalls(config, module) {
|
|
|
178
166
|
case 'startale': {
|
|
179
167
|
return [getStartaleInstallData(module)];
|
|
180
168
|
}
|
|
181
|
-
case 'passport': {
|
|
182
|
-
return [getPassportInstallData(module)];
|
|
183
|
-
}
|
|
184
169
|
case 'eoa': {
|
|
185
170
|
throw new ModuleInstallationNotSupportedError(account.type);
|
|
186
171
|
}
|
|
@@ -244,9 +229,6 @@ function getAddress(config) {
|
|
|
244
229
|
case 'startale': {
|
|
245
230
|
return getStartaleAddress(config);
|
|
246
231
|
}
|
|
247
|
-
case 'passport': {
|
|
248
|
-
return getPassportAddress(config);
|
|
249
|
-
}
|
|
250
232
|
case 'eoa': {
|
|
251
233
|
if (!config.eoa) {
|
|
252
234
|
throw new AccountError({
|
|
@@ -286,10 +268,6 @@ async function getEip1271Signature(config, signers, chain, validator, hash, tran
|
|
|
286
268
|
const defaultValidatorAddress = getNexusDefaultValidatorAddress(account.version);
|
|
287
269
|
return packNexusSignature(signature, validator, transformSignature, defaultValidatorAddress);
|
|
288
270
|
}
|
|
289
|
-
case 'passport': {
|
|
290
|
-
const signature = await signFn(hash);
|
|
291
|
-
return packPassportSignature(signature, validator, transformSignature);
|
|
292
|
-
}
|
|
293
271
|
case 'kernel': {
|
|
294
272
|
const signature = await signFn(wrapKernelMessageHash(hash, address));
|
|
295
273
|
return packKernelSignature(signature, validator, transformSignature);
|
|
@@ -333,10 +311,6 @@ async function getTypedDataPackedSignature(config, signers, chain, validator, pa
|
|
|
333
311
|
const defaultValidatorAddress = getNexusDefaultValidatorAddress(account.version);
|
|
334
312
|
return packNexusSignature(signature, validator, transformSignature, defaultValidatorAddress);
|
|
335
313
|
}
|
|
336
|
-
case 'passport': {
|
|
337
|
-
const signature = await signFn(parameters);
|
|
338
|
-
return packPassportSignature(signature, validator, transformSignature);
|
|
339
|
-
}
|
|
340
314
|
case 'kernel': {
|
|
341
315
|
const address = getAddress(config);
|
|
342
316
|
const signMessageFn = (hash) => signMessage(signers, chain, address, hash, false);
|
|
@@ -461,7 +435,7 @@ async function setup(config, chain) {
|
|
|
461
435
|
else {
|
|
462
436
|
result = await sendUserOperationInternal(config, chain, calls);
|
|
463
437
|
}
|
|
464
|
-
await waitForExecution(config, result
|
|
438
|
+
await waitForExecution(config, result);
|
|
465
439
|
return true;
|
|
466
440
|
}
|
|
467
441
|
async function deployWithIntent(chain, config, sponsored, eip7702InitSignature) {
|
|
@@ -480,14 +454,12 @@ async function deployWithIntent(chain, config, sponsored, eip7702InitSignature)
|
|
|
480
454
|
if (!initSignature && is7702(config)) {
|
|
481
455
|
initSignature = await signEip7702InitData(config);
|
|
482
456
|
}
|
|
483
|
-
const result = await
|
|
484
|
-
|
|
485
|
-
targetChain: chain,
|
|
486
|
-
calls: [],
|
|
457
|
+
const result = await sendTransactionInternal(config, [chain], chain, {
|
|
458
|
+
callInputs: [],
|
|
487
459
|
sponsored,
|
|
488
460
|
eip7702InitSignature: initSignature,
|
|
489
461
|
});
|
|
490
|
-
await waitForExecution(config, result
|
|
462
|
+
await waitForExecution(config, result);
|
|
491
463
|
}
|
|
492
464
|
async function deployWithBundler(chain, config) {
|
|
493
465
|
const publicClient = createPublicClient({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../actions/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../actions/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAU/B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE3D;;;GAGG;AACH,iBAAS,mBAAmB,IAAI,aAAa,CAU5C;AAED;;;GAGG;AACH,iBAAS,oBAAoB,IAAI,aAAa,CAU7C;AAED;;;;GAIG;AACH,iBAAS,0BAA0B,CACjC,OAAO,EAAE,YAAY,EACrB,sBAAsB,EAAE,GAAG,EAC3B,iBAAiB,EAAE;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;CACnB,EAAE,EACH,oBAAoB,EAAE,MAAM,GAC3B,aAAa,CAmBf;AAED,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getModuleInstallationCalls, getModuleUninstallationCalls, } from '../accounts/index.js';
|
|
2
|
-
import { getEnableSessionCall, getSmartSessionValidator, } from '../modules/validators/smart-sessions.js';
|
|
2
|
+
import { getEnableSessionCall, getSmartSessionValidator, toSession, } from '../modules/validators/smart-sessions.js';
|
|
3
3
|
/**
|
|
4
4
|
* Enable smart sessions
|
|
5
5
|
* @returns Calls to enable smart sessions
|
|
@@ -38,10 +38,10 @@ function experimental_disable() {
|
|
|
38
38
|
function experimental_enableSession(session, enableSessionSignature, hashesAndChainIds, sessionToEnableIndex) {
|
|
39
39
|
return {
|
|
40
40
|
async resolve({ accountAddress, chain, config }) {
|
|
41
|
-
return getEnableSessionCall(accountAddress, {
|
|
41
|
+
return getEnableSessionCall(accountAddress, toSession({
|
|
42
42
|
...session,
|
|
43
43
|
chain,
|
|
44
|
-
}, enableSessionSignature, hashesAndChainIds, sessionToEnableIndex, config.useDevContracts);
|
|
44
|
+
}, { useDevContracts: config.useDevContracts }), enableSessionSignature, hashesAndChainIds, sessionToEnableIndex, config.useDevContracts);
|
|
45
45
|
},
|
|
46
46
|
};
|
|
47
47
|
}
|
|
@@ -3,7 +3,7 @@ import type { UserOperationReceipt } from 'viem/_types/account-abstraction';
|
|
|
3
3
|
import { type AuthProvider } from '../auth/provider.js';
|
|
4
4
|
import { type IntentOpStatus, type SplitIntentsInput } from '../orchestrator/index.js';
|
|
5
5
|
import type { SettlementLayer } from '../orchestrator/types.js';
|
|
6
|
-
import type { CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol,
|
|
6
|
+
import type { CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, UserOperationTransaction } from '../types.js';
|
|
7
7
|
import { ExecutionError, IntentFailedError, IntentStatusTimeoutError, isExecutionError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, SignerNotSupportedError } from './error.js';
|
|
8
8
|
import type { TransactionResult, UserOperationResult } from './utils.js';
|
|
9
9
|
interface TransactionStatus {
|
|
@@ -16,7 +16,6 @@ interface TransactionStatus {
|
|
|
16
16
|
chainId: number;
|
|
17
17
|
}[];
|
|
18
18
|
}
|
|
19
|
-
declare function sendTransaction(config: RhinestoneAccountConfig, transaction: Transaction): Promise<TransactionResult>;
|
|
20
19
|
declare function sendUserOperation(config: RhinestoneAccountConfig, transaction: UserOperationTransaction): Promise<UserOperationResult>;
|
|
21
20
|
declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, options: {
|
|
22
21
|
callInputs?: CallInput[];
|
|
@@ -31,12 +30,12 @@ declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains:
|
|
|
31
30
|
feeAsset?: Address | TokenSymbol;
|
|
32
31
|
}): Promise<TransactionResult>;
|
|
33
32
|
declare function sendUserOperationInternal(config: RhinestoneConfig, chain: Chain, callInputs: CalldataInput[], signers?: SignerSet): Promise<UserOperationResult>;
|
|
34
|
-
declare function waitForExecution(config: RhinestoneConfig, result: TransactionResult | UserOperationResult
|
|
33
|
+
declare function waitForExecution(config: RhinestoneConfig, result: TransactionResult | UserOperationResult): Promise<TransactionStatus | UserOperationReceipt>;
|
|
35
34
|
declare function getPortfolio(config: RhinestoneConfig, onTestnets: boolean): Promise<import("../orchestrator/index.js").Portfolio>;
|
|
36
35
|
declare function getIntentStatus(authProvider: AuthProvider, endpointUrl: string | undefined, intentId: string, headers?: Record<string, string>): Promise<TransactionStatus & {
|
|
37
36
|
status: IntentOpStatus['status'];
|
|
38
37
|
}>;
|
|
39
38
|
declare function splitIntents(authProvider: AuthProvider, endpointUrl: string | undefined, input: SplitIntentsInput, headers?: Record<string, string>): Promise<import("../orchestrator/index.js").SplitIntentsResult>;
|
|
40
|
-
export {
|
|
39
|
+
export { sendTransactionInternal, sendUserOperation, sendUserOperationInternal, waitForExecution, getPortfolio, getIntentStatus, splitIntents, isExecutionError, ExecutionError, IntentFailedError, IntentStatusTimeoutError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, SignerNotSupportedError, };
|
|
41
40
|
export type { TransactionStatus, TransactionResult, UserOperationResult };
|
|
42
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAsB,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAG3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kBAAkB,CAAA;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { createPublicClient } from 'viem';
|
|
|
2
2
|
import { deploy, getAddress } from '../accounts/index.js';
|
|
3
3
|
import { createTransport, getBundlerClient } from '../accounts/utils.js';
|
|
4
4
|
import { createAuthProvider } from '../auth/provider.js';
|
|
5
|
-
import { getOrchestrator, INTENT_STATUS_COMPLETED, INTENT_STATUS_FAILED, INTENT_STATUS_FILLED,
|
|
5
|
+
import { getOrchestrator, INTENT_STATUS_COMPLETED, INTENT_STATUS_FAILED, INTENT_STATUS_FILLED, isRateLimited, isRetryable, } from '../orchestrator/index.js';
|
|
6
6
|
import { getChainById, getSupportedChainIds, isTestnet, } from '../orchestrator/registry.js';
|
|
7
7
|
import { ExecutionError, IntentFailedError, IntentStatusTimeoutError, isExecutionError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, SignerNotSupportedError, } from './error.js';
|
|
8
8
|
import { getTargetExecutionSignature, getTokenRequests, getValidatorAccount, parseCalls, prepareTransactionAsIntent, resolveCallInputs, signAuthorizationsInternal, signIntent, submitIntentInternal, } from './utils.js';
|
|
@@ -12,27 +12,6 @@ const POLL_SLOW_MS = 2000;
|
|
|
12
12
|
const POLL_MAX_WAIT_MS = 210000;
|
|
13
13
|
const POLL_ERROR_BACKOFF_MS = 1000;
|
|
14
14
|
const POLL_ERROR_BACKOFF_MAX_MS = 10000;
|
|
15
|
-
async function sendTransaction(config, transaction) {
|
|
16
|
-
const sourceChains = 'chain' in transaction ? [transaction.chain] : transaction.sourceChains;
|
|
17
|
-
const targetChain = 'chain' in transaction ? transaction.chain : transaction.targetChain;
|
|
18
|
-
const { calls, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, } = transaction;
|
|
19
|
-
const isUserOpSigner = signers?.type === 'guardians';
|
|
20
|
-
if (isUserOpSigner) {
|
|
21
|
-
throw new SignerNotSupportedError();
|
|
22
|
-
}
|
|
23
|
-
return await sendTransactionInternal(config, sourceChains, targetChain, {
|
|
24
|
-
callInputs: calls,
|
|
25
|
-
gasLimit,
|
|
26
|
-
initialTokenRequests: tokenRequests,
|
|
27
|
-
recipient,
|
|
28
|
-
signers,
|
|
29
|
-
sponsored,
|
|
30
|
-
eip7702InitSignature,
|
|
31
|
-
settlementLayers,
|
|
32
|
-
sourceAssets,
|
|
33
|
-
feeAsset,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
15
|
async function sendUserOperation(config, transaction) {
|
|
37
16
|
const accountAddress = getAddress(config);
|
|
38
17
|
const resolvedCalls = await resolveCallInputs(transaction.calls, config, transaction.chain, accountAddress);
|
|
@@ -91,15 +70,12 @@ async function sendTransactionAsIntent(config, sourceChains, targetChain, callIn
|
|
|
91
70
|
: [];
|
|
92
71
|
return await submitIntentInternal(config, sourceChains, targetChain, quote, originSignatures, destinationSignature, targetExecutionSignature, authorizations, false, intentInput);
|
|
93
72
|
}
|
|
94
|
-
async function waitForExecution(config, result
|
|
73
|
+
async function waitForExecution(config, result) {
|
|
95
74
|
const validStatuses = new Set([
|
|
96
75
|
INTENT_STATUS_FAILED,
|
|
97
76
|
INTENT_STATUS_COMPLETED,
|
|
98
77
|
INTENT_STATUS_FILLED,
|
|
99
78
|
]);
|
|
100
|
-
if (acceptsPreconfirmations) {
|
|
101
|
-
validStatuses.add(INTENT_STATUS_PRECONFIRMED);
|
|
102
|
-
}
|
|
103
79
|
switch (result.type) {
|
|
104
80
|
case 'intent': {
|
|
105
81
|
let intentStatus = null;
|
|
@@ -221,6 +197,6 @@ async function splitIntents(authProvider, endpointUrl, input, headers) {
|
|
|
221
197
|
const orchestrator = getOrchestrator(authProvider, endpointUrl, headers);
|
|
222
198
|
return orchestrator.getSplit(input);
|
|
223
199
|
}
|
|
224
|
-
export {
|
|
200
|
+
export { sendTransactionInternal, sendUserOperation, sendUserOperationInternal, waitForExecution, getPortfolio, getIntentStatus, splitIntents,
|
|
225
201
|
// Errors
|
|
226
202
|
isExecutionError, ExecutionError, IntentFailedError, IntentStatusTimeoutError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, SignerNotSupportedError, };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData, type TypedDataDefinition, type TypedDataDomain } from 'viem';
|
|
2
2
|
import { type UserOperation } from 'viem/account-abstraction';
|
|
3
|
-
import type
|
|
3
|
+
import { type ResolvedSessionSignerSet } from '../modules/validators/smart-sessions.js';
|
|
4
4
|
import { type Quote, type SignData } from '../orchestrator/index.js';
|
|
5
5
|
import { type AuxiliaryFunds, type OriginSignature, type SettlementLayer } from '../orchestrator/types.js';
|
|
6
6
|
import type { Call, CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, Session, SessionEnableData, SessionSignerSet, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAMV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAOR,KAAK,YAAY,EAEjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAGrB,MAAM,MAAM,CAAA;AACb,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAMV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAOR,KAAK,YAAY,EAEjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAGrB,MAAM,MAAM,CAAA;AACb,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;AA+CjC,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAIL,KAAK,KAAK,EACV,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EAEL,KAAK,cAAc,EAInB,KAAK,eAAe,EACpB,KAAK,eAAe,EAIrB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAEV,IAAI,EACJ,aAAa,EACb,SAAS,EAET,uBAAuB,EACvB,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EAET,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,wBAAwB,EACzB,MAAM,UAAU,CAAA;AAOjB,KAAK,iBAAiB,GAClB,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,GACpC,wBAAwB,CAAA;AAsC5B,iBAAS,sBAAsB,CAC7B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,MAAM,GACd;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CASA;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,KAAK,EAAE,CAAA;CACb;AAED,UAAU,uBAAuB;IAC/B,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,yBAAyB;IACjC,aAAa,EAAE,aAAa,CAAA;IAC5B,IAAI,EAAE,GAAG,CAAA;IACT,WAAW,EAAE,wBAAwB,CAAA;CACtC;AAED,UAAU,qBAAsB,SAAQ,uBAAuB;IAC7D,KAAK,EAAE,KAAK,CAAA;IACZ,gBAAgB,EAAE,eAAe,EAAE,CAAA;IACnC,oBAAoB,EAAE,GAAG,CAAA;IACzB,wBAAwB,EAAE,GAAG,GAAG,SAAS,CAAA;CAC1C;AAKD,UAAU,uBAAwB,SAAQ,yBAAyB;IACjE,SAAS,EAAE,GAAG,CAAA;CACf;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,uBAAuB,CAAC,CAiDlC;AAED,iBAAe,oBAAoB,CACjC,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,wBAAwB,GACpC,OAAO,CAAC,yBAAyB,CAAC,CAgBpC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAC/B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB1B;AAED,iBAAS,sBAAsB,CAC7B,OAAO,EAAE,gBAAgB,EACzB,mBAAmB,EAAE,uBAAuB,EAC5C,OAAO,CAAC,EAAE,cAAc,GACvB;IACD,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,WAAW,EAAE,mBAAmB,CAAA;IAChC,eAAe,CAAC,EAAE,mBAAmB,CAAA;CACtC,CAGA;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,uBAAuB,EAC5C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,qBAAqB,CAAC,CA8BhC;AAaD,iBAAe,2BAA2B,CACxC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,SAAS,GAAG,SAAS,sCAqC/B;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,qBAAqB,EAAE,yBAAyB,GAC/C,OAAO,CAAC,uBAAuB,CAAC,CAYlC;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,uBAAuB,kCAY7C;AAED,iBAAe,WAAW,CACxB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,GAAG,SAAS,0BAqB/B;AAED,iBAAe,aAAa,CAC1B,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,EAEtE,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,EAC3D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,0BA0DF;AA8DD,iBAAe,0BAA0B,CACvC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE;IACP,YAAY,EAAE,KAAK,EAAE,GAAG,SAAS,CAAA;IACjC,WAAW,EAAE,KAAK,CAAA;IAClB,oBAAoB,EAAE,GAAG,GAAG,SAAS,CAAA;CACtC,kCA2CF;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,EAAE,qBAAqB,EACxC,cAAc,EAAE,uBAAuB,EACvC,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAsB5B;AAED,iBAAe,mBAAmB,CAChC,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,uBAAuB,gCAO7C;AAsCD,iBAAS,gBAAgB,CACvB,WAAW,EAAE,KAAK,EAClB,oBAAoB,EAAE,YAAY,EAAE,GAAG,SAAS,kBASjD;AAkDD,iBAAS,gBAAgB,CACvB,MAAM,EAAE,gBAAgB,EACxB,oBAAoB,EAAE,GAAG,GAAG,SAAS,EACrC,OAAO,EACH;IACE,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,OAAO,CAAA;QACX,IAAI,EAAE,GAAG,CAAA;KACV,EAAE,CAAA;CACJ,GACD,SAAS;;;;YAJD,OAAO;cACL,GAAG;;;;;;;EAmBlB;AAED,iBAAe,0BAA0B,CACvC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,KAAK,EAAE,GAAG,SAAS,EACjC,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,aAAa,EAAE,EAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,aAAa,EAAE,YAAY,EAAE,EAC7B,cAAc,EAAE,uBAAuB,GAAG,OAAO,GAAG,SAAS,EAC7D,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,oBAAoB,EAAE,GAAG,GAAG,SAAS,EACrC,gBAAgB,EAAE,eAAe,EAAE,GAAG,SAAS,EAC/C,YAAY,EAAE,gBAAgB,GAAG,SAAS,EAC1C,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,EAC3C,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,OAAO,EACH;IACE,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,OAAO,CAAA;QACX,IAAI,EAAE,GAAG,CAAA;KACV,EAAE,CAAA;CACJ,GACD,SAAS,EACb,OAAO,EAAE,SAAS,GAAG,SAAS;;;;;;GA+H/B;AAED,iBAAe,UAAU,CACvB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,KAAK,EAClB,OAAO,CAAC,EAAE,SAAS,EACnB,eAAe,CAAC,EAAE,OAAO;;;GAwE1B;AAqWD,iBAAe,oBAAoB,CACjC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,KAAK,EAAE,GAAG,SAAS,EACjC,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,eAAe,EAAE,EACnC,oBAAoB,EAAE,GAAG,EACzB,wBAAwB,EAAE,GAAG,GAAG,SAAS,EACzC,cAAc,EAAE,uBAAuB,EACvC,MAAM,EAAE,OAAO,EACf,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC,CA0C5B;AAED,iBAAe,mBAAmB,CAChC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,yKAoBb;AAiDD,iBAAS,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,CAMnE;AA0LD,iBAAS,6BAA6B,CAAC,EACrC,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,cAAc,GACf,EAAE;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,iBAAiB,EAAE,OAAO,CAAA;QAC1B,IAAI,EAAE,GAAG,CAAA;KACV,CAAA;CACF,GAAG,GAAG,CAoFN;AAED,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,EAC7B,sBAAsB,GACvB,CAAA;AACD,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,CAAA"}
|
|
@@ -8,7 +8,8 @@ import { createTransport, getBundlerClient, } from '../accounts/utils.js';
|
|
|
8
8
|
import { createAuthProvider } from '../auth/provider.js';
|
|
9
9
|
import { buildMockSignature, DUMMY_PRECLAIMOP_SELECTOR, DUMMY_PRECLAIMOP_TARGET, getOwnerValidator, getPermissionId, getSmartSessionValidator, isSessionEnabled, } from '../modules/validators/index.js';
|
|
10
10
|
import { getMultiFactorValidator, getSocialRecoveryValidator, getWebAuthnValidator, supportsEip712, } from '../modules/validators/core.js';
|
|
11
|
-
import { buildPermit2ClaimPolicyCalldata } from '../modules/validators/policies/claim/permit2.js';
|
|
11
|
+
import { buildPermit2ClaimPolicyCalldata, } from '../modules/validators/policies/claim/permit2.js';
|
|
12
|
+
import { resolvePermit2ClaimPolicy, } from '../modules/validators/smart-sessions.js';
|
|
12
13
|
import { getOrchestrator, } from '../orchestrator/index.js';
|
|
13
14
|
import { getChainById, getTokenAddress, resolveTokenAddress, } from '../orchestrator/registry.js';
|
|
14
15
|
import { SIG_MODE_EMISSARY_EXECUTION_ERC1271, SIG_MODE_ERC1271_EMISSARY, } from '../orchestrator/types.js';
|
|
@@ -24,8 +25,9 @@ async function resolveSignersForChain(config, signers, chainId) {
|
|
|
24
25
|
const resolved = resolveSessionForChain(signers, chainId);
|
|
25
26
|
const enabled = await isSessionEnabled(getAddress(config), config.provider, resolved.session, config.useDevContracts);
|
|
26
27
|
const enableData = enabled ? undefined : resolved.enableData;
|
|
27
|
-
const
|
|
28
|
-
|
|
28
|
+
const verifyExecutions = resolved.verifyExecutions ??
|
|
29
|
+
signers.verifyExecutions ??
|
|
30
|
+
resolved.session.hasExplicitPermissions;
|
|
29
31
|
return {
|
|
30
32
|
type: 'experimental_session',
|
|
31
33
|
session: resolved.session,
|
|
@@ -615,7 +617,7 @@ function coerceTypedDataValue(types, type, value) {
|
|
|
615
617
|
/** Computes claim policy calldata when parameters are Permit2 typed data with claim policies. */
|
|
616
618
|
function resolveClaimPolicyData(signers, parameters) {
|
|
617
619
|
if (parameters.primaryType !== 'PermitBatchWitnessTransferFrom' ||
|
|
618
|
-
!signers.session.claimPolicies
|
|
620
|
+
!signers.session.claimPolicies.length) {
|
|
619
621
|
return undefined;
|
|
620
622
|
}
|
|
621
623
|
const msg = parameters.message;
|
|
@@ -626,7 +628,7 @@ function resolveClaimPolicyData(signers, parameters) {
|
|
|
626
628
|
typeof msg.deadline !== 'bigint') {
|
|
627
629
|
return undefined;
|
|
628
630
|
}
|
|
629
|
-
return buildPermit2ClaimPolicyCalldata(signers.session.claimPolicies[0], parameters.message);
|
|
631
|
+
return buildPermit2ClaimPolicyCalldata(resolvePermit2ClaimPolicy(signers.session.claimPolicies[0]), parameters.message);
|
|
630
632
|
}
|
|
631
633
|
async function signIntentTypedData(config, signers, validator, isRoot, parameters, chain, targetExecution) {
|
|
632
634
|
if (supportsEip712(validator)) {
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import type { Address, Chain, HashTypedDataParameters, Hex, SignableMessage, SignedAuthorizationList, TypedData, TypedDataDefinition } from 'viem';
|
|
2
2
|
import type { UserOperationReceipt } from 'viem/account-abstraction';
|
|
3
|
-
import { walletClientToAccount, wrapParaAccount } from './accounts/walletClient.js';
|
|
4
|
-
import { deployAccountsForOwners } from './actions/deployment.js';
|
|
5
3
|
import { type TransactionResult, type TransactionStatus, type UserOperationResult } from './execution/index.js';
|
|
6
|
-
import { checkERC20AllowanceDirect, getPermit2Address } from './execution/permit2.js';
|
|
7
4
|
import { type PreparedQuotes, type PreparedTransactionData, type PreparedUserOperationData, type QuoteSelection, type SignedTransactionData, type SignedUserOperationData } from './execution/utils.js';
|
|
8
5
|
import { MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS } from './modules/index.js';
|
|
9
6
|
import { type SessionDetails } from './modules/validators/smart-sessions.js';
|
|
10
|
-
import {
|
|
11
|
-
import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, ChainSessionConfig, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Permit2ClaimPolicy, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneConfig, RhinestoneSDKConfig, Session, SignerSet, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types.js';
|
|
7
|
+
import type { ApprovalRequired, AuxiliaryFunds, IntentInput, IntentOpStatus, Portfolio, SettlementLayer, SplitIntentsInput, SplitIntentsResult, TokenRequirements, WrapRequired } from './orchestrator/index.js';
|
|
8
|
+
import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, ChainSessionConfig, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, ParamConstraint, PaymasterConfig, Permission, PermissionFunctionConfig, Permit2ClaimPolicy, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneConfig, RhinestoneSDKConfig, Session, SessionDefinition, SignerSet, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types.js';
|
|
9
|
+
interface SubmitTransactionOptions {
|
|
10
|
+
authorizations?: SignedAuthorizationList;
|
|
11
|
+
/**
|
|
12
|
+
* When `true`, the orchestrator validates the intent without executing it
|
|
13
|
+
* onchain. Internal use only; the `internal_` prefix marks it as not part
|
|
14
|
+
* of the supported public API.
|
|
15
|
+
*/
|
|
16
|
+
internal_dryRun?: boolean;
|
|
17
|
+
}
|
|
12
18
|
interface RhinestoneAccount {
|
|
13
19
|
config: RhinestoneAccountConfig;
|
|
14
20
|
deploy: (chain: Chain, params?: {
|
|
@@ -32,14 +38,13 @@ interface RhinestoneAccount {
|
|
|
32
38
|
signAuthorizations: (preparedTransaction: PreparedTransactionData) => Promise<SignedAuthorizationList>;
|
|
33
39
|
signMessage: (message: SignableMessage, chain: Chain, signers: SignerSet | undefined) => Promise<Hex>;
|
|
34
40
|
signTypedData: <typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: HashTypedDataParameters<typedData, primaryType>, chain: Chain, signers: SignerSet | undefined) => Promise<Hex>;
|
|
35
|
-
submitTransaction: (signedTransaction: SignedTransactionData,
|
|
36
|
-
sendTransaction: (transaction: Transaction) => Promise<TransactionResult>;
|
|
41
|
+
submitTransaction: (signedTransaction: SignedTransactionData, options?: SubmitTransactionOptions) => Promise<TransactionResult>;
|
|
37
42
|
prepareUserOperation: (transaction: UserOperationTransaction) => Promise<PreparedUserOperationData>;
|
|
38
43
|
signUserOperation: (preparedUserOperation: PreparedUserOperationData) => Promise<SignedUserOperationData>;
|
|
39
44
|
submitUserOperation: (signedUserOperation: SignedUserOperationData) => Promise<UserOperationResult>;
|
|
40
45
|
sendUserOperation: (transaction: UserOperationTransaction) => Promise<UserOperationResult>;
|
|
41
|
-
waitForExecution(result: TransactionResult
|
|
42
|
-
waitForExecution(result: UserOperationResult
|
|
46
|
+
waitForExecution(result: TransactionResult): Promise<TransactionStatus>;
|
|
47
|
+
waitForExecution(result: UserOperationResult): Promise<UserOperationReceipt>;
|
|
43
48
|
getAddress: () => Address;
|
|
44
49
|
getPortfolio: (onTestnets?: boolean) => Promise<Portfolio>;
|
|
45
50
|
experimental_getSessionDetails: (sessions: Session[]) => Promise<SessionDetails>;
|
|
@@ -51,7 +56,6 @@ interface RhinestoneAccount {
|
|
|
51
56
|
} | null>;
|
|
52
57
|
getValidators: (chain: Chain) => Promise<Address[]>;
|
|
53
58
|
getExecutors: (chain: Chain) => Promise<Address[]>;
|
|
54
|
-
checkERC20Allowance: (tokenAddress: Address, chain: Chain) => Promise<bigint>;
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
57
61
|
* Initialize a Rhinestone account
|
|
@@ -75,6 +79,6 @@ declare class RhinestoneSDK {
|
|
|
75
79
|
}>;
|
|
76
80
|
splitIntents(input: SplitIntentsInput): Promise<SplitIntentsResult>;
|
|
77
81
|
}
|
|
78
|
-
export { RhinestoneSDK, createRhinestoneAccount,
|
|
79
|
-
export type { RhinestoneAccount, AccountType, RhinestoneAccountConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, TokenSymbol, CallInput, Call, TokenRequest, OwnerSet, OwnableValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, ChainSessionConfig, Session, Recovery, Policy, Permit2ClaimPolicy, UniversalActionPolicyParamCondition, PreparedQuotes, PreparedTransactionData, QuoteSelection, SignedTransactionData, TransactionResult, PreparedUserOperationData, SignedUserOperationData, UserOperationResult, AuxiliaryFunds, IntentInput, IntentOpStatus, SettlementLayer, SplitIntentsInput, SplitIntentsResult, Portfolio, TokenRequirements, WrapRequired, ApprovalRequired, };
|
|
82
|
+
export { RhinestoneSDK, createRhinestoneAccount, OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, };
|
|
83
|
+
export type { RhinestoneAccount, AccountType, RhinestoneAccountConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, TokenSymbol, CallInput, Call, TokenRequest, OwnerSet, OwnableValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, ChainSessionConfig, Session, SessionDefinition, Recovery, Permission, PermissionFunctionConfig, ParamConstraint, Policy, Permit2ClaimPolicy, UniversalActionPolicyParamCondition, PreparedQuotes, PreparedTransactionData, QuoteSelection, SignedTransactionData, TransactionResult, PreparedUserOperationData, SignedUserOperationData, UserOperationResult, AuxiliaryFunds, IntentInput, IntentOpStatus, SettlementLayer, SplitIntentsInput, SplitIntentsResult, Portfolio, TokenRequirements, WrapRequired, ApprovalRequired, };
|
|
80
84
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,uBAAuB,EACvB,GAAG,EACH,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { checkAddress, deploy as deployInternal, FactoryArgsNotAvailableError, getAccountProvider, getAddress as getAddressInternal, getInitCode, isDeployed as isDeployedInternal, OwnersFieldRequiredError, setup as setupInternal, signEip7702InitData as signEip7702InitDataInternal, } from './accounts/index.js';
|
|
2
|
-
import { walletClientToAccount, wrapParaAccount } from './accounts/walletClient.js';
|
|
3
|
-
import { deployAccountsForOwners } from './actions/deployment.js';
|
|
4
2
|
import { createAuthProvider } from './auth/provider.js';
|
|
5
|
-
import { getIntentStatus as getIntentStatusInternal, getPortfolio as getPortfolioInternal,
|
|
6
|
-
import { checkERC20AllowanceDirect, checkERC20Allowance as checkERC20AllowanceInternal, getPermit2Address, } from './execution/permit2.js';
|
|
3
|
+
import { getIntentStatus as getIntentStatusInternal, getPortfolio as getPortfolioInternal, sendUserOperation as sendUserOperationInternal, splitIntents as splitIntentsInternal, waitForExecution as waitForExecutionInternal, } from './execution/index.js';
|
|
7
4
|
import { getTransactionMessages as getTransactionMessagesInternal, prepareTransaction as prepareTransactionInternal, prepareUserOperation as prepareUserOperationInternal, signAuthorizations as signAuthorizationsInternal, signMessage as signMessageInternal, signTransaction as signTransactionInternal, signTypedData as signTypedDataInternal, signUserOperation as signUserOperationInternal, submitTransaction as submitTransactionInternal, submitUserOperation as submitUserOperationInternal, } from './execution/utils.js';
|
|
8
5
|
import { getExecutors as getExecutorsInternal, getOwners as getOwnersInternal, getSessionDetails as getSessionDetailsInternal, getValidators as getValidatorsInternal, MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, signEnableSession as signEnableSessionInternal, WEBAUTHN_VALIDATOR_ADDRESS, } from './modules/index.js';
|
|
9
6
|
import { isSessionEnabled as isSessionEnabledInternal, } from './modules/validators/smart-sessions.js';
|
|
10
|
-
import { getAllSupportedChainsAndTokens, getSupportedTokens, getTokenAddress, getTokenDecimals, } from './orchestrator/index.js';
|
|
11
7
|
/**
|
|
12
8
|
* Initialize a Rhinestone account
|
|
13
9
|
* Note: accounts are deployed onchain only when the first transaction is sent.
|
|
@@ -129,14 +125,14 @@ async function createRhinestoneAccount(config) {
|
|
|
129
125
|
/**
|
|
130
126
|
* Submit a transaction
|
|
131
127
|
* @param signedTransaction Signed transaction data
|
|
132
|
-
* @param
|
|
128
|
+
* @param options Optional submission options
|
|
129
|
+
* @param options.authorizations EIP-7702 authorizations to submit
|
|
133
130
|
* @returns transaction result object (a UserOp hash)
|
|
134
131
|
* @see {@link signTransaction} to sign the transaction data
|
|
135
132
|
* @see {@link signAuthorizations} to sign the required EIP-7702 authorizations
|
|
136
|
-
* @see {@link dryRun} true when intent is not executed onchain (internal use only)
|
|
137
133
|
*/
|
|
138
|
-
function submitTransaction(signedTransaction,
|
|
139
|
-
return submitTransactionInternal(config, signedTransaction, authorizations ?? [],
|
|
134
|
+
function submitTransaction(signedTransaction, options) {
|
|
135
|
+
return submitTransactionInternal(config, signedTransaction, options?.authorizations ?? [], options?.internal_dryRun ?? false);
|
|
140
136
|
}
|
|
141
137
|
/**
|
|
142
138
|
* Prepare a user operation data
|
|
@@ -164,14 +160,6 @@ async function createRhinestoneAccount(config) {
|
|
|
164
160
|
function submitUserOperation(signedUserOperation) {
|
|
165
161
|
return submitUserOperationInternal(config, signedUserOperation);
|
|
166
162
|
}
|
|
167
|
-
/**
|
|
168
|
-
* Sign and send a transaction
|
|
169
|
-
* @param transaction Transaction to send
|
|
170
|
-
* @returns transaction result object (an intent ID)
|
|
171
|
-
*/
|
|
172
|
-
function sendTransaction(transaction) {
|
|
173
|
-
return sendTransactionInternal(config, transaction);
|
|
174
|
-
}
|
|
175
163
|
/**
|
|
176
164
|
* Sign and send a user operation
|
|
177
165
|
* @param transaction User operation to send
|
|
@@ -180,8 +168,8 @@ async function createRhinestoneAccount(config) {
|
|
|
180
168
|
function sendUserOperation(transaction) {
|
|
181
169
|
return sendUserOperationInternal(config, transaction);
|
|
182
170
|
}
|
|
183
|
-
function waitForExecution(result
|
|
184
|
-
return waitForExecutionInternal(config, result
|
|
171
|
+
function waitForExecution(result) {
|
|
172
|
+
return waitForExecutionInternal(config, result);
|
|
185
173
|
}
|
|
186
174
|
/**
|
|
187
175
|
* Get account address
|
|
@@ -233,18 +221,6 @@ async function createRhinestoneAccount(config) {
|
|
|
233
221
|
function experimental_signEnableSession(details) {
|
|
234
222
|
return signEnableSessionInternal(config, details);
|
|
235
223
|
}
|
|
236
|
-
/**
|
|
237
|
-
* Check ERC20 allowance for the account owner and token (using Permit2 as spender)
|
|
238
|
-
* @param tokenAddress The token contract address
|
|
239
|
-
* @param chain The chain to check the allowance on
|
|
240
|
-
* @returns The allowance amount
|
|
241
|
-
*/
|
|
242
|
-
function checkERC20Allowance(tokenAddress, chain) {
|
|
243
|
-
if (!config.provider) {
|
|
244
|
-
throw new Error('Provider configuration is required');
|
|
245
|
-
}
|
|
246
|
-
return checkERC20AllowanceInternal(tokenAddress, chain, config);
|
|
247
|
-
}
|
|
248
224
|
return {
|
|
249
225
|
config,
|
|
250
226
|
deploy,
|
|
@@ -261,7 +237,6 @@ async function createRhinestoneAccount(config) {
|
|
|
261
237
|
prepareUserOperation,
|
|
262
238
|
signUserOperation,
|
|
263
239
|
submitUserOperation,
|
|
264
|
-
sendTransaction,
|
|
265
240
|
sendUserOperation,
|
|
266
241
|
waitForExecution,
|
|
267
242
|
getAddress,
|
|
@@ -272,7 +247,6 @@ async function createRhinestoneAccount(config) {
|
|
|
272
247
|
experimental_getSessionDetails,
|
|
273
248
|
experimental_isSessionEnabled,
|
|
274
249
|
experimental_signEnableSession,
|
|
275
|
-
checkERC20Allowance,
|
|
276
250
|
getInitData,
|
|
277
251
|
};
|
|
278
252
|
}
|
|
@@ -313,10 +287,6 @@ class RhinestoneSDK {
|
|
|
313
287
|
return splitIntentsInternal(this.authProvider, this.endpointUrl, input, this.headers);
|
|
314
288
|
}
|
|
315
289
|
}
|
|
316
|
-
export { RhinestoneSDK, createRhinestoneAccount,
|
|
290
|
+
export { RhinestoneSDK, createRhinestoneAccount,
|
|
317
291
|
// Validator addresses
|
|
318
|
-
OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS,
|
|
319
|
-
// Registry functions
|
|
320
|
-
getSupportedTokens, getTokenAddress, getTokenDecimals, getAllSupportedChainsAndTokens,
|
|
321
|
-
// Permit2 helpers
|
|
322
|
-
checkERC20AllowanceDirect, getPermit2Address, };
|
|
292
|
+
OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, };
|
|
@@ -3,9 +3,9 @@ import type { RhinestoneConfig } from '../types.js';
|
|
|
3
3
|
import { type ModeleSetup, type Module } from './common.js';
|
|
4
4
|
import { getExecutors, getOwners, getValidators } from './read.js';
|
|
5
5
|
import { getOwnerValidator, MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS } from './validators/index.js';
|
|
6
|
-
import { getSessionDetails, signEnableSession } from './validators/smart-sessions.js';
|
|
6
|
+
import { getSessionDetails, signEnableSession, toSession } from './validators/smart-sessions.js';
|
|
7
7
|
declare function getSetup(config: RhinestoneConfig): ModeleSetup;
|
|
8
8
|
declare function getIntentExecutor(config: RhinestoneConfig): Module;
|
|
9
9
|
declare function isRip7212SupportedNetwork(chain: Chain): boolean;
|
|
10
|
-
export { OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, getSetup, getOwnerValidator, getOwners, getExecutors, getIntentExecutor, getValidators, isRip7212SupportedNetwork, getSessionDetails, signEnableSession, };
|
|
10
|
+
export { OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, getSetup, getOwnerValidator, getOwners, getExecutors, getIntentExecutor, getValidators, isRip7212SupportedNetwork, getSessionDetails, signEnableSession, toSession, };
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,KAAK,EAAuB,MAAM,MAAM,CAAA;AAcpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAKhD,OAAO,EAQL,KAAK,WAAW,EAChB,KAAK,MAAM,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAC/D,OAAO,EACL,iBAAiB,EAEjB,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,KAAK,EAAuB,MAAM,MAAM,CAAA;AAcpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAKhD,OAAO,EAQL,KAAK,WAAW,EAChB,KAAK,MAAM,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAC/D,OAAO,EACL,iBAAiB,EAEjB,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACV,MAAM,6BAA6B,CAAA;AAKpC,iBAAS,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CA0EvD;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAY3D;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,KAAK,WAc9C;AAED,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACV,CAAA"}
|