gas-station

0.0.1 • Public • Published

⛽️ Gas Station

Gas Station is a library for React Native apps to easily connect to the Ethereum network and complete transactions.

Description

Gas Station is a React Native library allowing you to build dApps (Decentralized Applications) which transform your mobile device into a light client node on the Ethereum Network and enables you to easily access Ethereum’s entire ecosystem, including interacting with Smart Contracts, make payment, and more.

Project status

We just got started. This is what the project timeline looks like:

  • May 20th: have react-native-geth up and running for iOS.
  • June 10th: finished basic UI for creating a wallet, getting funds, and approving transactions.
  • June 20th: finish interface and API for connecting with other apps to share wallets between apps.
  • July 1st: added Android support.
  • July 10th: first stable release for iOS and Android.

Supported platforms

  • iOS
  • Android support coming soon

Installation

Using NPM:

npm i gas-station
react-native link gas-station

Using Yarn:

yarn add gas-station
react-native link gas-station

Compatibility

Due to the rapid changes being made in the React Native ecosystem, we are not officially going to support this module on anything but the latest version of React Native. With that said, we will do our best to stay compatible with older versions as much that is practical, and the peer dependency of this requirement is set to "react-native": "*" explicitly for this reason. If you are using an older version of React Native with this module though, some features may be buggy.

Usage example

import { Alert } from 'react-native'
import GasStation from 'gas-station'
 
// Do this as soon as you need access to the Ethereum network
// Note that this will bring up a UI the first time it is called!
GasStation.requestUserLogin()
    .then(async (eth) => {
        // We now have access to the ethereum blockcahin
        const addresses = await eth.getAccounts()
        Alert.alert('Your wallet address', addresses[0])
    })
    .catch((e) => {
        // Node couldn't start or user cancelled login
    })

API documentation

All API methods below are asynchronous and return Promise instances.

getAccounts

Returns Array denoting the addresses of all wallets that the user has created or has given the current app access to.

getAddress

Retrieves the address associated with the user's default account.

Returns String with wallet address.

getBalanceAccount

Returns the wei balance of the current account.

Returns String balance.

getBalance

Returns the wei balance of the specified account.

Parameters

  • address String Address of account being looked up.

Returns String balance.

syncProgress

Retrieves the current progress of the sync algorithm.

Returns Object Return object sync progress or null

subscribeNewHead

Subscribes to notifications about the current blockchain head.

Returns Boolean – true if subscribed.

showAccounts

Brings up a modal window where the user can manage their accounts.

showTopUp

Brings up a modal window where the user can add Ethereum to their primary account, either by copying their address, viewing their wallet's QR code, or by opening the Coinbase app and starting a transaction to their wallet's address.

sendTransaction

Create and send a transaction. The user will see a modal window and will have to agree to sending the transaction.

Parameters

  • toAddress String Address destination
  • amount Number Amount
  • gasLimit Number Gas limit (optional, automatically set if left empty)
  • gasPrice Number Gas price (optional, automatically set if left empty)
  • data Number

Returns String – transaction HEX identifier

getSuggestedGasPrice

Retrieves the currently suggested gas price to allow a timely execution of a transaction.

Returns Double – suggested gas price

getPendingNonce

Retrieves this account's pending nonce. This is the nonce you should use when creating a transaction.

Returns Double – nonce

Package Sidebar

Install

npm i gas-station

Weekly Downloads

0

Version

0.0.1

License

MIT

Unpacked Size

528 kB

Total Files

8

Last publish

Collaborators

  • tschoffelen