Source Code

;; arkadiko-swap-quotes-v-1-1

(define-constant ERR_PAIR_EXTERNAL (err "err-pair-external"))
(define-constant ERR_BALANCE_X (err "err-balance-x"))
(define-constant ERR_BALANCE_Y (err "err-balance-y"))

(define-read-only (get-dy
    (token-x principal) (token-y principal)
    (dx uint)
  )
  (let (
    (arkadiko-pool (unwrap! (contract-call?
                            'SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.arkadiko-swap-v2-1 get-pair-details
                            token-x token-y) ERR_PAIR_EXTERNAL))
    (balance-x (unwrap! (get balance-x arkadiko-pool) ERR_BALANCE_X))
    (balance-y (unwrap! (get balance-y arkadiko-pool) ERR_BALANCE_Y))
    (dx-with-fees (/ (* u997 dx) u1000))
    (dy (/ (* balance-y dx-with-fees) (+ balance-x dx-with-fees)))
  )
    (ok dy)
  )
)

(define-read-only (get-dx
    (token-x principal) (token-y principal)
    (dy uint)
  )
  (let (
    (arkadiko-pool (unwrap! (contract-call?
                            'SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.arkadiko-swap-v2-1 get-pair-details
                            token-x token-y) ERR_PAIR_EXTERNAL))
    (balance-x (unwrap! (get balance-x arkadiko-pool) ERR_BALANCE_X))
    (balance-y (unwrap! (get balance-y arkadiko-pool) ERR_BALANCE_Y))
    (dy-with-fees (/ (* u997 dy) u1000))
    (dx (/ (* balance-x dy-with-fees) (+ balance-y dy-with-fees)))
  )
    (ok dx)
  )
)