NEMTUSハッカソンに向けて
プログラム超初心者達が
Symbolを取り入れた簡単なゲームを開発するお話。
『~Challenge SymbolEnjoneer~』
一緒に見ていきましょう!Let’s Enjoy!
part.1
おはこんばんちわ!サカモト ショウタロウ🐶と申します。
年末年始に、NEMTUSハッカソンが開催されます。
最優秀賞(10,000XYM)、その他さまざまな特別賞もあるので、初心者でも賞の獲得を狙える様な内容になります。
そんなNEMTUSハッカソンに向けて、プログラミング入門チャレンジの様な形で記事を書くことになりました!
(サカショウも、プログラミングに関してほぼ触った事がない初心者なので、少し不安ではありますが…えっ⁉笑)
それと並行してNEMTUSのグループNEMber専用Slackに、参加者同士の交流や困ったときのHELPを目的とした、#SymbolEnjoneer チャンネルを開設します。
これを機会に是非グループNEMberへ参加してください。
グループNEMberの詳細・参加方法については、以下のリンク先を確認してください。
NEMTUSの先輩方にも、お助けいただきながらお伝えしていきます!
それでは、僕と一緒に進めていきましょう。
※本連載記事に記載の内容は、テストネットのみの利用にとどめてください。
そのままメインネットに使用する事は、できません。
秘密鍵が公開されてしまいますので、絶対にメインネットで使用しないと約束してください。
【今回パートに必要なもの】
- PC(Windows10)
- インターネット環境
- Symbol Desktop Wallet V1.0.9(テストネット)
- テストネットアカウント×2
- ブラウザ(Google Chrome)
()内は、サカショウの環境です。異なる環境の場合、異なる挙動を取る可能性があります。
【使用するツールとライブラリ】
- ライブラリ
- xembook/nem2-browserify/symbol-sdk-1.0.1.js
- FAUCET
- エクスプローラー
【サカモトが参考にしたところ!】
- 📚nem_takanobuさん
- ☃🐻ゆきぐまライフチャンネルさん
【テストネットウォレット作成 ~XYM送金をしてみよう!】
テストネットウォレット新規作成~XYMの送金方法を、確認するには、
☃🐻ゆきぐまライフチャンネルさんの動画が纏まっていてとても分かりやすいと思います☺
📚nem_takanobuさんの記事も必ず目を通してくださいね✨
※上記参考資料中では、 以前のバージョンのテストネットのGENERATION_HASH等が使われており、 テストネットのリセット時にそれらが変更されてしまった兼ね合いで、 そのまま使用すると説明どおり動かない箇所があるかもしれませんが、 これからやっていく事の大枠に変わりありませんので、作業のニュアンスを掴む意味でも是非一度視聴てくださいね✨
【サカショウが実行したコードは、以下になります。】
※21年11月現在、Googleトップページでコンソールの使用ができませんので、下記URLのNode_infoを開いてF12キーを押し、1グループごとにGoogleコンソールへコピーして貼り付けて、実行てください。
🐶サカショウは、Opening Lineさんのnode/infoを使用しました。
https://sym-test-07.opening-line.jp:3001/node/info
↓ここからConsoleへコピペ&実行
NODE = window.origin;
GENERATION_HASH = '7FCCD304802016BEBBCD342A332F91FF1F3BB5E902988B352697BE245F48E836';
EPOCH_ADJUSTMENT = 1637848847;
(script = document.createElement('script')).src = 'https://xembook.github.io/nem2-browserify/symbol-sdk-1.0.1.js';
document.getElementsByTagName('head')[0].appendChild(script);
nem = require("/node_modules/symbol-sdk");
(※1)(既存アカウントを使う場合は、下記コードを使用する。)00000000……の羅列を送金元ウォレットの秘密鍵に変更してください
// (※1)00000000...を送金元ウォレットの秘密鍵に変更する。
alice = nem.Account.createFromPrivateKey(
"0000000000000000000000000000000000000000000000000000000000000000000",
nem.NetworkType.TEST_NET
);
(※1)(新規作成する場合は、下記コードを使用する)
// 新規アカウント作成をする場合のみ、上記コードを入力せずに、このコードを代入する。
alice = nem.Account.generateNewAccount(nem.NetworkType.TEST_NET);
(※2)aaaaaaaa……の羅列を送金先アドレスに変換してください。
(※3)NEMTUS Hackathon!を変更すると、内包するメッセージが変更できます。
(※4)Defaultの送金XYM量は、1XYMでセットされています。 送金したいXYM数量を100万倍して記入します。
tx = nem.TransferTransaction.create(
nem.Deadline.create(EPOCH_ADJUSTMENT),
// (※2)aaaaaaaa...の羅列を送金先アドレスに変更する。
nem.Address.createFromRawAddress("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
[new nem.Mosaic (new nem.MosaicId('3A8416DB2D53B6C8'),
// 送金したいXYM数量を100万倍して記載する。デフォルトは、1XYM送金で記載しています。
nem.UInt64.fromUint(1000000))],
// (※3)NEMTUS Hackathon!を変更すると、内包するメッセージが変更されます。
nem.PlainMessage.create('NEMTUS Hackathon!'),
nem.NetworkType.TEST_NET,
// (※4)送金手数料を100万倍して記載する。Defaultは、0.1XYMを記載しています。
nem.UInt64.fromUint(100000)
);
署名します。
signedTx = alice.sign(tx, GENERATION_HASH);
ネットワークにアナウンスします。
new nem.TransactionHttp(NODE)
.announce(signedTx)
.subscribe((x) => console.log(x), (err) => console.error(err));
【ウォレット情報を確認してみましょう!】
Symbolexplorerで確認してみます!
下記コードをコピペと実行でURLを要求して、開いてみましょう。
Hey Symbol!!EXPLORERのURL教えて!!(笑)
console.log("https://testnet.symbol.fyi/transactions/" + signedTx.hash);
【終わりに…】
うまくいきましたか?
Symbolを絡めて開発していく上で、必ず参考になる場面が来ると思いますので、繰り返し実践しておくといいと思います。
NEMTUSのグループNEMber専用Slackに、本企画のHELP&交流チャンネルを設ける事となりました‼ 下記のNEMTUS入会案内から、グループNEMberへ是非ご参加ください。開発がもっと楽しくなるかもっ!!
最後までお読み頂きありがとうございました!🐶✨ それでは、また次週!!! 頑張ろう!