@deserialize/multi-vm-wallet 1.3.0 → 1.3.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/.claude/settings.local.json +8 -1
- package/dist/IChainWallet.d.ts +3 -3
- package/dist/evm/aa-service/index.d.ts +1 -1
- package/dist/evm/aa-service/index.js +1 -2
- package/dist/evm/aa-service/index.js.map +1 -1
- package/dist/evm/aa-service/lib/kernel-account.d.ts +1 -43
- package/dist/evm/aa-service/lib/kernel-account.js +21 -88
- package/dist/evm/aa-service/lib/kernel-account.js.map +1 -1
- package/dist/evm/aa-service/lib/type.d.ts +16 -0
- package/dist/evm/aa-service/lib/type.js.map +1 -1
- package/dist/evm/aa-service/services/account-abstraction.d.ts +4 -0
- package/dist/evm/aa-service/services/account-abstraction.js +12 -4
- package/dist/evm/aa-service/services/account-abstraction.js.map +1 -1
- package/dist/evm/aa-service/services/bundler.d.ts +4 -1
- package/dist/evm/aa-service/services/bundler.js +40 -7
- package/dist/evm/aa-service/services/bundler.js.map +1 -1
- package/dist/evm/evm.d.ts +3 -13
- package/dist/evm/evm.js +12 -80
- package/dist/evm/evm.js.map +1 -1
- package/dist/evm/smartWallet.d.ts +2 -19
- package/dist/evm/smartWallet.js +8 -68
- package/dist/evm/smartWallet.js.map +1 -1
- package/dist/evm/utils.js +2 -1
- package/dist/evm/utils.js.map +1 -1
- package/dist/helpers/index.d.ts +6 -1
- package/dist/helpers/index.js +116 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/svm/svm.d.ts +3 -3
- package/dist/svm/svm.js +6 -17
- package/dist/svm/svm.js.map +1 -1
- package/dist/svm/utils.d.ts +2 -2
- package/dist/svm/utils.js +4 -4
- package/dist/svm/utils.js.map +1 -1
- package/dist/test.d.ts +4 -0
- package/dist/test.js +66 -21
- package/dist/test.js.map +1 -1
- package/dist/types.d.ts +14 -16
- package/dist/types.js.map +1 -1
- package/package.json +7 -1
- package/utils/IChainWallet.ts +3 -3
- package/utils/evm/aa-service/index.ts +1 -2
- package/utils/evm/aa-service/lib/kernel-account.ts +22 -128
- package/utils/evm/aa-service/lib/type.ts +17 -0
- package/utils/evm/aa-service/services/account-abstraction.ts +18 -4
- package/utils/evm/aa-service/services/bundler.ts +53 -11
- package/utils/evm/evm.ts +13 -110
- package/utils/evm/smartWallet.ts +10 -88
- package/utils/evm/utils.ts +2 -1
- package/utils/helpers/index.ts +138 -1
- package/utils/svm/svm.ts +7 -25
- package/utils/svm/utils.ts +4 -10
- package/utils/test.ts +85 -21
- package/utils/types.ts +15 -17
- package/utils/evm/SMART_WALLET_EXAMPLES.ts.bak +0 -591
|
@@ -4,7 +4,14 @@
|
|
|
4
4
|
"Bash(tree:*)",
|
|
5
5
|
"Bash(cat:*)",
|
|
6
6
|
"Bash(npm run build:*)",
|
|
7
|
-
"Bash(timeout 60 npm run build:*)"
|
|
7
|
+
"Bash(timeout 60 npm run build:*)",
|
|
8
|
+
"Bash(npx ts-node:*)",
|
|
9
|
+
"Bash(npm install:*)",
|
|
10
|
+
"Bash(timeout 60 npm run build:test:*)",
|
|
11
|
+
"Bash(npm run build:test:*)",
|
|
12
|
+
"Bash(wait)",
|
|
13
|
+
"WebSearch",
|
|
14
|
+
"WebFetch(domain:docs.pimlico.io)"
|
|
8
15
|
],
|
|
9
16
|
"deny": [],
|
|
10
17
|
"ask": []
|
package/dist/IChainWallet.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EVMTransactionHistoryItem } from "./evm/transactionParsing";
|
|
2
2
|
import { SVMTransactionHistoryItem } from "./svm/transactionParsing";
|
|
3
|
-
import { Balance, ChainWalletConfig, TokenInfo, TransactionResult, UserTokenBalance, NFT
|
|
3
|
+
import { Balance, ChainWalletConfig, TokenInfo, TransactionResult, UserTokenBalance, NFT } from "./types";
|
|
4
4
|
export declare abstract class ChainWallet<AddressType, PrivateKeyType, ConnectionType> {
|
|
5
5
|
protected privateKey: PrivateKeyType;
|
|
6
6
|
config: ChainWalletConfig;
|
|
@@ -11,8 +11,8 @@ export declare abstract class ChainWallet<AddressType, PrivateKeyType, Connectio
|
|
|
11
11
|
abstract generateAddress(privateKey: PrivateKeyType): AddressType;
|
|
12
12
|
abstract getNativeBalance(): Promise<Balance>;
|
|
13
13
|
abstract getTokenBalance(tokenAddress: AddressType): Promise<Balance>;
|
|
14
|
-
abstract transferNative(to: AddressType, amount: number
|
|
15
|
-
abstract transferToken(tokenAddress: TokenInfo, to: AddressType, amount: number
|
|
14
|
+
abstract transferNative(to: AddressType, amount: number): Promise<TransactionResult>;
|
|
15
|
+
abstract transferToken(tokenAddress: TokenInfo, to: AddressType, amount: number): Promise<TransactionResult>;
|
|
16
16
|
abstract swap(tokenAddress: TokenInfo, to: AddressType, amount: number, slippage?: number): Promise<TransactionResult>;
|
|
17
17
|
abstract discoverToken(): Promise<UserTokenBalance<AddressType>[]>;
|
|
18
18
|
abstract discoverNFT(): Promise<NFT[]>;
|
|
@@ -8,7 +8,7 @@ export type { AAServiceConfig, CreateAccountOptions, SendTransactionOptions, Sen
|
|
|
8
8
|
export * from './lib/type';
|
|
9
9
|
export { BundlerManager, createBundlerManager, createBundlerService } from './services/bundler';
|
|
10
10
|
export type { BundlerConfig, BundlerService } from './services/bundler';
|
|
11
|
-
export { createKernel7702Account, createKernelAuthorization, sendKernelTransaction, sendBatchTransaction, waitForKernelReceipt
|
|
11
|
+
export { createKernel7702Account, createKernelAuthorization, sendKernelTransaction, sendBatchTransaction, waitForKernelReceipt } from './lib/kernel-account';
|
|
12
12
|
export { prepareInstallModule, prepareUninstallModule, prepareInstallSessionKey, prepareRevokeSessionKey, prepareInstallMultiSigValidator, installModule, uninstallModule, isModuleInstalled, createSessionKey, revokeSessionKey, installMultiSigValidator, MODULE_TYPE_IDS } from './lib/kernel-modules';
|
|
13
13
|
export type { ModuleType, InstallModuleConfig, UninstallModuleConfig, ModuleStatus, SessionKeyPermission, CreateSessionKeyConfig } from './lib/kernel-modules';
|
|
14
14
|
export { generateSessionKey, recreateSessionKey, createSessionKeyApproval, deserializeSessionKey, createSessionKeyClient, createUSDCTransferPermission, createETHTransferPermission } from './lib/session-keys';
|
|
@@ -19,7 +19,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.adaptSessionKeyAccount = exports.adaptZeroDevAccount = exports.createETHTransferPermission = exports.createUSDCTransferPermission = exports.createSessionKeyClient = exports.deserializeSessionKey = exports.createSessionKeyApproval = exports.recreateSessionKey = exports.generateSessionKey = exports.MODULE_TYPE_IDS = exports.installMultiSigValidator = exports.revokeSessionKey = exports.createSessionKey = exports.isModuleInstalled = exports.uninstallModule = exports.installModule = exports.prepareInstallMultiSigValidator = exports.prepareRevokeSessionKey = exports.prepareInstallSessionKey = exports.prepareUninstallModule = exports.prepareInstallModule = exports.
|
|
22
|
+
exports.adaptSessionKeyAccount = exports.adaptZeroDevAccount = exports.createETHTransferPermission = exports.createUSDCTransferPermission = exports.createSessionKeyClient = exports.deserializeSessionKey = exports.createSessionKeyApproval = exports.recreateSessionKey = exports.generateSessionKey = exports.MODULE_TYPE_IDS = exports.installMultiSigValidator = exports.revokeSessionKey = exports.createSessionKey = exports.isModuleInstalled = exports.uninstallModule = exports.installModule = exports.prepareInstallMultiSigValidator = exports.prepareRevokeSessionKey = exports.prepareInstallSessionKey = exports.prepareUninstallModule = exports.prepareInstallModule = exports.waitForKernelReceipt = exports.sendBatchTransaction = exports.sendKernelTransaction = exports.createKernelAuthorization = exports.createKernel7702Account = exports.createBundlerService = exports.createBundlerManager = exports.BundlerManager = exports.AccountAbstractionService = void 0;
|
|
23
23
|
// Singleton Service (Primary Interface)
|
|
24
24
|
var account_abstraction_1 = require("./services/account-abstraction");
|
|
25
25
|
Object.defineProperty(exports, "AccountAbstractionService", { enumerable: true, get: function () { return account_abstraction_1.AccountAbstractionService; } });
|
|
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "createKernelAuthorization", { enumerable: true,
|
|
|
36
36
|
Object.defineProperty(exports, "sendKernelTransaction", { enumerable: true, get: function () { return kernel_account_1.sendKernelTransaction; } });
|
|
37
37
|
Object.defineProperty(exports, "sendBatchTransaction", { enumerable: true, get: function () { return kernel_account_1.sendBatchTransaction; } });
|
|
38
38
|
Object.defineProperty(exports, "waitForKernelReceipt", { enumerable: true, get: function () { return kernel_account_1.waitForKernelReceipt; } });
|
|
39
|
-
Object.defineProperty(exports, "sendSponsoredBatchTransaction", { enumerable: true, get: function () { return kernel_account_1.sendSponsoredBatchTransaction; } });
|
|
40
39
|
// Module Management (ERC-7579)
|
|
41
40
|
var kernel_modules_1 = require("./lib/kernel-modules");
|
|
42
41
|
// Prepare functions (for batching)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/evm/aa-service/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,wCAAwC;AACxC,sEAA2E;AAAlE,gIAAA,yBAAyB,OAAA;AASlC,6CAA0B;AAE1B,oCAAoC;AACpC,8CAI4B;AAHxB,yGAAA,cAAc,OAAA;AACd,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AAIxB,4CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/evm/aa-service/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,wCAAwC;AACxC,sEAA2E;AAAlE,gIAAA,yBAAyB,OAAA;AASlC,6CAA0B;AAE1B,oCAAoC;AACpC,8CAI4B;AAHxB,yGAAA,cAAc,OAAA;AACd,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AAIxB,4CAA4C;AAC5C,uDAM8B;AAL1B,yHAAA,uBAAuB,OAAA;AACvB,2HAAA,yBAAyB,OAAA;AACzB,uHAAA,qBAAqB,OAAA;AACrB,sHAAA,oBAAoB,OAAA;AACpB,sHAAA,oBAAoB,OAAA;AAIxB,+BAA+B;AAC/B,uDAe8B;AAd1B,mCAAmC;AACnC,sHAAA,oBAAoB,OAAA;AACpB,wHAAA,sBAAsB,OAAA;AACtB,0HAAA,wBAAwB,OAAA;AACxB,yHAAA,uBAAuB,OAAA;AACvB,iIAAA,+BAA+B,OAAA;AAC/B,0CAA0C;AAC1C,+GAAA,aAAa,OAAA;AACb,iHAAA,eAAe,OAAA;AACf,mHAAA,iBAAiB,OAAA;AACjB,kHAAA,gBAAgB,OAAA;AAChB,kHAAA,gBAAgB,OAAA;AAChB,0HAAA,wBAAwB,OAAA;AACxB,iHAAA,eAAe,OAAA;AAWnB,sCAAsC;AACtC,mDAQ4B;AAPxB,kHAAA,kBAAkB,OAAA;AAClB,kHAAA,kBAAkB,OAAA;AAClB,wHAAA,wBAAwB,OAAA;AACxB,qHAAA,qBAAqB,OAAA;AACrB,sHAAA,sBAAsB,OAAA;AACtB,4HAAA,4BAA4B,OAAA;AAC5B,2HAAA,2BAA2B,OAAA;AAS/B,yCAAyC;AACzC,yDAG+B;AAF3B,sHAAA,mBAAmB,OAAA;AACnB,yHAAA,sBAAsB,OAAA"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { Chain, Hex, SignAuthorizationReturnType } from 'viem';
|
|
8
8
|
import { PrivateKeyAccount } from 'viem/accounts';
|
|
9
9
|
import { BundlerManager } from '../services/bundler';
|
|
10
|
-
import { BatchTransactionConfig,
|
|
10
|
+
import { BatchTransactionConfig, KernelAccountConfig, KernelAccountInstance, KernelVersion, SingleTransactionConfig } from './type';
|
|
11
11
|
export type { Call, KernelAccountInstance, EntryPointVersion, KernelVersion, KernelAccountConfig, BatchTransactionConfig, SingleTransactionConfig } from './type';
|
|
12
12
|
export declare function createKernel7702Account(config: KernelAccountConfig): Promise<KernelAccountInstance>;
|
|
13
13
|
export declare function createKernelAuthorization(config: {
|
|
@@ -47,45 +47,3 @@ export declare function waitForKernelReceipt(config: {
|
|
|
47
47
|
chain: Chain;
|
|
48
48
|
bundlerManager: BundlerManager;
|
|
49
49
|
}): Promise<any>;
|
|
50
|
-
/**
|
|
51
|
-
* Configuration for sponsored batch transaction
|
|
52
|
-
*/
|
|
53
|
-
export interface SponsoredBatchTransactionConfig {
|
|
54
|
-
ownerAuthorization: SignAuthorizationReturnType;
|
|
55
|
-
calls: Call[];
|
|
56
|
-
feePayerPrivateKey: Hex;
|
|
57
|
-
bundlerUrl: string;
|
|
58
|
-
paymasterUrl?: string;
|
|
59
|
-
chain: Chain;
|
|
60
|
-
entryPointVersion?: EntryPointVersion;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Send sponsored batch transaction using EIP-7702
|
|
64
|
-
*
|
|
65
|
-
* Allows a feePayer wallet to pay gas fees for another wallet's transaction.
|
|
66
|
-
* The transaction executes from the owner's address, but gas is paid by the feePayer.
|
|
67
|
-
*
|
|
68
|
-
* @param config - Sponsored transaction configuration
|
|
69
|
-
* @returns UserOperation hash and transaction hash
|
|
70
|
-
*
|
|
71
|
-
* @example
|
|
72
|
-
* // Owner creates authorization
|
|
73
|
-
* const authorization = await createKernelAuthorization({
|
|
74
|
-
* owner: ownerAccount,
|
|
75
|
-
* chain,
|
|
76
|
-
* bundlerManager
|
|
77
|
-
* });
|
|
78
|
-
*
|
|
79
|
-
* // FeePayer sends transaction
|
|
80
|
-
* const result = await sendSponsoredBatchTransaction({
|
|
81
|
-
* ownerAuthorization: authorization,
|
|
82
|
-
* calls: [{ to: recipient, value: parseEther('0.1') }],
|
|
83
|
-
* feePayerPrivateKey: sponsorPrivateKey,
|
|
84
|
-
* bundlerUrl,
|
|
85
|
-
* chain
|
|
86
|
-
* });
|
|
87
|
-
*/
|
|
88
|
-
export declare function sendSponsoredBatchTransaction(config: SponsoredBatchTransactionConfig): Promise<{
|
|
89
|
-
userOpHash: Hex;
|
|
90
|
-
transactionHash?: string;
|
|
91
|
-
}>;
|
|
@@ -11,13 +11,10 @@ exports.createKernelAuthorization = createKernelAuthorization;
|
|
|
11
11
|
exports.sendBatchTransaction = sendBatchTransaction;
|
|
12
12
|
exports.sendKernelTransaction = sendKernelTransaction;
|
|
13
13
|
exports.waitForKernelReceipt = waitForKernelReceipt;
|
|
14
|
-
exports.sendSponsoredBatchTransaction = sendSponsoredBatchTransaction;
|
|
15
14
|
const viem_1 = require("viem");
|
|
16
|
-
const accounts_1 = require("viem/accounts");
|
|
17
15
|
const sdk_1 = require("@zerodev/sdk");
|
|
18
16
|
const constants_1 = require("@zerodev/sdk/constants");
|
|
19
17
|
const account_abstraction_1 = require("viem/account-abstraction");
|
|
20
|
-
const bundler_1 = require("../services/bundler");
|
|
21
18
|
// ============================================
|
|
22
19
|
// EntryPoint Mapping
|
|
23
20
|
// ============================================
|
|
@@ -29,17 +26,33 @@ const ENTRYPOINT_MAP = {
|
|
|
29
26
|
// Kernel Account Factory
|
|
30
27
|
// ============================================
|
|
31
28
|
async function createKernel7702Account(config) {
|
|
32
|
-
const { chain, owner, bundlerManager, entryPointVersion = '0.7', kernelVersion = '0.3.3' } = config;
|
|
29
|
+
const { chain, owner, bundlerManager, entryPointVersion = '0.7', kernelVersion = '0.3.3', aaConfig } = config;
|
|
33
30
|
// Create public client for standard RPC calls
|
|
34
31
|
// (Bundler clients don't support standard eth_* methods)
|
|
35
32
|
const publicClient = (0, viem_1.createPublicClient)({
|
|
36
33
|
chain,
|
|
37
34
|
transport: (0, viem_1.http)()
|
|
38
35
|
});
|
|
39
|
-
// Get EntryPoint address
|
|
40
|
-
|
|
41
|
-
if (
|
|
42
|
-
|
|
36
|
+
// Get EntryPoint address from aaConfig or fallback to default
|
|
37
|
+
let entryPointAddress;
|
|
38
|
+
if (aaConfig && aaConfig.entryPoints.length > 0) {
|
|
39
|
+
// Find matching entry point from config
|
|
40
|
+
const entryPoint = aaConfig.entryPoints.find(ep => ep.version === entryPointVersion);
|
|
41
|
+
if (entryPoint) {
|
|
42
|
+
entryPointAddress = entryPoint.address;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Fallback to first entry point if version not found
|
|
46
|
+
console.warn(`EntryPoint version ${entryPointVersion} not found in aaConfig, using first available`);
|
|
47
|
+
entryPointAddress = aaConfig.entryPoints[0].address;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Fallback to hardcoded map if no config
|
|
52
|
+
entryPointAddress = ENTRYPOINT_MAP[entryPointVersion];
|
|
53
|
+
if (!entryPointAddress) {
|
|
54
|
+
throw new Error(`Unsupported EntryPoint version: ${entryPointVersion}`);
|
|
55
|
+
}
|
|
43
56
|
}
|
|
44
57
|
// Create Kernel account with EIP-7702
|
|
45
58
|
// Use public client for account creation (needs eth_call, eth_getCode, etc.)
|
|
@@ -168,84 +181,4 @@ async function waitForKernelReceipt(config) {
|
|
|
168
181
|
});
|
|
169
182
|
return receipt;
|
|
170
183
|
}
|
|
171
|
-
/**
|
|
172
|
-
* Send sponsored batch transaction using EIP-7702
|
|
173
|
-
*
|
|
174
|
-
* Allows a feePayer wallet to pay gas fees for another wallet's transaction.
|
|
175
|
-
* The transaction executes from the owner's address, but gas is paid by the feePayer.
|
|
176
|
-
*
|
|
177
|
-
* @param config - Sponsored transaction configuration
|
|
178
|
-
* @returns UserOperation hash and transaction hash
|
|
179
|
-
*
|
|
180
|
-
* @example
|
|
181
|
-
* // Owner creates authorization
|
|
182
|
-
* const authorization = await createKernelAuthorization({
|
|
183
|
-
* owner: ownerAccount,
|
|
184
|
-
* chain,
|
|
185
|
-
* bundlerManager
|
|
186
|
-
* });
|
|
187
|
-
*
|
|
188
|
-
* // FeePayer sends transaction
|
|
189
|
-
* const result = await sendSponsoredBatchTransaction({
|
|
190
|
-
* ownerAuthorization: authorization,
|
|
191
|
-
* calls: [{ to: recipient, value: parseEther('0.1') }],
|
|
192
|
-
* feePayerPrivateKey: sponsorPrivateKey,
|
|
193
|
-
* bundlerUrl,
|
|
194
|
-
* chain
|
|
195
|
-
* });
|
|
196
|
-
*/
|
|
197
|
-
async function sendSponsoredBatchTransaction(config) {
|
|
198
|
-
const { ownerAuthorization, calls, feePayerPrivateKey, bundlerUrl, paymasterUrl, chain, entryPointVersion = '0.7' } = config;
|
|
199
|
-
if (calls.length === 0) {
|
|
200
|
-
throw new Error('Sponsored transaction must have at least one call');
|
|
201
|
-
}
|
|
202
|
-
// Create feePayer account
|
|
203
|
-
const feePayerAccount = (0, accounts_1.privateKeyToAccount)(feePayerPrivateKey);
|
|
204
|
-
// Create bundler service for feePayer
|
|
205
|
-
const feePayerBundlerService = (0, bundler_1.createBundlerService)({
|
|
206
|
-
provider: "custom",
|
|
207
|
-
customUrl: bundlerUrl,
|
|
208
|
-
chain
|
|
209
|
-
});
|
|
210
|
-
// Get bundler client (uses feePayer account internally)
|
|
211
|
-
const bundlerClient = feePayerBundlerService.getClient(chain);
|
|
212
|
-
// Create kernel account for feePayer (needed for sendUserOperation)
|
|
213
|
-
const publicClient = (0, viem_1.createPublicClient)({
|
|
214
|
-
chain,
|
|
215
|
-
transport: (0, viem_1.http)(chain.rpcUrls.default.http[0])
|
|
216
|
-
});
|
|
217
|
-
const entryPointAddress = ENTRYPOINT_MAP[entryPointVersion];
|
|
218
|
-
if (!entryPointAddress) {
|
|
219
|
-
throw new Error(`Unsupported EntryPoint version: ${entryPointVersion}`);
|
|
220
|
-
}
|
|
221
|
-
const feePayerKernelAccount = await (0, sdk_1.createKernelAccount)(publicClient, {
|
|
222
|
-
entryPoint: {
|
|
223
|
-
address: entryPointAddress,
|
|
224
|
-
version: entryPointVersion
|
|
225
|
-
},
|
|
226
|
-
kernelVersion: constants_1.KERNEL_V3_3,
|
|
227
|
-
eip7702Account: feePayerAccount
|
|
228
|
-
});
|
|
229
|
-
// Normalize calls
|
|
230
|
-
const normalizedCalls = calls.map(call => ({
|
|
231
|
-
to: call.to,
|
|
232
|
-
value: call.value ?? 0n,
|
|
233
|
-
data: call.data ?? '0x'
|
|
234
|
-
}));
|
|
235
|
-
// Send UserOperation with owner's authorization
|
|
236
|
-
// The transaction executes from owner's address, but feePayer pays gas
|
|
237
|
-
const userOpHash = await bundlerClient.sendUserOperation({
|
|
238
|
-
account: feePayerKernelAccount,
|
|
239
|
-
authorization: ownerAuthorization,
|
|
240
|
-
calls: normalizedCalls
|
|
241
|
-
});
|
|
242
|
-
// Wait for receipt
|
|
243
|
-
const receipt = await bundlerClient.waitForUserOperationReceipt({
|
|
244
|
-
hash: userOpHash
|
|
245
|
-
});
|
|
246
|
-
return {
|
|
247
|
-
userOpHash: userOpHash,
|
|
248
|
-
transactionHash: receipt?.receipt?.transactionHash
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
184
|
//# sourceMappingURL=kernel-account.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-account.js","sourceRoot":"","sources":["../../../../utils/evm/aa-service/lib/kernel-account.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAoCH,
|
|
1
|
+
{"version":3,"file":"kernel-account.js","sourceRoot":"","sources":["../../../../utils/evm/aa-service/lib/kernel-account.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,7 @@ export interface KernelAccountConfig {
|
|
|
49
49
|
bundlerManager: BundlerManager;
|
|
50
50
|
entryPointVersion?: EntryPointVersion;
|
|
51
51
|
kernelVersion?: KernelVersion;
|
|
52
|
+
aaConfig?: AA_SupportConfig;
|
|
52
53
|
}
|
|
53
54
|
export interface KernelAccountInstance {
|
|
54
55
|
account: any;
|
|
@@ -60,7 +61,22 @@ export interface KernelAccountInstance {
|
|
|
60
61
|
version: EntryPointVersion;
|
|
61
62
|
};
|
|
62
63
|
}
|
|
64
|
+
export interface AA_SupportConfig {
|
|
65
|
+
enabled: boolean;
|
|
66
|
+
entryPoints: {
|
|
67
|
+
address: string;
|
|
68
|
+
version: EntryPointVersion;
|
|
69
|
+
}[];
|
|
70
|
+
bundlerUrl: string;
|
|
71
|
+
paymasterUrl: string;
|
|
72
|
+
kernelImplementations: {
|
|
73
|
+
address: string;
|
|
74
|
+
version: number;
|
|
75
|
+
}[];
|
|
76
|
+
}
|
|
63
77
|
export interface SmartWalletOptions {
|
|
78
|
+
/** Full AA support configuration from chain config */
|
|
79
|
+
aaConfig?: AA_SupportConfig;
|
|
64
80
|
/** Bundler URL for submitting UserOperations */
|
|
65
81
|
bundlerUrl?: string;
|
|
66
82
|
/** Paymaster URL for gas sponsorship (optional) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../utils/evm/aa-service/lib/type.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../utils/evm/aa-service/lib/type.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsNH,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C,MAAa,gBAAiB,SAAQ,KAAK;IACvC,IAAI,CAAS;IAEb,YAAY,OAAe,EAAE,OAAe,oBAAoB;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AARD,4CAQC;AAED,MAAa,eAAgB,SAAQ,gBAAgB;IACjD,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AALD,0CAKC;AAED,MAAa,WAAY,SAAQ,gBAAgB;IAC7C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC9B,CAAC;CACJ;AALD,kCAKC;AAED,MAAa,gBAAiB,SAAQ,gBAAgB;IAClD,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACnC,CAAC;CACJ;AALD,4CAKC"}
|
|
@@ -21,15 +21,18 @@ import { KernelAccountInstance, EntryPointVersion, Call } from '../lib/kernel-ac
|
|
|
21
21
|
import { ModuleType, SessionKeyPermission } from '../lib/kernel-modules';
|
|
22
22
|
import { SessionKeyInfo, SessionKeyPermissionRule } from '../lib/session-keys';
|
|
23
23
|
import { ModularSigner } from '@zerodev/permissions';
|
|
24
|
+
import { AA_SupportConfig } from '../lib/type';
|
|
24
25
|
export interface AAServiceConfig {
|
|
25
26
|
bundlerProvider: 'pimlico' | 'etherspot' | 'custom';
|
|
26
27
|
apiKey?: string;
|
|
27
28
|
customBundlerUrl?: string;
|
|
29
|
+
aaConfig?: AA_SupportConfig;
|
|
28
30
|
}
|
|
29
31
|
export interface CreateAccountOptions {
|
|
30
32
|
chain: Chain;
|
|
31
33
|
owner: PrivateKeyAccount;
|
|
32
34
|
entryPointVersion?: EntryPointVersion;
|
|
35
|
+
aaConfig?: AA_SupportConfig;
|
|
33
36
|
}
|
|
34
37
|
export interface SendTransactionOptions {
|
|
35
38
|
account: KernelAccountInstance;
|
|
@@ -50,6 +53,7 @@ export interface WaitForReceiptOptions {
|
|
|
50
53
|
export declare class AccountAbstractionService {
|
|
51
54
|
private static instance;
|
|
52
55
|
private bundlerManager;
|
|
56
|
+
private aaConfig;
|
|
53
57
|
private accountCache;
|
|
54
58
|
private authorizationCache;
|
|
55
59
|
private publicClientCache;
|
|
@@ -27,6 +27,7 @@ const session_keys_1 = require("../lib/session-keys");
|
|
|
27
27
|
class AccountAbstractionService {
|
|
28
28
|
static instance = null;
|
|
29
29
|
bundlerManager;
|
|
30
|
+
aaConfig;
|
|
30
31
|
accountCache = new Map();
|
|
31
32
|
authorizationCache = new Map();
|
|
32
33
|
publicClientCache = new Map();
|
|
@@ -37,9 +38,11 @@ class AccountAbstractionService {
|
|
|
37
38
|
const bundlerConfig = {
|
|
38
39
|
provider: config.bundlerProvider,
|
|
39
40
|
apiKey: config.apiKey,
|
|
40
|
-
customUrl: config.customBundlerUrl
|
|
41
|
+
customUrl: config.customBundlerUrl,
|
|
42
|
+
aaConfig: config.aaConfig
|
|
41
43
|
};
|
|
42
44
|
this.bundlerManager = (0, bundler_1.createBundlerManager)(bundlerConfig);
|
|
45
|
+
this.aaConfig = config.aaConfig;
|
|
43
46
|
}
|
|
44
47
|
/**
|
|
45
48
|
* Get singleton instance
|
|
@@ -66,9 +69,11 @@ class AccountAbstractionService {
|
|
|
66
69
|
const bundlerConfig = {
|
|
67
70
|
provider: config.bundlerProvider,
|
|
68
71
|
apiKey: config.apiKey,
|
|
69
|
-
customUrl: config.customBundlerUrl
|
|
72
|
+
customUrl: config.customBundlerUrl,
|
|
73
|
+
aaConfig: config.aaConfig
|
|
70
74
|
};
|
|
71
75
|
this.bundlerManager = (0, bundler_1.createBundlerManager)(bundlerConfig);
|
|
76
|
+
this.aaConfig = config.aaConfig;
|
|
72
77
|
this.clearCache();
|
|
73
78
|
}
|
|
74
79
|
// ============================================
|
|
@@ -78,18 +83,21 @@ class AccountAbstractionService {
|
|
|
78
83
|
* Create a Kernel 7702 account
|
|
79
84
|
*/
|
|
80
85
|
async createAccount(options) {
|
|
81
|
-
const { chain, owner, entryPointVersion = '0.7' } = options;
|
|
86
|
+
const { chain, owner, entryPointVersion = '0.7', aaConfig } = options;
|
|
82
87
|
const cacheKey = this.getAccountCacheKey(chain, owner, entryPointVersion);
|
|
83
88
|
// Return cached account if exists
|
|
84
89
|
if (this.accountCache.has(cacheKey)) {
|
|
85
90
|
return this.accountCache.get(cacheKey);
|
|
86
91
|
}
|
|
92
|
+
// Use aaConfig from options or fallback to service-level config
|
|
93
|
+
const config = aaConfig || this.aaConfig;
|
|
87
94
|
// Create new account
|
|
88
95
|
const account = await (0, kernel_account_1.createKernel7702Account)({
|
|
89
96
|
chain,
|
|
90
97
|
owner,
|
|
91
98
|
bundlerManager: this.bundlerManager,
|
|
92
|
-
entryPointVersion
|
|
99
|
+
entryPointVersion,
|
|
100
|
+
aaConfig: config
|
|
93
101
|
});
|
|
94
102
|
// Cache and return
|
|
95
103
|
this.accountCache.set(cacheKey, account);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-abstraction.js","sourceRoot":"","sources":["../../../../utils/evm/aa-service/services/account-abstraction.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,+BAA0E;AAG1E,uCAAgF;AAChF,0DAS+B;AAC/B,0DAc+B;AAC/B,sDAU6B;
|
|
1
|
+
{"version":3,"file":"account-abstraction.js","sourceRoot":"","sources":["../../../../utils/evm/aa-service/services/account-abstraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,18 @@
|
|
|
5
5
|
* and provides unified interface for bundler operations.
|
|
6
6
|
*/
|
|
7
7
|
import { Chain } from 'viem';
|
|
8
|
+
import { BundlerClient } from 'viem/account-abstraction';
|
|
8
9
|
export type BundlerProvider = 'pimlico' | 'etherspot' | 'custom';
|
|
10
|
+
import type { AA_SupportConfig } from '../lib/type';
|
|
9
11
|
export interface BundlerConfig {
|
|
10
12
|
provider: BundlerProvider;
|
|
11
13
|
apiKey?: string;
|
|
12
14
|
customUrl?: string;
|
|
13
15
|
chain?: Chain;
|
|
16
|
+
aaConfig?: AA_SupportConfig;
|
|
14
17
|
}
|
|
15
18
|
export interface BundlerService {
|
|
16
|
-
getClient(chain: Chain):
|
|
19
|
+
getClient(chain: Chain): BundlerClient;
|
|
17
20
|
getBundlerUrl(chain: Chain): string;
|
|
18
21
|
getProvider(): string;
|
|
19
22
|
}
|
|
@@ -11,28 +11,61 @@ exports.createBundlerManager = createBundlerManager;
|
|
|
11
11
|
exports.createBundlerService = createBundlerService;
|
|
12
12
|
const viem_1 = require("viem");
|
|
13
13
|
const account_abstraction_1 = require("viem/account-abstraction");
|
|
14
|
+
const pimlico_1 = require("permissionless/clients/pimlico");
|
|
14
15
|
// ============================================
|
|
15
16
|
// Pimlico Bundler
|
|
16
17
|
// ============================================
|
|
17
18
|
class PimlicoBundler {
|
|
18
19
|
apiKey;
|
|
19
20
|
clientCache = new Map();
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
url;
|
|
22
|
+
aaConfig;
|
|
23
|
+
constructor(apiKey, url, aaConfig) {
|
|
24
|
+
this.url = url;
|
|
24
25
|
this.apiKey = apiKey;
|
|
26
|
+
this.aaConfig = aaConfig;
|
|
25
27
|
}
|
|
26
28
|
getBundlerUrl(chain) {
|
|
29
|
+
if (!this.apiKey) {
|
|
30
|
+
return this.url;
|
|
31
|
+
}
|
|
27
32
|
return `https://api.pimlico.io/v2/${chain.id}/rpc?apikey=${this.apiKey}`;
|
|
28
33
|
}
|
|
29
34
|
getClient(chain) {
|
|
30
35
|
if (this.clientCache.has(chain.id)) {
|
|
31
36
|
return this.clientCache.get(chain.id);
|
|
32
37
|
}
|
|
38
|
+
const bundlerUrl = this.getBundlerUrl(chain);
|
|
39
|
+
// Get entryPoint from aaConfig or fallback to default
|
|
40
|
+
let entryPointAddress;
|
|
41
|
+
let entryPointVersion = '0.7';
|
|
42
|
+
if (this.aaConfig && this.aaConfig.entryPoints.length > 0) {
|
|
43
|
+
// Use first entry point from config (could be enhanced to select by version)
|
|
44
|
+
const ep = this.aaConfig.entryPoints[0];
|
|
45
|
+
entryPointAddress = ep.address;
|
|
46
|
+
entryPointVersion = ep.version;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// Fallback to hardcoded default
|
|
50
|
+
entryPointAddress = account_abstraction_1.entryPoint07Address;
|
|
51
|
+
entryPointVersion = '0.7';
|
|
52
|
+
}
|
|
53
|
+
// Create Pimlico client for Pimlico-specific features (gas estimation)
|
|
54
|
+
const entryPoint = {
|
|
55
|
+
address: entryPointAddress,
|
|
56
|
+
version: entryPointVersion
|
|
57
|
+
};
|
|
58
|
+
const paymasterClient = (0, pimlico_1.createPimlicoClient)({
|
|
59
|
+
transport: (0, viem_1.http)(bundlerUrl),
|
|
60
|
+
entryPoint
|
|
61
|
+
});
|
|
62
|
+
// Create bundler client with Pimlico gas estimation
|
|
33
63
|
const client = (0, account_abstraction_1.createBundlerClient)({
|
|
34
|
-
transport: (0, viem_1.http)(
|
|
35
|
-
chain
|
|
64
|
+
transport: (0, viem_1.http)(bundlerUrl),
|
|
65
|
+
chain,
|
|
66
|
+
userOperation: {
|
|
67
|
+
estimateFeesPerGas: async () => (await paymasterClient.getUserOperationGasPrice()).fast,
|
|
68
|
+
}
|
|
36
69
|
});
|
|
37
70
|
this.clientCache.set(chain.id, client);
|
|
38
71
|
return client;
|
|
@@ -111,7 +144,7 @@ class BundlerManager {
|
|
|
111
144
|
constructor(config) {
|
|
112
145
|
switch (config.provider) {
|
|
113
146
|
case 'pimlico':
|
|
114
|
-
this.bundlerService = new PimlicoBundler(config.apiKey);
|
|
147
|
+
this.bundlerService = new PimlicoBundler(config.apiKey ? config.apiKey : '', config.customUrl ? config.customUrl : '', config.aaConfig);
|
|
115
148
|
break;
|
|
116
149
|
// case 'etherspot':
|
|
117
150
|
// this.bundlerService = new EtherspotBundler();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../../utils/evm/aa-service/services/bundler.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../../utils/evm/aa-service/services/bundler.ts"],"names":[],"mappings":"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"}
|
package/dist/evm/evm.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* this is a class that will be responsible for creating several evm wallets code
|
|
5
5
|
*/
|
|
6
6
|
import { ChainWallet } from "../IChainWallet";
|
|
7
|
-
import { Balance, ChainWalletConfig, UserTokenBalance, TokenInfo, TransactionResult, NFT
|
|
7
|
+
import { Balance, ChainWalletConfig, UserTokenBalance, TokenInfo, TransactionResult, NFT } from "../types";
|
|
8
8
|
import { VM } from "../vm";
|
|
9
9
|
import { JsonRpcProvider, Wallet } from "ethers";
|
|
10
10
|
import { EVMTransactionHistoryItem } from "./transactionParsing";
|
|
@@ -81,16 +81,6 @@ export declare class EVMChainWallet extends ChainWallet<string, string, JsonRpcP
|
|
|
81
81
|
* @returns Smart wallet address or undefined
|
|
82
82
|
*/
|
|
83
83
|
getSmartWalletAddress(): string | undefined;
|
|
84
|
-
/**
|
|
85
|
-
* Transfer native tokens with sponsored gas (internal method)
|
|
86
|
-
* Requires smart wallet to be initialized via extend()
|
|
87
|
-
*/
|
|
88
|
-
private transferNativeSponsored;
|
|
89
|
-
/**
|
|
90
|
-
* Transfer tokens with sponsored gas (internal method)
|
|
91
|
-
* Requires smart wallet to be initialized via extend()
|
|
92
|
-
*/
|
|
93
|
-
private transferTokenSponsored;
|
|
94
84
|
getWallet(): Wallet;
|
|
95
85
|
generateAddress(): string;
|
|
96
86
|
getNativeBalance(): Promise<Balance>;
|
|
@@ -98,8 +88,8 @@ export declare class EVMChainWallet extends ChainWallet<string, string, JsonRpcP
|
|
|
98
88
|
getTokenInfo(tokenAddress: string): Promise<TokenInfo>;
|
|
99
89
|
discoverToken(): Promise<UserTokenBalance<string>[]>;
|
|
100
90
|
discoverNFT(): Promise<NFT[]>;
|
|
101
|
-
transferNative(to: string, amount: number
|
|
102
|
-
transferToken(tokenAddress: TokenInfo, to: string, amount: number
|
|
91
|
+
transferNative(to: string, amount: number): Promise<TransactionResult>;
|
|
92
|
+
transferToken(tokenAddress: TokenInfo, to: string, amount: number): Promise<TransactionResult>;
|
|
103
93
|
getTransactionHistory(): Promise<EVMTransactionHistoryItem[]>;
|
|
104
94
|
swap(tokenAddress: TokenInfo, to: string, amount: number, slippage?: number): Promise<TransactionResult>;
|
|
105
95
|
performCompleteSwap(tokenIn: TokenInfo, tokenOut: TokenInfo, amount: number, slippage?: number, recipient?: string, deadline?: number): Promise<TransactionResult>;
|