aboutsummaryrefslogtreecommitdiffstats
path: root/packages/subproviders
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-05-24 03:01:38 +0800
committerGitHub <noreply@github.com>2018-05-24 03:01:38 +0800
commit513007a82ce9065d44694516bc94771ee4bc2c6f (patch)
treefe156fa4bb2dc5fecd2df4dd1fcd82e1e3007821 /packages/subproviders
parentaf0d9439d4f4e05fce8018665e375cf2db07184c (diff)
parentbf18a90da79d43e90901b0cd156f15398e215d91 (diff)
downloaddexon-sol-tools-513007a82ce9065d44694516bc94771ee4bc2c6f.tar
dexon-sol-tools-513007a82ce9065d44694516bc94771ee4bc2c6f.tar.gz
dexon-sol-tools-513007a82ce9065d44694516bc94771ee4bc2c6f.tar.bz2
dexon-sol-tools-513007a82ce9065d44694516bc94771ee4bc2c6f.tar.lz
dexon-sol-tools-513007a82ce9065d44694516bc94771ee4bc2c6f.tar.xz
dexon-sol-tools-513007a82ce9065d44694516bc94771ee4bc2c6f.tar.zst
dexon-sol-tools-513007a82ce9065d44694516bc94771ee4bc2c6f.zip
Merge pull request #589 from 0xProject/feature/truffle-sol-cov
Sol-cov artifact Adapters (truffle)
Diffstat (limited to 'packages/subproviders')
-rw-r--r--packages/subproviders/src/index.ts1
-rw-r--r--packages/subproviders/src/utils/subprovider_utils.ts15
2 files changed, 16 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..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];
+}