@mysten/deepbook-v3 2.1.4 → 2.3.0
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.
- package/CHANGELOG.md +43 -0
- package/PREDICT.md +17 -5
- package/dist/account.d.mts.map +1 -1
- package/dist/account.mjs +3 -1
- package/dist/account.mjs.map +1 -1
- package/dist/client.d.mts +2 -2
- package/dist/contracts/account/account_events.d.mts +20 -20
- package/dist/contracts/deepbook/account.d.mts +18 -18
- package/dist/contracts/deepbook/balances.d.mts +4 -4
- package/dist/contracts/deepbook/order.d.mts +12 -12
- package/dist/contracts/deepbook_predict/deps/sui/vec_map.mjs +37 -0
- package/dist/contracts/deepbook_predict/deps/sui/vec_map.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/expiry_cash.mjs +1 -1
- package/dist/contracts/deepbook_predict/expiry_cash.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/expiry_market.mjs +15 -6
- package/dist/contracts/deepbook_predict/expiry_market.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/market_manager.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/order_events.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/plp.mjs +53 -31
- package/dist/contracts/deepbook_predict/plp.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/pool_accounting.mjs +7 -7
- package/dist/contracts/deepbook_predict/pool_accounting.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/predict_account.mjs +1 -1
- package/dist/contracts/deepbook_predict/predict_account.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/pricing.mjs +13 -1
- package/dist/contracts/deepbook_predict/pricing.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/registry.mjs +2 -1
- package/dist/contracts/deepbook_predict/registry.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/strike_exposure.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/strike_payout_tree.mjs +13 -1
- package/dist/contracts/deepbook_predict/strike_payout_tree.mjs.map +1 -1
- package/dist/contracts/deepbook_predict/vault_events.mjs +19 -7
- package/dist/contracts/deepbook_predict/vault_events.mjs.map +1 -1
- package/dist/contracts/deepbook_sessions/session_config.d.mts +8 -8
- package/dist/contracts/deepbook_sessions/session_config.d.mts.map +1 -1
- package/dist/contracts/deepbook_sessions/sessions.d.mts +22 -22
- package/dist/contracts/deepbook_sessions/sessions.d.mts.map +1 -1
- package/dist/deployments/index.d.mts +3 -2
- package/dist/deployments/index.d.mts.map +1 -1
- package/dist/deployments/index.mjs +4 -1
- package/dist/deployments/index.mjs.map +1 -1
- package/dist/deployments/mainnet.d.mts +14 -0
- package/dist/deployments/mainnet.d.mts.map +1 -0
- package/dist/deployments/mainnet.mjs +73 -0
- package/dist/deployments/mainnet.mjs.map +1 -0
- package/dist/deployments/testnet.mjs +23 -23
- package/dist/deployments/testnet.mjs.map +1 -1
- package/dist/deployments/types.d.mts +1 -1
- package/dist/predict/client.d.mts +25 -4
- package/dist/predict/client.d.mts.map +1 -1
- package/dist/predict/client.mjs +4 -4
- package/dist/predict/client.mjs.map +1 -1
- package/dist/predict/config/index.d.mts +2 -0
- package/dist/predict/config/index.d.mts.map +1 -1
- package/dist/predict/config/index.mjs +4 -1
- package/dist/predict/config/index.mjs.map +1 -1
- package/dist/predict/config/mainnet.d.mts +17 -0
- package/dist/predict/config/mainnet.d.mts.map +1 -0
- package/dist/predict/config/mainnet.mjs +26 -0
- package/dist/predict/config/mainnet.mjs.map +1 -0
- package/dist/predict/config/types.d.mts +6 -0
- package/dist/predict/config/types.d.mts.map +1 -1
- package/dist/predict/index.d.mts +4 -2
- package/dist/predict/index.mjs +3 -1
- package/dist/predict/pricing.d.mts +6 -6
- package/dist/predict/pricing.d.mts.map +1 -1
- package/dist/predict/pricing.mjs +6 -6
- package/dist/predict/pricing.mjs.map +1 -1
- package/dist/predict/reads/balances.mjs.map +1 -1
- package/dist/predict/reads/markets.mjs +1 -1
- package/dist/predict/reads/markets.mjs.map +1 -1
- package/dist/predict/reads/pricing.d.mts +2 -1
- package/dist/predict/reads/pricing.d.mts.map +1 -1
- package/dist/predict/reads/pricing.mjs.map +1 -1
- package/dist/sessions.d.mts.map +1 -1
- package/dist/sessions.mjs +3 -1
- package/dist/sessions.mjs.map +1 -1
- package/dist/transactions/balanceManager.d.mts +12 -12
- package/dist/transactions/balanceManager.d.mts.map +1 -1
- package/dist/transactions/deepbook.d.mts +20 -20
- package/dist/transactions/deepbook.d.mts.map +1 -1
- package/dist/transactions/deepbookAdmin.d.mts +4 -4
- package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
- package/dist/transactions/marginAdmin.d.mts +7 -7
- package/dist/transactions/marginLiquidations.d.mts +3 -3
- package/dist/transactions/marginMaintainer.d.mts +5 -5
- package/dist/transactions/marginManager.d.mts +32 -32
- package/dist/transactions/marginPool.d.mts +18 -18
- package/dist/transactions/marginPool.d.mts.map +1 -1
- package/dist/transactions/marginRegistry.d.mts +16 -16
- package/dist/transactions/marginTPSL.d.mts +10 -10
- package/dist/transactions/poolProxy.d.mts +8 -8
- package/package.json +3 -3
- package/src/account.ts +3 -1
- package/src/contracts/deepbook_predict/builder_code.ts +3 -3
- package/src/contracts/deepbook_predict/config_events.ts +9 -2
- package/src/contracts/deepbook_predict/deps/sui/vec_map.ts +33 -0
- package/src/contracts/deepbook_predict/expiry_cash.ts +1 -1
- package/src/contracts/deepbook_predict/expiry_market.ts +70 -11
- package/src/contracts/deepbook_predict/market_lifecycle_cap.ts +3 -10
- package/src/contracts/deepbook_predict/market_manager.ts +2 -2
- package/src/contracts/deepbook_predict/order_events.ts +6 -6
- package/src/contracts/deepbook_predict/plp.ts +263 -81
- package/src/contracts/deepbook_predict/pool_accounting.ts +14 -14
- package/src/contracts/deepbook_predict/pool_valuation_cap.ts +69 -0
- package/src/contracts/deepbook_predict/predict_account.ts +1 -1
- package/src/contracts/deepbook_predict/pricing.ts +16 -4
- package/src/contracts/deepbook_predict/protocol_config.ts +202 -7
- package/src/contracts/deepbook_predict/registry.ts +91 -17
- package/src/contracts/deepbook_predict/strike_exposure.ts +1 -1
- package/src/contracts/deepbook_predict/strike_payout_tree.ts +27 -0
- package/src/contracts/deepbook_predict/vault_events.ts +45 -14
- package/src/contracts/propbook/block_scholes_store.ts +8 -42
- package/src/deployments/index.ts +13 -3
- package/src/deployments/mainnet.ts +107 -0
- package/src/deployments/testnet.ts +25 -25
- package/src/deployments/types.ts +1 -1
- package/src/predict/client.ts +45 -15
- package/src/predict/config/index.ts +7 -2
- package/src/predict/config/mainnet.ts +27 -0
- package/src/predict/config/types.ts +7 -1
- package/src/predict/index.ts +5 -0
- package/src/predict/pricing.ts +11 -9
- package/src/predict/reads/balances.ts +1 -1
- package/src/predict/reads/markets.ts +1 -1
- package/src/predict/reads/pricing.ts +2 -1
- package/src/sessions.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expiry_market.mjs","names":["expiry_cash.ExpiryCash","balance.Balance","strike_exposure.StrikeExposure","ewma.EwmaState"],"sources":["../../../src/contracts/deepbook_predict/expiry_market.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Per-expiry Predict market.\n *\n * An ExpiryMarket is the hot shared object for one expiry. It owns trade\n * execution, strike exposure state, and an embedded expiry-cash custody component,\n * plus local sponsor-funded fee incentives. Live oracle validation is delegated to\n * `pricing::load_live_pricer`; this module owns market flow policy and then passes\n * loaded `Pricer` snapshots into exposure business logic. Pool-wide PLP accounting\n * and profit accounting remain outside this module.\n */\n\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n\ttype ConfigValue,\n} from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U64 } from '../../bcs/integers.js';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nimport * as expiry_cash from './expiry_cash.js';\nimport * as balance from './deps/sui/balance.js';\nimport * as strike_exposure from './strike_exposure.js';\nimport * as ewma from './ewma.js';\nconst $moduleName = '@local-pkg/deepbook_predict::expiry_market';\nexport const ExpiryMarket = new MoveStruct({\n\tname: `${$moduleName}::ExpiryMarket`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\t/** Propbook underlying this market was created for. */\n\t\tpropbook_underlying_id: bcs.u32(),\n\t\texpiry: U64,\n\t\t/** DUSDC custody and payout backing. */\n\t\tcash: expiry_cash.ExpiryCash,\n\t\t/** Sponsor-funded DUSDC available to subsidize this market's taker fees. */\n\t\tfee_incentive_balance: balance.Balance,\n\t\t/** Exposure lifecycle state for this expiry's strike ticks. */\n\t\tstrike_exposure: strike_exposure.StrikeExposure,\n\t\t/** Smoothed gas-price stats backing the congestion trade penalty. */\n\t\tewma: ewma.EwmaState,\n\t\t/**\n\t\t * When true, new mints on this expiry abort. Other flows stay available. Admin\n\t\t * sets/unsets it (version-gated); a `PauseCap` holder can force it true one-way\n\t\t * through the registry (ungated kill switch).\n\t\t */\n\t\tmint_paused: bcs.bool(),\n\t},\n});\nexport const MintQuote = new MoveStruct({\n\tname: `${$moduleName}::MintQuote`,\n\tfields: {\n\t\tquantity: U64,\n\t\tentry_probability: U64,\n\t\tpremium: U64,\n\t\ttrading_fee: U64,\n\t\tfee_incentive_subsidy: U64,\n\t\tbuilder_fee: U64,\n\t\tpenalty_fee: U64,\n\t\tinventory_impact_charge: U64,\n\t\tall_in_cost: U64,\n\t},\n});\nexport interface IdArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface IdOptions {\n\tpackage?: string;\n\targuments: IdArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the market object ID for external discovery and PTB construction. */\nexport function id(options: IdOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'id',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PropbookUnderlyingIdArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface PropbookUnderlyingIdOptions {\n\tpackage?: string;\n\targuments: PropbookUnderlyingIdArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the Propbook underlying for SDK and devInspect market reads. */\nexport function propbookUnderlyingId(options: PropbookUnderlyingIdOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'propbook_underlying_id',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryOptions {\n\tpackage?: string;\n\targuments: ExpiryArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the expiry timestamp for SDK and devInspect market reads. */\nexport function expiry(options: ExpiryOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SettlementPriceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface SettlementPriceOptions {\n\tpackage?: string;\n\targuments: SettlementPriceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the recorded settlement price. Aborts if the market is not settled. */\nexport function settlementPrice(options: SettlementPriceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'settlement_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsSettledArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface IsSettledOptions {\n\tpackage?: string;\n\targuments: IsSettledArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return whether terminal settlement has been recorded for this market. Public\n * read for SDK/devInspect settlement-state checks.\n */\nexport function isSettled(options: IsSettledOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'is_settled',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TrySettlementPriceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface TrySettlementPriceOptions {\n\tpackage?: string;\n\targuments: TrySettlementPriceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the recorded settlement price, or `none` while the market is live.\n * Non-aborting companion to `settlement_price` for SDK/devInspect reads.\n */\nexport function trySettlementPrice(options: TrySettlementPriceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'try_settlement_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CashBalanceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface CashBalanceOptions {\n\tpackage?: string;\n\targuments: CashBalanceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return expiry DUSDC custody for SDK and devInspect state reads. */\nexport function cashBalance(options: CashBalanceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'cash_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactReserveArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactReserveOptions {\n\tpackage?: string;\n\targuments: InventoryImpactReserveArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the isolated inventory-impact escrow for SDK and devInspect state reads. */\nexport function inventoryImpactReserve(options: InventoryImpactReserveOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_reserve',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface FeeIncentiveBalanceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface FeeIncentiveBalanceOptions {\n\tpackage?: string;\n\targuments: FeeIncentiveBalanceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return local fee incentives for SDK and devInspect state reads. */\nexport function feeIncentiveBalance(options: FeeIncentiveBalanceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'fee_incentive_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BackingBufferLambdaArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface BackingBufferLambdaOptions {\n\tpackage?: string;\n\targuments: BackingBufferLambdaArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted backing-buffer lambda for SDK and devInspect reads. */\nexport function backingBufferLambda(options: BackingBufferLambdaOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'backing_buffer_lambda',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryFeeWindowMsArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryFeeWindowMsOptions {\n\tpackage?: string;\n\targuments: ExpiryFeeWindowMsArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted fee-ramp window for SDK and devInspect reads. */\nexport function expiryFeeWindowMs(options: ExpiryFeeWindowMsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry_fee_window_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryFeeMaxMultiplierArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryFeeMaxMultiplierOptions {\n\tpackage?: string;\n\targuments: ExpiryFeeMaxMultiplierArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted fee-ramp multiplier for SDK and devInspect reads. */\nexport function expiryFeeMaxMultiplier(options: ExpiryFeeMaxMultiplierOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry_fee_max_multiplier',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactMaxRateArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactMaxRateOptions {\n\tpackage?: string;\n\targuments: InventoryImpactMaxRateArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return this market's immutable maximum marginal inventory-impact rate for SDK\n * and devInspect state reads.\n */\nexport function inventoryImpactMaxRate(options: InventoryImpactMaxRateOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_max_rate',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactScaleArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactScaleOptions {\n\tpackage?: string;\n\targuments: InventoryImpactScaleArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the immutable DUSDC scale of this market's inventory-impact curve for SDK\n * and devInspect state reads.\n */\nexport function inventoryImpactScale(options: InventoryImpactScaleOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_scale',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TickSizeArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface TickSizeOptions {\n\tpackage?: string;\n\targuments: TickSizeArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the strike tick size for SDK and devInspect range construction. Raw\n * strikes are `tick * tick_size`.\n */\nexport function tickSize(options: TickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AdmissionTickSizeArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface AdmissionTickSizeOptions {\n\tpackage?: string;\n\targuments: AdmissionTickSizeArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the admission-grid step for SDK and devInspect range construction. */\nexport function admissionTickSize(options: AdmissionTickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'admission_tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ReferenceTickArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ReferenceTickOptions {\n\tpackage?: string;\n\targuments: ReferenceTickArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the admitted reference tick for SDK and devInspect range construction. */\nexport function referenceTick(options: ReferenceTickOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'reference_tick',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ReferenceTickSourceTimestampMsArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ReferenceTickSourceTimestampMsOptions {\n\tpackage?: string;\n\targuments: ReferenceTickSourceTimestampMsArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the reference observation timestamp for SDK and devInspect reads. */\nexport function referenceTickSourceTimestampMs(options: ReferenceTickSourceTimestampMsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'reference_tick_source_timestamp_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PayoutLiabilityArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface PayoutLiabilityOptions {\n\tpackage?: string;\n\targuments: PayoutLiabilityArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return payout reserve or settled liability for external accounting\n * observability.\n */\nexport function payoutLiability(options: PayoutLiabilityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'payout_liability',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RequiredCashArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface RequiredCashOptions {\n\tpackage?: string;\n\targuments: RequiredCashArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return required expiry cash for external accounting observability. */\nexport function requiredCash(options: RequiredCashOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'required_cash',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface LoadLivePricerArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n\tbsValues: RawTransactionArgument<string>;\n\tbsSvi: RawTransactionArgument<string>;\n}\nexport interface LoadLivePricerOptions {\n\tpackage?: string;\n\targuments: LoadLivePricerArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Load a PTB-local live pricing snapshot for this market.\n *\n * The returned `Pricer` is bound to `market.id()` and can be passed into live\n * mint, redeem, and NAV functions in the same transaction.\n *\n * Aborts `pricing::EOracleWrittenInThisTransaction` when any observation that\n * feeds the returned forward or SVI was written in this transaction (RP-24).\n * Independently submitted refresh-then-trade PTBs are unaffected: the guard\n * compares observation `writer_digest` to `tx_context::digest()`, not sender\n * identity, and does not prohibit reads of older observations.\n */\nexport function loadLivePricer(options: LoadLivePricerOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, null, null, '0x2::clock::Clock'] satisfies (\n\t\tstring | null\n\t)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth', 'bsValues', 'bsSvi'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'load_live_pricer',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t\tpropbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface CurrentNavArguments {\n\tmarket: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n}\nexport interface CurrentNavOptions {\n\tpackage?: string;\n\targuments:\n\t\tCurrentNavArguments | [market: RawTransactionArgument<string>, pricer: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return live marked NAV as free expiry cash minus the exposure book's marked\n * liability, floored at zero. This read requires a market-bound pre-expiry\n * `Pricer`; an expired but unsettled market cannot be valued through this path.\n * Public for PTB composition and devInspect pool valuation.\n */\nexport function currentNav(options: CurrentNavOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'pricer'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'current_nav',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface LiveOrderValueArguments {\n\tmarket: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface LiveOrderValueOptions {\n\tpackage?: string;\n\targuments:\n\t\t| LiveOrderValueArguments\n\t\t| [\n\t\t\t\tmarket: RawTransactionArgument<string>,\n\t\t\t\tpricer: TransactionArgument,\n\t\t\t\torderId: RawTransactionArgument<number | bigint>,\n\t\t ];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return one live order's full-close range value before fees. Requires a\n * market-bound `Pricer` and does not prove account ownership of `order_id`. Public\n * for SDK, PTB, and devInspect position valuation.\n */\nexport function liveOrderValue(options: LiveOrderValueOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, 'u256'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'pricer', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'live_order_value',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SettledOrderPayoutArguments {\n\tmarket: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface SettledOrderPayoutOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SettledOrderPayoutArguments\n\t\t| [market: RawTransactionArgument<string>, orderId: RawTransactionArgument<number | bigint>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return one settled order's terminal payout. This function does not prove account\n * ownership of `order_id`. Public for SDK, PTB, and devInspect position valuation.\n */\nexport function settledOrderPayout(options: SettledOrderPayoutOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, 'u256'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'settled_order_payout',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface MintPausedArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface MintPausedOptions {\n\tpackage?: string;\n\targuments: MintPausedArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the market mint-pause state for SDK and devInspect reads. */\nexport function mintPaused(options: MintPausedOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_paused',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface QuoteMintArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\texactQuantity: RawTransactionArgument<boolean>;\n}\nexport interface QuoteMintOptions {\n\tpackage?: string;\n\targuments: QuoteMintArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Quote the all-in cost of a mint request for an anonymous taker (no builder code)\n * without mutating any market state. Exact-quantity mode uses `min_quantity`;\n * budget mode conservatively sizes a lot-rounded fill under `max_premium`. The\n * quote applies live-mint and admission gates but does not preflight account\n * balance, slippage caps, or exposure-index capacity. Its penalty uses the current\n * pre-update EWMA state. Public for SDK and devInspect pre-trade pricing.\n */\nexport function quoteMint(options: QuoteMintOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'exactQuantity',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quote_mint',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface QuoteMintForAccountArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\texactQuantity: RawTransactionArgument<boolean>;\n}\nexport interface QuoteMintForAccountOptions {\n\tpackage?: string;\n\targuments: QuoteMintForAccountArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Quote the all-in cost of a mint request for one account, reading its builder\n * code. Budget mode caps premium by total account balance, including unsettled\n * accumulator funds. Public for SDK and devInspect pre-trade pricing.\n */\nexport function quoteMintForAccount(options: QuoteMintForAccountOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'exactQuantity',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quote_mint_for_account',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface QuantityArguments {\n\tquote: TransactionArgument;\n}\nexport interface QuantityOptions {\n\tpackage?: string;\n\targuments: QuantityArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the sized quantity for SDK and devInspect quote consumers. */\nexport function quantity(options: QuantityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quantity',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface EntryProbabilityArguments {\n\tquote: TransactionArgument;\n}\nexport interface EntryProbabilityOptions {\n\tpackage?: string;\n\targuments: EntryProbabilityArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted range probability for SDK and devInspect consumers. */\nexport function entryProbability(options: EntryProbabilityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'entry_probability',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PremiumArguments {\n\tquote: TransactionArgument;\n}\nexport interface PremiumOptions {\n\tpackage?: string;\n\targuments: PremiumArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted premium for SDK and devInspect consumers. */\nexport function premium(options: PremiumOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'premium',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TradingFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface TradingFeeOptions {\n\tpackage?: string;\n\targuments: TradingFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted trading fee before subsidy for SDK and devInspect consumers. */\nexport function tradingFee(options: TradingFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'trading_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface FeeIncentiveSubsidyArguments {\n\tquote: TransactionArgument;\n}\nexport interface FeeIncentiveSubsidyOptions {\n\tpackage?: string;\n\targuments: FeeIncentiveSubsidyArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the sponsor-funded portion of the quoted fee for SDK and devInspect\n * consumers.\n */\nexport function feeIncentiveSubsidy(options: FeeIncentiveSubsidyOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'fee_incentive_subsidy',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BuilderFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface BuilderFeeOptions {\n\tpackage?: string;\n\targuments: BuilderFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted builder fee for SDK and devInspect consumers. */\nexport function builderFee(options: BuilderFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'builder_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PenaltyFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface PenaltyFeeOptions {\n\tpackage?: string;\n\targuments: PenaltyFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted EWMA congestion surcharge for SDK and devInspect consumers. */\nexport function penaltyFee(options: PenaltyFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'penalty_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactChargeArguments {\n\tquote: TransactionArgument;\n}\nexport interface InventoryImpactChargeOptions {\n\tpackage?: string;\n\targuments: InventoryImpactChargeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the separate inventory-impact charge for SDK and devInspect quote\n * consumers.\n */\nexport function inventoryImpactCharge(options: InventoryImpactChargeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_charge',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AllInCostArguments {\n\tquote: TransactionArgument;\n}\nexport interface AllInCostOptions {\n\tpackage?: string;\n\targuments: AllInCostArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the total quoted account withdrawal for SDK and devInspect consumers. */\nexport function allInCost(options: AllInCostOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'all_in_cost',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface MintExactQuantityArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tmaxCost: RawTransactionArgument<number | bigint>;\n\tmaxProbability: RawTransactionArgument<number | bigint>;\n}\nexport interface MintExactQuantityOptions {\n\tpackage?: string;\n\targuments: MintExactQuantityArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Mint an exact live position quantity against this expiry market.\n *\n * Requires the running package version to be at or above the protocol version\n * watermark, per-market mint pause to be off, trading globally enabled, valid\n * owner or authorized-app account auth, a market-bound live `Pricer`, and enough\n * expiry cash to back the post-mint max payout. Mint fees are paid by routing a\n * withdraw through the loaded account. The position's strike range is the tick\n * pair `(lower_tick, higher_tick]` (`lower_tick = 0` is `-inf`,\n * `higher_tick = pos_inf_tick` is `+inf`); the SDK converts raw strikes to ticks.\n * `max_cost` caps the all-in DUSDC withdrawal, while `max_probability` caps the\n * quoted per-contract probability before fees. Callers can pass\n * `std::u64::max_value!()` for either uncapped guard. Returns the minted order ID\n * for future order-scoped flows.\n */\nexport function mintExactQuantity(options: MintExactQuantityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'quantity',\n\t\t'maxCost',\n\t\t'maxProbability',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_exact_quantity',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface MintExactAmountArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\tmaxCost: RawTransactionArgument<number | bigint>;\n}\nexport interface MintExactAmountOptions {\n\tpackage?: string;\n\targuments: MintExactAmountArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Mint a conservatively sized lot-rounded position whose premium does not exceed\n * `max_premium`. The result may be one lot below the largest fitting quantity and\n * must meet `min_quantity`.\n *\n * Fees, builder fees, and EWMA congestion penalties are charged on top of\n * `max_premium`, so `max_cost` — not `max_premium` — bounds the all-in DUSDC\n * withdrawal (`premium + trader-paid fee + builder_fee + EWMA penalty`).\n * `max_cost` is required: unlike `mint_exact_quantity`'s guards there is no value\n * that disables it, because the budget shape exists to bound spend. The sizing\n * budget is first capped to the account's available DUSDC after settlement; fees\n * still require additional available DUSDC at payment time. Any unspent premium\n * dust remains in the account because order quantity must be an integer number of\n * `position_lot_size` lots.\n */\nexport function mintExactAmount(options: MintExactAmountOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'maxCost',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_exact_amount',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemLiveArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\torderId: RawTransactionArgument<number | bigint>;\n\tcloseQuantity: RawTransactionArgument<number | bigint>;\n\tminProbability: RawTransactionArgument<number | bigint>;\n\tminProceeds: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemLiveOptions {\n\tpackage?: string;\n\targuments: RedeemLiveArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Redeem a live order you hold account authority over.\n *\n * A live order is priced and closed (partial or full). Settled orders must use\n * `redeem_settled`. Returns a replacement order ID only when a partial close\n * leaves quantity open.\n *\n * Two close-side slippage floors, the mirror of mint's `max_probability` /\n * `max_cost` pair; pass `0` to disable either. `min_probability` floors the quoted\n * per-contract range probability (same units as mint's `max_probability`).\n * `min_proceeds` floors the all-in net DUSDC credited to the account\n * (`redeem_amount` minus trading fee, builder fee, and EWMA penalty), the mirror\n * of mint's all-in `max_cost`.\n */\nexport function redeemLive(options: RedeemLiveOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u256',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'orderId',\n\t\t'closeQuantity',\n\t\t'minProbability',\n\t\t'minProceeds',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_live',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemSettledArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemSettledOptions {\n\tpackage?: string;\n\targuments: RedeemSettledArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Redeem a settled order you hold account authority over.\n *\n * The market must be settled already; this flow does not run live pricing.\n * Explicit owner auth remains available when Predict app automation is\n * deauthorized; another authorized app may also supply valid account auth.\n */\nexport function redeemSettled(options: RedeemSettledOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u256',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'wrapper', 'auth', 'config', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_settled',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemSettledPermissionlessArguments {\n\tmarket: RawTransactionArgument<string>;\n\taccountRegistry: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemSettledPermissionlessOptions {\n\tpackage?: string;\n\targuments: RedeemSettledPermissionlessArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Permissionlessly redeem a settled order without account-owner authority.\n *\n * This keeper path uses Predict app-auth from the account registry, so\n * `deauthorize_app<PredictApp>` disables this automation. Owners can still use\n * `redeem_settled` with owner auth to redeem their own settled positions.\n */\nexport function redeemSettledPermissionless(options: RedeemSettledPermissionlessOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u256',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'accountRegistry', 'wrapper', 'config', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_settled_permissionless',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface SetReferenceTickArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n}\nexport interface SetReferenceTickOptions {\n\tpackage?: string;\n\targuments: SetReferenceTickArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Set this expiry's reference fine-grid tick from the exact previous-window\n * Propbook Pyth observation. The source observation must be inserted into the feed\n * at `reference_tick_source_timestamp_ms` before this call, and the normalized\n * spot is floored to the market's `tick_size`.\n */\nexport function setReferenceTick(options: SetReferenceTickOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'set_reference_tick',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t\tpropbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface SetMintPausedArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tAdminCap: RawTransactionArgument<string>;\n\tpaused: RawTransactionArgument<boolean>;\n}\nexport interface SetMintPausedOptions {\n\tpackage?: string;\n\targuments: SetMintPausedArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Set whether new mints are paused on this expiry market. Admin-only and\n * version-gated. A `PauseCap` holder can force-engage the pause one-way under a\n * version freeze via `registry::pause_expiry_market_mint_pause_cap`.\n */\nexport function setMintPaused(options: SetMintPausedOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, 'bool'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'config', 'AdminCap', 'paused'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'set_mint_paused',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface TrySettleArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n\tbsValues: RawTransactionArgument<string>;\n}\nexport interface TrySettleOptions {\n\tpackage?: string;\n\targuments: TrySettleArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Settle from Propbook's exact positive Pyth spot at expiry, or from the exact\n * Block Scholes minute-boundary spot when Pyth remains unavailable after the\n * compiled grace period. Permissionless and idempotent; missing or unusable\n * observations leave the market unsettled.\n */\nexport function trySettle(options: TrySettleOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, null, '0x2::clock::Clock'] satisfies (\n\t\tstring | null\n\t)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth', 'bsValues'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'try_settle',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t\tpropbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expiry_market.mjs","names":["expiry_cash.ExpiryCash","balance.Balance","strike_exposure.StrikeExposure","ewma.EwmaState"],"sources":["../../../src/contracts/deepbook_predict/expiry_market.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Per-expiry Predict market.\n *\n * An ExpiryMarket is the hot shared object for one expiry. It owns trade\n * execution, strike exposure state, and an embedded expiry-cash custody component,\n * plus local sponsor-funded fee incentives. Live oracle validation is delegated to\n * `pricing::load_live_pricer`; this module owns market flow policy and then passes\n * loaded `Pricer` snapshots into exposure business logic. Pool-wide PLP accounting\n * and profit accounting remain outside this module.\n */\n\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n\ttype ConfigValue,\n} from '../utils/index.js';\nimport { U64 } from '../../bcs/integers.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nimport * as expiry_cash from './expiry_cash.js';\nimport * as balance from './deps/sui/balance.js';\nimport * as strike_exposure from './strike_exposure.js';\nimport * as ewma from './ewma.js';\nconst $moduleName = '@local-pkg/deepbook_predict::expiry_market';\nexport const ValuationStamp = new MoveStruct({\n\tname: `${$moduleName}::ValuationStamp`,\n\tfields: {\n\t\tflush_seq: U64,\n\t\t/** `cash.balance()` at the snapshot instant. */\n\t\tsnapshot_cash: U64,\n\t\t/** `cash.inventory_impact_reserve()` at the snapshot instant. */\n\t\tsnapshot_impact_reserve: U64,\n\t},\n});\nexport const ExpiryMarket = new MoveStruct({\n\tname: `${$moduleName}::ExpiryMarket`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\t/** Propbook underlying this market was created for. */\n\t\tpropbook_underlying_id: bcs.u32(),\n\t\texpiry: U64,\n\t\t/** USDC custody and payout backing. */\n\t\tcash: expiry_cash.ExpiryCash,\n\t\t/** Sponsor-funded USDC available to subsidize this market's taker fees. */\n\t\tfee_incentive_balance: balance.Balance,\n\t\t/** Exposure lifecycle state for this expiry's strike ticks. */\n\t\tstrike_exposure: strike_exposure.StrikeExposure,\n\t\t/** Smoothed gas-price stats backing the congestion trade penalty. */\n\t\tewma: ewma.EwmaState,\n\t\t/**\n\t\t * When true, new mints on this expiry abort. Other flows stay available. Admin\n\t\t * sets/unsets it (version-gated); a `PauseCap` holder can force it true one-way\n\t\t * through the registry (ungated kill switch).\n\t\t */\n\t\tmint_paused: bcs.bool(),\n\t\t/**\n\t\t * `Some` from the flush's snapshot stage until this market's `value_expiry` (or\n\t\t * lazily discarded once the stamp goes stale — see `ValuationStamp`). Trading is\n\t\t * never gated on it and never touches it: the cash rows are captured eagerly here\n\t\t * at the snapshot instant, and the payout tree captures its own boundary shadows\n\t\t * as trades first touch each node.\n\t\t */\n\t\tvaluation_stamp: bcs.option(ValuationStamp),\n\t},\n});\nexport const MintQuote = new MoveStruct({\n\tname: `${$moduleName}::MintQuote`,\n\tfields: {\n\t\tquantity: U64,\n\t\tentry_probability: U64,\n\t\tpremium: U64,\n\t\ttrading_fee: U64,\n\t\tfee_incentive_subsidy: U64,\n\t\tbuilder_fee: U64,\n\t\tpenalty_fee: U64,\n\t\tinventory_impact_charge: U64,\n\t\tall_in_cost: U64,\n\t},\n});\nexport interface IdArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface IdOptions {\n\tpackage?: string;\n\targuments: IdArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the market object ID for external discovery and PTB construction. */\nexport function id(options: IdOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'id',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PropbookUnderlyingIdArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface PropbookUnderlyingIdOptions {\n\tpackage?: string;\n\targuments: PropbookUnderlyingIdArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the Propbook underlying for SDK and devInspect market reads. */\nexport function propbookUnderlyingId(options: PropbookUnderlyingIdOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'propbook_underlying_id',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryOptions {\n\tpackage?: string;\n\targuments: ExpiryArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the expiry timestamp for SDK and devInspect market reads. */\nexport function expiry(options: ExpiryOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SettlementPriceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface SettlementPriceOptions {\n\tpackage?: string;\n\targuments: SettlementPriceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the recorded settlement price. Aborts if the market is not settled. */\nexport function settlementPrice(options: SettlementPriceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'settlement_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsSettledArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface IsSettledOptions {\n\tpackage?: string;\n\targuments: IsSettledArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return whether terminal settlement has been recorded for this market. Public\n * read for SDK/devInspect settlement-state checks.\n */\nexport function isSettled(options: IsSettledOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'is_settled',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TrySettlementPriceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface TrySettlementPriceOptions {\n\tpackage?: string;\n\targuments: TrySettlementPriceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the recorded settlement price, or `none` while the market is live.\n * Non-aborting companion to `settlement_price` for SDK/devInspect reads.\n */\nexport function trySettlementPrice(options: TrySettlementPriceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'try_settlement_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CashBalanceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface CashBalanceOptions {\n\tpackage?: string;\n\targuments: CashBalanceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return expiry USDC custody for SDK and devInspect state reads. */\nexport function cashBalance(options: CashBalanceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'cash_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactReserveArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactReserveOptions {\n\tpackage?: string;\n\targuments: InventoryImpactReserveArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the isolated inventory-impact escrow for SDK and devInspect state reads. */\nexport function inventoryImpactReserve(options: InventoryImpactReserveOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_reserve',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface FeeIncentiveBalanceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface FeeIncentiveBalanceOptions {\n\tpackage?: string;\n\targuments: FeeIncentiveBalanceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return local fee incentives for SDK and devInspect state reads. */\nexport function feeIncentiveBalance(options: FeeIncentiveBalanceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'fee_incentive_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BackingBufferLambdaArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface BackingBufferLambdaOptions {\n\tpackage?: string;\n\targuments: BackingBufferLambdaArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted backing-buffer lambda for SDK and devInspect reads. */\nexport function backingBufferLambda(options: BackingBufferLambdaOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'backing_buffer_lambda',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryFeeWindowMsArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryFeeWindowMsOptions {\n\tpackage?: string;\n\targuments: ExpiryFeeWindowMsArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted fee-ramp window for SDK and devInspect reads. */\nexport function expiryFeeWindowMs(options: ExpiryFeeWindowMsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry_fee_window_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryFeeMaxMultiplierArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryFeeMaxMultiplierOptions {\n\tpackage?: string;\n\targuments: ExpiryFeeMaxMultiplierArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted fee-ramp multiplier for SDK and devInspect reads. */\nexport function expiryFeeMaxMultiplier(options: ExpiryFeeMaxMultiplierOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry_fee_max_multiplier',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactMaxRateArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactMaxRateOptions {\n\tpackage?: string;\n\targuments: InventoryImpactMaxRateArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return this market's immutable maximum marginal inventory-impact rate for SDK\n * and devInspect state reads.\n */\nexport function inventoryImpactMaxRate(options: InventoryImpactMaxRateOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_max_rate',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactScaleArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactScaleOptions {\n\tpackage?: string;\n\targuments: InventoryImpactScaleArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the immutable USDC scale of this market's inventory-impact curve for SDK\n * and devInspect state reads.\n */\nexport function inventoryImpactScale(options: InventoryImpactScaleOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_scale',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TickSizeArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface TickSizeOptions {\n\tpackage?: string;\n\targuments: TickSizeArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the strike tick size for SDK and devInspect range construction. Raw\n * strikes are `tick * tick_size`.\n */\nexport function tickSize(options: TickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AdmissionTickSizeArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface AdmissionTickSizeOptions {\n\tpackage?: string;\n\targuments: AdmissionTickSizeArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the admission-grid step for SDK and devInspect range construction. */\nexport function admissionTickSize(options: AdmissionTickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'admission_tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ReferenceTickArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ReferenceTickOptions {\n\tpackage?: string;\n\targuments: ReferenceTickArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the admitted reference tick for SDK and devInspect range construction. */\nexport function referenceTick(options: ReferenceTickOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'reference_tick',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ReferenceTickSourceTimestampMsArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ReferenceTickSourceTimestampMsOptions {\n\tpackage?: string;\n\targuments: ReferenceTickSourceTimestampMsArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the reference observation timestamp for SDK and devInspect reads. */\nexport function referenceTickSourceTimestampMs(options: ReferenceTickSourceTimestampMsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'reference_tick_source_timestamp_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PayoutLiabilityArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface PayoutLiabilityOptions {\n\tpackage?: string;\n\targuments: PayoutLiabilityArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return payout reserve or settled liability for external accounting\n * observability.\n */\nexport function payoutLiability(options: PayoutLiabilityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'payout_liability',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RequiredCashArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface RequiredCashOptions {\n\tpackage?: string;\n\targuments: RequiredCashArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return required expiry cash for external accounting observability. */\nexport function requiredCash(options: RequiredCashOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'required_cash',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface LoadLivePricerArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n\tbsValues: RawTransactionArgument<string>;\n\tbsSvi: RawTransactionArgument<string>;\n}\nexport interface LoadLivePricerOptions {\n\tpackage?: string;\n\targuments: LoadLivePricerArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Load a PTB-local live pricing snapshot for this market.\n *\n * The returned `Pricer` is bound to `market.id()` and can be passed into live\n * mint, redeem, and NAV functions in the same transaction.\n *\n * Aborts `pricing::EOracleWrittenInThisTransaction` when any observation that\n * feeds the returned forward or SVI was written in this transaction (RP-24).\n * Independently submitted refresh-then-trade PTBs are unaffected: the guard\n * compares observation `writer_digest` to `tx_context::digest()`, not sender\n * identity, and does not prohibit reads of older observations.\n */\nexport function loadLivePricer(options: LoadLivePricerOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, null, null, '0x2::clock::Clock'] satisfies (\n\t\tstring | null\n\t)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth', 'bsValues', 'bsSvi'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'load_live_pricer',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t\tpropbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface IsPendingValuationArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n}\nexport interface IsPendingValuationOptions {\n\tpackage?: string;\n\targuments: IsPendingValuationArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return whether this market is snapshotted into the in-flight flush and still\n * awaiting its `value_expiry`. For SDK, keeper, and devInspect reads. It gates\n * nothing: settlement and trading both run regardless — the frozen mark is\n * settlement-invariant, so a stamped market settles the instant it expires. Do not\n * defer a settlement attempt on this read.\n */\nexport function isPendingValuation(options: IsPendingValuationOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'is_pending_valuation',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface CurrentNavArguments {\n\tmarket: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n}\nexport interface CurrentNavOptions {\n\tpackage?: string;\n\targuments:\n\t\tCurrentNavArguments | [market: RawTransactionArgument<string>, pricer: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return live marked NAV as free expiry cash minus the exposure book's marked\n * liability, floored at zero. This read requires a market-bound pre-expiry\n * `Pricer`; an expired but unsettled market cannot be valued through this path.\n * Public for PTB composition and devInspect pool valuation.\n */\nexport function currentNav(options: CurrentNavOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'pricer'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'current_nav',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface LiveOrderValueArguments {\n\tmarket: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface LiveOrderValueOptions {\n\tpackage?: string;\n\targuments:\n\t\t| LiveOrderValueArguments\n\t\t| [\n\t\t\t\tmarket: RawTransactionArgument<string>,\n\t\t\t\tpricer: TransactionArgument,\n\t\t\t\torderId: RawTransactionArgument<number | bigint>,\n\t\t ];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return one live order's full-close range value before fees. Requires a\n * market-bound `Pricer` and does not prove account ownership of `order_id`. Public\n * for SDK, PTB, and devInspect position valuation.\n */\nexport function liveOrderValue(options: LiveOrderValueOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, 'u256'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'pricer', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'live_order_value',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SettledOrderPayoutArguments {\n\tmarket: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface SettledOrderPayoutOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SettledOrderPayoutArguments\n\t\t| [market: RawTransactionArgument<string>, orderId: RawTransactionArgument<number | bigint>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return one settled order's terminal payout. This function does not prove account\n * ownership of `order_id`. Public for SDK, PTB, and devInspect position valuation.\n */\nexport function settledOrderPayout(options: SettledOrderPayoutOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, 'u256'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'settled_order_payout',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface MintPausedArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface MintPausedOptions {\n\tpackage?: string;\n\targuments: MintPausedArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the market mint-pause state for SDK and devInspect reads. */\nexport function mintPaused(options: MintPausedOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_paused',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface QuoteMintArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\texactQuantity: RawTransactionArgument<boolean>;\n}\nexport interface QuoteMintOptions {\n\tpackage?: string;\n\targuments: QuoteMintArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Quote the all-in cost of a mint request for an anonymous taker (no builder code)\n * without mutating any market state. Exact-quantity mode uses `min_quantity`;\n * budget mode conservatively sizes a lot-rounded fill under `max_premium`. The\n * quote applies live-mint and admission gates but does not preflight account\n * balance, slippage caps, or exposure-index capacity. Its penalty uses the current\n * pre-update EWMA state. Public for SDK and devInspect pre-trade pricing.\n */\nexport function quoteMint(options: QuoteMintOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'exactQuantity',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quote_mint',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface QuoteMintForAccountArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\texactQuantity: RawTransactionArgument<boolean>;\n}\nexport interface QuoteMintForAccountOptions {\n\tpackage?: string;\n\targuments: QuoteMintForAccountArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Quote the all-in cost of a mint request for one account, reading its builder\n * code. Budget mode caps premium by total account balance, including unsettled\n * accumulator funds. Public for SDK and devInspect pre-trade pricing.\n */\nexport function quoteMintForAccount(options: QuoteMintForAccountOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'exactQuantity',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quote_mint_for_account',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface QuantityArguments {\n\tquote: TransactionArgument;\n}\nexport interface QuantityOptions {\n\tpackage?: string;\n\targuments: QuantityArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the sized quantity for SDK and devInspect quote consumers. */\nexport function quantity(options: QuantityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quantity',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface EntryProbabilityArguments {\n\tquote: TransactionArgument;\n}\nexport interface EntryProbabilityOptions {\n\tpackage?: string;\n\targuments: EntryProbabilityArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted range probability for SDK and devInspect consumers. */\nexport function entryProbability(options: EntryProbabilityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'entry_probability',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PremiumArguments {\n\tquote: TransactionArgument;\n}\nexport interface PremiumOptions {\n\tpackage?: string;\n\targuments: PremiumArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted premium for SDK and devInspect consumers. */\nexport function premium(options: PremiumOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'premium',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TradingFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface TradingFeeOptions {\n\tpackage?: string;\n\targuments: TradingFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted trading fee before subsidy for SDK and devInspect consumers. */\nexport function tradingFee(options: TradingFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'trading_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface FeeIncentiveSubsidyArguments {\n\tquote: TransactionArgument;\n}\nexport interface FeeIncentiveSubsidyOptions {\n\tpackage?: string;\n\targuments: FeeIncentiveSubsidyArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the sponsor-funded portion of the quoted fee for SDK and devInspect\n * consumers.\n */\nexport function feeIncentiveSubsidy(options: FeeIncentiveSubsidyOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'fee_incentive_subsidy',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BuilderFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface BuilderFeeOptions {\n\tpackage?: string;\n\targuments: BuilderFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted builder fee for SDK and devInspect consumers. */\nexport function builderFee(options: BuilderFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'builder_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PenaltyFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface PenaltyFeeOptions {\n\tpackage?: string;\n\targuments: PenaltyFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted EWMA congestion surcharge for SDK and devInspect consumers. */\nexport function penaltyFee(options: PenaltyFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'penalty_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactChargeArguments {\n\tquote: TransactionArgument;\n}\nexport interface InventoryImpactChargeOptions {\n\tpackage?: string;\n\targuments: InventoryImpactChargeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the separate inventory-impact charge for SDK and devInspect quote\n * consumers.\n */\nexport function inventoryImpactCharge(options: InventoryImpactChargeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_charge',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AllInCostArguments {\n\tquote: TransactionArgument;\n}\nexport interface AllInCostOptions {\n\tpackage?: string;\n\targuments: AllInCostArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the total quoted account withdrawal for SDK and devInspect consumers. */\nexport function allInCost(options: AllInCostOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'all_in_cost',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface MintExactQuantityArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tmaxCost: RawTransactionArgument<number | bigint>;\n\tmaxProbability: RawTransactionArgument<number | bigint>;\n}\nexport interface MintExactQuantityOptions {\n\tpackage?: string;\n\targuments: MintExactQuantityArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Mint an exact live position quantity against this expiry market.\n *\n * Requires the running package version to be at or above the protocol version\n * watermark, per-market mint pause to be off, trading globally enabled, valid\n * owner or authorized-app account auth, a market-bound live `Pricer`, and enough\n * expiry cash to back the post-mint max payout. Mint fees are paid by routing a\n * withdraw through the loaded account. The position's strike range is the tick\n * pair `(lower_tick, higher_tick]` (`lower_tick = 0` is `-inf`,\n * `higher_tick = pos_inf_tick` is `+inf`); the SDK converts raw strikes to ticks.\n * `max_cost` caps the all-in USDC withdrawal, while `max_probability` caps the\n * quoted per-contract probability before fees. Callers can pass\n * `std::u64::max_value!()` for either uncapped guard. Returns the minted order ID\n * for future order-scoped flows.\n */\nexport function mintExactQuantity(options: MintExactQuantityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'quantity',\n\t\t'maxCost',\n\t\t'maxProbability',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_exact_quantity',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface MintExactAmountArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\tmaxCost: RawTransactionArgument<number | bigint>;\n}\nexport interface MintExactAmountOptions {\n\tpackage?: string;\n\targuments: MintExactAmountArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Mint a conservatively sized lot-rounded position whose premium does not exceed\n * `max_premium`. The result may be one lot below the largest fitting quantity and\n * must meet `min_quantity`.\n *\n * Fees, builder fees, and EWMA congestion penalties are charged on top of\n * `max_premium`, so `max_cost` — not `max_premium` — bounds the all-in USDC\n * withdrawal (`premium + trader-paid fee + builder_fee + EWMA penalty`).\n * `max_cost` is required: unlike `mint_exact_quantity`'s guards there is no value\n * that disables it, because the budget shape exists to bound spend. The sizing\n * budget is first capped to the account's available USDC after settlement; fees\n * still require additional available USDC at payment time. Any unspent premium\n * dust remains in the account because order quantity must be an integer number of\n * `position_lot_size` lots.\n */\nexport function mintExactAmount(options: MintExactAmountOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'maxCost',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_exact_amount',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemLiveArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\torderId: RawTransactionArgument<number | bigint>;\n\tcloseQuantity: RawTransactionArgument<number | bigint>;\n\tminProbability: RawTransactionArgument<number | bigint>;\n\tminProceeds: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemLiveOptions {\n\tpackage?: string;\n\targuments: RedeemLiveArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Redeem a live order you hold account authority over.\n *\n * A live order is priced and closed (partial or full). Settled orders must use\n * `redeem_settled`. Returns a replacement order ID only when a partial close\n * leaves quantity open.\n *\n * Two close-side slippage floors, the mirror of mint's `max_probability` /\n * `max_cost` pair; pass `0` to disable either. `min_probability` floors the quoted\n * per-contract range probability (same units as mint's `max_probability`).\n * `min_proceeds` floors the all-in net USDC credited to the account\n * (`redeem_amount` minus trading fee, builder fee, and EWMA penalty), the mirror\n * of mint's all-in `max_cost`.\n */\nexport function redeemLive(options: RedeemLiveOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u256',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'orderId',\n\t\t'closeQuantity',\n\t\t'minProbability',\n\t\t'minProceeds',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_live',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemSettledArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemSettledOptions {\n\tpackage?: string;\n\targuments: RedeemSettledArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Redeem a settled order you hold account authority over.\n *\n * The market must be settled already; this flow does not run live pricing.\n * Explicit owner auth remains available when Predict app automation is\n * deauthorized; another authorized app may also supply valid account auth.\n */\nexport function redeemSettled(options: RedeemSettledOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u256',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'wrapper', 'auth', 'config', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_settled',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemSettledPermissionlessArguments {\n\tmarket: RawTransactionArgument<string>;\n\taccountRegistry: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemSettledPermissionlessOptions {\n\tpackage?: string;\n\targuments: RedeemSettledPermissionlessArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Permissionlessly redeem a settled order without account-owner authority.\n *\n * This keeper path uses Predict app-auth from the account registry, so\n * `deauthorize_app<PredictApp>` disables this automation. Owners can still use\n * `redeem_settled` with owner auth to redeem their own settled positions.\n */\nexport function redeemSettledPermissionless(options: RedeemSettledPermissionlessOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u256',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'accountRegistry', 'wrapper', 'config', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_settled_permissionless',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface SetReferenceTickArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n}\nexport interface SetReferenceTickOptions {\n\tpackage?: string;\n\targuments: SetReferenceTickArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Set this expiry's reference fine-grid tick from the exact previous-window\n * Propbook Pyth observation. The source observation must be inserted into the feed\n * at `reference_tick_source_timestamp_ms` before this call, and the normalized\n * spot is floored to the market's `tick_size`. Not gated on the valuation lock:\n * the reference tick shapes mint admission only, and a mint it admits mid-flush is\n * invisible to the captured snapshot like any other.\n */\nexport function setReferenceTick(options: SetReferenceTickOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'set_reference_tick',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t\tpropbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface SetMintPausedArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tAdminCap: RawTransactionArgument<string>;\n\tpaused: RawTransactionArgument<boolean>;\n}\nexport interface SetMintPausedOptions {\n\tpackage?: string;\n\targuments: SetMintPausedArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Set whether new mints are paused on this expiry market. Admin-only and\n * version-gated. A `PauseCap` holder can force-engage the pause one-way under a\n * version freeze via `registry::pause_expiry_market_mint_pause_cap`.\n */\nexport function setMintPaused(options: SetMintPausedOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, 'bool'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'config', 'AdminCap', 'paused'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'set_mint_paused',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface TrySettleArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n\tbsValues: RawTransactionArgument<string>;\n}\nexport interface TrySettleOptions {\n\tpackage?: string;\n\targuments: TrySettleArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Settle from Propbook's exact positive Pyth spot at expiry, or from the exact\n * Block Scholes minute-boundary spot when Pyth remains unavailable after the\n * compiled grace period. Permissionless and idempotent; missing or unusable\n * observations leave the market unsettled.\n */\nexport function trySettle(options: TrySettleOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, null, '0x2::clock::Clock'] satisfies (\n\t\tstring | null\n\t)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth', 'bsValues'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'try_settle',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t\tpropbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market_manager.mjs","names":["table.Table"],"sources":["../../../src/contracts/deepbook_predict/market_manager.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Market identity and deployment cadence manager for Predict.\n *\n * `Registry` owns this state and delegates market admission to it. Fixed cadence\n * IDs, periods, and rank order are upgrade-required. Underlying rows, cadence\n * deployment terms, and per-underlying watermarks are stored here.\n */\n\nimport { MoveStruct, normalizeMoveArguments } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U64 } from '../../bcs/integers.js';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nimport * as table from './deps/sui/table.js';\nconst $moduleName = '@local-pkg/deepbook_predict::market_manager';\nexport const MarketKey = new MoveStruct({\n\tname: `${$moduleName}::MarketKey`,\n\tfields: {\n\t\tpropbook_underlying_id: bcs.u32(),\n\t\texpiry: U64,\n\t},\n});\nexport const MarketManager = new MoveStruct({\n\tname: `${$moduleName}::MarketManager`,\n\tfields: {\n\t\t/** Propbook underlying ID -> deployment watermarks. */\n\t\tunderlying_configs: table.Table,\n\t\t/** Created markets keyed by `(propbook_underlying_id, expiry)`. */\n\t\tmarket_ids: table.Table,\n\t},\n});\nexport const CadenceConfig = new MoveStruct({\n\tname: `${$moduleName}::CadenceConfig`,\n\tfields: {\n\t\t/** Raw-price-per-tick factor snapshotted into each created market. */\n\t\ttick_size: U64,\n\t\t/** Coarser raw-price step that new finite mint boundaries must align to. */\n\t\tadmission_tick_size: U64,\n\t\t/**\n\t\t *
|
|
1
|
+
{"version":3,"file":"market_manager.mjs","names":["table.Table"],"sources":["../../../src/contracts/deepbook_predict/market_manager.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Market identity and deployment cadence manager for Predict.\n *\n * `Registry` owns this state and delegates market admission to it. Fixed cadence\n * IDs, periods, and rank order are upgrade-required. Underlying rows, cadence\n * deployment terms, and per-underlying watermarks are stored here.\n */\n\nimport { MoveStruct, normalizeMoveArguments } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U64 } from '../../bcs/integers.js';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nimport * as table from './deps/sui/table.js';\nconst $moduleName = '@local-pkg/deepbook_predict::market_manager';\nexport const MarketKey = new MoveStruct({\n\tname: `${$moduleName}::MarketKey`,\n\tfields: {\n\t\tpropbook_underlying_id: bcs.u32(),\n\t\texpiry: U64,\n\t},\n});\nexport const MarketManager = new MoveStruct({\n\tname: `${$moduleName}::MarketManager`,\n\tfields: {\n\t\t/** Propbook underlying ID -> deployment watermarks. */\n\t\tunderlying_configs: table.Table,\n\t\t/** Created markets keyed by `(propbook_underlying_id, expiry)`. */\n\t\tmarket_ids: table.Table,\n\t},\n});\nexport const CadenceConfig = new MoveStruct({\n\tname: `${$moduleName}::CadenceConfig`,\n\tfields: {\n\t\t/** Raw-price-per-tick factor snapshotted into each created market. */\n\t\ttick_size: U64,\n\t\t/** Coarser raw-price step that new finite mint boundaries must align to. */\n\t\tadmission_tick_size: U64,\n\t\t/**\n\t\t * USDC pool allocation cap snapshotted into pool accounting for each created\n\t\t * expiry.\n\t\t */\n\t\tmax_expiry_allocation: U64,\n\t\t/**\n\t\t * Minimum USDC cash target snapshotted into pool accounting for each created\n\t\t * expiry.\n\t\t */\n\t\tinitial_expiry_cash: U64,\n\t\t/**\n\t\t * Number of cadence periods in the rolling future deployment horizon. Zero\n\t\t * disables this cadence.\n\t\t */\n\t\twindow_size: U64,\n\t},\n});\nexport const DeployableMarket = new MoveStruct({\n\tname: `${$moduleName}::DeployableMarket`,\n\tfields: {\n\t\texpiry: U64,\n\t\tcadence: CadenceConfig,\n\t},\n});\nexport const UnderlyingMarketConfig = new MoveStruct({\n\tname: `${$moduleName}::UnderlyingMarketConfig`,\n\tfields: {\n\t\t/** Deployment config indexed by cadence ID. */\n\t\tcadences: bcs.vector(CadenceConfig),\n\t\t/** Highest deployed expiry timestamp indexed by cadence ID. */\n\t\tlast_deployed_expiries: bcs.vector(U64),\n\t},\n});\nexport interface CadenceTickSizeArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceTickSizeOptions {\n\tpackage?: string;\n\targuments: CadenceTickSizeArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the raw-price-per-tick factor for SDK and devInspect cadence reads. */\nexport function cadenceTickSize(options: CadenceTickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceAdmissionTickSizeArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceAdmissionTickSizeOptions {\n\tpackage?: string;\n\targuments: CadenceAdmissionTickSizeArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the admission-grid step for SDK and devInspect cadence reads. */\nexport function cadenceAdmissionTickSize(options: CadenceAdmissionTickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_admission_tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceMaxExpiryAllocationArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceMaxExpiryAllocationOptions {\n\tpackage?: string;\n\targuments: CadenceMaxExpiryAllocationArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the expiry allocation cap for SDK and devInspect cadence reads. */\nexport function cadenceMaxExpiryAllocation(options: CadenceMaxExpiryAllocationOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_max_expiry_allocation',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceInitialExpiryCashArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceInitialExpiryCashOptions {\n\tpackage?: string;\n\targuments: CadenceInitialExpiryCashArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the initial expiry cash target for SDK and devInspect cadence reads. */\nexport function cadenceInitialExpiryCash(options: CadenceInitialExpiryCashOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_initial_expiry_cash',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceWindowSizeArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceWindowSizeOptions {\n\tpackage?: string;\n\targuments: CadenceWindowSizeArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the rolling deployment horizon for SDK and devInspect cadence reads. */\nexport function cadenceWindowSize(options: CadenceWindowSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_window_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceEnabledArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceEnabledOptions {\n\tpackage?: string;\n\targuments: CadenceEnabledArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return whether this cadence is enabled for SDK and devInspect discovery. */\nexport function cadenceEnabled(options: CadenceEnabledOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_enabled',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAM,cAAc;AACpB,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,wBAAwB,IAAI,KAAK;EACjC,QAAQ;EACR;CACD,CAAC;AACF,MAAa,gBAAgB,IAAI,WAAW;CAC3C,MAAM,GAAG,YAAY;CACrB,QAAQ;EAEP,oBAAoBA;EAEpB,YAAYA;EACZ;CACD,CAAC;AACF,MAAa,gBAAgB,IAAI,WAAW;CAC3C,MAAM,GAAG,YAAY;CACrB,QAAQ;EAEP,WAAW;EAEX,qBAAqB;EAKrB,uBAAuB;EAKvB,qBAAqB;EAKrB,aAAa;EACb;CACD,CAAC;AACF,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,QAAQ;EACR,SAAS;EACT;CACD,CAAC;AACF,MAAa,yBAAyB,IAAI,WAAW;CACpD,MAAM,GAAG,YAAY;CACrB,QAAQ;EAEP,UAAU,IAAI,OAAO,cAAc;EAEnC,wBAAwB,IAAI,OAAO,IAAI;EACvC;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order_events.mjs","names":[],"sources":["../../../src/contracts/deepbook_predict/order_events.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Order-lifecycle events for Predict.\n *\n * Events carry transition identities and deltas rather than account or market\n * balances. Partial closes link an old order ID to its replacement; the position\n * root remains constant across that chain.\n */\n\nimport { MoveStruct } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U256, U64 } from '../../bcs/integers.js';\nconst $moduleName = '@local-pkg/deepbook_predict::order_events';\nexport const OrderMinted = new MoveStruct({\n\tname: `${$moduleName}::OrderMinted`,\n\tfields: {\n\t\texpiry_market_id: bcs.Address,\n\t\taccount_id: bcs.Address,\n\t\torder_id: U256,\n\t\t/**\n\t\t * Stable economic-position handle: the original mint's `order_id`, carried forward\n\t\t * unchanged across partial-close replacements. Equals `order_id` here.\n\t\t */\n\t\tposition_root_id: U256,\n\t\towner: bcs.Address,\n\t\t/**\n\t\t * Canonical strike range as absolute ticks: `lower_tick` (`0` = `-inf`) and\n\t\t * `higher_tick` (`pos_inf_tick` = `+inf`). Raw strikes are the derived display\n\t\t * form, `tick * tick_size` with the `tick_size` from `MarketCreated`.\n\t\t */\n\t\tlower_tick: U64,\n\t\thigher_tick: U64,\n\t\t/** 1e9-scaled range probability quoted at entry. */\n\t\tentry_probability: U64,\n\t\tquantity: U64,\n\t\t/** Premium the user paid into LP backing, in
|
|
1
|
+
{"version":3,"file":"order_events.mjs","names":[],"sources":["../../../src/contracts/deepbook_predict/order_events.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Order-lifecycle events for Predict.\n *\n * Events carry transition identities and deltas rather than account or market\n * balances. Partial closes link an old order ID to its replacement; the position\n * root remains constant across that chain.\n */\n\nimport { MoveStruct } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U256, U64 } from '../../bcs/integers.js';\nconst $moduleName = '@local-pkg/deepbook_predict::order_events';\nexport const OrderMinted = new MoveStruct({\n\tname: `${$moduleName}::OrderMinted`,\n\tfields: {\n\t\texpiry_market_id: bcs.Address,\n\t\taccount_id: bcs.Address,\n\t\torder_id: U256,\n\t\t/**\n\t\t * Stable economic-position handle: the original mint's `order_id`, carried forward\n\t\t * unchanged across partial-close replacements. Equals `order_id` here.\n\t\t */\n\t\tposition_root_id: U256,\n\t\towner: bcs.Address,\n\t\t/**\n\t\t * Canonical strike range as absolute ticks: `lower_tick` (`0` = `-inf`) and\n\t\t * `higher_tick` (`pos_inf_tick` = `+inf`). Raw strikes are the derived display\n\t\t * form, `tick * tick_size` with the `tick_size` from `MarketCreated`.\n\t\t */\n\t\tlower_tick: U64,\n\t\thigher_tick: U64,\n\t\t/** 1e9-scaled range probability quoted at entry. */\n\t\tentry_probability: U64,\n\t\tquantity: U64,\n\t\t/** Premium the user paid into LP backing, in USDC base units. */\n\t\tpremium: U64,\n\t\t/** Full trading fee assessed for the mint, including any sponsor-paid subsidy. */\n\t\ttrading_fee: U64,\n\t\t/** Portion of `trading_fee` paid from expiry-local fee incentives. */\n\t\tfee_incentive_subsidy: U64,\n\t\tbuilder_fee: U64,\n\t\t/** EWMA gas-price congestion surcharge assessed for the mint, in USDC base units. */\n\t\tpenalty_fee: U64,\n\t\t/**\n\t\t * Portion of the trader-paid trading fee and congestion surcharge delivered to the\n\t\t * referrer.\n\t\t */\n\t\treferral_fee: U64,\n\t\t/** Separate inventory-impact charge escrowed for live-close rebates. */\n\t\tinventory_impact_charge: U64,\n\t\t/**\n\t\t * Builder credited for `builder_fee`; `none` when no builder fee was paid\n\t\t * (attribution follows the fee — applied once, in the emit helper).\n\t\t */\n\t\tbuilder_code_id: bcs.option(bcs.Address),\n\t\t/** Referrer recorded on the minting account, independent of the fee paid. */\n\t\treferrer_account_id: bcs.option(bcs.Address),\n\t\tonchain_timestamp_ms: U64,\n\t\t/**\n\t\t * Oracle source timestamps present when this mint was priced: Pyth's canonical\n\t\t * source time and the Block Scholes per-update source times used for freshness.\n\t\t * The SVI one is also the roll-down anchor. Pyth is `0` only when unusable.\n\t\t */\n\t\tpyth_spot_source_timestamp_ms: U64,\n\t\tblock_scholes_spot_source_timestamp_ms: U64,\n\t\tblock_scholes_forward_source_timestamp_ms: U64,\n\t\tblock_scholes_svi_source_timestamp_ms: U64,\n\t},\n});\nexport const LiveOrderRedeemed = new MoveStruct({\n\tname: `${$moduleName}::LiveOrderRedeemed`,\n\tfields: {\n\t\texpiry_market_id: bcs.Address,\n\t\taccount_id: bcs.Address,\n\t\torder_id: U256,\n\t\t/**\n\t\t * Stable economic-position handle, constant across the replacement chain. On a\n\t\t * partial close the replacement inherits this same root.\n\t\t */\n\t\tposition_root_id: U256,\n\t\towner: bcs.Address,\n\t\tquantity_closed: U64,\n\t\t/** `0` means the position was fully closed. */\n\t\tremaining_quantity: U64,\n\t\t/** New order ID minted to carry the remainder on a partial live close. */\n\t\treplacement_order_id: bcs.option(U256),\n\t\t/** Redeem value before fees. */\n\t\tredeem_amount: U64,\n\t\ttrading_fee: U64,\n\t\tbuilder_fee: U64,\n\t\t/** EWMA gas-price congestion surcharge retained by the pool, in USDC base units. */\n\t\tpenalty_fee: U64,\n\t\t/** Separate inventory-impact rebate paid from its isolated escrow. */\n\t\tinventory_impact_rebate: U64,\n\t\t/**\n\t\t * Builder credited for `builder_fee`; `none` when no builder fee was paid\n\t\t * (attribution follows the fee — applied once, in the emit helper).\n\t\t */\n\t\tbuilder_code_id: bcs.option(bcs.Address),\n\t\tonchain_timestamp_ms: U64,\n\t\t/**\n\t\t * Oracle source timestamps present when this redemption was priced: Pyth's\n\t\t * canonical source time and the Block Scholes per-update source times used for\n\t\t * freshness. The SVI one is also the roll-down anchor. Pyth is `0` only when\n\t\t * unusable.\n\t\t */\n\t\tpyth_spot_source_timestamp_ms: U64,\n\t\tblock_scholes_spot_source_timestamp_ms: U64,\n\t\tblock_scholes_forward_source_timestamp_ms: U64,\n\t\tblock_scholes_svi_source_timestamp_ms: U64,\n\t},\n});\nexport const SettledOrderRedeemed = new MoveStruct({\n\tname: `${$moduleName}::SettledOrderRedeemed`,\n\tfields: {\n\t\texpiry_market_id: bcs.Address,\n\t\taccount_id: bcs.Address,\n\t\torder_id: U256,\n\t\t/** Stable economic-position handle, constant across the replacement chain. */\n\t\tposition_root_id: U256,\n\t\towner: bcs.Address,\n\t\tpayout_amount: U64,\n\t\tonchain_timestamp_ms: U64,\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,cAAc;AACpB,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,kBAAkB,IAAI;EACtB,YAAY,IAAI;EAChB,UAAU;EAKV,kBAAkB;EAClB,OAAO,IAAI;EAMX,YAAY;EACZ,aAAa;EAEb,mBAAmB;EACnB,UAAU;EAEV,SAAS;EAET,aAAa;EAEb,uBAAuB;EACvB,aAAa;EAEb,aAAa;EAKb,cAAc;EAEd,yBAAyB;EAKzB,iBAAiB,IAAI,OAAO,IAAI,QAAQ;EAExC,qBAAqB,IAAI,OAAO,IAAI,QAAQ;EAC5C,sBAAsB;EAMtB,+BAA+B;EAC/B,wCAAwC;EACxC,2CAA2C;EAC3C,uCAAuC;EACvC;CACD,CAAC;AACF,MAAa,oBAAoB,IAAI,WAAW;CAC/C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,kBAAkB,IAAI;EACtB,YAAY,IAAI;EAChB,UAAU;EAKV,kBAAkB;EAClB,OAAO,IAAI;EACX,iBAAiB;EAEjB,oBAAoB;EAEpB,sBAAsB,IAAI,OAAO,KAAK;EAEtC,eAAe;EACf,aAAa;EACb,aAAa;EAEb,aAAa;EAEb,yBAAyB;EAKzB,iBAAiB,IAAI,OAAO,IAAI,QAAQ;EACxC,sBAAsB;EAOtB,+BAA+B;EAC/B,wCAAwC;EACxC,2CAA2C;EAC3C,uCAAuC;EACvC;CACD,CAAC;AACF,MAAa,uBAAuB,IAAI,WAAW;CAClD,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,kBAAkB,IAAI;EACtB,YAAY,IAAI;EAChB,UAAU;EAEV,kBAAkB;EAClB,OAAO,IAAI;EACX,eAAe;EACf,sBAAsB;EACtB;CACD,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { MoveStruct, normalizeMoveArguments } from "../utils/index.mjs";
|
|
2
2
|
import { U64 } from "../../bcs/integers.mjs";
|
|
3
3
|
import { Balance } from "./deps/sui/balance.mjs";
|
|
4
|
+
import { VecMap } from "./deps/sui/vec_map.mjs";
|
|
5
|
+
import { FrozenPricer } from "./pricing.mjs";
|
|
4
6
|
import { LpBook } from "./lp_book.mjs";
|
|
5
7
|
import { Ledger } from "./pool_accounting.mjs";
|
|
6
8
|
import { bcs } from "@mysten/sui/bcs";
|
|
@@ -12,21 +14,49 @@ import { bcs } from "@mysten/sui/bcs";
|
|
|
12
14
|
/**
|
|
13
15
|
* PLP token and pool vault.
|
|
14
16
|
*
|
|
15
|
-
* PoolVault owns the PLP treasury cap, idle
|
|
17
|
+
* PoolVault owns the PLP treasury cap, idle USDC, the protocol reserve,
|
|
16
18
|
* sponsor-funded fee incentives, per-expiry cash accounting, and the queued LP
|
|
17
|
-
* supply/withdraw requests. It coordinates the full-pool NAV valuation
|
|
18
|
-
*
|
|
19
|
+
* supply/withdraw requests. It coordinates the full-pool NAV valuation — an atomic
|
|
20
|
+
* oracle snapshot followed by resumable per-market valuation transactions, with
|
|
21
|
+
* trading live throughout (see `PoolValuation`) — and the unified per-market cash
|
|
19
22
|
* flow (initial funding, live rebalance/sweep, and settled-market sweep with
|
|
20
23
|
* terminal profit materialization). LPs queue supply/withdraw requests routed
|
|
21
|
-
* through a loaded Account; each flush (`finish_flush`) drains
|
|
22
|
-
* pool NAV, minting/burning PLP and delivering
|
|
23
|
-
* balance accumulator.
|
|
24
|
+
* through a loaded Account; each flush (`finish_flush`) drains the requests that
|
|
25
|
+
* predate its snapshot at the frozen pool NAV, minting/burning PLP and delivering
|
|
26
|
+
* fills to each account via the balance accumulator.
|
|
24
27
|
*/
|
|
25
28
|
const $moduleName = "@local-pkg/deepbook_predict::plp";
|
|
26
29
|
const PLP = new MoveStruct({
|
|
27
30
|
name: `${$moduleName}::PLP`,
|
|
28
31
|
fields: { dummy_field: bcs.bool() }
|
|
29
32
|
});
|
|
33
|
+
const PoolValuationProof = new MoveStruct({
|
|
34
|
+
name: `${$moduleName}::PoolValuationProof`,
|
|
35
|
+
fields: { dummy_field: bcs.bool() }
|
|
36
|
+
});
|
|
37
|
+
const SnapshotStage = new MoveStruct({
|
|
38
|
+
name: `${$moduleName}::SnapshotStage`,
|
|
39
|
+
fields: { dummy_field: bcs.bool() }
|
|
40
|
+
});
|
|
41
|
+
const PoolValuation = new MoveStruct({
|
|
42
|
+
name: `${$moduleName}::PoolValuation`,
|
|
43
|
+
fields: {
|
|
44
|
+
expected_expiry_markets: bcs.vector(bcs.Address),
|
|
45
|
+
valued_expiry_markets: bcs.vector(bcs.Address),
|
|
46
|
+
total_nav: U64,
|
|
47
|
+
frozen_pricers: VecMap(bcs.Address, bcs.option(FrozenPricer)),
|
|
48
|
+
sealed: bcs.bool(),
|
|
49
|
+
started_at_ms: U64,
|
|
50
|
+
supply_budget: bcs.option(U64),
|
|
51
|
+
withdraw_budget: bcs.option(U64),
|
|
52
|
+
supply_request_cutoff: U64,
|
|
53
|
+
withdraw_request_cutoff: U64,
|
|
54
|
+
frozen_idle_balance: U64,
|
|
55
|
+
frozen_profit_basis_credits: U64,
|
|
56
|
+
frozen_profit_basis_debits: U64,
|
|
57
|
+
frozen_pending_protocol_profit: U64
|
|
58
|
+
}
|
|
59
|
+
});
|
|
30
60
|
const PoolVault = new MoveStruct({
|
|
31
61
|
name: `${$moduleName}::PoolVault`,
|
|
32
62
|
fields: {
|
|
@@ -34,19 +64,11 @@ const PoolVault = new MoveStruct({
|
|
|
34
64
|
protocol_reserve_balance: Balance,
|
|
35
65
|
fee_incentive_reserve: Balance,
|
|
36
66
|
lp: LpBook,
|
|
37
|
-
expiry_accounting: Ledger
|
|
67
|
+
expiry_accounting: Ledger,
|
|
68
|
+
valuation: bcs.option(PoolValuation)
|
|
38
69
|
}
|
|
39
70
|
});
|
|
40
|
-
|
|
41
|
-
name: `${$moduleName}::PoolValuation`,
|
|
42
|
-
fields: {
|
|
43
|
-
pool_vault_id: bcs.Address,
|
|
44
|
-
expected_expiry_markets: bcs.vector(bcs.Address),
|
|
45
|
-
valued_expiry_markets: bcs.vector(bcs.Address),
|
|
46
|
-
total_nav: U64
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
/** Return idle DUSDC for SDK and devInspect state reads. */
|
|
71
|
+
/** Return idle USDC for SDK and devInspect state reads. */
|
|
50
72
|
function idleBalance(options) {
|
|
51
73
|
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
52
74
|
const argumentsTypes = [null];
|
|
@@ -122,10 +144,10 @@ function activeExpiryMarkets(options) {
|
|
|
122
144
|
});
|
|
123
145
|
}
|
|
124
146
|
/**
|
|
125
|
-
* Queue a supply request: pull `amount`
|
|
147
|
+
* Queue a supply request: pull `amount` USDC from account custody into queue
|
|
126
148
|
* escrow, recording the account's receive address as the fill recipient. The pull
|
|
127
|
-
* auto-settles any flush-delivered
|
|
128
|
-
* supply fee — zero by default — on the
|
|
149
|
+
* auto-settles any flush-delivered USDC first. The flush charges the protocol's
|
|
150
|
+
* supply fee — zero by default — on the USDC it takes in and prices shares on the
|
|
129
151
|
* remainder, so `min_plp_out` is measured after that fee. The account receives
|
|
130
152
|
* minted PLP only at a mark that mints at least `min_plp_out` for the whole
|
|
131
153
|
* `amount` — a **price floor**, not a promise of that many shares: if the pool cap
|
|
@@ -171,15 +193,15 @@ function requestSupply(options) {
|
|
|
171
193
|
* Queue a withdraw request: pull `amount` PLP shares from account custody into
|
|
172
194
|
* queue escrow, recording the account's receive address as the fill recipient. The
|
|
173
195
|
* pull auto-settles any flush-delivered PLP first. The flush withholds the
|
|
174
|
-
* protocol's withdraw fee from the marked payout, so `
|
|
196
|
+
* protocol's withdraw fee from the marked payout, so `min_usdc_out` is measured
|
|
175
197
|
* after the fee. The account is paid only at a mark that quotes at least
|
|
176
|
-
* `
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
198
|
+
* `min_usdc_out` for the whole `amount` — a **price floor**, not a promise of that
|
|
199
|
+
* much USDC: if idle liquidity covers only part of the payout, only the shares
|
|
200
|
+
* idle affords are burned, the fill is proportionally smaller at the same price,
|
|
201
|
+
* and the remainder stays queued with its limit rescaled. At the shipped attempt
|
|
202
|
+
* count of one, a flush whose mark quotes less cancels and refunds the request
|
|
203
|
+
* there and then; a higher configured count lets it rest and retry that many
|
|
204
|
+
* flushes first. Returns the queue index used to cancel before the flush.
|
|
183
205
|
*/
|
|
184
206
|
function requestWithdraw(options) {
|
|
185
207
|
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
@@ -199,7 +221,7 @@ function requestWithdraw(options) {
|
|
|
199
221
|
"auth",
|
|
200
222
|
"config",
|
|
201
223
|
"amount",
|
|
202
|
-
"
|
|
224
|
+
"minUsdcOut"
|
|
203
225
|
];
|
|
204
226
|
return (tx) => tx.moveCall({
|
|
205
227
|
package: packageAddress,
|
|
@@ -213,8 +235,8 @@ function requestWithdraw(options) {
|
|
|
213
235
|
});
|
|
214
236
|
}
|
|
215
237
|
/**
|
|
216
|
-
* Cancel a still-pending supply request, refunding its escrowed
|
|
217
|
-
*
|
|
238
|
+
* Cancel a still-pending supply request, refunding its escrowed USDC straight into
|
|
239
|
+
* the requesting account. `account` must be the request's recorded recipient.
|
|
218
240
|
*/
|
|
219
241
|
function cancelSupplyRequest(options) {
|
|
220
242
|
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|