본문으로 건너뛰기

풀 SDK

Pools는 market을 나타내는 shared object이다. pools에 대한 자세한 내용은 풀 조회을 참조한다.

Pool functions

DeepBookV3 SDK는 pool의 상태를 읽기 위해 호출할 수 있는 함수를 노출한다. 이러한 함수는 일반적으로 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

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

{
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 }
}

Parameters

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

accountOpenOrders

accountOpenOrders를 사용하여 제공한 IDs를 가진 balance manager와 pool에 대한 open orders를 조회한다. 이 호출은 open order IDs의 array를 포함하는 Promise를 반환한다.

Parameters

  • poolKey: 조회할 pool을 식별하는 String이다.
  • managerKey: 조회할 balance manager를 식별하는 String이다.

checkManagerBalance

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

{
coinType: string,
balance: number
}

Parameters

  • managerKey: 조회할 balance manager를 식별하는 String이다.
  • coinKey: balance를 조회할 coin을 식별하는 String이다.

getOrder

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

{
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'
}

Parameters

poolKey: 조회할 pool을 식별하는 String이다. orderId: 조회할 order의 ID이다.

getQuoteQuantityOut

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

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

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

Parameters

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

getBaseQuantityOut

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

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

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

Parameters

  • poolKey: 조회할 pool을 식별하는 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의 양이다.

Parameters

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

getLevel2Range

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

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

Parameters

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

getLevel2TicksFromMid

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

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

Parameters

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

lockedBalance

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

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

Parameters

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

poolTradeParams

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

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

Parameters

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

vaultBalances

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

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

Parameters

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

getPoolIdByAssets

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

Parameters

  • baseType: base 자산의 type을 나타내는 String이다.
  • quoteType: quote 자산의 type을 나타내는 String이다.

midPrice

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

Parameters

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

whitelisted

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

Parameters

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

poolBookParams

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

Parameters

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

getOrders

getOrders를 사용하여 pool에서 여러 orders를 조회한다. 이 호출은 order information의 array를 담은 Promise를 반환한다.

Parameters

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

getPoolDeepPrice

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

Parameters

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

Administrative functions

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

addDeepPricePoint

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

Parameters

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

updatePoolAllowedVersions

updatePoolAllowedVersions를 사용하여 pool에 대해 허용된 package versions를 업데이트한다. 이 호출은 Transaction object를 받는 함수를 반환한다.

Parameters

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

createPermissionlessPool

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

Parameters

  • params: 다음을 포함하는 CreatePermissionlessPoolParams object이다:
  • baseCoinKey: base coin을 식별하는 String이다.
  • quoteCoinKey: quote coin을 식별하는 String이다.
  • tickSize: tick size를 나타내는 Number이다.
  • lotSize: lot size를 나타내는 Number이다.
  • minSize: minimum order size를 나타내는 Number이다.
  • deepCoin: DEEP token payment를 위한 optional TransactionArgument이다.

getBalanceManagerIds

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

Parameters

  • owner: owner address를 나타내는 String이다.

Referral functions

SDK는 referrals를 관리하고 trading activity로부터 referral fees를 획득하기 위한 함수를 제공한다.

mintReferral

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

Parameters

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

updateReferralMultiplier

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

Parameters

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

claimReferralRewards

claimReferralRewards를 사용하여 누적된 referral fees를 claim한다. 이 호출은 baseRewards, quoteRewards, deepRewards를 포함하는 object를 반환한다. 이 호출은 Transaction object를 받는 함수를 반환한다.

Parameters

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

getReferralBalances

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

Parameters

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