aboutsummaryrefslogtreecommitdiffstats
path: root/packages/subproviders/src/utils/subprovider_utils.ts
blob: f63699de20989d9c3bc46d4e92214ce38c07cc44 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import Web3ProviderEngine = require('@dexon-foundation/web3-provider-engine');

import { Subprovider } from '../subproviders/subprovider';

/**
 * Prepends a subprovider to a provider
 * @param provider    Given provider
 * @param subprovider Subprovider to prepend
 */
export function prependSubprovider(provider: Web3ProviderEngine, subprovider: Subprovider): void {
    subprovider.setEngine(provider);
    // HACK: We use implementation details of provider engine here
    // https://github.com/MetaMask/provider-engine/blob/master/index.js#L68
    (provider as any)._providers = [subprovider, ...(provider as any)._providers];
}