mirror of
https://github.com/OneKeyHQ/bip39.git
synced 2026-04-05 18:43:47 +00:00
29 lines
1.3 KiB
JavaScript
29 lines
1.3 KiB
JavaScript
function XWCbufferToAddress(pubBuf){
|
|
const Buffer = libs.buffer.Buffer;
|
|
const XWC_ADDRESS_PREFIX = "XWC";
|
|
const XWC_NORMAL_ADDRESS_VERSION = "35"
|
|
let addrData = libs.createHash("rmd160").update( libs.createHash("sha512").update(pubBuf).digest()).digest();
|
|
let addrBuf = Buffer.concat([Buffer.from(XWC_NORMAL_ADDRESS_VERSION, "hex") ,addrData])
|
|
let checksum = libs.createHash("rmd160").update(addrBuf).digest("hex").slice(0, 8);
|
|
addrBuf = Buffer.concat([addrBuf, Buffer.from(checksum, "hex")]);
|
|
return XWC_ADDRESS_PREFIX.concat(libs.bs58.encode(addrBuf));
|
|
}
|
|
|
|
function XWCbufferToPublic(pubBuf) {
|
|
const Buffer = libs.buffer.Buffer;
|
|
const XWC_PUBLIC_PREFIX = "XWC";
|
|
let checksum = libs.createHash("rmd160").update(pubBuf).digest("hex").slice(0, 8);
|
|
pubBuf = Buffer.concat([pubBuf, Buffer.from(checksum, "hex")]);
|
|
return XWC_PUBLIC_PREFIX.concat(libs.bs58.encode(pubBuf));
|
|
}
|
|
|
|
function XWCbufferToPrivate(privBuf) {
|
|
const Buffer = libs.buffer.Buffer;
|
|
const XWC_PRIVATE_PREFIX = "80";
|
|
privBuf = Buffer.concat([Buffer.from(XWC_PRIVATE_PREFIX, "hex"), privBuf]);
|
|
let tmp = libs.createHash("sha256").update(privBuf).digest();
|
|
let checksum = libs.createHash("sha256").update(tmp).digest("hex").slice(0, 8);
|
|
privBuf = Buffer.concat([privBuf, Buffer.from(checksum, "hex")]);
|
|
return libs.bs58.encode(privBuf);
|
|
}
|