@kerneljs/presets
Advanced tools
Comparing version 0.0.1-alpha.2 to 0.0.1-alpha.3
@@ -22,12 +22,12 @@ "use strict"; | ||
}; | ||
async function createEcdsaKernelAccountClient({ chain, projectId, signer, provider, index, }) { | ||
async function createEcdsaKernelAccountClient({ chain, projectId, signer, provider, index, usePaymaster = true, }) { | ||
const publicClient = (0, viem_1.createPublicClient)({ | ||
transport: (0, viem_1.http)(getZeroDevBundlerRPC(projectId, provider)), | ||
transport: (0, viem_1.http)(getZeroDevBundlerRPC(projectId, provider)) | ||
}); | ||
const ecdsaValidator = await (0, ecdsa_validator_1.signerToEcdsaValidator)(publicClient, { | ||
signer, | ||
signer | ||
}); | ||
const account = await (0, core_1.createKernelAccount)(publicClient, { | ||
plugin: ecdsaValidator, | ||
index, | ||
index | ||
}); | ||
@@ -38,6 +38,6 @@ const kernelClient = (0, permissionless_1.createSmartAccountClient)({ | ||
transport: (0, viem_1.http)(getZeroDevBundlerRPC(projectId, provider)), | ||
sponsorUserOperation: async ({ userOperation }) => { | ||
sponsorUserOperation: usePaymaster ? (async ({ userOperation }) => { | ||
const kernelPaymaster = (0, core_1.createKernelPaymasterClient)({ | ||
chain: chain, | ||
transport: (0, viem_1.http)(getZeroDevPaymasterRPC(projectId, provider)), | ||
transport: (0, viem_1.http)(getZeroDevPaymasterRPC(projectId, provider)) | ||
}); | ||
@@ -47,3 +47,3 @@ return kernelPaymaster.sponsorUserOperation({ | ||
}); | ||
} | ||
}) : undefined | ||
}); | ||
@@ -50,0 +50,0 @@ return kernelClient; |
@@ -19,12 +19,12 @@ import { createKernelAccount, createKernelPaymasterClient } from "@kerneljs/core"; | ||
}; | ||
export async function createEcdsaKernelAccountClient({ chain, projectId, signer, provider, index, }) { | ||
export async function createEcdsaKernelAccountClient({ chain, projectId, signer, provider, index, usePaymaster = true, }) { | ||
const publicClient = createPublicClient({ | ||
transport: http(getZeroDevBundlerRPC(projectId, provider)), | ||
transport: http(getZeroDevBundlerRPC(projectId, provider)) | ||
}); | ||
const ecdsaValidator = await signerToEcdsaValidator(publicClient, { | ||
signer, | ||
signer | ||
}); | ||
const account = await createKernelAccount(publicClient, { | ||
plugin: ecdsaValidator, | ||
index, | ||
index | ||
}); | ||
@@ -35,6 +35,6 @@ const kernelClient = createSmartAccountClient({ | ||
transport: http(getZeroDevBundlerRPC(projectId, provider)), | ||
sponsorUserOperation: async ({ userOperation }) => { | ||
sponsorUserOperation: usePaymaster ? (async ({ userOperation }) => { | ||
const kernelPaymaster = createKernelPaymasterClient({ | ||
chain: chain, | ||
transport: http(getZeroDevPaymasterRPC(projectId, provider)), | ||
transport: http(getZeroDevPaymasterRPC(projectId, provider)) | ||
}); | ||
@@ -44,3 +44,3 @@ return kernelPaymaster.sponsorUserOperation({ | ||
}); | ||
} | ||
}) : undefined | ||
}); | ||
@@ -47,0 +47,0 @@ return kernelClient; |
import type { KernelSmartAccount } from "@kerneljs/core"; | ||
import type { SmartAccountClient } from "permissionless"; | ||
import type { SmartAccountSigner } from "permissionless/accounts"; | ||
import type { Chain, HttpTransport, Address } from "viem"; | ||
import type { Address, Chain, HttpTransport } from "viem"; | ||
export type Provider = "STACKUP" | "PIMLICO" | "ALCHEMY" | "GELATO"; | ||
export declare function createEcdsaKernelAccountClient<TChain extends Chain | undefined = Chain | undefined, TSource extends string = "custom", TAddress extends Address = Address>({ chain, projectId, signer, provider, index, }: { | ||
export declare function createEcdsaKernelAccountClient<TChain extends Chain | undefined = Chain | undefined, TSource extends string = "custom", TAddress extends Address = Address>({ chain, projectId, signer, provider, index, usePaymaster, }: { | ||
chain: TChain; | ||
@@ -12,3 +12,4 @@ projectId: string; | ||
index?: bigint; | ||
usePaymaster?: boolean; | ||
}): Promise<SmartAccountClient<HttpTransport, TChain, KernelSmartAccount<HttpTransport, TChain>>>; | ||
//# sourceMappingURL=index.d.ts.map |
{ | ||
"name": "@kerneljs/presets", | ||
"version": "0.0.1-alpha.2", | ||
"version": "0.0.1-alpha.3", | ||
"author": "ZeroDev", | ||
@@ -5,0 +5,0 @@ "main": "./_cjs/index.js", |
@@ -10,3 +10,3 @@ import type { KernelSmartAccount } from "@kerneljs/core" | ||
import type { SmartAccountSigner } from "permissionless/accounts" | ||
import type { Chain, HttpTransport, Address } from "viem" | ||
import type { Address, Chain, HttpTransport } from "viem" | ||
import { http, createPublicClient } from "viem" | ||
@@ -16,3 +16,6 @@ | ||
const getZeroDevBundlerRPC = (projectId: string, provider?: Provider): string => { | ||
const getZeroDevBundlerRPC = ( | ||
projectId: string, | ||
provider?: Provider | ||
): string => { | ||
let rpc = `https://rpc.zerodev.app/api/v2/bundler/${projectId}` | ||
@@ -25,3 +28,6 @@ if (provider) { | ||
const getZeroDevPaymasterRPC = (projectId: string, provider?: Provider): string => { | ||
const getZeroDevPaymasterRPC = ( | ||
projectId: string, | ||
provider?: Provider | ||
): string => { | ||
let rpc = `https://rpc.zerodev.app/api/v2/paymaster/${projectId}` | ||
@@ -37,3 +43,3 @@ if (provider) { | ||
TSource extends string = "custom", | ||
TAddress extends Address = Address, | ||
TAddress extends Address = Address | ||
>({ | ||
@@ -45,15 +51,23 @@ chain, | ||
index, | ||
usePaymaster = true, | ||
}: { | ||
chain: TChain, | ||
projectId: string, | ||
signer: SmartAccountSigner<TSource, TAddress>, | ||
provider?: Provider, | ||
index?: bigint, | ||
}): Promise<SmartAccountClient<HttpTransport, TChain, KernelSmartAccount<HttpTransport, TChain>>> { | ||
chain: TChain | ||
projectId: string | ||
signer: SmartAccountSigner<TSource, TAddress> | ||
provider?: Provider | ||
index?: bigint | ||
usePaymaster?: boolean | ||
}): Promise< | ||
SmartAccountClient< | ||
HttpTransport, | ||
TChain, | ||
KernelSmartAccount<HttpTransport, TChain> | ||
> | ||
> { | ||
const publicClient = createPublicClient({ | ||
transport: http(getZeroDevBundlerRPC(projectId, provider)), | ||
transport: http(getZeroDevBundlerRPC(projectId, provider)) | ||
}) | ||
const ecdsaValidator = await signerToEcdsaValidator(publicClient, { | ||
signer, | ||
signer | ||
}) | ||
@@ -63,3 +77,3 @@ | ||
plugin: ecdsaValidator, | ||
index, | ||
index | ||
}) | ||
@@ -71,6 +85,8 @@ | ||
transport: http(getZeroDevBundlerRPC(projectId, provider)), | ||
sponsorUserOperation: async ({ userOperation }): Promise<UserOperation> => { | ||
sponsorUserOperation: usePaymaster ? (async ({ | ||
userOperation | ||
}): Promise<UserOperation> => { | ||
const kernelPaymaster = createKernelPaymasterClient({ | ||
chain: chain, | ||
transport: http(getZeroDevPaymasterRPC(projectId, provider)), | ||
transport: http(getZeroDevPaymasterRPC(projectId, provider)) | ||
}) | ||
@@ -80,6 +96,10 @@ return kernelPaymaster.sponsorUserOperation({ | ||
}) | ||
} | ||
}) : undefined | ||
}) | ||
return kernelClient as SmartAccountClient<HttpTransport, TChain, KernelSmartAccount<HttpTransport, TChain>>; | ||
} | ||
return kernelClient as SmartAccountClient< | ||
HttpTransport, | ||
TChain, | ||
KernelSmartAccount<HttpTransport, TChain> | ||
> | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
13345
196