Smart Contract for Token Swap #1 토큰 만들기(ERC20)

Jina Kim·2022년 9월 14일
3

Smart Contract

목록 보기
1/9
post-thumbnail

🚨 Caution 🚨

I am not specialist of blockchain..
저는 코인도 안하는 블새싹입니다.ㅎ🌱
틀린게 있을 수 있는 점 양해 부탁드립니다.


과제

  1. BSC 테스트넷에서 Pancake Router Contract를 이용하여 직접 Swap 해보기
    (어떤걸 스왑할지는 자유)

  2. BSC 테스트넷에 직접 만든 Contract 를 배포하여 Contract를 통하여 Swap 하기
    컨트랙트를 어떻게 만드는지는 자유이지만 Contract의 함수 내에서 Pancake Router를 통해 Swap할 수 있어야 함
    (사용자 입장에서는 Pancake Router에 접근을 안해도 되도록)

  3. Web3를 이용하여 직접 만든 Contract의 함수를 호출하기


먼저 1번부터 시작합니다.🚗

ERC20으로 Custom token부터 만들어볼건데요?
제 이름으로 Jina Token 과 Kim Token을 만들겠습니다.

코드 작성

Remix로 들어가서 Workspace를 먼저 create합니다.

+ 버튼을 누르고 ERC20 템플릿을 선택합니다 그러면 ERC20 토큰 만들 준비 완!

ERC20.sol에서 constructor의 ()안의 인자들을 지우고,
토큰 metadata를 하드코딩으로 박아줍니다.

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    uint8 private _decimals; // 추가

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor() {
    	/* 수정 */
        _name = "Jina Token";
        _symbol = "JNT";
        _decimals = 18;
        _totalSupply = 1000000000 * (10 ** uint256(_decimals));
        _balances[msg.sender] = _totalSupply;
        /* 수정 끝 */
    }
    ....
위와 똑같은 코드임ㅎ

코드 작성까지 완!


Metamask 네트워크 추가

AND, 잠깐!!!👀

그 전에 Contract 생성에 대한 gas fee를 지불하려면 본인 지갑이 연결 되어야 합니다.

전 Metamask🦊를 연결했고, BSC 테스트넷을 사용하기 위해 네트워크를 수동으로 추가했습니다.

Metamask > 네트워크 추가 버튼 클릭
네트워크 이름: BSC testnet
새 RPC URL: https://data-seed-prebsc-1-s1.binance.org:8545/
체인 ID: 97
통화 기호: TBNB
블록 탐색기 URL(옵션): https://testnet.bscscan.com

테스트용 BNB는 https://testnet.binance.org/faucet-smart 에서 겟겟!

다시 Remix로 돌아와서... approve 팝업이 뜨면 허용하시면 됩니다.
(전 이미 해서 캡쳐가 불가넝..ㅎ)

이제 Compile과 Deploy를 눌러서 Contract 배포하러 갑시다!

Compile하기

Compile 탭 누르고, 파란색의 Compile ERC20.sol을 클릭

Deploy하기

Deploy 탭 누르고, environment를 Injected Web3로 변경

Deploy 버튼을 클릭하면 메타마스크 팝업창이 뜨면서

Contract 배포에 대한 가스비를 TBNB로 내라고 협박(?)할 것입니다.

확인 버튼 누르면 계약 배포 완!

Contract 확인

왼쪽 하단 Deployed Contracts를 펼쳐 보세요!

우와 나만의 토큰 contract라니

name, symbol 펑션을 누르니 JNT의 Jina Token이 잘 생성되었습니다.

지갑에 Token 추가

그럼 이제 토큰을 지갑에 추가해야겠죠?

Copy Contract Address Metamask > '토큰 가져오기' 클릭
Copy한 contract 복붙
'맞춤형 토큰 추가'

그러면 본인의 Custom한 토큰이 추가된게 보일겁니다.

재빠르게 Kim Token까지 만들어봅시다.

JNT와 KT 토큰 생성 완!

이제 토큰 생성했으니 Swap 하러 가보자고!😏

는 2탄에서....

profile
Hello, World!

0개의 댓글