Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@myetherwallet/mewconnect-web-client

Package Overview
Dependencies
Maintainers
3
Versions
157
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@myetherwallet/mewconnect-web-client

<!--##### Note This Repository Nees Some Cleaning-->

  • 1.0.6
  • npm
  • Socket score

Version published
Weekly downloads
49
decreased by-80.4%
Maintainers
3
Weekly downloads
 
Created
Source

Getting Started

Get the code

The example requires both MEWconnect-web-client (this repo) and MEWconnect-Signal-Server (MEWconnect-hanshake-server)

git clone https://github.com/MyEtherWallet/MEWconnect-web-client.git

Install the dependencies:

npm install

Start the server serving the example initiator and receiver:

npm start
Get the signaling server

Clone the repo:

git clone https://github.com/MyEtherWallet/MEWconnect-hanshake-server.git

Install the dependencies:

npm install

Start the signaling server:

npm start

Usage

Two Peers are needed with one designated as the Initiator and the other as the Receiver.

Require the MEWconnect client

let mewConnect = require('@myetherwallet/mewconnect-web-client').Client;

Initiate the client

let mewConnectClient = mewConnect.Client();

MEWconnect Client functions as an event emitter. The connection details are passed along with the 'codeDisplay' event

mewConnectClient.on('codeDisplay', code => {
// do something with the code.
// to work with the MEWconnect Mobile applications display it as a qrcode
}

Now call the initiatorStart method to create the connection details:

mewConnectClient.initiatorStart('https://signal-server-url')

Once a p2p connection is established the client will emit a 'rtcConnected' event

mewConnectClient.on('rtcConnected', () =>{
    alert('congrats you are connected to mew connect!')
})

Once a connection is extablished call the 'sendRtcMessage' method to interact with the app

mewConnectClient.sendRtcMessage('address', {})

The 'sendRtcMessage' method takes two parameters (message type, message data)

To get the response listen for an event matching the sent message type

mewConnectClient.on('address', address => {
    alert('got address: ' + address)
})

Currently the app supports two other message types: 'signMessage', and 'signTx'

exists you can get the address or send a transaction or message to the mobile app for signing.

The data portion of those two message types are:

signMessage

{
    hash: 'hash of the message to be signed',
    text: 'text of the message to be signed'
}

signTx

{
        nonce:"0x00",
        gasPrice:"0x098bca5a00",
        gas:"0x5208",
        to:"0xc3982F1DbAB6DA9d95F579B9A5f9c5CAb13F8cfC",
        value:"0xb1a2bc2ec50000",
        data:"",
        chainId:3

}

If the p2p connection fails to be established the client can attempt to use an intermediate TURN server to facilitate the connection. To signal a failed p2p attempt the client can call the 'useFallback' method on the client

mewConnectClient.useFallback()

Additional events are emitted at various points to signal various stages of the connection

SocketConnectedEvent

  • successfully connected to the signal server

RtcInitiatedEvent

  • Peer identified via the signal server, and a p2p connection will be attempted

UsingFallback

  • One of the peers failed to establish a p2p connection and will attempt to use an intermediate TURN server to facilitate the connection

RtcConnectedEvent

  • p2p connection established

RtcClosedEvent

  • p2p connection closed

RtcDisconnectEvent

  • p2p disconnected

RtcErrorEvent

  • p2p connection error occured
Browser

mew-connect-client can be included for use in the browser via webpack or browerfy

FAQs

Package last updated on 08 Oct 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc