LoginSignup
10
4

More than 3 years have passed since last update.

NEM Catapultで使えるQRコードとニーモニックを生成する

Last updated at Posted at 2020-01-08

NEM catapultで利用できるQRコードとニーモニックの作成方法です。

QRコードの出力にはsymbol-qr-libraryを、ニーモニックの出力には symbol-hd-walletsを利用します。
今回はブラウザ上で表示させるために、私が公開しているbrowserify版を利用します。

ライブラリの定義と表示エリアの準備
<script src="https://xembook.github.io/nem2-browserify/symbol-sdk-pack-1.0.0.js"></script>

<body>
<h3>QR Code</h3>
<div ><img id="item1"></div>
<h3>ニーモニック</h3>
<div id="item2"></div>
</body>

今回新たに、2021年3月段階で最新版の symbol-sdkを利用します。
QRコードをitem1 に 日本語対応のニーモニックを item2に出力します。

jsスクリプト
$(function() {

const hd = require("/node_modules/symbol-hd-wallets");
const qr = require("/node_modules/symbol-qr-library");
const nem = require("/node_modules/symbol-sdk");

const mnemonic = hd.MnemonicPassPhrase.createRandom('japanese');
const exportMnemonic = new qr.MnemonicQR(mnemonic, "password", nem.NetworkType.MIJIN_TEST, 'no-chain-id');

const base64 = exportMnemonic.toBase64()
.subscribe(x=>{
    $('#item1').attr('src',x);
    $('#item2').text(mnemonic.plain);
});

})

MnemonicPassPhrase.createRandomでニーモニックを作成します。引数に"japanese"を指定するとひらがなで作成されます。対応しているのは以下の言語

chinese_simplified
chinese_traditional
english
french
italian
japanese
korean
spanish

jpapaneseはUTF8-MACで出力されるのでWindowsのテキストエディタにコピーなどでの運用を検討されている方は文字化けにご注意ください(濁点が文字化けます)。ちなみにこのライブラリはbitcoinjsのbip39のワードリストを使用しているので、他のブロックチェーンでも同じ現象が発生しているはずです。

MnemonicQR で作成したニーモニックに対応するQRコードを生成します。その後 toBase64() をサブスクライブすると画像データがdata:image/png;base64 形式で出力されるのでjQueryなどでそのままブラウザに表示させることができます。

実行結果

無事出力されました。少し大きいQRコードですね。

image.png

”ぜんら”とかあります。だれがリストしたんでしょうね。他にも調べてみると「でぬかえ」とか意味不明な語もあります。ここらは金田一先生など集めて早急に理想的なワードリストを作ってほしいものです。

他にもsymbol-qr-libraryでは、トランザクションのリクエストを要求するQRコードを作成することも可能です。
いろいろと試してみてください。

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4