1. openzeppelin ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
** openzeppelin๋ผ์ด๋ธ๋ฌ๋ฆฌ: ์ค๋งํธ์ปจํธ๋ํธ ์ฝ๋๋ค ํ์ธํ ์ ์์
smartcontract ํด๋ ์์ฑ ํ
truffle init
npm init -y
npm install -E openzeppelin-solidity
npm install @openzeppelin/contracts
2. smartcontract ํด๋์์ truffle-config.js ํ์ผ ์์
network์ compiler ์์
3. test.sol ํ์ผ ์์ฑ
contract ํด๋ ์์ test.sol ํ์ผ ์์ฑ
pragma solidity ^0.5.2; // solidity 0.5.2 ๋ฒ์ ์ ์ฌ์ฉ
contract TEST { // contract ์ด๋ฆ์ TEST๋ก ์ง์
string public constant name = "TEST token"; // ํ ํฐ์ ์ด๋ฆ์ TEST token
string public constant symbol = "TEST"; // TEST๋ผ๋ ์ด๋ฆ์ ์ฌ์ฉ
uint public constant decimals = 18; // ์์์ 18์๋ฆฌ๊น์ง ์ฌ์ฉํ๊ฒ ์
uint public constant INITIAL_SUPPLY = 1000 * 10 ** decimals; // ์ด๊ธฐ ๋ฐํ๋์ 1000.000000000000000000 (์์์ 18์๋ฆฌ๊น์ง์ฌ์ฉ)
string constant test = "You can not see this"; // public ํ์๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋น ๋ฌธ๊ตฌ ๋ณผ ์ ์์.
}
** ๋ณ์ ์ ์ธ์ public ํ์ง ์์ test ๋ณ์๋ ์ค๋งํธ์ปจํธ๋ํธ ๋ฐฐํฌ ํ์ ์ฐพ์ ์ ์์
4. ๋ฐฐํฌ ์ฝ๋ ์์ฑ
migration ํด๋ ์์ 2_test_migration.js ํ์ผ ์์ฑ
const TestToken = artifacts.require("./Test");
module.exports = function(deployer){
deployer.deploy(TestToken);
};
5. ์ปจํธ๋ํธ ๋ฐฐํฌํ๊ธฐ
ganache-cli ์คํ ํ
truffle migrate ์คํ
- ์์ ๊ฐ์ด 2_test_migration.js ์ค๋งํธ์ปจํธ๋ํธ ํ์ผ์ด ๋ธ๋ก์ฒด์ธ์ ์ ๋ก๋ ๋ ๊ฒ ํ์ธํ ์ ์์
- ์์ contract address๋ก ‘TEST’ ์ค๋งํธ์ปจํธ๋ํธ์ ํต์ ๊ฐ๋ฅ
- migrate ํ build ํด๋ ์์ฑ๋จ → build ํด๋ ์์ TEST.json ํ์ผ ๋ณด๊ธฐ
"abi” → ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ด๋๋ฆฌ ์ธํฐํ์ด์ค
- ABI์์ ๊ณ์ฝ์ ์ ์ํ๊ณ , ์ด ๊ณ์ฝํจ์๋ฅผ ํธ์ถํ๊ณ ์ ํ๋ ํธ์ถ์๋ ABI๋ฅผ ์ฌ์ฉํ ์ ์์
“deployedBytecode” → ๊ณ์ฝ ๋ฐฐํฌ ์ํด ์ด ๋ฐ์ดํธ ์ฝ๋ ํ์
→ → ๊ณ์ฝ์ ๋ฐฐํฌ๋ฅผ ์ํด์ ๋ฐ์ดํธ ์ฝ๋ ํ์, ๊ณ์ฝ์ ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ํด์ ABI๊ฐ ํ์
6. ์ค๋งํธ์ปจํธ๋ํธ์ ํต์ ํ๊ธฐ
๊ธฐ์กด์ ์ค์นํ๋ myetherwallet
contract → intertact with contract
contract address → ์์์ migrate ๊ฒฐ๊ณผ contract address ์ ๋ ฅ
ABI/JSON interface → TEST.json ํ์ผ์์ abi ๊ฐ ๋ณต์ฌ
function ํ๋์ฉ ํด๋ฆญํด๋ณด๋ฉด test.sol์์ ์์ฑํ๋ ๋ณ์๋ค ํ์ธ ๊ฐ๋ฅ (name, symbol, decimal ..)
((public ์ฌ์ฉํ์ง ์์ ๋ณ์ test๋ ํ์ธ๋์ง ์์))
→ ์ค๋งํธ์ปจํธ๋ํธ์ ์ ์์ ์ผ๋ก ๋ฐฐํฌ ํ์ธ
์ถ์ฒ https://kimsfamily.kr/327
'WEB3' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฆฌ๋ฏน์ค ์๋ฆฌ๋ํฐ 8.0 ๋ฒ์ ERC20 ํ ํฐ ๋ง๋ค๊ธฐ (0) | 2023.09.24 |
---|---|
openzeppelin ์ฌ์ฉํด ERC20 ํ ํฐ ๋ง๋ค๊ธฐ (0) | 2023.09.24 |
์๋์ฐ ๋ธ๋ก์ฒด์ธ Private Network ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ (node.js, npm, truffle, ganache, metamask, myetherwallet) (0) | 2023.09.24 |
์ด๋๋ฆฌ์๊ณผ ๋นํธ์ฝ์ธ, ์ด๋๋ฆฌ์ ํ ํฐ ํ์ค (0) | 2023.09.24 |
๋ธ๋ก์ฒด์ธ ๊ฐ๋ , ์ข ๋ฅ (0) | 2023.09.24 |