Add support for EIP1193 providers and clean up provider standardization logic
This commit is contained in:
@@ -37,7 +37,6 @@
|
||||
"@ledgerhq/hw-app-eth": "^4.3.0",
|
||||
"@ledgerhq/hw-transport-u2f": "4.24.0",
|
||||
"@types/eth-lightwallet": "^3.0.0",
|
||||
"@types/ganache-core": "^2.1.2",
|
||||
"@types/hdkey": "^0.7.0",
|
||||
"@types/web3-provider-engine": "^14.0.0",
|
||||
"bip39": "^2.5.0",
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { JSONRPCRequestPayload, Provider } from 'ethereum-types';
|
||||
import { GanacheProvider, JSONRPCRequestPayload } from 'ethereum-types';
|
||||
import * as Ganache from 'ganache-core';
|
||||
|
||||
import { Callback, ErrorCallback } from '../types';
|
||||
@@ -10,7 +10,7 @@ import { Subprovider } from './subprovider';
|
||||
* It intercepts all JSON RPC requests and relays them to an in-process ganache instance.
|
||||
*/
|
||||
export class GanacheSubprovider extends Subprovider {
|
||||
private readonly _ganacheProvider: Provider;
|
||||
private readonly _ganacheProvider: GanacheProvider;
|
||||
/**
|
||||
* Instantiates a GanacheSubprovider
|
||||
* @param opts The desired opts with which to instantiate the Ganache provider
|
||||
|
@@ -1,5 +1,6 @@
|
||||
import { providerUtils } from '@0x/utils';
|
||||
import { marshaller, Web3Wrapper } from '@0x/web3-wrapper';
|
||||
import { JSONRPCRequestPayload, Provider } from 'ethereum-types';
|
||||
import { JSONRPCRequestPayload, Web3WrapperProvider } from 'ethereum-types';
|
||||
import * as ethUtil from 'ethereumjs-util';
|
||||
|
||||
import { Callback, ErrorCallback } from '../types';
|
||||
@@ -16,15 +17,16 @@ import { Subprovider } from './subprovider';
|
||||
*/
|
||||
export class MetamaskSubprovider extends Subprovider {
|
||||
private readonly _web3Wrapper: Web3Wrapper;
|
||||
private readonly _provider: Provider;
|
||||
private readonly _provider: Web3WrapperProvider;
|
||||
/**
|
||||
* Instantiates a new MetamaskSubprovider
|
||||
* @param provider Web3 provider that should handle all user account related requests
|
||||
*/
|
||||
constructor(provider: Provider) {
|
||||
constructor(provider: Web3WrapperProvider) {
|
||||
super();
|
||||
this._web3Wrapper = new Web3Wrapper(provider);
|
||||
this._provider = provider;
|
||||
const web3WrapperProvider = providerUtils.standardizeOrThrow(provider);
|
||||
this._provider = web3WrapperProvider;
|
||||
}
|
||||
/**
|
||||
* This method conforms to the web3-provider-engine interface.
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { promisify } from '@0x/utils';
|
||||
import { JSONRPCRequestPayload, JSONRPCResponsePayload, Provider } from 'ethereum-types';
|
||||
import { JSONRPCRequestPayload, JSONRPCResponsePayload, ProviderEngineProvider } from 'ethereum-types';
|
||||
|
||||
import { Callback, ErrorCallback, JSONRPCRequestPayloadWithMethod } from '../types';
|
||||
/**
|
||||
@@ -8,7 +8,7 @@ import { Callback, ErrorCallback, JSONRPCRequestPayloadWithMethod } from '../typ
|
||||
*/
|
||||
export abstract class Subprovider {
|
||||
// tslint:disable-next-line:underscore-private-and-protected
|
||||
private engine!: Provider;
|
||||
private engine!: ProviderEngineProvider;
|
||||
protected static _createFinalPayload(
|
||||
payload: Partial<JSONRPCRequestPayloadWithMethod>,
|
||||
): Partial<JSONRPCRequestPayloadWithMethod> {
|
||||
@@ -64,7 +64,7 @@ export abstract class Subprovider {
|
||||
* directly.
|
||||
* @param engine The ProviderEngine this subprovider is added to
|
||||
*/
|
||||
public setEngine(engine: Provider): void {
|
||||
public setEngine(engine: ProviderEngineProvider): void {
|
||||
this.engine = engine;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user