Skip to content

Commit f1c9905

Browse files
authored
Merge pull request #70 from geniusyield/fix-multi-order-fill-zero-percent-taker-fees
fix: update `/v0/orders/fill` endpoint to account for case when charg…
2 parents d3fdae4 + 3455992 commit f1c9905

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

geniusyield-server-lib/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Revision history for geniusyield-server-lib
22

3+
## 0.4.1 -- 2024-05-28
4+
5+
* Fix `/v0/orders/fill` endpoint to account for case when percent taker fees is zero.
6+
37
## 0.4.0 -- 2024-05-20
48

59
* Fix response of GET `/v0/orders/details/{nft-token}` endpoint to not return response under a `data` field nesting.

geniusyield-server-lib/geniusyield-server-lib.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 3.6
22
name: geniusyield-server-lib
3-
version: 0.4.0
3+
version: 0.4.1
44
synopsis: GeniusYield server library
55
description: Library for GeniusYield server.
66
license: Apache-2.0

geniusyield-server-lib/src/GeniusYield/Server/Dex/PartialOrder.hs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ import RIO.NonEmpty qualified as NonEmpty
3333
import RIO.Text qualified as T
3434
import Servant
3535

36+
{- $setup
37+
38+
>>> :set -XOverloadedStrings -XTypeApplications
39+
>>> import qualified Data.Aeson as Aeson
40+
-}
41+
3642
-- | Number of orders that we at most allow to be filled in a single transaction.
3743
maxFillOrders GYNatural
3844
maxFillOrders = 5
@@ -320,6 +326,8 @@ instance Swagger.ToSchema FillOrderParameters where
320326
& addSwaggerDescription "Fill order(s) request parameters."
321327
& addSwaggerExample (toJSON $ FillOrderParameters {fopAddresses = pure "addr_test1qrsuhwqdhz0zjgnf46unas27h93amfghddnff8lpc2n28rgmjv8f77ka0zshfgssqr5cnl64zdnde5f8q2xt923e7ctqu49mg5", fopChangeAddress = Just (ChangeAddress "addr_test1qrsuhwqdhz0zjgnf46unas27h93amfghddnff8lpc2n28rgmjv8f77ka0zshfgssqr5cnl64zdnde5f8q2xt923e7ctqu49mg5"), fopCollateral = Just "4293386fef391299c9886dc0ef3e8676cbdbc2c9f2773507f1f838e00043a189#1", fopOrderReferencesWithAmount = ("0018dbaa1611531b9f11a31765e8abe875f9c43750b82b5f321350f31e1ea747#0", 100) :| [("0018dbaa1611531b9f11a31765e8abe875f9c43750b82b5f321350f31e144444#0", 100)]})
322328

329+
-- >>> Aeson.encode . BotFillOrderParameters $ pure ("0018dbaa1611531b9f11a31765e8abe875f9c43750b82b5f321350f31e1ea747#0", 100)
330+
-- "{\"order_references_with_amount\":[[\"0018dbaa1611531b9f11a31765e8abe875f9c43750b82b5f321350f31e1ea747#0\",\"100\"]]}"
323331
newtype BotFillOrderParameters = BotFillOrderParameters
324332
{ bfopOrderReferencesWithAmount NonEmpty (GYTxOutRef, GYNatural)
325333
}
@@ -535,6 +543,7 @@ handleFillOrders ctx@Ctx {..} fops@FillOrderParameters {..} = do
535543
changeAddr = maybe (NonEmpty.head fopAddresses') (\(ChangeAddress addr) addressFromBech32 addr) fopChangeAddress
536544
takerFee' case valueToList takerFee of
537545
[(_, feeAmt)] pure $ fromIntegral feeAmt
546+
[] pure 0
538547
_ throwIO PodMultiFillNotAllSamePaymentToken
539548
txBody runSkeletonI ctx (NonEmpty.toList fopAddresses') changeAddr fopCollateral $ do
540549
fillMultiplePartialOrders' porefs ordersWithTokenBuyAmount (Just refPocds) takerFee

0 commit comments

Comments
 (0)