본문으로 건너뛰기

풀 SDK

Pools는 market을 나타내는 공유 객체이다. 풀에 대한 자세한 내용은 풀 조회을 참조한다.

풀 함수

DeepBookV3 SDK는 풀의 상태를 읽기 위해 호출할 수 있는 함수를 노출한다. 이러한 함수는 일반적으로 managerKey, coinKey, poolKey, 또는 이들의 조합을 요구한다. 이러한 keys에 대한 자세한 내용은 DeepBookV3 SDK를 참조한다. SDK에는 constants.ts file에서 볼 수 있는 몇 가지 기본 keys가 포함되어 있다.

SDK Unit Handling

입력 amount, 수량, price는 표준 소수 형식(예: 10.5 SUI, 0.00001 nBTC)으로 제공해야 한다. SDK는 내부적으로 base units로의 변환을 처리한다. 반환되는 amounts도 표준 소수 형식이다.

계정

account를 사용하여 풀에서 BalanceManager에 대한 계정 정보를 조회하며, 이는 다음 형식을 가진다:

{
epoch: '511',
open_orders: {
constants: [
'170141211130585342296014727715884105730',
'18446744092156295689709543266',
'18446744092156295689709543265'
]
},
taker_volume: 0,
maker_volume: 0,
active_stake: 0,
inactive_stake: 0,
created_proposal: false,
voted_proposal: null,
unclaimed_rebates: { base: 0, quote: 0, deep: 0 },
settled_balances: { base: 0, quote: 0, deep: 0 },
owed_balances: { base: 0, quote: 0, deep: 0 }
}

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.
  • balanceManagerKey: SDK에서 정의된 BalanceManager의 key이다.

accountOpenOrders

accountOpenOrders를 사용하여 제공한 IDs를 가진 BalanceManager와 풀에 대한 open 주문을 조회한다. 이 호출은 open 주문 IDs의 array를 포함하는 Promise를 반환한다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.
  • managerKey: 조회할 BalanceManager를 식별하는 String이다.

checkManagerBalance

checkManagerBalance를 사용하여 특정 코인에 대한 BalanceManager를 확인한다. 이 호출은 다음 형식의 Promise를 반환한다:

{
coinType: string,
balance: number
}

매개변수

  • managerKey: 조회할 BalanceManager를 식별하는 String이다.
  • coinKey: 잔액을 조회할 코인을 식별하는 String이다.

getOrder

getOrder를 사용하여 주문의 정보를 조회한다. 이 호출은 다음 형식을 가진 Promise struct의 Order를 반환한다:

{
balance_manager_id: {
bytes: '0x6149bfe6808f0d6a9db1c766552b7ae1df477f5885493436214ed4228e842393'
},
order_id: '9223372036873222552073709551614',
client_order_id: '888',
quantity: '50000000',
filled_quantity: '0',
fee_is_deep: true,
order_deep_price: { asset_is_base: false, deep_per_asset: '0' },
epoch: '440',
status: 0,
expire_timestamp: '1844674407370955161'
}

매개변수

poolKey: 조회할 풀을 식별하는 String이다. orderId: 조회할 주문의 ID이다.

getQuoteQuantityOut

getQuoteQuantityOut을 사용하여 제공한 base 수량에 대한 quote 수량 out을 조회한다. 이 호출은 다음 형식의 Promise를 반환한다:

{
baseQuantity: number,
baseOut: number,
quoteOut: number,
deepRequired: number
}

여기서 deepRequired는 dry run에 필요한 DEEP의 양이다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.
  • baseQuantity: 변환하려는 base 수량을 정의하는 Number이다.

getBaseQuantityOut

getBaseQuantityOut을 사용하여 제공한 quote 수량에 대한 base 수량 out을 조회한다. 이 호출은 다음 형식의 Promise를 반환한다:

{
quoteQuantity: number,
baseOut: number,
quoteOut: number,
deepRequired: number
}

여기서 deepRequired는 dry run에 필요한 DEEP의 양이다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.
  • quoteQuantity: 변환하려는 quote 수량을 정의하는 Number이다.

getQuantityOut

getQuantityOut을 사용하여 제공한 base 또는 quote 수량에 대한 output 수량을 조회한다. 두 수량 모두에 값을 제공하지만 그중 하나만 0이 아니어야 한다. 이 호출은 다음 형식의 Promise를 반환한다:

{
baseQuantity: number,
quoteQuantity: number,
baseOut: number,
quoteOut: number,
deepRequired: number
}

여기서 deepRequired는 dry run에 필요한 DEEP의 양이다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.
  • baseQuantity: 변환하려는 base 수량을 정의하는 Number이다. quote 수량을 사용하는 경우 0으로 설정한다.
  • quoteQuantity: 변환하려는 quote 수량을 정의하는 Number이다. base 수량을 사용하는 경우 0으로 설정한다.

getLevel2Range

getLevel2Range를 사용하여 제공한 경계 price range 내의 level 2 오더북을 조회한다. 이 호출은 다음 형식의 Promise를 반환한다:

{
prices: Array<number>,
quantities: Array<number>
}

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.
  • priceLow: price range의 lower bound를 나타내는 Number이다.
  • priceHigh: price range의 upper bound를 나타내는 Number이다.
  • isBid: true로 설정되면 bid 주문을 가져오고, 그렇지 않으면 ask 주문을 조회하는 Boolean이다.

getLevel2TicksFromMid

getLevel2TicksFromMid를 사용하여 제공한 ID를 가진 풀에 대해 mid-price부터의 level 2 오더북 ticks를 조회한다. 이 호출은 다음 형식의 Promise를 반환한다:

{
bid_prices: Array<number>,
bid_quantities: Array<number>,
ask_prices: Array<number>,
ask_quantities: Array<number>
}

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.
  • ticks: mid-price로부터의 ticks 수를 나타내는 Number이다.

lockedBalance

lockedBalance를 사용하여 풀에서 BalanceManager의 locked 잔액을 조회한다. 이 호출은 다음 형식의 Promise struct의 Order를 반환한다:

{
base: 5.5,
quote: 2,
deep: 0.15,
}

매개변수

poolKey: 조회할 풀을 식별하는 String이다. balanceManagerKey: SDK에서 정의된 BalanceManager의 key이다.

poolTradeParams

poolTradeParams를 사용하여 풀의 trade params를 조회하며, 이는 다음 형식을 가진다:

{
takerFee: 0.001,
makerFee: 0.0005,
stakeRequired: 100,
}

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.

vaultBalances

vaultBalances를 사용하여 제공한 ID를 가진 풀의 vault 잔액을 가져온다. 이 호출은 다음 형식의 Promise를 반환한다:

{
base: number,
quote: number,
deep: number
}

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.

getPoolIdByAssets

getPoolIdByAssets를 사용하여 제공한 자산 types에 대한 풀 ID를 조회한다. 이 호출은 풀을 찾으면 해당 주소를 담은 Promise를 반환한다.

매개변수

  • baseType: 베이스 자산의 타입을 나타내는 String이다.
  • quoteType: 견적 자산의 타입을 나타내는 String이다.

midPrice

midPrice를 사용하여 제공한 ID를 가진 풀의 mid price를 조회한다. 이 호출은 mid price를 담은 Promise를 반환한다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.

whitelisted

whitelisted를 사용하여 제공한 ID를 가진 풀이 whitelisted인지 확인한다. 이 호출은 풀이 whitelisted인지 여부를 나타내는 boolean인 Promise를 반환한다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.

poolBookParams

poolBookParams를 사용하여 tick size, lot size, min size를 포함한 풀의 book 파라미터를 조회한다. 이 호출은 book 파라미터를 담은 Promise를 반환한다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.

getOrders

getOrders를 사용하여 풀에서 여러 주문을 조회한다. 이 호출은 주문 information의 array를 담은 Promise를 반환한다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.
  • orderIds: 조회할 주문 IDs를 나타내는 strings의 Array이다.

getPoolDeepPrice

getPoolDeepPrice를 사용하여 풀에 대한 DEEP price conversion을 가져온다. 이 호출은 DEEP price information을 담은 Promise를 반환한다.

매개변수

  • poolKey: 조회할 풀을 식별하는 String이다.

admin 함수

SDK는 풀 관리를 위한 관리 함수를 제공한다.

addDeepPricePoint

addDeepPricePoint를 사용하여 reference 풀을 사용해 target 풀에 DEEP price point를 추가한다. 이 호출은 Transaction 객체를 받는 함수를 반환한다.

매개변수

  • targetPoolKey: target 풀을 식별하는 String이다.
  • referencePoolKey: reference 풀을 식별하는 String이다.

updatePoolAllowedVersions

updatePoolAllowedVersions를 사용하여 풀에 대해 허용된 패키지 versions를 업데이트한다. 이 호출은 Transaction 객체를 받는 함수를 반환한다.

매개변수

  • poolKey: 풀을 식별하는 String이다.

createPermissionlessPool

createPermissionlessPool을 사용하여 새로운 permissionless 풀을 생성한다. 이 호출은 Transaction 객체를 받는 함수를 반환한다.

매개변수

  • params: 다음을 포함하는 CreatePermissionlessPoolParams 객체이다:
  • baseCoinKey: base 코인을 식별하는 String이다.
  • quoteCoinKey: quote 코인을 식별하는 String이다.
  • tickSize: tick size를 나타내는 Number이다.
  • lotSize: lot size를 나타내는 Number이다.
  • minSize: minimum 주문 size를 나타내는 Number이다.
  • deepCoin: DEEP 토큰 payment를 위한 optional TransactionArgument이다.

getBalanceManagerIds

getBalanceManagerIds를 사용하여 특정 소유자에 대한 모든 BalanceManager IDs를 가져온다. 이 호출은 BalanceManager IDs의 array를 담은 Promise를 반환한다.

매개변수

  • owner: 소유자 주소를 나타내는 String이다.

referral 함수

SDK는 referrals를 관리하고 거래 활동로부터 리퍼럴 수수료를 획득하기 위한 함수를 제공한다.

mintReferral

mintReferral을 사용하여 지정된 multiplier로 풀에 대한 새로운 referral을 생성한다. multiplier는 거래 수수료의 몇 퍼센트를 referrer에게 할당할지 결정한다. 이 호출은 Transaction 객체를 받는 함수를 반환한다.

매개변수

  • poolKey: 풀을 식별하는 String이다.
  • multiplier: referral multiplier를 나타내는 Number이다(예: 10%에 대해 0.1).

updateReferralMultiplier

updateReferralMultiplier를 사용하여 기존 referral의 multiplier를 업데이트한다. referral 소유자만 multiplier를 업데이트할 수 있다. 이 호출은 Transaction 객체를 받는 함수를 반환한다.

매개변수

  • poolKey: 풀을 식별하는 String이다.
  • referral: referral ID를 나타내는 String이다.
  • multiplier: 새로운 referral multiplier를 나타내는 Number이다.

claimReferralRewards

claimReferralRewards를 사용하여 누적된 리퍼럴 수수료를 claim한다. 이 호출은 baseRewards, quoteRewards, deepRewards를 포함하는 객체를 반환한다. 이 호출은 Transaction 객체를 받는 함수를 반환한다.

매개변수

  • poolKey: 풀을 식별하는 String이다.
  • referral: referral ID를 나타내는 String이다.

getReferralBalances

getReferralBalances를 사용하여 claim하지 않고 referral의 현재 누적 잔액을 조회한다. 이 호출은 base, quote, DEEP 토큰의 잔액을 담은 Promise를 반환한다.

매개변수

  • poolKey: 풀을 식별하는 String이다.
  • referral: referral ID를 나타내는 String이다.