Coder Social home page Coder Social logo

walletconnect / walletconnect-monorepo Goto Github PK

View Code? Open in Web Editor NEW
1.2K 62.0 612.0 74.27 MB

WalletConnect Monorepo

License: Apache License 2.0

JavaScript 0.31% TypeScript 98.78% Dockerfile 0.02% Shell 0.09% Kotlin 0.42% Objective-C 0.03% Objective-C++ 0.17% Ruby 0.18%
walletconnect ethereum web3 library devtools wallet react-native mobile typescript

walletconnect-monorepo's Introduction

WalletConnect v2.x.x

Open protocol for connecting Wallets to Dapps - https://walletconnect.com

Setup

  1. Ensure nodejs and npm
  2. Clone the repository
  3. Install all package dependencies, by running npm install from the root folder

Running checks for all packages

To ensure all packages lint, build and test correctly, we can run the following command from the root folder:

For tests to pass in the following command, you will need your own TEST_PROJECT_ID value, which will be generated for you when you set up a new project on WalletConnect Cloud.

TEST_PROJECT_ID=YOUR_PROJECT_ID npm run check

Command Overview

  • clean - Removes build folders from all packages
  • lint - Runs eslint checks
  • prettier - Runs prettier checks
  • build - Builds all packages
  • test - Tests all packages
  • check - Shorthand to run lint, build and test commands
  • reset - Shorthand to run clean and check commands

Troubleshooting

  1. If you are experiencing issues with installation ensure you install npm i -g node-gyp
  2. You will need to have xcode command line tools installed
  3. If there are issues with xcode command line tools try running
sudo xcode-select --switch /Library/Developer/CommandLineTools
sudo xcode-select --reset

License

Apache 2.0

walletconnect-monorepo's People

Contributors

arein avatar arjunbhuptani avatar benjythebee avatar bkrem avatar brunobar79 avatar chris13524 avatar damirsqa avatar dependabot[bot] avatar devceline avatar edgarbarrantes avatar ffrizzo avatar ganchoradkov avatar ggaabe avatar gonghe007 avatar ignaciosantise avatar iljadaderko avatar jdkanani avatar jonathanconn avatar laynehaber avatar marshacb avatar miohtama avatar mmv08 avatar mul53 avatar pedrouid avatar renovate[bot] avatar robertosnap avatar safepalwallet avatar sbc64 avatar velenir avatar xzilja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

walletconnect-monorepo's Issues

Error: stopLastListener()

Stopping session status listener on example.walletconnect.org fails and returns an error

Uncaught TypeError: Cannot read property 'listeners' of undefined             walletconnect.js:8 

Notify wallet when cancelling operation (v0.9.x)

currently the wallet does not know when the operation was canceled on the daapp side. This might be the wrong location for this issue though - but luckily github now supports moving of issues ;-)

session reject errors

private _subscribeToSessionResponse (id: number, errorMsg: string) {
    this.on(`response:${id}`, (error, payload) => {
      if (error) {
        this._handleSessionResponse(error.message)
      }
      if (payload.result) {
        this._handleSessionResponse(errorMsg, payload.result)
      } else if (payload.error && payload.error.message) {
        this._handleSessionResponse(payload.error.message)
      } else {
        this._handleSessionResponse(errorMsg)
      }
    })
  }

if user cancel in wallet peer. the payload will be null. maybe should

if (error) {
        this._handleSessionResponse(error.message)
return
      }

Use single socket connection for all the sessions

Problem:

Currently, there is no good way to fetch all pending requests from mobile apart from re-connecting all sessions. Problem is each session will take one socket connection, which is not good for mobile devices on low bandwidth.

Supporting push notification solves this problem if the user clicks on the notification but that will work for only one session. If the user doesn't click on the notification, there is no way to we can get all pending session requests without re-connecting all session sockets (which is bad for Mobiles).

Possible solution:

Save topic data on push server temporary.

WalletConnect for Mobile to Web communcation

Hii,

I need a way to connect the mobile wallet with dapps by scanning code. The example you have written in ReadMe is not working properly on web side for connect mobile wallet with dapps.

Can you provide a proper guidance for it.

Thanks in advance.

Independent package names

It would be awesome to manage all packages from this monorepo and keeping them as independent package names (eg walletconnect instead of @walletconnect/walletconnect). I know that Facebook is able to do this with Lerna.js for their React libraries.

Not sure if this is the right place to look but I think this is where they do it:
https://github.com/facebook/create-react-app/blob/next/tasks/publish.sh#L39

Regardless just a nitpick to get the packages name to be easy to find.

walletconnect-web3-provider issues

I basically didn't get the code (v0.7) running as stated in readme.

  • Given rpcUrl seems to be ignored
  • The promise (or callback) from web3.eth.getAccounts() as stated in the readme is never resolved
  • There are typos in the readme code

Fix Babel Polyfill (v0.7.x)

When used together with libraries eth-registry and dapparatus the following error occurs on build

Error: only one instance of babel-polyfill is allowed

Persisted session NOT disconnecting

Whenever one of the peers is offline and the other disconnects the session, there is a wc_sessionUpdate payload being broadcasted which should be cached by the Bridge to be received by the offline peer.

However when the offline peer is reconnected with the Bridge it either does not receive this payload or the current Browser library does not handle it correctly, maintaining the connected state active.

Build Config Refactor (v0.8.x)

There are currently a few issues with the current config, it's sufficient for most cases but it needs improvement.

Required:

  • Fix babel polyfill duplicated instance issue (#48)
  • Output unminified ES5 code for debugging (#38)
  • Replace Webpack config with Babel config only

Listen to accounts and chainId custom requests

Current API exposes a method for sending custom JSON-RPC requests, however if these included methods that contain updates for accounts and chainId, they should be parsed and update the SDK state.

  • accounts => eth_accounts
  • chainId => eth_chainId

Reference: L624

walletConnector.connected shows false with in react-native not work, even if uri is correct, and it is connected. How to detected connect created successfully when new RNWalletConnect connector?

walletConnector.connected shows false with in react-native not work, even if uri is correct, and it is connected. How to detected connect created successfully when new RNWalletConnect connector?

I try to create connect to the bridge server with new RNWalletConnect connector
螢幕快照 2019-04-08 上午10 16 33
and try to console.log the status of connected after create connector
螢幕快照 2019-04-08 上午10 11 31

but the status of walletConnector.connected
螢幕快照 2019-04-08 上午10 19 02

how to detected walletConnector is connected successfully?
could I use the connected attribute to judge it?

Execution Stop while createSession() calls

Hello,

Here is the function where the createSession() execution stop and don't get the status of connected true getting always false and not executing any other function. So please check it and give it

If you can solve the function issue regarding on(method,callback) any of the function does not work when call the events connect, disconnect, session_update, call_request, wc_sessionRequest, wc_sessionUpdate, wc_exchangeKey

This stop the execution:

screenshot 2019-03-08 at 2 47 48 pm

Thank in advance.

signMessage doesn't work for bytestring data

Problem

There is no way to sign arbitrary bytestring data. It's only possible to sign data that can be encoded as UTF-8. This is a problem for dApps with smart contracts that require wallets to sign arbitrary nonsense such as hashes (and which don't support EIP-712/signTypedData). LocalEthereum is one of those dApps.

The problem lies in the fact the data needs to be encoded as JSON before it's encrypted. Converting to JSON requires that the input message be encoded as UTF-8.

Whenever we convert an arbitrary bytestring to UTF-8 and then back, we lose data; e.g.:

const originalHex = '6e4d387c925a647844623762ab3c4a5b3acd9540';
const encoded = Buffer.from(originalHex, 'hex').toString('utf8');
const decoded = Buffer.from(encoded, 'utf8');
const decodedHex = decoded.toString('hex');
console.log(originalHex === decodedHex); // false

And so, the wallet receives a corrupted message to sign if we do something like:

const bytestring = Buffer.from('6e4d387c925a647844623762ab3c4a5b3acd9540', 'hex');
await walletConnector.signMessage([address, bytestring.toString()]);

What web3.js does

WalletConnect's signMessage([address, data]) is similar to web3.eth.personal.sign(data, address), however only the latter works for bytestrings currently.

To sign a bytestring with web3, you can use web3.eth.personal.sign('0xabcd', address).

The specs of web3.eth.personal.sign say that if the data parameter is a plain string, it will be encoded to hex using web3.utils.utf8ToHex. In other words, data is expected to be a hex-encoded bytestring however the function allows UTF-8 strings for convenience.

In transport, the message is always hex-encoded (i.e. if a dApp asks to sign "hello", the web3 library will ask the wallet to sign "0x68656c6c6f").

Proposal 1

WalletConnect could do the same thing as web3. At the top of signMessage, before the _formatRequest call, it could convert params[1] to a hex-encoded string if it isn't already. On the wallet end, it'll decode the message from hex when it gets the eth_sign call request.

public async signMessage (params: any[]) {
if (!this._connected) {
throw new Error('Session currently disconnected')
}
const request = this._formatRequest({
method: 'eth_sign',
params
})

For example:

if (!isHexStrict(params[1])) {
  params[1] = utf8ToHex(params[1])
}
const request = this._formatRequest({ 

(isHexStrict and utf8ToHex are simple functions in web3.utils.)

Caveats

  • This is a breaking change. It'll only work if both the dApp and the wallet app are on the same version.
  • The wallet won't know whether the message is supposed to be a UTF-8 string, causing UI problems. It could make a guess, but that's ugly. The same problem exists for web3.personal.sign.

Proposal 2

Implement the change on the wallet side only. When the wallet sees a call request eth_sign with a message beginning with "0x", it'll treat it as a bytestring.

This will (a) let the wallet know when it's signing a UTF-8 string; and (b) only cause a breaking change for WC dApps that sign "0xabcd" strings intended to be displayed as UTF-8.

Proposal 3

Create a new method called something like signByteMessage and a new corresponding call request. This will resolve both of the caveats.

Webpack UMD build breaks in NodeJS environment

Whenever running the package through tests or a NodeJS enviroment, it returns an error for window.

    ReferenceError: window is not defined

This is caused by the webpack configuration for UMD builds requiring window as a parameter.

Issue described here

Typescript Refactor (v1.0.x)

This a potential alternative solution to the Build Config Refactor (Issue #51) that could also be beneficial to the Web3 Provider Refactor (Issue #50)

Inspired by 0xProject/0x-monorepo

Polling Timeout not handled

If you start listening for confirmation via QR code after some while the session times out and walletConnect stops polling the bridge server.

in my current approach I wrap that in a try catch block and provide a retry button.

https://github.com/digitaldonkey/web3ready/blob/7623a475ebbdb2c7f89e866876f6e4b9ef0c3244/src/components/signerDialogs/WalletConnect.vue#L104-L116

You might want to handle that in the QR code app too.

It would also be great to override the timeout settings in listenSessionStatus(POLL_INTERVAL, TIMEOUT).

hooked-wallet-subprovider implemented incorrectly

Currently hooked-wallet-subprovider API is somewhat misleading as the method calls available as options do not necessarily relay the transactions correctly

Instead of using sendTransaction, it needs to handle proccessTransaction and consequently for other method calls

HandleRequest handles promise incorrectly on web3-provider

Change this

const walletConnector = await engine.getWalletConnector()
const { error, result } = await walletConnector.sendCustomRequest(payload)
end(error, result)

To this

const walletConnector = await engine.getWalletConnector()
try {
  const result = await walletConnector.sendCustomRequest(payload)
  end(null, result)
} catch (error) {
  end(error)
}

Check L159

rename walletconnect react native package

WalletConnect react-native sdk is not dependent to react-native platform. The sdk's indirect dependency is crypto (a node built-in module) via walletconnect-core and firebase in-app messaging. So, whenever any environment (be it PWA or mobile app) has access to these dependencies, the developer of these platforms (PWA or mobile app) can use this sdk.
The names could be changed to something like:

  • walletconnect-core (unchanged)
  • rn-walletconnect to walletconnect-listener (the app/web-app which will store credentials)
  • walletconnect to walletconnect-client (the web/app which will act as a client to communicate with listener sdk)

Web3 Provider Refactor (v1.0.0-beta)

Web3 Provider currently isn't complete and doesn't include the full web3 API scope, specially for the account management (eg. web3.eth.currentAccount, etc)

Also MetaMask/provider-engine is due to be deprecated to be replaced with MetaMask/json-rpc-engine, this way we would deprecate the web3-subprovider which is unnecessary and it also remove the dependency from the RPCSubprovider which is currently buggy

Plus current call requests need to be verified and sanitized before sending as a payload for the wallet to sign, these include: eth_chainId, eth_accounts, eth_signTransaction, eth_sendTransaction, eth_sendRawTransaction, eth_sign, eth_signTypedData, eth_signTypedData_v1, eth_signTypedData_v3, personal_sign (more JSON RPC methods might be added in the future)

Should check websocket state

private _toggleSocketPing () {
    if (this._socket && this._socket.readyState === 1) {
      this._pingInterval = setInterval(
        () => {
          if (this._socket) {
            this._socket.send('ping')
          }
        },
        10000 // 10 seconds
      )
    } else {
      clearInterval(this._pingInterval)
    }
  }

before send('ping')

 if (this._socket && this._socket. readyState === 1) {
            this._socket.send('ping')
          }

or we will get error 'index.js:1194 WebSocket is already in CLOSING or CLOSED state.'

How to include the source files in my project? (v0.8.x)

When I use walletconnect-web3-provider as stated in the readme, I will get a compiled and minified version in my code. Which is:

  • hard to debug
  • created a overhead in my own module. I'm using webpack myself and there is the nice codeSplitting feature I want to take advantage of. E.g. the buffer module is part of Web3 and part of walletconnect. If I can include the sources in my build webpack would nicely put the chunks together and I wouldn't force the user to load the same code twice.

I played around with installing walletconnect-monorepo directly and importing like
import WalletConnectProvider from 'walletconnect-monorepo/packages/walletconnect-web3-provider/src'

Bu this seems pretty strange and I currently don't know how to automatically do the the stuff done by npm run bootstrap and npm run check-packages

Build errors on js-walletconnect-core when publishing

I ran npm run publish from root to deploy all packages at once for v0.6.0 but got a build error from js-walletconnect-core at rollup -c rollup.config.js

screenshot 2018-09-04 00 26 48

Below is the full error stack just after script run that tests successfully

lerna success run Ran npm script 'test' in 3 packages:
lerna success - js-walletconnect-core
lerna success - rn-walletconnect-wallet
lerna success - walletconnect

> [email protected] lint /Users/pedrogomes/_walletconnect/walletconnect-monorepo

> eslint packages/*/src/**/*.js packages/*/test/**/*.spec.js


> [email protected] build /Users/pedrogomes/_walletconnect/walletconnect-monorepo
> lerna run build

lerna notice cli v3.1.4
lerna ERR! npm run build exited 1 in 'js-walletconnect-core'
lerna ERR! npm run build stdout:

> [email protected] build /Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core
> rollup -c rollup.config.js


lerna ERR! npm run build stderr:

src/index.js → dist/js-walletconnect-core.cjs.js, dist/js-walletconnect-core.esm.js...
[!] (Plugin at pos 2 plugin) SyntaxError: Unexpected token (258:25) in /Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/src/connector.js
src/connector.js (258:25)
SyntaxError: Unexpected token (258:25) in /Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/src/connector.js
    at Parser.pp$4.raise (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:2756:13)
    at Parser.pp.unexpected (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:647:8)
    at Parser.pp$3.parseIdent (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:2711:10)
    at Parser.pp$3.parsePropertyName (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:2495:105)
    at Parser.pp$3.parseProperty (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:2425:8)
    at Parser.pp$3.parseObj (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:2379:23)
    at Parser.pp$3.parseExprAtom (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:2179:17)
    at Parser.pp$3.parseExprSubscripts (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:2047:19)
    at Parser.pp$3.parseMaybeUnary (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:2024:17)
    at Parser.pp$3.parseExprOps (/Users/pedrogomes/_walletconnect/walletconnect-monorepo/packages/walletconnect-core/node_modules/acorn/dist/acorn.js:1966:19)

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `rollup -c rollup.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/pedrogomes/.npm/_logs/2018-09-03T23_22_33_957Z-debug.log```

Mobile-to-Mobile (v0.9.x)

Using the ERC-1328 WalletConnect URI Standard, we can trigger deep links (Android) and universal links (iOS) to allow connections to be established within the mobile device.

In order to do this, there needs to be a list of Wallets that support WalletConnect to target the links of each wallet specifically by displaying as options for user selection, which can be saved locally for future connections.

Additionally, there needs to be a key exchange to replace the symKey that was exposed on the URI on the first deep link. This could be triggered automatically as soon as the session as approved to replace by a new symKey generated on the Dapp side which is encrypted by the first key.

Uncaught (in promise) TypeError: Cannot read property 'generateKey' of undefined

Hello,

I am new in this WalletConnect I am creating client sdk on browser side but getting some issue while performing createSession method. Can you please help me out with that.

Code of Walletconnect Initial Connection :

const walletConnector = new WalletConnect({
  bridge: "https://bridge.walletconnect.org" // Required
});

/**
  *  Check if connection is already established
  */
if (!walletConnector.connected) {
  // create new session
    walletConnector.createSession().then(() => {
    console.log("session");
    const uri = walletConnector.uri;
    console.log("uri" + uri);
    console.log("wallet" + walletConnector.connected);
    // display QR Code modal
    WalletConnectQRCodeModal.open(uri, () => {
      console.log("QR Code Modal closed");
    });
  });
  // walletConnector.updateSession({chainId : 0,accounts :walletConnector.accounts});
  // get uri for QR Code modal
}
/**
  *  Subscribe to connection events
  */
walletConnector.on("connect", (error, payload) => {
  console.log("connect");
  if (error) {
    throw error;
  }

  // close QR Code Modal
  WalletConnectQRCodeModal.close();

  // // get provided accounts and chainId
  // const { accounts, chainId } = payload.params[0];
});

walletConnector.on("session_update", (error, payload) => {
  console.log("session_update");
  if (error) {
    throw error;
  }

  // get updated accounts and chainId
  const { accounts, chainId } = payload.params[0];
});

walletConnector.on("disconnect", (error, payload) => {
  console.log("disconnect");
  if (error) {
    throw error;
  }

  // delete walletConnector
});

Issue while running on browser :

screenshot 2019-02-27 at 3 57 48 pm

Fix Lerna build from internal dependencies

Right now, the libraries are using [email protected] as a dependency but in order to match v0.6.0 spec, both walletconnect and rn-walletconnect-wallet need to import [email protected].

However when building both libraries using [email protected], it fails to build on TravisCI when looking for [email protected] on the NPM registry, because its not published yet.
From [email protected] documentation, we can see that it prioritises internal packages to look for the latest version and this seems to work fine locally with [email protected] but it's failing to build on TravisCI.

I've created a different branch, link-libraries, where I linked the libraries by running lerna add js-walletconnect-core --scope=walletconnect --scope=rn-walletconnect-wallet which successfully built symlinks for the version 0.6.0 but it still failed to build on TravisCI

Any idea how to go around this issue?

Call Request Approvals Refactor (v0.8.x)

BEFORE

const txHash = '0xabcd...873'

approveCallRequest(
    callId,
    {
        result: txHash
    }
)

AFTER

const txHash = '0xabcd...873'

approveCallRequest(
    callId,
    txHash
)

Session rejection throws error

When rejecting a session, it throws a parsing error from the response from a missing result field

index.js:16 Uncaught (in promise) TypeError: Cannot read property 'result' of null
    at Object.callback (index.js:16)
    at index.js:16
    at Array.forEach (<anonymous>)
    at t.e._triggerEvents (index.js:16)
    at t.<anonymous> (index.js:16)
    at index.js:31
    at Object.next (index.js:31)
    at a (index.js:31)

Fix killSession()

Throws following error when called

Uncaught TypeError: First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object. walletconnect.js:15

Remove dappName from URI (v0.8.x)

Following the discussion on the forum thread: https://discuss.walletconnect.org/t/replacing-dappname-with-html-meta-tags/128/9

This information is accessory for establishing the session between the Wallet and the Dapp. It shouldn't be required to live in the URI that is scanned through the QR Code.

Instead this information should be passed encrypted through the bridge as part of the session request when creating a new session from the Dapp at the /session/new endpoint

Additionally other parameters should be accessible by the Wallet to verify the Dapp's identity using the HTML Metatags and other available information on the webpage's Head tag.

WebSocket refactor (v0.9.x)

Moving away from a mix of HTTP requests and Short-Polling listeners to WebSockets. This will also allow for other events other than call requests to be pushed (#53) PLUS allow the Wallet to push events to the Dapp such as Network/Chain Switch (#49).

Move pushData to pushServer (v0.8.x)

In order to keep the dappName (Issue #60), it needs to detached both from the Dapp itself and the Bridge server to control the way push notifications are displayed.

The first proposal for the issue #60 was to completely remove it. However following the discussion on the WalletConnect forum thread (https://discuss.walletconnect.org/t/push-server-metadata/123), the consensus was that this was a critical change for the WalletConnect UX and it should be reversed.

In order to reverse it, it will include a significant tech spec change on how the current architecture is handled. The second proposal is to make the Bridge server "dumber" by removing all logic related to the push notification (pushType and pushToken) and simply trigger a notification using the provided pushWebhook and the already known sessionID. To achieve this, the session creation flow will complete the session request between the Dapp and the Wallet and be followed by an HTTP request to the Push server to store the push notification data plus some other metadata.

Push server will now be in charge to handle this data and format the push notification display using the following:

Data

  • sessionID (for indexing)
  • pushType (for choosing push notification service provider)
  • pushToken (for targeting the push notification destination)

Metadata

  • dappName (for formatting the push notification message)
  • language (for translating the push notification message)

The language parameter should follow the ISO 639-1 language codes standard. This additional parameter will provide localization based on the user's device.

Additionally, the user can change to not share the metadata with the push server in order to preserve privacy.

Error: HTTPS is required for non-localhost origins

screenshot 2019-03-04 at 3 47 36 pm

This issue happen when loading a wallet connect into browser with beta 6.

I need help to implement Client SDK in web browser and mobile app and also create a bridge server in react(browser) and react-native(mobile app).

Is there any example of it?

Thanks in advance. Appreciate it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.