Commit 656a77a4 authored by yann300's avatar yann300

add appWeb3Provider

parent 63419e6a
......@@ -48,6 +48,7 @@ import { FramingService } from './framingService'
import { MainView } from './app/panels/main-view'
import { ThemeModule } from './app/tabs/theme-module'
import { NetworkModule } from './app/tabs/network-module'
import { Web3ProviderModule } from './app/tabs/web3-provider'
import { SidePanel } from './app/components/side-panel'
import { HiddenPanel } from './app/components/hidden-panel'
import { VerticalIcons } from './app/components/vertical-icons'
......@@ -267,6 +268,8 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
// ----------------- network service (resolve network id / name) -----
const networkModule = new NetworkModule(blockchain)
// ----------------- represent the current selected web3 provider ----
const web3Provider = new Web3ProviderModule(blockchain)
// ----------------- convert offset to line/column service -----------
const offsetToLineColumnConverter = new OffsetToLineColumnConverter()
registry.put({api: offsetToLineColumnConverter, name: 'offsettolinecolumnconverter'})
......@@ -300,7 +303,8 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
networkModule,
offsetToLineColumnConverter,
contextualListener,
terminal
terminal,
web3Provider
])
// LAYOUT & SYSTEM VIEWS
......@@ -383,7 +387,7 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
console.log('couldn\'t register iframe plugins', e.message)
}
await appManager.activatePlugin(['contentImport', 'theme', 'editor', 'fileManager', 'compilerMetadata', 'compilerArtefacts', 'network', 'offsetToLineColumnConverter'])
await appManager.activatePlugin(['contentImport', 'theme', 'editor', 'fileManager', 'compilerMetadata', 'compilerArtefacts', 'network', 'web3Provider', 'offsetToLineColumnConverter'])
await appManager.activatePlugin(['mainPanel', 'menuicons'])
await appManager.activatePlugin(['home', 'sidePanel', 'hiddenPanel', 'pluginManager', 'fileExplorers', 'settings', 'contextualListener', 'scriptRunner', 'terminal'])
......
import { Plugin } from '@remixproject/engine'
import * as packageJson from '../../../package.json'
export const profile = {
name: 'web3Provider',
displayName: 'Global Web3 Provider',
description: 'Represent the current web3 provider used by the app at global scope',
methods: ['sendAsync'],
version: packageJson.version,
kind: 'provider'
}
export class Web3ProviderModule extends Plugin {
constructor (blockchain) {
super(profile)
this.blockchain = blockchain
}
/*
that is used by plugins to call the current ethereum provider.
Should be taken carefully and probably not be release as it is now.
*/
sendAsync (payload) {
return new Promise((resolve, reject) => {
this.blockchain.web3().currentProvider.sendAsync(payload, (error, message) => {
if (error) return reject(error)
resolve(message)
})
})
}
}
......@@ -4,7 +4,7 @@ import { EventEmitter } from 'events'
import QueryParams from './lib/query-params'
const requiredModules = [ // services + layout views + system views
'manager', 'compilerArtefacts', 'compilerMetadata', 'contextualListener', 'editor', 'offsetToLineColumnConverter', 'network', 'theme', 'fileManager', 'contentImport', 'scriptRunner',
'manager', 'compilerArtefacts', 'compilerMetadata', 'contextualListener', 'editor', 'offsetToLineColumnConverter', 'network', 'theme', 'fileManager', 'contentImport', 'web3Provider', 'scriptRunner',
'mainPanel', 'hiddenPanel', 'sidePanel', 'menuicons', 'fileExplorers',
'terminal', 'settings', 'pluginManager']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment