Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
neon-jsで始めるNEO dApps開発入門
Search
GENM
September 30, 2018
Programming
460
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
neon-jsで始めるNEO dApps開発入門
ブロックチェーンNEOの開発をするにあたって、有力な選択肢であるJavascript SDKのneon-jsについて紹介
GENM
September 30, 2018
Other Decks in Programming
See All in Programming
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
2.2k
Family mrubyの進捗
kishima
1
120
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
7.3k
WebAssembly in Android Apps 〜 WASMはJNIの夢を見るか
keiji
1
110
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.2k
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
Are APIs Still Relevant in the AI Era?
soyuka
0
250
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
280
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
3k
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.5k
Facilitating Awesome Meetings
lara
57
7.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Thoughts on Productivity
jonyablonski
76
5.4k
From π to Pie charts
rasagy
1
370
Amusing Abliteration
ianozsvald
1
300
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Test your architecture with Archunit
thirion
2
2.4k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
The agentic SEO stack - context over prompts
schlessera
0
940
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Transcript
neon-jsͰ࢝ΊΔdApps։ൃೖ JS SDK for NEO blockchain
NEO Keymakers Japan @genm ࣗݾհ ࠓా େ(23) ܚጯٛक़େֶϝσΟΞσβΠϯݚڀՊ म࢜1 Taisei
Imada ৯ΔΓ NEO Keymakers Japanॴଐ ࡢ·ͰΧϯηϦϯάϩϘοτͷ։ൃ ݱࡏNEOΛத৺ʹϒϩοΫνΣʔϯͷษڧத ిࢠ࡞ Facebook: taisei_imada
NEO Keymakers Japan @genm neon-js: NEO BlockchainͷͨΊͷJavascript SDK ΥϨοτػೳ τϥϯβΫγϣϯ
ͦͷଞศརػೳ neon-js ϥΠτΥϨοτΛ࡞͢Δͷʹेͳػೳ
NEO Keymakers Japan @genm ϥΠτΥϨοτͱϑϧϊʔυͷҧ͍ ϥΠτΥϨοτ ϑϧϊʔυ neo-python ඞཁͳ༰ྔ͕গͳ͍ͷͰεϚϗɺϒϥβͰ͍͍͢ neo-GUI
neo-CLI ϥΠτΥϨοτɺϒϩοΫνΣʔϯͷσʔλΛ࣋ͨͳ͍ ϑϧϊʔυʹґଘ͢ΔΘΓʹ༰ྔগɺػೳγϯϓϧ ϥΠτΥϨοτϑϧϊʔυΛհͯ͠ϒϩοΫνΣʔϯͱΓऔΓΛߦ͏ ϒϩοΫνΣʔϯ طଘϊʔυ
NEO Keymakers Japan @genm Πϯετʔϧ npm i @cityofzion/neon-js <script src="https://unpkg.com/@cityofzion/neon-js"
/> npm ϒϥβ(CDN)
NEO Keymakers Japan @genm neon-js 4.0+ͷߏ Core Module Plugin Module
ɾAPI ɾNEP5 ɾWallet ɾTransactions ɾRPC ɾSmart Contract ɾUtility ɾConstants ɾSettings ɾLogging ϒϩοΫνΣʔϯͱͷΓऔΓʹඞཁͳجຊػೳ ֎෦Ϧιʔεʹґଘ͢Δิॿతͳͷ
NEO Keymakers Japan @genm Core Modules Wallet: wallet import {
wallet } from “@cityofzion/neon-js"; ϓϥΠϕʔτΩʔ͔ΒΥϨοτΛੜͯ͠෮߸Խ const c = new wallet.Account( ɹ“6PYLHmDf6AjF4AsVtosmxHuPYeuyJL3SLuw7J1U8i7HxKAnYNsp61HYRfF” ); // ҉߸Խ͞ΕͨΩʔɾΞυϨεͷදࣔ console.log(c.encrypted); // encrypted key console.log(c.address); // throws error // ύεϫʔυΛೖྗͯ͠ΥϨοτͷ෮߸Խ c.decrypt("city of zion"); console.log(c.address); // ALq7AWrhAueN6mJNqk6FHJjnsEoPRytLdW
NEO Keymakers Japan @genm Core Modules Transactions: tx // τϥϯβΫγϣϯͷੜͱγϦΞϥΠζ
import { tx } from “@cityofzion/neon-js"; let tx = Neon.create.tx({ type: 128 }); const serializedTx = tx.serialize(); RPC: rpc // ΫΤϦΛ࡞ͯ͠ϊʔυʹ໋ྩΛૹ৴͢Δɻ import { rpc } from "@cityofzion/neon-js"; const client = new rpc.rpcClient(URL); let query = Neon.create.query({method: 'custommethod'} client.execute(query)
NEO Keymakers Japan @genm Core Modules Smart Contract: sc Utility:
u // εϚʔτίϯτϥΫτͷςετ(test invoke) import { sc, rpc } from “@cityofzion/neon-js"; const sb = new sc.scriptBuilder() sb.emitAppCall(scriptHash, operation, args[]) rpc.Query.invokeScript(sb.str).execute(nodeURL) // Invoke // จࣈྻΛHEXʹͨ͠ΓɺHEX͔Βจࣈྻʹͨ͠Γ import { u } from “@cityofzion/neon-js"; u.str2hexstring(“normalString”); //string→Hex u.hexstring2str("6e6f726d616c537472696e67"); // Hex→string
NEO Keymakers Japan @genm Core Modules Constants: CONST Settings: settings
Logging: logging // ఆ͕৭ʑೖ͍ͬͯΔ import { CONST } from “@cityofzion/neon-js"; const rpcVersion = CONST.RPC_VERSION // ωοτϫʔΫͷొ import Neon, { settings } from “@cityofzion/neon-js"; const newNet = new Neon.rpc.Network({ name: "NewNet" }); Neon.add.network(newNet); // ϩάͷઃఆ import { logging } from “@cityofzion/neon-js"; logging.logger.setAll('info')
NEO Keymakers Japan @genm Plugin Module ֎෦APIαʔό(neoscan͋Δ͍neonDB)͕ແ͍ͱಈ͔ͳ͍ API NEP5 εϚʔτίϯτϥΫτ͕NEP5ͷن֨ʹͦͬͨߏΛ͍ͯ͠Δඞཁ͕͋Δ
// Balanceͷऔಘ import { api } from “@cityofzion/neon-js”; api.neoscan.getBalance("http://www.neoscan-testnet.io/test_net/v1/", address); // NEP5τʔΫϯͷใऔಘ api.nep5.getTokenInfo("http://seed1.neo.org:20332", rpxScriptHash);
NEO Keymakers Japan @genm neon-jsΛͬͨΞϓϦߏ NEO Blockchain neoscan ΫϥΠΞϯτ PluginModuleܥͷૢ࡞
InvokeɺBalanceͳͲ ϒϩοΫνΣʔϯͷૢ࡞ CoreModuleܥͷૢ࡞ WalletɺTransactionɺRPC
NEO Keymakers Japan @genm neoscanͱ NEO Blockchain neoscan ಉظ άϥϑΟΧϧͳWEBΞϓϦέʔγϣϯ͖ͷAPIαʔό
શͯͷτϥϯβΫγϣϯཤྺ͔ΒͦΕͧΕͷΞΧϯτͷߴΛࢉग़
NEO Keymakers Japan @genm ϓϥΠϕʔτωοτͰָʹ։ൃ͢Δ https://github.com/keymakers/neo-scan-docker NEOSCAN DOCKER $ git
clone https://github.com/keymakers/neo-scan-docker.git $ cd neo-scan-docker $ docker-compose up -d Private net neoscan DockerCompose
NEO Keymakers Japan @genm ऴΘΓʹ neon-jsɺϒϥβElectronͰಈ͔͢ dApps։ൃʹ͓͍ͯݱঢ়࠷༗ྗͳબࢶ
NEO Keymakers Japan @genm ࢀߟࢿྉ 1. neon-js(Github) https://github.com/CityOfZion/neon-js 2. neon-js(Document)
http://cityofzion.io/neon-js/ 3. neon wallet https://neonwallet.com/ 4. neoscan https://neoscan.io/ 5. neoscan docker https://github.com/slipo/neo-scan-docker