Nem Symbol-sdk(testnet)　を使ったアカウントの作り方

<h1>はじめに</h1>

NEM-Symbolは非常に簡単に扱うことができるブロックチェーンです。
本来はNODE.JSを使いますが今回はブラウザーで実行させる方法です。
ここではWEB初心者向けにSDKを使ったアカウントの作成方法を簡単に分かりやすく解説していきます。

公式は[こちら](https://docs.symbolplatform.com/ja/guides/account/creating-an-account.html)
※testnet版になります。



<h1>準備するもの</h1>

WEBサーバー
XAMPPなどローカルWEBサーバー環境を用意しておいてください。


Symbol-sdk のブラウザー版(browserify)　

[https://github.com/xembook/nem2-browserify](https://github.com/xembook/nem2-browserify)
symbol-sdk-0.21.0.js をgithubからダウンロードします。

ダウンロードしたら
作業ディレクトリにindex.htmlを作成してsymbol-sdk-0.21.0.jsを置いてください。
symbol-sdk-0.21.0.jsは名前をsymbol_sdk.jsにリネームしておきます。

作業ディレクトリ
|-index.html
|-symbol_sdk.js(symbol-sdk-0.21.0.js)
          



<h1>SDKの読み込み</h1>

symbol_sdk.jsを読み込みます。

```html
<script src="symbol_sdk.js"></script>
```
次にSymbol-SDKをモジュールとしてインポートします。

```html
<script>
var symbol_sdk_1 = require("/node_modules/symbol-sdk");
</script>

```
全体としてはこんな感じ。。。


```html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Symbol-sdk_test</title>
    <script src="/symbol_sdk.js"></script>
</head>
<body>
<script>

const symbol_sdk_1 = require("/node_modules/symbol-sdk");

</script>

```
<h1>アカウントを作成する</h1>

次に公式からアカウント作成させるスクリプトをコピペします。

```javascript
const account = symbol_sdk_1.Account.generateNewAccount(symbol_sdk_1.NetworkType.TEST_NET);
console.log('Your new account address is:', account.address.pretty(), 'and its private key', account.privateKey);
```

全体はこんな感じ

```html
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Symbol-sdk_test</title>
    <script src="/symbol_sdk.js"></script>
</head>
<body>
<script>

var symbol_sdk_1 = require("/node_modules/symbol-sdk");

const account = symbol_sdk_1.Account.generateNewAccount(symbol_sdk_1.NetworkType.TEST_NET);
console.log('Your new account address is:', account.address.pretty(), 'and its private key', account.privateKey);

</script>

</body>
</html>

```
以上でブラウザーからindex.htmlにアクセスするとアカウントが作成されます。
しかし、これではアクセスする毎にアカウントが作られるので、アカウントの作成ボタンをつけましょう。

<h1>アカウント作成ボタンを作る</h1>

先ほどのindex.htmlにボタンを作るコードを追加します。
まずコピペしたアカウント作成コードをfunction()に入れます。
関数名はget_accountにします。

```javascript
function get_account(){
    const account = symbol_sdk_1.Account.generateNewAccount(symbol_sdk_1.NetworkType.TEST_NET);
    console.log('Your new account address is:', account.address.pretty(), 'and its private key', account.privateKey);
}
```
つぎにアカウント作成ボタンを作ります。
onclickに先ほど作成したget_account関数を指定します。

```html
<button onclick="get_account()">アカウント作成</button>
```
全体ではこんな感じです。

```html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Symbol-sdk_test</title>
    <script src="/symbol_sdk.js"></script>
</head>
<body>
<script>

var symbol_sdk_1 = require("/node_modules/symbol-sdk");

function get_account(){
const account = symbol_sdk_1.Account.generateNewAccount(symbol_sdk_1.NetworkType.TEST_NET);
console.log('Your new account address is:', account.address.pretty(), 'and its private key', account.privateKey);
}
</script>

<button onclick="get_account()">アカウント作成</button>

</body>
</html>
```

以上で完成しました。

あとはブラウザーからアクセスしてアカウント作成ボタンを押します。

コンソールログ(F12押すもしくはメニューからその他のツール-デベロッパーツールを押す。)
にアドレスと秘密鍵が表示されていれば成功です！

![qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356924/eff7c99b-8bac-5435-e822-838768e2ca4d.png)

秘密鍵をコンソールログからコピペしてSymbolWalletにインポートしましょう。
SymbolWalletのアカウントの作成から秘密鍵を使って作成でインポートすることができます。

以上Symbol-sdkを使ってブラウザーからアカウントを作る方法でした。