aboutsummaryrefslogtreecommitdiffstats
path: root/packages/subproviders
diff options
context:
space:
mode:
Diffstat (limited to 'packages/subproviders')
-rw-r--r--packages/subproviders/src/index.ts1
-rw-r--r--packages/subproviders/src/utils/subprovider_utils.ts13
2 files changed, 14 insertions, 0 deletions
diff --git a/packages/subproviders/src/index.ts b/packages/subproviders/src/index.ts
index ff28b8a8d..6cc650a4d 100644
--- a/packages/subproviders/src/index.ts
+++ b/packages/subproviders/src/index.ts
@@ -4,6 +4,7 @@ export { ECSignature } from '@0xproject/types';
import { LedgerEthereumClient } from './types';
+export { prependSubprovider } from './utils/subprovider_utils';
export { EmptyWalletSubprovider } from './subproviders/empty_wallet_subprovider';
export { FakeGasEstimateSubprovider } from './subproviders/fake_gas_estimate_subprovider';
export { InjectedWeb3Subprovider } from './subproviders/injected_web3';
diff --git a/packages/subproviders/src/utils/subprovider_utils.ts b/packages/subproviders/src/utils/subprovider_utils.ts
new file mode 100644
index 000000000..380f98606
--- /dev/null
+++ b/packages/subproviders/src/utils/subprovider_utils.ts
@@ -0,0 +1,13 @@
+import ProviderEngine = require('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: ProviderEngine, subprovider: Subprovider): void {
+ subprovider.setEngine(provider);
+ (provider as any)._providers = [subprovider, ...(provider as any)._providers];
+}