@toruslabs/ethereum-controllers 8.4.3 → 8.4.4
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/dist/ethereumControllers.umd.min.js +1 -1
- package/dist/ethereumControllers.umd.min.js.LICENSE.txt +0 -4
- package/dist/lib.cjs/Network/createEthereumMiddleware.js +44 -2
- package/dist/lib.cjs/index.js +3 -0
- package/dist/lib.cjs/types/Network/createEthereumMiddleware.d.ts +11 -0
- package/dist/lib.cjs/types/utils/constants.d.ts +16 -0
- package/dist/lib.cjs/utils/constants.js +22 -0
- package/dist/lib.esm/Network/createEthereumMiddleware.js +47 -5
- package/dist/lib.esm/index.js +2 -2
- package/dist/lib.esm/utils/constants.js +21 -1
- package/package.json +7 -7
|
@@ -33,7 +33,3 @@
|
|
|
33
33
|
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
34
34
|
|
|
35
35
|
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
36
|
-
|
|
37
|
-
/*! scure-bip32 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
|
|
38
|
-
|
|
39
|
-
/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
|
|
@@ -290,6 +290,39 @@ function createRequestAccountsMiddleware({
|
|
|
290
290
|
return undefined;
|
|
291
291
|
});
|
|
292
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* Middleware to handle bundler/paymaster rpc method
|
|
295
|
+
*/
|
|
296
|
+
function createAAMiddleware({
|
|
297
|
+
bundlerUrl,
|
|
298
|
+
paymasterUrl
|
|
299
|
+
}) {
|
|
300
|
+
// forward request to bundler/paymaster
|
|
301
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
302
|
+
const middlewares = [];
|
|
303
|
+
const bundlerFetchMiddleware = baseControllers.createFetchMiddleware({
|
|
304
|
+
rpcTarget: bundlerUrl
|
|
305
|
+
});
|
|
306
|
+
// NOTE: bundler/paymaster rpc only accept number as request id, we might need to handle that here if client doesn't handle request id themselves
|
|
307
|
+
middlewares.push((request, response, next, end) => {
|
|
308
|
+
if (!constants.BUNDLER_METHOD_TYPES.includes(request.method)) {
|
|
309
|
+
return next();
|
|
310
|
+
}
|
|
311
|
+
bundlerFetchMiddleware(request, response, next, end);
|
|
312
|
+
});
|
|
313
|
+
if (paymasterUrl) {
|
|
314
|
+
const paymasterFetchMiddleware = baseControllers.createFetchMiddleware({
|
|
315
|
+
rpcTarget: paymasterUrl
|
|
316
|
+
});
|
|
317
|
+
middlewares.push((request, response, next, end) => {
|
|
318
|
+
if (!constants.PAYMASTER_METHOD_TYPES.includes(request.method)) {
|
|
319
|
+
return next();
|
|
320
|
+
}
|
|
321
|
+
paymasterFetchMiddleware(request, response, next, end);
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
return auth.mergeMiddleware(middlewares);
|
|
325
|
+
}
|
|
293
326
|
function createEthereumMiddleware(providerHandlers) {
|
|
294
327
|
const {
|
|
295
328
|
requestAccounts,
|
|
@@ -308,9 +341,10 @@ function createEthereumMiddleware(providerHandlers) {
|
|
|
308
341
|
processWalletSwitchChain,
|
|
309
342
|
processAddEthereumChain,
|
|
310
343
|
getProviderState,
|
|
344
|
+
aaConfig,
|
|
311
345
|
version
|
|
312
346
|
} = providerHandlers;
|
|
313
|
-
|
|
347
|
+
const middlewares = [auth.createScaffoldMiddleware({
|
|
314
348
|
version,
|
|
315
349
|
[baseControllers.PROVIDER_JRPC_METHODS.GET_PROVIDER_STATE]: getProviderState
|
|
316
350
|
}), createRequestAccountsMiddleware({
|
|
@@ -339,9 +373,17 @@ function createEthereumMiddleware(providerHandlers) {
|
|
|
339
373
|
processWalletSwitchChain
|
|
340
374
|
}), createProcessAddEthereumChain({
|
|
341
375
|
processAddEthereumChain
|
|
342
|
-
})]
|
|
376
|
+
})];
|
|
377
|
+
if (aaConfig) {
|
|
378
|
+
middlewares.push(createAAMiddleware({
|
|
379
|
+
bundlerUrl: aaConfig.bundlerUrl,
|
|
380
|
+
paymasterUrl: aaConfig.paymasterUrl
|
|
381
|
+
}));
|
|
382
|
+
}
|
|
383
|
+
return auth.mergeMiddleware(middlewares);
|
|
343
384
|
}
|
|
344
385
|
|
|
386
|
+
exports.createAAMiddleware = createAAMiddleware;
|
|
345
387
|
exports.createEthereumMiddleware = createEthereumMiddleware;
|
|
346
388
|
exports.createGetAccountsMiddleware = createGetAccountsMiddleware;
|
|
347
389
|
exports.createPendingNonceMiddleware = createPendingNonceMiddleware;
|
package/dist/lib.cjs/index.js
CHANGED
|
@@ -66,6 +66,7 @@ exports.validateAddress = utils.validateAddress;
|
|
|
66
66
|
exports.validateSignMessageData = utils.validateSignMessageData;
|
|
67
67
|
exports.validateSwitchChainData = utils.validateSwitchChainData;
|
|
68
68
|
exports.validateTypedSignMessageDataV4 = utils.validateTypedSignMessageDataV4;
|
|
69
|
+
exports.createAAMiddleware = createEthereumMiddleware.createAAMiddleware;
|
|
69
70
|
exports.createEthereumMiddleware = createEthereumMiddleware.createEthereumMiddleware;
|
|
70
71
|
exports.createGetAccountsMiddleware = createEthereumMiddleware.createGetAccountsMiddleware;
|
|
71
72
|
exports.createPendingNonceMiddleware = createEthereumMiddleware.createPendingNonceMiddleware;
|
|
@@ -126,6 +127,7 @@ exports.BASE_CHAIN_ID = constants.BASE_CHAIN_ID;
|
|
|
126
127
|
exports.BASE_TESTNET_CHAIN_ID = constants.BASE_TESTNET_CHAIN_ID;
|
|
127
128
|
exports.BSC_MAINNET_CHAIN_ID = constants.BSC_MAINNET_CHAIN_ID;
|
|
128
129
|
exports.BSC_TESTNET_CHAIN_ID = constants.BSC_TESTNET_CHAIN_ID;
|
|
130
|
+
exports.BUNDLER_METHOD_TYPES = constants.BUNDLER_METHOD_TYPES;
|
|
129
131
|
exports.CELO_MAINNET_CHAIN_ID = constants.CELO_MAINNET_CHAIN_ID;
|
|
130
132
|
exports.CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP = constants.CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP;
|
|
131
133
|
exports.COINGECKO_PLATFORMS_CHAIN_CODE_MAP = constants.COINGECKO_PLATFORMS_CHAIN_CODE_MAP;
|
|
@@ -149,6 +151,7 @@ exports.MM_TOKEN_API_SUPPORTED_CHAINS = constants.MM_TOKEN_API_SUPPORTED_CHAINS;
|
|
|
149
151
|
exports.OLD_ERC721_LIST = constants.OLD_ERC721_LIST;
|
|
150
152
|
exports.OPTIMISM_MAINNET_CHAIN_ID = constants.OPTIMISM_MAINNET_CHAIN_ID;
|
|
151
153
|
exports.OPTIMISM_TESTNET_CHAIN_ID = constants.OPTIMISM_TESTNET_CHAIN_ID;
|
|
154
|
+
exports.PAYMASTER_METHOD_TYPES = constants.PAYMASTER_METHOD_TYPES;
|
|
152
155
|
exports.POLYGON_AMOY_CHAIN_ID = constants.POLYGON_AMOY_CHAIN_ID;
|
|
153
156
|
exports.POLYGON_CHAIN_ID = constants.POLYGON_CHAIN_ID;
|
|
154
157
|
exports.SEPOLIA_CHAIN_ID = constants.SEPOLIA_CHAIN_ID;
|
|
@@ -3,6 +3,10 @@ import { JRPCEngineEndCallback, JRPCEngineNextCallback, JRPCMiddleware, JRPCRequ
|
|
|
3
3
|
import { AddChainMessageParams, BlockParams, EthereumTransactionMeta, TransactionParams, TransactionRPCMeta, TypedMessageParams, UserOperationGas } from "../utils/interfaces";
|
|
4
4
|
export interface IProviderHandlers {
|
|
5
5
|
version: string;
|
|
6
|
+
aaConfig?: {
|
|
7
|
+
bundlerUrl: string;
|
|
8
|
+
paymasterUrl?: string;
|
|
9
|
+
};
|
|
6
10
|
requestAccounts?: (req: JRPCRequest<string[]>) => Promise<string[]>;
|
|
7
11
|
getAccounts: (req: JRPCRequest<string[]>) => Promise<string[]>;
|
|
8
12
|
getPrivateKey?: (req: JRPCRequest<unknown>) => Promise<string>;
|
|
@@ -69,4 +73,11 @@ export declare function createProcessAddEthereumChain({ processAddEthereumChain,
|
|
|
69
73
|
export declare function createRequestAccountsMiddleware({ requestAccounts, }: {
|
|
70
74
|
requestAccounts: IProviderHandlers["requestAccounts"];
|
|
71
75
|
}): JRPCMiddleware<string[], unknown>;
|
|
76
|
+
/**
|
|
77
|
+
* Middleware to handle bundler/paymaster rpc method
|
|
78
|
+
*/
|
|
79
|
+
export declare function createAAMiddleware({ bundlerUrl, paymasterUrl }: {
|
|
80
|
+
bundlerUrl: string;
|
|
81
|
+
paymasterUrl?: string;
|
|
82
|
+
}): JRPCMiddleware<unknown, unknown>;
|
|
72
83
|
export declare function createEthereumMiddleware(providerHandlers: IProviderHandlers): JRPCMiddleware<unknown, unknown>;
|
|
@@ -32,6 +32,20 @@ export declare const METHOD_TYPES: {
|
|
|
32
32
|
readonly ETH_TRANSACTION: "eth_sendTransaction";
|
|
33
33
|
readonly ETH_SIGN_TRANSACTION: "eth_signTransaction";
|
|
34
34
|
readonly ETH_ESTIMATE_USER_OPERATION_GAS: "eth_estimateUserOperationGas";
|
|
35
|
+
readonly ETH_GET_SUPPORTED_ENTRY_POINTS: "eth_supportedEntryPoints";
|
|
36
|
+
readonly ETH_GET_USER_OPERATION: "eth_getUserOperationByHash";
|
|
37
|
+
readonly ETH_GET_USER_OPERATION_RECEIPT: "eth_getUserOperationReceipt";
|
|
38
|
+
readonly ETH_SEND_USER_OPERATION: "eth_sendUserOperation";
|
|
39
|
+
readonly PIMLICO_GET_USER_OPERATION_GAS_PRICE: "pimlico_getUserOperationGasPrice";
|
|
40
|
+
readonly PIMLICO_GET_USER_OPERATION_STATUS: "pimlico_getUserOperationStatus";
|
|
41
|
+
readonly PIMLICO_SIMULATE_ASSET_CHANGES: "pimlico_simulateAssetChanges";
|
|
42
|
+
readonly BICONOMY_GET_GAS_FEE_VALUES: "biconomy_getGasFeeValues";
|
|
43
|
+
readonly BICONOMY_GET_USER_OPERATION_STATUS: "biconomy_getUserOperationStatus";
|
|
44
|
+
readonly ETH_GET_PAYMASTER_DATA: "pm_getPaymasterData";
|
|
45
|
+
readonly ETH_GET_PAYMASTER_STUB_DATA: "pm_getPaymasterStubData";
|
|
46
|
+
readonly ETH_SPONSOR_USER_OPERATION: "pm_sponsorUserOperation";
|
|
47
|
+
readonly ETH_GET_FEE_QUOTE_OR_DATA: "pm_getFeeQuoteOrData";
|
|
48
|
+
readonly PIMLICO_GET_TOKEN_QUOTES: "pimlico_getTokenQuotes";
|
|
35
49
|
readonly ETH_REQUEST_ACCOUNTS: "eth_requestAccounts";
|
|
36
50
|
readonly ETH_SEND_RAW_TRANSACTION: "eth_sendRawTransaction";
|
|
37
51
|
readonly ETH_SIGN: "eth_sign";
|
|
@@ -51,6 +65,8 @@ export declare const METHOD_TYPES: {
|
|
|
51
65
|
readonly SWITCH_CHAIN: "wallet_switchEthereumChain";
|
|
52
66
|
readonly ADD_CHAIN: "wallet_addEthereumChain";
|
|
53
67
|
};
|
|
68
|
+
export declare const BUNDLER_METHOD_TYPES: readonly ["eth_estimateUserOperationGas", "eth_supportedEntryPoints", "eth_getUserOperationByHash", "eth_getUserOperationReceipt", "eth_sendUserOperation", "pimlico_getUserOperationGasPrice", "pimlico_getUserOperationStatus", "pimlico_simulateAssetChanges", "biconomy_getGasFeeValues", "biconomy_getUserOperationStatus"];
|
|
69
|
+
export declare const PAYMASTER_METHOD_TYPES: readonly ["pm_getPaymasterData", "pm_getPaymasterStubData", "pm_sponsorUserOperation", "pimlico_getTokenQuotes", "pm_getFeeQuoteOrData"];
|
|
54
70
|
export declare const TRANSACTION_ENVELOPE_TYPES: {
|
|
55
71
|
readonly LEGACY: "0x0";
|
|
56
72
|
readonly ACCESS_LIST: "0x1";
|
|
@@ -231,7 +231,25 @@ const METHOD_TYPES = {
|
|
|
231
231
|
GET_ACCOUNTS: "eth_accounts",
|
|
232
232
|
ETH_TRANSACTION: "eth_sendTransaction",
|
|
233
233
|
ETH_SIGN_TRANSACTION: "eth_signTransaction",
|
|
234
|
+
// start bundler methods
|
|
234
235
|
ETH_ESTIMATE_USER_OPERATION_GAS: "eth_estimateUserOperationGas",
|
|
236
|
+
ETH_GET_SUPPORTED_ENTRY_POINTS: "eth_supportedEntryPoints",
|
|
237
|
+
ETH_GET_USER_OPERATION: "eth_getUserOperationByHash",
|
|
238
|
+
ETH_GET_USER_OPERATION_RECEIPT: "eth_getUserOperationReceipt",
|
|
239
|
+
ETH_SEND_USER_OPERATION: "eth_sendUserOperation",
|
|
240
|
+
PIMLICO_GET_USER_OPERATION_GAS_PRICE: "pimlico_getUserOperationGasPrice",
|
|
241
|
+
PIMLICO_GET_USER_OPERATION_STATUS: "pimlico_getUserOperationStatus",
|
|
242
|
+
PIMLICO_SIMULATE_ASSET_CHANGES: "pimlico_simulateAssetChanges",
|
|
243
|
+
BICONOMY_GET_GAS_FEE_VALUES: "biconomy_getGasFeeValues",
|
|
244
|
+
BICONOMY_GET_USER_OPERATION_STATUS: "biconomy_getUserOperationStatus",
|
|
245
|
+
// end bundler methods
|
|
246
|
+
// start paymaster methods
|
|
247
|
+
ETH_GET_PAYMASTER_DATA: "pm_getPaymasterData",
|
|
248
|
+
ETH_GET_PAYMASTER_STUB_DATA: "pm_getPaymasterStubData",
|
|
249
|
+
ETH_SPONSOR_USER_OPERATION: "pm_sponsorUserOperation",
|
|
250
|
+
ETH_GET_FEE_QUOTE_OR_DATA: "pm_getFeeQuoteOrData",
|
|
251
|
+
PIMLICO_GET_TOKEN_QUOTES: "pimlico_getTokenQuotes",
|
|
252
|
+
// end paymaster methods
|
|
235
253
|
ETH_REQUEST_ACCOUNTS: "eth_requestAccounts",
|
|
236
254
|
ETH_SEND_RAW_TRANSACTION: "eth_sendRawTransaction",
|
|
237
255
|
ETH_SIGN: "eth_sign",
|
|
@@ -251,6 +269,8 @@ const METHOD_TYPES = {
|
|
|
251
269
|
SWITCH_CHAIN: "wallet_switchEthereumChain",
|
|
252
270
|
ADD_CHAIN: "wallet_addEthereumChain"
|
|
253
271
|
};
|
|
272
|
+
const BUNDLER_METHOD_TYPES = [METHOD_TYPES.ETH_ESTIMATE_USER_OPERATION_GAS, METHOD_TYPES.ETH_GET_SUPPORTED_ENTRY_POINTS, METHOD_TYPES.ETH_GET_USER_OPERATION, METHOD_TYPES.ETH_GET_USER_OPERATION_RECEIPT, METHOD_TYPES.ETH_SEND_USER_OPERATION, METHOD_TYPES.PIMLICO_GET_USER_OPERATION_GAS_PRICE, METHOD_TYPES.PIMLICO_GET_USER_OPERATION_STATUS, METHOD_TYPES.PIMLICO_SIMULATE_ASSET_CHANGES, METHOD_TYPES.BICONOMY_GET_GAS_FEE_VALUES, METHOD_TYPES.BICONOMY_GET_USER_OPERATION_STATUS];
|
|
273
|
+
const PAYMASTER_METHOD_TYPES = [METHOD_TYPES.ETH_GET_PAYMASTER_DATA, METHOD_TYPES.ETH_GET_PAYMASTER_STUB_DATA, METHOD_TYPES.ETH_SPONSOR_USER_OPERATION, METHOD_TYPES.PIMLICO_GET_TOKEN_QUOTES, METHOD_TYPES.ETH_GET_FEE_QUOTE_OR_DATA];
|
|
254
274
|
const TRANSACTION_ENVELOPE_TYPES = {
|
|
255
275
|
LEGACY: "0x0",
|
|
256
276
|
ACCESS_LIST: "0x1",
|
|
@@ -349,6 +369,7 @@ exports.BASE_CHAIN_ID = BASE_CHAIN_ID;
|
|
|
349
369
|
exports.BASE_TESTNET_CHAIN_ID = BASE_TESTNET_CHAIN_ID;
|
|
350
370
|
exports.BSC_MAINNET_CHAIN_ID = BSC_MAINNET_CHAIN_ID;
|
|
351
371
|
exports.BSC_TESTNET_CHAIN_ID = BSC_TESTNET_CHAIN_ID;
|
|
372
|
+
exports.BUNDLER_METHOD_TYPES = BUNDLER_METHOD_TYPES;
|
|
352
373
|
exports.CELO_MAINNET_CHAIN_ID = CELO_MAINNET_CHAIN_ID;
|
|
353
374
|
exports.CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP = CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP;
|
|
354
375
|
exports.COINGECKO_PLATFORMS_CHAIN_CODE_MAP = COINGECKO_PLATFORMS_CHAIN_CODE_MAP;
|
|
@@ -372,6 +393,7 @@ exports.MM_TOKEN_API_SUPPORTED_CHAINS = MM_TOKEN_API_SUPPORTED_CHAINS;
|
|
|
372
393
|
exports.OLD_ERC721_LIST = OLD_ERC721_LIST;
|
|
373
394
|
exports.OPTIMISM_MAINNET_CHAIN_ID = OPTIMISM_MAINNET_CHAIN_ID;
|
|
374
395
|
exports.OPTIMISM_TESTNET_CHAIN_ID = OPTIMISM_TESTNET_CHAIN_ID;
|
|
396
|
+
exports.PAYMASTER_METHOD_TYPES = PAYMASTER_METHOD_TYPES;
|
|
375
397
|
exports.POLYGON_AMOY_CHAIN_ID = POLYGON_AMOY_CHAIN_ID;
|
|
376
398
|
exports.POLYGON_CHAIN_ID = POLYGON_CHAIN_ID;
|
|
377
399
|
exports.SEPOLIA_CHAIN_ID = SEPOLIA_CHAIN_ID;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PROVIDER_JRPC_METHODS, createGenericJRPCMiddleware } from '@toruslabs/base-controllers';
|
|
1
|
+
import { PROVIDER_JRPC_METHODS, createFetchMiddleware, createGenericJRPCMiddleware } from '@toruslabs/base-controllers';
|
|
2
2
|
import { createAsyncMiddleware, mergeMiddleware, createScaffoldMiddleware } from '@web3auth/auth';
|
|
3
|
-
import { METHOD_TYPES, TRANSACTION_ENVELOPE_TYPES } from '../utils/constants.js';
|
|
3
|
+
import { METHOD_TYPES, TRANSACTION_ENVELOPE_TYPES, BUNDLER_METHOD_TYPES, PAYMASTER_METHOD_TYPES } from '../utils/constants.js';
|
|
4
4
|
|
|
5
5
|
function createGetAccountsMiddleware({
|
|
6
6
|
getAccounts
|
|
@@ -288,6 +288,40 @@ function createRequestAccountsMiddleware({
|
|
|
288
288
|
return undefined;
|
|
289
289
|
});
|
|
290
290
|
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Middleware to handle bundler/paymaster rpc method
|
|
294
|
+
*/
|
|
295
|
+
function createAAMiddleware({
|
|
296
|
+
bundlerUrl,
|
|
297
|
+
paymasterUrl
|
|
298
|
+
}) {
|
|
299
|
+
// forward request to bundler/paymaster
|
|
300
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
301
|
+
const middlewares = [];
|
|
302
|
+
const bundlerFetchMiddleware = createFetchMiddleware({
|
|
303
|
+
rpcTarget: bundlerUrl
|
|
304
|
+
});
|
|
305
|
+
// NOTE: bundler/paymaster rpc only accept number as request id, we might need to handle that here if client doesn't handle request id themselves
|
|
306
|
+
middlewares.push((request, response, next, end) => {
|
|
307
|
+
if (!BUNDLER_METHOD_TYPES.includes(request.method)) {
|
|
308
|
+
return next();
|
|
309
|
+
}
|
|
310
|
+
bundlerFetchMiddleware(request, response, next, end);
|
|
311
|
+
});
|
|
312
|
+
if (paymasterUrl) {
|
|
313
|
+
const paymasterFetchMiddleware = createFetchMiddleware({
|
|
314
|
+
rpcTarget: paymasterUrl
|
|
315
|
+
});
|
|
316
|
+
middlewares.push((request, response, next, end) => {
|
|
317
|
+
if (!PAYMASTER_METHOD_TYPES.includes(request.method)) {
|
|
318
|
+
return next();
|
|
319
|
+
}
|
|
320
|
+
paymasterFetchMiddleware(request, response, next, end);
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
return mergeMiddleware(middlewares);
|
|
324
|
+
}
|
|
291
325
|
function createEthereumMiddleware(providerHandlers) {
|
|
292
326
|
const {
|
|
293
327
|
requestAccounts,
|
|
@@ -306,9 +340,10 @@ function createEthereumMiddleware(providerHandlers) {
|
|
|
306
340
|
processWalletSwitchChain,
|
|
307
341
|
processAddEthereumChain,
|
|
308
342
|
getProviderState,
|
|
343
|
+
aaConfig,
|
|
309
344
|
version
|
|
310
345
|
} = providerHandlers;
|
|
311
|
-
|
|
346
|
+
const middlewares = [createScaffoldMiddleware({
|
|
312
347
|
version,
|
|
313
348
|
[PROVIDER_JRPC_METHODS.GET_PROVIDER_STATE]: getProviderState
|
|
314
349
|
}), createRequestAccountsMiddleware({
|
|
@@ -337,7 +372,14 @@ function createEthereumMiddleware(providerHandlers) {
|
|
|
337
372
|
processWalletSwitchChain
|
|
338
373
|
}), createProcessAddEthereumChain({
|
|
339
374
|
processAddEthereumChain
|
|
340
|
-
})]
|
|
375
|
+
})];
|
|
376
|
+
if (aaConfig) {
|
|
377
|
+
middlewares.push(createAAMiddleware({
|
|
378
|
+
bundlerUrl: aaConfig.bundlerUrl,
|
|
379
|
+
paymasterUrl: aaConfig.paymasterUrl
|
|
380
|
+
}));
|
|
381
|
+
}
|
|
382
|
+
return mergeMiddleware(middlewares);
|
|
341
383
|
}
|
|
342
384
|
|
|
343
|
-
export { createEthereumMiddleware, createGetAccountsMiddleware, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessAddEthereumChain, createProcessEstimateUserOperationGasMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessSignTransactionMiddleware, createProcessSwitchEthereumChain, createProcessTransactionMiddleware, createProcessTypedMessageV4, createProcessWalletSwitchChain, createRequestAccountsMiddleware, formatTxMetaForRpcResult };
|
|
385
|
+
export { createAAMiddleware, createEthereumMiddleware, createGetAccountsMiddleware, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessAddEthereumChain, createProcessEstimateUserOperationGasMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessSignTransactionMiddleware, createProcessSwitchEthereumChain, createProcessTransactionMiddleware, createProcessTypedMessageV4, createProcessWalletSwitchChain, createRequestAccountsMiddleware, formatTxMetaForRpcResult };
|
package/dist/lib.esm/index.js
CHANGED
|
@@ -10,7 +10,7 @@ export { PersonalMessageController } from './Message/PersonalMessageController.j
|
|
|
10
10
|
export { SwitchChainController } from './Message/SwitchChainController.js';
|
|
11
11
|
export { TypedMessageController } from './Message/TypedMessageController.js';
|
|
12
12
|
export { normalizeMessageData, validateAddChainData, validateAddress, validateSignMessageData, validateSwitchChainData, validateTypedSignMessageDataV4 } from './Message/utils.js';
|
|
13
|
-
export { createEthereumMiddleware, createGetAccountsMiddleware, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessAddEthereumChain, createProcessEstimateUserOperationGasMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessSignTransactionMiddleware, createProcessSwitchEthereumChain, createProcessTransactionMiddleware, createProcessTypedMessageV4, createProcessWalletSwitchChain, createRequestAccountsMiddleware, formatTxMetaForRpcResult } from './Network/createEthereumMiddleware.js';
|
|
13
|
+
export { createAAMiddleware, createEthereumMiddleware, createGetAccountsMiddleware, createPendingNonceMiddleware, createPendingTxMiddleware, createProcessAddEthereumChain, createProcessEstimateUserOperationGasMiddleware, createProcessEthSignMessage, createProcessPersonalMessage, createProcessSignTransactionMiddleware, createProcessSwitchEthereumChain, createProcessTransactionMiddleware, createProcessTypedMessageV4, createProcessWalletSwitchChain, createRequestAccountsMiddleware, formatTxMetaForRpcResult } from './Network/createEthereumMiddleware.js';
|
|
14
14
|
export { createChainIdMiddleware, createJsonRpcClient, createProviderConfigMiddleware } from './Network/createJsonRpcClient.js';
|
|
15
15
|
export { NetworkController } from './Network/NetworkController.js';
|
|
16
16
|
export { NftHandler } from './Nfts/NftHandler.js';
|
|
@@ -27,7 +27,7 @@ export { generateHistoryEntry, replayHistory, snapshotFromTxMeta } from './Trans
|
|
|
27
27
|
export { TransactionStateManager } from './Transaction/TransactionStateManager.js';
|
|
28
28
|
export { determineTransactionType, ensureFieldIsString, ensureMutuallyExclusiveFieldsNotProvided, getFinalStates, isEIP1559Transaction, isLegacyTransaction, normalizeAndValidateTxParams, normalizeTxParameters, parseStandardTokenTransactionData, readAddressAsContract, transactionMatchesNetwork, validateFrom, validateRecipient, validateTxParameters } from './Transaction/TransactionUtils.js';
|
|
29
29
|
export { erc1155Abi, erc20Abi, erc721Abi, singleBalanceCheckerAbi } from './utils/abis.js';
|
|
30
|
-
export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, BASE_CHAIN_ID, BASE_TESTNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, BSC_TESTNET_CHAIN_ID, CELO_MAINNET_CHAIN_ID, CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP, COINGECKO_PLATFORMS_CHAIN_CODE_MAP, COINGECKO_SUPPORTED_CURRENCIES, CONTRACT_TYPE_ERC1155, CONTRACT_TYPE_ERC20, CONTRACT_TYPE_ERC721, CONTRACT_TYPE_ETH, ERC1155_INTERFACE_ID, ERC721_ENUMERABLE_INTERFACE_ID, ERC721_INTERFACE_ID, ERC721_METADATA_INTERFACE_ID, GAS_ESTIMATE_TYPES, LINEA_CHAIN_ID, LINEA_SEPOLIA_CHAIN_ID, LOCALHOST, MAINNET_CHAIN_ID, METHOD_TYPES, MM_NFT_API_SUPPORTED_CHAINS, MM_TOKEN_API_SUPPORTED_CHAINS, OLD_ERC721_LIST, OPTIMISM_MAINNET_CHAIN_ID, OPTIMISM_TESTNET_CHAIN_ID, POLYGON_AMOY_CHAIN_ID, POLYGON_CHAIN_ID, SEPOLIA_CHAIN_ID, SMART_ACCOUNT, SUPPORTED_NETWORKS, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, XDAI_CHAIN_ID } from './utils/constants.js';
|
|
30
|
+
export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, BASE_CHAIN_ID, BASE_TESTNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, BSC_TESTNET_CHAIN_ID, BUNDLER_METHOD_TYPES, CELO_MAINNET_CHAIN_ID, CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP, COINGECKO_PLATFORMS_CHAIN_CODE_MAP, COINGECKO_SUPPORTED_CURRENCIES, CONTRACT_TYPE_ERC1155, CONTRACT_TYPE_ERC20, CONTRACT_TYPE_ERC721, CONTRACT_TYPE_ETH, ERC1155_INTERFACE_ID, ERC721_ENUMERABLE_INTERFACE_ID, ERC721_INTERFACE_ID, ERC721_METADATA_INTERFACE_ID, GAS_ESTIMATE_TYPES, LINEA_CHAIN_ID, LINEA_SEPOLIA_CHAIN_ID, LOCALHOST, MAINNET_CHAIN_ID, METHOD_TYPES, MM_NFT_API_SUPPORTED_CHAINS, MM_TOKEN_API_SUPPORTED_CHAINS, OLD_ERC721_LIST, OPTIMISM_MAINNET_CHAIN_ID, OPTIMISM_TESTNET_CHAIN_ID, PAYMASTER_METHOD_TYPES, POLYGON_AMOY_CHAIN_ID, POLYGON_CHAIN_ID, SEPOLIA_CHAIN_ID, SMART_ACCOUNT, SUPPORTED_NETWORKS, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, XDAI_CHAIN_ID } from './utils/constants.js';
|
|
31
31
|
export { addCurrencies, conversionGTE, conversionGreaterThan, conversionLTE, conversionLessThan, conversionMax, conversionUtil, decGWEIToHexWEI, getBigNumber, hexWEIToDecGWEI, multiplyCurrencies, subtractCurrencies, toNegative } from './utils/conversionUtils.js';
|
|
32
32
|
export { BNToHex, GAS_LIMITS, addEtherscanTransactions, bnLessThan, formatDate, formatPastTx, formatTime, getChainType, getEthTxStatus, getEtherScanHashLink, getIpfsEndpoint, hexToBn, isAddressByChainId, sanitizeNftMetdataUrl, toChecksumAddressByChainId } from './utils/helpers.js';
|
|
33
33
|
export { BiconomySmartAccount } from './AccountAbstraction/smartAccounts/BiconomySmartAccount.js';
|
|
@@ -229,7 +229,25 @@ const METHOD_TYPES = {
|
|
|
229
229
|
GET_ACCOUNTS: "eth_accounts",
|
|
230
230
|
ETH_TRANSACTION: "eth_sendTransaction",
|
|
231
231
|
ETH_SIGN_TRANSACTION: "eth_signTransaction",
|
|
232
|
+
// start bundler methods
|
|
232
233
|
ETH_ESTIMATE_USER_OPERATION_GAS: "eth_estimateUserOperationGas",
|
|
234
|
+
ETH_GET_SUPPORTED_ENTRY_POINTS: "eth_supportedEntryPoints",
|
|
235
|
+
ETH_GET_USER_OPERATION: "eth_getUserOperationByHash",
|
|
236
|
+
ETH_GET_USER_OPERATION_RECEIPT: "eth_getUserOperationReceipt",
|
|
237
|
+
ETH_SEND_USER_OPERATION: "eth_sendUserOperation",
|
|
238
|
+
PIMLICO_GET_USER_OPERATION_GAS_PRICE: "pimlico_getUserOperationGasPrice",
|
|
239
|
+
PIMLICO_GET_USER_OPERATION_STATUS: "pimlico_getUserOperationStatus",
|
|
240
|
+
PIMLICO_SIMULATE_ASSET_CHANGES: "pimlico_simulateAssetChanges",
|
|
241
|
+
BICONOMY_GET_GAS_FEE_VALUES: "biconomy_getGasFeeValues",
|
|
242
|
+
BICONOMY_GET_USER_OPERATION_STATUS: "biconomy_getUserOperationStatus",
|
|
243
|
+
// end bundler methods
|
|
244
|
+
// start paymaster methods
|
|
245
|
+
ETH_GET_PAYMASTER_DATA: "pm_getPaymasterData",
|
|
246
|
+
ETH_GET_PAYMASTER_STUB_DATA: "pm_getPaymasterStubData",
|
|
247
|
+
ETH_SPONSOR_USER_OPERATION: "pm_sponsorUserOperation",
|
|
248
|
+
ETH_GET_FEE_QUOTE_OR_DATA: "pm_getFeeQuoteOrData",
|
|
249
|
+
PIMLICO_GET_TOKEN_QUOTES: "pimlico_getTokenQuotes",
|
|
250
|
+
// end paymaster methods
|
|
233
251
|
ETH_REQUEST_ACCOUNTS: "eth_requestAccounts",
|
|
234
252
|
ETH_SEND_RAW_TRANSACTION: "eth_sendRawTransaction",
|
|
235
253
|
ETH_SIGN: "eth_sign",
|
|
@@ -249,6 +267,8 @@ const METHOD_TYPES = {
|
|
|
249
267
|
SWITCH_CHAIN: "wallet_switchEthereumChain",
|
|
250
268
|
ADD_CHAIN: "wallet_addEthereumChain"
|
|
251
269
|
};
|
|
270
|
+
const BUNDLER_METHOD_TYPES = [METHOD_TYPES.ETH_ESTIMATE_USER_OPERATION_GAS, METHOD_TYPES.ETH_GET_SUPPORTED_ENTRY_POINTS, METHOD_TYPES.ETH_GET_USER_OPERATION, METHOD_TYPES.ETH_GET_USER_OPERATION_RECEIPT, METHOD_TYPES.ETH_SEND_USER_OPERATION, METHOD_TYPES.PIMLICO_GET_USER_OPERATION_GAS_PRICE, METHOD_TYPES.PIMLICO_GET_USER_OPERATION_STATUS, METHOD_TYPES.PIMLICO_SIMULATE_ASSET_CHANGES, METHOD_TYPES.BICONOMY_GET_GAS_FEE_VALUES, METHOD_TYPES.BICONOMY_GET_USER_OPERATION_STATUS];
|
|
271
|
+
const PAYMASTER_METHOD_TYPES = [METHOD_TYPES.ETH_GET_PAYMASTER_DATA, METHOD_TYPES.ETH_GET_PAYMASTER_STUB_DATA, METHOD_TYPES.ETH_SPONSOR_USER_OPERATION, METHOD_TYPES.PIMLICO_GET_TOKEN_QUOTES, METHOD_TYPES.ETH_GET_FEE_QUOTE_OR_DATA];
|
|
252
272
|
const TRANSACTION_ENVELOPE_TYPES = {
|
|
253
273
|
LEGACY: "0x0",
|
|
254
274
|
ACCESS_LIST: "0x1",
|
|
@@ -340,4 +360,4 @@ const SMART_ACCOUNT = {
|
|
|
340
360
|
METAMASK: "metamask"
|
|
341
361
|
};
|
|
342
362
|
|
|
343
|
-
export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, BASE_CHAIN_ID, BASE_TESTNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, BSC_TESTNET_CHAIN_ID, CELO_MAINNET_CHAIN_ID, CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP, COINGECKO_PLATFORMS_CHAIN_CODE_MAP, COINGECKO_SUPPORTED_CURRENCIES, CONTRACT_TYPE_ERC1155, CONTRACT_TYPE_ERC20, CONTRACT_TYPE_ERC721, CONTRACT_TYPE_ETH, ERC1155_INTERFACE_ID, ERC721_ENUMERABLE_INTERFACE_ID, ERC721_INTERFACE_ID, ERC721_METADATA_INTERFACE_ID, GAS_ESTIMATE_TYPES, LINEA_CHAIN_ID, LINEA_SEPOLIA_CHAIN_ID, LOCALHOST, MAINNET_CHAIN_ID, METHOD_TYPES, MM_NFT_API_SUPPORTED_CHAINS, MM_TOKEN_API_SUPPORTED_CHAINS, OLD_ERC721_LIST, OPTIMISM_MAINNET_CHAIN_ID, OPTIMISM_TESTNET_CHAIN_ID, POLYGON_AMOY_CHAIN_ID, POLYGON_CHAIN_ID, SEPOLIA_CHAIN_ID, SMART_ACCOUNT, SUPPORTED_NETWORKS, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, XDAI_CHAIN_ID };
|
|
363
|
+
export { ARBITRUM_MAINNET_CHAIN_ID, ARBITRUM_TESTNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, AVALANCHE_TESTNET_CHAIN_ID, BASE_CHAIN_ID, BASE_TESTNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, BSC_TESTNET_CHAIN_ID, BUNDLER_METHOD_TYPES, CELO_MAINNET_CHAIN_ID, CHAIN_ID_TO_GAS_LIMIT_BUFFER_MAP, COINGECKO_PLATFORMS_CHAIN_CODE_MAP, COINGECKO_SUPPORTED_CURRENCIES, CONTRACT_TYPE_ERC1155, CONTRACT_TYPE_ERC20, CONTRACT_TYPE_ERC721, CONTRACT_TYPE_ETH, ERC1155_INTERFACE_ID, ERC721_ENUMERABLE_INTERFACE_ID, ERC721_INTERFACE_ID, ERC721_METADATA_INTERFACE_ID, GAS_ESTIMATE_TYPES, LINEA_CHAIN_ID, LINEA_SEPOLIA_CHAIN_ID, LOCALHOST, MAINNET_CHAIN_ID, METHOD_TYPES, MM_NFT_API_SUPPORTED_CHAINS, MM_TOKEN_API_SUPPORTED_CHAINS, OLD_ERC721_LIST, OPTIMISM_MAINNET_CHAIN_ID, OPTIMISM_TESTNET_CHAIN_ID, PAYMASTER_METHOD_TYPES, POLYGON_AMOY_CHAIN_ID, POLYGON_CHAIN_ID, SEPOLIA_CHAIN_ID, SMART_ACCOUNT, SUPPORTED_NETWORKS, TEST_CHAINS, TRANSACTION_ENVELOPE_TYPES, XDAI_CHAIN_ID };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toruslabs/ethereum-controllers",
|
|
3
|
-
"version": "8.4.
|
|
3
|
+
"version": "8.4.4",
|
|
4
4
|
"homepage": "https://github.com/torusresearch/controllers#readme",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -20,20 +20,20 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@ethereumjs/util": "^9.1.0",
|
|
23
|
-
"@metamask/delegation-toolkit": "^0.
|
|
24
|
-
"@toruslabs/base-controllers": "^8.4.
|
|
23
|
+
"@metamask/delegation-toolkit": "^0.11.0",
|
|
24
|
+
"@toruslabs/base-controllers": "^8.4.4",
|
|
25
25
|
"@toruslabs/http-helpers": "^8.1.1",
|
|
26
|
-
"@web3auth/auth": "^10.4.
|
|
26
|
+
"@web3auth/auth": "^10.4.1",
|
|
27
27
|
"async-mutex": "^0.5.0",
|
|
28
28
|
"bignumber.js": "^9.2.1",
|
|
29
29
|
"bn.js": "^5.2.2",
|
|
30
30
|
"deepmerge": "^4.3.1",
|
|
31
|
-
"ethers": "^6.
|
|
31
|
+
"ethers": "^6.14.0",
|
|
32
32
|
"fast-json-patch": "^3.1.1",
|
|
33
33
|
"fast-safe-stringify": "^2.1.1",
|
|
34
34
|
"jsonschema": "^1.5.0",
|
|
35
35
|
"loglevel": "^1.9.2",
|
|
36
|
-
"permissionless": "^0.2.
|
|
36
|
+
"permissionless": "^0.2.46",
|
|
37
37
|
"viem": "^2.23.2"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "7040c38814fe30e35f1dcd9713de118ded2e3d4a",
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@typechain/ethers-v6": "^0.5.1",
|
|
69
69
|
"typechain": "^8.3.2"
|