inflearn logo
็Ÿฅ่ญ˜ๅ…ฑๆœ‰
inflearn logo

Clicker Gameใ‚’่ค‡ๆ•ฐใฎใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใงๅฎŸ่ฃ…ใ™ใ‚‹

Web3ใฎ้–‹็™บใ€ใฉใ“ใ‹ใ‚‰ๅง‹ใ‚ใ‚‹ในใใ‹ๆ‚ฉใ‚“ใงใ„ใพใ—ใŸใ‹๏ผŸ่ฆ‹ใคใ‘ใซใใใ€็ฐกๅ˜ใซๅง‹ใ‚ใ‚‹ใ“ใจใŒใงใใชใ‹ใฃใŸWeb3 dAppใจใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆ้–‹็™บใ€ไปŠDev Playgroundใจไธ€็ท’ใซ็Ÿฅใฃใฆใฟใฆใใ ใ•ใ„๏ผ

้›ฃๆ˜“ๅบฆ ๅˆ็ดš

ๅ—่ฌ›ๆœŸ้–“ ็„กๅˆถ้™

DApp
DApp
DApp
DApp
Thumbnail

ๅ—่ฌ›ๅพŒใซๅพ—ใ‚‰ใ‚Œใ‚‹ใ“ใจ

  • ใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณ/Web3 dAppใจใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆ้–‹็™บ

  • ใƒกใ‚คใƒณใƒใƒƒใƒˆใจใ‚นใƒžใƒผใƒˆใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใฎใ‚ฌใ‚คใƒ‰

CosmWasm 101 ใ†ใ‚ใƒผ๏ผ
Web3ๆ™‚ไปฃใ€็งใฎๆ‰‹ไฝœใ‚ŠใฎDapp ๐ŸŒŽ

ๆฅฝใ—ใ„ใƒ‡ใ‚ขใƒ—ใƒชใ‚’ไฝœใ‚‹
ไธ€ๅบฆใ‚„ใฃใฆใฟใพใ™ใ‹๏ผŸ ๐Ÿ™Œ

CosmWasmใƒใƒƒใƒˆใƒฏใƒผใ‚ฏไธŠใซ็ฐกๅ˜ใชdAppใ‚’ไฝœๆˆใ—ใพใ™
WEB3ใจไธ€ๆญฉใ‚‚ใฃใจ่ฆชใ—ใใชใฃใฆใฟใฆใใ ใ•ใ„ใ€‚

ใ“ใ‚“ใซใกใฏใ€Web3ๆ™‚ไปฃใฎใ‚คใƒณใƒ•ใƒฉใ‚’ไฝœใฃใฆใ„ใDSRVใงใ™๏ผ

ๆœ€่ฟ‘ๅคงๅ‹ขใซๆตฎใ‹ใ‚“ใ WEB3ใ€ใชใ‚“ใ ใ‹ๆผ ็„ถใจๆ„Ÿใ˜ใ‚‰ใ‚Œใพใ™ใ‹๏ผŸ WEB3ใ‚’ๅญฆใถใŸใ‚ใซ่ณ‡ๆ–™ใ‚’ๆŽขใ™ใจใ€ๆŠ€่ก“็š„ใซๆ›ธใ‹ใ‚ŒใŸใƒใƒฅใƒผใƒˆใƒชใ‚ขใƒซใŒใŸใใ•ใ‚“ใ‚ใ‚Šใพใ™ใ€‚ใ—ใ‹ใ—ใ€WEB3ใŒไธๆ…ฃใ‚Œใชไบบใซใจใฃใฆใฏใ€ใ“ใฎใ‚ˆใ†ใช่ชฌๆ˜ŽใŒ็กฌใใฆ่ค‡้›‘ใง่ฆ‹ใˆใฆ็†่งฃใ—ใซใใ„ใงใ—ใ‚‡ใ†ใ€‚ใ—ใ‹ใ—ใ€DSRVใฏใ€ใ‚ˆใ‚ŠๅคšใใฎWeb้–‹็™บ่€…ใŒใ‚นใƒžใƒผใƒˆใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆ๏ผˆSmart Contract๏ผ‰้–‹็™บใซ่งฆใ‚Œใ‚‹ใ“ใจใŒใงใใ‚‹ใ‚ˆใ†ใซใ€็›ดๆŽฅไฝ•ใ‹ใ‚’ไฝœๆˆใ—ใชใŒใ‚‰WEB3ใ‚’ๅญฆ็ฟ’ใงใใ‚‹ใ‚ˆใ†ใซๆกˆๅ†…ใ—ใพใ™ใ€‚

ไปŠๅ›žใฎCosmWasm 101ใ‚ทใƒชใƒผใ‚บใฏใ€็ฐกๅ˜ใชใ‚ฏใƒชใƒƒใ‚ซใƒผใ‚ฒใƒผใƒ ๏ผˆClicker Game๏ผ‰ใ‚’ไฝœใ‚‹ใŸใ‚ใซๅฟ…่ฆใชใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆ่ชฌๆ˜Žใ€้…ๅธƒใ€ใƒชใ‚ขใ‚ฏใƒˆ๏ผˆReact๏ผ‰ใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰ๆŽฅ็ถšใพใงใ€ๅฟ…่ฆใชใ™ในใฆใฎๅ†…ๅฎนใ‚’ๅฎŸ็ฟ’ใ‚’้€šใ˜ใฆๆฌกใ€…ใจ็†่งฃใงใใ‚‹ใ‚ˆใ†ใซๆง‹ๆˆใ•ใ‚Œใฆใ„ใพใ™ใ€‚ WEB3.0ใจใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใซ้–ขๅฟƒใฎ้ซ˜ใ„Web้–‹็™บ่€…ใชใ‚‰่ชฐใงใ‚‚ไธ€็ท’ใซใงใใพใ™ใ€‚ใใ‚Œใงใฏ่‡ชๅˆ†ใงไฝœใ‚ใ†๏ผ


ใ—ใ‹ใ—ใ€ CosmWasmใจใฏไฝ•ใงใ™ใ‹๏ผŸ ๐Ÿ˜ฎ

ใ•ใพใ–ใพใชใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚’็›ธไบ’ๆŽฅ็ถšใงใใ‚‹ใจใ„ใ†็‚นใงใ€EthereumใฎๅผทๅŠ›ใช็ซถไบ‰็›ธๆ‰‹ใซ้ธใฐใ‚ŒใŸCosmosใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใฏใ€ๆœ€่ฟ‘WebAssemblyใจRustใ‚’ไฝฟใฃใฆใ‚นใƒžใƒผใƒˆใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใ‚’ๅฑ•้–‹ใงใใ‚‹CosmWasm๏ผˆใ‚ณใ‚บใƒ ๏ผ‰ใ‚’็™บ่กจใ—ใพใ—ใŸใ€‚

CosmWasmใธใฎ้–ขๅฟƒใŒ้ซ˜ใพใฃใฆใ„ใพใ™ใŒใ€CosmWasmใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใงRust่จ€่ชžใ‚’ๆดป็”จใ—ใฆใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ไพ‹ใฏใ€ใ“ใ‚Œใพใงๅ…ฌๅผๆ–‡ๆ›ธใซ่‹ฑ่ชžใงใฎใฟๆไพ›ใ•ใ‚Œใฆใใพใ—ใŸใ€‚ใใฎใŸใ‚ๅˆๅฟƒ่€…ใฎ็ซ‹ๅ ดใงๅฎŸ้š›ใซCosmWasmใ‚’ๆดป็”จใ™ใ‚‹ใŸใ‚ใฎใƒใƒฅใƒผใƒˆใƒชใ‚ขใƒซใŒๅญ˜ๅœจใ›ใšใ€้€ฒๅ…ฅ้šœๅฃใŒ้žๅธธใซ้ซ˜ใๆ„Ÿใ˜ใ‚‰ใ‚Œใ‚‹ใ—ใ‹ใชใ‹ใฃใŸใ€‚

ใ“ใฎใƒฌใƒƒใ‚นใƒณใ‚’ๅ—ใ‘ใŸใ‚‰ใ€CosmWasmใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใฎไธŠใซ็ฐกๅ˜ใชใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใƒšใƒผใ‚ธใจใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰ใƒšใƒผใ‚ธใ‚’ๆ›ธใใ“ใจใŒใงใใพใ™ใ€‚ CosmWasmใ€ใใ—ใฆใ‚นใƒžใƒผใƒˆใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใฎ้–‹็™บใซ่ˆˆๅ‘ณใŒใ‚ใ‚Šใพใ—ใŸใŒใ€็ฐกๅ˜ใซๅง‹ใ‚ใ‚‹ใ“ใจใŒใงใใชใ‹ใฃใŸๅคšใใฎไบบใซใจใฃใฆใ€ใ“ใฎใƒฌใƒƒใ‚นใƒณใŒ่‰ฏใ„ๅ‡บ็™บ็‚นใซใชใ‚‹ใ“ใจใ‚’้ก˜ใฃใฆใ„ใพใ™ใ€‚

โš’๏ธ่ฌ›็พฉใงไฝฟใ‚ใ‚Œใ‚‹ใƒ„ใƒผใƒซใ‚„้ธๆ‰‹ใฎ็Ÿฅ่ญ˜

  • IDE๏ผšIntelliJใพใŸใฏVisual Studio Code๏ผˆๅฟ…่ฆใชใƒ„ใƒผใƒซใ‚’้ธๆŠžใงใใพใ™ใ€‚๏ผ‰
  • Front-End: JavaScript & React, CosmJS, Keplr Wallet
  • Contract: Rust & Cargo, Osmosisd, CosmJS
  • JavaScriptใ‚’ไฝฟ็”จใงใใ‚‹ใ€Web3.0ใจใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใซ้–ขๅฟƒใฎ้ซ˜ใ„ใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰/ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰้–‹็™บ่€…ใชใ‚‰่ชฐใงใ‚‚ๅญฆ็ฟ’ใงใใพใ™ใ€‚ ๏ผˆๅŸบๆœฌ็š„ใชEthereumใฎ็Ÿฅ่ญ˜ใŒใ‚ใ‚Œใฐใ•ใ‚‰ใซ่‰ฏใ„ใงใ™ใ€‚๏ผ‰

CosmWasm 101ใ‹ใ‚‰
ๅญฆใถๅ†…ๅฎน๐Ÿ“š

ๆœฌ่ฌ›็พฉใฏๅฎŸ็ฟ’ไธญๅฟƒใงๆง‹ๆˆใ•ใ‚ŒใฆใŠใ‚Šใ€ไธญ้€”ๅŠ็ซฏใชๅฟ…่ฆ็†่ซ–ใ‚’่ชฌๆ˜Žใ™ใ‚‹ๆ–นๆณ•ใง่กŒใ‚ใ‚Œใพใ™ใ€‚

ใพใšใ€็ฌฌ1็ทจใงใฏCounterใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใ‚’็›ดๆŽฅไฝœๆˆใ—ใ€ใƒ†ใ‚นใƒˆใซๅˆๆ ผใ—ใ€ใใฎใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใŒใฉใฎใ‚ˆใ†ใซๅฎŸ่ฃ…ใ•ใ‚Œใฆใ„ใ‚‹ใ‹ใ‚’่ฆ‹ใฆใ„ใใพใ™ใ€‚ Entrypointใ€Processorใ€Errorใชใฉใ€CosmWasmใŒไฝฟ็”จใ™ใ‚‹ๅŸบๆœฌ็š„ใชใƒ‡ใ‚ถใ‚คใƒณใƒ‘ใ‚ฟใƒผใƒณใซใคใ„ใฆๅญฆใถใ“ใจใŒใงใใพใ™ใ€‚

ๆฌกใฎ็ฌฌ2็ซ ใงใฏใ€Counterใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใ‚’OsmosisใจJuno Testnetใง้…ๅธƒใ—ใพใ™ใ€‚ osmosisdใจCosmJSใ€ใใ—ใฆDSRVใฎMulti RPCใƒŽใƒผใƒ‰ใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใงใ‚ใ‚‹All That Nodeใ‚’ๆดป็”จใ—ใฆใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใจ้€šไฟกใ—ใพใ™ใ€‚ๅŸบๆœฌ็š„ใชJavaScriptใฎ็Ÿฅ่ญ˜ใจNode.jsใ‚’ไฝฟใฃใŸ็ตŒ้จ“ใŒใ‚ใ‚Œใฐใ€ๅคงใใช็„ก็†ใชใๅญฆใถใ“ใจใŒใงใใพใ™ใ€‚

ๆœ€ๅพŒใฎ3็ทจใงใฏใ€ไปฅๅ‰ใซ้…ๅธƒใ—ใฆไฝœๆˆใ—ใŸๅฅ‘็ด„ใซๅŸบใฅใ„ใฆใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰ใจ้€šไฟกใ™ใ‚‹ๆ–นๆณ•ใซใคใ„ใฆๅญฆ็ฟ’ใ—ใพใ™ใ€‚ CosmJSใจKeplr Walletใ‚’ๆดป็”จใ—ใฆ้…ๅธƒใ—ใŸใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใŒReact.jsใจ็›ธไบ’้€šไฟกใ—ใชใŒใ‚‰ใ€ใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใฎใƒกใ‚ฝใƒƒใƒ‰ใ‚’ๅ‘ผใณๅ‡บใ—ใ€ใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใซใƒ‡ใƒผใ‚ฟใ‚’ๆ›ธใ่พผใ‚€ๆ–นๆณ•ใ‚’ๅญฆใถใ“ใจใŒใงใใพใ™ใ€‚


Q&Aใ‚’ใƒใ‚งใƒƒใ‚ฏใ—ใฆใฟใฆใใ ใ•ใ„๏ผ ๐Ÿ’ฌ

Q. Solidity(ใ‚ฝใƒชใƒ‡ใ‚ฃใƒ†ใ‚ฃ)ใชใฉๆ—ขๅญ˜ใฎใ‚คใƒผใ‚ตใƒชใ‚ขใƒ ้–ข้€ฃใฎ็Ÿฅ่ญ˜ใŒใฉใฎ็จ‹ๅบฆใพใงๅฟ…่ฆใงใ™ใ‹๏ผŸ

ๅŸบๆœฌ็š„ใชERC20ใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใ‚’ๅฑ•้–‹ใ—ใฆใ€ใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰ใจ้€šไฟกใ—ใฆใฟใŸ็ตŒ้จ“ใŒใ‚ใ‚Œใฐ็ฐกๅ˜ใซๅญฆ็ฟ’ใงใใพใ™ใ€‚

Q. Rust่จ€่ชžใซๆ…ฃใ‚Œใฆใ„ใชใ„ใฎใซๅญฆ็ฟ’ใงใใพใ™ใ‹๏ผŸ

ใ“ใฎใƒฌใƒƒใ‚นใƒณใงใฏใ€Rust่จ€่ชžใ‚’้›†ไธญ็š„ใซๆ‰ฑใฃใฆใ„ใพใ›ใ‚“ใ€‚ใ—ใ‹ใ—ใ€RustใฎๅŸบๆœฌ็š„ใชๆฆ‚ๅฟตใ ใ‘ใ‚’ๆ‰ฑใ†ใฎใงใ€้Ÿ“ๅ›ฝ่ชžRust Docsใ‚’1๏ฝž4ๆžš็จ‹ๅบฆใพใง่ชญใ‚“ใงใใ ใ•ใ‚‹ใ“ใจใ‚’ใŠๅ‹งใ‚ใ—ใพใ™ใ€‚ (https://rinthel.github.io/rust-lang-book-ja/)

Q. Cosmosใƒ™ใƒผใ‚นใฎใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใŒ่‰ฏใ„ใ‚ˆใ†ใงใ™ใญใ€‚ๅ€‹ไบบ็š„ใซๆŠ•่ณ‡ใ™ในใใงใ—ใ‚‡ใ†ใ‹๏ผŸ

ใ“ใฎ่ฌ›็พฉใฏๆƒ…ๅ ฑไผ้”ใฎ็›ฎ็š„ใงไฝœๆˆใ•ใ‚ŒใฆใŠใ‚Šใ€็‰นๅฎšใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใซๅฏพใ™ใ‚‹ๆŠ•่ณ‡ๅ‹งๅ‘Šใ€ๆณ•็š„ๅŠฉ่จ€ใชใฉใ‚’็›ฎ็š„ใจใ—ใฆใ„ใพใ›ใ‚“ใ€‚ใ™ในใฆใฎๆŠ•่ณ‡ใฎ่ฒฌไปปใฏๅ€‹ไบบใซใ‚ใ‚Šใ€็ตๆžœใจใ—ใฆ็”Ÿใ˜ใŸ็ตๆžœใซใคใ„ใฆใ„ใ‹ใชใ‚‹้ƒจๅˆ†ใซใŠใ„ใฆใ‚‚DSRVใฏ่ฒฌไปปใ‚’่ฒ ใ„ใพใ›ใ‚“ใ€‚่ฌ›็พฉใงๅŒ…ๆ‹ฌใ™ใ‚‹ๅ†…ๅฎนใฏ็‰นๅฎšใฎ่ณ‡็”ฃใธใฎๆŠ•่ณ‡ใ‚’ๆŽจๅฅจใ™ใ‚‹ใ‚‚ใฎใงใฏใชใใ€ใ„ใคใ‚‚่ฌ›็พฉๅ†…ๅฎนใฎใฟใซใ‚ˆใ‚‹ๆ„ๆ€ๆฑบๅฎšใฏๆŒ‡ๆ‘˜ใ—ใฆใใ ใ•ใ„ใ€‚

ใ“ใ‚“ใชๆ–นใซ
ใŠใ™ใ™ใ‚ใงใ™

ๅญฆ็ฟ’ๅฏพ่ฑกใฏ
่ชฐใงใ—ใ‚‡ใ†๏ผŸ

  • ใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใ‚ณใƒณใƒˆใƒฉใ‚ฏใƒˆใฎ้–‹็™บใซ่ˆˆๅ‘ณใŒใ‚ใ‚‹ไบบ

  • Web3ใ‚จใ‚ณใ‚ทใ‚นใƒ†ใƒ ใ‚’ไฝœใฃใฆใ„ใใƒ“ใƒซใƒ€ใƒผใซใชใ‚ŠใŸใ„ไบบ

ๅ‰ๆ็Ÿฅ่ญ˜ใ€
ๅฟ…่ฆใงใ—ใ‚‡ใ†ใ‹๏ผŸ

  • JavaScriptใฎๅŸบๆœฌ็š„ใช็†่งฃ

ใ“ใ‚“ใซใกใฏ
DSRV Dev Guildใงใ™ใ€‚

385

ๅ—่ฌ›็”Ÿ

3

ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ

4.3

่ฌ›ๅบง่ฉ•ไพก

1

่ฌ›ๅบง

่ฌ›ๅบงๆŽฒ่ผ‰ๆ—ฅ: 
ๆœ€็ต‚ๆ›ดๆ–ฐๆ—ฅ: 

ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ

ๅ…จไฝ“

3ไปถ

4.3

3ไปถใฎๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ

  • hyongsu44๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    hyongsu44

    ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ 868

    โˆ™

    ๅนณๅ‡่ฉ•ไพก 5.0

    5

    100% ๅ—่ฌ›ๅพŒใซไฝœๆˆ

    ่ฌ›็พฉใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    • jjhgwx๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      jjhgwx

      ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ 841

      โˆ™

      ๅนณๅ‡่ฉ•ไพก 4.9

      5

      60% ๅ—่ฌ›ๅพŒใซไฝœๆˆ

      ่‰ฏใ„่ฌ›็พฉใ‚’ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ—ใŸ๏ผ

      • hankyulkim๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        hankyulkim

        ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ 36

        โˆ™

        ๅนณๅ‡่ฉ•ไพก 4.8

        3

        100% ๅ—่ฌ›ๅพŒใซไฝœๆˆ

        ไผผใฆใ„ใ‚‹่ฌ›ๅบง

        ๅŒใ˜ๅˆ†้‡Žใฎไป–ใฎ่ฌ›ๅบงใ‚’่ฆ‹ใฆใฟใพใ—ใ‚‡ใ†๏ผ

        ็„กๆ–™