@@ -33,6 +33,12 @@ import RIO.NonEmpty qualified as NonEmpty
33
33
import RIO.Text qualified as T
34
34
import Servant
35
35
36
+ {- $setup
37
+
38
+ >>> :set -XOverloadedStrings -XTypeApplications
39
+ >>> import qualified Data.Aeson as Aeson
40
+ -}
41
+
36
42
-- | Number of orders that we at most allow to be filled in a single transaction.
37
43
maxFillOrders ∷ GYNatural
38
44
maxFillOrders = 5
@@ -320,6 +326,8 @@ instance Swagger.ToSchema FillOrderParameters where
320
326
& addSwaggerDescription " Fill order(s) request parameters."
321
327
& addSwaggerExample (toJSON $ FillOrderParameters {fopAddresses = pure " addr_test1qrsuhwqdhz0zjgnf46unas27h93amfghddnff8lpc2n28rgmjv8f77ka0zshfgssqr5cnl64zdnde5f8q2xt923e7ctqu49mg5" , fopChangeAddress = Just (ChangeAddress " addr_test1qrsuhwqdhz0zjgnf46unas27h93amfghddnff8lpc2n28rgmjv8f77ka0zshfgssqr5cnl64zdnde5f8q2xt923e7ctqu49mg5" ), fopCollateral = Just " 4293386fef391299c9886dc0ef3e8676cbdbc2c9f2773507f1f838e00043a189#1" , fopOrderReferencesWithAmount = (" 0018dbaa1611531b9f11a31765e8abe875f9c43750b82b5f321350f31e1ea747#0" , 100 ) :| [(" 0018dbaa1611531b9f11a31765e8abe875f9c43750b82b5f321350f31e144444#0" , 100 )]})
322
328
329
+ -- >>> Aeson.encode . BotFillOrderParameters $ pure ("0018dbaa1611531b9f11a31765e8abe875f9c43750b82b5f321350f31e1ea747#0", 100)
330
+ -- "{\"order_references_with_amount\":[[\"0018dbaa1611531b9f11a31765e8abe875f9c43750b82b5f321350f31e1ea747#0\",\"100\"]]}"
323
331
newtype BotFillOrderParameters = BotFillOrderParameters
324
332
{ bfopOrderReferencesWithAmount ∷ NonEmpty (GYTxOutRef , GYNatural )
325
333
}
@@ -535,6 +543,7 @@ handleFillOrders ctx@Ctx {..} fops@FillOrderParameters {..} = do
535
543
changeAddr = maybe (NonEmpty. head fopAddresses') (\ (ChangeAddress addr) → addressFromBech32 addr) fopChangeAddress
536
544
takerFee' ← case valueToList takerFee of
537
545
[(_, feeAmt)] → pure $ fromIntegral feeAmt
546
+ [] → pure 0
538
547
_ → throwIO PodMultiFillNotAllSamePaymentToken
539
548
txBody ← runSkeletonI ctx (NonEmpty. toList fopAddresses') changeAddr fopCollateral $ do
540
549
fillMultiplePartialOrders' porefs ordersWithTokenBuyAmount (Just refPocds) takerFee
0 commit comments