Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NEMAPIワークショップ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
MasayaYoshino
June 30, 2018
Programming
160
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NEMAPIワークショップ
MasayaYoshino
June 30, 2018
More Decks by MasayaYoshino
See All by MasayaYoshino
コミュニティと共に変化する 私とFusicの8年間
ayasamind
0
4.1k
失敗から学ぶリーダーシップ 〜部門長が踏んだ “お約束の落とし穴” 全公開〜
ayasamind
0
130
近頃のお金の重なり業界のことを調 べてみた話
ayasamind
0
140
ChatGPTで簡単! 余興に使えるAWSサーバーレスアプリ開発入門
ayasamind
0
710
コミュニティがもたらすエンジニアの あり方・働き方とは
ayasamind
0
170
明星和楽2019/エンジニアが活躍する世界とエンジニアの意義
ayasamind
0
88
テストなしでそれ動いてるの?って言われてテストはじめました
ayasamind
0
540
JSでFirebaseのML Kitを使う
ayasamind
0
2k
NuxtとLaravelを連携する上でやったこと
ayasamind
1
1.1k
Other Decks in Programming
See All in Programming
RTSPクライアントを自作してみた話
simotin13
0
600
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
400
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
130
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.6k
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
130
3Dシーンの圧縮
fadis
1
770
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
230
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
230
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.1k
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Music & Morning Musume
bryan
47
7.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
New Earth Scene 8
popppiees
3
2.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
The Pragmatic Product Professional
lauravandoore
37
7.3k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
230
Facilitating Awesome Meetings
lara
57
7k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Transcript
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ҙࣄ߲ ɾ͜ͷϫʔΫγϣοϓʲϓϩάϥϛϯάॳ৺ऀ͚ʳͰ͢ɻ ɾطʹNEMͷAPIΛ༻ͨ͜͠ͱͷ͋Δํʹ؆୯ͳ༰ͱͳΓ·͢ɻ ɾͦͷͨΊɺ্ڃऀͷํ༰Λฉ͔ͣʹίʔώʔΛҿΈͳ͕Β͘ ͘࡞ۀ͍͍ͯͨͩͯ͠ɺϫʔΫγϣοϓʹࢀՃͯ͠େৎͰ͢ɻ ɾڞ༗ϑΝΠϧͪ͜Β(https://www.dropbox.com/sh/ l0fpzw973nxqwgs/AAABcSncNZuNalC-Md0hsLjua?dl=0)
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ 1.NEM-APIΛͬͯΈΑ͏!!!
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ 1.͓ख࣋ͪͷNEMΞυϨεΛ४උ! 2. ҎԼͷURLʹΞΫηε!! http://alice2.nem.ninja:7890/account/get?address=ࣗ ͷNEMΞυϨε ※FirefoxͰ։͘ͱݟқ͍͔ ※ΞυϨεͷϋΠϑϯ(-)আ͍ͯͩ͘͠͞
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ͜ΕͰNEM-API͕͑·ͨ͠!স
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ͱ͜ΕΛWebϖʔδͰදࣔͰ͖ΔΑ͏ʹ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ 1.ڞ༗ϑΥϧμͷʮfirst.htmlʯΛσεΫτοϓ ʹμϯϩʔυ 2.ࢦఆݸॴΛมߋ ͜͜ʹࣗͷ/&.ΞυϨεΛೖΕΔ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ͜Μͳײ͡ʹͳΓ·͢
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ 1.ϑΝΠϧΛChromeͰ։͘ 2.[։ൃऀπʔϧ]→[ίϯιʔϧ]Λදࣔ 3.ʮߴ֬ೝϘλϯʯΛΫϦοΫ 4. ίϯιʔϧͷදࣔΛ֬ೝ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ͜Μͳײ͡Ͱද͕ࣔ͞Ε·͢ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ͜ͷσʔλΛը໘্ʹܗͯ͠දࣔ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ߦΛՃ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ϘλϯΛԡ͢ͱΞυϨεͱNEMߴ͕දࣔ͞Ε·͢
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ҙͷΞυϨεͷߴΛ֬ೝͯ͠ΈΔ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ҎԼͷίʔυΛमਖ਼ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ มߋ Ճ มߋ আ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ೖྗͨ͠ΞυϨεͷߴΛදࣔ͠·͢ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ NEMΞυϨεͷੜΛͯ͠ΈΔ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ͔͜͜Βͪΐͬͱ͘͠ͳΓ·͢ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ 1. NEM-SDKͷgithubʹΞΫηε https://github.com/QuantumMechanics/ NEM-sdk 2. ϑΝΠϧΛμϯϩʔυ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ 3. μϯϩʔυͨ͠ϑΝΠϧΛσεΫτοϓʹ ஔ 4. ҎԼͷίʔυΛՃ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ 3. μϯϩʔυͨ͠ϑΝΠϧΛσεΫτοϓʹ ஔ 4. ҎԼͷίʔυΛՃ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ NEMΞΧϯτੜίʔυΛՃ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ͕͢͞ʹਏ͍ͷͰίϐϖͰ͍͍Ͱ͢Αw var nem = require("nem-sdk").default; const networkId = nem.model.network.data.mainnet.id;
const rBytes = nem.crypto.nacl.randomBytes(32); const privateKey = nem.utils.convert.ua2hex(rBytes); const keyPair = nem.crypto.keyPair.create(privateKey); const address = nem.model.address.toAddress(keyPair.publicKey.toString(), networkId); const publicKey = keyPair.publicKey.toString(); const neminfo = { address: address, privateKey: privateKey, publicKey: publicKey, }; console.log(neminfo); NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Consoleʹදࣔ͞ΕΔ͜ͱΛ֬ೝ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ※࣮ࡍʹ༻͢ΔΞΧϯτͰprivateKey ެ։NG!!!!! Ϧϩʔυ͢ΔͱผͷΞυϨεʹߋ৽͞Ε·͢ɻ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ࡞ͨ͠ΞυϨεΛը໘ʹදࣔ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ ҎԼͷίʔυΛՃ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ Ճ Ճ
NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ දࣔΛ֬ೝ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ
QR ࡞ͨ͠ΞυϨεΛQRίʔυͰදࣔ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ
QR ͦͦNEMͷQRίʔυʹͲΜͳใ͕ ࡌͬͯΔΜͩΖ͏ʁ NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ
QR ٢ͷΞυϨε NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ͜ΕΛNEMΞϓϦ Ͱͳ͍௨ৗͷQR εΩϟφͰಡΈऔͬͯΈΔ
QR ٢ͷΞυϨε NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ {“v”:2, “type”:”1”, “data”:{ “addr”:”NEMΞυϨε”, “name”:”Primary” }
}
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ͜ͷจࣈྻΛQRίʔυʹมͰ͖ΕΑ͍
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ͬͯΈΑ͏ʂ
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ 1. jQuery-qrcode-masterΛσεΫτοϓʹΠ ϯετʔϧ https://github.com/jeromeetienne/jquery- qrcode
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ 1. σεΫτοϓͰZipϑΝΠϧΛղౚ 2. ҎԼͷίʔυΛه Ճ
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ҎԼͷίʔυՃ Ճ
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ҎԼͷίʔυՃ Ճ console.log(neminfo); $('.myAddress').text(neminfo.address); var qr =
{ "v": 2, "type": 1, "data": { "addr": neminfo.address, "name": "Primary" } }; $('#qrcode').qrcode({width: 200, height: 200, text: JSON.stringify(qr)}); Ճݸॴ
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ දࣔΛ֬ೝ
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ QRίʔυΛ͓ख࣋ͪͷNEMΞϓϦͰಡΈࠐΉ (ઈରʹૹۚ͠ͳ͍Ͱ͍ͩ͘͞!!!)
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ͋ͱΥϨοτ͢ΔͨΊʹඞཁͳͷ
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ૹۚ!
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ ૹۚ!
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ let PRIVATEKEY = ൿີ伴; let VOLUME =
ૹΔNEMͷྔ; let PASSWORD = ΥϨοτͷύεϫʔυ; let MESSAGE = ϝοηʔδ; let endpoint = nem.model.objects.create('endpoint')('http:// hachi.nem.ninja', nem.model.nodes.defaultPort); let common = nem.model.objects.create('common')(PASSWORD, PRIVATEKEY); let transferTransaction = nem.model.objects.create('transferTransaction') (PRIVATEKEY, VOLUME, MESSAGE); let preparedTransaction = nem.model.transactions.prepare('transferTransaction')(common, transferTransaction, nem.model.network.data.mainnet.id); nem.model.transactions.send(common, preparedTransaction, endpoint).then(function(res){ console.log(res); }, function(err){ console.log(err); }); ίʔυ͚ͩɺΞοϓ͓͖ͯ͠·͢ (ୠ͠ɺຊ൪ϓϩμΫτͰ༻͠ͳ͍Ͱ͍ͩ͘͞ɺൿີ伴ͷ҉߸Խ͕ඞཁͰ͢ɻ)
QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ Ճ Ҏ্ɺNEMΞϓϦ։ൃϫʔΫγϣοϓ&͘ ͘ձͰͨ͠ɻ ͜ΕΛ͖͔͚ͬʹNEMͷ͓खܰ͞Λ͍ͬͯ ͚ͨͩΔͱخ͍͠Ͱ͢ɻ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
QR Ճ ٳܜ
λΠϜςʔϒϧ ࣌ؒ ༰ 17:00ʙ19:00 NEMΞϓϦ։ൃϫʔΫγϣοϓ&͘͘ձ 19:00ʙ19:15 catapult͍ͬͯ͡ΈͨΑ(@planethouki) 19:15ʙ19:30 NEMͷࣗಈҾ͖མͱ͠ΞϓϦ࡞ͬͨΑ(@ayasamind) 19:30ʙ20:45
ަྲྀձ 21:00 ऴྃ༧ఆ