aboutsummaryrefslogtreecommitdiffstats
path: root/packages/subproviders/src/utils/subprovider_utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/subproviders/src/utils/subprovider_utils.ts')
-rw-r--r--packages/subproviders/src/utils/subprovider_utils.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/packages/subproviders/src/utils/subprovider_utils.ts b/packages/subproviders/src/utils/subprovider_utils.ts
new file mode 100644
index 000000000..24ebedd06
--- /dev/null
+++ b/packages/subproviders/src/utils/subprovider_utils.ts
@@ -0,0 +1,15 @@
+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);
+ // 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];
+}