@lightconexyz/lightcone-sdk 0.6.1 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +6 -2
  2. package/dist/auth/client.d.ts.map +1 -1
  3. package/dist/auth/client.js +2 -0
  4. package/dist/auth/client.js.map +1 -1
  5. package/dist/auth/index.d.ts +15 -0
  6. package/dist/auth/index.d.ts.map +1 -1
  7. package/dist/auth/index.js +10 -1
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/client.d.ts +17 -7
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +36 -13
  12. package/dist/client.js.map +1 -1
  13. package/dist/context.d.ts +7 -1
  14. package/dist/context.d.ts.map +1 -1
  15. package/dist/context.js +60 -6
  16. package/dist/context.js.map +1 -1
  17. package/dist/domain/admin/client.d.ts +11 -1
  18. package/dist/domain/admin/client.d.ts.map +1 -1
  19. package/dist/domain/admin/client.js +39 -4
  20. package/dist/domain/admin/client.js.map +1 -1
  21. package/dist/domain/admin/wire.d.ts +37 -12
  22. package/dist/domain/admin/wire.d.ts.map +1 -1
  23. package/dist/domain/admin/wire.js.map +1 -1
  24. package/dist/domain/market/client.js +1 -1
  25. package/dist/domain/market/client.js.map +1 -1
  26. package/dist/domain/market/convert.js +1 -1
  27. package/dist/domain/market/convert.js.map +1 -1
  28. package/dist/domain/market/index.d.ts +8 -1
  29. package/dist/domain/market/index.d.ts.map +1 -1
  30. package/dist/domain/market/index.js +12 -0
  31. package/dist/domain/market/index.js.map +1 -1
  32. package/dist/domain/market/outcome.d.ts +1 -0
  33. package/dist/domain/market/outcome.d.ts.map +1 -1
  34. package/dist/domain/market/outcome.js +1 -0
  35. package/dist/domain/market/outcome.js.map +1 -1
  36. package/dist/domain/market/tokens.d.ts +2 -0
  37. package/dist/domain/market/tokens.d.ts.map +1 -1
  38. package/dist/domain/market/tokens.js +6 -1
  39. package/dist/domain/market/tokens.js.map +1 -1
  40. package/dist/domain/market/wire.d.ts +23 -2
  41. package/dist/domain/market/wire.d.ts.map +1 -1
  42. package/dist/domain/market/wire.js +5 -0
  43. package/dist/domain/market/wire.js.map +1 -1
  44. package/dist/domain/metrics/client.d.ts +3 -3
  45. package/dist/domain/metrics/client.d.ts.map +1 -1
  46. package/dist/domain/metrics/client.js +4 -4
  47. package/dist/domain/metrics/client.js.map +1 -1
  48. package/dist/domain/metrics/wire.d.ts +5 -1
  49. package/dist/domain/metrics/wire.d.ts.map +1 -1
  50. package/dist/domain/metrics/wire.js.map +1 -1
  51. package/dist/domain/notification/client.d.ts +2 -2
  52. package/dist/domain/notification/client.d.ts.map +1 -1
  53. package/dist/domain/notification/client.js +3 -3
  54. package/dist/domain/notification/client.js.map +1 -1
  55. package/dist/domain/notification/index.d.ts +3 -1
  56. package/dist/domain/notification/index.d.ts.map +1 -1
  57. package/dist/domain/notification/index.js.map +1 -1
  58. package/dist/domain/order/client.d.ts +12 -10
  59. package/dist/domain/order/client.d.ts.map +1 -1
  60. package/dist/domain/order/client.js +20 -13
  61. package/dist/domain/order/client.js.map +1 -1
  62. package/dist/domain/order/convert.d.ts +1 -1
  63. package/dist/domain/order/convert.d.ts.map +1 -1
  64. package/dist/domain/order/convert.js +2 -2
  65. package/dist/domain/order/convert.js.map +1 -1
  66. package/dist/domain/order/index.d.ts +2 -1
  67. package/dist/domain/order/index.d.ts.map +1 -1
  68. package/dist/domain/order/index.js +11 -3
  69. package/dist/domain/order/index.js.map +1 -1
  70. package/dist/domain/orderbook/client.d.ts +6 -2
  71. package/dist/domain/orderbook/client.d.ts.map +1 -1
  72. package/dist/domain/orderbook/client.js +17 -0
  73. package/dist/domain/orderbook/client.js.map +1 -1
  74. package/dist/domain/position/builders.d.ts +11 -8
  75. package/dist/domain/position/builders.d.ts.map +1 -1
  76. package/dist/domain/position/builders.js +31 -25
  77. package/dist/domain/position/builders.js.map +1 -1
  78. package/dist/domain/position/client.d.ts +21 -15
  79. package/dist/domain/position/client.d.ts.map +1 -1
  80. package/dist/domain/position/client.js +43 -22
  81. package/dist/domain/position/client.js.map +1 -1
  82. package/dist/domain/referral/client.d.ts +2 -2
  83. package/dist/domain/referral/client.d.ts.map +1 -1
  84. package/dist/domain/referral/client.js +3 -3
  85. package/dist/domain/referral/client.js.map +1 -1
  86. package/dist/domain/trade/client.d.ts +1 -0
  87. package/dist/domain/trade/client.d.ts.map +1 -1
  88. package/dist/domain/trade/client.js +14 -0
  89. package/dist/domain/trade/client.js.map +1 -1
  90. package/dist/domain/trade/wire.d.ts +6 -0
  91. package/dist/domain/trade/wire.d.ts.map +1 -1
  92. package/dist/domain/trade/wire.js.map +1 -1
  93. package/dist/env.d.ts +6 -1
  94. package/dist/env.d.ts.map +1 -1
  95. package/dist/env.js +19 -9
  96. package/dist/env.js.map +1 -1
  97. package/dist/http/client.d.ts +7 -7
  98. package/dist/http/client.d.ts.map +1 -1
  99. package/dist/http/client.js +15 -12
  100. package/dist/http/client.js.map +1 -1
  101. package/dist/index.d.ts +1 -1
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js.map +1 -1
  104. package/dist/prelude.d.ts +8 -7
  105. package/dist/prelude.d.ts.map +1 -1
  106. package/dist/prelude.js +7 -6
  107. package/dist/prelude.js.map +1 -1
  108. package/dist/privy/index.d.ts +1 -1
  109. package/dist/privy/index.js.map +1 -1
  110. package/dist/program/accounts.d.ts +12 -7
  111. package/dist/program/accounts.d.ts.map +1 -1
  112. package/dist/program/accounts.js +38 -16
  113. package/dist/program/accounts.js.map +1 -1
  114. package/dist/program/builder.d.ts +0 -4
  115. package/dist/program/builder.d.ts.map +1 -1
  116. package/dist/program/builder.js +0 -8
  117. package/dist/program/builder.js.map +1 -1
  118. package/dist/program/constants.d.ts +20 -7
  119. package/dist/program/constants.d.ts.map +1 -1
  120. package/dist/program/constants.js +21 -8
  121. package/dist/program/constants.js.map +1 -1
  122. package/dist/program/error.d.ts +25 -1
  123. package/dist/program/error.d.ts.map +1 -1
  124. package/dist/program/error.js +72 -0
  125. package/dist/program/error.js.map +1 -1
  126. package/dist/program/index.d.ts +7 -7
  127. package/dist/program/index.d.ts.map +1 -1
  128. package/dist/program/index.js +36 -9
  129. package/dist/program/index.js.map +1 -1
  130. package/dist/program/instructions.d.ts +184 -71
  131. package/dist/program/instructions.d.ts.map +1 -1
  132. package/dist/program/instructions.js +573 -140
  133. package/dist/program/instructions.js.map +1 -1
  134. package/dist/program/orders.js +2 -2
  135. package/dist/program/orders.js.map +1 -1
  136. package/dist/program/pda.d.ts +21 -3
  137. package/dist/program/pda.d.ts.map +1 -1
  138. package/dist/program/pda.js +43 -6
  139. package/dist/program/pda.js.map +1 -1
  140. package/dist/program/types.d.ts +139 -21
  141. package/dist/program/types.d.ts.map +1 -1
  142. package/dist/program/types.js.map +1 -1
  143. package/dist/program/utils.d.ts +31 -2
  144. package/dist/program/utils.d.ts.map +1 -1
  145. package/dist/program/utils.js +132 -5
  146. package/dist/program/utils.js.map +1 -1
  147. package/dist/rpc.d.ts +6 -1
  148. package/dist/rpc.d.ts.map +1 -1
  149. package/dist/rpc.js +9 -7
  150. package/dist/rpc.js.map +1 -1
  151. package/dist/rpcFailover.d.ts +22 -0
  152. package/dist/rpcFailover.d.ts.map +1 -0
  153. package/dist/rpcFailover.js +71 -0
  154. package/dist/rpcFailover.js.map +1 -0
  155. package/dist/shared/fmt/constants.d.ts +5 -0
  156. package/dist/shared/fmt/constants.d.ts.map +1 -0
  157. package/dist/shared/fmt/constants.js +25 -0
  158. package/dist/shared/fmt/constants.js.map +1 -0
  159. package/dist/shared/fmt/decimal.d.ts +7 -0
  160. package/dist/shared/fmt/decimal.d.ts.map +1 -1
  161. package/dist/shared/fmt/decimal.js +28 -20
  162. package/dist/shared/fmt/decimal.js.map +1 -1
  163. package/dist/shared/fmt/num.d.ts +7 -0
  164. package/dist/shared/fmt/num.d.ts.map +1 -1
  165. package/dist/shared/fmt/num.js +27 -15
  166. package/dist/shared/fmt/num.js.map +1 -1
  167. package/dist/ws/client.node.js +1 -1
  168. package/dist/ws/client.node.js.map +1 -1
  169. package/package.json +1 -1
@@ -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 buildExtendPositionTokensIx,\n buildGlobalToMarketDepositIx,\n buildMergeIx,\n buildRedeemWinningsIx,\n buildWithdrawFromGlobalIx,\n buildWithdrawFromPositionIx,\n buildInitPositionTokensIx,\n} from \"../../program/instructions\";\nimport { DepositSource } from \"../../shared\";\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 private isToken2022Value = false;\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 token2022(isToken2022: boolean): this {\n this.isToken2022Value = isToken2022;\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.isToken2022Value,\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 winningOutcomeValue?: 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 winningOutcome(outcome: number): this {\n this.winningOutcomeValue = outcome;\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 winningOutcome = requireField(this.winningOutcomeValue, \"winning_outcome\");\n\n return buildRedeemWinningsIx(\n { user, market, depositMint, amount },\n winningOutcome,\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 private isToken2022Value = false;\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 token2022(isToken2022: boolean): this {\n this.isToken2022Value = isToken2022;\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.isToken2022Value,\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\nexport class ExtendPositionTokensBuilder {\n private readonly client: ClientContext;\n private payerValue?: 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 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 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 payer = requireField(this.payerValue, \"payer\");\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 { payer, user, market, lookupTable, depositMints },\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// ─── DepositToGlobalBuilder ─────────────────────────────────────────────────\n\nexport class DepositToGlobalBuilder {\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 buildDepositToGlobalIx({ 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// ─── 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\n"]}
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,6 +1,6 @@
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, GlobalToMarketDepositParams, WithdrawFromGlobalParams } from "../../program/types";
3
+ import type { Position as ProgramPosition, RedeemWinningsParams, WithdrawFromPositionParams, InitPositionTokensParams, ExtendPositionTokensParams, DepositToGlobalParams, DepositToGlobalAltContext, GlobalToMarketDepositParams, WithdrawFromGlobalParams, ClosePositionAltParams, ClosePositionTokenAccountsParams } from "../../program/types";
4
4
  import type { PubkeyStr } from "../../shared";
5
5
  import type { DepositTokenBalance } from "./index";
6
6
  import type { MarketPositionsResponse, PositionsResponse } from "./wire";
@@ -13,14 +13,14 @@ export declare class Positions {
13
13
  getForMarket(userPubkey: string, marketPubkey: string): Promise<MarketPositionsResponse>;
14
14
  /**
15
15
  * Get all conditional-token positions for the authenticated user across
16
- * every market. The wallet is resolved server-side from the `auth_token`
17
- * cookie, so no parameter is required. Same response shape as `get()`.
16
+ * every market. The wallet is resolved server-side from the auth cookie,
17
+ * so no parameter is required. Same response shape as `get()`.
18
18
  *
19
19
  * `GET /api/users/positions`
20
20
  */
21
21
  positions(): Promise<PositionsResponse>;
22
22
  /**
23
- * Same as {@link positions}, but uses the supplied `authToken` for this
23
+ * Same as {@link positions}, but uses the supplied `cookieHeader` for this
24
24
  * call instead of the SDK's process-wide cookie store.
25
25
  *
26
26
  * Intended for server-side cookie forwarding (SSR / server functions)
@@ -29,24 +29,24 @@ export declare class Positions {
29
29
  * because the runtime is already attaching the cookie via
30
30
  * `credentials: "include"`.
31
31
  */
32
- positionsWithAuth(authToken: string): Promise<PositionsResponse>;
32
+ positionsWithCookies(cookieHeader: string): Promise<PositionsResponse>;
33
33
  /**
34
34
  * Get the authenticated user's positions in a specific market. The wallet
35
- * is resolved server-side from the `auth_token` cookie.
35
+ * is resolved server-side from the auth cookie.
36
36
  *
37
37
  * `GET /api/users/markets/{market_pubkey}/positions`
38
38
  */
39
39
  positionsForMarket(marketPubkey: string): Promise<MarketPositionsResponse>;
40
40
  /**
41
- * Same as {@link positionsForMarket}, but uses the supplied `authToken`
41
+ * Same as {@link positionsForMarket}, but uses the supplied `cookieHeader`
42
42
  * for this call instead of the SDK's process-wide cookie store. For
43
43
  * server-side cookie forwarding (SSR / server functions).
44
44
  */
45
- positionsForMarketWithAuth(marketPubkey: string, authToken: string): Promise<MarketPositionsResponse>;
45
+ positionsForMarketWithCookies(marketPubkey: string, cookieHeader: string): Promise<MarketPositionsResponse>;
46
46
  /**
47
47
  * Get SPL deposit-token balances for the authenticated user.
48
48
  *
49
- * The wallet is resolved server-side from the `auth_token` cookie, so no
49
+ * The wallet is resolved server-side from the auth cookie, so no
50
50
  * parameter is required. Returns balances keyed by mint pubkey for every
51
51
  * deposit token registered in the backend's `deposit_token_metadata`.
52
52
  * An empty object means the user has none of the tracked balances — this
@@ -54,7 +54,7 @@ export declare class Positions {
54
54
  */
55
55
  depositTokenBalances(): Promise<Record<PubkeyStr, DepositTokenBalance>>;
56
56
  /**
57
- * Same as {@link depositTokenBalances}, but uses the supplied `authToken`
57
+ * Same as {@link depositTokenBalances}, but uses the supplied `cookieHeader`
58
58
  * for this call instead of the SDK's process-wide cookie store.
59
59
  *
60
60
  * Intended for server-side cookie forwarding (SSR / server functions)
@@ -63,21 +63,27 @@ export declare class Positions {
63
63
  * {@link depositTokenBalances} because the runtime is already attaching
64
64
  * the cookie via `credentials: "include"`.
65
65
  */
66
- depositTokenBalancesWithAuth(authToken: string): Promise<Record<PubkeyStr, DepositTokenBalance>>;
67
- redeemWinningsIx(params: RedeemWinningsParams, winningOutcome: number): TransactionInstruction;
68
- withdrawFromPositionIx(params: WithdrawFromPositionParams, isToken2022: boolean): TransactionInstruction;
66
+ depositTokenBalancesWithCookies(cookieHeader: string): Promise<Record<PubkeyStr, DepositTokenBalance>>;
67
+ redeemWinningsIx(params: RedeemWinningsParams, outcomeIndex: number): TransactionInstruction;
68
+ withdrawFromPositionIx(params: WithdrawFromPositionParams): TransactionInstruction;
69
69
  initPositionTokensIx(params: InitPositionTokensParams, numOutcomes: number): TransactionInstruction;
70
70
  extendPositionTokensIx(params: ExtendPositionTokensParams, numOutcomes: number): TransactionInstruction;
71
71
  depositToGlobalIx(params: DepositToGlobalParams): TransactionInstruction;
72
+ depositToGlobalIxWithAlt(params: DepositToGlobalParams, altContext: DepositToGlobalAltContext): TransactionInstruction;
72
73
  globalToMarketDepositIx(params: GlobalToMarketDepositParams, numOutcomes: number): TransactionInstruction;
73
74
  withdrawFromGlobalIx(params: WithdrawFromGlobalParams): TransactionInstruction;
74
- redeemWinningsTx(params: RedeemWinningsParams, winningOutcome: number): Transaction;
75
- withdrawFromPositionTx(params: WithdrawFromPositionParams, isToken2022: boolean): Transaction;
75
+ closePositionAltIx(params: ClosePositionAltParams): TransactionInstruction;
76
+ closePositionTokenAccountsIx(params: ClosePositionTokenAccountsParams, numOutcomes: number): TransactionInstruction;
77
+ redeemWinningsTx(params: RedeemWinningsParams, outcomeIndex: number): Transaction;
78
+ withdrawFromPositionTx(params: WithdrawFromPositionParams): Transaction;
76
79
  initPositionTokensTx(params: InitPositionTokensParams, numOutcomes: number): Transaction;
77
80
  extendPositionTokensTx(params: ExtendPositionTokensParams, numOutcomes: number): Transaction;
78
81
  depositToGlobalTx(params: DepositToGlobalParams): Transaction;
82
+ depositToGlobalTxWithAlt(params: DepositToGlobalParams, altContext: DepositToGlobalAltContext): Transaction;
79
83
  globalToMarketDepositTx(params: GlobalToMarketDepositParams, numOutcomes: number): Transaction;
80
84
  withdrawFromGlobalTx(params: WithdrawFromGlobalParams): Transaction;
85
+ closePositionAltTx(params: ClosePositionAltParams): Transaction;
86
+ closePositionTokenAccountsTx(params: ClosePositionTokenAccountsParams, numOutcomes: number): Transaction;
81
87
  deposit(): DepositBuilder;
82
88
  merge(): MergeBuilder;
83
89
  withdraw(): WithdrawBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/position/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/position/client.ts"],"names":[],"mappings":"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"}
@@ -28,8 +28,8 @@ class Positions {
28
28
  }
29
29
  /**
30
30
  * Get all conditional-token positions for the authenticated user across
31
- * every market. The wallet is resolved server-side from the `auth_token`
32
- * cookie, so no parameter is required. Same response shape as `get()`.
31
+ * every market. The wallet is resolved server-side from the auth cookie,
32
+ * so no parameter is required. Same response shape as `get()`.
33
33
  *
34
34
  * `GET /api/users/positions`
35
35
  */
@@ -38,7 +38,7 @@ class Positions {
38
38
  return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
39
39
  }
40
40
  /**
41
- * Same as {@link positions}, but uses the supplied `authToken` for this
41
+ * Same as {@link positions}, but uses the supplied `cookieHeader` for this
42
42
  * call instead of the SDK's process-wide cookie store.
43
43
  *
44
44
  * Intended for server-side cookie forwarding (SSR / server functions)
@@ -47,13 +47,13 @@ class Positions {
47
47
  * because the runtime is already attaching the cookie via
48
48
  * `credentials: "include"`.
49
49
  */
50
- async positionsWithAuth(authToken) {
50
+ async positionsWithCookies(cookieHeader) {
51
51
  const url = `${this.client.http.baseUrl()}/api/users/positions`;
52
- return this.client.http.getWithAuth(url, http_1.RetryPolicy.Idempotent, authToken);
52
+ return this.client.http.getWithCookies(url, http_1.RetryPolicy.Idempotent, cookieHeader);
53
53
  }
54
54
  /**
55
55
  * Get the authenticated user's positions in a specific market. The wallet
56
- * is resolved server-side from the `auth_token` cookie.
56
+ * is resolved server-side from the auth cookie.
57
57
  *
58
58
  * `GET /api/users/markets/{market_pubkey}/positions`
59
59
  */
@@ -62,18 +62,18 @@ class Positions {
62
62
  return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
63
63
  }
64
64
  /**
65
- * Same as {@link positionsForMarket}, but uses the supplied `authToken`
65
+ * Same as {@link positionsForMarket}, but uses the supplied `cookieHeader`
66
66
  * for this call instead of the SDK's process-wide cookie store. For
67
67
  * server-side cookie forwarding (SSR / server functions).
68
68
  */
69
- async positionsForMarketWithAuth(marketPubkey, authToken) {
69
+ async positionsForMarketWithCookies(marketPubkey, cookieHeader) {
70
70
  const url = `${this.client.http.baseUrl()}/api/users/markets/${encodeURIComponent(marketPubkey)}/positions`;
71
- return this.client.http.getWithAuth(url, http_1.RetryPolicy.Idempotent, authToken);
71
+ return this.client.http.getWithCookies(url, http_1.RetryPolicy.Idempotent, cookieHeader);
72
72
  }
73
73
  /**
74
74
  * Get SPL deposit-token balances for the authenticated user.
75
75
  *
76
- * The wallet is resolved server-side from the `auth_token` cookie, so no
76
+ * The wallet is resolved server-side from the auth cookie, so no
77
77
  * parameter is required. Returns balances keyed by mint pubkey for every
78
78
  * deposit token registered in the backend's `deposit_token_metadata`.
79
79
  * An empty object means the user has none of the tracked balances — this
@@ -84,7 +84,7 @@ class Positions {
84
84
  return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
85
85
  }
86
86
  /**
87
- * Same as {@link depositTokenBalances}, but uses the supplied `authToken`
87
+ * Same as {@link depositTokenBalances}, but uses the supplied `cookieHeader`
88
88
  * for this call instead of the SDK's process-wide cookie store.
89
89
  *
90
90
  * Intended for server-side cookie forwarding (SSR / server functions)
@@ -93,16 +93,16 @@ class Positions {
93
93
  * {@link depositTokenBalances} because the runtime is already attaching
94
94
  * the cookie via `credentials: "include"`.
95
95
  */
96
- async depositTokenBalancesWithAuth(authToken) {
96
+ async depositTokenBalancesWithCookies(cookieHeader) {
97
97
  const url = `${this.client.http.baseUrl()}/api/users/deposit-token-balances`;
98
- return this.client.http.getWithAuth(url, http_1.RetryPolicy.Idempotent, authToken);
98
+ return this.client.http.getWithCookies(url, http_1.RetryPolicy.Idempotent, cookieHeader);
99
99
  }
100
100
  // ── On-chain transaction builders ────────────────────────────────────
101
- redeemWinningsIx(params, winningOutcome) {
102
- return (0, instructions_1.buildRedeemWinningsIx)(params, winningOutcome, this.client.programId);
101
+ redeemWinningsIx(params, outcomeIndex) {
102
+ return (0, instructions_1.buildRedeemWinningsIx)(params, outcomeIndex, this.client.programId);
103
103
  }
104
- withdrawFromPositionIx(params, isToken2022) {
105
- return (0, instructions_1.buildWithdrawFromPositionIx)(params, isToken2022, this.client.programId);
104
+ withdrawFromPositionIx(params) {
105
+ return (0, instructions_1.buildWithdrawFromPositionIx)(params, this.client.programId);
106
106
  }
107
107
  initPositionTokensIx(params, numOutcomes) {
108
108
  return (0, instructions_1.buildInitPositionTokensIx)(params, numOutcomes, this.client.programId);
@@ -113,19 +113,28 @@ class Positions {
113
113
  depositToGlobalIx(params) {
114
114
  return (0, instructions_1.buildDepositToGlobalIx)(params, this.client.programId);
115
115
  }
116
+ depositToGlobalIxWithAlt(params, altContext) {
117
+ return (0, instructions_1.buildDepositToGlobalIxWithAlt)(params, altContext, this.client.programId);
118
+ }
116
119
  globalToMarketDepositIx(params, numOutcomes) {
117
120
  return (0, instructions_1.buildGlobalToMarketDepositIx)(params, numOutcomes, this.client.programId);
118
121
  }
119
122
  withdrawFromGlobalIx(params) {
120
123
  return (0, instructions_1.buildWithdrawFromGlobalIx)(params, this.client.programId);
121
124
  }
125
+ closePositionAltIx(params) {
126
+ return (0, instructions_1.buildClosePositionAltIx)(params, this.client.programId);
127
+ }
128
+ closePositionTokenAccountsIx(params, numOutcomes) {
129
+ return (0, instructions_1.buildClosePositionTokenAccountsIx)(params, numOutcomes, this.client.programId);
130
+ }
122
131
  // ── Transaction builders (_tx convenience wrappers) ─────────────────
123
- redeemWinningsTx(params, winningOutcome) {
124
- const ix = this.redeemWinningsIx(params, winningOutcome);
132
+ redeemWinningsTx(params, outcomeIndex) {
133
+ const ix = this.redeemWinningsIx(params, outcomeIndex);
125
134
  return new web3_js_1.Transaction({ feePayer: params.user }).add(ix);
126
135
  }
127
- withdrawFromPositionTx(params, isToken2022) {
128
- const ix = this.withdrawFromPositionIx(params, isToken2022);
136
+ withdrawFromPositionTx(params) {
137
+ const ix = this.withdrawFromPositionIx(params);
129
138
  return new web3_js_1.Transaction({ feePayer: params.user }).add(ix);
130
139
  }
131
140
  initPositionTokensTx(params, numOutcomes) {
@@ -134,12 +143,16 @@ class Positions {
134
143
  }
135
144
  extendPositionTokensTx(params, numOutcomes) {
136
145
  const ix = this.extendPositionTokensIx(params, numOutcomes);
137
- return new web3_js_1.Transaction({ feePayer: params.payer }).add(ix);
146
+ return new web3_js_1.Transaction({ feePayer: params.operator }).add(ix);
138
147
  }
139
148
  depositToGlobalTx(params) {
140
149
  const ix = this.depositToGlobalIx(params);
141
150
  return new web3_js_1.Transaction({ feePayer: params.user }).add(ix);
142
151
  }
152
+ depositToGlobalTxWithAlt(params, altContext) {
153
+ const ix = this.depositToGlobalIxWithAlt(params, altContext);
154
+ return new web3_js_1.Transaction({ feePayer: params.user }).add(ix);
155
+ }
143
156
  globalToMarketDepositTx(params, numOutcomes) {
144
157
  const ix = this.globalToMarketDepositIx(params, numOutcomes);
145
158
  return new web3_js_1.Transaction({ feePayer: params.user }).add(ix);
@@ -148,6 +161,14 @@ class Positions {
148
161
  const ix = this.withdrawFromGlobalIx(params);
149
162
  return new web3_js_1.Transaction({ feePayer: params.user }).add(ix);
150
163
  }
164
+ closePositionAltTx(params) {
165
+ const ix = this.closePositionAltIx(params);
166
+ return new web3_js_1.Transaction({ feePayer: params.operator }).add(ix);
167
+ }
168
+ closePositionTokenAccountsTx(params, numOutcomes) {
169
+ const ix = this.closePositionTokenAccountsIx(params, numOutcomes);
170
+ return new web3_js_1.Transaction({ feePayer: params.operator }).add(ix);
171
+ }
151
172
  // ── Builder factories ──────────────────────────────────────────────
152
173
  deposit() {
153
174
  return new builders_1.DepositBuilder(this.client, this.client.depositSource);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/position/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey, Transaction, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { requireConnection } from \"../../context\";\nimport { RetryPolicy } from \"../../http\";\nimport {\n buildRedeemWinningsIx,\n buildWithdrawFromPositionIx,\n buildInitPositionTokensIx,\n buildExtendPositionTokensIx,\n buildDepositToGlobalIx,\n buildGlobalToMarketDepositIx,\n buildWithdrawFromGlobalIx,\n} from \"../../program/instructions\";\nimport { getPositionPda } from \"../../program/pda\";\nimport { deserializePosition as deserializeProgramPosition } from \"../../program/accounts\";\nimport type {\n Position as ProgramPosition,\n RedeemWinningsParams,\n WithdrawFromPositionParams,\n InitPositionTokensParams,\n ExtendPositionTokensParams,\n DepositToGlobalParams,\n GlobalToMarketDepositParams,\n WithdrawFromGlobalParams,\n} from \"../../program/types\";\nimport type { PubkeyStr } from \"../../shared\";\nimport type { DepositTokenBalance } from \"./index\";\nimport type { MarketPositionsResponse, PositionsResponse } from \"./wire\";\nimport {\n DepositBuilder,\n MergeBuilder,\n WithdrawBuilder,\n RedeemWinningsBuilder,\n WithdrawFromPositionBuilder,\n InitPositionTokensBuilder,\n ExtendPositionTokensBuilder,\n DepositToGlobalBuilder,\n WithdrawFromGlobalBuilder,\n GlobalToMarketDepositBuilder,\n} from \"./builders\";\n\nexport class Positions {\n constructor(private readonly client: ClientContext) {}\n\n // ── PDA helpers ──────────────────────────────────────────────────────\n\n pda(owner: PublicKey, market: PublicKey): PublicKey {\n return getPositionPda(owner, market, this.client.programId)[0];\n }\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async get(userPubkey: string): Promise<PositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/${encodeURIComponent(userPubkey)}/positions`;\n return this.client.http.get<PositionsResponse>(url, RetryPolicy.Idempotent);\n }\n\n async getForMarket(userPubkey: string, marketPubkey: string): Promise<MarketPositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/${encodeURIComponent(userPubkey)}/markets/${encodeURIComponent(marketPubkey)}/positions`;\n return this.client.http.get<MarketPositionsResponse>(url, RetryPolicy.Idempotent);\n }\n\n /**\n * Get all conditional-token positions for the authenticated user across\n * every market. The wallet is resolved server-side from the `auth_token`\n * cookie, so no parameter is required. Same response shape as `get()`.\n *\n * `GET /api/users/positions`\n */\n async positions(): Promise<PositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/positions`;\n return this.client.http.get<PositionsResponse>(url, RetryPolicy.Idempotent);\n }\n\n /**\n * Same as {@link positions}, but uses the supplied `authToken` for this\n * call instead of the SDK's process-wide cookie store.\n *\n * Intended for server-side cookie forwarding (SSR / server functions)\n * where the per-request browser cookie can't propagate to the shared\n * client. In a browser context this is equivalent to {@link positions}\n * because the runtime is already attaching the cookie via\n * `credentials: \"include\"`.\n */\n async positionsWithAuth(authToken: string): Promise<PositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/positions`;\n return this.client.http.getWithAuth<PositionsResponse>(\n url,\n RetryPolicy.Idempotent,\n authToken,\n );\n }\n\n /**\n * Get the authenticated user's positions in a specific market. The wallet\n * is resolved server-side from the `auth_token` cookie.\n *\n * `GET /api/users/markets/{market_pubkey}/positions`\n */\n async positionsForMarket(marketPubkey: string): Promise<MarketPositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/markets/${encodeURIComponent(marketPubkey)}/positions`;\n return this.client.http.get<MarketPositionsResponse>(url, RetryPolicy.Idempotent);\n }\n\n /**\n * Same as {@link positionsForMarket}, but uses the supplied `authToken`\n * for this call instead of the SDK's process-wide cookie store. For\n * server-side cookie forwarding (SSR / server functions).\n */\n async positionsForMarketWithAuth(\n marketPubkey: string,\n authToken: string,\n ): Promise<MarketPositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/markets/${encodeURIComponent(marketPubkey)}/positions`;\n return this.client.http.getWithAuth<MarketPositionsResponse>(\n url,\n RetryPolicy.Idempotent,\n authToken,\n );\n }\n\n /**\n * Get SPL deposit-token balances for the authenticated user.\n *\n * The wallet is resolved server-side from the `auth_token` cookie, so no\n * parameter is required. Returns balances keyed by mint pubkey for every\n * deposit token registered in the backend's `deposit_token_metadata`.\n * An empty object means the user has none of the tracked balances — this\n * is not an error.\n */\n async depositTokenBalances(): Promise<Record<PubkeyStr, DepositTokenBalance>> {\n const url = `${this.client.http.baseUrl()}/api/users/deposit-token-balances`;\n return this.client.http.get<Record<PubkeyStr, DepositTokenBalance>>(\n url,\n RetryPolicy.Idempotent,\n );\n }\n\n /**\n * Same as {@link depositTokenBalances}, but uses the supplied `authToken`\n * for this call instead of the SDK's process-wide cookie store.\n *\n * Intended for server-side cookie forwarding (SSR / server functions)\n * where the per-request browser cookie can't propagate to the shared\n * client. In a browser context this is equivalent to\n * {@link depositTokenBalances} because the runtime is already attaching\n * the cookie via `credentials: \"include\"`.\n */\n async depositTokenBalancesWithAuth(\n authToken: string,\n ): Promise<Record<PubkeyStr, DepositTokenBalance>> {\n const url = `${this.client.http.baseUrl()}/api/users/deposit-token-balances`;\n return this.client.http.getWithAuth<Record<PubkeyStr, DepositTokenBalance>>(\n url,\n RetryPolicy.Idempotent,\n authToken,\n );\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n redeemWinningsIx(\n params: RedeemWinningsParams,\n winningOutcome: number\n ): TransactionInstruction {\n return buildRedeemWinningsIx(params, winningOutcome, this.client.programId);\n }\n\n withdrawFromPositionIx(\n params: WithdrawFromPositionParams,\n isToken2022: boolean\n ): TransactionInstruction {\n return buildWithdrawFromPositionIx(params, isToken2022, this.client.programId);\n }\n\n initPositionTokensIx(\n params: InitPositionTokensParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildInitPositionTokensIx(params, numOutcomes, this.client.programId);\n }\n\n extendPositionTokensIx(\n params: ExtendPositionTokensParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildExtendPositionTokensIx(params, numOutcomes, this.client.programId);\n }\n\n depositToGlobalIx(params: DepositToGlobalParams): TransactionInstruction {\n return buildDepositToGlobalIx(params, this.client.programId);\n }\n\n globalToMarketDepositIx(\n params: GlobalToMarketDepositParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildGlobalToMarketDepositIx(params, numOutcomes, this.client.programId);\n }\n\n withdrawFromGlobalIx(params: WithdrawFromGlobalParams): TransactionInstruction {\n return buildWithdrawFromGlobalIx(params, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n redeemWinningsTx(\n params: RedeemWinningsParams,\n winningOutcome: number\n ): Transaction {\n const ix = this.redeemWinningsIx(params, winningOutcome);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n withdrawFromPositionTx(\n params: WithdrawFromPositionParams,\n isToken2022: boolean\n ): Transaction {\n const ix = this.withdrawFromPositionIx(params, isToken2022);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n initPositionTokensTx(\n params: InitPositionTokensParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.initPositionTokensIx(params, numOutcomes);\n return new Transaction({ feePayer: params.payer }).add(ix);\n }\n\n extendPositionTokensTx(\n params: ExtendPositionTokensParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.extendPositionTokensIx(params, numOutcomes);\n return new Transaction({ feePayer: params.payer }).add(ix);\n }\n\n depositToGlobalTx(params: DepositToGlobalParams): Transaction {\n const ix = this.depositToGlobalIx(params);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n globalToMarketDepositTx(\n params: GlobalToMarketDepositParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.globalToMarketDepositIx(params, numOutcomes);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n withdrawFromGlobalTx(params: WithdrawFromGlobalParams): Transaction {\n const ix = this.withdrawFromGlobalIx(params);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n // ── Builder factories ──────────────────────────────────────────────\n\n deposit(): DepositBuilder {\n return new DepositBuilder(this.client, this.client.depositSource);\n }\n\n merge(): MergeBuilder {\n return new MergeBuilder(this.client);\n }\n\n withdraw(): WithdrawBuilder {\n return new WithdrawBuilder(this.client, this.client.depositSource);\n }\n\n redeemWinnings(): RedeemWinningsBuilder {\n return new RedeemWinningsBuilder(this.client);\n }\n\n withdrawFromPosition(): WithdrawFromPositionBuilder {\n return new WithdrawFromPositionBuilder(this.client);\n }\n\n initPositionTokens(): InitPositionTokensBuilder {\n return new InitPositionTokensBuilder(this.client);\n }\n\n extendPositionTokens(): ExtendPositionTokensBuilder {\n return new ExtendPositionTokensBuilder(this.client);\n }\n\n depositToGlobal(): DepositToGlobalBuilder {\n return new DepositToGlobalBuilder(this.client);\n }\n\n withdrawFromGlobal(): WithdrawFromGlobalBuilder {\n return new WithdrawFromGlobalBuilder(this.client);\n }\n\n globalToMarketDeposit(): GlobalToMarketDepositBuilder {\n return new GlobalToMarketDepositBuilder(this.client);\n }\n\n // ── On-chain account fetchers (require Connection) ──────────────────\n\n async getOnchain(owner: PublicKey, market: PublicKey): Promise<ProgramPosition | null> {\n const connection = requireConnection(this.client);\n const positionPda = this.pda(owner, market);\n const accountInfo = await connection.getAccountInfo(positionPda);\n if (!accountInfo) {\n return null;\n }\n return deserializeProgramPosition(accountInfo.data as Buffer);\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/position/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey, Transaction, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { requireConnection } from \"../../context\";\nimport { RetryPolicy } from \"../../http\";\nimport {\n buildRedeemWinningsIx,\n buildWithdrawFromPositionIx,\n buildInitPositionTokensIx,\n buildExtendPositionTokensIx,\n buildDepositToGlobalIx,\n buildDepositToGlobalIxWithAlt,\n buildGlobalToMarketDepositIx,\n buildWithdrawFromGlobalIx,\n buildClosePositionAltIx,\n buildClosePositionTokenAccountsIx,\n} from \"../../program/instructions\";\nimport { getPositionPda } from \"../../program/pda\";\nimport { deserializePosition as deserializeProgramPosition } from \"../../program/accounts\";\nimport type {\n Position as ProgramPosition,\n RedeemWinningsParams,\n WithdrawFromPositionParams,\n InitPositionTokensParams,\n ExtendPositionTokensParams,\n DepositToGlobalParams,\n DepositToGlobalAltContext,\n GlobalToMarketDepositParams,\n WithdrawFromGlobalParams,\n ClosePositionAltParams,\n ClosePositionTokenAccountsParams,\n} from \"../../program/types\";\nimport type { PubkeyStr } from \"../../shared\";\nimport type { DepositTokenBalance } from \"./index\";\nimport type { MarketPositionsResponse, PositionsResponse } from \"./wire\";\nimport {\n DepositBuilder,\n MergeBuilder,\n WithdrawBuilder,\n RedeemWinningsBuilder,\n WithdrawFromPositionBuilder,\n InitPositionTokensBuilder,\n ExtendPositionTokensBuilder,\n DepositToGlobalBuilder,\n WithdrawFromGlobalBuilder,\n GlobalToMarketDepositBuilder,\n} from \"./builders\";\n\nexport class Positions {\n constructor(private readonly client: ClientContext) {}\n\n // ── PDA helpers ──────────────────────────────────────────────────────\n\n pda(owner: PublicKey, market: PublicKey): PublicKey {\n return getPositionPda(owner, market, this.client.programId)[0];\n }\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async get(userPubkey: string): Promise<PositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/${encodeURIComponent(userPubkey)}/positions`;\n return this.client.http.get<PositionsResponse>(url, RetryPolicy.Idempotent);\n }\n\n async getForMarket(userPubkey: string, marketPubkey: string): Promise<MarketPositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/${encodeURIComponent(userPubkey)}/markets/${encodeURIComponent(marketPubkey)}/positions`;\n return this.client.http.get<MarketPositionsResponse>(url, RetryPolicy.Idempotent);\n }\n\n /**\n * Get all conditional-token positions for the authenticated user across\n * every market. The wallet is resolved server-side from the auth cookie,\n * so no parameter is required. Same response shape as `get()`.\n *\n * `GET /api/users/positions`\n */\n async positions(): Promise<PositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/positions`;\n return this.client.http.get<PositionsResponse>(url, RetryPolicy.Idempotent);\n }\n\n /**\n * Same as {@link positions}, but uses the supplied `cookieHeader` for this\n * call instead of the SDK's process-wide cookie store.\n *\n * Intended for server-side cookie forwarding (SSR / server functions)\n * where the per-request browser cookie can't propagate to the shared\n * client. In a browser context this is equivalent to {@link positions}\n * because the runtime is already attaching the cookie via\n * `credentials: \"include\"`.\n */\n async positionsWithCookies(cookieHeader: string): Promise<PositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/positions`;\n return this.client.http.getWithCookies<PositionsResponse>(\n url,\n RetryPolicy.Idempotent,\n cookieHeader,\n );\n }\n\n /**\n * Get the authenticated user's positions in a specific market. The wallet\n * is resolved server-side from the auth cookie.\n *\n * `GET /api/users/markets/{market_pubkey}/positions`\n */\n async positionsForMarket(marketPubkey: string): Promise<MarketPositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/markets/${encodeURIComponent(marketPubkey)}/positions`;\n return this.client.http.get<MarketPositionsResponse>(url, RetryPolicy.Idempotent);\n }\n\n /**\n * Same as {@link positionsForMarket}, but uses the supplied `cookieHeader`\n * for this call instead of the SDK's process-wide cookie store. For\n * server-side cookie forwarding (SSR / server functions).\n */\n async positionsForMarketWithCookies(\n marketPubkey: string,\n cookieHeader: string,\n ): Promise<MarketPositionsResponse> {\n const url = `${this.client.http.baseUrl()}/api/users/markets/${encodeURIComponent(marketPubkey)}/positions`;\n return this.client.http.getWithCookies<MarketPositionsResponse>(\n url,\n RetryPolicy.Idempotent,\n cookieHeader,\n );\n }\n\n /**\n * Get SPL deposit-token balances for the authenticated user.\n *\n * The wallet is resolved server-side from the auth cookie, so no\n * parameter is required. Returns balances keyed by mint pubkey for every\n * deposit token registered in the backend's `deposit_token_metadata`.\n * An empty object means the user has none of the tracked balances — this\n * is not an error.\n */\n async depositTokenBalances(): Promise<Record<PubkeyStr, DepositTokenBalance>> {\n const url = `${this.client.http.baseUrl()}/api/users/deposit-token-balances`;\n return this.client.http.get<Record<PubkeyStr, DepositTokenBalance>>(\n url,\n RetryPolicy.Idempotent,\n );\n }\n\n /**\n * Same as {@link depositTokenBalances}, but uses the supplied `cookieHeader`\n * for this call instead of the SDK's process-wide cookie store.\n *\n * Intended for server-side cookie forwarding (SSR / server functions)\n * where the per-request browser cookie can't propagate to the shared\n * client. In a browser context this is equivalent to\n * {@link depositTokenBalances} because the runtime is already attaching\n * the cookie via `credentials: \"include\"`.\n */\n async depositTokenBalancesWithCookies(\n cookieHeader: string,\n ): Promise<Record<PubkeyStr, DepositTokenBalance>> {\n const url = `${this.client.http.baseUrl()}/api/users/deposit-token-balances`;\n return this.client.http.getWithCookies<Record<PubkeyStr, DepositTokenBalance>>(\n url,\n RetryPolicy.Idempotent,\n cookieHeader,\n );\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n redeemWinningsIx(\n params: RedeemWinningsParams,\n outcomeIndex: number\n ): TransactionInstruction {\n return buildRedeemWinningsIx(params, outcomeIndex, this.client.programId);\n }\n\n withdrawFromPositionIx(\n params: WithdrawFromPositionParams\n ): TransactionInstruction {\n return buildWithdrawFromPositionIx(params, this.client.programId);\n }\n\n initPositionTokensIx(\n params: InitPositionTokensParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildInitPositionTokensIx(params, numOutcomes, this.client.programId);\n }\n\n extendPositionTokensIx(\n params: ExtendPositionTokensParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildExtendPositionTokensIx(params, numOutcomes, this.client.programId);\n }\n\n depositToGlobalIx(params: DepositToGlobalParams): TransactionInstruction {\n return buildDepositToGlobalIx(params, this.client.programId);\n }\n\n depositToGlobalIxWithAlt(\n params: DepositToGlobalParams,\n altContext: DepositToGlobalAltContext\n ): TransactionInstruction {\n return buildDepositToGlobalIxWithAlt(params, altContext, this.client.programId);\n }\n\n globalToMarketDepositIx(\n params: GlobalToMarketDepositParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildGlobalToMarketDepositIx(params, numOutcomes, this.client.programId);\n }\n\n withdrawFromGlobalIx(params: WithdrawFromGlobalParams): TransactionInstruction {\n return buildWithdrawFromGlobalIx(params, this.client.programId);\n }\n\n closePositionAltIx(params: ClosePositionAltParams): TransactionInstruction {\n return buildClosePositionAltIx(params, this.client.programId);\n }\n\n closePositionTokenAccountsIx(\n params: ClosePositionTokenAccountsParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildClosePositionTokenAccountsIx(\n params,\n numOutcomes,\n this.client.programId\n );\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n redeemWinningsTx(\n params: RedeemWinningsParams,\n outcomeIndex: number\n ): Transaction {\n const ix = this.redeemWinningsIx(params, outcomeIndex);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n withdrawFromPositionTx(params: WithdrawFromPositionParams): Transaction {\n const ix = this.withdrawFromPositionIx(params);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n initPositionTokensTx(\n params: InitPositionTokensParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.initPositionTokensIx(params, numOutcomes);\n return new Transaction({ feePayer: params.payer }).add(ix);\n }\n\n extendPositionTokensTx(\n params: ExtendPositionTokensParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.extendPositionTokensIx(params, numOutcomes);\n return new Transaction({ feePayer: params.operator }).add(ix);\n }\n\n depositToGlobalTx(params: DepositToGlobalParams): Transaction {\n const ix = this.depositToGlobalIx(params);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n depositToGlobalTxWithAlt(\n params: DepositToGlobalParams,\n altContext: DepositToGlobalAltContext\n ): Transaction {\n const ix = this.depositToGlobalIxWithAlt(params, altContext);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n globalToMarketDepositTx(\n params: GlobalToMarketDepositParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.globalToMarketDepositIx(params, numOutcomes);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n withdrawFromGlobalTx(params: WithdrawFromGlobalParams): Transaction {\n const ix = this.withdrawFromGlobalIx(params);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n closePositionAltTx(params: ClosePositionAltParams): Transaction {\n const ix = this.closePositionAltIx(params);\n return new Transaction({ feePayer: params.operator }).add(ix);\n }\n\n closePositionTokenAccountsTx(\n params: ClosePositionTokenAccountsParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.closePositionTokenAccountsIx(params, numOutcomes);\n return new Transaction({ feePayer: params.operator }).add(ix);\n }\n\n // ── Builder factories ──────────────────────────────────────────────\n\n deposit(): DepositBuilder {\n return new DepositBuilder(this.client, this.client.depositSource);\n }\n\n merge(): MergeBuilder {\n return new MergeBuilder(this.client);\n }\n\n withdraw(): WithdrawBuilder {\n return new WithdrawBuilder(this.client, this.client.depositSource);\n }\n\n redeemWinnings(): RedeemWinningsBuilder {\n return new RedeemWinningsBuilder(this.client);\n }\n\n withdrawFromPosition(): WithdrawFromPositionBuilder {\n return new WithdrawFromPositionBuilder(this.client);\n }\n\n initPositionTokens(): InitPositionTokensBuilder {\n return new InitPositionTokensBuilder(this.client);\n }\n\n extendPositionTokens(): ExtendPositionTokensBuilder {\n return new ExtendPositionTokensBuilder(this.client);\n }\n\n depositToGlobal(): DepositToGlobalBuilder {\n return new DepositToGlobalBuilder(this.client);\n }\n\n withdrawFromGlobal(): WithdrawFromGlobalBuilder {\n return new WithdrawFromGlobalBuilder(this.client);\n }\n\n globalToMarketDeposit(): GlobalToMarketDepositBuilder {\n return new GlobalToMarketDepositBuilder(this.client);\n }\n\n // ── On-chain account fetchers (require Connection) ──────────────────\n\n async getOnchain(owner: PublicKey, market: PublicKey): Promise<ProgramPosition | null> {\n const connection = requireConnection(this.client);\n const positionPda = this.pda(owner, market);\n const accountInfo = await connection.getAccountInfo(positionPda);\n if (!accountInfo) {\n return null;\n }\n return deserializeProgramPosition(accountInfo.data as Buffer);\n }\n}\n"]}
@@ -8,11 +8,11 @@ export declare class Referrals {
8
8
  constructor(client: ClientContext);
9
9
  getStatus(): Promise<ReferralStatus>;
10
10
  /**
11
- * Same as {@link getStatus}, but uses the supplied `authToken` for this
11
+ * Same as {@link getStatus}, but uses the supplied `cookieHeader` for this
12
12
  * call instead of the SDK's process-wide cookie store. For server-side
13
13
  * cookie forwarding (SSR / route handlers).
14
14
  */
15
- getStatusWithAuth(authToken: string): Promise<ReferralStatus>;
15
+ getStatusWithCookies(cookieHeader: string): Promise<ReferralStatus>;
16
16
  redeem(code: string): Promise<RedeemResult>;
17
17
  }
18
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/referral/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG5D,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAM1C;;;;OAIG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU7D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAclD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/referral/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG5D,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAM1C;;;;OAIG;IACG,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAUnE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAclD"}
@@ -13,13 +13,13 @@ class Referrals {
13
13
  return referralStatusFromWire(response);
14
14
  }
15
15
  /**
16
- * Same as {@link getStatus}, but uses the supplied `authToken` for this
16
+ * Same as {@link getStatus}, but uses the supplied `cookieHeader` for this
17
17
  * call instead of the SDK's process-wide cookie store. For server-side
18
18
  * cookie forwarding (SSR / route handlers).
19
19
  */
20
- async getStatusWithAuth(authToken) {
20
+ async getStatusWithCookies(cookieHeader) {
21
21
  const url = `${this.client.http.baseUrl()}/api/referral/status`;
22
- const response = await this.client.http.getWithAuth(url, http_1.RetryPolicy.Idempotent, authToken);
22
+ const response = await this.client.http.getWithCookies(url, http_1.RetryPolicy.Idempotent, cookieHeader);
23
23
  return referralStatusFromWire(response);
24
24
  }
25
25
  async redeem(code) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/referral/client.ts"],"names":[],"mappings":";;;AAAA,qCAA6D;AAQ7D,MAAa,SAAS;IACS;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,EAAE,kBAAW,CAAC,UAAU,CAAC,CAAC;QACjG,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CACjD,GAAG,EACH,kBAAW,CAAC,UAAU,EACtB,SAAS,CACV,CAAC;QACF,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAChE,MAAM,IAAI,GAAkB,EAAE,IAAI,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAC1C,GAAG,EACH,IAAI,EACJ,kBAAW,CAAC,IAAI,CACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;CACF;AAtCD,8BAsCC;AAED,SAAS,sBAAsB,CAAC,QAAgC;IAC9D,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,OAAO;QACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC","sourcesContent":["import { RetryPolicy, type LightconeHttp } from \"../../http\";\nimport type { RedeemResult, ReferralStatus } from \"./index\";\nimport type { RedeemRequest, RedeemResponse, ReferralStatusResponse } from \"./wire\";\n\ninterface ClientContext {\n http: LightconeHttp;\n}\n\nexport class Referrals {\n constructor(private readonly client: ClientContext) {}\n\n async getStatus(): Promise<ReferralStatus> {\n const url = `${this.client.http.baseUrl()}/api/referral/status`;\n const response = await this.client.http.get<ReferralStatusResponse>(url, RetryPolicy.Idempotent);\n return referralStatusFromWire(response);\n }\n\n /**\n * Same as {@link getStatus}, but uses the supplied `authToken` for this\n * call instead of the SDK's process-wide cookie store. For server-side\n * cookie forwarding (SSR / route handlers).\n */\n async getStatusWithAuth(authToken: string): Promise<ReferralStatus> {\n const url = `${this.client.http.baseUrl()}/api/referral/status`;\n const response = await this.client.http.getWithAuth<ReferralStatusResponse>(\n url,\n RetryPolicy.Idempotent,\n authToken,\n );\n return referralStatusFromWire(response);\n }\n\n async redeem(code: string): Promise<RedeemResult> {\n const url = `${this.client.http.baseUrl()}/api/referral/redeem`;\n const body: RedeemRequest = { code };\n const response = await this.client.http.post<RedeemResponse, RedeemRequest>(\n url,\n body,\n RetryPolicy.None\n );\n\n return {\n success: response.success,\n isBeta: response.is_beta,\n };\n }\n}\n\nfunction referralStatusFromWire(response: ReferralStatusResponse): ReferralStatus {\n return {\n isBeta: response.is_beta,\n source: response.source,\n referralCodes: response.referral_codes.map((code) => ({\n code: code.code,\n maxUses: code.max_uses,\n useCount: code.use_count,\n })),\n };\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/referral/client.ts"],"names":[],"mappings":";;;AAAA,qCAA6D;AAQ7D,MAAa,SAAS;IACS;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,EAAE,kBAAW,CAAC,UAAU,CAAC,CAAC;QACjG,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QAC7C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CACpD,GAAG,EACH,kBAAW,CAAC,UAAU,EACtB,YAAY,CACb,CAAC;QACF,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAChE,MAAM,IAAI,GAAkB,EAAE,IAAI,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAC1C,GAAG,EACH,IAAI,EACJ,kBAAW,CAAC,IAAI,CACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;CACF;AAtCD,8BAsCC;AAED,SAAS,sBAAsB,CAAC,QAAgC;IAC9D,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,OAAO;QACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC","sourcesContent":["import { RetryPolicy, type LightconeHttp } from \"../../http\";\nimport type { RedeemResult, ReferralStatus } from \"./index\";\nimport type { RedeemRequest, RedeemResponse, ReferralStatusResponse } from \"./wire\";\n\ninterface ClientContext {\n http: LightconeHttp;\n}\n\nexport class Referrals {\n constructor(private readonly client: ClientContext) {}\n\n async getStatus(): Promise<ReferralStatus> {\n const url = `${this.client.http.baseUrl()}/api/referral/status`;\n const response = await this.client.http.get<ReferralStatusResponse>(url, RetryPolicy.Idempotent);\n return referralStatusFromWire(response);\n }\n\n /**\n * Same as {@link getStatus}, but uses the supplied `cookieHeader` for this\n * call instead of the SDK's process-wide cookie store. For server-side\n * cookie forwarding (SSR / route handlers).\n */\n async getStatusWithCookies(cookieHeader: string): Promise<ReferralStatus> {\n const url = `${this.client.http.baseUrl()}/api/referral/status`;\n const response = await this.client.http.getWithCookies<ReferralStatusResponse>(\n url,\n RetryPolicy.Idempotent,\n cookieHeader,\n );\n return referralStatusFromWire(response);\n }\n\n async redeem(code: string): Promise<RedeemResult> {\n const url = `${this.client.http.baseUrl()}/api/referral/redeem`;\n const body: RedeemRequest = { code };\n const response = await this.client.http.post<RedeemResponse, RedeemRequest>(\n url,\n body,\n RetryPolicy.None\n );\n\n return {\n success: response.success,\n isBeta: response.is_beta,\n };\n }\n}\n\nfunction referralStatusFromWire(response: ReferralStatusResponse): ReferralStatus {\n return {\n isBeta: response.is_beta,\n source: response.source,\n referralCodes: response.referral_codes.map((code) => ({\n code: code.code,\n maxUses: code.max_uses,\n useCount: code.use_count,\n })),\n };\n}\n"]}