• HOME
  • PRODUCT
  • DEVELOP
  • NEWS
  • CONSULTING
No Result
View All Result
illunex Blog
  • HOME
  • PRODUCT
  • DEVELOP
  • NEWS
  • CONSULTING
No Result
View All Result
일루넥스 블로그
No Result
View All Result

TRX(ERC20) 개발 Basic 3

2. Template 실행

박 진혁 by 박 진혁
2020년 9월 21일
in DEVELOP, 강의
TRX(ERC20) 개발 Basic 3

3. 기본 컨트랙트 생성

1. 기본 Token 생성

1.1. token 이름 : ERC20_JIN

1.2 ERC20_JIN.sol

: 초기 수량 1,000,000 개의 토큰을 생상한다.

pragma solidity ^0.5.4;

contract ERC20_JIN {
    string  public name;
    string  public symbol;
    uint8   public decimals = 8;
    uint256 public totalSupply;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping(address=>uint256)) public allowance;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed _owner, address indexed _spender, uint256 value);
    event Burn(address indexed from, uint256 value);



    uint256 initialSupply = 1000000;
    string tokenName = 'ERCJINToken';
    string tokenSymbol = 'JINTK';

    constructor() public {
        totalSupply = initialSupply*10**uint256(decimals);
        balanceOf[msg.sender] = totalSupply;

        name = tokenName;
        symbol = tokenSymbol;

    }

    function _transfer(address _from, address _to, uint _value) internal {
        require(_to != address(0));
        require(balanceOf[_from] >= _value);
        require(balanceOf[_to] + _value >= balanceOf[_to]);

        uint priviousBalances = balanceOf[_from] + balanceOf[_to];
        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;

        emit Transfer(_from, _to, _value);
        assert(balanceOf[_from] + balanceOf[_to] == priviousBalances);
    }



    function transfer(address _to, uint256 _value) public returns (bool success) {
        _transfer(msg.sender, _to, _value);
        return true;
    }


    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {

        require(_value <= allowance[_from][msg.sender]);

        //추가
        allowance[_from][msg.sender] -= _value;

        _transfer(_from, _to, _value);

        return true;

    }

    function approve(address _spender, uint256 _value) public returns(bool success) {

        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);

        return true;
    }


    function burn(uint _value) public returns (bool sucess) {
        require(balanceOf[msg.sender] >= _value);
        balanceOf[msg.sender] -= _value;
        totalSupply -= _value;

        emit Burn(msg.sender, _value);
        return true;
    }

    function burnFrom(address _from, uint256 _value) public returns (bool success) {
        require(balanceOf[_from] >= _value);
        require(_value <= allowance[_from][msg.sender]);

        balanceOf[_from] -= _value;
        allowance[_from][msg.sender] -= _value;

        totalSupply -= _value;

        emit Burn(_from, _value);
        return true;

    }
} 

1.3. migrations/2_initial_migration.js

: 어떤 Contract 를 올릴것인지를 선택… 이전 Contract는 올릴필요 없으니. 일단 주석~

//var Election = artifacts.require("./Election.sol");
var ERC20_JIN = artifacts.require("./ERC20_JIN.sol");

module.exports = function(deployer) {
  //deployer.deploy(Election);
  deployer.deploy(ERC20_JIN);

}; 

2. compile & build

→ tronbox compile –compile-all
→ tronbox migrate –reset –network shasta

마지막 생성된 Contract 주소는 어디에 필기해놓아야한다. 앱 연동시에 해당 contract 주소를 보고 찾아들어가기 때문이다.

>> TRX(ERC20) 개발 Basic4에서 계속

Tags: TRX(ERC20)개발실전강의
ShareTweet
Previous Post

TRX(ERC20) 개발 Basic 2

Next Post

CSS에 날개, Sass (SCSS)

Next Post
CSS에 날개, Sass (SCSS)

CSS에 날개, Sass (SCSS)

  • Copyright © 2020 illunex., Inc., All Rights Reserved.
  • 개인정보보호정책
No Result
View All Result
  • HOME
  • PRODUCT
  • DEVELOP
  • NEWS
  • CONSULTING