Skip to content

Commit da59b11

Browse files
authored
adapt to eip-1193 provider changes (#384)
* adapt to eip-1193 provider changes: sendAsync deprecated, use request instead. * replace mockProvider with getFakeProvider from test-helpers
1 parent a2df165 commit da59b11

File tree

6 files changed

+31
-10
lines changed

6 files changed

+31
-10
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"@ethersproject/bytes": "^5.7.0",
3232
"@metamask/base-controller": "^6.0.0",
3333
"@metamask/controller-utils": "^11.0.0",
34+
"@metamask/eth-json-rpc-provider": "^4.1.0",
3435
"@metamask/eth-query": "^4.0.0",
3536
"@metamask/network-controller": "^19.0.0",
3637
"@metamask/polling-controller": "^8.0.0",
@@ -47,6 +48,7 @@
4748
"@metamask/eslint-config-jest": "^12.1.0",
4849
"@metamask/eslint-config-nodejs": "^12.1.0",
4950
"@metamask/eslint-config-typescript": "^12.1.0",
51+
"@metamask/json-rpc-engine": "^9.0.0",
5052
"@types/jest": "^26.0.24",
5153
"@types/lodash": "^4.14.194",
5254
"@types/node": "^18.19.17",

src/SmartTransactionsController.test.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { API_BASE_URL } from './constants';
1818
import SmartTransactionsController, {
1919
DEFAULT_INTERVAL,
2020
} from './SmartTransactionsController';
21-
import { advanceTime, flushPromises } from './test-helpers';
21+
import { advanceTime, flushPromises, getFakeProvider } from './test-helpers';
2222
import type { SmartTransaction, UnsignedTransaction, Hex } from './types';
2323
import { SmartTransactionStatuses } from './types';
2424
import * as utils from './utils';
@@ -342,13 +342,9 @@ const defaultState = {
342342
},
343343
};
344344

345-
const mockProvider = {
346-
sendAsync: jest.fn(),
347-
};
348-
349345
const mockProviderConfig = {
350346
chainId: ChainId.mainnet,
351-
provider: mockProvider,
347+
provider: getFakeProvider(),
352348
type: NetworkType.mainnet,
353349
ticker: 'ticker',
354350
};
@@ -391,7 +387,7 @@ describe('SmartTransactionsController', () => {
391387
releaseLock: jest.fn(),
392388
};
393389
}),
394-
provider: { sendAsync: jest.fn() },
390+
provider: getFakeProvider(),
395391
confirmExternalTransaction: jest.fn(),
396392
getTransactions: jest.fn(),
397393
trackMetaMetricsEvent: trackMetaMetricsEventSpy,

src/SmartTransactionsController.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { hexlify } from '@ethersproject/bytes';
33
import type { BaseConfig, BaseState } from '@metamask/base-controller';
44
import { query, safelyExecute, ChainId } from '@metamask/controller-utils';
5-
import type { Provider } from '@metamask/eth-query';
5+
import type { SafeEventEmitterProvider } from '@metamask/eth-json-rpc-provider';
66
import EthQuery from '@metamask/eth-query';
77
import type {
88
NetworkClientId,
@@ -133,7 +133,7 @@ export default class SmartTransactionsController extends StaticIntervalPollingCo
133133
listener: (networkState: NetworkState) => void,
134134
) => void;
135135
getNonceLock: any;
136-
provider: Provider;
136+
provider: SafeEventEmitterProvider;
137137
confirmExternalTransaction: any;
138138
getTransactions: (options?: GetTransactionsOptions) => TransactionMeta[];
139139
trackMetaMetricsEvent: any;

src/index.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import DefaultExport from '.';
22
import SmartTransactionsController from './SmartTransactionsController';
3+
import { getFakeProvider } from './test-helpers';
34

45
describe('default export', () => {
56
it('exports SmartTransactionsController', () => {
67
jest.useFakeTimers();
78
const controller = new DefaultExport({
89
onNetworkStateChange: jest.fn(),
910
getNonceLock: null,
10-
provider: { sendAsync: jest.fn() },
11+
provider: getFakeProvider(),
1112
confirmExternalTransaction: jest.fn(),
1213
getTransactions: jest.fn(),
1314
trackMetaMetricsEvent: jest.fn(),

src/test-helpers.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import { providerFromEngine } from '@metamask/eth-json-rpc-provider';
2+
import { JsonRpcEngine } from '@metamask/json-rpc-engine';
3+
14
/**
25
* Resolve all pending promises.
36
* This method is used for async tests that use fake timers.
@@ -35,3 +38,7 @@ export async function advanceTime({
3538
duration -= stepSize;
3639
} while (duration > 0);
3740
}
41+
42+
export function getFakeProvider() {
43+
return providerFromEngine(new JsonRpcEngine());
44+
}

yarn.lock

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1565,6 +1565,19 @@ __metadata:
15651565
languageName: node
15661566
linkType: hard
15671567

1568+
"@metamask/eth-json-rpc-provider@npm:^4.1.0":
1569+
version: 4.1.0
1570+
resolution: "@metamask/eth-json-rpc-provider@npm:4.1.0"
1571+
dependencies:
1572+
"@metamask/json-rpc-engine": ^9.0.0
1573+
"@metamask/rpc-errors": ^6.2.1
1574+
"@metamask/safe-event-emitter": ^3.0.0
1575+
"@metamask/utils": ^8.3.0
1576+
uuid: ^8.3.2
1577+
checksum: c9669c93df073423d36ff941b512247b569e7f7c56cc6110565bc8dc6590ad691a78d6d17eea6243721c1c464f0f008ea1326fc7373f90fb705fba5fb85d804d
1578+
languageName: node
1579+
linkType: hard
1580+
15681581
"@metamask/eth-query@npm:^4.0.0":
15691582
version: 4.0.0
15701583
resolution: "@metamask/eth-query@npm:4.0.0"
@@ -2071,7 +2084,9 @@ __metadata:
20712084
"@metamask/eslint-config-jest": ^12.1.0
20722085
"@metamask/eslint-config-nodejs": ^12.1.0
20732086
"@metamask/eslint-config-typescript": ^12.1.0
2087+
"@metamask/eth-json-rpc-provider": ^4.1.0
20742088
"@metamask/eth-query": ^4.0.0
2089+
"@metamask/json-rpc-engine": ^9.0.0
20752090
"@metamask/network-controller": ^19.0.0
20762091
"@metamask/polling-controller": ^8.0.0
20772092
"@metamask/transaction-controller": ^34.0.0

0 commit comments

Comments
 (0)