본문으로 건너뛰기

Orders

사용자는 지정가 주문 또는 시장가 주문을 생성하고, 주문을 수정하고, 주문을 취소할 수 있다. BalanceManager는 주문을 처리하기 위해 필요한 자금을 보유해야 한다. DeepBookV3는 4가지 주문 옵션과 3가지 자체 매칭 옵션을 제공한다. pay_with_deep 플래그를 true로 설정하면 거래 수수료가 DEEP 토큰으로 지불된다. pay_with_deep 플래그를 false로 설정하면 거래 수수료가 입력 토큰으로 지불된다.

사용자는 기존 주문을 수정하여 크기를 줄이거나 만료 시간을 낮추거나 둘 다 할 수 있다. 사용자는 주문 크기를 늘리거나 만료 시간을 늘리기 위해 주문을 수정할 수 없다. 그렇게 하려면 원래 주문을 취소하고 새 주문을 해야 한다.

사용자는 단일 주문을 취소하거나 모든 주문을 취소할 수 있다.

API

다음은 Pool이 제공하는 주문 관련 엔드포인트이다.

Order options

다음 상수는 주문에 사용 가능한 옵션을 정의한다.

Self-matching options

다음 상수는 자체 매칭 주문에 사용 가능한 옵션을 정의한다.

OrderInfo struct

지정가 주문 또는 시장가 주문을 하면 OrderInfo object가 생성되고 반환된다. DeepBookV3는 주문이 완료되거나 주문서에 배치된 후 이 object를 자동으로 삭제한다. OrderInfo는 모든 주문 정보를 나타내므로 요청의 실행 세부 정보를 검사하는 데 사용한다. DeepBookV3는 어떤 종류의 오류도 포착하지 않으므로 어떤 종류의 실패가 있으면 전체 transaction이 실패한다.

OrderDeepPrice struct

OrderDeepPrice struct는 주문이 배치된 시점의 DEEP 변환율을 나타낸다.

Fill struct

Fill struct는 두 주문 간의 매칭 결과를 나타낸다. 이 struct를 사용하여 상태를 업데이트한다.

Events

DeepBookV3는 메이커 주문이 체결될 때 OrderFilled를 발생시킨다.

DeepBookV3는 메이커 주문이 취소될 때 OrderCanceled를 발생시킨다.

DeepBookV3는 메이커 주문이 수정될 때 OrderModified를 발생시킨다.

DeepBookV3는 메이커 주문을 주문서에 주입할 때 OrderPlaced를 발생시킨다.

Place limit order

지정가 주문을 한다. 수량은 베이스 자산 기준이다. 현재 버전에서는 pay_with_deep가 true여야 하므로 수수료가 DEEP 토큰으로 지불된다.

주문을 하기 전에 BalanceManager 호출로 TradeProof를 생성하는 것을 결합해야 한다.

Place market order

시장가 주문을 한다. 수량은 베이스 자산 기준이다. 매수 주문의 경우 MAX_PRICE, 매도 주문의 경우 MIN_PRICEplace_limit_order를 호출한다. DeepBookV3는 체결되지 않은 수량에 대해 주문을 취소한다.

Modify order

order_idnew_quantity가 주어진 주문을 수정한다. 새 수량은 원래 수량보다 작고 체결된 수량보다 많아야 한다. 주문은 아직 만료되지 않았어야 한다.

modify_order 함수는 아무것도 반환하지 않는다. transaction이 성공하면 수정이 성공한 것으로 간주한다.

Cancel order

주문을 취소한다. 주문은 balance_manager가 소유해야 한다. 주문은 주문서와 balance_manager의 미체결 주문에서 제거된다. balance_manager 잔액은 주문의 남은 수량으로 업데이트된다.

수정과 유사하게 cancel_order는 아무것도 반환하지 않는다. DeepBookV3는 OrderCanceled 이벤트를 발생시킨다.

Withdraw settled amounts

balance_manager로 정산된 금액을 인출한다. 모든 주문은 자동으로 정산된 금액을 인출한다. 이것은 풀에서 모든 정산된 자금을 명시적으로 인출하기 위해 호출할 수 있다.

DeepBookV3 repository

The DeepBookV3 repository on GitHub.