[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 件のコメント:
コメントを投稿