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