# Overview [![Build Status](https://drone.nitowa.xyz/api/badges/npm-packages/xrpio/status.svg)](https://drone.nitowa.xyz/npm-packages/xrpio) [![Current Version](https://img.shields.io/npm/v/xrpio.svg)](https://www.npmjs.com/package/xrpio) [![Weekly Downloads](https://img.shields.io/npm/dw/xrpio?color=important)](https://www.npmjs.com/package/xrpio) [![License Type](https://img.shields.io/npm/l/xrpio?color=blueviolet)](https://gitea.nitowa.xyz/docs/xrpio/src/branch/master/LICENSE.md) xrpio is a library that allows you to write and read arbitrary data in the ripple blockchain. # How to install ``` npm i xrpio ``` # Caution This library is in an early stage of development and **breaking changes may occur spontaneously and without regard of semantic versioning until the v1.0.0 release**. ## Operation on the main-net is untested and should not be used in production!
# Quickstart ```typescript import {RippleAPI} from 'ripple-lib' import {treeRead, treeWrite} from 'xrpio' const api = new RippleAPI({ server: "..." }) await api.connect() const dataRootHash = await treeWrite( api, "Arbitrary string data 123", { address: "Sender address", secret: "Sender private key" }, "Receiver address" ) const data = await treeRead(api, [dataRootHash]) console.log(data) //"Arbitrary string data 123" ``` # A simple ready-to-run example for the testnet ```typescript import { treeRead, treeWrite, Wallet } from 'xrpio' import { RippleAPI } from 'ripple-lib' import fetch from 'node-fetch' export const makeTestnetWallet = () : Promise => fetch('https://faucet.altnet.rippletest.net/accounts', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, }).then((raw:any) => { return raw.json().then(content => content.account) }); (async()=>{ const api = new RippleAPI({server: 'wss://s.altnet.rippletest.net:51233'}) await api.connect() const fromWallet = await makeTestnetWallet() const toWallet = await makeTestnetWallet() await new Promise((res, rej) => setTimeout(res, 10000)) //it takes a moment for the wallets to become active const rootHash = await treeWrite(api, "test123", fromWallet, toWallet.address) const data = await treeRead(api, [rootHash]) console.log(data) })() ``` # [Full documentation](https://gitea.nitowa.xyz/docs/xrpio)