@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.
@@ -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
- return auth.mergeMiddleware([auth.createScaffoldMiddleware({
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;
@@ -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
- return mergeMiddleware([createScaffoldMiddleware({
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 };
@@ -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",
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.10.2",
24
- "@toruslabs/base-controllers": "^8.4.3",
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.0",
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.13.7",
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.43",
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": "2cfad6d6b757e41cc91efa040e6cf489cdd3eb65",
66
+ "gitHead": "7040c38814fe30e35f1dcd9713de118ded2e3d4a",
67
67
  "devDependencies": {
68
68
  "@typechain/ethers-v6": "^0.5.1",
69
69
  "typechain": "^8.3.2"