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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
720
コミュニティがもたらすエンジニアの あり方・働き方とは
ayasamind
0
180
明星和楽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
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
250
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
300
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
110
初めてのKubernetes 本番運用でハマった話
oku053
0
120
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
240
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
170
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
490
自作OSでスライド発表する
uyuki234
1
3.7k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
380
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
Vite+ Unified Toolchain for the Web
naokihaba
0
680
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
960
Code Reviewing Like a Champion
maltzj
528
40k
Product Roadmaps are Hard
iamctodd
55
12k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
630
Marketing to machines
jonoalderson
1
5.6k
Automating Front-end Workflow
addyosmani
1370
210k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
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 ऴྃ༧ఆ