@@ -33,6 +33,12 @@ import RIO.NonEmpty qualified as NonEmpty
3333import RIO.Text qualified as T
3434import 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.
3743maxFillOrders ∷ GYNatural
3844maxFillOrders = 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\"]]}"
323331newtype 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