Support connection on your DApp

One of the main Saakuru App benefits is the ability to fully access Web3 World via an inbuilt browser. Within a few clicks, users can find and connect to a large number of decentralized applications. In this article, we will overview how any developer can very quickly open his web-based dApp to the Saakuru App user base.

Introduction to injected authorization:

Saakuru App uses a custom Injected Web Provider script, which sets the `window. ethereum` object into the browser window (similar solutions are used by a few other most popular wallets like “MetaMask.” This object can be accessed globally from web applications and contains core required variables and functions for communication with Saakuru Wallet:

  1. window.ethereum.enable() -> Promise, which emits a connect

  2. window.ethereum.isMetaOne -> Boolean which indicates that the injected solution is Saakuru wallet.

  3. window.ethereum.chainId -> string hex of current selected network

  4. window.ethereum.request -> Promise for various Signing and Sending Requests (main supported methods “eth_sign”, “eth_signTypedData”, “personal_sign”, “eth_sendTransaction”, “eth_requestAccounts”):

  5. window.ethereum.sendAsync -> Allows requests batching. It also allows injecting custom callback as the second parameter of the function.

windows.ethereumobject is an extended class of EventEmitter, so internal events are also happening inside injected script logic. You can use the EventEmitter function addEventListener to listen to the internal event connect (Usually, this is automatically implemented inside the libraries most of the developers use, but in case you decide to build a custom solution, you can rely on this event to detect a successful connection)

For more secure verification, we recommend using the eth_sign request, which response you will be able to verify with the web3.js library and be sure that the wallet address is not faked.

Libraries and UI elements.

For a beginner, we are recommending the @web3-react library produced by the amazing Uniswap team:

https://github.com/Uniswap/web3-react

https://www.npmjs.com/package/@web3-react/injected-connector

This library will contain all required integration points

We recommend you build a button `Connect with Injected Wallet” which will be visible if windows.ethereum the object is defined. If you detect window.ethereum.isMetaOne as True you can apply a nice UI and label it “Connect with Saakuru App”.

Example:

In case window.ethereum.isMetaOne the variable is not defined, we recommend you add a link button with a dedicated partner download code (ask your direct contact from the AAG team) or a publicly used dynamic Link https://metaone.page.link/connect

Saakuru App icon for UI -> HERE

Summary

Our development team wishes you the best of luck working on your dApp project, and we will be more than thrilled to whitelist your application in https://app.saakuru.com/dapp-store/discover and expose it to thousands of Saakuru One community members! Please contact us via partnership@saakuru.com for the review

Last updated