xpring 0.0.10

Rust client-side library for the XRP Ledger
Documentation
const {Wallet} = require('xpring-common-js');

function generateRandomWallet(genOptions) {
    const w = Wallet.generateRandomWallet(genOptions.entropy, genOptions.test);
    if (w) {
        w.wallet = enhance(w.wallet);
        return w;
    } else {
        throw Error('Invalid Entropy');
    }
}

function generateWalletFromMnemonic(genOptions) {
    const w = Wallet.generateWalletFromMnemonic(genOptions.mnemonic, genOptions.derivation_path, genOptions.test);
    if (w) {
        return enhance(w);
    } else {
        throw Error('Invalid mnemonic');
    }
}

function generateWalletFromSeed(genOptions) {
    const w = Wallet.generateWalletFromSeed(genOptions.seed, genOptions.test);
    if (w) {
        return enhance(w);
    } else {
        throw Error('Invalid Seed');
    }
}

function sign(signOptions) {
    const w = new Wallet(null, signOptions.private_key, false);
    const s = w.sign(signOptions.message, signOptions.private_key);
    if (s) {
        return s;
    } else {
        throw Error('Invalid Message or Key');
    }
}

function verify(verifyOptions) {
    const w = new Wallet(verifyOptions.public_key, null, false);
    return w.verify(verifyOptions.message, verifyOptions.signature, verifyOptions.public_key);
}

function enhance(wallet) {
    wallet['address'] = wallet.getAddress();
    return wallet;
}

const walletExports = {
    generateRandomWallet,
    generateWalletFromMnemonic,
    generateWalletFromSeed,
    sign,
    verify
};

module.exports = walletExports;