diff options
Diffstat (limited to 'mascara/src/background.js')
-rw-r--r-- | mascara/src/background.js | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/mascara/src/background.js b/mascara/src/background.js deleted file mode 100644 index d8d1c8c54..000000000 --- a/mascara/src/background.js +++ /dev/null @@ -1,134 +0,0 @@ -global.window = global - -const SwGlobalListener = require('sw-stream/lib/sw-global-listener.js') -const connectionListener = new SwGlobalListener(global) -const setupMultiplex = require('../../app/scripts/lib/stream-utils.js').setupMultiplex - -const DbController = require('idb-global') - -const SwPlatform = require('../../app/scripts/platforms/sw') -const MetamaskController = require('../../app/scripts/metamask-controller') - -const Migrator = require('../../app/scripts/lib/migrator/') -const migrations = require('../../app/scripts/migrations/') -const firstTimeState = require('../../app/scripts/first-time-state') - -const STORAGE_KEY = 'metamask-config' -const METAMASK_DEBUG = process.env.METAMASK_DEBUG -global.metamaskPopupIsOpen = false - -const log = require('loglevel') -global.log = log -log.setDefaultLevel(METAMASK_DEBUG ? 'debug' : 'warn') - -global.addEventListener('install', function (event) { - event.waitUntil(global.skipWaiting()) -}) -global.addEventListener('activate', function (event) { - event.waitUntil(global.clients.claim()) -}) - -log.debug('inside:open') - -// state persistence -const dbController = new DbController({ - key: STORAGE_KEY, -}) - -start().catch(log.error) - -async function start () { - log.debug('MetaMask initializing...') - const initState = await loadStateFromPersistence() - await setupController(initState) - log.debug('MetaMask initialization complete.') -} - -// -// State and Persistence -// -async function loadStateFromPersistence () { - // migrations - const migrator = new Migrator({ migrations }) - const initialState = migrator.generateInitialState(firstTimeState) - dbController.initialState = initialState - const versionedData = await dbController.open() - const migratedData = await migrator.migrateData(versionedData) - await dbController.put(migratedData) - return migratedData.data -} - -async function setupController (initState, client) { - - // - // MetaMask Controller - // - - const platform = new SwPlatform() - - const controller = new MetamaskController({ - // platform specific implementation - platform, - // User confirmation callbacks: - showUnconfirmedMessage: noop, - unlockAccountMessage: noop, - showUnapprovedTx: noop, - // initial state - initState, - }) - global.metamaskController = controller - - controller.store.subscribe(async (state) => { - try { - const versionedData = await versionifyData(state) - await dbController.put(versionedData) - } catch (e) { console.error('METAMASK Error:', e) } - }) - - async function versionifyData (state) { - const rawData = await dbController.get() - return { - data: state, - meta: rawData.meta, - } - } - - // - // connect to other contexts - // - - connectionListener.on('remote', (portStream, messageEvent) => { - log.debug('REMOTE CONECTION FOUND***********') - connectRemote(portStream, messageEvent.data.context) - }) - - function connectRemote (connectionStream, context) { - var isMetaMaskInternalProcess = (context === 'popup') - if (isMetaMaskInternalProcess) { - // communication with popup - controller.setupTrustedCommunication(connectionStream, 'MetaMask') - global.metamaskPopupIsOpen = true - } else { - // communication with page - setupUntrustedCommunication(connectionStream, context) - } - } - - function setupUntrustedCommunication (connectionStream, originDomain) { - // setup multiplexing - var mx = setupMultiplex(connectionStream) - // connect features - controller.setupProviderConnection(mx.createStream('provider'), originDomain) - controller.setupPublicConfig(mx.createStream('publicConfig')) - } -} -// // this will be useful later but commented out for linting for now (liiiinting) -// function sendMessageToAllClients (message) { -// global.clients.matchAll().then(function (clients) { -// clients.forEach(function (client) { -// client.postMessage(message) -// }) -// }) -// } - -function noop () {} |