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
neon-jsで始めるNEO dApps開発入門
Search
GENM
September 30, 2018
Programming
0
450
neon-jsで始めるNEO dApps開発入門
ブロックチェーンNEOの開発をするにあたって、有力な選択肢であるJavascript SDKのneon-jsについて紹介
GENM
September 30, 2018
Tweet
Share
Other Decks in Programming
See All in Programming
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
Raku Raku Notion 20260128
hareyakayuruyaka
0
360
AtCoder Conference 2025
shindannin
0
1.1k
Data-Centric Kaggle
isax1015
2
780
CSC307 Lecture 10
javiergs
PRO
1
660
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
210
Oxlint JS plugins
kazupon
1
1k
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
100
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
150
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
140
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
Code Review Best Practice
trishagee
74
20k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
Documentation Writing (for coders)
carmenintech
77
5.3k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
84
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
280
Writing Fast Ruby
sferik
630
62k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
Mobile First: as difficult as doing things right
swwweet
225
10k
How GitHub (no longer) Works
holman
316
140k
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