Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sneurlax/monerojs
ES6 JavaScript Monero library
https://github.com/sneurlax/monerojs
Last synced: 3 months ago
JSON representation
ES6 JavaScript Monero library
- Host: GitHub
- URL: https://github.com/sneurlax/monerojs
- Owner: sneurlax
- License: mit
- Fork: true (monero-integrations/moneronodejs)
- Created: 2018-03-20T06:34:42.000Z (almost 7 years ago)
- Default Branch: dev
- Last Pushed: 2019-06-17T21:54:11.000Z (over 5 years ago)
- Last Synced: 2024-09-25T21:32:15.328Z (3 months ago)
- Language: JavaScript
- Homepage: https://github.com/sneurlax/monerojs
- Size: 287 KB
- Stars: 8
- Watchers: 3
- Forks: 5
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `monerojs`
A Monero library written in ES6 JavaScriptThis library has two main parts: a Monero daemon (`monerod`) JSON-RPC API wrapper, `daemonRPC.js`, and a Monero wallet (`monero-wallet-rpc`) JSON-RPC API wrapper, `walletRPC.js`.
### Requirements
- Node.js
- A Monero (Lithium Luna 0.12) node (remote nodes support most, but not all, methods.)## Installation
```bash
npm install monerojs
```
*`--save` optional*## Testing
Install dependencies (`npm install`) and then run [mocha](https://mochajs.org/) tests with `npm test`
## Usage
JSON-RPC interfaces and their methods are wrapped in promises. Much more exhaustive examples can be found in the [tests](https://github.com/monerojs/monerojs/blob/dev/test/index_test.js)
#### Autoconnect to Monero daemon (`monerod`)
```js
const Monero = require('monerojs');var daemonRPC = new Monero.daemonRPC({ autoconnect: true })
.then((daemon) => {
daemonRPC = daemon; // Store daemon interface in global variable
daemonRPC.getblockcount()
.then(blocks => {
console.log(blocks);
})
.catch(err => {
console.error(err);
});
})
.catch(err => {
throw new Error(err);
});
```#### Connect to specific Monero daemons
```js
// const daemonRPC = new Monero.daemonRPC().then(...).catch(...); // Connect with defaults
// const daemonRPC = new Monero.daemonRPC('127.0.0.1', 28081, 'user', 'pass', 'http').then(...).catch(...); // Example of passing in parameters
// const daemonRPC = new Monero.daemonRPC({ port: 28081, protocol: 'https' }).then(...).catch(...); // Parameters can be passed in as an object/dictionary
const daemonRPC = new Monero.daemonRPC() // Connect with defaults
.then(daemon => {
daemonRPC = daemon; // Store daemon interface in global variabledaemonRPC.getblockcount()
.then(height => {
console.log(height);
})
.catch(err => {
console.error(err);
});
})
.catch(err => {
throw new Error(err);
});
```#### Connect to Monero wallet (`monero-wallet-rpc`)
```js
// const walletRPC = new Monero.walletRPC('127.0.0.1', 28083, 'user', 'pass', 'http').then(...).catch(...); // Example of passing in parameters
// const walletRPC = new Monero.walletRPC({ port: 28083, protocol: 'https' }).then(...).catch(...); // Parameters can be passed in as an object/dictionary
// const walletRPC = new Monero.walletRPC({ autoconnect: true }).then(...).catch(...); // Autoconnect
const walletRPC = new Monero.walletRPC() // Connect with defaults
.then(wallet => {
walletRPC = wallet; // Store wallet interface in global variablewalletRPC.create_wallet('monero_wallet', '')
.then(new_wallet => {
walletRPC.open_wallet('monero_wallet', '')
.then(wallet => {
walletRPC.getaddress()
.then(balance => {
console.log(balance);
})
.catch(err = {
console.error(err);
});
})
.catch(err = {
console.error(err);
});
})
.catch(err = {
console.error(err);
});
})
.catch(err = {
throw new Error(err);
});
```