https://github.com/edgeapp/edge-currency-accountbased
Currency plugins for accounts based blockchains such as Ethereum, Xrp, and EOS
https://github.com/edgeapp/edge-currency-accountbased
Last synced: about 1 year ago
JSON representation
Currency plugins for accounts based blockchains such as Ethereum, Xrp, and EOS
- Host: GitHub
- URL: https://github.com/edgeapp/edge-currency-accountbased
- Owner: EdgeApp
- License: bsd-3-clause
- Created: 2018-09-19T01:10:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T19:59:08.000Z (over 1 year ago)
- Last Synced: 2024-10-29T21:45:50.931Z (over 1 year ago)
- Language: TypeScript
- Size: 38.8 MB
- Stars: 17
- Watchers: 13
- Forks: 36
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Edge Currency Plugin for Account-Based currencies
[](https://app.travis-ci.com/EdgeApp/edge-currency-accountbased)
Plugins for [edge-core-js](https://github.com/EdgeApp/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:
```sh
npm i -s edge-currency-accountbased
```
### Node.js
For Node.js, you should call `addEdgeCorePlugins` to register these plugins with edge-core-js:
```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:
```js
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:
```html
```
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
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:
```jsx
import { pluginUri, makePluginIo } from 'edge-currency-accountbased/rn'
<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`.
Notice the `/rn` suffix on the `import` statement. If you leave this off (which is deprecated), react-native-piratechain and react-native-zcash will both be mandatory, and the instructions below won't apply.
#### Zcash / Piratechain
These chains only work on React Native. To use them, first install the following packages using the instructions in their repos:
- [react-native-piratechain](https://www.npmjs.com/package/react-native-piratechain)
- [react-native-zcash](https://www.npmjs.com/package/react-native-zcash)
Then, add the correct IO objects to the core:
```jsx
import { pluginUri, makePluginIo } from 'edge-currency-accountbased/rn'
import { makePiratechainIo } from 'edge-currency-accountbased/rn-piratechain'
import { makeZcashIo } from 'edge-currency-accountbased/rn-zcash'
<MakeEdgeContext
nativeIo={{
'edge-currency-accountbased': makePluginIo()
piratechain: makePiratechainIo(),
zcash: makeZcashIo(),
}}
pluginUris={[pluginUri]}
// Plus other props as required...
/>
```
## Contributing
You'll need to install Yarn 1.3.2 globally on your machine
To set up this project, just do:
```sh
git clone git@github.com: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:
- Rebase of your branch upon this repo's `master` branch. For more info:
https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request
### 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