[wallet.html]
<!DOCTYPE html> <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.js"></script> <script src="ripple-0.17.4.js"></script> <script> //ここにJavaScriptコードを書いていきます </script> <style type="text/css"> //ここにCSSを書いていきます td, th { border: 1px solid black; padding: 5px; } table { border-collapse: collapse; } </style> </head> <body> //ここにHTMLを書いていきます </body> </html>
1.オフライン用のRippleAPIインスタンスを作る
まず、オフラインでRippleAPIを利用するためのインスタンスを作ります。次のコードを<script>~</script>の最初に書いてください。
const apiOffline = new ripple.RippleAPI();
ちなみに、Rippleサーバーに接続してオンラインでRippleAPIを利用するには以下のようにします。
const apiOnline = new ripple.RippleAPI({ server: 'wss://s1.ripple.com' });
2.ウォレットを作る
ウォレットは、アドレスとシークレットキーという二つの要素から成ります。
アドレスとシークレットキーを生成するには generateAddress() というメソッドを使います。このメソッドはオフラインで使えます。
返り値は次のようなオブジェクトになります。
{ "address": "rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f", "secret": "sp6JS7f14BuwFY8Mw6bTtLKWauoUs" }
まず、<body>~</body>にcreateNewWallet()を呼び出すボタンと結果の表を表示する場所を作ります。ボタンをクリックすると、そのボタンの下に注意書きと新しく生成されたアドレスとシークレットキーを表示するようにします。
<body> <form> <input type="button" class="button" onClick="createNewWallet()"> </form> <div id="new_wallet"></div> </body>
<style>~</style>にCSSを追加してボタンのデザインや位置を整えます。
#container { width: 50%; margin: 0 auto; } .button { font-size: 1.4em; font-weight: bold; padding: 10px 30px; background-color: #248; color: #fff; border-style: none; border-radius: 5px; }
ブラウザで読み込むと、下のようなボタンが表示されるはずです。
では、generateAddress()メソッドを使ってアドレスとシークレットキーを生成して、表形式で表示する createNewWallet() という関数をつくってみましょう。
function createNewWallet() { const apiOffline = new ripple.RippleAPI(); // RippleAPIインスタンスを生成 const pair = apiOffline.generateAddress(); // アドレスとシークレットキーを生成 const address = pair.address; // アドレスを取り出す const secret = pair.secret; // シークレットキーを取り出す document.getElemetById('new_wallet').innerHTML = "<ul><li>下に表示されているアドレスとシークレットキーを紙に書くなどして保存してください</li>" + "<li>特にシークレットキーの保管には十分注意してください。</li>" + "<li>画像にしたりやテキストファイルにコピーして保存する場合はUSBメモリーなどの外部メモリーで保存するなどして、インターネットから切り離された状態で保管してください。</li>" + "<li>シークレットキーを失くすと資金を引き出すことができなくなります。</li></ul>" + "<li>シークレットキーを他人に知られると勝手に資金を引き出される危険があります。</li></ul>" + "<table><tr><th>Address</th><td>" + address + "</td></tr><th>Secret</th><td>" + secret + "</td></tr></table>" };
「新規にウォレットを作成」ボタンをクリックすると、下の画像のように表示されます。
3.今回のまとめ
ここまでのコードをまとめると次のようになります。
[wallet.html]
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>XRP Wallet</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.js"></script> <script src="ripple-0.17.4.js"></script> <script> function createNewWallet() { const apiOffline = new ripple.RippleAPI(); const addressAndSecret = apiOffline.generateAddress(); const address = addressAndSecret.address; const secret = addressAndSecret.secret; document.getElementById("new_wallet").innerHTML = "<ul><li>下に表示されているアドレスとシークレットキーを紙に書くなどして保存してください</li>" + "<li>特にシークレットキーの保管には十分注意してください。</li>" + "<li>画像にしたりやテキストファイルにコピーして保存する場合はUSBメモリーなどの外部メモリーで保存するなどして、インターネットから切り離された状態で保管してください。</li>" + "<li>シークレットキーを失くすと資金を引き出すことができなくなります。</li>" + "<li>シークレットキーを他人に知られると勝手に資金を引き出される危険があります。</li></ul>" + "<table><tr><th>Address</th><td>" + address + "</td></tr><tr><th>Secret</th><td>" + secret + "</td></tr></table>"; }; </script> <style type="text/css"> #container { max-width: 600px; margin: 0 auto; } .button { font-size: 1.4em; font-weight: bold; padding: 10px 30px; width: 100%; margin: 40px 0px 0px 0px; background-color: #248; color: #fff; border-style: none; border-radius: 5px; } table { margin: 10px auto; width: 500px; } td, th { border: 1px solid black; padding: 5px; } table { border-collapse: collapse; } </style> </head> <body> <div id="container"> <form> <input type="button" class="button" value="新規にウォレットを作成" onClick="createNewWallet()"> </form> <div id="new_wallet"></div> </div> </body> </html>
0 件のコメント:
コメントを投稿