X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=blobdiff_plain;f=libs%2Fcombined%2Findex.js;h=d3bc7a59d034d3c68991aedc369d215569f06cab;hp=99af3ce134731f04452c39617089ecbd5a1ae5e5;hb=6d2e202083c4166aa4be8557789a8a461df6bd5c;hpb=0cb81e1117053c93debfa501a5bdb11169636dd2 diff --git a/libs/combined/index.js b/libs/combined/index.js index 99af3ce..d3bc7a5 100644 --- a/libs/combined/index.js +++ b/libs/combined/index.js @@ -2,6 +2,10 @@ module.exports.basex = require('base-x') +/* base32 */ + +module.exports.base32 = require('base32.js') + /* bchaddrjs */ module.exports.bchaddr = require('bchaddrjs') @@ -84,6 +88,35 @@ module.exports.stellarUtil = { }, } +/* zoobc-util */ + +let base32 = require('base32.js'); +let nbl = require('nebulas'); +module.exports.zoobcUtil = { + getKeypair: function (path, seed) { + const { key, chainCode} = edHd.derivePath(path, seed); + const pubKey = edHd.getPublicKey(key); + return {key,chainCode, pubKey}; + }, + getZBCAddress(publicKey, prefix = "ZBC") { + const prefixDefault = ["ZBC", "ZNK", "ZBL", "ZTX"]; + const valid = prefixDefault.indexOf(prefix) > -1; + if (valid) { + var bytes = new Uint8Array(35); + for (let i = 0; i < 32; i++) bytes[i] = publicKey[i]; + for (let i = 0; i < 3; i++) bytes[i + 32] = prefix.charCodeAt(i); + const checksum = nbl.CryptoUtils.sha3(bytes); + for (let i = 0; i < 3; i++) bytes[i + 32] = Number(checksum[i]); + var segs = [prefix]; + var b32 = base32.encode(bytes); + for (let i = 0; i < 7; i++) segs.push(b32.substr(i * 8, 8)); + return segs.join("_"); + } else { + throw new Error("The Prefix not available!"); + } + } +} + /* nano-util */ let NanoBase = require('nanocurrency-web');