Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NEMAPIワークショップ

 NEMAPIワークショップ

Cfc01c0563ad1251bc77af766d675fd0?s=128

MasayaYoshino

June 30, 2018
Tweet

Transcript

  1. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ

  2. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ஫ҙࣄ߲ ɾ͜ͷϫʔΫγϣοϓ͸ʲϓϩάϥϛϯάॳ৺ऀ޲͚ʳͰ͢ɻ ɾطʹNEMͷAPIΛ࢖༻ͨ͜͠ͱͷ͋Δํʹ͸؆୯ͳ಺༰ͱͳΓ·͢ɻ ɾͦͷͨΊɺ্ڃऀͷํ͸಺༰Λฉ͔ͣʹίʔώʔΛҿΈͳ͕Β΋͘΋ ͘࡞ۀ͍͍ͯͨͩͯ͠΋ɺϫʔΫγϣοϓʹࢀՃͯ͠΋େৎ෉Ͱ͢ɻ ɾڞ༗ϑΝΠϧ͸ͪ͜Β(https://www.dropbox.com/sh/ l0fpzw973nxqwgs/AAABcSncNZuNalC-Md0hsLjua?dl=0)

  3. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ 1.NEM-APIΛ࢖ͬͯΈΑ͏!!!

  4. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ 1.͓ख࣋ͪͷNEMΞυϨεΛ४උ! 2. ҎԼͷURLʹΞΫηε!! http://alice2.nem.ninja:7890/account/get?address=ࣗ ෼ͷNEMΞυϨε ※FirefoxͰ։͘ͱݟқ͍͔΋ ※ΞυϨεͷϋΠϑϯ(-)͸࡟আ͍ͯͩ͘͠͞

  5. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ͜ΕͰNEM-API͕࢖͑·ͨ͠!স

  6. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ Ͱ͸͜ΕΛWebϖʔδͰදࣔͰ͖ΔΑ͏ʹ

  7. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ 1.ڞ༗ϑΥϧμͷʮfirst.htmlʯΛσεΫτοϓ ʹμ΢ϯϩʔυ 2.ࢦఆݸॴΛมߋ ͜͜ʹࣗ෼ͷ/&.ΞυϨεΛೖΕΔ

  8. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ͜Μͳײ͡ʹͳΓ·͢

  9. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ 1.ϑΝΠϧΛChromeͰ։͘ 2.[։ൃऀπʔϧ]→[ίϯιʔϧ]Λදࣔ 3.ʮ࢒ߴ֬ೝϘλϯʯΛΫϦοΫ 4. ίϯιʔϧͷදࣔΛ֬ೝ

  10. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ͜Μͳײ͡Ͱද͕ࣔ͞Ε·͢ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ

  11. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ͜ͷσʔλΛը໘্ʹ੔ܗͯ͠දࣔ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ

  12. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ߦΛ௥Ճ

  13. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ϘλϯΛԡ͢ͱΞυϨεͱNEM࢒ߴ͕දࣔ͞Ε·͢

  14. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ೚ҙͷΞυϨεͷ࢒ߴΛ֬ೝͯ͠ΈΔ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ

  15. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ҎԼͷίʔυΛमਖ਼ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ มߋ ௥Ճ มߋ ࡟আ

  16. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ೖྗͨ͠ΞυϨεͷ࢒ߴΛදࣔ͠·͢ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ

  17. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ NEMΞυϨεͷੜ੒Λͯ͠ΈΔ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ

  18. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ͔͜͜Βͪΐͬͱ೉͘͠ͳΓ·͢ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ

  19. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ 1. NEM-SDKͷgithubʹΞΫηε https://github.com/QuantumMechanics/ NEM-sdk 2. ϑΝΠϧΛμ΢ϯϩʔυ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ

  20. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ 3. μ΢ϯϩʔυͨ͠ϑΝΠϧΛσεΫτοϓʹ ഑ஔ 4. ҎԼͷίʔυΛ௥Ճ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ

  21. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ 3. μ΢ϯϩʔυͨ͠ϑΝΠϧΛσεΫτοϓʹ ഑ஔ 4. ҎԼͷίʔυΛ௥Ճ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ

  22. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ NEMΞΧ΢ϯτੜ੒ίʔυΛ௥Ճ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ

  23. 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ΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ
  24. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ Consoleʹදࣔ͞ΕΔ͜ͱΛ֬ೝ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ※࣮ࡍʹ࢖༻͢ΔΞΧ΢ϯτͰprivateKey͸ ެ։NG!!!!! Ϧϩʔυ͢ΔͱผͷΞυϨεʹߋ৽͞Ε·͢ɻ

  25. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ࡞੒ͨ͠ΞυϨεΛը໘ʹදࣔ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ

  26. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ҎԼͷίʔυΛ௥Ճ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ௥Ճ ௥Ճ

  27. NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ දࣔΛ֬ೝ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ

  28. QR ࡞੒ͨ͠ΞυϨεΛQRίʔυͰදࣔ͢Δ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ

  29. QR ͦ΋ͦ΋NEMͷQRίʔυʹ͸ͲΜͳ৘ใ͕ ࡌͬͯΔΜͩΖ͏ʁ NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ

  30. QR ٢໺ͷΞυϨε NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ͜ΕΛNEMΞϓϦ Ͱ͸ͳ͍௨ৗͷQR εΩϟφͰಡΈऔͬͯΈΔ

  31. QR ٢໺ͷΞυϨε NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ {“v”:2, “type”:”1”, “data”:{ “addr”:”NEMΞυϨε”, “name”:”Primary” }

    }
  32. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ͜ͷจࣈྻΛQRίʔυʹม׵Ͱ͖Ε͹Α͍

  33. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ΍ͬͯΈΑ͏ʂ

  34. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ 1. jQuery-qrcode-masterΛσεΫτοϓʹΠ ϯετʔϧ https://github.com/jeromeetienne/jquery- qrcode

  35. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ 1. σεΫτοϓͰZipϑΝΠϧΛղౚ 2. ҎԼͷίʔυΛ௥ه ௥Ճ

  36. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ҎԼͷίʔυ΋௥Ճ ௥Ճ

  37. 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)}); ௥Ճݸॴ
  38. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ දࣔΛ֬ೝ

  39. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ QRίʔυΛ͓ख࣋ͪͷNEMΞϓϦͰಡΈࠐΉ (ઈରʹૹۚ͠ͳ͍Ͱ͍ͩ͘͞!!!)

  40. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ͋ͱ΢ΥϨοτ׬੒͢ΔͨΊʹඞཁͳͷ͸

  41. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ૹۚ!

  42. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ ૹۚ!

  43. 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); }); ίʔυ͚ͩɺΞοϓ͓͖ͯ͠·͢ (ୠ͠ɺຊ൪ϓϩμΫτͰ͸࢖༻͠ͳ͍Ͱ͍ͩ͘͞ɺൿີ伴ͷ҉߸Խ͕ඞཁͰ͢ɻ)
  44. QR NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ ௥Ճ Ҏ্ɺNEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘ ΋͘ձͰͨ͠ɻ ͜ΕΛ͖͔͚ͬʹNEMͷ͓खܰ͞Λ஌͍ͬͯ ͚ͨͩΔͱخ͍͠Ͱ͢ɻ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

  45. QR ௥Ճ ٳܜ

  46. λΠϜςʔϒϧ ࣌ؒ ಺༰ 17:00ʙ19:00 NEMΞϓϦ։ൃϫʔΫγϣοϓ&΋͘΋͘ձ 19:00ʙ19:15 catapult͍ͬͯ͡ΈͨΑ(@planethouki) 19:15ʙ19:30 NEMͷࣗಈҾ͖མͱ͠ΞϓϦ࡞ͬͨΑ(@ayasamind) 19:30ʙ20:45

    ަྲྀձ 21:00 ऴྃ༧ఆ