@mysten/deepbook-v3 1.5.8 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/dist/client.d.mts +5 -0
  3. package/dist/client.d.mts.map +1 -1
  4. package/dist/client.mjs +7 -0
  5. package/dist/client.mjs.map +1 -1
  6. package/dist/contracts/deepbook/account.d.mts +18 -18
  7. package/dist/contracts/deepbook/account.d.mts.map +1 -1
  8. package/dist/contracts/deepbook/balance_manager.mjs +413 -0
  9. package/dist/contracts/deepbook/balance_manager.mjs.map +1 -0
  10. package/dist/contracts/deepbook/big_vector.mjs +43 -0
  11. package/dist/contracts/deepbook/big_vector.mjs.map +1 -0
  12. package/dist/contracts/deepbook/book.mjs +29 -0
  13. package/dist/contracts/deepbook/book.mjs.map +1 -0
  14. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  15. package/dist/contracts/deepbook/deep_price.d.mts.map +1 -1
  16. package/dist/contracts/deepbook/deep_price.mjs +1 -1
  17. package/dist/contracts/deepbook/deps/std/type_name.mjs +17 -0
  18. package/dist/contracts/deepbook/deps/std/type_name.mjs.map +1 -0
  19. package/dist/contracts/deepbook/deps/sui/bag.mjs +43 -0
  20. package/dist/contracts/deepbook/deps/sui/bag.mjs.map +1 -0
  21. package/dist/contracts/deepbook/deps/sui/balance.mjs +21 -0
  22. package/dist/contracts/deepbook/deps/sui/balance.mjs.map +1 -0
  23. package/dist/contracts/deepbook/deps/sui/table.mjs +38 -0
  24. package/dist/contracts/deepbook/deps/sui/table.mjs.map +1 -0
  25. package/dist/contracts/deepbook/deps/sui/vec_map.mjs +37 -0
  26. package/dist/contracts/deepbook/deps/sui/vec_map.mjs.map +1 -0
  27. package/dist/contracts/deepbook/deps/sui/versioned.mjs +19 -0
  28. package/dist/contracts/deepbook/deps/sui/versioned.mjs.map +1 -0
  29. package/dist/contracts/deepbook/governance.mjs +49 -0
  30. package/dist/contracts/deepbook/governance.mjs.map +1 -0
  31. package/dist/contracts/deepbook/history.mjs +56 -0
  32. package/dist/contracts/deepbook/history.mjs.map +1 -0
  33. package/dist/contracts/deepbook/order.d.mts +12 -12
  34. package/dist/contracts/deepbook/pool.mjs +1739 -0
  35. package/dist/contracts/deepbook/pool.mjs.map +1 -0
  36. package/dist/contracts/deepbook/registry.mjs +295 -0
  37. package/dist/contracts/deepbook/registry.mjs.map +1 -0
  38. package/dist/contracts/deepbook/state.mjs +89 -0
  39. package/dist/contracts/deepbook/state.mjs.map +1 -0
  40. package/dist/contracts/deepbook/trade_params.mjs +21 -0
  41. package/dist/contracts/deepbook/trade_params.mjs.map +1 -0
  42. package/dist/contracts/deepbook/vault.mjs +42 -0
  43. package/dist/contracts/deepbook/vault.mjs.map +1 -0
  44. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs +53 -0
  45. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs.map +1 -0
  46. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs +17 -0
  47. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs.map +1 -0
  48. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs +43 -0
  49. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs.map +1 -0
  50. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs +21 -0
  51. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs.map +1 -0
  52. package/dist/contracts/deepbook_margin/deps/sui/table.mjs +38 -0
  53. package/dist/contracts/deepbook_margin/deps/sui/table.mjs.map +1 -0
  54. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs +37 -0
  55. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs.map +1 -0
  56. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs +26 -0
  57. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs.map +1 -0
  58. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs +19 -0
  59. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs.map +1 -0
  60. package/dist/contracts/deepbook_margin/margin_manager.mjs +989 -0
  61. package/dist/contracts/deepbook_margin/margin_manager.mjs.map +1 -0
  62. package/dist/contracts/deepbook_margin/margin_pool.mjs +550 -0
  63. package/dist/contracts/deepbook_margin/margin_pool.mjs.map +1 -0
  64. package/dist/contracts/deepbook_margin/margin_registry.mjs +786 -0
  65. package/dist/contracts/deepbook_margin/margin_registry.mjs.map +1 -0
  66. package/dist/contracts/deepbook_margin/margin_state.mjs +30 -0
  67. package/dist/contracts/deepbook_margin/margin_state.mjs.map +1 -0
  68. package/dist/contracts/deepbook_margin/oracle.mjs +82 -0
  69. package/dist/contracts/deepbook_margin/oracle.mjs.map +1 -0
  70. package/dist/contracts/deepbook_margin/pool_proxy.mjs +644 -0
  71. package/dist/contracts/deepbook_margin/pool_proxy.mjs.map +1 -0
  72. package/dist/contracts/deepbook_margin/position_manager.mjs +32 -0
  73. package/dist/contracts/deepbook_margin/position_manager.mjs.map +1 -0
  74. package/dist/contracts/deepbook_margin/protocol_config.mjs +122 -0
  75. package/dist/contracts/deepbook_margin/protocol_config.mjs.map +1 -0
  76. package/dist/contracts/deepbook_margin/protocol_fees.mjs +58 -0
  77. package/dist/contracts/deepbook_margin/protocol_fees.mjs.map +1 -0
  78. package/dist/contracts/deepbook_margin/rate_limiter.mjs +26 -0
  79. package/dist/contracts/deepbook_margin/rate_limiter.mjs.map +1 -0
  80. package/dist/contracts/deepbook_margin/tpsl.mjs +171 -0
  81. package/dist/contracts/deepbook_margin/tpsl.mjs.map +1 -0
  82. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs +43 -0
  83. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs.map +1 -0
  84. package/dist/contracts/margin_liquidation/liquidation_vault.mjs +179 -0
  85. package/dist/contracts/margin_liquidation/liquidation_vault.mjs.map +1 -0
  86. package/dist/contracts/utils/index.d.mts +1 -1
  87. package/dist/contracts/utils/index.mjs +92 -3
  88. package/dist/contracts/utils/index.mjs.map +1 -1
  89. package/dist/queries/registryQueries.mjs +13 -0
  90. package/dist/queries/registryQueries.mjs.map +1 -1
  91. package/dist/transactions/balanceManager.d.mts.map +1 -1
  92. package/dist/transactions/balanceManager.mjs +119 -100
  93. package/dist/transactions/balanceManager.mjs.map +1 -1
  94. package/dist/transactions/deepbook.d.mts.map +1 -1
  95. package/dist/transactions/deepbook.mjs +464 -439
  96. package/dist/transactions/deepbook.mjs.map +1 -1
  97. package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
  98. package/dist/transactions/deepbookAdmin.mjs +151 -135
  99. package/dist/transactions/deepbookAdmin.mjs.map +1 -1
  100. package/dist/transactions/flashLoans.d.mts.map +1 -1
  101. package/dist/transactions/flashLoans.mjs +29 -22
  102. package/dist/transactions/flashLoans.mjs.map +1 -1
  103. package/dist/transactions/governance.d.mts.map +1 -1
  104. package/dist/transactions/governance.mjs +34 -33
  105. package/dist/transactions/governance.mjs.map +1 -1
  106. package/dist/transactions/marginAdmin.d.mts +17 -7
  107. package/dist/transactions/marginAdmin.d.mts.map +1 -1
  108. package/dist/transactions/marginAdmin.mjs +186 -169
  109. package/dist/transactions/marginAdmin.mjs.map +1 -1
  110. package/dist/transactions/marginLiquidations.d.mts +3 -3
  111. package/dist/transactions/marginLiquidations.d.mts.map +1 -1
  112. package/dist/transactions/marginLiquidations.mjs +53 -54
  113. package/dist/transactions/marginLiquidations.mjs.map +1 -1
  114. package/dist/transactions/marginMaintainer.d.mts +5 -5
  115. package/dist/transactions/marginMaintainer.d.mts.map +1 -1
  116. package/dist/transactions/marginMaintainer.mjs +83 -83
  117. package/dist/transactions/marginMaintainer.mjs.map +1 -1
  118. package/dist/transactions/marginManager.d.mts +32 -32
  119. package/dist/transactions/marginManager.d.mts.map +1 -1
  120. package/dist/transactions/marginManager.mjs +330 -317
  121. package/dist/transactions/marginManager.mjs.map +1 -1
  122. package/dist/transactions/marginPool.d.mts +18 -18
  123. package/dist/transactions/marginPool.d.mts.map +1 -1
  124. package/dist/transactions/marginPool.mjs +93 -89
  125. package/dist/transactions/marginPool.mjs.map +1 -1
  126. package/dist/transactions/marginRegistry.d.mts +22 -15
  127. package/dist/transactions/marginRegistry.d.mts.map +1 -1
  128. package/dist/transactions/marginRegistry.mjs +101 -68
  129. package/dist/transactions/marginRegistry.mjs.map +1 -1
  130. package/dist/transactions/marginTPSL.d.mts +27 -9
  131. package/dist/transactions/marginTPSL.d.mts.map +1 -1
  132. package/dist/transactions/marginTPSL.mjs +108 -82
  133. package/dist/transactions/marginTPSL.mjs.map +1 -1
  134. package/dist/transactions/poolProxy.d.mts +37 -5
  135. package/dist/transactions/poolProxy.d.mts.map +1 -1
  136. package/dist/transactions/poolProxy.mjs +269 -189
  137. package/dist/transactions/poolProxy.mjs.map +1 -1
  138. package/dist/utils/constants.mjs +4 -4
  139. package/dist/utils/constants.mjs.map +1 -1
  140. package/package.json +3 -3
  141. package/src/client.ts +8 -0
  142. package/src/contracts/deepbook/balance_manager.ts +46 -5
  143. package/src/contracts/deepbook/constants.ts +13 -0
  144. package/src/contracts/deepbook/pool.ts +133 -0
  145. package/src/contracts/deepbook/registry.ts +136 -1
  146. package/src/contracts/deepbook_margin/deps/deepbook/balance_manager.ts +49 -0
  147. package/src/contracts/deepbook_margin/deps/std/type_name.ts +24 -0
  148. package/src/contracts/deepbook_margin/deps/sui/bag.ts +41 -0
  149. package/src/contracts/deepbook_margin/deps/sui/balance.ts +19 -0
  150. package/src/contracts/deepbook_margin/deps/sui/table.ts +36 -0
  151. package/src/contracts/deepbook_margin/deps/sui/vec_map.ts +33 -0
  152. package/src/contracts/deepbook_margin/deps/sui/vec_set.ts +22 -0
  153. package/src/contracts/deepbook_margin/deps/sui/versioned.ts +13 -0
  154. package/src/contracts/deepbook_margin/margin_constants.ts +329 -0
  155. package/src/contracts/deepbook_margin/margin_manager.ts +1772 -0
  156. package/src/contracts/deepbook_margin/margin_pool.ts +1129 -0
  157. package/src/contracts/deepbook_margin/margin_registry.ts +1207 -0
  158. package/src/contracts/deepbook_margin/margin_state.ts +26 -0
  159. package/src/contracts/deepbook_margin/oracle.ts +99 -0
  160. package/src/contracts/deepbook_margin/pool_proxy.ts +1298 -0
  161. package/src/contracts/deepbook_margin/position_manager.ts +28 -0
  162. package/src/contracts/deepbook_margin/protocol_config.ts +163 -0
  163. package/src/contracts/deepbook_margin/protocol_fees.ts +153 -0
  164. package/src/contracts/deepbook_margin/rate_limiter.ts +80 -0
  165. package/src/contracts/deepbook_margin/tpsl.ts +559 -0
  166. package/src/contracts/margin_liquidation/deps/sui/bag.ts +41 -0
  167. package/src/contracts/margin_liquidation/liquidation_vault.ts +401 -0
  168. package/src/queries/registryQueries.ts +15 -0
  169. package/src/transactions/balanceManager.ts +140 -90
  170. package/src/transactions/deepbook.ts +586 -494
  171. package/src/transactions/deepbookAdmin.ts +154 -146
  172. package/src/transactions/flashLoans.ts +29 -20
  173. package/src/transactions/governance.ts +50 -37
  174. package/src/transactions/marginAdmin.ts +247 -188
  175. package/src/transactions/marginLiquidations.ts +70 -55
  176. package/src/transactions/marginMaintainer.ts +106 -88
  177. package/src/transactions/marginManager.ts +414 -348
  178. package/src/transactions/marginPool.ts +140 -103
  179. package/src/transactions/marginRegistry.ts +103 -70
  180. package/src/transactions/marginTPSL.ts +151 -87
  181. package/src/transactions/poolProxy.ts +384 -205
  182. package/src/utils/constants.ts +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool_proxy.mjs","names":[],"sources":["../../../src/contracts/deepbook_margin/pool_proxy.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { type Transaction } from '@mysten/sui/transactions';\nimport { normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nexport interface UpdateCurrentPriceArguments {\n\tregistry: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tbasePriceInfoObject: RawTransactionArgument<string>;\n\tquotePriceInfoObject: RawTransactionArgument<string>;\n}\nexport interface UpdateCurrentPriceOptions {\n\tpackage?: string;\n\targuments:\n\t\t| UpdateCurrentPriceArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tbasePriceInfoObject: RawTransactionArgument<string>,\n\t\t\t\tquotePriceInfoObject: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/**\n * Updates the current price for a pool using safe oracle price calculation. Anyone\n * can call this to update the price oracle used for order validation.\n */\nexport function updateCurrentPrice(options: UpdateCurrentPriceOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['registry', 'pool', 'basePriceInfoObject', 'quotePriceInfoObject'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'update_current_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceLimitOrderArguments {\n\tRegistry: RawTransactionArgument<string>;\n\tMarginManager: RawTransactionArgument<string>;\n\tPool: RawTransactionArgument<string>;\n\tClientOrderId: RawTransactionArgument<number | bigint>;\n\tOrderType: RawTransactionArgument<number>;\n\tSelfMatchingOption: RawTransactionArgument<number>;\n\tPrice: RawTransactionArgument<number | bigint>;\n\tQuantity: RawTransactionArgument<number | bigint>;\n\tIsBid: RawTransactionArgument<boolean>;\n\tPayWithDeep: RawTransactionArgument<boolean>;\n\tExpireTimestamp: RawTransactionArgument<number | bigint>;\n}\nexport interface PlaceLimitOrderOptions {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceLimitOrderArguments\n\t\t| [\n\t\t\t\tRegistry: RawTransactionArgument<string>,\n\t\t\t\tMarginManager: RawTransactionArgument<string>,\n\t\t\t\tPool: RawTransactionArgument<string>,\n\t\t\t\tClientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tOrderType: RawTransactionArgument<number>,\n\t\t\t\tSelfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tPrice: RawTransactionArgument<number | bigint>,\n\t\t\t\tQuantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tIsBid: RawTransactionArgument<boolean>,\n\t\t\t\tPayWithDeep: RawTransactionArgument<boolean>,\n\t\t\t\tExpireTimestamp: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** DEPRECATED. Use `place_limit_order_v2`. */\nexport function placeLimitOrder(options: PlaceLimitOrderOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u8',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'u64',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'Registry',\n\t\t'MarginManager',\n\t\t'Pool',\n\t\t'ClientOrderId',\n\t\t'OrderType',\n\t\t'SelfMatchingOption',\n\t\t'Price',\n\t\t'Quantity',\n\t\t'IsBid',\n\t\t'PayWithDeep',\n\t\t'ExpireTimestamp',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_limit_order',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceMarketOrderArguments {\n\tRegistry: RawTransactionArgument<string>;\n\tMarginManager: RawTransactionArgument<string>;\n\tPool: RawTransactionArgument<string>;\n\tClientOrderId: RawTransactionArgument<number | bigint>;\n\tSelfMatchingOption: RawTransactionArgument<number>;\n\tQuantity: RawTransactionArgument<number | bigint>;\n\tIsBid: RawTransactionArgument<boolean>;\n\tPayWithDeep: RawTransactionArgument<boolean>;\n}\nexport interface PlaceMarketOrderOptions {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceMarketOrderArguments\n\t\t| [\n\t\t\t\tRegistry: RawTransactionArgument<string>,\n\t\t\t\tMarginManager: RawTransactionArgument<string>,\n\t\t\t\tPool: RawTransactionArgument<string>,\n\t\t\t\tClientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tSelfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tQuantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tIsBid: RawTransactionArgument<boolean>,\n\t\t\t\tPayWithDeep: RawTransactionArgument<boolean>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** DEPRECATED. Use `place_market_order_v2`. */\nexport function placeMarketOrder(options: PlaceMarketOrderOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'Registry',\n\t\t'MarginManager',\n\t\t'Pool',\n\t\t'ClientOrderId',\n\t\t'SelfMatchingOption',\n\t\t'Quantity',\n\t\t'IsBid',\n\t\t'PayWithDeep',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_market_order',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceReduceOnlyLimitOrderArguments {\n\tRegistry: RawTransactionArgument<string>;\n\tMarginManager: RawTransactionArgument<string>;\n\tPool: RawTransactionArgument<string>;\n\tMarginPool: RawTransactionArgument<string>;\n\tClientOrderId: RawTransactionArgument<number | bigint>;\n\tOrderType: RawTransactionArgument<number>;\n\tSelfMatchingOption: RawTransactionArgument<number>;\n\tPrice: RawTransactionArgument<number | bigint>;\n\tQuantity: RawTransactionArgument<number | bigint>;\n\tIsBid: RawTransactionArgument<boolean>;\n\tPayWithDeep: RawTransactionArgument<boolean>;\n\tExpireTimestamp: RawTransactionArgument<number | bigint>;\n}\nexport interface PlaceReduceOnlyLimitOrderOptions {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceReduceOnlyLimitOrderArguments\n\t\t| [\n\t\t\t\tRegistry: RawTransactionArgument<string>,\n\t\t\t\tMarginManager: RawTransactionArgument<string>,\n\t\t\t\tPool: RawTransactionArgument<string>,\n\t\t\t\tMarginPool: RawTransactionArgument<string>,\n\t\t\t\tClientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tOrderType: RawTransactionArgument<number>,\n\t\t\t\tSelfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tPrice: RawTransactionArgument<number | bigint>,\n\t\t\t\tQuantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tIsBid: RawTransactionArgument<boolean>,\n\t\t\t\tPayWithDeep: RawTransactionArgument<boolean>,\n\t\t\t\tExpireTimestamp: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string, string];\n}\n/** DEPRECATED. Use `place_reduce_only_limit_order_v2`. */\nexport function placeReduceOnlyLimitOrder(options: PlaceReduceOnlyLimitOrderOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u8',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'u64',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'Registry',\n\t\t'MarginManager',\n\t\t'Pool',\n\t\t'MarginPool',\n\t\t'ClientOrderId',\n\t\t'OrderType',\n\t\t'SelfMatchingOption',\n\t\t'Price',\n\t\t'Quantity',\n\t\t'IsBid',\n\t\t'PayWithDeep',\n\t\t'ExpireTimestamp',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_reduce_only_limit_order',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceReduceOnlyMarketOrderArguments {\n\tRegistry: RawTransactionArgument<string>;\n\tMarginManager: RawTransactionArgument<string>;\n\tPool: RawTransactionArgument<string>;\n\tMarginPool: RawTransactionArgument<string>;\n\tClientOrderId: RawTransactionArgument<number | bigint>;\n\tSelfMatchingOption: RawTransactionArgument<number>;\n\tQuantity: RawTransactionArgument<number | bigint>;\n\tIsBid: RawTransactionArgument<boolean>;\n\tPayWithDeep: RawTransactionArgument<boolean>;\n}\nexport interface PlaceReduceOnlyMarketOrderOptions {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceReduceOnlyMarketOrderArguments\n\t\t| [\n\t\t\t\tRegistry: RawTransactionArgument<string>,\n\t\t\t\tMarginManager: RawTransactionArgument<string>,\n\t\t\t\tPool: RawTransactionArgument<string>,\n\t\t\t\tMarginPool: RawTransactionArgument<string>,\n\t\t\t\tClientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tSelfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tQuantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tIsBid: RawTransactionArgument<boolean>,\n\t\t\t\tPayWithDeep: RawTransactionArgument<boolean>,\n\t\t ];\n\ttypeArguments: [string, string, string];\n}\n/** DEPRECATED. Use `place_reduce_only_market_order_v2`. */\nexport function placeReduceOnlyMarketOrder(options: PlaceReduceOnlyMarketOrderOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'Registry',\n\t\t'MarginManager',\n\t\t'Pool',\n\t\t'MarginPool',\n\t\t'ClientOrderId',\n\t\t'SelfMatchingOption',\n\t\t'Quantity',\n\t\t'IsBid',\n\t\t'PayWithDeep',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_reduce_only_market_order',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceLimitOrderV2Arguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tbaseMarginPool: RawTransactionArgument<string>;\n\tquoteMarginPool: RawTransactionArgument<string>;\n\tbaseOracle: RawTransactionArgument<string>;\n\tquoteOracle: RawTransactionArgument<string>;\n\tclientOrderId: RawTransactionArgument<number | bigint>;\n\torderType: RawTransactionArgument<number>;\n\tselfMatchingOption: RawTransactionArgument<number>;\n\tprice: RawTransactionArgument<number | bigint>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tisBid: RawTransactionArgument<boolean>;\n\tpayWithDeep: RawTransactionArgument<boolean>;\n\texpireTimestamp: RawTransactionArgument<number | bigint>;\n}\nexport interface PlaceLimitOrderV2Options {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceLimitOrderV2Arguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tbaseMarginPool: RawTransactionArgument<string>,\n\t\t\t\tquoteMarginPool: RawTransactionArgument<string>,\n\t\t\t\tbaseOracle: RawTransactionArgument<string>,\n\t\t\t\tquoteOracle: RawTransactionArgument<string>,\n\t\t\t\tclientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\torderType: RawTransactionArgument<number>,\n\t\t\t\tselfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tprice: RawTransactionArgument<number | bigint>,\n\t\t\t\tquantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tisBid: RawTransactionArgument<boolean>,\n\t\t\t\tpayWithDeep: RawTransactionArgument<boolean>,\n\t\t\t\texpireTimestamp: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Places a limit order in the pool. */\nexport function placeLimitOrderV2(options: PlaceLimitOrderV2Options) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u8',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'u64',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'registry',\n\t\t'marginManager',\n\t\t'pool',\n\t\t'baseMarginPool',\n\t\t'quoteMarginPool',\n\t\t'baseOracle',\n\t\t'quoteOracle',\n\t\t'clientOrderId',\n\t\t'orderType',\n\t\t'selfMatchingOption',\n\t\t'price',\n\t\t'quantity',\n\t\t'isBid',\n\t\t'payWithDeep',\n\t\t'expireTimestamp',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_limit_order_v2',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceMarketOrderV2Arguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tbaseMarginPool: RawTransactionArgument<string>;\n\tquoteMarginPool: RawTransactionArgument<string>;\n\tbaseOracle: RawTransactionArgument<string>;\n\tquoteOracle: RawTransactionArgument<string>;\n\tclientOrderId: RawTransactionArgument<number | bigint>;\n\tselfMatchingOption: RawTransactionArgument<number>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tisBid: RawTransactionArgument<boolean>;\n\tpayWithDeep: RawTransactionArgument<boolean>;\n}\nexport interface PlaceMarketOrderV2Options {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceMarketOrderV2Arguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tbaseMarginPool: RawTransactionArgument<string>,\n\t\t\t\tquoteMarginPool: RawTransactionArgument<string>,\n\t\t\t\tbaseOracle: RawTransactionArgument<string>,\n\t\t\t\tquoteOracle: RawTransactionArgument<string>,\n\t\t\t\tclientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tselfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tquantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tisBid: RawTransactionArgument<boolean>,\n\t\t\t\tpayWithDeep: RawTransactionArgument<boolean>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Places a market order in the pool. */\nexport function placeMarketOrderV2(options: PlaceMarketOrderV2Options) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'registry',\n\t\t'marginManager',\n\t\t'pool',\n\t\t'baseMarginPool',\n\t\t'quoteMarginPool',\n\t\t'baseOracle',\n\t\t'quoteOracle',\n\t\t'clientOrderId',\n\t\t'selfMatchingOption',\n\t\t'quantity',\n\t\t'isBid',\n\t\t'payWithDeep',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_market_order_v2',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceReduceOnlyLimitOrderV2Arguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tbaseMarginPool: RawTransactionArgument<string>;\n\tquoteMarginPool: RawTransactionArgument<string>;\n\tbaseOracle: RawTransactionArgument<string>;\n\tquoteOracle: RawTransactionArgument<string>;\n\tclientOrderId: RawTransactionArgument<number | bigint>;\n\torderType: RawTransactionArgument<number>;\n\tselfMatchingOption: RawTransactionArgument<number>;\n\tprice: RawTransactionArgument<number | bigint>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tisBid: RawTransactionArgument<boolean>;\n\tpayWithDeep: RawTransactionArgument<boolean>;\n\texpireTimestamp: RawTransactionArgument<number | bigint>;\n}\nexport interface PlaceReduceOnlyLimitOrderV2Options {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceReduceOnlyLimitOrderV2Arguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tbaseMarginPool: RawTransactionArgument<string>,\n\t\t\t\tquoteMarginPool: RawTransactionArgument<string>,\n\t\t\t\tbaseOracle: RawTransactionArgument<string>,\n\t\t\t\tquoteOracle: RawTransactionArgument<string>,\n\t\t\t\tclientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\torderType: RawTransactionArgument<number>,\n\t\t\t\tselfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tprice: RawTransactionArgument<number | bigint>,\n\t\t\t\tquantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tisBid: RawTransactionArgument<boolean>,\n\t\t\t\tpayWithDeep: RawTransactionArgument<boolean>,\n\t\t\t\texpireTimestamp: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Places a reduce-only order in the pool. Used when margin trading is disabled. */\nexport function placeReduceOnlyLimitOrderV2(options: PlaceReduceOnlyLimitOrderV2Options) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u8',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'u64',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'registry',\n\t\t'marginManager',\n\t\t'pool',\n\t\t'baseMarginPool',\n\t\t'quoteMarginPool',\n\t\t'baseOracle',\n\t\t'quoteOracle',\n\t\t'clientOrderId',\n\t\t'orderType',\n\t\t'selfMatchingOption',\n\t\t'price',\n\t\t'quantity',\n\t\t'isBid',\n\t\t'payWithDeep',\n\t\t'expireTimestamp',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_reduce_only_limit_order_v2',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceReduceOnlyMarketOrderV2Arguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tbaseMarginPool: RawTransactionArgument<string>;\n\tquoteMarginPool: RawTransactionArgument<string>;\n\tbaseOracle: RawTransactionArgument<string>;\n\tquoteOracle: RawTransactionArgument<string>;\n\tclientOrderId: RawTransactionArgument<number | bigint>;\n\tselfMatchingOption: RawTransactionArgument<number>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tisBid: RawTransactionArgument<boolean>;\n\tpayWithDeep: RawTransactionArgument<boolean>;\n}\nexport interface PlaceReduceOnlyMarketOrderV2Options {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceReduceOnlyMarketOrderV2Arguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tbaseMarginPool: RawTransactionArgument<string>,\n\t\t\t\tquoteMarginPool: RawTransactionArgument<string>,\n\t\t\t\tbaseOracle: RawTransactionArgument<string>,\n\t\t\t\tquoteOracle: RawTransactionArgument<string>,\n\t\t\t\tclientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tselfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tquantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tisBid: RawTransactionArgument<boolean>,\n\t\t\t\tpayWithDeep: RawTransactionArgument<boolean>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/**\n * Places a reduce-only market order in the pool. Used when margin trading is\n * disabled.\n *\n * Superseded by `place_reduce_only_market_order_and_repay_loan`. A market (taker)\n * fill always pays the spread, which lowers the oracle-valued `risk_ratio` while\n * the debt is unchanged, so the swap-only monotonic check here rejects essentially\n * every taker fill. The `_and_repay` variant deleverages with the proceeds so the\n * net-state ratio actually improves. Kept callable for existing integrators; its\n * reduce-only _direction_ guard matches the other entries — a bid needs base\n * (short-side) debt, the ask needs quote (long-side) debt and sells up to gross\n * base held — with no size cap.\n */\nexport function placeReduceOnlyMarketOrderV2(options: PlaceReduceOnlyMarketOrderV2Options) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'registry',\n\t\t'marginManager',\n\t\t'pool',\n\t\t'baseMarginPool',\n\t\t'quoteMarginPool',\n\t\t'baseOracle',\n\t\t'quoteOracle',\n\t\t'clientOrderId',\n\t\t'selfMatchingOption',\n\t\t'quantity',\n\t\t'isBid',\n\t\t'payWithDeep',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_reduce_only_market_order_v2',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceReduceOnlyMarketOrderAndRepayLoanArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tbaseMarginPool: RawTransactionArgument<string>;\n\tquoteMarginPool: RawTransactionArgument<string>;\n\tbaseOracle: RawTransactionArgument<string>;\n\tquoteOracle: RawTransactionArgument<string>;\n\tclientOrderId: RawTransactionArgument<number | bigint>;\n\tselfMatchingOption: RawTransactionArgument<number>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tisBid: RawTransactionArgument<boolean>;\n\tpayWithDeep: RawTransactionArgument<boolean>;\n}\nexport interface PlaceReduceOnlyMarketOrderAndRepayLoanOptions {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceReduceOnlyMarketOrderAndRepayLoanArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tbaseMarginPool: RawTransactionArgument<string>,\n\t\t\t\tquoteMarginPool: RawTransactionArgument<string>,\n\t\t\t\tbaseOracle: RawTransactionArgument<string>,\n\t\t\t\tquoteOracle: RawTransactionArgument<string>,\n\t\t\t\tclientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tselfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tquantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tisBid: RawTransactionArgument<boolean>,\n\t\t\t\tpayWithDeep: RawTransactionArgument<boolean>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/**\n * Atomically winds down a leveraged position: places a reduce-only market order,\n * repays the loan with the proceeds, then requires the net (post-repay) risk ratio\n * to be at least the pre-trade ratio.\n *\n * The post-repay check is the point. A market close pays the spread, which alone\n * lowers the oracle-valued ratio (debt is unchanged until repay) and would abort\n * the plain reduce-only path. Repaying first deleverages and absorbs the slippage\n * (still bounded by the `assert_price` band), and lets a manager in the\n * `liquidation..min_borrow` band climb out — it cannot reach the borrow floor in a\n * single swap.\n */\nexport function placeReduceOnlyMarketOrderAndRepayLoan(\n\toptions: PlaceReduceOnlyMarketOrderAndRepayLoanOptions,\n) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'registry',\n\t\t'marginManager',\n\t\t'pool',\n\t\t'baseMarginPool',\n\t\t'quoteMarginPool',\n\t\t'baseOracle',\n\t\t'quoteOracle',\n\t\t'clientOrderId',\n\t\t'selfMatchingOption',\n\t\t'quantity',\n\t\t'isBid',\n\t\t'payWithDeep',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_reduce_only_market_order_and_repay_loan',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceReduceOnlyLimitOrderAndRepayLoanArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tbaseMarginPool: RawTransactionArgument<string>;\n\tquoteMarginPool: RawTransactionArgument<string>;\n\tbaseOracle: RawTransactionArgument<string>;\n\tquoteOracle: RawTransactionArgument<string>;\n\tclientOrderId: RawTransactionArgument<number | bigint>;\n\torderType: RawTransactionArgument<number>;\n\tselfMatchingOption: RawTransactionArgument<number>;\n\tprice: RawTransactionArgument<number | bigint>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tisBid: RawTransactionArgument<boolean>;\n\tpayWithDeep: RawTransactionArgument<boolean>;\n\texpireTimestamp: RawTransactionArgument<number | bigint>;\n}\nexport interface PlaceReduceOnlyLimitOrderAndRepayLoanOptions {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceReduceOnlyLimitOrderAndRepayLoanArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tbaseMarginPool: RawTransactionArgument<string>,\n\t\t\t\tquoteMarginPool: RawTransactionArgument<string>,\n\t\t\t\tbaseOracle: RawTransactionArgument<string>,\n\t\t\t\tquoteOracle: RawTransactionArgument<string>,\n\t\t\t\tclientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\torderType: RawTransactionArgument<number>,\n\t\t\t\tselfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tprice: RawTransactionArgument<number | bigint>,\n\t\t\t\tquantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tisBid: RawTransactionArgument<boolean>,\n\t\t\t\tpayWithDeep: RawTransactionArgument<boolean>,\n\t\t\t\texpireTimestamp: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/**\n * Reduce-only **limit** order that atomically repays the loan with the taker\n * fills. It is the limit/maker behaviour of `place_reduce_only_limit_order_v2`\n * plus the repay-then-net-monotonic gate of\n * `place_reduce_only_market_order_and_repay_loan`: the portion that crosses the\n * book fills immediately and settles, the rest rests as a maker, then the settled\n * (taker) proceeds repay the debt before the monotonic check on the net\n * (post-repay) state.\n *\n * This is the danger-band tool for a _price-bounded_ reduce: a crossing\n * reduce-only limit pays the spread on its taker fills, which alone would abort\n * `place_reduce_only_limit_order_v2`'s swap-only monotonic check; repaying first\n * deleverages so the net ratio holds. The resting remainder only locks balance\n * (counted in assets), so it doesn't move the ratio. Unfilled-and-resting behaves\n * exactly like `place_reduce_only_limit_order_v2` (nothing to repay).\n */\nexport function placeReduceOnlyLimitOrderAndRepayLoan(\n\toptions: PlaceReduceOnlyLimitOrderAndRepayLoanOptions,\n) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u8',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'u64',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'registry',\n\t\t'marginManager',\n\t\t'pool',\n\t\t'baseMarginPool',\n\t\t'quoteMarginPool',\n\t\t'baseOracle',\n\t\t'quoteOracle',\n\t\t'clientOrderId',\n\t\t'orderType',\n\t\t'selfMatchingOption',\n\t\t'price',\n\t\t'quantity',\n\t\t'isBid',\n\t\t'payWithDeep',\n\t\t'expireTimestamp',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_reduce_only_limit_order_and_repay_loan',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface PlaceMarketOrderAndRepayLoanArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tbaseMarginPool: RawTransactionArgument<string>;\n\tquoteMarginPool: RawTransactionArgument<string>;\n\tbaseOracle: RawTransactionArgument<string>;\n\tquoteOracle: RawTransactionArgument<string>;\n\tclientOrderId: RawTransactionArgument<number | bigint>;\n\tselfMatchingOption: RawTransactionArgument<number>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tisBid: RawTransactionArgument<boolean>;\n\tpayWithDeep: RawTransactionArgument<boolean>;\n}\nexport interface PlaceMarketOrderAndRepayLoanOptions {\n\tpackage?: string;\n\targuments:\n\t\t| PlaceMarketOrderAndRepayLoanArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tbaseMarginPool: RawTransactionArgument<string>,\n\t\t\t\tquoteMarginPool: RawTransactionArgument<string>,\n\t\t\t\tbaseOracle: RawTransactionArgument<string>,\n\t\t\t\tquoteOracle: RawTransactionArgument<string>,\n\t\t\t\tclientOrderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tselfMatchingOption: RawTransactionArgument<number>,\n\t\t\t\tquantity: RawTransactionArgument<number | bigint>,\n\t\t\t\tisBid: RawTransactionArgument<boolean>,\n\t\t\t\tpayWithDeep: RawTransactionArgument<boolean>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/**\n * Atomically places a market order and repays the loan with the proceeds, gating\n * on a **monotonic** net-state check: if any debt remains after the repay, the\n * post-repay `risk_ratio` must be at least the pre-trade ratio (improve-or-hold).\n * A full close drives debt to 0 (`risk_ratio` MAX), which always passes.\n *\n * This is the everyday close / deleverage tool. The monotonic gate — rather than\n * the `min_open` opening floor used by `place_market_order_v2` — lets a position\n * in the `liquidation..min_borrow` danger band wind down _partially_: a small\n * close that lifts the ratio from, say, 1.12 to 1.15 is allowed even though 1.15\n * is still below `min_open`, which the opening floor would reject.\n *\n * Not reduce-only and uncapped, but the monotonic check makes a quantity cap\n * unnecessary: a market (taker) fill settles immediately, so any genuinely\n * exposure-_increasing_ trade lowers the ratio and aborts here, while any\n * deleveraging trade is allowed at any size — an overshoot past the debt is fine\n * (surplus is the manager's own holding) and `assert_price` still bounds slippage.\n * Requires margin trading enabled; in reduce-only mode use\n * `place_reduce_only_market_order_and_repay_loan`.\n */\nexport function placeMarketOrderAndRepayLoan(options: PlaceMarketOrderAndRepayLoanOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'u64',\n\t\t'bool',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'registry',\n\t\t'marginManager',\n\t\t'pool',\n\t\t'baseMarginPool',\n\t\t'quoteMarginPool',\n\t\t'baseOracle',\n\t\t'quoteOracle',\n\t\t'clientOrderId',\n\t\t'selfMatchingOption',\n\t\t'quantity',\n\t\t'isBid',\n\t\t'payWithDeep',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'place_market_order_and_repay_loan',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface ModifyOrderArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n\tnewQuantity: RawTransactionArgument<number | bigint>;\n}\nexport interface ModifyOrderOptions {\n\tpackage?: string;\n\targuments:\n\t\t| ModifyOrderArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\torderId: RawTransactionArgument<number | bigint>,\n\t\t\t\tnewQuantity: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Modifies an order */\nexport function modifyOrder(options: ModifyOrderOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null, 'u128', 'u64', '0x2::clock::Clock'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool', 'orderId', 'newQuantity'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'modify_order',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface CancelOrderArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface CancelOrderOptions {\n\tpackage?: string;\n\targuments:\n\t\t| CancelOrderArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\torderId: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Cancels an order */\nexport function cancelOrder(options: CancelOrderOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null, 'u128', '0x2::clock::Clock'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'cancel_order',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface CancelOrdersArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\torderIds: RawTransactionArgument<Array<number | bigint>>;\n}\nexport interface CancelOrdersOptions {\n\tpackage?: string;\n\targuments:\n\t\t| CancelOrdersArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\torderIds: RawTransactionArgument<Array<number | bigint>>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Cancel multiple orders within a vector. */\nexport function cancelOrders(options: CancelOrdersOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null, 'vector<u128>', '0x2::clock::Clock'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool', 'orderIds'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'cancel_orders',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface CancelAllOrdersArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n}\nexport interface CancelAllOrdersOptions {\n\tpackage?: string;\n\targuments:\n\t\t| CancelAllOrdersArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Cancels all orders for the given account. */\nexport function cancelAllOrders(options: CancelAllOrdersOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'cancel_all_orders',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface WithdrawSettledAmountsArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n}\nexport interface WithdrawSettledAmountsOptions {\n\tpackage?: string;\n\targuments:\n\t\t| WithdrawSettledAmountsArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Withdraw settled amounts to balance_manager. */\nexport function withdrawSettledAmounts(options: WithdrawSettledAmountsOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'withdraw_settled_amounts',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface WithdrawSettledAmountsPermissionlessArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n}\nexport interface WithdrawSettledAmountsPermissionlessOptions {\n\tpackage?: string;\n\targuments:\n\t\t| WithdrawSettledAmountsPermissionlessArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/**\n * Withdraw settled amounts to balance_manager permissionlessly. Anyone can call\n * this function to settle balances for a margin manager.\n */\nexport function withdrawSettledAmountsPermissionless(\n\toptions: WithdrawSettledAmountsPermissionlessOptions,\n) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'withdraw_settled_amounts_permissionless',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface StakeArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tamount: RawTransactionArgument<number | bigint>;\n}\nexport interface StakeOptions {\n\tpackage?: string;\n\targuments:\n\t\t| StakeArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tamount: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Stake DEEP tokens to the pool. */\nexport function stake(options: StakeOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null, 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool', 'amount'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'stake',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface UnstakeArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n}\nexport interface UnstakeOptions {\n\tpackage?: string;\n\targuments:\n\t\t| UnstakeArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Unstake DEEP tokens from the pool. */\nexport function unstake(options: UnstakeOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'unstake',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface SubmitProposalArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\ttakerFee: RawTransactionArgument<number | bigint>;\n\tmakerFee: RawTransactionArgument<number | bigint>;\n\tstakeRequired: RawTransactionArgument<number | bigint>;\n}\nexport interface SubmitProposalOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SubmitProposalArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\ttakerFee: RawTransactionArgument<number | bigint>,\n\t\t\t\tmakerFee: RawTransactionArgument<number | bigint>,\n\t\t\t\tstakeRequired: RawTransactionArgument<number | bigint>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Submit proposal using the margin manager. */\nexport function submitProposal(options: SubmitProposalOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null, 'u64', 'u64', 'u64'] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'registry',\n\t\t'marginManager',\n\t\t'pool',\n\t\t'takerFee',\n\t\t'makerFee',\n\t\t'stakeRequired',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'submit_proposal',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface VoteArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n\tproposalId: RawTransactionArgument<string>;\n}\nexport interface VoteOptions {\n\tpackage?: string;\n\targuments:\n\t\t| VoteArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t\t\tproposalId: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Vote on a proposal using the margin manager. */\nexport function vote(options: VoteOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null, '0x2::object::ID'] satisfies (string | null)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool', 'proposalId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'vote',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface ClaimRebatesArguments {\n\tregistry: RawTransactionArgument<string>;\n\tmarginManager: RawTransactionArgument<string>;\n\tpool: RawTransactionArgument<string>;\n}\nexport interface ClaimRebatesOptions {\n\tpackage?: string;\n\targuments:\n\t\t| ClaimRebatesArguments\n\t\t| [\n\t\t\t\tregistry: RawTransactionArgument<string>,\n\t\t\t\tmarginManager: RawTransactionArgument<string>,\n\t\t\t\tpool: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\nexport function claimRebates(options: ClaimRebatesOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['registry', 'marginManager', 'pool'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pool_proxy',\n\t\t\tfunction: 'claim_rebates',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;AA2BA,SAAgB,mBAAmB,SAAoC;CACtE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAM;EAAoB;CACpE,MAAM,iBAAiB;EAAC;EAAY;EAAQ;EAAuB;EAAuB;AAC1F,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAuTJ,SAAgB,kBAAkB,SAAmC;CACpE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAqCJ,SAAgB,mBAAmB,SAAoC;CACtE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AA2CJ,SAAgB,4BAA4B,SAA6C;CACxF,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;;;;;;;;;;;;;AAiDJ,SAAgB,6BAA6B,SAA8C;CAC1F,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;;;;;;;;;;;;AAgDJ,SAAgB,uCACf,SACC;CACD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;;;;;;;;;;;;;;;;AA0DJ,SAAgB,sCACf,SACC;CACD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;;;;;;;;;;;;;;;;;;;;AAwDJ,SAAgB,6BAA6B,SAA8C;CAC1F,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAuBJ,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAQ;EAAO;EAAoB;CAI7E,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAQ;EAAW;EAAc;AACtF,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAqBJ,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAQ;EAAoB;CAItE,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAQ;EAAU;AACvE,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAqBJ,SAAgB,aAAa,SAA8B;CAC1D,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAgB;EAAoB;CAI9E,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAQ;EAAW;AACxE,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAmBJ,SAAgB,gBAAgB,SAAiC;CAChE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAoB;CAC9D,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAO;AAC5D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAmBJ,SAAgB,uBAAuB,SAAwC;CAC9E,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAK;CACzC,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAO;AAC5D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;;;;AAsBJ,SAAgB,qCACf,SACC;CACD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAK;CACzC,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAO;AAC5D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAqBJ,SAAgB,MAAM,SAAuB;CAC5C,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAM;CAChD,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAQ;EAAS;AACtE,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAmBJ,SAAgB,QAAQ,SAAyB;CAChD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAK;CACzC,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAO;AAC5D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAyBJ,SAAgB,eAAe,SAAgC;CAC9D,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAO;EAAO;EAAM;CAC9D,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;;AAqBJ,SAAgB,KAAK,SAAsB;CAC1C,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAkB;CAC5D,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAQ;EAAa;AAC1E,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC;;AAkBJ,SAAgB,aAAa,SAA8B;CAC1D,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAK;CACzC,MAAM,iBAAiB;EAAC;EAAY;EAAiB;EAAO;AAC5D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { MoveStruct } from "../utils/index.mjs";
2
+ import { Table } from "./deps/sui/table.mjs";
3
+ import { VecMap } from "./deps/sui/vec_map.mjs";
4
+ import { bcs } from "@mysten/sui/bcs";
5
+
6
+ //#region src/contracts/deepbook_margin/position_manager.ts
7
+ /**************************************************************
8
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
9
+ **************************************************************/
10
+ /**
11
+ * Position manager is responsible for managing users' positions. It is used to
12
+ * track the supply and loan shares of the users.
13
+ */
14
+ const $moduleName = "@deepbook/margin::position_manager";
15
+ const PositionManager = new MoveStruct({
16
+ name: `${$moduleName}::PositionManager`,
17
+ fields: {
18
+ positions: Table,
19
+ extra_fields: VecMap(bcs.string(), bcs.u64())
20
+ }
21
+ });
22
+ const Position = new MoveStruct({
23
+ name: `${$moduleName}::Position`,
24
+ fields: {
25
+ shares: bcs.u64(),
26
+ referral: bcs.option(bcs.Address)
27
+ }
28
+ });
29
+
30
+ //#endregion
31
+ export { PositionManager };
32
+ //# sourceMappingURL=position_manager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position_manager.mjs","names":["table.Table","vec_map.VecMap"],"sources":["../../../src/contracts/deepbook_margin/position_manager.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Position manager is responsible for managing users' positions. It is used to\n * track the supply and loan shares of the users.\n */\n\nimport { MoveStruct } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport * as table from './deps/sui/table.js';\nimport * as vec_map from './deps/sui/vec_map.js';\nconst $moduleName = '@deepbook/margin::position_manager';\nexport const PositionManager = new MoveStruct({\n\tname: `${$moduleName}::PositionManager`,\n\tfields: {\n\t\tpositions: table.Table,\n\t\textra_fields: vec_map.VecMap(bcs.string(), bcs.u64()),\n\t},\n});\nexport const Position = new MoveStruct({\n\tname: `${$moduleName}::Position`,\n\tfields: {\n\t\tshares: bcs.u64(),\n\t\treferral: bcs.option(bcs.Address),\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,cAAc;AACpB,MAAa,kBAAkB,IAAI,WAAW;CAC7C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,WAAWA;EACX,cAAcC,OAAe,IAAI,QAAQ,EAAE,IAAI,KAAK,CAAC;EACrD;CACD,CAAC;AACF,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,QAAQ,IAAI,KAAK;EACjB,UAAU,IAAI,OAAO,IAAI,QAAQ;EACjC;CACD,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { MoveStruct, normalizeMoveArguments } from "../utils/index.mjs";
2
+ import { VecMap } from "./deps/sui/vec_map.mjs";
3
+ import { bcs } from "@mysten/sui/bcs";
4
+
5
+ //#region src/contracts/deepbook_margin/protocol_config.ts
6
+ /**************************************************************
7
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
8
+ **************************************************************/
9
+ const $moduleName = "@deepbook/margin::protocol_config";
10
+ const MarginPoolConfig = new MoveStruct({
11
+ name: `${$moduleName}::MarginPoolConfig`,
12
+ fields: {
13
+ supply_cap: bcs.u64(),
14
+ max_utilization_rate: bcs.u64(),
15
+ protocol_spread: bcs.u64(),
16
+ min_borrow: bcs.u64(),
17
+ rate_limit_capacity: bcs.u64(),
18
+ rate_limit_refill_rate_per_ms: bcs.u64(),
19
+ rate_limit_enabled: bcs.bool()
20
+ }
21
+ });
22
+ const InterestConfig = new MoveStruct({
23
+ name: `${$moduleName}::InterestConfig`,
24
+ fields: {
25
+ base_rate: bcs.u64(),
26
+ base_slope: bcs.u64(),
27
+ optimal_utilization: bcs.u64(),
28
+ excess_slope: bcs.u64()
29
+ }
30
+ });
31
+ const ProtocolConfig = new MoveStruct({
32
+ name: `${$moduleName}::ProtocolConfig`,
33
+ fields: {
34
+ margin_pool_config: MarginPoolConfig,
35
+ interest_config: InterestConfig,
36
+ extra_fields: VecMap(bcs.string(), bcs.u64())
37
+ }
38
+ });
39
+ function newProtocolConfig(options) {
40
+ const packageAddress = options.package ?? "@deepbook/margin";
41
+ const argumentsTypes = [null, null];
42
+ const parameterNames = ["marginPoolConfig", "interestConfig"];
43
+ return (tx) => tx.moveCall({
44
+ package: packageAddress,
45
+ module: "protocol_config",
46
+ function: "new_protocol_config",
47
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
48
+ });
49
+ }
50
+ function newMarginPoolConfig(options) {
51
+ const packageAddress = options.package ?? "@deepbook/margin";
52
+ const argumentsTypes = [
53
+ "u64",
54
+ "u64",
55
+ "u64",
56
+ "u64"
57
+ ];
58
+ const parameterNames = [
59
+ "supplyCap",
60
+ "maxUtilizationRate",
61
+ "protocolSpread",
62
+ "minBorrow"
63
+ ];
64
+ return (tx) => tx.moveCall({
65
+ package: packageAddress,
66
+ module: "protocol_config",
67
+ function: "new_margin_pool_config",
68
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
69
+ });
70
+ }
71
+ function newMarginPoolConfigWithRateLimit(options) {
72
+ const packageAddress = options.package ?? "@deepbook/margin";
73
+ const argumentsTypes = [
74
+ "u64",
75
+ "u64",
76
+ "u64",
77
+ "u64",
78
+ "u64",
79
+ "u64",
80
+ "bool"
81
+ ];
82
+ const parameterNames = [
83
+ "supplyCap",
84
+ "maxUtilizationRate",
85
+ "protocolSpread",
86
+ "minBorrow",
87
+ "rateLimitCapacity",
88
+ "rateLimitRefillRatePerMs",
89
+ "rateLimitEnabled"
90
+ ];
91
+ return (tx) => tx.moveCall({
92
+ package: packageAddress,
93
+ module: "protocol_config",
94
+ function: "new_margin_pool_config_with_rate_limit",
95
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
96
+ });
97
+ }
98
+ function newInterestConfig(options) {
99
+ const packageAddress = options.package ?? "@deepbook/margin";
100
+ const argumentsTypes = [
101
+ "u64",
102
+ "u64",
103
+ "u64",
104
+ "u64"
105
+ ];
106
+ const parameterNames = [
107
+ "baseRate",
108
+ "baseSlope",
109
+ "optimalUtilization",
110
+ "excessSlope"
111
+ ];
112
+ return (tx) => tx.moveCall({
113
+ package: packageAddress,
114
+ module: "protocol_config",
115
+ function: "new_interest_config",
116
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
117
+ });
118
+ }
119
+
120
+ //#endregion
121
+ export { InterestConfig, MarginPoolConfig, ProtocolConfig, newInterestConfig, newMarginPoolConfig, newMarginPoolConfigWithRateLimit, newProtocolConfig };
122
+ //# sourceMappingURL=protocol_config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol_config.mjs","names":["vec_map.VecMap"],"sources":["../../../src/contracts/deepbook_margin/protocol_config.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nimport * as vec_map from './deps/sui/vec_map.js';\nconst $moduleName = '@deepbook/margin::protocol_config';\nexport const MarginPoolConfig = new MoveStruct({\n\tname: `${$moduleName}::MarginPoolConfig`,\n\tfields: {\n\t\tsupply_cap: bcs.u64(),\n\t\tmax_utilization_rate: bcs.u64(),\n\t\tprotocol_spread: bcs.u64(),\n\t\tmin_borrow: bcs.u64(),\n\t\trate_limit_capacity: bcs.u64(),\n\t\trate_limit_refill_rate_per_ms: bcs.u64(),\n\t\trate_limit_enabled: bcs.bool(),\n\t},\n});\nexport const InterestConfig = new MoveStruct({\n\tname: `${$moduleName}::InterestConfig`,\n\tfields: {\n\t\tbase_rate: bcs.u64(),\n\t\tbase_slope: bcs.u64(),\n\t\toptimal_utilization: bcs.u64(),\n\t\texcess_slope: bcs.u64(),\n\t},\n});\nexport const ProtocolConfig = new MoveStruct({\n\tname: `${$moduleName}::ProtocolConfig`,\n\tfields: {\n\t\tmargin_pool_config: MarginPoolConfig,\n\t\tinterest_config: InterestConfig,\n\t\textra_fields: vec_map.VecMap(bcs.string(), bcs.u64()),\n\t},\n});\nexport interface NewProtocolConfigArguments {\n\tmarginPoolConfig: TransactionArgument;\n\tinterestConfig: TransactionArgument;\n}\nexport interface NewProtocolConfigOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewProtocolConfigArguments\n\t\t| [marginPoolConfig: TransactionArgument, interestConfig: TransactionArgument];\n}\nexport function newProtocolConfig(options: NewProtocolConfigOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['marginPoolConfig', 'interestConfig'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_config',\n\t\t\tfunction: 'new_protocol_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NewMarginPoolConfigArguments {\n\tsupplyCap: RawTransactionArgument<number | bigint>;\n\tmaxUtilizationRate: RawTransactionArgument<number | bigint>;\n\tprotocolSpread: RawTransactionArgument<number | bigint>;\n\tminBorrow: RawTransactionArgument<number | bigint>;\n}\nexport interface NewMarginPoolConfigOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewMarginPoolConfigArguments\n\t\t| [\n\t\t\t\tsupplyCap: RawTransactionArgument<number | bigint>,\n\t\t\t\tmaxUtilizationRate: RawTransactionArgument<number | bigint>,\n\t\t\t\tprotocolSpread: RawTransactionArgument<number | bigint>,\n\t\t\t\tminBorrow: RawTransactionArgument<number | bigint>,\n\t\t ];\n}\nexport function newMarginPoolConfig(options: NewMarginPoolConfigOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = ['u64', 'u64', 'u64', 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['supplyCap', 'maxUtilizationRate', 'protocolSpread', 'minBorrow'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_config',\n\t\t\tfunction: 'new_margin_pool_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NewMarginPoolConfigWithRateLimitArguments {\n\tsupplyCap: RawTransactionArgument<number | bigint>;\n\tmaxUtilizationRate: RawTransactionArgument<number | bigint>;\n\tprotocolSpread: RawTransactionArgument<number | bigint>;\n\tminBorrow: RawTransactionArgument<number | bigint>;\n\trateLimitCapacity: RawTransactionArgument<number | bigint>;\n\trateLimitRefillRatePerMs: RawTransactionArgument<number | bigint>;\n\trateLimitEnabled: RawTransactionArgument<boolean>;\n}\nexport interface NewMarginPoolConfigWithRateLimitOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewMarginPoolConfigWithRateLimitArguments\n\t\t| [\n\t\t\t\tsupplyCap: RawTransactionArgument<number | bigint>,\n\t\t\t\tmaxUtilizationRate: RawTransactionArgument<number | bigint>,\n\t\t\t\tprotocolSpread: RawTransactionArgument<number | bigint>,\n\t\t\t\tminBorrow: RawTransactionArgument<number | bigint>,\n\t\t\t\trateLimitCapacity: RawTransactionArgument<number | bigint>,\n\t\t\t\trateLimitRefillRatePerMs: RawTransactionArgument<number | bigint>,\n\t\t\t\trateLimitEnabled: RawTransactionArgument<boolean>,\n\t\t ];\n}\nexport function newMarginPoolConfigWithRateLimit(options: NewMarginPoolConfigWithRateLimitOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = ['u64', 'u64', 'u64', 'u64', 'u64', 'u64', 'bool'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = [\n\t\t'supplyCap',\n\t\t'maxUtilizationRate',\n\t\t'protocolSpread',\n\t\t'minBorrow',\n\t\t'rateLimitCapacity',\n\t\t'rateLimitRefillRatePerMs',\n\t\t'rateLimitEnabled',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_config',\n\t\t\tfunction: 'new_margin_pool_config_with_rate_limit',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NewInterestConfigArguments {\n\tbaseRate: RawTransactionArgument<number | bigint>;\n\tbaseSlope: RawTransactionArgument<number | bigint>;\n\toptimalUtilization: RawTransactionArgument<number | bigint>;\n\texcessSlope: RawTransactionArgument<number | bigint>;\n}\nexport interface NewInterestConfigOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewInterestConfigArguments\n\t\t| [\n\t\t\t\tbaseRate: RawTransactionArgument<number | bigint>,\n\t\t\t\tbaseSlope: RawTransactionArgument<number | bigint>,\n\t\t\t\toptimalUtilization: RawTransactionArgument<number | bigint>,\n\t\t\t\texcessSlope: RawTransactionArgument<number | bigint>,\n\t\t ];\n}\nexport function newInterestConfig(options: NewInterestConfigOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = ['u64', 'u64', 'u64', 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['baseRate', 'baseSlope', 'optimalUtilization', 'excessSlope'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_config',\n\t\t\tfunction: 'new_interest_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;AAOA,MAAM,cAAc;AACpB,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,YAAY,IAAI,KAAK;EACrB,sBAAsB,IAAI,KAAK;EAC/B,iBAAiB,IAAI,KAAK;EAC1B,YAAY,IAAI,KAAK;EACrB,qBAAqB,IAAI,KAAK;EAC9B,+BAA+B,IAAI,KAAK;EACxC,oBAAoB,IAAI,MAAM;EAC9B;CACD,CAAC;AACF,MAAa,iBAAiB,IAAI,WAAW;CAC5C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,WAAW,IAAI,KAAK;EACpB,YAAY,IAAI,KAAK;EACrB,qBAAqB,IAAI,KAAK;EAC9B,cAAc,IAAI,KAAK;EACvB;CACD,CAAC;AACF,MAAa,iBAAiB,IAAI,WAAW;CAC5C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,oBAAoB;EACpB,iBAAiB;EACjB,cAAcA,OAAe,IAAI,QAAQ,EAAE,IAAI,KAAK,CAAC;EACrD;CACD,CAAC;AAWF,SAAgB,kBAAkB,SAAmC;CACpE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB,CAAC,MAAM,KAAK;CACnC,MAAM,iBAAiB,CAAC,oBAAoB,iBAAiB;AAC7D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;AAmBJ,SAAgB,oBAAoB,SAAqC;CACxE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAO;EAAO;EAAO;EAAM;CACnD,MAAM,iBAAiB;EAAC;EAAa;EAAsB;EAAkB;EAAY;AACzF,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;AAyBJ,SAAgB,iCAAiC,SAAkD;CAClG,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;CAIzE,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;AAmBJ,SAAgB,kBAAkB,SAAmC;CACpE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAO;EAAO;EAAO;EAAM;CACnD,MAAM,iBAAiB;EAAC;EAAY;EAAa;EAAsB;EAAc;AACrF,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { MoveStruct } from "../utils/index.mjs";
2
+ import { Table } from "./deps/sui/table.mjs";
3
+ import { VecMap } from "./deps/sui/vec_map.mjs";
4
+ import { bcs } from "@mysten/sui/bcs";
5
+
6
+ //#region src/contracts/deepbook_margin/protocol_fees.ts
7
+ /**************************************************************
8
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
9
+ **************************************************************/
10
+ const $moduleName = "@deepbook/margin::protocol_fees";
11
+ const ProtocolFees = new MoveStruct({
12
+ name: `${$moduleName}::ProtocolFees`,
13
+ fields: {
14
+ referrals: Table,
15
+ total_shares: bcs.u64(),
16
+ fees_per_share: bcs.u64(),
17
+ maintainer_fees: bcs.u64(),
18
+ protocol_fees: bcs.u64(),
19
+ extra_fields: VecMap(bcs.string(), bcs.u64())
20
+ }
21
+ });
22
+ const ReferralTracker = new MoveStruct({
23
+ name: `${$moduleName}::ReferralTracker`,
24
+ fields: {
25
+ current_shares: bcs.u64(),
26
+ last_fees_per_share: bcs.u64(),
27
+ unclaimed_fees: bcs.u64()
28
+ }
29
+ });
30
+ const SupplyReferral = new MoveStruct({
31
+ name: `${$moduleName}::SupplyReferral`,
32
+ fields: {
33
+ id: bcs.Address,
34
+ owner: bcs.Address
35
+ }
36
+ });
37
+ const ProtocolFeesIncreasedEvent = new MoveStruct({
38
+ name: `${$moduleName}::ProtocolFeesIncreasedEvent`,
39
+ fields: {
40
+ margin_pool_id: bcs.Address,
41
+ total_shares: bcs.u64(),
42
+ referral_fees: bcs.u64(),
43
+ maintainer_fees: bcs.u64(),
44
+ protocol_fees: bcs.u64()
45
+ }
46
+ });
47
+ const ReferralFeesClaimedEvent = new MoveStruct({
48
+ name: `${$moduleName}::ReferralFeesClaimedEvent`,
49
+ fields: {
50
+ referral_id: bcs.Address,
51
+ owner: bcs.Address,
52
+ fees: bcs.u64()
53
+ }
54
+ });
55
+
56
+ //#endregion
57
+ export { ProtocolFees };
58
+ //# sourceMappingURL=protocol_fees.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol_fees.mjs","names":["table.Table","vec_map.VecMap"],"sources":["../../../src/contracts/deepbook_margin/protocol_fees.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nimport * as table from './deps/sui/table.js';\nimport * as vec_map from './deps/sui/vec_map.js';\nconst $moduleName = '@deepbook/margin::protocol_fees';\nexport const ProtocolFees = new MoveStruct({\n\tname: `${$moduleName}::ProtocolFees`,\n\tfields: {\n\t\treferrals: table.Table,\n\t\ttotal_shares: bcs.u64(),\n\t\tfees_per_share: bcs.u64(),\n\t\tmaintainer_fees: bcs.u64(),\n\t\tprotocol_fees: bcs.u64(),\n\t\textra_fields: vec_map.VecMap(bcs.string(), bcs.u64()),\n\t},\n});\nexport const ReferralTracker = new MoveStruct({\n\tname: `${$moduleName}::ReferralTracker`,\n\tfields: {\n\t\tcurrent_shares: bcs.u64(),\n\t\tlast_fees_per_share: bcs.u64(),\n\t\tunclaimed_fees: bcs.u64(),\n\t},\n});\nexport const SupplyReferral = new MoveStruct({\n\tname: `${$moduleName}::SupplyReferral`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\towner: bcs.Address,\n\t},\n});\nexport const ProtocolFeesIncreasedEvent = new MoveStruct({\n\tname: `${$moduleName}::ProtocolFeesIncreasedEvent`,\n\tfields: {\n\t\tmargin_pool_id: bcs.Address,\n\t\ttotal_shares: bcs.u64(),\n\t\treferral_fees: bcs.u64(),\n\t\tmaintainer_fees: bcs.u64(),\n\t\tprotocol_fees: bcs.u64(),\n\t},\n});\nexport const ReferralFeesClaimedEvent = new MoveStruct({\n\tname: `${$moduleName}::ReferralFeesClaimedEvent`,\n\tfields: {\n\t\treferral_id: bcs.Address,\n\t\towner: bcs.Address,\n\t\tfees: bcs.u64(),\n\t},\n});\nexport interface MaintainerFeesArguments {\n\tself: TransactionArgument;\n}\nexport interface MaintainerFeesOptions {\n\tpackage?: string;\n\targuments: MaintainerFeesArguments | [self: TransactionArgument];\n}\n/** Get the maintainer fees. */\nexport function maintainerFees(options: MaintainerFeesOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_fees',\n\t\t\tfunction: 'maintainer_fees',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ProtocolFeesArguments {\n\tself: TransactionArgument;\n}\nexport interface ProtocolFeesOptions {\n\tpackage?: string;\n\targuments: ProtocolFeesArguments | [self: TransactionArgument];\n}\n/** Get the protocol fees. */\nexport function protocolFees(options: ProtocolFeesOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_fees',\n\t\t\tfunction: 'protocol_fees',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ReferralTrackerArguments {\n\tself: TransactionArgument;\n\treferral: RawTransactionArgument<string>;\n}\nexport interface ReferralTrackerOptions {\n\tpackage?: string;\n\targuments:\n\t\t| ReferralTrackerArguments\n\t\t| [self: TransactionArgument, referral: RawTransactionArgument<string>];\n}\nexport function referralTracker(options: ReferralTrackerOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null, '0x2::object::ID'] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'referral'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_fees',\n\t\t\tfunction: 'referral_tracker',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TotalSharesArguments {\n\tself: TransactionArgument;\n}\nexport interface TotalSharesOptions {\n\tpackage?: string;\n\targuments: TotalSharesArguments | [self: TransactionArgument];\n}\nexport function totalShares(options: TotalSharesOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_fees',\n\t\t\tfunction: 'total_shares',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface FeesPerShareArguments {\n\tself: TransactionArgument;\n}\nexport interface FeesPerShareOptions {\n\tpackage?: string;\n\targuments: FeesPerShareArguments | [self: TransactionArgument];\n}\nexport function feesPerShare(options: FeesPerShareOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'protocol_fees',\n\t\t\tfunction: 'fees_per_share',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;AAQA,MAAM,cAAc;AACpB,MAAa,eAAe,IAAI,WAAW;CAC1C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,WAAWA;EACX,cAAc,IAAI,KAAK;EACvB,gBAAgB,IAAI,KAAK;EACzB,iBAAiB,IAAI,KAAK;EAC1B,eAAe,IAAI,KAAK;EACxB,cAAcC,OAAe,IAAI,QAAQ,EAAE,IAAI,KAAK,CAAC;EACrD;CACD,CAAC;AACF,MAAa,kBAAkB,IAAI,WAAW;CAC7C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,gBAAgB,IAAI,KAAK;EACzB,qBAAqB,IAAI,KAAK;EAC9B,gBAAgB,IAAI,KAAK;EACzB;CACD,CAAC;AACF,MAAa,iBAAiB,IAAI,WAAW;CAC5C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EACR,OAAO,IAAI;EACX;CACD,CAAC;AACF,MAAa,6BAA6B,IAAI,WAAW;CACxD,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,gBAAgB,IAAI;EACpB,cAAc,IAAI,KAAK;EACvB,eAAe,IAAI,KAAK;EACxB,iBAAiB,IAAI,KAAK;EAC1B,eAAe,IAAI,KAAK;EACxB;CACD,CAAC;AACF,MAAa,2BAA2B,IAAI,WAAW;CACtD,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,MAAM,IAAI,KAAK;EACf;CACD,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { MoveStruct } from "../utils/index.mjs";
2
+ import { bcs } from "@mysten/sui/bcs";
3
+
4
+ //#region src/contracts/deepbook_margin/rate_limiter.ts
5
+ /**************************************************************
6
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
7
+ **************************************************************/
8
+ /**
9
+ * Token Bucket rate limiter for controlling withdrawal rates. Reference:
10
+ * https://github.com/code-423n4/2024-11-chainlink/blob/main/contracts/src/ccip/libraries/RateLimiter.sol
11
+ */
12
+ const $moduleName = "@deepbook/margin::rate_limiter";
13
+ const RateLimiter = new MoveStruct({
14
+ name: `${$moduleName}::RateLimiter`,
15
+ fields: {
16
+ available: bcs.u64(),
17
+ last_updated_ms: bcs.u64(),
18
+ capacity: bcs.u64(),
19
+ refill_rate_per_ms: bcs.u64(),
20
+ enabled: bcs.bool()
21
+ }
22
+ });
23
+
24
+ //#endregion
25
+ export { RateLimiter };
26
+ //# sourceMappingURL=rate_limiter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate_limiter.mjs","names":[],"sources":["../../../src/contracts/deepbook_margin/rate_limiter.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Token Bucket rate limiter for controlling withdrawal rates. Reference:\n * https://github.com/code-423n4/2024-11-chainlink/blob/main/contracts/src/ccip/libraries/RateLimiter.sol\n */\n\nimport { MoveStruct, normalizeMoveArguments } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nconst $moduleName = '@deepbook/margin::rate_limiter';\nexport const RateLimiter = new MoveStruct({\n\tname: `${$moduleName}::RateLimiter`,\n\tfields: {\n\t\tavailable: bcs.u64(),\n\t\tlast_updated_ms: bcs.u64(),\n\t\tcapacity: bcs.u64(),\n\t\trefill_rate_per_ms: bcs.u64(),\n\t\tenabled: bcs.bool(),\n\t},\n});\nexport interface IsEnabledArguments {\n\tself: TransactionArgument;\n}\nexport interface IsEnabledOptions {\n\tpackage?: string;\n\targuments: IsEnabledArguments | [self: TransactionArgument];\n}\nexport function isEnabled(options: IsEnabledOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'rate_limiter',\n\t\t\tfunction: 'is_enabled',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CapacityArguments {\n\tself: TransactionArgument;\n}\nexport interface CapacityOptions {\n\tpackage?: string;\n\targuments: CapacityArguments | [self: TransactionArgument];\n}\nexport function capacity(options: CapacityOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'rate_limiter',\n\t\t\tfunction: 'capacity',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RefillRatePerMsArguments {\n\tself: TransactionArgument;\n}\nexport interface RefillRatePerMsOptions {\n\tpackage?: string;\n\targuments: RefillRatePerMsArguments | [self: TransactionArgument];\n}\nexport function refillRatePerMs(options: RefillRatePerMsOptions) {\n\tconst packageAddress = options.package ?? '@deepbook/margin';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'rate_limiter',\n\t\t\tfunction: 'refill_rate_per_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,cAAc;AACpB,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,WAAW,IAAI,KAAK;EACpB,iBAAiB,IAAI,KAAK;EAC1B,UAAU,IAAI,KAAK;EACnB,oBAAoB,IAAI,KAAK;EAC7B,SAAS,IAAI,MAAM;EACnB;CACD,CAAC"}
@@ -0,0 +1,171 @@
1
+ import { MoveStruct, normalizeMoveArguments } from "../utils/index.mjs";
2
+ import { bcs } from "@mysten/sui/bcs";
3
+
4
+ //#region src/contracts/deepbook_margin/tpsl.ts
5
+ /**************************************************************
6
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
7
+ **************************************************************/
8
+ const $moduleName = "@deepbook/margin::tpsl";
9
+ const Condition = new MoveStruct({
10
+ name: `${$moduleName}::Condition`,
11
+ fields: {
12
+ trigger_below_price: bcs.bool(),
13
+ trigger_price: bcs.u64()
14
+ }
15
+ });
16
+ const PendingOrder = new MoveStruct({
17
+ name: `${$moduleName}::PendingOrder`,
18
+ fields: {
19
+ is_limit_order: bcs.bool(),
20
+ client_order_id: bcs.u64(),
21
+ order_type: bcs.option(bcs.u8()),
22
+ self_matching_option: bcs.u8(),
23
+ price: bcs.option(bcs.u64()),
24
+ quantity: bcs.u64(),
25
+ is_bid: bcs.bool(),
26
+ pay_with_deep: bcs.bool(),
27
+ expire_timestamp: bcs.option(bcs.u64())
28
+ }
29
+ });
30
+ const ConditionalOrder = new MoveStruct({
31
+ name: `${$moduleName}::ConditionalOrder`,
32
+ fields: {
33
+ conditional_order_id: bcs.u64(),
34
+ condition: Condition,
35
+ pending_order: PendingOrder
36
+ }
37
+ });
38
+ const TakeProfitStopLoss = new MoveStruct({
39
+ name: `${$moduleName}::TakeProfitStopLoss`,
40
+ fields: {
41
+ trigger_below: bcs.vector(ConditionalOrder),
42
+ trigger_above: bcs.vector(ConditionalOrder)
43
+ }
44
+ });
45
+ const ConditionalOrderAdded = new MoveStruct({
46
+ name: `${$moduleName}::ConditionalOrderAdded`,
47
+ fields: {
48
+ manager_id: bcs.Address,
49
+ conditional_order_id: bcs.u64(),
50
+ conditional_order: ConditionalOrder,
51
+ timestamp: bcs.u64()
52
+ }
53
+ });
54
+ const ConditionalOrderCancelled = new MoveStruct({
55
+ name: `${$moduleName}::ConditionalOrderCancelled`,
56
+ fields: {
57
+ manager_id: bcs.Address,
58
+ conditional_order_id: bcs.u64(),
59
+ conditional_order: ConditionalOrder,
60
+ timestamp: bcs.u64()
61
+ }
62
+ });
63
+ const ConditionalOrderExecuted = new MoveStruct({
64
+ name: `${$moduleName}::ConditionalOrderExecuted`,
65
+ fields: {
66
+ manager_id: bcs.Address,
67
+ pool_id: bcs.Address,
68
+ conditional_order_id: bcs.u64(),
69
+ conditional_order: ConditionalOrder,
70
+ timestamp: bcs.u64()
71
+ }
72
+ });
73
+ const ConditionalOrderInsufficientFunds = new MoveStruct({
74
+ name: `${$moduleName}::ConditionalOrderInsufficientFunds`,
75
+ fields: {
76
+ manager_id: bcs.Address,
77
+ conditional_order_id: bcs.u64(),
78
+ conditional_order: ConditionalOrder,
79
+ timestamp: bcs.u64()
80
+ }
81
+ });
82
+ const ConditionalOrderPriceOutOfBounds = new MoveStruct({
83
+ name: `${$moduleName}::ConditionalOrderPriceOutOfBounds`,
84
+ fields: {
85
+ manager_id: bcs.Address,
86
+ conditional_order_id: bcs.u64(),
87
+ conditional_order: ConditionalOrder,
88
+ timestamp: bcs.u64()
89
+ }
90
+ });
91
+ const ConditionalOrderBelowLiquidation = new MoveStruct({
92
+ name: `${$moduleName}::ConditionalOrderBelowLiquidation`,
93
+ fields: {
94
+ manager_id: bcs.Address,
95
+ conditional_order_id: bcs.u64(),
96
+ conditional_order: ConditionalOrder,
97
+ timestamp: bcs.u64()
98
+ }
99
+ });
100
+ function newCondition(options) {
101
+ const packageAddress = options.package ?? "@deepbook/margin";
102
+ const argumentsTypes = ["bool", "u64"];
103
+ const parameterNames = ["triggerBelowPrice", "triggerPrice"];
104
+ return (tx) => tx.moveCall({
105
+ package: packageAddress,
106
+ module: "tpsl",
107
+ function: "new_condition",
108
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
109
+ });
110
+ }
111
+ /**
112
+ * Creates a new pending limit order. Order type must be no restriction or
113
+ * immediate or cancel.
114
+ */
115
+ function newPendingLimitOrder(options) {
116
+ const packageAddress = options.package ?? "@deepbook/margin";
117
+ const argumentsTypes = [
118
+ "u64",
119
+ "u8",
120
+ "u8",
121
+ "u64",
122
+ "u64",
123
+ "bool",
124
+ "bool",
125
+ "u64"
126
+ ];
127
+ const parameterNames = [
128
+ "clientOrderId",
129
+ "orderType",
130
+ "selfMatchingOption",
131
+ "price",
132
+ "quantity",
133
+ "isBid",
134
+ "payWithDeep",
135
+ "expireTimestamp"
136
+ ];
137
+ return (tx) => tx.moveCall({
138
+ package: packageAddress,
139
+ module: "tpsl",
140
+ function: "new_pending_limit_order",
141
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
142
+ });
143
+ }
144
+ /** Creates a new pending market order. */
145
+ function newPendingMarketOrder(options) {
146
+ const packageAddress = options.package ?? "@deepbook/margin";
147
+ const argumentsTypes = [
148
+ "u64",
149
+ "u8",
150
+ "u64",
151
+ "bool",
152
+ "bool"
153
+ ];
154
+ const parameterNames = [
155
+ "clientOrderId",
156
+ "selfMatchingOption",
157
+ "quantity",
158
+ "isBid",
159
+ "payWithDeep"
160
+ ];
161
+ return (tx) => tx.moveCall({
162
+ package: packageAddress,
163
+ module: "tpsl",
164
+ function: "new_pending_market_order",
165
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
166
+ });
167
+ }
168
+
169
+ //#endregion
170
+ export { TakeProfitStopLoss, newCondition, newPendingLimitOrder, newPendingMarketOrder };
171
+ //# sourceMappingURL=tpsl.mjs.map