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
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
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
550
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
10
4.1k
スマートグラスで並列バイブコーディング
hyshu
0
140
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
140
New "Type" system on PicoRuby
pocke
1
920
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
7
4.4k
Creating Composable Callables in Contemporary C++
rollbear
0
130
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
750
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
3
450
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
590
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Automating Front-end Workflow
addyosmani
1370
210k
Designing for Performance
lara
611
70k
Practical Orchestrator
shlominoach
191
11k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
How to train your dragon (web standard)
notwaldorf
97
6.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 ऴྃ༧ఆ