]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - src/js/cosmos-util.js
Add Cosmos Hub (ATOM) support
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / src / js / cosmos-util.js
diff --git a/src/js/cosmos-util.js b/src/js/cosmos-util.js
new file mode 100644 (file)
index 0000000..a7f4605
--- /dev/null
@@ -0,0 +1,13 @@
+function CosmosBufferToPublic(pubBuf) {
+  const Buffer = libs.buffer.Buffer;
+  const AminoSecp256k1PubkeyPrefix = Buffer.from("EB5AE987", "hex");
+  const AminoSecp256k1PubkeyLength = Buffer.from("21", "hex");
+  pubBuf = Buffer.concat([AminoSecp256k1PubkeyPrefix, AminoSecp256k1PubkeyLength, pubBuf]);
+  return libs.bech32.encode("cosmospub", libs.bech32.toWords(pubBuf));
+}
+
+function CosmosBufferToAddress(pubBuf) {
+  const sha256_ed = libs.createHash("sha256").update(pubBuf).digest();
+  const ripemd160_ed = libs.createHash("rmd160").update(sha256_ed).digest();
+  return libs.bech32.encode("cosmos", libs.bech32.toWords(ripemd160_ed));
+}