@rhinestone/sdk 2.0.0-beta.1 → 2.0.0-beta.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/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/error.d.ts +2 -2
- package/dist/src/execution/error.d.ts.map +1 -1
- package/dist/src/execution/error.js +3 -3
- package/dist/src/execution/index.d.ts +9 -9
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +18 -32
- package/dist/src/execution/utils.d.ts +11 -9
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +94 -29
- package/dist/src/index.d.ts +17 -12
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -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/caip2.d.ts +9 -3
- package/dist/src/orchestrator/caip2.d.ts.map +1 -1
- package/dist/src/orchestrator/caip2.js +40 -5
- package/dist/src/orchestrator/client.d.ts +2 -1
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +41 -18
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.d.ts.map +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/dist/src/orchestrator/destinations.d.ts +23 -0
- package/dist/src/orchestrator/destinations.d.ts.map +1 -0
- package/dist/src/orchestrator/destinations.js +36 -0
- package/dist/src/orchestrator/index.d.ts +5 -4
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +3 -2
- package/dist/src/orchestrator/registry.d.ts +3 -9
- package/dist/src/orchestrator/registry.d.ts.map +1 -1
- package/dist/src/orchestrator/registry.js +11 -26
- package/dist/src/orchestrator/types.d.ts +47 -15
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/types.d.ts +124 -33
- 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 +2 -6
- 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":"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"}
|
|
@@ -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
|
}
|
|
@@ -43,7 +43,7 @@ declare class IntentFailedError extends ExecutionError {
|
|
|
43
43
|
traceId?: string;
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
declare class
|
|
46
|
+
declare class IntentExpiredError extends ExecutionError {
|
|
47
47
|
constructor(params?: {
|
|
48
48
|
context?: any;
|
|
49
49
|
errorType?: string;
|
|
@@ -67,5 +67,5 @@ declare class Eip7702InitSignatureRequiredError extends ExecutionError {
|
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
declare function isExecutionError(error: Error): error is ExecutionError;
|
|
70
|
-
export { isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, IntentFailedError,
|
|
70
|
+
export { isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, IntentFailedError, IntentExpiredError, SignerNotSupportedError, };
|
|
71
71
|
//# sourceMappingURL=error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../execution/error.ts"],"names":[],"mappings":"AAAA,cAAM,cAAe,SAAQ,KAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAErB,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;IAQD,IAAI,OAAO,WAEV;IAED,IAAI,OAAO,QAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,OAAO,WAEV;CACF;AAED,cAAM,uBAAwB,SAAQ,cAAc;gBACtC,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAOF;AAED,cAAM,gCAAiC,SAAQ,cAAc;gBAC/C,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAMF;AAED,cAAM,yBAA0B,SAAQ,cAAc;gBACxC,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAOF;AAED,cAAM,iBAAkB,SAAQ,cAAc;gBAChC,MAAM,CAAC,EAAE;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAMF;AAED,cAAM,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../execution/error.ts"],"names":[],"mappings":"AAAA,cAAM,cAAe,SAAQ,KAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAErB,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;IAQD,IAAI,OAAO,WAEV;IAED,IAAI,OAAO,QAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,OAAO,WAEV;CACF;AAED,cAAM,uBAAwB,SAAQ,cAAc;gBACtC,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAOF;AAED,cAAM,gCAAiC,SAAQ,cAAc;gBAC/C,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAMF;AAED,cAAM,yBAA0B,SAAQ,cAAc;gBACxC,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAOF;AAED,cAAM,iBAAkB,SAAQ,cAAc;gBAChC,MAAM,CAAC,EAAE;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAMF;AAED,cAAM,kBAAmB,SAAQ,cAAc;gBACjC,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAMF;AAED,cAAM,kCAAmC,SAAQ,cAAc;gBACjD,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAOF;AAED,cAAM,iCAAkC,SAAQ,cAAc;gBAChD,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAOF;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,cAAc,CAE/D;AAED,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iCAAiC,EACjC,gCAAgC,EAChC,kCAAkC,EAClC,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GACxB,CAAA"}
|
|
@@ -55,10 +55,10 @@ class IntentFailedError extends ExecutionError {
|
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
class
|
|
58
|
+
class IntentExpiredError extends ExecutionError {
|
|
59
59
|
constructor(params) {
|
|
60
60
|
super({
|
|
61
|
-
message: 'Intent
|
|
61
|
+
message: 'Intent expired before being filled',
|
|
62
62
|
...params,
|
|
63
63
|
});
|
|
64
64
|
}
|
|
@@ -82,4 +82,4 @@ class Eip7702InitSignatureRequiredError extends ExecutionError {
|
|
|
82
82
|
function isExecutionError(error) {
|
|
83
83
|
return error instanceof ExecutionError;
|
|
84
84
|
}
|
|
85
|
-
export { isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, IntentFailedError,
|
|
85
|
+
export { isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, IntentFailedError, IntentExpiredError, SignerNotSupportedError, };
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { type Address, type Chain, type Hex } from 'viem';
|
|
2
2
|
import type { UserOperationReceipt } from 'viem/_types/account-abstraction';
|
|
3
3
|
import { type AuthProvider } from '../auth/provider.js';
|
|
4
|
-
import { type IntentOpStatus, type SplitIntentsInput } from '../orchestrator/index.js';
|
|
5
|
-
import type {
|
|
6
|
-
import type { CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol,
|
|
7
|
-
import { ExecutionError,
|
|
4
|
+
import { type FillTransactionHash, type IntentOpStatus, type SplitIntentsInput } from '../orchestrator/index.js';
|
|
5
|
+
import type { SettlementLayerFilter } from '../orchestrator/types.js';
|
|
6
|
+
import type { CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, UserOperationTransaction } from '../types.js';
|
|
7
|
+
import { ExecutionError, IntentExpiredError, IntentFailedError, isExecutionError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, SignerNotSupportedError } from './error.js';
|
|
8
8
|
import type { TransactionResult, UserOperationResult } from './utils.js';
|
|
9
9
|
interface TransactionStatus {
|
|
10
10
|
fill: {
|
|
11
|
-
hash
|
|
11
|
+
/** Destination fill hash — viem `Hex` for EVM, base58 / Tron-hex for non-EVM. */
|
|
12
|
+
hash: FillTransactionHash | undefined;
|
|
12
13
|
chainId: number;
|
|
13
14
|
};
|
|
14
15
|
claims: {
|
|
@@ -16,7 +17,6 @@ interface TransactionStatus {
|
|
|
16
17
|
chainId: number;
|
|
17
18
|
}[];
|
|
18
19
|
}
|
|
19
|
-
declare function sendTransaction(config: RhinestoneAccountConfig, transaction: Transaction): Promise<TransactionResult>;
|
|
20
20
|
declare function sendUserOperation(config: RhinestoneAccountConfig, transaction: UserOperationTransaction): Promise<UserOperationResult>;
|
|
21
21
|
declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, options: {
|
|
22
22
|
callInputs?: CallInput[];
|
|
@@ -26,17 +26,17 @@ declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains:
|
|
|
26
26
|
signers?: SignerSet;
|
|
27
27
|
sponsored?: Sponsorship;
|
|
28
28
|
eip7702InitSignature?: Hex;
|
|
29
|
-
settlementLayers?:
|
|
29
|
+
settlementLayers?: SettlementLayerFilter;
|
|
30
30
|
sourceAssets?: SourceAssetInput;
|
|
31
31
|
feeAsset?: Address | TokenSymbol;
|
|
32
32
|
}): Promise<TransactionResult>;
|
|
33
33
|
declare function sendUserOperationInternal(config: RhinestoneConfig, chain: Chain, callInputs: CalldataInput[], signers?: SignerSet): Promise<UserOperationResult>;
|
|
34
|
-
declare function waitForExecution(config: RhinestoneConfig, result: TransactionResult | UserOperationResult
|
|
34
|
+
declare function waitForExecution(config: RhinestoneConfig, result: TransactionResult | UserOperationResult): Promise<TransactionStatus | UserOperationReceipt>;
|
|
35
35
|
declare function getPortfolio(config: RhinestoneConfig, onTestnets: boolean): Promise<import("../orchestrator/index.js").Portfolio>;
|
|
36
36
|
declare function getIntentStatus(authProvider: AuthProvider, endpointUrl: string | undefined, intentId: string, headers?: Record<string, string>): Promise<TransactionStatus & {
|
|
37
37
|
status: IntentOpStatus['status'];
|
|
38
38
|
}>;
|
|
39
39
|
declare function splitIntents(authProvider: AuthProvider, endpointUrl: string | undefined, input: SplitIntentsInput, headers?: Record<string, string>): Promise<import("../orchestrator/index.js").SplitIntentsResult>;
|
|
40
|
-
export {
|
|
40
|
+
export { sendTransactionInternal, sendUserOperation, sendUserOperationInternal, waitForExecution, getPortfolio, getIntentStatus, splitIntents, isExecutionError, ExecutionError, IntentExpiredError, IntentFailedError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, SignerNotSupportedError, };
|
|
41
41
|
export type { TransactionStatus, TransactionResult, UserOperationResult };
|
|
42
42
|
//# 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,37 +2,15 @@ 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_EXPIRED, INTENT_STATUS_FAILED, INTENT_STATUS_FILLED, isRateLimited, isRetryable, } from '../orchestrator/index.js';
|
|
6
6
|
import { getChainById, getSupportedChainIds, isTestnet, } from '../orchestrator/registry.js';
|
|
7
|
-
import { ExecutionError,
|
|
7
|
+
import { ExecutionError, IntentExpiredError, IntentFailedError, isExecutionError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, SignerNotSupportedError, } from './error.js';
|
|
8
8
|
import { getTargetExecutionSignature, getTokenRequests, getValidatorAccount, parseCalls, prepareTransactionAsIntent, resolveCallInputs, signAuthorizationsInternal, signIntent, submitIntentInternal, } from './utils.js';
|
|
9
9
|
const POLL_INITIAL_MS = 500;
|
|
10
10
|
const POLL_SLOW_AFTER_MS = 15000;
|
|
11
11
|
const POLL_SLOW_MS = 2000;
|
|
12
|
-
const POLL_MAX_WAIT_MS = 210000;
|
|
13
12
|
const POLL_ERROR_BACKOFF_MS = 1000;
|
|
14
13
|
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
14
|
async function sendUserOperation(config, transaction) {
|
|
37
15
|
const accountAddress = getAddress(config);
|
|
38
16
|
const resolvedCalls = await resolveCallInputs(transaction.calls, config, transaction.chain, accountAddress);
|
|
@@ -91,27 +69,27 @@ async function sendTransactionAsIntent(config, sourceChains, targetChain, callIn
|
|
|
91
69
|
: [];
|
|
92
70
|
return await submitIntentInternal(config, sourceChains, targetChain, quote, originSignatures, destinationSignature, targetExecutionSignature, authorizations, false, intentInput);
|
|
93
71
|
}
|
|
94
|
-
async function waitForExecution(config, result
|
|
72
|
+
async function waitForExecution(config, result) {
|
|
95
73
|
const validStatuses = new Set([
|
|
96
74
|
INTENT_STATUS_FAILED,
|
|
75
|
+
INTENT_STATUS_EXPIRED,
|
|
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;
|
|
106
82
|
const startTs = Date.now();
|
|
83
|
+
const deadlineMs = result.expiresAt * 1000;
|
|
107
84
|
let nextDelayMs = POLL_INITIAL_MS;
|
|
108
85
|
let errorBackoffMs = POLL_ERROR_BACKOFF_MS;
|
|
109
86
|
while (intentStatus === null || !validStatuses.has(intentStatus.status)) {
|
|
110
87
|
const now = Date.now();
|
|
111
|
-
if (now
|
|
112
|
-
throw new
|
|
88
|
+
if (now >= deadlineMs) {
|
|
89
|
+
throw new IntentExpiredError({
|
|
113
90
|
context: {
|
|
114
91
|
intentId: result.id,
|
|
92
|
+
expiresAt: result.expiresAt,
|
|
115
93
|
},
|
|
116
94
|
});
|
|
117
95
|
}
|
|
@@ -163,6 +141,14 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
|
163
141
|
},
|
|
164
142
|
});
|
|
165
143
|
}
|
|
144
|
+
if (intentStatus.status === INTENT_STATUS_EXPIRED) {
|
|
145
|
+
throw new IntentExpiredError({
|
|
146
|
+
context: {
|
|
147
|
+
intentId: result.id,
|
|
148
|
+
expiresAt: result.expiresAt,
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
}
|
|
166
152
|
return {
|
|
167
153
|
fill: {
|
|
168
154
|
hash: intentStatus.fillTransactionHash,
|
|
@@ -221,6 +207,6 @@ async function splitIntents(authProvider, endpointUrl, input, headers) {
|
|
|
221
207
|
const orchestrator = getOrchestrator(authProvider, endpointUrl, headers);
|
|
222
208
|
return orchestrator.getSplit(input);
|
|
223
209
|
}
|
|
224
|
-
export {
|
|
210
|
+
export { sendTransactionInternal, sendUserOperation, sendUserOperationInternal, waitForExecution, getPortfolio, getIntentStatus, splitIntents,
|
|
225
211
|
// Errors
|
|
226
|
-
isExecutionError, ExecutionError,
|
|
212
|
+
isExecutionError, ExecutionError, IntentExpiredError, IntentFailedError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, SessionChainRequiredError, SignerNotSupportedError, };
|
|
@@ -1,9 +1,10 @@
|
|
|
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
|
-
import { type
|
|
6
|
-
import
|
|
5
|
+
import { type DestinationChain, type NonEvmAddress } from '../orchestrator/destinations.js';
|
|
6
|
+
import { type AuxiliaryFunds, type OriginSignature, type SettlementLayerFilter } from '../orchestrator/types.js';
|
|
7
|
+
import type { Call, CalldataInput, CallInput, NonEvmTokenRequest, RhinestoneAccountConfig, RhinestoneConfig, Session, SessionEnableData, SessionSignerSet, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types.js';
|
|
7
8
|
type InternalSignerSet = Exclude<SignerSet, SessionSignerSet> | ResolvedSessionSignerSet;
|
|
8
9
|
declare function resolveSessionForChain(signers: SessionSignerSet, chainId: number): {
|
|
9
10
|
session: Session;
|
|
@@ -20,6 +21,7 @@ interface TransactionResult {
|
|
|
20
21
|
id: string;
|
|
21
22
|
sourceChains?: number[];
|
|
22
23
|
targetChain: number;
|
|
24
|
+
expiresAt: number;
|
|
23
25
|
}
|
|
24
26
|
interface PreparedQuotes {
|
|
25
27
|
best: Quote;
|
|
@@ -56,7 +58,7 @@ declare function getTransactionMessages(_config: RhinestoneConfig, preparedTrans
|
|
|
56
58
|
targetExecution?: TypedDataDefinition;
|
|
57
59
|
};
|
|
58
60
|
declare function signTransaction(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData, options?: QuoteSelection): Promise<SignedTransactionData>;
|
|
59
|
-
declare function getTargetExecutionSignature(config: RhinestoneConfig, signData: SignData, targetChain:
|
|
61
|
+
declare function getTargetExecutionSignature(config: RhinestoneConfig, signData: SignData, targetChain: DestinationChain, signers: SignerSet | undefined): Promise<`0x${string}` | undefined>;
|
|
60
62
|
declare function signUserOperation(config: RhinestoneConfig, preparedUserOperation: PreparedUserOperationData): Promise<SignedUserOperationData>;
|
|
61
63
|
declare function signAuthorizations(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedAuthorization[]>;
|
|
62
64
|
declare function signMessage(config: RhinestoneConfig, message: SignableMessage, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
|
|
@@ -65,12 +67,12 @@ declare function signTypedData<typedData extends TypedData | Record<string, unkn
|
|
|
65
67
|
}): Promise<`0x${string}`>;
|
|
66
68
|
declare function signAuthorizationsInternal(config: RhinestoneConfig, context: {
|
|
67
69
|
sourceChains: Chain[] | undefined;
|
|
68
|
-
targetChain:
|
|
70
|
+
targetChain: DestinationChain;
|
|
69
71
|
eip7702InitSignature: Hex | undefined;
|
|
70
72
|
}): Promise<SignedAuthorization[]>;
|
|
71
73
|
declare function submitTransaction(config: RhinestoneConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList, dryRun?: boolean): Promise<TransactionResult>;
|
|
72
74
|
declare function submitUserOperation(config: RhinestoneConfig, signedUserOperation: SignedUserOperationData): Promise<UserOperationResult>;
|
|
73
|
-
declare function getTokenRequests(targetChain:
|
|
75
|
+
declare function getTokenRequests(targetChain: DestinationChain, initialTokenRequests: (TokenRequest | NonEvmTokenRequest)[] | undefined): (TokenRequest | NonEvmTokenRequest)[];
|
|
74
76
|
declare function getIntentAccount(config: RhinestoneConfig, eip7702InitSignature: Hex | undefined, account: {
|
|
75
77
|
setupOps?: {
|
|
76
78
|
to: Address;
|
|
@@ -89,7 +91,7 @@ declare function getIntentAccount(config: RhinestoneConfig, eip7702InitSignature
|
|
|
89
91
|
};
|
|
90
92
|
} | undefined;
|
|
91
93
|
};
|
|
92
|
-
declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain:
|
|
94
|
+
declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: DestinationChain, callInputs: CalldataInput[], gasLimit: bigint | undefined, tokenRequests: (TokenRequest | NonEvmTokenRequest)[], recipientInput: RhinestoneAccountConfig | Address | NonEvmAddress | undefined, sponsored: Sponsorship | undefined, eip7702InitSignature: Hex | undefined, settlementLayers: SettlementLayerFilter | undefined, sourceAssets: SourceAssetInput | undefined, feeAsset: Address | TokenSymbol | undefined, auxiliaryFunds: AuxiliaryFunds | undefined, account: {
|
|
93
95
|
setupOps?: {
|
|
94
96
|
to: Address;
|
|
95
97
|
data: Hex;
|
|
@@ -101,11 +103,11 @@ declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChai
|
|
|
101
103
|
};
|
|
102
104
|
intentInput: any;
|
|
103
105
|
}>;
|
|
104
|
-
declare function signIntent(config: RhinestoneConfig, signData: SignData, targetChain:
|
|
106
|
+
declare function signIntent(config: RhinestoneConfig, signData: SignData, targetChain: DestinationChain, signers?: SignerSet, targetExecution?: boolean): Promise<{
|
|
105
107
|
originSignatures: OriginSignature[];
|
|
106
108
|
destinationSignature: `0x${string}`;
|
|
107
109
|
}>;
|
|
108
|
-
declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain:
|
|
110
|
+
declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: DestinationChain, quote: Quote, originSignatures: OriginSignature[], destinationSignature: Hex, targetExecutionSignature: Hex | undefined, authorizations: SignedAuthorizationList, dryRun: boolean, intentInput?: unknown): Promise<TransactionResult>;
|
|
109
111
|
declare function getValidatorAccount(config: RhinestoneConfig, 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>;
|
|
110
112
|
declare function parseCalls(calls: CalldataInput[], chainId: number): Call[];
|
|
111
113
|
declare function hashErc7739TypedDataForSolady({ domain, types, primaryType, message, verifierDomain, }: {
|
|
@@ -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;AACxB,OAAO,EACL,KAAK,gBAAgB,EAGrB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAA;AAMrC,OAAO,EAEL,KAAK,cAAc,EAInB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAI3B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAEV,IAAI,EACJ,aAAa,EACb,SAAS,EAET,kBAAkB,EAClB,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;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;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,CAgElC;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,gBAAgB,EAC7B,OAAO,EAAE,SAAS,GAAG,SAAS,sCA0C/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,gBAAgB,CAAA;IAC7B,oBAAoB,EAAE,GAAG,GAAG,SAAS,CAAA;CACtC,kCAiDF;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,gBAAgB,EAC7B,oBAAoB,EAAE,CAAC,YAAY,GAAG,kBAAkB,CAAC,EAAE,GAAG,SAAS,yCAgBxE;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,gBAAgB,EAC7B,UAAU,EAAE,aAAa,EAAE,EAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,aAAa,EAAE,CAAC,YAAY,GAAG,kBAAkB,CAAC,EAAE,EACpD,cAAc,EAAE,uBAAuB,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,EAC7E,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,oBAAoB,EAAE,GAAG,GAAG,SAAS,EACrC,gBAAgB,EAAE,qBAAqB,GAAG,SAAS,EACnD,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;;;;;;GA0I/B;AAED,iBAAe,UAAU,CACvB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,SAAS,EACnB,eAAe,CAAC,EAAE,OAAO;;;GA2E1B;AA4WD,iBAAe,oBAAoB,CACjC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,KAAK,EAAE,GAAG,SAAS,EACjC,WAAW,EAAE,gBAAgB,EAC7B,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,CA2C5B;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,CAQnE;AA4LD,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"}
|