Skip to content

Currency plugins for accounts based blockchains such as Ethereum, Xrp, and EOS

License

Notifications You must be signed in to change notification settings

EdgeApp/edge-currency-accountbased

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Edge Currency Plugin for Account-Based currencies

Build Status

Plugins for edge-core-js, handling many networks not derived from Bitcoin.

These are compatible with edge-core-js v0.21.2 or later.

Installing

First, add this library to your project:

npm i -s edge-currency-accountbased

Node.js

For Node.js, you should call addEdgeCorePlugins to register these plugins with edge-core-js:

const { addEdgeCorePlugins, lockEdgeCorePlugins } = require('edge-core-js')
const plugins = require('edge-currency-accountbased')

addEdgeCorePlugins(plugins)

// Once you are done adding plugins, call this:
lockEdgeCorePlugins()

You can also add plugins individually if you want to be more picky:

addEdgeCorePlugins({
  ethereum: plugins.ethereum
})

Browser

The bundle located in dist/edge-currency-accountbased.js will automatically register itself with edge-core-js. Just serve the entire dist directory along with your app, and then load the script:

<script src='https://example.com/app/dist/edge-currency-accountbased.js'>

If you want to debug this project, run yarn start to start a Webpack server, and then adjust your script URL to http://localhost:8082/edge-currency-accountbased.js.

React Native

In addition to installing edge-currency-accountbased, you must also install Zcash and Pirate Chain React Native libraries as peer dependencies Follow the instructions in the Zcash React Native and Pirate Chain React Native packages to install the required native dependencies.

The edge-currency-accountbased package will automatically install itself using React Native autolinking. To integrate the plugins with edge-core-js, add its URI to the context component:

import { pluginUri, makePluginIo } from 'edge-currency-accountbased'
<MakeEdgeContext
  nativeIo={{
    'edge-currency-accountbased': makePluginIo()
  }}
  pluginUris={[pluginUri]}
  // Plus other props as required...
/>

To debug this project, run yarn start to start a Webpack server, and then use debugUri instead of pluginUri.

Contributing

You'll need to install Yarn 1.3.2 globally on your machine

To set up this project, just do:

git clone [email protected]:EdgeApp/edge-currency-accountbased.git`
cd edge-currency-accountbased
yarn
yarn prepare

Run yarn test to run the unit tests.

To test your changes in the full Edge wallet app, run yarn start to start a web server, and then set DEBUG_ACCOUNTBASED in your env.json to use the web server instead of the bundled library.

You can also do updot edge-currency-accountbased from within edge-react-gui to copy your edits in to node_modules. Re-build and re-launch the app to use the updated plugins.

Adding a New Blockchain / Currency

Please note that our team considers (but does not guarantee) PR's to add new currencies / blockchains to this repo's master branch (included into production version of Edge Wallet). Among other requirements the code must satisfy the following guidelines:

Naming Convention

Plugins take their names from the network, not the currency. For instance, the "ripple" plugin supports the Ripple network. There are many currencies on the Ripple network, including XRP, tokens, and bank-backed currencies, so naming the Ripple plugin "xrp" would be too narrow.

The same principle applies to all the plugins in this repository, with a few unfortunate exceptions.

License

BSD 3