@lit-protocol/vincent-ability-sdk 2.3.1 → 2.4.0-mma
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/CHANGELOG.md +6 -0
- package/README.md +52 -4
- package/dist/CHANGELOG.md +6 -0
- package/dist/README.md +52 -4
- package/dist/package.json +7 -1
- package/dist/src/gatedSigner.d.ts +2 -0
- package/dist/src/gatedSigner.d.ts.map +1 -0
- package/dist/src/gatedSigner.js +5 -0
- package/dist/src/gatedSigner.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/abilityHelpers/bigint-replace.d.ts +8 -0
- package/dist/src/lib/abilityHelpers/bigint-replace.d.ts.map +1 -0
- package/dist/src/lib/abilityHelpers/bigint-replace.js +14 -0
- package/dist/src/lib/abilityHelpers/bigint-replace.js.map +1 -0
- package/dist/src/lib/abilityHelpers/erc20-abi.d.ts +2 -0
- package/dist/src/lib/abilityHelpers/erc20-abi.d.ts.map +1 -0
- package/dist/src/lib/abilityHelpers/erc20-abi.js +122 -0
- package/dist/src/lib/abilityHelpers/erc20-abi.js.map +1 -0
- package/dist/src/lib/abilityHelpers/gasSponsorship/get-alchemy-chain-config.js +1 -1
- package/dist/src/lib/abilityHelpers/gasSponsorship/get-alchemy-chain-config.js.map +1 -1
- package/dist/src/lib/abilityHelpers/index.d.ts +2 -0
- package/dist/src/lib/abilityHelpers/index.d.ts.map +1 -1
- package/dist/src/lib/abilityHelpers/index.js +5 -1
- package/dist/src/lib/abilityHelpers/index.js.map +1 -1
- package/dist/src/lib/gatedSigner/helpers/eip712.d.ts +34 -0
- package/dist/src/lib/gatedSigner/helpers/eip712.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/eip712.js +30 -0
- package/dist/src/lib/gatedSigner/helpers/eip712.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/hex.d.ts +5 -0
- package/dist/src/lib/gatedSigner/helpers/hex.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/hex.js +16 -0
- package/dist/src/lib/gatedSigner/helpers/hex.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/lifecycleFunctions.d.ts +54 -0
- package/dist/src/lib/gatedSigner/helpers/lifecycleFunctions.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/lifecycleFunctions.js +91 -0
- package/dist/src/lib/gatedSigner/helpers/lifecycleFunctions.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/lowLevelCall.d.ts +13 -0
- package/dist/src/lib/gatedSigner/helpers/lowLevelCall.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/lowLevelCall.js +21 -0
- package/dist/src/lib/gatedSigner/helpers/lowLevelCall.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/schemas.d.ts +925 -0
- package/dist/src/lib/gatedSigner/helpers/schemas.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/schemas.js +64 -0
- package/dist/src/lib/gatedSigner/helpers/schemas.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/signTransaction.d.ts +9 -0
- package/dist/src/lib/gatedSigner/helpers/signTransaction.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/signTransaction.js +30 -0
- package/dist/src/lib/gatedSigner/helpers/signTransaction.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/signUserOperation.d.ts +15 -0
- package/dist/src/lib/gatedSigner/helpers/signUserOperation.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/signUserOperation.js +115 -0
- package/dist/src/lib/gatedSigner/helpers/signUserOperation.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/simulation.d.ts +204 -0
- package/dist/src/lib/gatedSigner/helpers/simulation.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/simulation.js +93 -0
- package/dist/src/lib/gatedSigner/helpers/simulation.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/smartAccounts/kernel.d.ts +8 -0
- package/dist/src/lib/gatedSigner/helpers/smartAccounts/kernel.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/smartAccounts/kernel.js +177 -0
- package/dist/src/lib/gatedSigner/helpers/smartAccounts/kernel.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/smartAccounts/safe.d.ts +26 -0
- package/dist/src/lib/gatedSigner/helpers/smartAccounts/safe.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/smartAccounts/safe.js +195 -0
- package/dist/src/lib/gatedSigner/helpers/smartAccounts/safe.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/toLitActionAccount.d.ts +20 -0
- package/dist/src/lib/gatedSigner/helpers/toLitActionAccount.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/toLitActionAccount.js +69 -0
- package/dist/src/lib/gatedSigner/helpers/toLitActionAccount.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/transaction.d.ts +148 -0
- package/dist/src/lib/gatedSigner/helpers/transaction.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/transaction.js +87 -0
- package/dist/src/lib/gatedSigner/helpers/transaction.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/userOperation.d.ts +200 -0
- package/dist/src/lib/gatedSigner/helpers/userOperation.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/userOperation.js +106 -0
- package/dist/src/lib/gatedSigner/helpers/userOperation.js.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/validation.d.ts +43 -0
- package/dist/src/lib/gatedSigner/helpers/validation.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/helpers/validation.js +81 -0
- package/dist/src/lib/gatedSigner/helpers/validation.js.map +1 -0
- package/dist/src/lib/gatedSigner/index.d.ts +12 -0
- package/dist/src/lib/gatedSigner/index.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/index.js +19 -0
- package/dist/src/lib/gatedSigner/index.js.map +1 -0
- package/dist/src/lib/gatedSigner/vincentGatedSignerAbility.d.ts +566 -0
- package/dist/src/lib/gatedSigner/vincentGatedSignerAbility.d.ts.map +1 -0
- package/dist/src/lib/gatedSigner/vincentGatedSignerAbility.js +48 -0
- package/dist/src/lib/gatedSigner/vincentGatedSignerAbility.js.map +1 -0
- package/dist/src/type-inference-verification/ability-definition-tests.d.ts +6 -6
- package/dist/src/type-inference-verification/allow-deny-test-cases-ability.d.ts +90 -90
- package/dist/src/type-inference-verification/allow-deny-test-cases.d.ts +8 -8
- package/dist/src/type-inference-verification/context-switching-tests.d.ts +3 -3
- package/dist/src/type-inference-verification/create-vincent-gated-signer-ability.d.ts +533 -0
- package/dist/src/type-inference-verification/create-vincent-gated-signer-ability.d.ts.map +1 -0
- package/dist/src/type-inference-verification/create-vincent-gated-signer-ability.js +19 -0
- package/dist/src/type-inference-verification/create-vincent-gated-signer-ability.js.map +1 -0
- package/dist/src/type-inference-verification/parameter-inference-tests-tool.d.ts +58 -58
- package/dist/src/type-inference-verification/parameter-inference-tests.d.ts +5 -5
- package/dist/src/type-inference-verification/playground.d.ts +8 -8
- package/dist/src/type-inference-verification/schema-test.d.ts +5 -5
- package/package.json +8 -2
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import type { z } from 'zod';
|
|
3
|
+
import type { AbilityConfigLifecycleFunction } from '../../abilityCore/abilityConfig/types';
|
|
4
|
+
import type { LowLevelCall } from './lowLevelCall';
|
|
5
|
+
import type { SimulateAssetChangesResponse } from './simulation';
|
|
6
|
+
export interface DecodedTransactionError {
|
|
7
|
+
kind: 'error';
|
|
8
|
+
message: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DecodedTransactionSuccess extends Omit<LowLevelCall, 'data'> {
|
|
11
|
+
args: readonly unknown[] | undefined;
|
|
12
|
+
kind: string;
|
|
13
|
+
fn: string;
|
|
14
|
+
}
|
|
15
|
+
export type DecodedTransaction = DecodedTransactionSuccess | DecodedTransactionError;
|
|
16
|
+
interface ValidationBaseParams {
|
|
17
|
+
chainId: number;
|
|
18
|
+
sender: Address;
|
|
19
|
+
}
|
|
20
|
+
export interface DecodeTransactionParams {
|
|
21
|
+
transaction: LowLevelCall;
|
|
22
|
+
}
|
|
23
|
+
export interface ValidateSimulationParams extends ValidationBaseParams {
|
|
24
|
+
simulation: SimulateAssetChangesResponse;
|
|
25
|
+
}
|
|
26
|
+
export interface ValidateTransactionParams extends ValidationBaseParams {
|
|
27
|
+
decodedTransaction: DecodedTransaction;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Interface defining the steps required to implement the lifecycle of a Gated Signer Ability.
|
|
31
|
+
*/
|
|
32
|
+
export interface LifecycleFunctionSteps {
|
|
33
|
+
/**
|
|
34
|
+
* Decodes the transaction data into a more usable format.
|
|
35
|
+
*/
|
|
36
|
+
decodeTransaction: (params: DecodeTransactionParams) => DecodedTransaction;
|
|
37
|
+
/**
|
|
38
|
+
* Validates the result of the simulation.
|
|
39
|
+
* Should throw an error if the simulation result is invalid.
|
|
40
|
+
*/
|
|
41
|
+
validateSimulation: (params: ValidateSimulationParams) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Validates the decoded transaction.
|
|
44
|
+
* Should throw an error if the transaction is invalid.
|
|
45
|
+
*/
|
|
46
|
+
validateTransaction: (params: ValidateTransactionParams) => void;
|
|
47
|
+
}
|
|
48
|
+
interface LifecycleFunctions<AbilityParamsSchema extends z.ZodType, ExecutePolicies, PrecheckPolicies, ExecuteSuccessSchema extends z.ZodType, ExecuteFailSchema extends z.ZodType, PrecheckSuccessSchema extends z.ZodType, PrecheckFailSchema extends z.ZodType> {
|
|
49
|
+
execute: AbilityConfigLifecycleFunction<AbilityParamsSchema, ExecutePolicies, ExecuteSuccessSchema, ExecuteFailSchema>;
|
|
50
|
+
precheck: AbilityConfigLifecycleFunction<AbilityParamsSchema, PrecheckPolicies, PrecheckSuccessSchema, PrecheckFailSchema>;
|
|
51
|
+
}
|
|
52
|
+
export declare function buildLifecycleFunctions<AbilityParamsSchema extends z.ZodType, ExecutePolicies, PrecheckPolicies, ExecuteSuccessSchema extends z.ZodType, ExecuteFailSchema extends z.ZodType, PrecheckSuccessSchema extends z.ZodType, PrecheckFailSchema extends z.ZodType>({ decodeTransaction, validateSimulation, validateTransaction, }: LifecycleFunctionSteps): LifecycleFunctions<AbilityParamsSchema, ExecutePolicies, PrecheckPolicies, ExecuteSuccessSchema, ExecuteFailSchema, PrecheckSuccessSchema, PrecheckFailSchema>;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=lifecycleFunctions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycleFunctions.d.ts","sourceRoot":"","sources":["../../../../../src/lib/gatedSigner/helpers/lifecycleFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAOjE,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;IAC3E,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,kBAAkB,GAAG,yBAAyB,GAAG,uBAAuB,CAAC;AAErF,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,YAAY,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE,UAAU,EAAE,4BAA4B,CAAC;CAC1C;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,kBAAkB,CAAC;IAC3E;;;OAGG;IACH,kBAAkB,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC/D;;;OAGG;IACH,mBAAmB,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAClE;AAED,UAAU,kBAAkB,CAC1B,mBAAmB,SAAS,CAAC,CAAC,OAAO,EACrC,eAAe,EACf,gBAAgB,EAChB,oBAAoB,SAAS,CAAC,CAAC,OAAO,EACtC,iBAAiB,SAAS,CAAC,CAAC,OAAO,EACnC,qBAAqB,SAAS,CAAC,CAAC,OAAO,EACvC,kBAAkB,SAAS,CAAC,CAAC,OAAO;IAEpC,OAAO,EAAE,8BAA8B,CACrC,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,CAClB,CAAC;IACF,QAAQ,EAAE,8BAA8B,CACtC,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,CACnB,CAAC;CACH;AAED,wBAAgB,uBAAuB,CACrC,mBAAmB,SAAS,CAAC,CAAC,OAAO,EACrC,eAAe,EACf,gBAAgB,EAChB,oBAAoB,SAAS,CAAC,CAAC,OAAO,EACtC,iBAAiB,SAAS,CAAC,CAAC,OAAO,EACnC,qBAAqB,SAAS,CAAC,CAAC,OAAO,EACvC,kBAAkB,SAAS,CAAC,CAAC,OAAO,EACpC,EACA,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,EAAE,sBAAsB,GAAG,kBAAkB,CAC5C,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,CACnB,CAqHA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildLifecycleFunctions = buildLifecycleFunctions;
|
|
4
|
+
const schemas_1 = require("./schemas");
|
|
5
|
+
const signTransaction_1 = require("./signTransaction");
|
|
6
|
+
const signUserOperation_1 = require("./signUserOperation");
|
|
7
|
+
const validation_1 = require("./validation");
|
|
8
|
+
function buildLifecycleFunctions({ decodeTransaction, validateSimulation, validateTransaction, }) {
|
|
9
|
+
async function assertIsValidOperation(abilityParams) {
|
|
10
|
+
if ((0, schemas_1.isUserOpAbilityParams)(abilityParams)) {
|
|
11
|
+
const { alchemyRpcUrl, entryPointAddress, userOp } = abilityParams;
|
|
12
|
+
const simulationChanges = await (0, validation_1.assertIsValidUserOp)({
|
|
13
|
+
alchemyRpcUrl,
|
|
14
|
+
decodeTransaction,
|
|
15
|
+
entryPointAddress,
|
|
16
|
+
userOp,
|
|
17
|
+
validateSimulation,
|
|
18
|
+
validateTransaction,
|
|
19
|
+
});
|
|
20
|
+
return simulationChanges;
|
|
21
|
+
}
|
|
22
|
+
if ((0, schemas_1.isTransactionAbilityParams)(abilityParams)) {
|
|
23
|
+
const { alchemyRpcUrl, transaction } = abilityParams;
|
|
24
|
+
const simulationChanges = await (0, validation_1.assertIsValidTransaction)({
|
|
25
|
+
alchemyRpcUrl,
|
|
26
|
+
decodeTransaction,
|
|
27
|
+
transaction,
|
|
28
|
+
validateSimulation,
|
|
29
|
+
validateTransaction,
|
|
30
|
+
});
|
|
31
|
+
return simulationChanges;
|
|
32
|
+
}
|
|
33
|
+
throw new Error('Unsupported ability params payload. Must pass transaction or userOp');
|
|
34
|
+
}
|
|
35
|
+
const precheck = async ({ abilityParams }, { succeed, fail, delegation: { delegatorPkpInfo } }) => {
|
|
36
|
+
try {
|
|
37
|
+
console.log('[@lit-protocol/vincent-gated-signer]');
|
|
38
|
+
console.log('[@lit-protocol/vincent-gated-signer] params:', {
|
|
39
|
+
abilityParams,
|
|
40
|
+
});
|
|
41
|
+
console.log('[@lit-protocol/vincent-gated-signer] delegator:', {
|
|
42
|
+
delegatorPkpInfo,
|
|
43
|
+
});
|
|
44
|
+
const simulationChanges = await assertIsValidOperation(abilityParams);
|
|
45
|
+
return succeed({ simulationChanges });
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error('[@lit-protocol/vincent-gated-signer] Error:', error);
|
|
49
|
+
return fail({
|
|
50
|
+
error: `[@lit-protocol/vincent-gated-signer] Precheck failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const execute = async ({ abilityParams }, { succeed, fail, delegation: { delegatorPkpInfo } }) => {
|
|
55
|
+
try {
|
|
56
|
+
const simulationChanges = await assertIsValidOperation(abilityParams);
|
|
57
|
+
// Sign user operation
|
|
58
|
+
const { alchemyRpcUrl, eip712Params, entryPointAddress, safe4337ModuleAddress, transaction, userOp, validAfter, validUntil, } = abilityParams;
|
|
59
|
+
const signature = (0, schemas_1.isTransactionAbilityParams)(abilityParams)
|
|
60
|
+
? await (0, signTransaction_1.signTransaction)({
|
|
61
|
+
transaction,
|
|
62
|
+
pkpPublicKey: delegatorPkpInfo.publicKey,
|
|
63
|
+
})
|
|
64
|
+
: await (0, signUserOperation_1.signUserOperation)({
|
|
65
|
+
alchemyRpcUrl,
|
|
66
|
+
entryPointAddress,
|
|
67
|
+
userOp,
|
|
68
|
+
pkpPublicKey: delegatorPkpInfo.publicKey,
|
|
69
|
+
validAfter,
|
|
70
|
+
validUntil,
|
|
71
|
+
safe4337ModuleAddress,
|
|
72
|
+
eip712Params,
|
|
73
|
+
});
|
|
74
|
+
return succeed({
|
|
75
|
+
signature,
|
|
76
|
+
simulationChanges,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error('[@lit-protocol/vincent-gated-signer] Error:', error);
|
|
81
|
+
return fail({
|
|
82
|
+
error: `[@lit-protocol/vincent-gated-signer] Execute failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
execute,
|
|
88
|
+
precheck,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=lifecycleFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycleFunctions.js","sourceRoot":"","sources":["../../../../../src/lib/gatedSigner/helpers/lifecycleFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Address, Hex } from 'viem';
|
|
2
|
+
import type { UserOp } from './userOperation';
|
|
3
|
+
export interface LowLevelCall {
|
|
4
|
+
to: Address;
|
|
5
|
+
value: bigint;
|
|
6
|
+
data: Hex;
|
|
7
|
+
}
|
|
8
|
+
export interface DecodedFunctionCall<Args = unknown[] | null> {
|
|
9
|
+
functionName: string;
|
|
10
|
+
args: Args;
|
|
11
|
+
}
|
|
12
|
+
export declare const getUserOpCalls: (userOp: UserOp) => LowLevelCall[];
|
|
13
|
+
//# sourceMappingURL=lowLevelCall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lowLevelCall.d.ts","sourceRoot":"","sources":["../../../../../src/lib/gatedSigner/helpers/lowLevelCall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK9C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,IAAI;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,YAAY,EAiB3D,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUserOpCalls = void 0;
|
|
4
|
+
const kernel_1 = require("./smartAccounts/kernel");
|
|
5
|
+
const safe_1 = require("./smartAccounts/safe");
|
|
6
|
+
const getUserOpCalls = (userOp) => {
|
|
7
|
+
const callData = userOp.callData;
|
|
8
|
+
const kernelCalls = (0, kernel_1.tryDecodeKernelCalldataToLowLevelCalls)(callData);
|
|
9
|
+
const safeCalls = (0, safe_1.tryDecodeSafeCalldataToLowLevelCalls)(callData);
|
|
10
|
+
const decodedLowLevelCalls = [kernelCalls, safeCalls].filter(Boolean);
|
|
11
|
+
if (decodedLowLevelCalls.length > 1) {
|
|
12
|
+
throw new Error('Multiple decodings found');
|
|
13
|
+
}
|
|
14
|
+
else if (!decodedLowLevelCalls.length) {
|
|
15
|
+
throw new Error('Unsupported callData shape');
|
|
16
|
+
}
|
|
17
|
+
// Length is 1, we are good
|
|
18
|
+
return decodedLowLevelCalls[0];
|
|
19
|
+
};
|
|
20
|
+
exports.getUserOpCalls = getUserOpCalls;
|
|
21
|
+
//# sourceMappingURL=lowLevelCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lowLevelCall.js","sourceRoot":"","sources":["../../../../../src/lib/gatedSigner/helpers/lowLevelCall.ts"],"names":[],"mappings":";;;AAIA,mDAAgF;AAChF,+CAA4E;AAarE,MAAM,cAAc,GAAG,CAAC,MAAc,EAAkB,EAAE;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,MAAM,WAAW,GAAG,IAAA,+CAAsC,EAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAA,2CAAoC,EAAC,QAAQ,CAAC,CAAC;IAEjE,MAAM,oBAAoB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,MAAM,CAC1D,OAAO,CACuB,CAAC;IACjC,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,2BAA2B;IAC3B,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB"}
|