필요한 것
트랜잭션을 순차적으로 처리를 해야한다. 어떻게 구현할까.
사전정보
- 스왑할 토큰의 종류는 a와 b가 있다.
- c는 유동성 토큰이다. c를 소각하면 a,b토큰을 얻는다.
스왑시스템이 처리해야할 트랜잭션은 3가지다.
토큰 스왑, 공급성 토큰 소각, 공급성 토큰 생성
첫번째 : 토큰 스왑
a토큰을 보내고 b토큰을 받는 것이다.
두번째 : 공급성 토큰 소각
c를 소각하면 a와b를 받는다.
세번째 : 공급성 토큰 생성
a와b를 넣으면 c를 받는다.
예시
세가지 트랜잭션은 순차적으로 처리해야한다.
이런식으로 처리해야하는데.
스왑 -> 스왑처리 -> 소각 -> 소각처리 -> 스왑 -> 스왑처리 -> 스왑 -> 스왑처리
만약에 스왑 -> 스왑 -> 스왑 -> 스왑처리 -> 스왑처리 -> 스왑처리
이렇게되면 스왑계산에 문제가 생긴다.
순차적으로 처리해야되는 이유에는 잔고 체크에 있다.
- 스왑 -> 스왑 -> 스왑 -> 스왑처리 -> 스왑처리 -> 스왑처리
- 스왑 -> 스왑처리 -> 스왑 -> 스왑처리 -> 스왑 -> 스왑처리
2개의 전송 결과는 아주 다르다.
원하는 동작
This page is synchronized from the post: ‘스왑시스템 구현 관련 #1’