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
Ionic 6でWeb3やってみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
scrpgil
May 29, 2022
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ionic 6でWeb3やってみた
scrpgil
May 29, 2022
More Decks by scrpgil
See All by scrpgil
Firebase Realtime DB から ActionCable 移行のマネジメントの話
scrpgil
0
120
フレーム問題で考えてみるやる夫スレViewer
scrpgil
0
130
ChatGPTとLangChain さわってみた
scrpgil
0
120
久しぶりに ionic startしてみた
scrpgil
0
270
Ionic×Angularで作る ストーリーズ風UI
scrpgil
0
480
Angularで作るモバイルアプリ開発〜スタートアップの開発事情〜
scrpgil
0
710
夢のクロスプラットフォーム開発
scrpgil
0
400
Stencil JSについて
scrpgil
0
460
PWA_Toolkitについて.pdf
scrpgil
0
2.1k
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
190
How to make the Groovebox
asonas
2
2.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
850
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
440
Abbi's Birthday
coloredviolet
3
8.9k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
420
Tell your own story through comics
letsgokoyo
1
1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
450
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
430
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Transcript
Ionic 6で Web3.0やってみた 大体いい感じのスライドを作るための無料テンプレート VERSION 3.0 CREATED AND MAINTAINED BY
@SANOGRAPHIX ※このページは削除して構いません USE TEMPLATE Click Ionic Meetup #19 Tokyo LT用資料
自己紹介 • 榊原宏祐 • 株式会社キネカ 取締役CTO • Twitterやってるのでフォローお願いします ◦ @scrpgil
突然ですが、他のクロスプラットフォー ムFW(Flutter、RNとか)と比較して Ionicの良さはなんだろう?
Ionicで行うすべてのことにおいて、私たちの指針となる原則は、可能な限りオープン Web標準と機能を採用することにより、「プラットフォームを使用する」ことです。実際、 Ionicを選択した場合、実際にはIonicに賭けているわけではありません。あなたはウェ ブに賭けています—世界で最も実績のあるユニバーサルランタイムです。これは、Ionic FrameworkとツールがすべてオープンWebテクノロジーに基づいているためです。こ れは、Ionicアプリの構築に使用するWeb言語(HTML、CSS、JavaScript)から、アプ リ内で実行される標準ベースのUIコンポーネントまでです。 引用:https://ionic.io/resources/articles/ionic-vs-flutter-comparison-guide Web標準であること
• ブロックチェーンのプラットフォームの上で、色々なサービスを展開してるもの ◦ NFT ◦ Dapps ◦ DAO • 最近だと自民党がNFTを発行したりするようですね。
◦ 岸田トークン:URL WebといえばWeb 3.0がバズってますね
どの記事を見ても、次世代インターネットとか、非中央集権とか、このコインは 価格上がるとか言った情報が多く、実際にプログラミングするとなると、何して 良いかよくわからない。 ただし、Web3.0、キャッチアップしづらい...
LT発表をネタにWeb3を キャッチアップしよう!
• ブロックチェーン • イーサリアム • MetaMask Web3界隈のあれこれ
• 分散台帳技術 ◦ 世界中のノードで台帳管理 • 取引履歴を過去からつなげて管理し、改 ざんや、消去に強い。 • 取引履歴は誰でも閲覧可能で、特定の 管理者がいない(非中央集権)
ブロックチェーンとは?
• ブロックチェーンネットワークの一種 • スマートコントラクトというブロックチェーン上 にプログラムを書き込む機能を持っている。 ◦ ERCというRFC的な規格を色々作ってい る。 ◦ NFTはERC-721など
• web3.jsを使ってJS上からアクセス可能 イーサリアムとは?
• ブロックチェーン上の自分のアカウント ◦ 取引履歴やToken保持数などを記録 • MetaMaskはイーサリアムに対応した人気の ウォレット ◦ アカウント管理や、クライアントアプリとの 接続機能を持つ
• Chrome拡張機能がある ウォレット(MetaMask)とは?
Web3.0のアプリ構成例 スマートコントラクト クライアントアプリ アカウント(ウォレット) Web3.js
• 今回はIonic6+Web3.jsでNFTビューワを作ってみた ◦ https://github.com/scrpgil/ionic-react-web3 • セットアップ ◦ ionic start ◦
npm install web3 Ionic6+Web3.jsでアプリを作る
• react-scriptのバージョンを下げましょう。 ◦ npm install
[email protected]
Web3.js + Webpack5は動かない
MetaMaskとの接続 const connectWallet = () => { window.ethereum .request({ method:
"eth_requestAccounts" }) .then((result: any) => { console.log(result[0]); setAccount(result[0]); }) .catch((error: any) => { setErrorMessage(error.message); }); }; // window.ethereumはMetaMaskのchrome拡張を入れてると使えるようになる
スマートコントラクト(NFT)の呼び出し 1 const defaultAddress = "0x70fc6b119f24fa14d517C86d334EBaE27E654121"; async function getContractABI(address: any)
{ if (!abi && !abiPending) { setABIPending(true); setABI(defaultAbi); } else if (abi && web3js) { setABIPending(false); const contract = new web3js.eth.Contract(abi, address); const tokenUri = await contract.methods.tokenURI("1").call(); const res: any = await api.get(tokenUri); console.log(res); } } getContractABI(defaultAddress); // defaultAddressはスマコンのアドレス。事前に書き込みが必要。
スマートコントラクト(NFT)の呼び出し 2 // スマコンの返却結果は、metaデータのURL:https://aa-storage.aahub.org/nft/2.json // metaデータを読み出すと以下のJSONが返ってくる { "description": "The most
famous ASCII art(S-JIS Art)", "external_url": "https://openseacreatures.io/3", "image": "https://aa-storage.aahub.org/aa/7465ba9e8275eb7d34d49c35997b1aa8.png", "name": "オマエモナー", "attributes": [] }
NFTを読み出し DEMO https://ionic-react-web3.web.app/
• 色々ハマったけど、出来上がってみたらコード自体は短い • NFTの表示はできたけど、さあどうする? ◦ ブロックチェーンの利点を活かすにはどうすればよいのだろうか。 作ってみた所感
• 複数NFTを読み出すためには、アカウントのトランザクションを全部読み 出す必要あり。 ◦ openseaのAPIを使えば簡単に行える ▪ https://testnets-api.opensea.io/api/v1/assets?owner=${address} ▪ Web3.jsいらないのでは... •
Web3.jsを使えば、mint(NFTの登録)も行える ◦ 時間がなかったので、今回はhardhatを使って実施。 ▪ https://github.com/scrpgil/sample-hardhat できなかったこと
• 工数比率 ◦ ブロックチェーン周り9割 ◦ Ionic1割 • ただ、1割の工数でそれなりのUI作れるので、やっぱりIonicって良いです ね。 •
ブロックチェーン界隈、インフラレイヤー感はまだあるので、使いやすいク ライアントアプリを色々出せると良さそう。 Ionic要素少ない
ご清聴ありがとうございました