ERC20Toekn ๋ฐํ ๋ฐ ํ
์คํธ๋ท ๋ฐฐํฌ
ERC20์ด๋ ์น์ธ๋ฐ์ ๊ฐ์ ์ ์์ : EIP(Ethereum Imporvement Proposal) -> ERC(Ethereum Request for Comments)
๋๋ถ๋ถ์ ํ ํฐ๋ค์ ERC20์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง.
* ERC20 : ์์กฐ ์ด๋๋ฆฌ์์ ๋ฐํํ๋ ํ์ค, ์ฝ์ธ ๊ฐ ๋ฑ๊ฐ ๊ตํ ๊ฐ๋ฅ
* ERC721 : NFT ์ฝ์ธ ๋ฐํ ํ์ค, ์ฝ์ธ๊ฐ ๋ฑ๊ฐ๊ตํ ๋ถ๊ฐ
* ERC1155 : ํ์ ๋ ์๋์ผ๋ก ๋์ผ ๊ฐ์น NFT
* ์ด๋๋ฆฌ์ ํ
์คํธ๋ฅผ ์ํ ๋คํธ์ํฌ, ๋ฉ์ธ๋ท์ ์ ํ ์ํฅ์ ์ฃผ์ง ์์.
* Ropsten ์ธ Rinkeby, Kovan ๋ฑ์ ํ
์คํธ๋ท์ด ์์. ํธ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ Ropsten์์ ํ
์คํธ ๋ฐฐํฌ
* ์ค์ ๋ฐฉ๋ฒ
01. ๋ฉํ๋ง์คํฌ ํ
์คํธ๋ท ๊ณ์ ํ์ฑํ : ์ค์ - ๊ณ ๊ธ - ํ
์คํธ ๋คํธ์ํฌ ๋ณด๊ธฐ ํ์ฑํ
02. Ropsten ํ
์คํธ ๋คํธ์ํฌ ์ง๊ฐ ํ์ธ
03. https://faucet.egorfine.com/ ์ ์ํ์ฌ Rosten Eth ๋ฐ์์ค๊ธฐ
04. 5๋ถ ์ด๋ด 10ETH ์์ ํ์ธ
* ๋ฆฌ๋ฏน์ค
* vscode
01. infura.io/ ํ์๊ฐ์
02. API Key ํ์ธ
03. truffle-config.js ์์ line21 - 25, 63-70 ์ฃผ์ ํด์
04. const infurakey = <API key ์
๋ ฅ>;
05. <์ค์น> npm install @truffle/hdwallet-provider
06. rootํด๋ ๋ฐ์์ .secret ํ์ผ์์ฑ ๋ฐ hdwallet ๋ด์ฉ ์
๋ ฅ
07. truffle migrate --network ropsten
[์ฐธ๊ณ ] : https://kimsfamily.kr/331
* https://ropsten.etherscan.io/address/0xb05ecc7a07215f39e41c78112530f6fc70c6adbc (๋ฆฌ๋ฏน์ค์์ ๋ฐํ๋ DWT ์ถ์ )
00. truffle init (ํธ๋ฌํ ํ๋ก์ ํธ ์์ฑ)
* contacts : ์ค๋งํธ์ปจํธ๋ํธ ์์ฑ ํด๋
* migrations : ๋ฐฐํฌ
01. npm install openzeppelin-solidity --save (openzeppelin์ ERC20 ํ ํฐ ๋ฐํ ๊ด๋ จ ์คํ์์ค์)
02. <ํด๋> /contracts ์์ SampleToken.sol ์์ฑ
03. <๋ช
๋ น์ด> truffle compile
04. <ํด๋> /build/contracts ํด๋์ json ํํ์ ๋ฌธ์ ์์ฑ ํ์ธ
05. truffle-config.js ์์ ใ
ฃocalhost (host: "127.0.0.1") ๋ฐ port (7545) ํ์ธ (ganache์ ์ฐ๊ฒฐ๋จ)
06. <๋ช
๋ น์ด> truffle migrate --reset
* Deploying "SampleToke"์์ contract address ํ์ธ (์ด๊ฒ Token ์ฃผ์)
* ์ ํ ํฐ ์ฃผ์๋ฅผ metamask์ ๋ฑ๋ก
* ๊ตฌ๊ธ๋ง์ ๋ ๋ค๋๋ ๋๋ถ๋ถ์ ์์ ๋ solidity 0.5 version ์์ค. ํ์ฌ solidity 0.8 version
* ERC20Detailed.sol์ ์ด์ ์ฌ์ฉํ์ง ์์.
- [openzeppelin-solidity rule.sol์ ๋ํ ์ค๋ช ]
- [openzeppelin_ ERC20.sol์ ๋ํ ์ค๋ช ๋ฐ Token ๋ฐํ ๋ฐฉ๋ฒ ์ค๋ช ]