diff --git a/test/core/providers/mocks.ts b/test/core/providers/mocks.ts index 3d3394cd83..bdc9724831 100644 --- a/test/core/providers/mocks.ts +++ b/test/core/providers/mocks.ts @@ -18,7 +18,7 @@ export class ParamsReturningProvider extends EventEmitter export class CountProvider extends EventEmitter implements IEthereumProvider { public transactionsCountParams: any[] | undefined = undefined; - + public numberOfCallsToNetVersion: number = 0; public async send(method: string, params?: any[]): Promise { if (method === "eth_getTransactionCount") { this.transactionsCountParams = params; @@ -26,6 +26,7 @@ export class CountProvider extends EventEmitter implements IEthereumProvider { } if (method === "net_version") { + this.numberOfCallsToNetVersion += 1; return 123; } diff --git a/test/core/providers/network.ts b/test/core/providers/network.ts index 5fa38cbe22..984e8a3cc8 100644 --- a/test/core/providers/network.ts +++ b/test/core/providers/network.ts @@ -1,23 +1,15 @@ import { assert } from "chai"; -import { bufferToHex, privateToAddress } from "ethereumjs-util"; -import { EventEmitter } from "events"; import { Tx } from "web3x/eth"; import { expectErrorAsync } from "../../helpers/errors"; -import { - createAccountProvider, - createHDWalletProvider, - createLocalAccountsProvider -} from "../../../src/core/providers/accounts"; import { IEthereumProvider } from "../../../src/core/providers/ethereum"; import { createNetworkProvider } from "../../../src/core/providers/network"; -import { wrapSend } from "../../../src/core/providers/wrapper"; import { CountProvider } from "./mocks"; describe("Network provider", () => { - let mock: IEthereumProvider; + let mock: CountProvider; let wrapper: IEthereumProvider; let tx: Tx; let validChainId: number; @@ -66,4 +58,34 @@ describe("Network provider", () => { const response = await wrapper.send("eth_sendTransaction", [tx]); assert.equal(response[0].chainId, validChainId); }); + + it("Should get the chainId if not provided, caching it", async () => { + assert.equal(mock.numberOfCallsToNetVersion, 0); + + await wrapper.send("eth_sendTransaction", [ + { + from: "0xb5bc06d4548a3ac17d72b372ae1e416bf65b8ead", + to: "0xb5bc06d4548a3ac17d72b372ae1e416bf65b8ead", + gas: 21000, + gasPrice: 678912, + nonce: 1, + value: 1 + } + ]); + + assert.equal(mock.numberOfCallsToNetVersion, 1); + + await wrapper.send("eth_sendTransaction", [ + { + from: "0xb5bc06d4548a3ac17d72b372ae1e416bf65b8ead", + to: "0xb5bc06d4548a3ac17d72b372ae1e416bf65b8ead", + gas: 21000, + gasPrice: 678912, + nonce: 1, + value: 1 + } + ]); + + assert.equal(mock.numberOfCallsToNetVersion, 1); + }); });