@lightconexyz/lightcone-sdk 0.8.1-rc.8 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +198 -10
- package/dist/auth/client.d.ts +27 -1
- package/dist/auth/client.d.ts.map +1 -1
- package/dist/auth/client.js +94 -4
- package/dist/auth/client.js.map +1 -1
- package/dist/auth/index.d.ts +59 -5
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +31 -5
- package/dist/auth/index.js.map +1 -1
- package/dist/client.d.ts +49 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +70 -2
- package/dist/client.js.map +1 -1
- package/dist/context.d.ts +59 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +303 -6
- package/dist/context.js.map +1 -1
- package/dist/domain/market/client.d.ts +16 -0
- package/dist/domain/market/client.d.ts.map +1 -1
- package/dist/domain/market/client.js +33 -0
- package/dist/domain/market/client.js.map +1 -1
- package/dist/domain/market/convert.d.ts.map +1 -1
- package/dist/domain/market/convert.js +24 -10
- package/dist/domain/market/convert.js.map +1 -1
- package/dist/domain/market/index.d.ts +18 -4
- package/dist/domain/market/index.d.ts.map +1 -1
- package/dist/domain/market/index.js.map +1 -1
- package/dist/domain/market/outcome.d.ts +9 -3
- package/dist/domain/market/outcome.d.ts.map +1 -1
- package/dist/domain/market/outcome.js +10 -7
- package/dist/domain/market/outcome.js.map +1 -1
- package/dist/domain/market/tokens.js +8 -2
- package/dist/domain/market/tokens.js.map +1 -1
- package/dist/domain/market/wire.d.ts +20 -3
- package/dist/domain/market/wire.d.ts.map +1 -1
- package/dist/domain/market/wire.js.map +1 -1
- package/dist/domain/order/client.d.ts +8 -7
- package/dist/domain/order/client.d.ts.map +1 -1
- package/dist/domain/order/client.js +23 -8
- package/dist/domain/order/client.js.map +1 -1
- package/dist/domain/orderbook/client.d.ts +7 -1
- package/dist/domain/orderbook/client.d.ts.map +1 -1
- package/dist/domain/orderbook/client.js +54 -1
- package/dist/domain/orderbook/client.js.map +1 -1
- package/dist/domain/orderbook/index.d.ts +7 -9
- package/dist/domain/orderbook/index.d.ts.map +1 -1
- package/dist/domain/orderbook/index.js +28 -24
- package/dist/domain/orderbook/index.js.map +1 -1
- package/dist/domain/orderbook/state.d.ts +21 -16
- package/dist/domain/orderbook/state.d.ts.map +1 -1
- package/dist/domain/orderbook/state.js +36 -15
- package/dist/domain/orderbook/state.js.map +1 -1
- package/dist/domain/orderbook/ticker.d.ts +1 -0
- package/dist/domain/orderbook/ticker.d.ts.map +1 -1
- package/dist/domain/orderbook/ticker.js.map +1 -1
- package/dist/domain/orderbook/wire.d.ts +34 -10
- package/dist/domain/orderbook/wire.d.ts.map +1 -1
- package/dist/domain/orderbook/wire.js +47 -0
- package/dist/domain/orderbook/wire.js.map +1 -1
- package/dist/domain/position/builders.d.ts +6 -2
- package/dist/domain/position/builders.d.ts.map +1 -1
- package/dist/domain/position/builders.js +24 -8
- package/dist/domain/position/builders.js.map +1 -1
- package/dist/domain/position/client.d.ts +166 -12
- package/dist/domain/position/client.d.ts.map +1 -1
- package/dist/domain/position/client.js +614 -15
- package/dist/domain/position/client.js.map +1 -1
- package/dist/domain/position/index.d.ts +58 -3
- package/dist/domain/position/index.d.ts.map +1 -1
- package/dist/domain/position/index.js +1 -0
- package/dist/domain/position/index.js.map +1 -1
- package/dist/domain/position/state.d.ts +118 -0
- package/dist/domain/position/state.d.ts.map +1 -0
- package/dist/domain/position/state.js +262 -0
- package/dist/domain/position/state.js.map +1 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +2 -2
- package/dist/env.js.map +1 -1
- package/dist/error.d.ts +32 -2
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +59 -1
- package/dist/error.js.map +1 -1
- package/dist/http/client.d.ts +76 -1
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +259 -39
- package/dist/http/client.js.map +1 -1
- package/dist/http/credentialRestorer.d.ts +49 -0
- package/dist/http/credentialRestorer.d.ts.map +1 -0
- package/dist/http/credentialRestorer.js +3 -0
- package/dist/http/credentialRestorer.js.map +1 -0
- package/dist/http/index.d.ts +1 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/prelude.d.ts +10 -7
- package/dist/prelude.d.ts.map +1 -1
- package/dist/prelude.js +12 -2
- package/dist/prelude.js.map +1 -1
- package/dist/privy/client.d.ts +4 -0
- package/dist/privy/client.d.ts.map +1 -1
- package/dist/privy/client.js +4 -0
- package/dist/privy/client.js.map +1 -1
- package/dist/privy/index.d.ts +4 -4
- package/dist/privy/index.d.ts.map +1 -1
- package/dist/privy/index.js +11 -16
- package/dist/privy/index.js.map +1 -1
- package/dist/program/builder.d.ts +13 -11
- package/dist/program/builder.d.ts.map +1 -1
- package/dist/program/builder.js +31 -16
- package/dist/program/builder.js.map +1 -1
- package/dist/program/constants.d.ts +1 -0
- package/dist/program/constants.d.ts.map +1 -1
- package/dist/program/constants.js +1 -0
- package/dist/program/constants.js.map +1 -1
- package/dist/program/envelope.d.ts +14 -16
- package/dist/program/envelope.d.ts.map +1 -1
- package/dist/program/envelope.js +48 -39
- package/dist/program/envelope.js.map +1 -1
- package/dist/program/index.d.ts +2 -2
- package/dist/program/index.d.ts.map +1 -1
- package/dist/program/index.js +6 -4
- package/dist/program/index.js.map +1 -1
- package/dist/program/instructions.d.ts +17 -9
- package/dist/program/instructions.d.ts.map +1 -1
- package/dist/program/instructions.js +40 -19
- package/dist/program/instructions.js.map +1 -1
- package/dist/program/orders.d.ts +7 -8
- package/dist/program/orders.d.ts.map +1 -1
- package/dist/program/orders.js +20 -22
- package/dist/program/orders.js.map +1 -1
- package/dist/program/types.d.ts +4 -3
- package/dist/program/types.d.ts.map +1 -1
- package/dist/program/types.js.map +1 -1
- package/dist/rpc.d.ts +89 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +285 -4
- package/dist/rpc.js.map +1 -1
- package/dist/shared/api_response.d.ts +16 -1
- package/dist/shared/api_response.d.ts.map +1 -1
- package/dist/shared/api_response.js +26 -1
- package/dist/shared/api_response.js.map +1 -1
- package/dist/shared/index.d.ts +3 -3
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +13 -6
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/json.d.ts +5 -0
- package/dist/shared/json.d.ts.map +1 -0
- package/dist/shared/json.js +38 -0
- package/dist/shared/json.js.map +1 -0
- package/dist/shared/rejection.d.ts.map +1 -1
- package/dist/shared/rejection.js +8 -0
- package/dist/shared/rejection.js.map +1 -1
- package/dist/shared/scaling.d.ts +30 -18
- package/dist/shared/scaling.d.ts.map +1 -1
- package/dist/shared/scaling.js +153 -95
- package/dist/shared/scaling.js.map +1 -1
- package/dist/shared/signing.d.ts +17 -0
- package/dist/shared/signing.d.ts.map +1 -1
- package/dist/shared/signing.js +27 -0
- package/dist/shared/signing.js.map +1 -1
- package/dist/shared/types.d.ts +9 -7
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +12 -4
- package/dist/shared/types.js.map +1 -1
- package/dist/ws/client.browser.d.ts +4 -0
- package/dist/ws/client.browser.d.ts.map +1 -1
- package/dist/ws/client.browser.js +13 -1
- package/dist/ws/client.browser.js.map +1 -1
- package/dist/ws/client.node.d.ts +4 -0
- package/dist/ws/client.node.d.ts.map +1 -1
- package/dist/ws/client.node.js +13 -1
- package/dist/ws/client.node.js.map +1 -1
- package/dist/ws/index.d.ts +24 -0
- package/dist/ws/index.d.ts.map +1 -1
- package/dist/ws/index.js +176 -2
- package/dist/ws/index.js.map +1 -1
- package/dist/ws/subscriptions.d.ts +12 -1
- package/dist/ws/subscriptions.d.ts.map +1 -1
- package/dist/ws/subscriptions.js +11 -0
- package/dist/ws/subscriptions.js.map +1 -1
- package/dist/ws/types.d.ts +5 -0
- package/dist/ws/types.d.ts.map +1 -1
- package/dist/ws/types.js.map +1 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/orderbook/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type { OrderBookId, Side } from \"../../shared\";\n\nexport interface OrderbookResponse {\n id: number;\n market_pubkey: string;\n orderbook_id: string;\n base_token: string;\n quote_token: string;\n outcome_index?: number;\n tick_size: number;\n total_bids: number;\n total_asks: number;\n last_trade_price?: string;\n last_trade_time?: string;\n active: boolean;\n created_at: string;\n updated_at: string;\n}\n\nexport interface OrderbooksResponse {\n orderbooks: OrderbookResponse[];\n total: number;\n}\n\nexport interface RestBookLevel {\n price: string;\n size: string;\n orders?: number;\n}\n\n/**\n * REST depth response. Depth is capped server-side at 20 levels per side.\n */\nexport interface OrderbookDepthResponse {\n orderbook_id: OrderBookId;\n market_pubkey?: string;\n best_bid?: string;\n best_ask?: string;\n spread?: string;\n tick_size?: string;\n bids: RestBookLevel[];\n asks: RestBookLevel[];\n
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/orderbook/wire.ts"],"names":[],"mappings":";;AAkFA,oDA0BC;AAED,wDAkBC;AA9CD,SAAgB,oBAAoB,CAAC,IAAsB;IACzD,IACE,CAAC,IAAI;QACL,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAClD,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAClD,CAAC,wBAAwB,CAAC,IAAI,CAAC,6BAA6B,CAAC;QAC7D,OAAO,IAAI,CAAC,6BAA6B,KAAK,SAAS;QACvD,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;QACtC,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ;QAC1C,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ;QAC1C,OAAO,IAAI,CAAC,qBAAqB,KAAK,QAAQ;QAC9C,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACrC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,EACzC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO;QACL,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;QACzC,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;QACzC,0BAA0B,EAAE,IAAI,CAAC,6BAA6B;QAC9D,0BAA0B,EAAE,IAAI,CAAC,6BAA6B;QAC9D,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC/C,eAAe,EAAE,IAAI,CAAC,iBAAiB;QACvC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAsB;IAC3D,IACE,CAAC,IAAI;QACL,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;QACrC,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC;QAC7C,CAAC,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC;QAC9C,CAAC,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC;QAC9C,CAAC,IAAI,CAAC,aAAa,EACnB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,YAAY;QAC9B,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,aAAa,EAAE,IAAI,CAAC,cAAc;QAClC,aAAa,EAAE,IAAI,CAAC,cAAc;QAClC,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAChF,CAAC","sourcesContent":["import type { OrderBookId, OrderbookRules, Side, TradingRules } from \"../../shared\";\n\nexport interface TradingRulesWire {\n base_size_decimals: number;\n max_price_decimals: number;\n max_price_significant_figures: number;\n integer_prices_always_allowed: boolean;\n price_quantum: string;\n price_quantum_raw: string;\n base_size_quantum: string;\n base_size_quantum_raw: string;\n}\n\nexport interface OrderbookResponse {\n id: number;\n market_pubkey: string;\n orderbook_id: string;\n base_token: string;\n quote_token: string;\n outcome_index?: number;\n tick_size: number;\n total_bids: number;\n total_asks: number;\n last_trade_price?: string;\n last_trade_time?: string;\n active: boolean;\n created_at: string;\n updated_at: string;\n}\n\nexport interface OrderbooksResponse {\n orderbooks: OrderbookResponse[];\n total: number;\n}\n\nexport interface RestBookLevel {\n price: string;\n size: string;\n orders?: number;\n}\n\n/**\n * REST depth response. Depth is capped server-side at 20 levels per side.\n */\nexport interface OrderbookDepthResponse {\n orderbook_id: OrderBookId;\n market_pubkey?: string;\n best_bid?: string;\n best_ask?: string;\n spread?: string;\n /** Deprecated backend alias; never use for order admission. */\n tick_size?: string;\n price_quantum: string;\n /** Parsed exact rules; raw quantum strings are exposed as bigint values. */\n trading_rules: TradingRules;\n bids_truncated: boolean;\n asks_truncated: boolean;\n revision: bigint;\n captured_at_ms: bigint;\n bids: RestBookLevel[];\n asks: RestBookLevel[];\n /** Required display decimals; size is base-token on-chain precision. */\n decimals: OrderbookDepthDecimals;\n}\n\n/**\n * Price/size display decimals from the depth endpoint. Distinct from\n * `DecimalsResponse` (the `/decimals` endpoint).\n */\nexport interface OrderbookDepthDecimals {\n price: number;\n size: number;\n}\n\nexport interface DecimalsResponse {\n orderbook_id: string;\n base_decimals: number;\n quote_decimals: number;\n price_decimals: number;\n trading_rules: TradingRulesWire;\n}\n\nexport function tradingRulesFromWire(wire: TradingRulesWire): TradingRules {\n if (\n !wire ||\n !isNonNegativeSafeInteger(wire.base_size_decimals) ||\n !isNonNegativeSafeInteger(wire.max_price_decimals) ||\n !isNonNegativeSafeInteger(wire.max_price_significant_figures) ||\n typeof wire.integer_prices_always_allowed !== \"boolean\" ||\n typeof wire.price_quantum !== \"string\" ||\n typeof wire.base_size_quantum !== \"string\" ||\n typeof wire.price_quantum_raw !== \"string\" ||\n typeof wire.base_size_quantum_raw !== \"string\" ||\n !/^\\d+$/.test(wire.price_quantum_raw) ||\n !/^\\d+$/.test(wire.base_size_quantum_raw)\n ) {\n throw new Error(\"invalid trading_rules response\");\n }\n return {\n baseSizeDecimals: wire.base_size_decimals,\n maxPriceDecimals: wire.max_price_decimals,\n maxPriceSignificantFigures: wire.max_price_significant_figures,\n integerPricesAlwaysAllowed: wire.integer_prices_always_allowed,\n priceQuantum: wire.price_quantum,\n priceQuantumRaw: BigInt(wire.price_quantum_raw),\n baseSizeQuantum: wire.base_size_quantum,\n baseSizeQuantumRaw: BigInt(wire.base_size_quantum_raw),\n };\n}\n\nexport function orderbookRulesFromWire(wire: DecimalsResponse): OrderbookRules {\n if (\n !wire ||\n typeof wire.orderbook_id !== \"string\" ||\n !isNonNegativeSafeInteger(wire.base_decimals) ||\n !isNonNegativeSafeInteger(wire.quote_decimals) ||\n !isNonNegativeSafeInteger(wire.price_decimals) ||\n !wire.trading_rules\n ) {\n throw new Error(\"invalid orderbook decimals response\");\n }\n return {\n orderbookId: wire.orderbook_id,\n baseDecimals: wire.base_decimals,\n quoteDecimals: wire.quote_decimals,\n priceDecimals: wire.price_decimals,\n tradingRules: tradingRulesFromWire(wire.trading_rules),\n };\n}\n\nfunction isNonNegativeSafeInteger(value: unknown): value is number {\n return typeof value === \"number\" && Number.isSafeInteger(value) && value >= 0;\n}\n\nexport interface WsBookLevel {\n side: Side;\n price: string;\n size: string;\n /**\n * Exact quote-token amount represented by the underlying maker orders.\n * For grouped books this is independent of the displayed bucket price.\n */\n quote_notional: string;\n}\n\n/**\n * WS orderbook snapshot frame.\n *\n * The stream is snapshot-only: every data frame carries the full top-20\n * levels per side and replaces the previous book wholesale. `seq` is the\n * engine depth revision and is monotonic only within one subscription generation.\n */\nexport interface OrderBook {\n orderbook_id: OrderBookId;\n is_snapshot?: boolean;\n seq: bigint;\n resync?: boolean;\n timestamp?: string;\n bids: WsBookLevel[];\n asks: WsBookLevel[];\n bids_truncated?: boolean;\n asks_truncated?: boolean;\n /**\n * Aggregation tags echoed by the backend (omitted = full precision).\n * Always normalized server-side ((5, none) arrives as (5, 1)). Use\n * `aggregationFromFrame(book.n_sig_figs, book.mantissa)` to key\n * per-`(orderbook, aggregation)` book state.\n */\n n_sig_figs?: number;\n mantissa?: number;\n}\n\nexport interface WsTickerData {\n orderbook_id: OrderBookId;\n best_bid?: string;\n best_ask?: string;\n mid?: string;\n timestamp?: string;\n}\n"]}
|
|
@@ -32,6 +32,7 @@ export declare class WithdrawBuilder {
|
|
|
32
32
|
constructor(client: ClientContext, depositSource: DepositSource);
|
|
33
33
|
user(user: PublicKey): this;
|
|
34
34
|
mint(mint: PublicKey): this;
|
|
35
|
+
depositMint(depositMint: PublicKey): this;
|
|
35
36
|
amount(amount: bigint): this;
|
|
36
37
|
market(market: Market): this;
|
|
37
38
|
depositSource(source: DepositSource): this;
|
|
@@ -78,15 +79,18 @@ export declare class WithdrawFromPositionBuilder {
|
|
|
78
79
|
private readonly client;
|
|
79
80
|
private userValue?;
|
|
80
81
|
private marketValue?;
|
|
81
|
-
private
|
|
82
|
+
private depositMintValue?;
|
|
82
83
|
private amountValue?;
|
|
83
84
|
private outcomeIndexValue?;
|
|
85
|
+
private numOutcomesValue?;
|
|
84
86
|
constructor(client: ClientContext);
|
|
85
87
|
user(user: PublicKey): this;
|
|
86
88
|
market(market: PublicKey): this;
|
|
87
|
-
|
|
89
|
+
depositMint(depositMint: PublicKey): this;
|
|
90
|
+
mint(depositMint: PublicKey): this;
|
|
88
91
|
amount(amount: bigint): this;
|
|
89
92
|
outcomeIndex(index: number): this;
|
|
93
|
+
numOutcomes(numOutcomes: number): this;
|
|
90
94
|
buildIx(): TransactionInstruction;
|
|
91
95
|
buildTx(): Transaction;
|
|
92
96
|
signAndSubmit(): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/domain/position/builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/domain/position/builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
5
5
|
const context_1 = require("../../context");
|
|
6
6
|
const error_1 = require("../../error");
|
|
7
7
|
const instructions_1 = require("../../program/instructions");
|
|
8
|
+
const utils_1 = require("../../program/utils");
|
|
8
9
|
const shared_1 = require("../../shared");
|
|
9
10
|
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
10
11
|
function requireField(value, field) {
|
|
@@ -68,7 +69,7 @@ class DepositBuilder {
|
|
|
68
69
|
throw error_1.SdkError.missingMarketContext("market is required for Market deposit source");
|
|
69
70
|
}
|
|
70
71
|
const marketPubkey = new web3_js_1.PublicKey(market.pubkey);
|
|
71
|
-
const numOutcomes = market.
|
|
72
|
+
const numOutcomes = market.numOutcomes;
|
|
72
73
|
return (0, instructions_1.buildDepositIx)({ user, market: marketPubkey, depositMint: mint, amount }, numOutcomes, this.client.programId);
|
|
73
74
|
}
|
|
74
75
|
}
|
|
@@ -105,6 +106,9 @@ class WithdrawBuilder {
|
|
|
105
106
|
this.mintValue = mint;
|
|
106
107
|
return this;
|
|
107
108
|
}
|
|
109
|
+
depositMint(depositMint) {
|
|
110
|
+
return this.mint(depositMint);
|
|
111
|
+
}
|
|
108
112
|
amount(amount) {
|
|
109
113
|
this.amountValue = amount;
|
|
110
114
|
return this;
|
|
@@ -145,7 +149,8 @@ class WithdrawBuilder {
|
|
|
145
149
|
}
|
|
146
150
|
const marketPubkey = new web3_js_1.PublicKey(market.pubkey);
|
|
147
151
|
const outcomeIndex = requireField(this.outcomeIndexValue, "outcome_index");
|
|
148
|
-
|
|
152
|
+
(0, utils_1.validateOutcomeIndex)(outcomeIndex, market.numOutcomes);
|
|
153
|
+
return (0, instructions_1.buildWithdrawConditionalFromPositionIx)({ user, market: marketPubkey, depositMint: mint, amount, outcomeIndex }, this.client.programId);
|
|
149
154
|
}
|
|
150
155
|
}
|
|
151
156
|
}
|
|
@@ -195,7 +200,7 @@ class MergeBuilder {
|
|
|
195
200
|
throw error_1.SdkError.missingMarketContext("market is required for merge");
|
|
196
201
|
}
|
|
197
202
|
const marketPubkey = new web3_js_1.PublicKey(market.pubkey);
|
|
198
|
-
const numOutcomes = market.
|
|
203
|
+
const numOutcomes = market.numOutcomes;
|
|
199
204
|
return (0, instructions_1.buildMergeIx)({ user, market: marketPubkey, depositMint: mint, amount }, numOutcomes, this.client.programId);
|
|
200
205
|
}
|
|
201
206
|
buildTx() {
|
|
@@ -264,9 +269,10 @@ class WithdrawFromPositionBuilder {
|
|
|
264
269
|
client;
|
|
265
270
|
userValue;
|
|
266
271
|
marketValue;
|
|
267
|
-
|
|
272
|
+
depositMintValue;
|
|
268
273
|
amountValue;
|
|
269
274
|
outcomeIndexValue;
|
|
275
|
+
numOutcomesValue;
|
|
270
276
|
constructor(client) {
|
|
271
277
|
this.client = client;
|
|
272
278
|
}
|
|
@@ -278,10 +284,13 @@ class WithdrawFromPositionBuilder {
|
|
|
278
284
|
this.marketValue = market;
|
|
279
285
|
return this;
|
|
280
286
|
}
|
|
281
|
-
|
|
282
|
-
this.
|
|
287
|
+
depositMint(depositMint) {
|
|
288
|
+
this.depositMintValue = depositMint;
|
|
283
289
|
return this;
|
|
284
290
|
}
|
|
291
|
+
mint(depositMint) {
|
|
292
|
+
return this.depositMint(depositMint);
|
|
293
|
+
}
|
|
285
294
|
amount(amount) {
|
|
286
295
|
this.amountValue = amount;
|
|
287
296
|
return this;
|
|
@@ -290,13 +299,20 @@ class WithdrawFromPositionBuilder {
|
|
|
290
299
|
this.outcomeIndexValue = index;
|
|
291
300
|
return this;
|
|
292
301
|
}
|
|
302
|
+
numOutcomes(numOutcomes) {
|
|
303
|
+
this.numOutcomesValue = numOutcomes;
|
|
304
|
+
return this;
|
|
305
|
+
}
|
|
293
306
|
buildIx() {
|
|
294
307
|
const user = requireField(this.userValue, "user");
|
|
295
308
|
const market = requireField(this.marketValue, "market");
|
|
296
|
-
const
|
|
309
|
+
const depositMint = requireField(this.depositMintValue, "deposit_mint");
|
|
297
310
|
const amount = requireField(this.amountValue, "amount");
|
|
298
311
|
const outcomeIndex = requireField(this.outcomeIndexValue, "outcome_index");
|
|
299
|
-
|
|
312
|
+
const numOutcomes = requireField(this.numOutcomesValue, "num_outcomes");
|
|
313
|
+
(0, utils_1.validateOutcomes)(numOutcomes);
|
|
314
|
+
(0, utils_1.validateOutcomeIndex)(outcomeIndex, numOutcomes);
|
|
315
|
+
return (0, instructions_1.buildWithdrawConditionalFromPositionIx)({ user, market, depositMint, amount, outcomeIndex }, this.client.programId);
|
|
300
316
|
}
|
|
301
317
|
buildTx() {
|
|
302
318
|
const user = requireField(this.userValue, "user");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/domain/position/builders.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey, Transaction, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { resolveDepositSource, signAndSubmitTx } from \"../../context\";\nimport { SdkError } from \"../../error\";\nimport {\n buildDepositIx,\n buildDepositToGlobalIx,\n buildDepositToGlobalIxWithAlt,\n buildExtendPositionTokensIx,\n buildGlobalToMarketDepositIx,\n buildMergeIx,\n buildRedeemWinningsIx,\n buildWithdrawFromGlobalIx,\n buildWithdrawFromPositionIx,\n buildInitPositionTokensIx,\n} from \"../../program/instructions\";\nimport { DepositSource } from \"../../shared\";\nimport type { DepositToGlobalAltContext } from \"../../program/types\";\nimport type { Market } from \"../market\";\n\n// ─── Helpers ────────────────────────────────────────────────────────────────\n\nfunction requireField<T>(value: T | undefined, field: string): T {\n if (value === undefined) {\n throw SdkError.validation(`${field} is required`);\n }\n return value;\n}\n\n// ─── DepositBuilder ─────────────────────────────────────────────────────────\n\nexport class DepositBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private marketValue?: Market;\n private depositSourceValue?: DepositSource;\n\n constructor(client: ClientContext, depositSource: DepositSource) {\n this.client = client;\n this.depositSourceValue = depositSource;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n market(market: Market): this {\n this.marketValue = market;\n return this;\n }\n\n depositSource(source: DepositSource): this {\n this.depositSourceValue = source;\n return this;\n }\n\n withMarketDepositSource(market: Market): this {\n this.depositSourceValue = DepositSource.Market;\n this.marketValue = market;\n return this;\n }\n\n withGlobalDepositSource(): this {\n this.depositSourceValue = DepositSource.Global;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const source = resolveDepositSource(this.client, this.depositSourceValue);\n\n switch (source) {\n case DepositSource.Global:\n return buildDepositToGlobalIx({ user, mint, amount }, this.client.programId);\n case DepositSource.Market: {\n const market = this.marketValue;\n if (!market) {\n throw SdkError.missingMarketContext(\"market is required for Market deposit source\");\n }\n const marketPubkey = new PublicKey(market.pubkey);\n const numOutcomes = market.outcomes.length;\n return buildDepositIx(\n { user, market: marketPubkey, depositMint: mint, amount },\n numOutcomes,\n this.client.programId,\n );\n }\n }\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── WithdrawBuilder ────────────────────────────────────────────────────────\n\nexport class WithdrawBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private marketValue?: Market;\n private depositSourceValue?: DepositSource;\n private outcomeIndexValue?: number;\n\n constructor(client: ClientContext, depositSource: DepositSource) {\n this.client = client;\n this.depositSourceValue = depositSource;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n market(market: Market): this {\n this.marketValue = market;\n return this;\n }\n\n depositSource(source: DepositSource): this {\n this.depositSourceValue = source;\n return this;\n }\n\n outcomeIndex(index: number): this {\n this.outcomeIndexValue = index;\n return this;\n }\n\n withMarketDepositSource(market: Market): this {\n this.depositSourceValue = DepositSource.Market;\n this.marketValue = market;\n return this;\n }\n\n withGlobalDepositSource(): this {\n this.depositSourceValue = DepositSource.Global;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const source = resolveDepositSource(this.client, this.depositSourceValue);\n\n switch (source) {\n case DepositSource.Global:\n return buildWithdrawFromGlobalIx({ user, mint, amount }, this.client.programId);\n case DepositSource.Market: {\n const market = this.marketValue;\n if (!market) {\n throw SdkError.missingMarketContext(\"market is required for Market withdrawal\");\n }\n const marketPubkey = new PublicKey(market.pubkey);\n const outcomeIndex = requireField(this.outcomeIndexValue, \"outcome_index\");\n return buildWithdrawFromPositionIx(\n { user, market: marketPubkey, mint, amount, outcomeIndex },\n this.client.programId,\n );\n }\n }\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── MergeBuilder ──────────────────────────────────────────────────────────\n\nexport class MergeBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private marketValue?: Market;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n market(market: Market): this {\n this.marketValue = market;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const market = this.marketValue;\n if (!market) {\n throw SdkError.missingMarketContext(\"market is required for merge\");\n }\n const marketPubkey = new PublicKey(market.pubkey);\n const numOutcomes = market.outcomes.length;\n\n return buildMergeIx(\n { user, market: marketPubkey, depositMint: mint, amount },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── RedeemWinningsBuilder ──────────────────────────────────────────────────\n\nexport class RedeemWinningsBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private outcomeIndexValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n outcomeIndex(index: number): this {\n this.outcomeIndexValue = index;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const outcomeIndex = requireField(this.outcomeIndexValue, \"outcome_index\");\n\n return buildRedeemWinningsIx(\n { user, market, depositMint, amount },\n outcomeIndex,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── WithdrawFromPositionBuilder ────────────────────────────────────────────\n\nexport class WithdrawFromPositionBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private outcomeIndexValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n outcomeIndex(index: number): this {\n this.outcomeIndexValue = index;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const outcomeIndex = requireField(this.outcomeIndexValue, \"outcome_index\");\n\n return buildWithdrawFromPositionIx(\n { user, market, mint, amount, outcomeIndex },\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── InitPositionTokensBuilder ──────────────────────────────────────────────\n\nexport class InitPositionTokensBuilder {\n private readonly client: ClientContext;\n private payerValue?: PublicKey;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private depositMintsValue?: PublicKey[];\n private recentSlotValue?: bigint;\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n payer(payer: PublicKey): this {\n this.payerValue = payer;\n return this;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n depositMints(mints: PublicKey[]): this {\n this.depositMintsValue = mints;\n return this;\n }\n\n recentSlot(slot: bigint): this {\n this.recentSlotValue = slot;\n return this;\n }\n\n numOutcomes(n: number): this {\n this.numOutcomesValue = n;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const payer = requireField(this.payerValue, \"payer\");\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMints = requireField(this.depositMintsValue, \"deposit_mints\");\n const recentSlot = requireField(this.recentSlotValue, \"recent_slot\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n\n return buildInitPositionTokensIx(\n { payer, user, market, depositMints, recentSlot },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const payer = requireField(this.payerValue, \"payer\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: payer }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── ExtendPositionTokensBuilder ────────────────────────────────────────────\n\n/**\n * Operator-only builder for extending an existing position ALT after a market\n * adds new deposit mints.\n */\nexport class ExtendPositionTokensBuilder {\n private readonly client: ClientContext;\n private operatorValue?: PublicKey;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private lookupTableValue?: PublicKey;\n private depositMintsValue?: PublicKey[];\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n operator(operator: PublicKey): this {\n this.operatorValue = operator;\n return this;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n lookupTable(lookupTable: PublicKey): this {\n this.lookupTableValue = lookupTable;\n return this;\n }\n\n depositMints(mints: PublicKey[]): this {\n this.depositMintsValue = mints;\n return this;\n }\n\n numOutcomes(n: number): this {\n this.numOutcomesValue = n;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const operator = requireField(this.operatorValue, \"operator\");\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const lookupTable = requireField(this.lookupTableValue, \"lookup_table\");\n const depositMints = requireField(this.depositMintsValue, \"deposit_mints\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n\n return buildExtendPositionTokensIx(\n { operator, user, market, lookupTable, depositMints },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const operator = requireField(this.operatorValue, \"operator\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: operator }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── DepositToGlobalBuilder ─────────────────────────────────────────────────\n\nexport class DepositToGlobalBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private altContextValue?: DepositToGlobalAltContext;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n createAlt(recentSlot: bigint): this {\n this.altContextValue = { kind: \"create\", recentSlot };\n return this;\n }\n\n extendAlt(lookupTable: PublicKey): this {\n this.altContextValue = { kind: \"extend\", lookupTable };\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n\n const params = { user, mint, amount };\n return this.altContextValue\n ? buildDepositToGlobalIxWithAlt(params, this.altContextValue, this.client.programId)\n : buildDepositToGlobalIx(params, this.client.programId);\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── WithdrawFromGlobalBuilder ──────────────────────────────────────────────\n\nexport class WithdrawFromGlobalBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n\n return buildWithdrawFromGlobalIx({ user, mint, amount }, this.client.programId);\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── GlobalToMarketDepositBuilder ───────────────────────────────────────────\n\nexport class GlobalToMarketDepositBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n numOutcomes(n: number): this {\n this.numOutcomesValue = n;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n\n return buildGlobalToMarketDepositIx(\n { user, market, depositMint, amount },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/domain/position/builders.ts"],"names":[],"mappings":";;;AAAA,6CAAsF;AAEtF,2CAAsE;AACtE,uCAAuC;AACvC,6DAWoC;AACpC,+CAA6E;AAC7E,yCAA6C;AAI7C,+EAA+E;AAE/E,SAAS,YAAY,CAAI,KAAoB,EAAE,KAAa;IAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,gBAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAE/E,MAAa,cAAc;IACR,MAAM,CAAgB;IAC/B,SAAS,CAAa;IACtB,SAAS,CAAa;IACtB,WAAW,CAAU;IACrB,WAAW,CAAU;IACrB,kBAAkB,CAAiB;IAE3C,YAAY,MAAqB,EAAE,aAA4B;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,MAAqB;QACjC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,MAAc;QACpC,IAAI,CAAC,kBAAkB,GAAG,sBAAa,CAAC,MAAM,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,kBAAkB,GAAG,sBAAa,CAAC,MAAM,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAA,8BAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE1E,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,sBAAa,CAAC,MAAM;gBACvB,OAAO,IAAA,qCAAsB,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/E,KAAK,sBAAa,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;gBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,gBAAQ,CAAC,oBAAoB,CAAC,8CAA8C,CAAC,CAAC;gBACtF,CAAC;gBACD,MAAM,YAAY,GAAG,IAAI,mBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBACvC,OAAO,IAAA,6BAAc,EACnB,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EACzD,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AApFD,wCAoFC;AAED,+EAA+E;AAE/E,MAAa,eAAe;IACT,MAAM,CAAgB;IAC/B,SAAS,CAAa;IACtB,SAAS,CAAa;IACtB,WAAW,CAAU;IACrB,WAAW,CAAU;IACrB,kBAAkB,CAAiB;IACnC,iBAAiB,CAAU;IAEnC,YAAY,MAAqB,EAAE,aAA4B;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,WAAsB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,MAAqB;QACjC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,MAAc;QACpC,IAAI,CAAC,kBAAkB,GAAG,sBAAa,CAAC,MAAM,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,kBAAkB,GAAG,sBAAa,CAAC,MAAM,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAA,8BAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE1E,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,sBAAa,CAAC,MAAM;gBACvB,OAAO,IAAA,wCAAyB,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClF,KAAK,sBAAa,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;gBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,gBAAQ,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,CAAC;gBAClF,CAAC;gBACD,MAAM,YAAY,GAAG,IAAI,mBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;gBAC3E,IAAA,4BAAoB,EAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBACvD,OAAO,IAAA,qDAAsC,EAC3C,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EACvE,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AA9FD,0CA8FC;AAED,8EAA8E;AAE9E,MAAa,YAAY;IACN,MAAM,CAAgB;IAC/B,SAAS,CAAa;IACtB,SAAS,CAAa;IACtB,WAAW,CAAU;IACrB,WAAW,CAAU;IAE7B,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,gBAAQ,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,mBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEvC,OAAO,IAAA,2BAAY,EACjB,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EACzD,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AA3DD,oCA2DC;AAED,+EAA+E;AAE/E,MAAa,qBAAqB;IACf,MAAM,CAAgB;IAC/B,SAAS,CAAa;IACtB,WAAW,CAAa;IACxB,SAAS,CAAa;IACtB,WAAW,CAAU;IACrB,iBAAiB,CAAU;IAEnC,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAiB;QACtB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAE3E,OAAO,IAAA,oCAAqB,EAC1B,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EACrC,YAAY,EACZ,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AA7DD,sDA6DC;AAED,+EAA+E;AAE/E,MAAa,2BAA2B;IACrB,MAAM,CAAgB;IAC/B,SAAS,CAAa;IACtB,WAAW,CAAa;IACxB,gBAAgB,CAAa;IAC7B,WAAW,CAAU;IACrB,iBAAiB,CAAU;IAC3B,gBAAgB,CAAU;IAElC,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAiB;QACtB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,WAAsB;QAChC,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,WAAsB;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QACxE,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;QAC9B,IAAA,4BAAoB,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAEhD,OAAO,IAAA,qDAAsC,EAC3C,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,EACnD,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAzED,kEAyEC;AAED,+EAA+E;AAE/E,MAAa,yBAAyB;IACnB,MAAM,CAAgB;IAC/B,UAAU,CAAa;IACvB,SAAS,CAAa;IACtB,WAAW,CAAa;IACxB,iBAAiB,CAAe;IAChC,eAAe,CAAU;IACzB,gBAAgB,CAAU;IAElC,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAgB;QACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAiB;QACtB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,KAAkB;QAC7B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,CAAS;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAExE,OAAO,IAAA,wCAAyB,EAC9B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,EACjD,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AApED,8DAoEC;AAED,+EAA+E;AAE/E;;;GAGG;AACH,MAAa,2BAA2B;IACrB,MAAM,CAAgB;IAC/B,aAAa,CAAa;IAC1B,SAAS,CAAa;IACtB,WAAW,CAAa;IACxB,gBAAgB,CAAa;IAC7B,iBAAiB,CAAe;IAChC,gBAAgB,CAAU;IAElC,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,QAAmB;QAC1B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAiB;QACtB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,WAAsB;QAChC,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,KAAkB;QAC7B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,CAAS;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAExE,OAAO,IAAA,0CAA2B,EAChC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,EACrD,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AApED,kEAoEC;AAED,+EAA+E;AAE/E,MAAa,sBAAsB;IAChB,MAAM,CAAgB;IAC/B,SAAS,CAAa;IACtB,SAAS,CAAa;IACtB,WAAW,CAAU;IACrB,eAAe,CAA6B;IAEpD,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,UAAkB;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,WAAsB;QAC9B,IAAI,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,eAAe;YACzB,CAAC,CAAC,IAAA,4CAA6B,EAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACpF,CAAC,CAAC,IAAA,qCAAsB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAzDD,wDAyDC;AAED,+EAA+E;AAE/E,MAAa,yBAAyB;IACnB,MAAM,CAAgB;IAC/B,SAAS,CAAa;IACtB,SAAS,CAAa;IACtB,WAAW,CAAU;IAE7B,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAExD,OAAO,IAAA,wCAAyB,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AA3CD,8DA2CC;AAED,+EAA+E;AAE/E,MAAa,4BAA4B;IACtB,MAAM,CAAgB;IAC/B,SAAS,CAAa;IACtB,WAAW,CAAa;IACxB,SAAS,CAAa;IACtB,WAAW,CAAU;IACrB,gBAAgB,CAAU;IAElC,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAiB;QACtB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,CAAS;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAExE,OAAO,IAAA,2CAA4B,EACjC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EACrC,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AA7DD,oEA6DC","sourcesContent":["import { PublicKey, Transaction, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { resolveDepositSource, signAndSubmitTx } from \"../../context\";\nimport { SdkError } from \"../../error\";\nimport {\n buildDepositIx,\n buildDepositToGlobalIx,\n buildDepositToGlobalIxWithAlt,\n buildExtendPositionTokensIx,\n buildGlobalToMarketDepositIx,\n buildMergeIx,\n buildRedeemWinningsIx,\n buildWithdrawFromGlobalIx,\n buildWithdrawConditionalFromPositionIx,\n buildInitPositionTokensIx,\n} from \"../../program/instructions\";\nimport { validateOutcomeIndex, validateOutcomes } from \"../../program/utils\";\nimport { DepositSource } from \"../../shared\";\nimport type { DepositToGlobalAltContext } from \"../../program/types\";\nimport type { Market } from \"../market\";\n\n// ─── Helpers ────────────────────────────────────────────────────────────────\n\nfunction requireField<T>(value: T | undefined, field: string): T {\n if (value === undefined) {\n throw SdkError.validation(`${field} is required`);\n }\n return value;\n}\n\n// ─── DepositBuilder ─────────────────────────────────────────────────────────\n\nexport class DepositBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private marketValue?: Market;\n private depositSourceValue?: DepositSource;\n\n constructor(client: ClientContext, depositSource: DepositSource) {\n this.client = client;\n this.depositSourceValue = depositSource;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n market(market: Market): this {\n this.marketValue = market;\n return this;\n }\n\n depositSource(source: DepositSource): this {\n this.depositSourceValue = source;\n return this;\n }\n\n withMarketDepositSource(market: Market): this {\n this.depositSourceValue = DepositSource.Market;\n this.marketValue = market;\n return this;\n }\n\n withGlobalDepositSource(): this {\n this.depositSourceValue = DepositSource.Global;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const source = resolveDepositSource(this.client, this.depositSourceValue);\n\n switch (source) {\n case DepositSource.Global:\n return buildDepositToGlobalIx({ user, mint, amount }, this.client.programId);\n case DepositSource.Market: {\n const market = this.marketValue;\n if (!market) {\n throw SdkError.missingMarketContext(\"market is required for Market deposit source\");\n }\n const marketPubkey = new PublicKey(market.pubkey);\n const numOutcomes = market.numOutcomes;\n return buildDepositIx(\n { user, market: marketPubkey, depositMint: mint, amount },\n numOutcomes,\n this.client.programId,\n );\n }\n }\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── WithdrawBuilder ────────────────────────────────────────────────────────\n\nexport class WithdrawBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private marketValue?: Market;\n private depositSourceValue?: DepositSource;\n private outcomeIndexValue?: number;\n\n constructor(client: ClientContext, depositSource: DepositSource) {\n this.client = client;\n this.depositSourceValue = depositSource;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n depositMint(depositMint: PublicKey): this {\n return this.mint(depositMint);\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n market(market: Market): this {\n this.marketValue = market;\n return this;\n }\n\n depositSource(source: DepositSource): this {\n this.depositSourceValue = source;\n return this;\n }\n\n outcomeIndex(index: number): this {\n this.outcomeIndexValue = index;\n return this;\n }\n\n withMarketDepositSource(market: Market): this {\n this.depositSourceValue = DepositSource.Market;\n this.marketValue = market;\n return this;\n }\n\n withGlobalDepositSource(): this {\n this.depositSourceValue = DepositSource.Global;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const source = resolveDepositSource(this.client, this.depositSourceValue);\n\n switch (source) {\n case DepositSource.Global:\n return buildWithdrawFromGlobalIx({ user, mint, amount }, this.client.programId);\n case DepositSource.Market: {\n const market = this.marketValue;\n if (!market) {\n throw SdkError.missingMarketContext(\"market is required for Market withdrawal\");\n }\n const marketPubkey = new PublicKey(market.pubkey);\n const outcomeIndex = requireField(this.outcomeIndexValue, \"outcome_index\");\n validateOutcomeIndex(outcomeIndex, market.numOutcomes);\n return buildWithdrawConditionalFromPositionIx(\n { user, market: marketPubkey, depositMint: mint, amount, outcomeIndex },\n this.client.programId,\n );\n }\n }\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── MergeBuilder ──────────────────────────────────────────────────────────\n\nexport class MergeBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private marketValue?: Market;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n market(market: Market): this {\n this.marketValue = market;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const market = this.marketValue;\n if (!market) {\n throw SdkError.missingMarketContext(\"market is required for merge\");\n }\n const marketPubkey = new PublicKey(market.pubkey);\n const numOutcomes = market.numOutcomes;\n\n return buildMergeIx(\n { user, market: marketPubkey, depositMint: mint, amount },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── RedeemWinningsBuilder ──────────────────────────────────────────────────\n\nexport class RedeemWinningsBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private outcomeIndexValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n outcomeIndex(index: number): this {\n this.outcomeIndexValue = index;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const outcomeIndex = requireField(this.outcomeIndexValue, \"outcome_index\");\n\n return buildRedeemWinningsIx(\n { user, market, depositMint, amount },\n outcomeIndex,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── WithdrawFromPositionBuilder ────────────────────────────────────────────\n\nexport class WithdrawFromPositionBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private depositMintValue?: PublicKey;\n private amountValue?: bigint;\n private outcomeIndexValue?: number;\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n depositMint(depositMint: PublicKey): this {\n this.depositMintValue = depositMint;\n return this;\n }\n\n mint(depositMint: PublicKey): this {\n return this.depositMint(depositMint);\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n outcomeIndex(index: number): this {\n this.outcomeIndexValue = index;\n return this;\n }\n\n numOutcomes(numOutcomes: number): this {\n this.numOutcomesValue = numOutcomes;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMint = requireField(this.depositMintValue, \"deposit_mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const outcomeIndex = requireField(this.outcomeIndexValue, \"outcome_index\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n validateOutcomes(numOutcomes);\n validateOutcomeIndex(outcomeIndex, numOutcomes);\n\n return buildWithdrawConditionalFromPositionIx(\n { user, market, depositMint, amount, outcomeIndex },\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── InitPositionTokensBuilder ──────────────────────────────────────────────\n\nexport class InitPositionTokensBuilder {\n private readonly client: ClientContext;\n private payerValue?: PublicKey;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private depositMintsValue?: PublicKey[];\n private recentSlotValue?: bigint;\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n payer(payer: PublicKey): this {\n this.payerValue = payer;\n return this;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n depositMints(mints: PublicKey[]): this {\n this.depositMintsValue = mints;\n return this;\n }\n\n recentSlot(slot: bigint): this {\n this.recentSlotValue = slot;\n return this;\n }\n\n numOutcomes(n: number): this {\n this.numOutcomesValue = n;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const payer = requireField(this.payerValue, \"payer\");\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMints = requireField(this.depositMintsValue, \"deposit_mints\");\n const recentSlot = requireField(this.recentSlotValue, \"recent_slot\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n\n return buildInitPositionTokensIx(\n { payer, user, market, depositMints, recentSlot },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const payer = requireField(this.payerValue, \"payer\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: payer }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── ExtendPositionTokensBuilder ────────────────────────────────────────────\n\n/**\n * Operator-only builder for extending an existing position ALT after a market\n * adds new deposit mints.\n */\nexport class ExtendPositionTokensBuilder {\n private readonly client: ClientContext;\n private operatorValue?: PublicKey;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private lookupTableValue?: PublicKey;\n private depositMintsValue?: PublicKey[];\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n operator(operator: PublicKey): this {\n this.operatorValue = operator;\n return this;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n lookupTable(lookupTable: PublicKey): this {\n this.lookupTableValue = lookupTable;\n return this;\n }\n\n depositMints(mints: PublicKey[]): this {\n this.depositMintsValue = mints;\n return this;\n }\n\n numOutcomes(n: number): this {\n this.numOutcomesValue = n;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const operator = requireField(this.operatorValue, \"operator\");\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const lookupTable = requireField(this.lookupTableValue, \"lookup_table\");\n const depositMints = requireField(this.depositMintsValue, \"deposit_mints\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n\n return buildExtendPositionTokensIx(\n { operator, user, market, lookupTable, depositMints },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const operator = requireField(this.operatorValue, \"operator\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: operator }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── DepositToGlobalBuilder ─────────────────────────────────────────────────\n\nexport class DepositToGlobalBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private altContextValue?: DepositToGlobalAltContext;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n createAlt(recentSlot: bigint): this {\n this.altContextValue = { kind: \"create\", recentSlot };\n return this;\n }\n\n extendAlt(lookupTable: PublicKey): this {\n this.altContextValue = { kind: \"extend\", lookupTable };\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n\n const params = { user, mint, amount };\n return this.altContextValue\n ? buildDepositToGlobalIxWithAlt(params, this.altContextValue, this.client.programId)\n : buildDepositToGlobalIx(params, this.client.programId);\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── WithdrawFromGlobalBuilder ──────────────────────────────────────────────\n\nexport class WithdrawFromGlobalBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const mint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n\n return buildWithdrawFromGlobalIx({ user, mint, amount }, this.client.programId);\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── GlobalToMarketDepositBuilder ───────────────────────────────────────────\n\nexport class GlobalToMarketDepositBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n numOutcomes(n: number): this {\n this.numOutcomesValue = n;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n\n return buildGlobalToMarketDepositIx(\n { user, market, depositMint, amount },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n"]}
|
|
@@ -1,10 +1,57 @@
|
|
|
1
1
|
import { PublicKey, Transaction, type TransactionInstruction } from "@solana/web3.js";
|
|
2
2
|
import type { ClientContext } from "../../context";
|
|
3
|
-
import type { Position as ProgramPosition, RedeemWinningsParams, WithdrawFromPositionParams, InitPositionTokensParams, ExtendPositionTokensParams, DepositToGlobalParams, DepositToGlobalAltContext, GlobalToMarketDepositParams, WithdrawFromGlobalParams, ClosePositionAltParams, ClosePositionTokenAccountsParams } from "../../program/types";
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
3
|
+
import type { Position as ProgramPosition, RedeemWinningsParams, WithdrawConditionalFromPositionParams, WithdrawFromPositionParams, InitPositionTokensParams, ExtendPositionTokensParams, DepositToGlobalParams, DepositToGlobalAltContext, GlobalToMarketDepositParams, WithdrawFromGlobalParams, ClosePositionAltParams, ClosePositionTokenAccountsParams } from "../../program/types";
|
|
4
|
+
import type { Market } from "../market";
|
|
5
|
+
import type { DepositTokenBalancesSnapshot } from "./index";
|
|
6
|
+
import { type SolActionCosts, type SolBalanceAvailability, type WalletDepositBalancesState } from "./state";
|
|
6
7
|
import type { MarketPositionsResponse, PositionsResponse } from "./wire";
|
|
7
8
|
import { DepositBuilder, MergeBuilder, WithdrawBuilder, RedeemWinningsBuilder, WithdrawFromPositionBuilder, InitPositionTokensBuilder, ExtendPositionTokensBuilder, DepositToGlobalBuilder, WithdrawFromGlobalBuilder, GlobalToMarketDepositBuilder } from "./builders";
|
|
9
|
+
/**
|
|
10
|
+
* Identifies the SOL-aware operation represented by an action plan.
|
|
11
|
+
*
|
|
12
|
+
* `wrap` and `unwrapAll` identify explicit native-keypair conversion plans.
|
|
13
|
+
* Ordinary plan kinds do not call those planners or include canonical-account
|
|
14
|
+
* closure.
|
|
15
|
+
*/
|
|
16
|
+
export type SolActionKind = "split" | "merge" | "redeem" | "nativeWithdraw" | "wrap" | "unwrapAll";
|
|
17
|
+
/** Expected changes to the separately authoritative SOL components. */
|
|
18
|
+
export interface SolComponentDelta {
|
|
19
|
+
/** System-account change in lamports, including unsponsored costs. */
|
|
20
|
+
nativeLamports: bigint;
|
|
21
|
+
/** Persistent canonical WSOL ATA change in lamports. */
|
|
22
|
+
canonicalWsolLamports: bigint;
|
|
23
|
+
}
|
|
24
|
+
/** Unsigned prepared transaction plus the exact preflight facts authorizing it. */
|
|
25
|
+
export interface SolActionPlan {
|
|
26
|
+
/** Operation whose balance semantics produced this plan. */
|
|
27
|
+
kind: SolActionKind;
|
|
28
|
+
/** Fee-prepared message that submission must preserve exactly. */
|
|
29
|
+
transaction: Transaction;
|
|
30
|
+
/** Live fee/rent observations and explicit sponsorship capability. */
|
|
31
|
+
costs: SolActionCosts;
|
|
32
|
+
/** Component totals after action-specific native reserve. */
|
|
33
|
+
availability: SolBalanceAvailability;
|
|
34
|
+
/** Component-wise projection that does not replace authoritative state. */
|
|
35
|
+
expectedDelta: SolComponentDelta;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Derive the cross-SDK temporary-account seed for native withdrawal.
|
|
39
|
+
*
|
|
40
|
+
* SHA-256 receives the ASCII domain `lightcone:wsol-withdraw:v1`, one zero byte,
|
|
41
|
+
* raw 32-byte blockhash, wallet, and recipient keys, the amount as unsigned
|
|
42
|
+
* eight-byte big-endian lamports, then the one-byte attempt. The first 16 digest
|
|
43
|
+
* bytes become 32 lowercase hexadecimal ASCII characters for Solana's seed limit.
|
|
44
|
+
*/
|
|
45
|
+
export declare function nativeWithdrawSeed(recentBlockhash: string, wallet: PublicKey, recipient: PublicKey, amountLamports: bigint, attempt: number): string;
|
|
46
|
+
/**
|
|
47
|
+
* Plans position operations and explicit canonical WSOL conversions.
|
|
48
|
+
*
|
|
49
|
+
* Explicit conversion state flows as follows: complete matching wallet state and
|
|
50
|
+
* native keypair -> live account and cost reads -> signer, account, reserve, and
|
|
51
|
+
* amount guards -> fee-prepared plan -> unchanged prepared submission -> complete
|
|
52
|
+
* snapshot covering the confirmed slot. An uncertain submission returns control
|
|
53
|
+
* to the caller, which refreshes authoritative state before planning again.
|
|
54
|
+
*/
|
|
8
55
|
export declare class Positions {
|
|
9
56
|
private readonly client;
|
|
10
57
|
constructor(client: ClientContext);
|
|
@@ -44,27 +91,132 @@ export declare class Positions {
|
|
|
44
91
|
*/
|
|
45
92
|
positionsForMarketWithCookies(marketPubkey: string, cookieHeader: string): Promise<MarketPositionsResponse>;
|
|
46
93
|
/**
|
|
47
|
-
*
|
|
94
|
+
* Fetch a complete authenticated SPL and native-SOL balance snapshot.
|
|
48
95
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* is not an error.
|
|
96
|
+
* `minContextSlot` lower-bounds the cross-component snapshot. Native SOL is
|
|
97
|
+
* required canonical nine-decimal text and remains outside the SPL map. The
|
|
98
|
+
* generic HTTP layer trusts that shape at runtime; WebSocket frames are decoded
|
|
99
|
+
* strictly, while malformed REST exact values fail later when state scales them.
|
|
54
100
|
*/
|
|
55
|
-
depositTokenBalances(): Promise<
|
|
101
|
+
depositTokenBalances(minContextSlot?: number): Promise<DepositTokenBalancesSnapshot>;
|
|
56
102
|
/**
|
|
57
103
|
* Same as {@link depositTokenBalances}, but uses the supplied `cookieHeader`
|
|
58
104
|
* for this call instead of the SDK's process-wide cookie store.
|
|
59
105
|
*
|
|
60
106
|
* Intended for server-side cookie forwarding (SSR / server functions)
|
|
61
107
|
* where the per-request browser cookie can't propagate to the shared
|
|
62
|
-
* client.
|
|
108
|
+
* client. The complete response has the same separate, exact native-SOL
|
|
109
|
+
* contract as {@link depositTokenBalances}. In a browser this is equivalent to
|
|
63
110
|
* {@link depositTokenBalances} because the runtime is already attaching
|
|
64
111
|
* the cookie via `credentials: "include"`.
|
|
65
112
|
*/
|
|
66
|
-
depositTokenBalancesWithCookies(cookieHeader: string): Promise<
|
|
113
|
+
depositTokenBalancesWithCookies(minContextSlot: number | undefined, cookieHeader: string): Promise<DepositTokenBalancesSnapshot>;
|
|
114
|
+
/**
|
|
115
|
+
* Return a fee-prepared plan for an exact canonical WSOL wrap.
|
|
116
|
+
*
|
|
117
|
+
* The authenticated Trading Wallet must have a local native keypair and complete
|
|
118
|
+
* balance state. Live canonical account data must match that state. An existing
|
|
119
|
+
* account must have account lamports equal to its token amount plus native
|
|
120
|
+
* reserve. Otherwise a later `SyncNative` instruction would recalculate the WSOL
|
|
121
|
+
* token amount from account lamports and wrap donated excess beyond
|
|
122
|
+
* `amountLamports`. The returned transaction contains strict Tokenkeg ATA
|
|
123
|
+
* creation only when the account is absent. It then contains the exact transfer
|
|
124
|
+
* and `SyncNative`. Availability uses the ordinary reserve floor.
|
|
125
|
+
*
|
|
126
|
+
* Callers rebuild immediately before prepared submission. They retain the
|
|
127
|
+
* returned component projection until a complete snapshot covers the confirmed
|
|
128
|
+
* slot. An uncertain outcome requires authoritative refresh before another plan.
|
|
129
|
+
*/
|
|
130
|
+
planWrapSol(amountLamports: bigint, state: WalletDepositBalancesState): Promise<SolActionPlan>;
|
|
131
|
+
/**
|
|
132
|
+
* Return a fee-prepared plan for closing the complete canonical WSOL account.
|
|
133
|
+
*
|
|
134
|
+
* The Trading Wallet must have a local native keypair. Canonical WSOL in the
|
|
135
|
+
* complete balance state must be positive and equal the live token amount. The
|
|
136
|
+
* returned transaction contains one `CloseAccount` instruction whose authority,
|
|
137
|
+
* destination, and fee payer are that wallet. If submitted successfully, the
|
|
138
|
+
* instruction transfers the complete account balance, including rent and donated
|
|
139
|
+
* lamports. The returned costs contain only the fresh fee. Availability requires
|
|
140
|
+
* native SOL to fund that fee without relying on the later account transfer.
|
|
141
|
+
*
|
|
142
|
+
* Callers rebuild immediately before prepared submission. They retain the
|
|
143
|
+
* returned component projection until a complete snapshot covers the confirmed
|
|
144
|
+
* slot. Signing, submission, or confirmation uncertainty requires authoritative
|
|
145
|
+
* refresh and does not authorize automatic resubmission.
|
|
146
|
+
*/
|
|
147
|
+
planUnwrapWsolAll(state: WalletDepositBalancesState): Promise<SolActionPlan>;
|
|
148
|
+
/**
|
|
149
|
+
* Plan one atomic split that consumes canonical WSOL before wrapping a shortfall.
|
|
150
|
+
* Amounts and live costs are lamports; unavailable account, fee, or rent reads
|
|
151
|
+
* fail closed, and sponsored planning is rejected until a sponsor owns costs.
|
|
152
|
+
*/
|
|
153
|
+
planSolSplit(market: Market, amountLamports: bigint, state: WalletDepositBalancesState, sponsored: boolean): Promise<SolActionPlan>;
|
|
154
|
+
/**
|
|
155
|
+
* Plan a merge that leaves returned WSOL in the persistent canonical ATA.
|
|
156
|
+
* The prepared transaction does not mutate cached state; refresh authority
|
|
157
|
+
* after confirmed submission.
|
|
158
|
+
*/
|
|
159
|
+
planSolMerge(market: Market, amountLamports: bigint, state: WalletDepositBalancesState, sponsored: boolean): Promise<SolActionPlan>;
|
|
160
|
+
/**
|
|
161
|
+
* Plan a redemption that leaves returned WSOL in the persistent canonical ATA.
|
|
162
|
+
* `amountLamports` is exact collateral scale; `outcomeIndex` is validated
|
|
163
|
+
* against the supplied authoritative `numOutcomes`.
|
|
164
|
+
*/
|
|
165
|
+
planSolRedeem(market: PublicKey, amountLamports: bigint, outcomeIndex: number, numOutcomes: number, state: WalletDepositBalancesState, sponsored: boolean): Promise<SolActionPlan>;
|
|
166
|
+
/**
|
|
167
|
+
* Plan exact native SOL delivery without closing the canonical WSOL ATA.
|
|
168
|
+
*
|
|
169
|
+
* Native funds are preferred. A shortfall uses a bounded seeded Tokenkeg
|
|
170
|
+
* account whose rent returns on close; all account, rent, and fee reads fail
|
|
171
|
+
* closed. At most eight blockhash-scoped candidates bound RPC latency while
|
|
172
|
+
* making accidental exhaustion negligible. The returned transaction already
|
|
173
|
+
* carries its prepared message.
|
|
174
|
+
*/
|
|
175
|
+
planNativeSolWithdrawal(recipient: PublicKey, amountLamports: bigint, state: WalletDepositBalancesState, sponsored: boolean): Promise<SolActionPlan>;
|
|
176
|
+
/** Resolve the authenticated wallet only from fresh matching cached authority. */
|
|
177
|
+
private planningWallet;
|
|
178
|
+
/**
|
|
179
|
+
* Return the authenticated Trading Wallet after native-keypair validation.
|
|
180
|
+
*
|
|
181
|
+
* Complete wallet state and identity are validated by `planningWallet`. This
|
|
182
|
+
* additional guard rejects wallet-adapter and Privy strategies before conversion
|
|
183
|
+
* RPC reads. Ordinary planners do not call this method.
|
|
184
|
+
*/
|
|
185
|
+
private conversionPlanningWallet;
|
|
186
|
+
/**
|
|
187
|
+
* Return an unsigned wrap transaction with exact instruction ordering.
|
|
188
|
+
*
|
|
189
|
+
* When planning observed no canonical ATA, the first instruction is strict ATA
|
|
190
|
+
* creation. A concurrently created ATA therefore makes execution fail instead of
|
|
191
|
+
* using account state that was absent from the plan. The transfer and `SyncNative`
|
|
192
|
+
* instructions follow. Fee preparation later attaches the live blockhash.
|
|
193
|
+
*/
|
|
194
|
+
private buildWrapSolTransaction;
|
|
195
|
+
/**
|
|
196
|
+
* Return an unsigned transaction containing one canonical `CloseAccount`.
|
|
197
|
+
*
|
|
198
|
+
* The Trading Wallet is the fee payer, close authority, and destination. A later
|
|
199
|
+
* successful submission transfers the complete account balance to that wallet.
|
|
200
|
+
*/
|
|
201
|
+
private buildUnwrapWsolAllTransaction;
|
|
202
|
+
/**
|
|
203
|
+
* Build idempotent creation of the persistent Tokenkeg WSOL ATA.
|
|
204
|
+
* Tokenkeg is Solana's legacy SPL Token Program; canonical native-mint ATA
|
|
205
|
+
* derivation is pinned to it rather than Token-2022 across the protocol.
|
|
206
|
+
*/
|
|
207
|
+
private createCanonicalWsolAccount;
|
|
208
|
+
/** Read canonical-account existence and upfront rent for merge/redeem plans. */
|
|
209
|
+
private receivePlanContext;
|
|
210
|
+
/** Finish merge/redeem planning with live fee authority and component deltas. */
|
|
211
|
+
private finishReceivePlan;
|
|
212
|
+
/**
|
|
213
|
+
* Build the sole WSOL-to-native path without closing canonical authority.
|
|
214
|
+
* The temporary Tokenkeg account is initialized, funded, and closed back to
|
|
215
|
+
* the wallet before the exact recipient transfer in the same transaction.
|
|
216
|
+
*/
|
|
217
|
+
private buildTemporaryNativeWithdrawal;
|
|
67
218
|
redeemWinningsIx(params: RedeemWinningsParams, outcomeIndex: number): TransactionInstruction;
|
|
219
|
+
withdrawConditionalFromPositionIx(params: WithdrawConditionalFromPositionParams): TransactionInstruction;
|
|
68
220
|
withdrawFromPositionIx(params: WithdrawFromPositionParams): TransactionInstruction;
|
|
69
221
|
initPositionTokensIx(params: InitPositionTokensParams, numOutcomes: number): TransactionInstruction;
|
|
70
222
|
extendPositionTokensIx(params: ExtendPositionTokensParams, numOutcomes: number): TransactionInstruction;
|
|
@@ -75,6 +227,7 @@ export declare class Positions {
|
|
|
75
227
|
closePositionAltIx(params: ClosePositionAltParams): TransactionInstruction;
|
|
76
228
|
closePositionTokenAccountsIx(params: ClosePositionTokenAccountsParams, numOutcomes: number): TransactionInstruction;
|
|
77
229
|
redeemWinningsTx(params: RedeemWinningsParams, outcomeIndex: number): Transaction;
|
|
230
|
+
withdrawConditionalFromPositionTx(params: WithdrawConditionalFromPositionParams): Transaction;
|
|
78
231
|
withdrawFromPositionTx(params: WithdrawFromPositionParams): Transaction;
|
|
79
232
|
initPositionTokensTx(params: InitPositionTokensParams, numOutcomes: number): Transaction;
|
|
80
233
|
extendPositionTokensTx(params: ExtendPositionTokensParams, numOutcomes: number): Transaction;
|
|
@@ -89,6 +242,7 @@ export declare class Positions {
|
|
|
89
242
|
withdraw(): WithdrawBuilder;
|
|
90
243
|
redeemWinnings(): RedeemWinningsBuilder;
|
|
91
244
|
withdrawFromPosition(): WithdrawFromPositionBuilder;
|
|
245
|
+
withdrawConditionalFromPosition(): WithdrawFromPositionBuilder;
|
|
92
246
|
initPositionTokens(): InitPositionTokensBuilder;
|
|
93
247
|
extendPositionTokens(): ExtendPositionTokensBuilder;
|
|
94
248
|
depositToGlobal(): DepositToGlobalBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/position/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/position/client.ts"],"names":[],"mappings":"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"}
|