[Solidity] ERC-20 토큰으로 Uniswap Liquidity Pool 구성 & 스왑하기 (유니스왑 유동성 풀 & Stable Swap)
Stable / 스테이블 / DeFi / 디파이 / 스왑 / 유니스왑
ERC-20 토큰을 두가지 발행해보겠습니다
BCS (스왑용 토큰)
UBCS (스테이블 코인)
👉 각 100만개씩 발행
ERC-20 토큰을 만들기 위한 코드
👆 (코드가 길어서 링크 첨부)
1. 배포된 ERC-20 토큰 메타마스크로 가져오기
메타마스크 토큰 가져오기에서
토큰 계약 주소 칸에 배포된 컨트랙트 주소를 입력합니다
❗ 토큰 기호와 토큰 소수점은 배포된대로 자동으로 입력됩니다
2. BCS / UBCS 토큰
👆 100만개씩 발행된 토큰 확인
3. 유니스왑 페이지에서 세팅
- 유니스왑 페이지에서
Pool
탭으로 이동- 메타마스크 연결
- Goeril 테스트넷 선택
- +New Position 버튼 선택
4. Select a token
버튼으로 토큰 추가
- BCS (스왑용 토큰)
- UBCS (스테이블 코인)
👉각각의 배포된 컨트랙트 주소를 입력해서 토큰을 불러온다
5. 유동성 풀 (Liquidity Pool) 구성
-
누군가 스왑을 할때마다 청구되는 거래 수수료 0.3%
-
총 발행량 100만개 중 50만개의 BCS 입금
(UBCS는 비율에 맞게 자동설정) -
현재 토큰 가격 1 BCS = 1 UBCS
-
BCS 토큰가격은 최소 0.01 ~ 최대 30 까지 상승 & 하락할수 있다
-
각각의 Approve 버튼 클릭
Approve가 완료되면 설정한 값대로 Preview를 볼 수 있다
👉 Add 버튼을 누르면Liquidity Pool
이 생성된다
6. 유동성 풀 (Liquidity Pool) 생성완료
👆 생성완료 된 Pool
BCS/UBCS 일때 / UBCS/BCS 일때
👉 현재 토큰 가격 1 BCS = 1 UBCS
👆 50만개씩 사라진 메타마스크 토큰수량 확인
UniswapLiquidity Pool
에 입금된 후 나머지 수량
7. 스왑하려는 토큰 추가
유니스왑 페이지에서
Swap
탭으로 이동
- BCS (스왑용 토큰)
- UBCS (스테이블 코인)
👉 각각의 배포된 컨트랙트 주소를 입력해서 토큰을 불러온다
8. 첫번째 토큰 스왑 실행
BCS 토큰 1000개를 👉 UBCS 토큰으로 스왑
스왑 후 메타마스크 토큰수량 확인
BCS 토큰 50만개 👉 49만 9천개
UBCS 토큰 44만 9천개 👉 45만개
9. 두번째 토큰 스왑 실행
첫번째 스왑 대비 BCS 토큰의 가격이 조금 하락된걸 확인
10. 1만개씩 연속 토큰 스왑
10000 BCS
를 스왑을 할때마다 UBCS의 수량이 적어지는걸 확인
👉 BCS 토큰의 가격이 하락한다
11. 스왑된 후 토큰의 가격 확인
BCS 토큰은 하락 / UBCS 토큰은 상승 🔺
BCS 토큰 1 👉 0.93
UBCS 토큰 1 👉 1.07