UNPKG

ripplelib

Version:

A JavaScript API for interacting with Ripple in Node.js and the browser

51 lines (48 loc) 2.87 kB
var assert = require('assert'); var Seed = require('ripplelib').Seed; var KeyPair = require('ripplelib').KeyPair; describe('KeyPair', function() { it('can generate an address', function () { var seed = Seed.from_json("snoPBrXtMeMyMHUVTgbuqAfg1SUTb"); var address = seed.get_key().get_address(); assert.strictEqual(address.to_json(), 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh'); }); it('import/export hex', function () { var key = KeyPair.from_json("1ACAAEDECE405B2A958212629E16F2EB46B153EEE94CDD350FDEFF52795525B7"); assert.strictEqual(key.to_pub_hex(), '0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020'); assert.strictEqual(key.to_pri_hex(), '1ACAAEDECE405B2A958212629E16F2EB46B153EEE94CDD350FDEFF52795525B7'); }); it('import/export wif', function () { var key = KeyPair.from_json("p9JfM6HHi64m6mvB6v5k7G2b1cXzGmYiCNJf6GHPKvFTWdeRVjh"); assert.strictEqual(key.to_address_string(), 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh'); assert.strictEqual(key.to_wif(), 'p9JfM6HHi64m6mvB6v5k7G2b1cXzGmYiCNJf6GHPKvFTWdeRVjh'); assert.strictEqual(key.to_pri_string(), 'p9JfM6HHi64m6mvB6v5k7G2b1cXzGmYiCNJf6GHPKvFTWdeRVjh'); }); it('import/export wif bitcoin', function () { var key = KeyPair.from_json("5J25wVUHxgx4NtYUvR4g8QwPxLRVNxmAdJxEdLwemXSuuAMBusw"); assert.strictEqual(key.to_pub_hex(), '0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020'); assert.strictEqual(key.to_wif_bitcoin(), '5J25wVUHxgx4NtYUvR4g8QwPxLRVNxmAdJxEdLwemXSuuAMBusw'); }); it('import/export rfc1751', function () { var str = 'HIP BEEN MARS HULK BAH HAWK HEAR EAT HIRE SIP DANK DOUG YAW GENE WILD ROSS REED HORN DUB WASH RUSE USES BANG SIGN'; var key = KeyPair.from_json(str); assert.strictEqual(key.to_rfc1751(), str); assert.strictEqual(key.to_address_string(), 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh'); }); it('can generate childKey', function () { var key = KeyPair.from_json("p9JfM6HHi64m6mvB6v5k7G2b1cXzGmYiCNJf6GHPKvFTWdeRVjh"); var child = key.get_child(0); assert.strictEqual(child.to_pri_hex(), '0EE25A908CCD78322929DB08FFC7F9F746B198D998BEB098FF2F15FD1DD3E80C'); assert.strictEqual(child.to_pub_hex(), '0215383A93A8CCC1B02A269A7D45461BFF733633518472DABF42E2A25B4D694C96'); assert.strictEqual(child.to_address_string(), 'r4BUhp9EYYSpLYHiKLzgvU2cZWuM92AFzK'); }); it('can generate hardened-childKey', function () { var key = KeyPair.from_json("p9JfM6HHi64m6mvB6v5k7G2b1cXzGmYiCNJf6GHPKvFTWdeRVjh"); var n = Math.pow(2, 31); var child = key.get_child(n); var child2 = key.get_child(0, true); assert.strictEqual(child.to_address_string(), 'r4KLwaTJZCdVCYxqBudMeFATV1ymnYbRT1'); assert.strictEqual(child.to_address_string(), child2.to_address_string()); }); }); // vim:sw=2:sts=2:ts=8:et