embark/packages/embarkjs-whisper
Pascal Precht f2903e7577 fix(@embarkjs/whisper): don't rely on global EmbarkJS in whisper APIs
When trying to either sending, or listening to whisper channels within
Embark's consoles (CLI and Cockpit), the console outputs an error that
`EmbarkJS` isn't defined.

E.g. running:

```
> EmbarkJS.Messages.listenTo({ topic: ['somechannel'])
```

Outputs:

```
EmbarkJS is not defined
```

This seemed very odd as outputting `EmbarkJS` and all of its members
worked totally fine.

It turns out that both methods, `listenTo()` and `sendMessage()`, in
`EmbarkJS.Messages` are not necessarily what one thinks they are.
EmbarkJS decorates both methods to create some options that need to be
available in the delegate, two of them being `EmbarkJS.Utils.toAscii`
and `EmbarkJS.Utils.fromAscii` (ac76a40a61/packages/embarkjs-whisper/src/index.js (L43-L62) and ac76a40a61/packages/embarkjs-whisper/src/index.js (L64-L73))

These two global references to `EmbarkJS` are the only ones in `embarkjs-whisper`
and they are not the same reference as the `EmbarkJS` sandbox global
registered in the VM here ac76a40a61/packages/embark-code-runner/src/index.ts (L33).

In other words, the `EmbarkJS is not defined` message actually refers
to the `EmbarkJS` in the wrapping method, not the one registered with
the VM, which is also why inspecting the `EmbarkJS` object through the
VM works fine.

Since the `toAscii()` and `fromAscii()` methods in use are really just
facades around `web3.utils.[fromAscii|toAscii]()`, we can replace the
global EmbarkJS dependency with web3 utils that are already available
anyways.
2019-05-31 14:07:38 +02:00
..
src fix(@embarkjs/whisper): don't rely on global EmbarkJS in whisper APIs 2019-05-31 14:07:38 +02:00
.babelrc.js feature(@embark/embarkjs-whisper: make embarkjs whisper plugin a module on its own 2019-04-04 13:29:55 -04:00
.gitignore feature(@embark/embarkjs-whisper: make embarkjs whisper plugin a module on its own 2019-04-04 13:29:55 -04:00
.npmrc feature(@embark/embarkjs-whisper: make embarkjs whisper plugin a module on its own 2019-04-04 13:29:55 -04:00
CHANGELOG.md chore(release): 4.1.0-beta.2 2019-05-22 18:09:06 -05:00
README.md feature(@embark/embarkjs-whisper: make embarkjs whisper plugin a module on its own 2019-04-04 13:29:55 -04:00
package.json build: change the engines range for NodeJS to indicate embark is not compatible with v12.x 2019-05-28 09:35:44 +02:00

README.md

embarkjs-whisper

embarkjs plugin to interact with whisper

Visit embark.status.im to get started with Embark.