9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

nem #2 Advent Calendar 2019

Day 10

Google Apps Script(GAS)でNEM Catapultを使う

Last updated at Posted at 2019-12-10

はじめに

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で実装したりしてアドレス一覧に送金するとか、いろいろ用途がありそうですね。
今まで興味がなかった人もこの機会にぜひ活用方法を検討してみてください。

こちらもご参考ください。

9
3
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?