Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
connect ({dispatch, commit, getters, state}) {
let providerEngine = null
if (window.web3) {
providerEngine = window.web3.currentProvider
} else {
const ROPSTEN_ENDPOINT = 'https://infura.io'
providerEngine = new ProviderEngine()
providerEngine.addProvider(new FilterSubprovider())
providerEngine.addProvider(new RpcSubprovider({rpcUrl: ROPSTEN_ENDPOINT}))
providerEngine.start()
}
zeroEx = new ZeroEx(providerEngine)
zeroEx._web3Wrapper.web3.version.getNetwork((error, response) => {
if (error) console.error(error)
if (parseInt(response) === 42 && window.location.hostname !== 'kovan.0xchange.me') {
window.location.href = 'https://kovan.0xchange.me'
} else if (parseInt(response) === 1 && window.location.hostname === 'kovan.0xchange.me') {
window.location.href = 'https://0xchange.me'
}
})
// commit('SET_ZERO_EX', zeroEx)
// 3117574 kovan
// 4145578 mainnet
// zeroEx.exchange.getLogsAsync('LogFill', {fromBlock: 4219261, toBlock: 'latest'}, {}).then((logs) => {
const initWeb3 = async function () {
// Checking if Web3 has been injected by the browser (Mist/MetaMask/Parity)
if (typeof window.web3 !== 'undefined') {
console.info('web3 already exists');
externalWeb3 = true;
} else {
const dummyWeb3 = new Web3(new Web3.providers.HttpProvider(NODE_URL));
const getNetworkId = promisify(dummyWeb3.version.getNetwork);
const engine = new ProviderEngine();
const ledgerWalletSubProvider = await LedgerWalletSubproviderFactory(getNetworkId, Config.derivationPath, true);
ledger = ledgerWalletSubProvider.ledger;
engine.addProvider(ledgerWalletSubProvider);
engine.addProvider(new RpcSubprovider({
rpcUrl: NODE_URL,
}));
engine.start();
window.web3 = new Web3(engine);
externalWeb3 = false;
}
};
return (_network, _web3) => {
ethNetwork = Network.fromJson(_network);
const rpcUrl = `${ethNetwork.fullhost()}`;
const engine = new ProviderEngine();
const web3 = new _web3(engine);
const walletSubprovider = new HookedWalletSubprovider(new ScatterEthereumWallet());
engine.addProvider(walletSubprovider);
if(ethNetwork.protocol.indexOf('http') > -1) engine.addProvider(new RpcSubprovider({rpcUrl}));
else engine.addProvider(new WebsocketSubprovider({rpcUrl}));
engine.start();
return web3;
}
}
constructor(opts) {
const rpcUrl = opts.rpcUrl || 'http://localhost:8545'
const engine = new ProviderEngine()
const subprovider = new WalletConnectSubprovider(opts)
engine.addProvider(subprovider)
engine.addProvider(new RpcSubprovider({ rpcUrl }))
engine.start()
}
}
const getCachedInstance = (network, wallet = null) => {
const key = network.unique() + (wallet ? wallet.getAccounts()[0] : '');
if(cachedInstances.hasOwnProperty(key)) return cachedInstances[key];
else {
const engine = new ProviderEngine();
const web3 = new Web3(engine);
if(wallet) engine.addProvider(new HookedWalletSubprovider(wallet));
const rpcUrl = network.host === 'ethnodes.get-scatter.com' ? 'https://commonly-classic-katydid.quiknode.io/d0bf98e7-a866-43d4-ac71-2397fd1b3aba/dQsznyrZRg2dr4DQJNPDgw==/' : network.fullhost();
engine.addProvider(new RpcSubprovider({rpcUrl}));
engine.start();
cachedInstances[key] = [web3, engine];
return cachedInstances[key];
}
}
export const getDefaultWeb3 = () => {
const engine = new ProviderEngine()
engine.addProvider(
new RpcSubprovider({
rpcUrl: RPC_HOST
})
)
engine.start()
return {
web3: new Web3(engine)
}
}