Skip to content

Latest commit

ย 

History

History
188 lines (160 loc) ยท 5.33 KB

File metadata and controls

188 lines (160 loc) ยท 5.33 KB
Starter Kits ๅฟซ้€Ÿๆž„ๅปบ DAPP An Polygon Starter Kit Tutorial containing React, @web3-react, Infura.

0. ็Žฏๅขƒ้…็ฝฎ

Requirements

ๅฎ‰่ฃ… ganache

Download Package from https://www.trufflesuite.com/ganache

ๅฟซ้€Ÿๅผ€ๅง‹

npx create-react-app {YOUR_PROJECT_NAME} --template polygon-starter-kit
cd {YOUR_PROJECT_NAME}
npm run start 

npm start

(npx ๆฅ่‡ช npm 5.2+ ๆˆ–ๆ›ด้ซ˜็‰ˆๆœฌ, ๆŸฅ็œ‹ npm ๆ—ง็‰ˆๆœฌ็š„่ฏดๆ˜Ž)

็„ถๅŽๆ‰“ๅผ€ http://localhost:3000/ ๆŸฅ็œ‹ไฝ ็š„ๅบ”็”จใ€‚

ๅฝ“ไฝ ๅ‡†ๅค‡้ƒจ็ฝฒๅˆฐ็”Ÿไบง็Žฏๅขƒๆ—ถ๏ผŒไฝฟ็”จ npm run build ๅˆ›ๅปบไธ€ไธชๅŽ‹็ผฉๅŽ็š„ bundle๏ผˆๅŒ…๏ผ‰ใ€‚

็ซ‹ๅณๅผ€ๅง‹

ไฝ  ๆ— ้œ€ ๅฎ‰่ฃ…ๆˆ–้…็ฝฎ Webpack ๆˆ– Babel ็ญ‰ๅทฅๅ…ทใ€‚ ๅฎƒไปฌๆ˜ฏ้ข„ๅ…ˆ้…็ฝฎๅฅฝๅนถไธ”้š่—็š„๏ผŒๅ› ๆญคไฝ ๅฏไปฅไธ“ๆณจไบŽไปฃ็ ใ€‚

ๅช้œ€ๅˆ›ๅปบไธ€ไธช้กน็›ฎ๏ผŒๅฐฑๅฏไปฅไบ†ใ€‚

ๅˆ›ๅปบๅบ”็”จ็จ‹ๅบ

ไฝ ้œ€่ฆๅœจๆœฌๅœฐๅผ€ๅ‘่ฎก็ฎ—ๆœบไธŠไฝฟ็”จ Node >= 6๏ผˆไฝ†ๅœจๆœๅŠกๅ™จไธŠไธ้œ€่ฆ๏ผ‰ใ€‚ ไฝ ๅฏไปฅไฝฟ็”จ nvm (macOS/Linux) ๆˆ– nvm-windows ่ฝปๆพๅœฐๅœจไธๅŒ้กน็›ฎไน‹้—ดๅˆ‡ๆข Node ็‰ˆๆœฌใ€‚

ๅˆ›ๅปบๆ–ฐๅบ”็”จ็จ‹ๅบ

npx create-react-app {YOUR_PROJECT_NAME} --template polygon-starter-kit

ๅˆ™ไผšๅœจๅฝ“ๅ‰็›ฎๅฝ•ไธญๅˆ›ๅปบไธ€ไธชๅไธบ {YOUR_PROJECT_NAME} ็š„็›ฎๅฝ•ใ€‚ๅœจ่ฏฅ็›ฎๅฝ•ไธญ๏ผŒๅฎƒๅฐ†็”Ÿๆˆๅˆๅง‹้กน็›ฎ็ป“ๆž„ๅนถๅฎ‰่ฃ…ไพ่ต–้กน๏ผš

{YOUR_PROJECT_NAME}
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ node_modules
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ migrations 
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ public
โ”‚   โ”œโ”€โ”€ favicon.ico
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ””โ”€โ”€ manifest.json
โ””โ”€โ”€ src
	โ”œโ”€โ”€ App.css
	โ”œโ”€โ”€ App.js
	โ”œโ”€โ”€ App.test.js
	โ”œโ”€โ”€ assets
	โ”‚ย ย  โ”œโ”€โ”€ icon-devx.svg
	โ”‚ย ย  โ”œโ”€โ”€ logo512.png
	โ”‚ย ย  โ””โ”€โ”€ polygon-logo.svg
	โ”œโ”€โ”€ components
	โ”‚ย ย  โ”œโ”€โ”€ Contents
	โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
	โ”‚ย ย  โ”œโ”€โ”€ Footer
	โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ footer.css
	โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
	โ”‚ย ย  โ”œโ”€โ”€ Headers
	โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
	โ”‚ย ย  โ””โ”€โ”€ Wallet
	โ”‚ย ย      โ”œโ”€โ”€ ConnectWallet.js
	โ”‚ย ย      โ””โ”€โ”€ WalletInfo.js
	โ”œโ”€โ”€ contracts
	โ”‚ย ย  โ””โ”€โ”€ Migrations.sol
	โ”œโ”€โ”€ hooks
	โ”‚ย ย  โ””โ”€โ”€ index.js
	โ”œโ”€โ”€ index.css
	โ”œโ”€โ”€ index.js
	โ”œโ”€โ”€ lib
	โ”‚ย ย  โ””โ”€โ”€ connectors
	โ”‚ย ย      โ””โ”€โ”€ index.js
	โ”œโ”€โ”€ reportWebVitals.js
	โ””โ”€โ”€ setupTests.js
โ””โ”€โ”€ truffle-config.js
truffle-config.js ย 
const mnemonic = process.env.MNEMONIC;
const HDWalletProvider = require("@truffle/hdwallet-provider");


module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,     
      network_id: "*" // Match any network id
    },
    polygon: {
      provider: new HDWalletProvider(mnemonic, process.env.POLYGON_RPC),
      network_id: 137,
      confirmations: 2,
      timeoutBlocks: 200,
      skipDryRun: true
    },
    mumbai: {
      provider: new HDWalletProvider(mnemonic, process.env.POLYGON_MUMBAI_RPC),
      network_id: 8001,
      confirmations: 2,
      timeoutBlocks: 200,
      skipDryRun: true
    }

ย ๅœจ้กน็›ฎๆ น็›ฎๅฝ•ไธ‹ๅˆ›ๅปบ .env ๆ–‡ไปถ

vim .env
MNEMONIC=" {YOUR_MNEMONIC OR YOUR_PRIVATE_KEY} "
POLYGON_RPC = " {PUBLIC_POLYGON_RPC} OR https://rpc-mainnet.matic.network"
POLYGON_MUMBAI_RPC = " {PUBLIC_POLYGON_MUMBAI_RPC} or https://rpc-mumbai.maticvigil.com/"

ๆ›ดๅคš็š„ PUBLIC_RPC ๅ‚่€ƒ๏ผšDevelopment Docs

1. ้กน็›ฎ็ป“ๆž„

Polygon-Starter-Kit ็›ฎๅฝ•็ป“ๆž„ๅฆ‚ไธ‹

{YOUR_PROJECT_NAME}
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ node_modules
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ migrations 
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ public
โ”‚   โ”œโ”€โ”€ favicon.ico
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ””โ”€โ”€ manifest.json
โ””โ”€โ”€ src
	โ”œโ”€โ”€ App.css
	โ”œโ”€โ”€ App.js
	โ”œโ”€โ”€ App.test.js
	โ”œโ”€โ”€ assets
	โ”‚ย ย  โ”œโ”€โ”€ icon-devx.svg
	โ”‚ย ย  โ”œโ”€โ”€ logo512.png
	โ”‚ย ย  โ””โ”€โ”€ polygon-logo.svg
	โ”œโ”€โ”€ components
	โ”‚ย ย  โ”œโ”€โ”€ Contents
	โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
	โ”‚ย ย  โ”œโ”€โ”€ Footer
	โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ footer.css
	โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
	โ”‚ย ย  โ”œโ”€โ”€ Headers
	โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
	โ”‚ย ย  โ””โ”€โ”€ Wallet
	โ”‚ย ย      โ”œโ”€โ”€ ConnectWallet.js
	โ”‚ย ย      โ””โ”€โ”€ WalletInfo.js
	โ”œโ”€โ”€ contracts
	โ”‚ย ย  โ””โ”€โ”€ Migrations.sol
	โ”œโ”€โ”€ hooks
	โ”‚ย ย  โ””โ”€โ”€ index.js
	โ”œโ”€โ”€ index.css
	โ”œโ”€โ”€ index.js
	โ”œโ”€โ”€ lib
	โ”‚ย ย  โ””โ”€โ”€ connectors
	โ”‚ย ย      โ””โ”€โ”€ index.js
	โ”œโ”€โ”€ reportWebVitals.js
	โ””โ”€โ”€ setupTests.js
โ””โ”€โ”€ truffle-config.js

ๅ…ถไธญ

  • migrations ็”จๆฅๅญ˜ๆ”พ่ฟ็งปใ€้ƒจ็ฝฒๅˆ็บฆ็š„ JS ่„šๆœฌ
  • src ๅฎขๆˆท็ซฏ DAPP ็›ฎๅฝ•
  • src/contracts ็”จๆฅๅญ˜ๆ”พ็ผ–ๅ†™็š„ๆ™บ่ƒฝๅˆ็บฆ(smart contract)๏ผŒๅŒๆ—ถ truffle ็š„ contract ็›ฎๅฝ•ๆŒ‡ๅ‘
  • src/abis ็”จๆฅๅญ˜ๆ”พ truffle ็ผ–่ฏ‘ๅŽ็š„ abis ๆ–‡ไปถ
  • hooks/index.js ๅˆๅง‹ๅŒ– @web3-react ไธญ็š„ Provider ็š„่ฏทๆฑ‚้’ฉๅญ