UNPKG

@pooltogether/bnc-onboard

Version:

Onboard users to web3 by allowing them to select a wallet, get that wallet ready to transact and have access to synced wallet state.

46 lines (44 loc) 1.85 kB
import 'regenerator-runtime/runtime'; import { g as get_store_value, a as app } from './onboard-e5452153.js'; import 'bignumber.js'; import 'bnc-sdk'; import 'bowser'; import Web3ProviderEngine from 'web3-provider-engine'; import RpcSource from 'web3-provider-engine/subproviders/rpc'; import HookedWalletSubprovider from 'web3-provider-engine/subproviders/hooked-wallet'; import SubscriptionSubprovider from 'web3-provider-engine/subproviders/subscriptions'; import FilterSubprovider from 'web3-provider-engine/subproviders/filters'; function createProvider(config) { var getAccounts = config.getAccounts, signTransaction = config.signTransaction, rpcUrl = config.rpcUrl, processMessage = config.processMessage, processPersonalMessage = config.processPersonalMessage, signMessage = config.signMessage, signPersonalMessage = config.signPersonalMessage, signTypedMessage = config.signTypedMessage; var pollingInterval = get_store_value(app).blockPollingInterval; var idMgmt = getAccounts && new HookedWalletSubprovider({ getAccounts: getAccounts, signTransaction: signTransaction, processMessage: processMessage, processPersonalMessage: processPersonalMessage, signMessage: signMessage, signPersonalMessage: signPersonalMessage, signTypedMessage: signTypedMessage }); var rpcSubProvider = new RpcSource({ rpcUrl: rpcUrl.includes('http') ? rpcUrl : "https://".concat(rpcUrl) }); var provider = new Web3ProviderEngine({ pollingInterval: pollingInterval }); provider.addProvider(new SubscriptionSubprovider()); provider.addProvider(new FilterSubprovider()); idMgmt && provider.addProvider(idMgmt); provider.addProvider(rpcSubProvider); provider.start(); provider.on('error', console.error); return provider; } export default createProvider;