@toruslabs/ethereum-controllers 8.4.7 → 8.5.0
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/lib.cjs/Network/NetworkController.js +10 -3
- package/dist/lib.cjs/Network/createEthereumMiddleware.js +27 -7
- package/dist/lib.cjs/Network/createJsonRpcClient.js +3 -2
- package/dist/lib.cjs/types/Network/NetworkController.d.ts +4 -2
- package/dist/lib.cjs/types/Network/createEthereumMiddleware.d.ts +4 -3
- package/dist/lib.cjs/types/Network/createJsonRpcClient.d.ts +2 -2
- package/dist/lib.cjs/types/utils/constants.d.ts +1 -0
- package/dist/lib.cjs/utils/constants.js +2 -0
- package/dist/lib.esm/Network/NetworkController.js +11 -4
- package/dist/lib.esm/Network/createEthereumMiddleware.js +28 -7
- package/dist/lib.esm/Network/createJsonRpcClient.js +3 -2
- package/dist/lib.esm/utils/constants.js +2 -0
- package/package.json +3 -3
|
@@ -16,7 +16,8 @@ class NetworkController extends baseControllers.BaseController {
|
|
|
16
16
|
constructor({
|
|
17
17
|
config,
|
|
18
18
|
state,
|
|
19
|
-
idleTimeTracker
|
|
19
|
+
idleTimeTracker,
|
|
20
|
+
analytics
|
|
20
21
|
}) {
|
|
21
22
|
super({
|
|
22
23
|
config,
|
|
@@ -30,6 +31,7 @@ class NetworkController extends baseControllers.BaseController {
|
|
|
30
31
|
_defineProperty(this, "blockTracker", null);
|
|
31
32
|
_defineProperty(this, "baseProviderHandlers", void 0);
|
|
32
33
|
_defineProperty(this, "idleTimeTracker", void 0);
|
|
34
|
+
_defineProperty(this, "analytics", void 0);
|
|
33
35
|
this.defaultState = {
|
|
34
36
|
chainId: "loading",
|
|
35
37
|
properties: {
|
|
@@ -37,6 +39,7 @@ class NetworkController extends baseControllers.BaseController {
|
|
|
37
39
|
},
|
|
38
40
|
providerConfig: constants.SUPPORTED_NETWORKS[constants.MAINNET_CHAIN_ID]
|
|
39
41
|
};
|
|
42
|
+
this.analytics = analytics;
|
|
40
43
|
// when a new network is set,
|
|
41
44
|
// we set to loading first and
|
|
42
45
|
// then when connection succeeds,
|
|
@@ -147,8 +150,12 @@ class NetworkController extends baseControllers.BaseController {
|
|
|
147
150
|
networkMiddleware,
|
|
148
151
|
blockTracker
|
|
149
152
|
}) {
|
|
150
|
-
const ethereumMiddleware = createEthereumMiddleware.createEthereumMiddleware(this.baseProviderHandlers);
|
|
153
|
+
const ethereumMiddleware = createEthereumMiddleware.createEthereumMiddleware(this.baseProviderHandlers, this.analytics);
|
|
151
154
|
const engine = new auth.JRPCEngine();
|
|
155
|
+
engine.push(baseControllers.createAnalyticsMiddleware({
|
|
156
|
+
analytics: this.analytics,
|
|
157
|
+
providerConfig: this.getProviderConfig()
|
|
158
|
+
}));
|
|
152
159
|
engine.push(ethereumMiddleware);
|
|
153
160
|
engine.push(networkMiddleware);
|
|
154
161
|
const provider = auth.providerFromEngine(engine);
|
|
@@ -183,7 +190,7 @@ class NetworkController extends baseControllers.BaseController {
|
|
|
183
190
|
this.blockTracker = blockTracker;
|
|
184
191
|
}
|
|
185
192
|
configureStandardProvider(providerConfig) {
|
|
186
|
-
const networkClient = createJsonRpcClient.createJsonRpcClient(providerConfig, this.config, this.idleTimeTracker);
|
|
193
|
+
const networkClient = createJsonRpcClient.createJsonRpcClient(providerConfig, this.config, this.idleTimeTracker, this.analytics);
|
|
187
194
|
log.info("networkClient", networkClient);
|
|
188
195
|
this.setNetworkClient(networkClient);
|
|
189
196
|
}
|
|
@@ -48,7 +48,7 @@ function createProcessEstimateUserOperationGasMiddleware({
|
|
|
48
48
|
const {
|
|
49
49
|
method
|
|
50
50
|
} = request;
|
|
51
|
-
if (method !== constants.METHOD_TYPES.
|
|
51
|
+
if (method !== constants.METHOD_TYPES.ETH_ESTIMATE_AA_TRANSACTION_GAS) return next();
|
|
52
52
|
if (!processEstimateUserOperationGas) throw new Error("WalletMiddleware - opts.processEstimateUserOperationGas not provided");
|
|
53
53
|
response.result = await processEstimateUserOperationGas(request.params, request);
|
|
54
54
|
});
|
|
@@ -295,15 +295,33 @@ function createRequestAccountsMiddleware({
|
|
|
295
295
|
*/
|
|
296
296
|
function createAAMiddleware({
|
|
297
297
|
bundlerUrl,
|
|
298
|
-
paymasterUrl
|
|
298
|
+
paymasterUrl,
|
|
299
|
+
analytics
|
|
299
300
|
}) {
|
|
300
301
|
// forward request to bundler/paymaster
|
|
301
302
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
302
303
|
const middlewares = [];
|
|
304
|
+
// NOTE: bundler/paymaster rpc only accept number as request id, we need to handle that here if client doesn't handle request id themselves
|
|
305
|
+
const idNumberRemapMiddleware = (req, res, next, _end) => {
|
|
306
|
+
// skip if not bundler/paymaster methods
|
|
307
|
+
if (!constants.BUNDLER_METHOD_TYPES.includes(req.method) && !constants.PAYMASTER_METHOD_TYPES.includes(req.method)) {
|
|
308
|
+
return next();
|
|
309
|
+
}
|
|
310
|
+
const originalId = req.id;
|
|
311
|
+
const newId = Math.floor(Math.random() * 1000000);
|
|
312
|
+
req.id = newId;
|
|
313
|
+
res.id = newId;
|
|
314
|
+
next(done => {
|
|
315
|
+
req.id = originalId;
|
|
316
|
+
res.id = originalId;
|
|
317
|
+
done();
|
|
318
|
+
});
|
|
319
|
+
};
|
|
303
320
|
const bundlerFetchMiddleware = baseControllers.createFetchMiddleware({
|
|
304
|
-
rpcTarget: bundlerUrl
|
|
321
|
+
rpcTarget: bundlerUrl,
|
|
322
|
+
analytics
|
|
305
323
|
});
|
|
306
|
-
|
|
324
|
+
middlewares.push(idNumberRemapMiddleware);
|
|
307
325
|
middlewares.push((request, response, next, end) => {
|
|
308
326
|
if (!constants.BUNDLER_METHOD_TYPES.includes(request.method)) {
|
|
309
327
|
return next();
|
|
@@ -312,7 +330,8 @@ function createAAMiddleware({
|
|
|
312
330
|
});
|
|
313
331
|
if (paymasterUrl) {
|
|
314
332
|
const paymasterFetchMiddleware = baseControllers.createFetchMiddleware({
|
|
315
|
-
rpcTarget: paymasterUrl
|
|
333
|
+
rpcTarget: paymasterUrl,
|
|
334
|
+
analytics
|
|
316
335
|
});
|
|
317
336
|
middlewares.push((request, response, next, end) => {
|
|
318
337
|
if (!constants.PAYMASTER_METHOD_TYPES.includes(request.method)) {
|
|
@@ -323,7 +342,7 @@ function createAAMiddleware({
|
|
|
323
342
|
}
|
|
324
343
|
return auth.mergeMiddleware(middlewares);
|
|
325
344
|
}
|
|
326
|
-
function createEthereumMiddleware(providerHandlers) {
|
|
345
|
+
function createEthereumMiddleware(providerHandlers, analytics) {
|
|
327
346
|
const {
|
|
328
347
|
requestAccounts,
|
|
329
348
|
getAccounts,
|
|
@@ -377,7 +396,8 @@ function createEthereumMiddleware(providerHandlers) {
|
|
|
377
396
|
if (aaConfig) {
|
|
378
397
|
middlewares.push(createAAMiddleware({
|
|
379
398
|
bundlerUrl: aaConfig.bundlerUrl,
|
|
380
|
-
paymasterUrl: aaConfig.paymasterUrl
|
|
399
|
+
paymasterUrl: aaConfig.paymasterUrl,
|
|
400
|
+
analytics
|
|
381
401
|
}));
|
|
382
402
|
}
|
|
383
403
|
return auth.mergeMiddleware(middlewares);
|
|
@@ -29,13 +29,14 @@ function createProviderConfigMiddleware(providerConfig) {
|
|
|
29
29
|
return next();
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
function createJsonRpcClient(providerConfig, networkConfig, idleTimeTracker) {
|
|
32
|
+
function createJsonRpcClient(providerConfig, networkConfig, idleTimeTracker, analytics) {
|
|
33
33
|
const {
|
|
34
34
|
chainId,
|
|
35
35
|
rpcTarget
|
|
36
36
|
} = providerConfig;
|
|
37
37
|
const fetchMiddleware = baseControllers.createFetchMiddleware({
|
|
38
|
-
rpcTarget
|
|
38
|
+
rpcTarget,
|
|
39
|
+
analytics
|
|
39
40
|
});
|
|
40
41
|
const blockProvider = auth.providerFromMiddleware(fetchMiddleware);
|
|
41
42
|
const blockTracker = new PollingBlockTracker.PollingBlockTracker({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseController, IdleTimeTracker, INetworkController } from "@toruslabs/base-controllers";
|
|
1
|
+
import { type Analytics, BaseController, IdleTimeTracker, INetworkController } from "@toruslabs/base-controllers";
|
|
2
2
|
import { SafeEventEmitterProvider } from "@web3auth/auth";
|
|
3
3
|
import { PollingBlockTracker } from "../Block/PollingBlockTracker";
|
|
4
4
|
import { EthereumNetworkConfig, EthereumNetworkState, EthereumProviderConfig, NetworkControllerEvents } from "../utils/interfaces";
|
|
@@ -12,10 +12,12 @@ export declare class NetworkController extends BaseController<EthereumNetworkCon
|
|
|
12
12
|
private blockTracker?;
|
|
13
13
|
private baseProviderHandlers;
|
|
14
14
|
private idleTimeTracker;
|
|
15
|
-
|
|
15
|
+
private analytics?;
|
|
16
|
+
constructor({ config, state, idleTimeTracker, analytics, }: {
|
|
16
17
|
config?: Partial<EthereumNetworkConfig>;
|
|
17
18
|
state?: Partial<EthereumNetworkState>;
|
|
18
19
|
idleTimeTracker: IdleTimeTracker;
|
|
20
|
+
analytics: Analytics;
|
|
19
21
|
});
|
|
20
22
|
getNetworkIdentifier(): string;
|
|
21
23
|
getNetworkRPCUrl(): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InPageWalletProviderState, MessageParams, SwitchChainMessageParams, UserRequestApprovalParams } from "@toruslabs/base-controllers";
|
|
1
|
+
import { type Analytics, InPageWalletProviderState, MessageParams, SwitchChainMessageParams, UserRequestApprovalParams } from "@toruslabs/base-controllers";
|
|
2
2
|
import { JRPCEngineEndCallback, JRPCEngineNextCallback, JRPCMiddleware, JRPCRequest, JRPCResponse } from "@web3auth/auth";
|
|
3
3
|
import { AddChainMessageParams, BlockParams, EthereumTransactionMeta, TransactionParams, TransactionRPCMeta, TypedMessageParams, UserOperationGas } from "../utils/interfaces";
|
|
4
4
|
export interface IProviderHandlers {
|
|
@@ -76,8 +76,9 @@ export declare function createRequestAccountsMiddleware({ requestAccounts, }: {
|
|
|
76
76
|
/**
|
|
77
77
|
* Middleware to handle bundler/paymaster rpc method
|
|
78
78
|
*/
|
|
79
|
-
export declare function createAAMiddleware({ bundlerUrl, paymasterUrl }: {
|
|
79
|
+
export declare function createAAMiddleware({ bundlerUrl, paymasterUrl, analytics, }: {
|
|
80
80
|
bundlerUrl: string;
|
|
81
81
|
paymasterUrl?: string;
|
|
82
|
+
analytics?: Analytics;
|
|
82
83
|
}): JRPCMiddleware<unknown, unknown>;
|
|
83
|
-
export declare function createEthereumMiddleware(providerHandlers: IProviderHandlers): JRPCMiddleware<unknown, unknown>;
|
|
84
|
+
export declare function createEthereumMiddleware(providerHandlers: IProviderHandlers, analytics?: Analytics): JRPCMiddleware<unknown, unknown>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IdleTimeTracker, ProviderConfig } from "@toruslabs/base-controllers";
|
|
1
|
+
import { type Analytics, IdleTimeTracker, ProviderConfig } from "@toruslabs/base-controllers";
|
|
2
2
|
import { JRPCMiddleware } from "@web3auth/auth";
|
|
3
3
|
import { PollingBlockTracker } from "../Block/PollingBlockTracker";
|
|
4
4
|
import { EthereumNetworkConfig } from "../utils/interfaces";
|
|
5
5
|
export declare function createChainIdMiddleware(chainId: string): JRPCMiddleware<unknown, string>;
|
|
6
6
|
export declare function createProviderConfigMiddleware(providerConfig: ProviderConfig): JRPCMiddleware<unknown, ProviderConfig>;
|
|
7
|
-
export declare function createJsonRpcClient(providerConfig: ProviderConfig, networkConfig: EthereumNetworkConfig, idleTimeTracker?: IdleTimeTracker): {
|
|
7
|
+
export declare function createJsonRpcClient(providerConfig: ProviderConfig, networkConfig: EthereumNetworkConfig, idleTimeTracker?: IdleTimeTracker, analytics?: Analytics): {
|
|
8
8
|
networkMiddleware: JRPCMiddleware<unknown, unknown>;
|
|
9
9
|
blockTracker: PollingBlockTracker;
|
|
10
10
|
};
|
|
@@ -31,6 +31,7 @@ export declare const METHOD_TYPES: {
|
|
|
31
31
|
readonly GET_ACCOUNTS: "eth_accounts";
|
|
32
32
|
readonly ETH_TRANSACTION: "eth_sendTransaction";
|
|
33
33
|
readonly ETH_SIGN_TRANSACTION: "eth_signTransaction";
|
|
34
|
+
readonly ETH_ESTIMATE_AA_TRANSACTION_GAS: "eth_estimateAATransactionGas";
|
|
34
35
|
readonly ETH_ESTIMATE_USER_OPERATION_GAS: "eth_estimateUserOperationGas";
|
|
35
36
|
readonly ETH_GET_SUPPORTED_ENTRY_POINTS: "eth_supportedEntryPoints";
|
|
36
37
|
readonly ETH_GET_USER_OPERATION: "eth_getUserOperationByHash";
|
|
@@ -231,6 +231,8 @@ const METHOD_TYPES = {
|
|
|
231
231
|
GET_ACCOUNTS: "eth_accounts",
|
|
232
232
|
ETH_TRANSACTION: "eth_sendTransaction",
|
|
233
233
|
ETH_SIGN_TRANSACTION: "eth_signTransaction",
|
|
234
|
+
// In TransferToken UI of WS, we call this method via JRPC provider to get gas estimation for a user op. Renamed to avoid conflict with bundler's gas estimation method
|
|
235
|
+
ETH_ESTIMATE_AA_TRANSACTION_GAS: "eth_estimateAATransactionGas",
|
|
234
236
|
// start bundler methods
|
|
235
237
|
ETH_ESTIMATE_USER_OPERATION_GAS: "eth_estimateUserOperationGas",
|
|
236
238
|
ETH_GET_SUPPORTED_ENTRY_POINTS: "eth_supportedEntryPoints",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
2
2
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
|
-
import { BaseController, createSwappableProxy, createEventEmitterProxy } from '@toruslabs/base-controllers';
|
|
4
|
+
import { BaseController, createAnalyticsMiddleware, createSwappableProxy, createEventEmitterProxy } from '@toruslabs/base-controllers';
|
|
5
5
|
import { JRPCEngine, providerFromEngine } from '@web3auth/auth';
|
|
6
6
|
import { Mutex } from 'async-mutex';
|
|
7
7
|
import log from 'loglevel';
|
|
@@ -14,7 +14,8 @@ class NetworkController extends BaseController {
|
|
|
14
14
|
constructor({
|
|
15
15
|
config,
|
|
16
16
|
state,
|
|
17
|
-
idleTimeTracker
|
|
17
|
+
idleTimeTracker,
|
|
18
|
+
analytics
|
|
18
19
|
}) {
|
|
19
20
|
super({
|
|
20
21
|
config,
|
|
@@ -28,6 +29,7 @@ class NetworkController extends BaseController {
|
|
|
28
29
|
_defineProperty(this, "blockTracker", null);
|
|
29
30
|
_defineProperty(this, "baseProviderHandlers", void 0);
|
|
30
31
|
_defineProperty(this, "idleTimeTracker", void 0);
|
|
32
|
+
_defineProperty(this, "analytics", void 0);
|
|
31
33
|
this.defaultState = {
|
|
32
34
|
chainId: "loading",
|
|
33
35
|
properties: {
|
|
@@ -35,6 +37,7 @@ class NetworkController extends BaseController {
|
|
|
35
37
|
},
|
|
36
38
|
providerConfig: SUPPORTED_NETWORKS[MAINNET_CHAIN_ID]
|
|
37
39
|
};
|
|
40
|
+
this.analytics = analytics;
|
|
38
41
|
|
|
39
42
|
// when a new network is set,
|
|
40
43
|
// we set to loading first and
|
|
@@ -148,8 +151,12 @@ class NetworkController extends BaseController {
|
|
|
148
151
|
networkMiddleware,
|
|
149
152
|
blockTracker
|
|
150
153
|
}) {
|
|
151
|
-
const ethereumMiddleware = createEthereumMiddleware(this.baseProviderHandlers);
|
|
154
|
+
const ethereumMiddleware = createEthereumMiddleware(this.baseProviderHandlers, this.analytics);
|
|
152
155
|
const engine = new JRPCEngine();
|
|
156
|
+
engine.push(createAnalyticsMiddleware({
|
|
157
|
+
analytics: this.analytics,
|
|
158
|
+
providerConfig: this.getProviderConfig()
|
|
159
|
+
}));
|
|
153
160
|
engine.push(ethereumMiddleware);
|
|
154
161
|
engine.push(networkMiddleware);
|
|
155
162
|
const provider = providerFromEngine(engine);
|
|
@@ -185,7 +192,7 @@ class NetworkController extends BaseController {
|
|
|
185
192
|
this.blockTracker = blockTracker;
|
|
186
193
|
}
|
|
187
194
|
configureStandardProvider(providerConfig) {
|
|
188
|
-
const networkClient = createJsonRpcClient(providerConfig, this.config, this.idleTimeTracker);
|
|
195
|
+
const networkClient = createJsonRpcClient(providerConfig, this.config, this.idleTimeTracker, this.analytics);
|
|
189
196
|
log.info("networkClient", networkClient);
|
|
190
197
|
this.setNetworkClient(networkClient);
|
|
191
198
|
}
|
|
@@ -46,7 +46,7 @@ function createProcessEstimateUserOperationGasMiddleware({
|
|
|
46
46
|
const {
|
|
47
47
|
method
|
|
48
48
|
} = request;
|
|
49
|
-
if (method !== METHOD_TYPES.
|
|
49
|
+
if (method !== METHOD_TYPES.ETH_ESTIMATE_AA_TRANSACTION_GAS) return next();
|
|
50
50
|
if (!processEstimateUserOperationGas) throw new Error("WalletMiddleware - opts.processEstimateUserOperationGas not provided");
|
|
51
51
|
response.result = await processEstimateUserOperationGas(request.params, request);
|
|
52
52
|
});
|
|
@@ -294,15 +294,34 @@ function createRequestAccountsMiddleware({
|
|
|
294
294
|
*/
|
|
295
295
|
function createAAMiddleware({
|
|
296
296
|
bundlerUrl,
|
|
297
|
-
paymasterUrl
|
|
297
|
+
paymasterUrl,
|
|
298
|
+
analytics
|
|
298
299
|
}) {
|
|
299
300
|
// forward request to bundler/paymaster
|
|
300
301
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
301
302
|
const middlewares = [];
|
|
303
|
+
|
|
304
|
+
// NOTE: bundler/paymaster rpc only accept number as request id, we need to handle that here if client doesn't handle request id themselves
|
|
305
|
+
const idNumberRemapMiddleware = (req, res, next, _end) => {
|
|
306
|
+
// skip if not bundler/paymaster methods
|
|
307
|
+
if (!BUNDLER_METHOD_TYPES.includes(req.method) && !PAYMASTER_METHOD_TYPES.includes(req.method)) {
|
|
308
|
+
return next();
|
|
309
|
+
}
|
|
310
|
+
const originalId = req.id;
|
|
311
|
+
const newId = Math.floor(Math.random() * 1000000);
|
|
312
|
+
req.id = newId;
|
|
313
|
+
res.id = newId;
|
|
314
|
+
next(done => {
|
|
315
|
+
req.id = originalId;
|
|
316
|
+
res.id = originalId;
|
|
317
|
+
done();
|
|
318
|
+
});
|
|
319
|
+
};
|
|
302
320
|
const bundlerFetchMiddleware = createFetchMiddleware({
|
|
303
|
-
rpcTarget: bundlerUrl
|
|
321
|
+
rpcTarget: bundlerUrl,
|
|
322
|
+
analytics
|
|
304
323
|
});
|
|
305
|
-
|
|
324
|
+
middlewares.push(idNumberRemapMiddleware);
|
|
306
325
|
middlewares.push((request, response, next, end) => {
|
|
307
326
|
if (!BUNDLER_METHOD_TYPES.includes(request.method)) {
|
|
308
327
|
return next();
|
|
@@ -311,7 +330,8 @@ function createAAMiddleware({
|
|
|
311
330
|
});
|
|
312
331
|
if (paymasterUrl) {
|
|
313
332
|
const paymasterFetchMiddleware = createFetchMiddleware({
|
|
314
|
-
rpcTarget: paymasterUrl
|
|
333
|
+
rpcTarget: paymasterUrl,
|
|
334
|
+
analytics
|
|
315
335
|
});
|
|
316
336
|
middlewares.push((request, response, next, end) => {
|
|
317
337
|
if (!PAYMASTER_METHOD_TYPES.includes(request.method)) {
|
|
@@ -322,7 +342,7 @@ function createAAMiddleware({
|
|
|
322
342
|
}
|
|
323
343
|
return mergeMiddleware(middlewares);
|
|
324
344
|
}
|
|
325
|
-
function createEthereumMiddleware(providerHandlers) {
|
|
345
|
+
function createEthereumMiddleware(providerHandlers, analytics) {
|
|
326
346
|
const {
|
|
327
347
|
requestAccounts,
|
|
328
348
|
getAccounts,
|
|
@@ -376,7 +396,8 @@ function createEthereumMiddleware(providerHandlers) {
|
|
|
376
396
|
if (aaConfig) {
|
|
377
397
|
middlewares.push(createAAMiddleware({
|
|
378
398
|
bundlerUrl: aaConfig.bundlerUrl,
|
|
379
|
-
paymasterUrl: aaConfig.paymasterUrl
|
|
399
|
+
paymasterUrl: aaConfig.paymasterUrl,
|
|
400
|
+
analytics
|
|
380
401
|
}));
|
|
381
402
|
}
|
|
382
403
|
return mergeMiddleware(middlewares);
|
|
@@ -27,13 +27,14 @@ function createProviderConfigMiddleware(providerConfig) {
|
|
|
27
27
|
return next();
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
function createJsonRpcClient(providerConfig, networkConfig, idleTimeTracker) {
|
|
30
|
+
function createJsonRpcClient(providerConfig, networkConfig, idleTimeTracker, analytics) {
|
|
31
31
|
const {
|
|
32
32
|
chainId,
|
|
33
33
|
rpcTarget
|
|
34
34
|
} = providerConfig;
|
|
35
35
|
const fetchMiddleware = createFetchMiddleware({
|
|
36
|
-
rpcTarget
|
|
36
|
+
rpcTarget,
|
|
37
|
+
analytics
|
|
37
38
|
});
|
|
38
39
|
const blockProvider = providerFromMiddleware(fetchMiddleware);
|
|
39
40
|
const blockTracker = new PollingBlockTracker({
|
|
@@ -229,6 +229,8 @@ const METHOD_TYPES = {
|
|
|
229
229
|
GET_ACCOUNTS: "eth_accounts",
|
|
230
230
|
ETH_TRANSACTION: "eth_sendTransaction",
|
|
231
231
|
ETH_SIGN_TRANSACTION: "eth_signTransaction",
|
|
232
|
+
// In TransferToken UI of WS, we call this method via JRPC provider to get gas estimation for a user op. Renamed to avoid conflict with bundler's gas estimation method
|
|
233
|
+
ETH_ESTIMATE_AA_TRANSACTION_GAS: "eth_estimateAATransactionGas",
|
|
232
234
|
// start bundler methods
|
|
233
235
|
ETH_ESTIMATE_USER_OPERATION_GAS: "eth_estimateUserOperationGas",
|
|
234
236
|
ETH_GET_SUPPORTED_ENTRY_POINTS: "eth_supportedEntryPoints",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toruslabs/ethereum-controllers",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.5.0",
|
|
4
4
|
"homepage": "https://github.com/torusresearch/controllers#readme",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@ethereumjs/util": "^9.1.0",
|
|
23
23
|
"@metamask/delegation-toolkit": "^0.11.0",
|
|
24
|
-
"@toruslabs/base-controllers": "^8.
|
|
24
|
+
"@toruslabs/base-controllers": "^8.5.0",
|
|
25
25
|
"@toruslabs/http-helpers": "^8.1.1",
|
|
26
26
|
"@web3auth/auth": "^10.4.1",
|
|
27
27
|
"async-mutex": "^0.5.0",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "8337c32aaff845838d7ca69da92b94ca991e4df9",
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@typechain/ethers-v6": "^0.5.1",
|
|
69
69
|
"typechain": "^8.3.2"
|