본문으로 건너뛰기

스왑

DeepBook는 automatic market makers (AMMs)에서 흔히 볼 수 있는 swap-like 인터페이스를 제공한다. order 함수와 달리 swap_exact_amountBalanceManager 없이 호출할 수 있다. 대신 Coin objects로 직접 호출한다. base에서 quote로 swap할 때는 base_in이 양수 값이어야 하며 quote_in은 0이어야 한다. quote에서 base로 swap할 때는 quote_in이 양수여야 하고 base_in은 0이어야 한다. trading fees를 지불하기 위해 일정량의 deep_in amount가 필요하다. 이 amount는 더 많이 잡을 수 있으며, 사용되지 않은 DEEP 토큰은 호출이 끝날 때 반환된다.

swap을 시뮬레이션하기 위해 get_amount_out 엔드포인트를 사용할 수 있다. 이 함수는 swap에 필요한 DEEP 토큰의 정확한 amount를 반환한다.

API

다음은 swaps를 위해 Pool이 노출하는 엔드포인트이다.

Click to open
Swap exact base for quote

balance_manager 없이 정확한 base 수량을 swap한다. DEEP 수량은 더 많이 잡을 수 있다. 세 개의 Coin objects를 반환한다:

  • BaseAsset
  • QuoteAsset
  • DEEP

입력 수량이 lot size로 나누어떨어지지 않으면 일부 base 수량이 남을 수 있다.

필요한 DEEP amount는 더 많이 잡을 수 있다. 남은 balance는 반환된다.

Click to open
Swap exact quote for base

balance_manager 없이 정확한 quote 수량을 swap한다. DEEP 수량은 더 많이 잡을 수 있다. 세 개의 Coin objects를 반환한다:

  • BaseAsset
  • QuoteAsset
  • DEEP

입력 수량이 lot size로 나누어떨어지지 않으면 일부 quote 수량이 남을 수 있다.

Click to open
Swap exact quantity

이 함수는 세 번째 coin에 coin::zero()를 설정한 상태에서 앞의 두 함수가 호출하는 함수이다. base → quote 또는 quote → base에 대해 base나 quote 중 하나가 0 값이면 사용자는 이 함수를 직접 호출할 수 있다.

Click to open
Swap exact base for quote with manager

BalanceManager를 사용하여 정확한 base를 quote로 swap한다. fees가 DEEP으로 지불된다고 가정한다. balance manager에 fees를 위한 충분한 DEEP이 있다고 가정한다. base와 quote인 두 개의 Coin objects를 반환한다.

Click to open
Swap exact quote for base with manager

BalanceManager를 사용하여 정확한 quote를 base로 swap한다. fees가 DEEP으로 지불된다고 가정한다. balance manager에 fees를 위한 충분한 DEEP이 있다고 가정한다. base와 quote인 두 개의 Coin objects를 반환한다.

Click to open
Swap exact quantity with manager

BalanceManager를 사용하여 정확한 수량을 swap한다. 이는 두 manager-based swap 함수가 호출하는 underlying 함수이다. fees가 DEEP으로 지불되고 balance manager에 fees를 위한 충분한 DEEP이 있다고 가정한다. base와 quote인 두 개의 Coin objects를 반환한다.