Merge pull request #2592 from ethereum/addWeb3ProviderPlugin
Add global web3 provider pluginpull/5370/head
commit
40f9b9f8a7
@ -0,0 +1,31 @@ |
||||
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) |
||||
}) |
||||
}) |
||||
} |
||||
} |
Loading…
Reference in new issue