はじめに
nem2-sdk-browserify をGASから読み込ませて、ウェブアプリケーションとしてNEM Catapultを使う方法です。
browserifyの記事については以下のURLを参考ください。
nem2-sdkを使ってブラウザで動くブロックチェーンのアプリを開発する方法
また、今回は以下の記事を大変参考にさせていただきました。
【GAS】WebアプリやAPIも作れちゃう!HtmlServiceについて、できることをまとめてみた。
gsファイル
// コード.gs
function doGet(e) {
return HtmlService.createTemplateFromFile("javascript").evaluate();
}
JavaScriptファイル
javascript.html
<script src="https://s3-ap-northeast-1.amazonaws.com/xembook.net/nem2-sdk/nem2-sdk-0.16.1.js"></script>
<script>
const NODE = 'https://jp5.nemesis.land:3001';
const GENERATION_HASH = "CC42AAD7BD45E8C276741AB2524BC30F5529AF162AD12247EF9A98D6B54A385B";
const nem = require("/node_modules/nem2-sdk");
const alice = nem.Account.generateNewAccount(nem.NetworkType.TEST_NET);
console.log("アカウント作成しました。")
console.log(alice.address.address)
console.log(alice.privateKey)
console.log("送金テスト")
const bob = nem.Account.createFromPrivateKey('DF1A2101A6BA32F33C60B6A59AA72170BB0AC5A4E1057FBA706DC2B999E902C4', nem.NetworkType.TEST_NET);
console.log(bob.address.address);
const tx = nem.TransferTransaction.create(
nem.Deadline.create(),
alice.address,
[
new nem.Mosaic(
new nem.MosaicId('75AF035421401EF0'),
nem.UInt64.fromUint(0)
)
],
nem.PlainMessage.create('Hello World!'),
nem.NetworkType.TEST_NET,
nem.UInt64.fromUint(100000)
);
const signedTx = bob.sign(tx,GENERATION_HASH);
const txHttp = new nem.TransactionHttp(NODE);
console.log(NODE + "/transaction/" + signedTx.hash + "/status");
txHttp
.announce(signedTx)
.subscribe(_ => console.log("ネットワーク通知"), err => console.error(err));
</script>
公開
Webアプリケーションとして公開してください。
ビルド終了後、指定されたURLにアクセスするとnem2-sdkを読み込み、NEMへの接続を試みます。(F12consoleで確認してください)
スプレッドシートのサイドバーをhtmlで実装したりしてアドレス一覧に送金するとか、いろいろ用途がありそうですね。
今まで興味がなかった人もこの機会にぜひ活用方法を検討してみてください。
こちらもご参考ください。