@lightconexyz/lightcone-sdk 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +263 -34
  2. package/dist/auth/client.js.map +1 -1
  3. package/dist/client.d.ts +4 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +8 -0
  6. package/dist/client.js.map +1 -1
  7. package/dist/domain/admin/client.d.ts +3 -1
  8. package/dist/domain/admin/client.d.ts.map +1 -1
  9. package/dist/domain/admin/client.js +8 -0
  10. package/dist/domain/admin/client.js.map +1 -1
  11. package/dist/domain/admin/wire.d.ts +53 -4
  12. package/dist/domain/admin/wire.d.ts.map +1 -1
  13. package/dist/domain/admin/wire.js.map +1 -1
  14. package/dist/domain/deposit_price/client.d.ts +13 -0
  15. package/dist/domain/deposit_price/client.d.ts.map +1 -0
  16. package/dist/domain/deposit_price/client.js +28 -0
  17. package/dist/domain/deposit_price/client.js.map +1 -0
  18. package/dist/domain/deposit_price/index.d.ts +9 -0
  19. package/dist/domain/deposit_price/index.d.ts.map +1 -0
  20. package/dist/domain/deposit_price/index.js +20 -0
  21. package/dist/domain/deposit_price/index.js.map +1 -0
  22. package/dist/domain/deposit_price/state.d.ts +17 -0
  23. package/dist/domain/deposit_price/state.d.ts.map +1 -0
  24. package/dist/domain/deposit_price/state.js +45 -0
  25. package/dist/domain/deposit_price/state.js.map +1 -0
  26. package/dist/domain/deposit_price/wire.d.ts +36 -0
  27. package/dist/domain/deposit_price/wire.d.ts.map +1 -0
  28. package/dist/domain/deposit_price/wire.js +3 -0
  29. package/dist/domain/deposit_price/wire.js.map +1 -0
  30. package/dist/domain/index.d.ts +2 -0
  31. package/dist/domain/index.d.ts.map +1 -1
  32. package/dist/domain/index.js +3 -1
  33. package/dist/domain/index.js.map +1 -1
  34. package/dist/domain/notification/client.d.ts +13 -0
  35. package/dist/domain/notification/client.d.ts.map +1 -0
  36. package/dist/domain/notification/client.js +21 -0
  37. package/dist/domain/notification/client.js.map +1 -0
  38. package/dist/domain/notification/index.d.ts +51 -0
  39. package/dist/domain/notification/index.d.ts.map +1 -0
  40. package/dist/domain/notification/index.js +29 -0
  41. package/dist/domain/notification/index.js.map +1 -0
  42. package/dist/domain/order/client.d.ts +2 -1
  43. package/dist/domain/order/client.d.ts.map +1 -1
  44. package/dist/domain/order/client.js +10 -2
  45. package/dist/domain/order/client.js.map +1 -1
  46. package/dist/domain/order/convert.js +3 -3
  47. package/dist/domain/order/convert.js.map +1 -1
  48. package/dist/domain/order/wire.d.ts +31 -25
  49. package/dist/domain/order/wire.d.ts.map +1 -1
  50. package/dist/domain/order/wire.js.map +1 -1
  51. package/dist/domain/orderbook/state.js +2 -2
  52. package/dist/domain/orderbook/state.js.map +1 -1
  53. package/dist/domain/orderbook/wire.d.ts +2 -0
  54. package/dist/domain/orderbook/wire.d.ts.map +1 -1
  55. package/dist/domain/orderbook/wire.js.map +1 -1
  56. package/dist/domain/position/wire.d.ts +7 -0
  57. package/dist/domain/position/wire.d.ts.map +1 -1
  58. package/dist/domain/position/wire.js.map +1 -1
  59. package/dist/domain/price_history/client.d.ts +2 -1
  60. package/dist/domain/price_history/client.d.ts.map +1 -1
  61. package/dist/domain/price_history/client.js +13 -2
  62. package/dist/domain/price_history/client.js.map +1 -1
  63. package/dist/domain/price_history/wire.d.ts +30 -7
  64. package/dist/domain/price_history/wire.d.ts.map +1 -1
  65. package/dist/domain/price_history/wire.js.map +1 -1
  66. package/dist/domain/trade/client.d.ts +1 -1
  67. package/dist/domain/trade/client.js +3 -3
  68. package/dist/domain/trade/client.js.map +1 -1
  69. package/dist/error.d.ts.map +1 -1
  70. package/dist/error.js +3 -0
  71. package/dist/error.js.map +1 -1
  72. package/dist/http/client.d.ts.map +1 -1
  73. package/dist/http/client.js +5 -4
  74. package/dist/http/client.js.map +1 -1
  75. package/dist/index.d.ts +1 -1
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js.map +1 -1
  78. package/dist/prelude.d.ts +12 -5
  79. package/dist/prelude.d.ts.map +1 -1
  80. package/dist/prelude.js +8 -1
  81. package/dist/prelude.js.map +1 -1
  82. package/dist/privy/client.d.ts +4 -5
  83. package/dist/privy/client.d.ts.map +1 -1
  84. package/dist/privy/client.js +2 -11
  85. package/dist/privy/client.js.map +1 -1
  86. package/dist/privy/index.d.ts +41 -1
  87. package/dist/privy/index.d.ts.map +1 -1
  88. package/dist/privy/index.js +2 -0
  89. package/dist/privy/index.js.map +1 -1
  90. package/dist/program/accounts.d.ts +2 -4
  91. package/dist/program/accounts.d.ts.map +1 -1
  92. package/dist/program/accounts.js +2 -5
  93. package/dist/program/accounts.js.map +1 -1
  94. package/dist/program/builder.d.ts +5 -13
  95. package/dist/program/builder.d.ts.map +1 -1
  96. package/dist/program/builder.js +9 -13
  97. package/dist/program/builder.js.map +1 -1
  98. package/dist/program/client.d.ts +8 -7
  99. package/dist/program/client.d.ts.map +1 -1
  100. package/dist/program/client.js +11 -12
  101. package/dist/program/client.js.map +1 -1
  102. package/dist/program/constants.js +1 -1
  103. package/dist/program/constants.js.map +1 -1
  104. package/dist/program/envelope.d.ts +7 -2
  105. package/dist/program/envelope.d.ts.map +1 -1
  106. package/dist/program/envelope.js +29 -21
  107. package/dist/program/envelope.js.map +1 -1
  108. package/dist/program/index.d.ts +3 -3
  109. package/dist/program/index.d.ts.map +1 -1
  110. package/dist/program/index.js +5 -3
  111. package/dist/program/index.js.map +1 -1
  112. package/dist/program/instructions.d.ts +31 -53
  113. package/dist/program/instructions.d.ts.map +1 -1
  114. package/dist/program/instructions.js +155 -216
  115. package/dist/program/instructions.js.map +1 -1
  116. package/dist/program/orders.d.ts +20 -19
  117. package/dist/program/orders.d.ts.map +1 -1
  118. package/dist/program/orders.js +34 -22
  119. package/dist/program/orders.js.map +1 -1
  120. package/dist/program/types.d.ts +23 -24
  121. package/dist/program/types.d.ts.map +1 -1
  122. package/dist/program/types.js.map +1 -1
  123. package/dist/shared/index.d.ts +1 -1
  124. package/dist/shared/index.d.ts.map +1 -1
  125. package/dist/shared/index.js +2 -1
  126. package/dist/shared/index.js.map +1 -1
  127. package/dist/shared/types.d.ts +10 -3
  128. package/dist/shared/types.d.ts.map +1 -1
  129. package/dist/shared/types.js +6 -1
  130. package/dist/shared/types.js.map +1 -1
  131. package/dist/ws/client.browser.d.ts +46 -0
  132. package/dist/ws/client.browser.d.ts.map +1 -0
  133. package/dist/ws/client.browser.js +245 -0
  134. package/dist/ws/client.browser.js.map +1 -0
  135. package/dist/ws/{client.d.ts → client.node.d.ts} +3 -2
  136. package/dist/ws/client.node.d.ts.map +1 -0
  137. package/dist/ws/{client.js → client.node.js} +3 -3
  138. package/dist/ws/client.node.js.map +1 -0
  139. package/dist/ws/index.d.ts +10 -1
  140. package/dist/ws/index.d.ts.map +1 -1
  141. package/dist/ws/index.js +50 -2
  142. package/dist/ws/index.js.map +1 -1
  143. package/dist/ws/subscriptions.d.ts +8 -0
  144. package/dist/ws/subscriptions.d.ts.map +1 -1
  145. package/dist/ws/subscriptions.js +5 -0
  146. package/dist/ws/subscriptions.js.map +1 -1
  147. package/dist/ws/types.d.ts +23 -0
  148. package/dist/ws/types.d.ts.map +1 -0
  149. package/dist/ws/types.js +3 -0
  150. package/dist/ws/types.js.map +1 -0
  151. package/package.json +10 -4
  152. package/dist/ws/client.d.ts.map +0 -1
  153. package/dist/ws/client.js.map +0 -1
@@ -33,6 +33,7 @@ class OrderBuilder {
33
33
  _amountIn = 0n;
34
34
  _amountOut = 0n;
35
35
  _expiration = 0n;
36
+ _depositSource;
36
37
  /** Set the order nonce (u32) */
37
38
  nonce(value) {
38
39
  this._nonce = value;
@@ -96,6 +97,11 @@ class OrderBuilder {
96
97
  this._expiration = value;
97
98
  return this;
98
99
  }
100
+ /** Set deposit source for order submission */
101
+ depositSource(value) {
102
+ this._depositSource = value;
103
+ return this;
104
+ }
99
105
  /**
100
106
  * Set price and size, auto-computing amountIn and amountOut using decimal scaling.
101
107
  *
@@ -164,19 +170,9 @@ class OrderBuilder {
164
170
  */
165
171
  toSubmitRequest(keypair, orderbookId) {
166
172
  const signed = this.buildAndSign(keypair);
167
- return {
168
- maker: signed.maker.toBase58(),
169
- nonce: signed.nonce,
170
- market_pubkey: signed.market.toBase58(),
171
- base_token: signed.baseMint.toBase58(),
172
- quote_token: signed.quoteMint.toBase58(),
173
- side: signed.side,
174
- amount_in: signed.amountIn.toString(),
175
- amount_out: signed.amountOut.toString(),
176
- expiration: Number(signed.expiration),
177
- signature: (0, orders_1.signatureHex)(signed),
178
- orderbook_id: orderbookId,
179
- };
173
+ return (0, orders_1.toSubmitRequest)(signed, orderbookId, {
174
+ depositSource: this._depositSource,
175
+ });
180
176
  }
181
177
  }
182
178
  exports.OrderBuilder = OrderBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/program/builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey, Keypair } from \"@solana/web3.js\";\nimport { SignedOrder, OrderSide } from \"./types\";\nimport { signOrderFull, signatureHex } from \"./orders\";\nimport { scalePriceSize, OrderbookDecimals } from \"../shared/scaling\";\n\n/**\n * Fluent builder for creating orders.\n * Matches the Rust SDK's OrderBuilder pattern.\n *\n * @example\n * ```typescript\n * const order = new OrderBuilder()\n * .nonce(1)\n * .maker(makerPubkey)\n * .market(marketPubkey)\n * .baseMint(baseMintPubkey)\n * .quoteMint(quoteMintPubkey)\n * .bid()\n * .amountIn(1000000n)\n * .amountOut(500000n)\n * .expiration(0n)\n * .build();\n * ```\n */\nexport class OrderBuilder {\n private _nonce: number = 0;\n private _maker: PublicKey | null = null;\n private _market: PublicKey | null = null;\n private _baseMint: PublicKey | null = null;\n private _quoteMint: PublicKey | null = null;\n private _side: OrderSide = OrderSide.BID;\n private _amountIn: bigint = 0n;\n private _amountOut: bigint = 0n;\n private _expiration: bigint = 0n;\n\n /** Set the order nonce (u32) */\n nonce(value: number): this {\n this._nonce = value;\n return this;\n }\n\n /** Set the maker (signer) */\n maker(value: PublicKey): this {\n this._maker = value;\n return this;\n }\n\n /** Set the market */\n market(value: PublicKey): this {\n this._market = value;\n return this;\n }\n\n /** Set the base mint (conditional token) */\n baseMint(value: PublicKey): this {\n this._baseMint = value;\n return this;\n }\n\n /** Set the quote mint (payment token) */\n quoteMint(value: PublicKey): this {\n this._quoteMint = value;\n return this;\n }\n\n /** Set side to BID */\n bid(): this {\n this._side = OrderSide.BID;\n return this;\n }\n\n /** Set side to ASK */\n ask(): this {\n this._side = OrderSide.ASK;\n return this;\n }\n\n /** Set the order side */\n side(value: OrderSide): this {\n this._side = value;\n return this;\n }\n\n /** Set amount in (what maker gives) */\n amountIn(value: bigint): this {\n this._amountIn = value;\n return this;\n }\n\n /** Set amount out (what maker receives) */\n amountOut(value: bigint): this {\n this._amountOut = value;\n return this;\n }\n\n /** @deprecated Use amountIn() */\n makerAmount(value: bigint): this {\n return this.amountIn(value);\n }\n\n /** @deprecated Use amountOut() */\n takerAmount(value: bigint): this {\n return this.amountOut(value);\n }\n\n /** Set expiration timestamp (0 = no expiration) */\n expiration(value: bigint): this {\n this._expiration = value;\n return this;\n }\n\n /**\n * Set price and size, auto-computing amountIn and amountOut using decimal scaling.\n *\n * @param price - Price as a decimal string (e.g., \"0.75\")\n * @param size - Size as a decimal string (e.g., \"100\")\n * @param decimals - Orderbook decimal configuration\n */\n price(priceStr: string, sizeStr: string, decimals: OrderbookDecimals): this {\n const { amountIn, amountOut } = scalePriceSize(\n priceStr,\n sizeStr,\n this._side,\n decimals\n );\n this._amountIn = amountIn;\n this._amountOut = amountOut;\n return this;\n }\n\n /**\n * Apply decimal scaling to convert price/size to amountIn/amountOut.\n * Equivalent to calling price() but with separate method name for clarity.\n */\n applyScaling(\n priceStr: string,\n sizeStr: string,\n decimals: OrderbookDecimals\n ): this {\n return this.price(priceStr, sizeStr, decimals);\n }\n\n /**\n * Build the unsigned SignedOrder (signature will be all zeros).\n * All required fields must be set.\n */\n build(): SignedOrder {\n if (!this._maker) throw new Error(\"OrderBuilder: maker is required\");\n if (!this._market) throw new Error(\"OrderBuilder: market is required\");\n if (!this._baseMint) throw new Error(\"OrderBuilder: baseMint is required\");\n if (!this._quoteMint) throw new Error(\"OrderBuilder: quoteMint is required\");\n\n return {\n nonce: this._nonce,\n maker: this._maker,\n market: this._market,\n baseMint: this._baseMint,\n quoteMint: this._quoteMint,\n side: this._side,\n amountIn: this._amountIn,\n amountOut: this._amountOut,\n expiration: this._expiration,\n signature: Buffer.alloc(64),\n };\n }\n\n /**\n * Build and sign the order with a Keypair.\n */\n buildAndSign(keypair: Keypair): SignedOrder {\n const unsigned = this.build();\n return signOrderFull(\n {\n nonce: unsigned.nonce,\n maker: unsigned.maker,\n market: unsigned.market,\n baseMint: unsigned.baseMint,\n quoteMint: unsigned.quoteMint,\n side: unsigned.side,\n amountIn: unsigned.amountIn,\n amountOut: unsigned.amountOut,\n expiration: unsigned.expiration,\n },\n keypair\n );\n }\n\n /**\n * Build, sign, and convert to a SubmitOrderRequest.\n */\n toSubmitRequest(\n keypair: Keypair,\n orderbookId: string\n ): {\n maker: string;\n nonce: number;\n market_pubkey: string;\n base_token: string;\n quote_token: string;\n side: number;\n amount_in: string;\n amount_out: string;\n expiration: number;\n signature: string;\n orderbook_id: string;\n } {\n const signed = this.buildAndSign(keypair);\n return {\n maker: signed.maker.toBase58(),\n nonce: signed.nonce,\n market_pubkey: signed.market.toBase58(),\n base_token: signed.baseMint.toBase58(),\n quote_token: signed.quoteMint.toBase58(),\n side: signed.side,\n amount_in: signed.amountIn.toString(),\n amount_out: signed.amountOut.toString(),\n expiration: Number(signed.expiration),\n signature: signatureHex(signed),\n orderbook_id: orderbookId,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/program/builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey, Keypair } from \"@solana/web3.js\";\nimport { SignedOrder, OrderSide } from \"./types\";\nimport { signOrderFull, toSubmitRequest as orderToSubmitRequest } from \"./orders\";\nimport { scalePriceSize, OrderbookDecimals } from \"../shared/scaling\";\nimport type { DepositSource, SubmitOrderRequest } from \"../shared\";\n\n/**\n * Fluent builder for creating orders.\n * Matches the Rust SDK's OrderBuilder pattern.\n *\n * @example\n * ```typescript\n * const order = new OrderBuilder()\n * .nonce(1)\n * .maker(makerPubkey)\n * .market(marketPubkey)\n * .baseMint(baseMintPubkey)\n * .quoteMint(quoteMintPubkey)\n * .bid()\n * .amountIn(1000000n)\n * .amountOut(500000n)\n * .expiration(0n)\n * .build();\n * ```\n */\nexport class OrderBuilder {\n private _nonce: number = 0;\n private _maker: PublicKey | null = null;\n private _market: PublicKey | null = null;\n private _baseMint: PublicKey | null = null;\n private _quoteMint: PublicKey | null = null;\n private _side: OrderSide = OrderSide.BID;\n private _amountIn: bigint = 0n;\n private _amountOut: bigint = 0n;\n private _expiration: bigint = 0n;\n private _depositSource?: DepositSource;\n\n /** Set the order nonce (u32) */\n nonce(value: number): this {\n this._nonce = value;\n return this;\n }\n\n /** Set the maker (signer) */\n maker(value: PublicKey): this {\n this._maker = value;\n return this;\n }\n\n /** Set the market */\n market(value: PublicKey): this {\n this._market = value;\n return this;\n }\n\n /** Set the base mint (conditional token) */\n baseMint(value: PublicKey): this {\n this._baseMint = value;\n return this;\n }\n\n /** Set the quote mint (payment token) */\n quoteMint(value: PublicKey): this {\n this._quoteMint = value;\n return this;\n }\n\n /** Set side to BID */\n bid(): this {\n this._side = OrderSide.BID;\n return this;\n }\n\n /** Set side to ASK */\n ask(): this {\n this._side = OrderSide.ASK;\n return this;\n }\n\n /** Set the order side */\n side(value: OrderSide): this {\n this._side = value;\n return this;\n }\n\n /** Set amount in (what maker gives) */\n amountIn(value: bigint): this {\n this._amountIn = value;\n return this;\n }\n\n /** Set amount out (what maker receives) */\n amountOut(value: bigint): this {\n this._amountOut = value;\n return this;\n }\n\n /** @deprecated Use amountIn() */\n makerAmount(value: bigint): this {\n return this.amountIn(value);\n }\n\n /** @deprecated Use amountOut() */\n takerAmount(value: bigint): this {\n return this.amountOut(value);\n }\n\n /** Set expiration timestamp (0 = no expiration) */\n expiration(value: bigint): this {\n this._expiration = value;\n return this;\n }\n\n /** Set deposit source for order submission */\n depositSource(value: DepositSource): this {\n this._depositSource = value;\n return this;\n }\n\n /**\n * Set price and size, auto-computing amountIn and amountOut using decimal scaling.\n *\n * @param price - Price as a decimal string (e.g., \"0.75\")\n * @param size - Size as a decimal string (e.g., \"100\")\n * @param decimals - Orderbook decimal configuration\n */\n price(priceStr: string, sizeStr: string, decimals: OrderbookDecimals): this {\n const { amountIn, amountOut } = scalePriceSize(\n priceStr,\n sizeStr,\n this._side,\n decimals\n );\n this._amountIn = amountIn;\n this._amountOut = amountOut;\n return this;\n }\n\n /**\n * Apply decimal scaling to convert price/size to amountIn/amountOut.\n * Equivalent to calling price() but with separate method name for clarity.\n */\n applyScaling(\n priceStr: string,\n sizeStr: string,\n decimals: OrderbookDecimals\n ): this {\n return this.price(priceStr, sizeStr, decimals);\n }\n\n /**\n * Build the unsigned SignedOrder (signature will be all zeros).\n * All required fields must be set.\n */\n build(): SignedOrder {\n if (!this._maker) throw new Error(\"OrderBuilder: maker is required\");\n if (!this._market) throw new Error(\"OrderBuilder: market is required\");\n if (!this._baseMint) throw new Error(\"OrderBuilder: baseMint is required\");\n if (!this._quoteMint) throw new Error(\"OrderBuilder: quoteMint is required\");\n\n return {\n nonce: this._nonce,\n maker: this._maker,\n market: this._market,\n baseMint: this._baseMint,\n quoteMint: this._quoteMint,\n side: this._side,\n amountIn: this._amountIn,\n amountOut: this._amountOut,\n expiration: this._expiration,\n signature: Buffer.alloc(64),\n };\n }\n\n /**\n * Build and sign the order with a Keypair.\n */\n buildAndSign(keypair: Keypair): SignedOrder {\n const unsigned = this.build();\n return signOrderFull(\n {\n nonce: unsigned.nonce,\n maker: unsigned.maker,\n market: unsigned.market,\n baseMint: unsigned.baseMint,\n quoteMint: unsigned.quoteMint,\n side: unsigned.side,\n amountIn: unsigned.amountIn,\n amountOut: unsigned.amountOut,\n expiration: unsigned.expiration,\n },\n keypair\n );\n }\n\n /**\n * Build, sign, and convert to a SubmitOrderRequest.\n */\n toSubmitRequest(\n keypair: Keypair,\n orderbookId: string\n ): SubmitOrderRequest {\n const signed = this.buildAndSign(keypair);\n return orderToSubmitRequest(signed, orderbookId, {\n depositSource: this._depositSource,\n });\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Connection, PublicKey, Keypair } from "@solana/web3.js";
2
- import { Exchange, Market, Position, OrderStatus, Orderbook, GlobalDepositToken, BuildResult, InitializeParams, CreateMarketParams, AddDepositMintParams, MintCompleteSetParams, MergeCompleteSetParams, SettleMarketParams, RedeemWinningsParams, WithdrawFromPositionParams, ActivateMarketParams, MatchOrdersMultiParams, SetAuthorityParams, CreateOrderbookParams, WhitelistDepositTokenParams, DepositToGlobalParams, GlobalToMarketDepositParams, InitPositionTokensParams, DepositAndSwapParams, ExtendPositionTokensParams, SignedOrder, BidOrderParams, AskOrderParams, InitializeAccounts, CreateMarketAccounts, AddDepositMintAccounts, MintCompleteSetAccounts, MergeCompleteSetAccounts, CancelOrderAccounts, IncrementNonceAccounts, SettleMarketAccounts, RedeemWinningsAccounts, ActivateMarketAccounts, MatchOrdersMultiAccounts } from "./types";
2
+ import { Exchange, Market, Position, OrderStatus, Orderbook, GlobalDepositToken, BuildResult, InitializeParams, CreateMarketParams, AddDepositMintParams, MintCompleteSetParams, MergeCompleteSetParams, SettleMarketParams, RedeemWinningsParams, WithdrawFromPositionParams, ActivateMarketParams, MatchOrdersMultiParams, SetAuthorityParams, CreateOrderbookParams, WhitelistDepositTokenParams, DepositToGlobalParams, GlobalToMarketDepositParams, InitPositionTokensParams, ExtendPositionTokensParams, DepositAndSwapParams, SignedOrder, BidOrderParams, AskOrderParams, InitializeAccounts, CreateMarketAccounts, AddDepositMintAccounts, MintCompleteSetAccounts, MergeCompleteSetAccounts, CancelOrderAccounts, IncrementNonceAccounts, SettleMarketAccounts, RedeemWinningsAccounts, ActivateMarketAccounts, MatchOrdersMultiAccounts } from "./types";
3
3
  import * as pda from "./pda";
4
4
  /**
5
5
  * LightconePinocchioClient - SDK for interacting with the Lightcone Pinocchio program
@@ -21,7 +21,7 @@ export declare class LightconePinocchioClient {
21
21
  getCurrentNonce(user: PublicKey): Promise<number>;
22
22
  getNextNonce(user: PublicKey): Promise<number>;
23
23
  getNextMarketId(): Promise<bigint>;
24
- getOrderbook(mintA: PublicKey, mintB: PublicKey): Promise<Orderbook | null>;
24
+ getOrderbook(mintA: PublicKey, mintB: PublicKey): Promise<Orderbook>;
25
25
  getGlobalDepositToken(mint: PublicKey): Promise<GlobalDepositToken>;
26
26
  getLatestBlockhash(): Promise<Readonly<{
27
27
  blockhash: import("@solana/web3.js").Blockhash;
@@ -30,7 +30,7 @@ export declare class LightconePinocchioClient {
30
30
  private createBuildResult;
31
31
  initialize(params: InitializeParams): Promise<BuildResult<InitializeAccounts>>;
32
32
  createMarket(params: CreateMarketParams): Promise<BuildResult<CreateMarketAccounts>>;
33
- addDepositMint(params: AddDepositMintParams, numOutcomes: number): Promise<BuildResult<AddDepositMintAccounts>>;
33
+ addDepositMint(params: AddDepositMintParams, market: PublicKey, numOutcomes: number): Promise<BuildResult<AddDepositMintAccounts>>;
34
34
  mintCompleteSet(params: MintCompleteSetParams, numOutcomes: number): Promise<BuildResult<MintCompleteSetAccounts>>;
35
35
  mergeCompleteSet(params: MergeCompleteSetParams, numOutcomes: number): Promise<BuildResult<MergeCompleteSetAccounts>>;
36
36
  cancelOrder(maker: PublicKey, order: SignedOrder): Promise<BuildResult<CancelOrderAccounts>>;
@@ -68,11 +68,12 @@ export declare class LightconePinocchioClient {
68
68
  position: PublicKey;
69
69
  lookupTable: PublicKey;
70
70
  }>>;
71
- depositAndSwap(params: DepositAndSwapParams, numOutcomes: number): Promise<BuildResult<{
72
- takerPosition: PublicKey;
73
- }>>;
74
- extendPositionTokens(params: ExtendPositionTokensParams, numOutcomes: number, lookupTable: PublicKey): Promise<BuildResult<{
71
+ extendPositionTokens(params: ExtendPositionTokensParams, numOutcomes: number): Promise<BuildResult<{
75
72
  position: PublicKey;
73
+ lookupTable: PublicKey;
74
+ }>>;
75
+ depositAndSwap(params: DepositAndSwapParams): Promise<BuildResult<{
76
+ takerPosition: PublicKey;
76
77
  }>>;
77
78
  createBidOrder(params: BidOrderParams): Omit<SignedOrder, "signature">;
78
79
  createAskOrder(params: AskOrderParams): Omit<SignedOrder, "signature">;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAET,OAAO,EACR,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AA6C7B;;GAEG;AACH,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,GAAG,aAAO;gBAEP,UAAU,EAAE,UAAU,EAAE,SAAS,GAAE,SAAsB;IAKrE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB;IAIpD,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,wBAAwB;IAIpF,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,wBAAwB;IAQjE,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAShC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5C,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAQrD,WAAW,CACf,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IASrB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAS9D,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9C,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjD,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAKlC,YAAY,CAChB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAStB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;IASnE,kBAAkB;;;;YAQV,iBAAiB;IA4BzB,UAAU,CACd,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAMrC,YAAY,CAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAQvC,cAAc,CAClB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAsBzC,eAAe,CACnB,MAAM,EAAE,qBAAqB,EAC7B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IA6B1C,gBAAgB,CACpB,MAAM,EAAE,sBAAsB,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IA6B3C,WAAW,CACf,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAOtC,cAAc,CAClB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAMzC,YAAY,CAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAOvC,cAAc,CAClB,MAAM,EAAE,oBAAoB,EAC5B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IA2BzC,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAM1C,WAAW,CACf,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAM1C,oBAAoB,CACxB,MAAM,EAAE,0BAA0B,EAClC,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAU1C,cAAc,CAClB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAOzC,gBAAgB,CACpB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAsC3C,YAAY,CAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAU1C,eAAe,CACnB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,WAAW,CAAC;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAU3C,qBAAqB,CACzB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,WAAW,CAAC;QAAE,kBAAkB,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAMpD,eAAe,CACnB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,WAAW,CAAC;QAAE,iBAAiB,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAMnD,qBAAqB,CACzB,MAAM,EAAE,2BAA2B,EACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,iBAAiB,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAWxE,kBAAkB,CACtB,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,WAAW,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAOlE,cAAc,CAClB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC;QAAE,aAAa,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAU/C,oBAAoB,CACxB,MAAM,EAAE,0BAA0B,EAClC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAUhD,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;IAItE,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;IAItE,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,GAAG,WAAW;IAI1E,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,GAAG,WAAW;IAI1E,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAIrC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM;IAItD,aAAa,CACX,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EACrC,MAAM,EAAE,OAAO,GACd,WAAW;IAQd,iBAAiB,CACf,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM;IAIT,mBAAmB,CACjB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,EACtB,WAAW,EAAE,MAAM,GAClB,SAAS,EAAE;IAWd,cAAc,IAAI,SAAS;IAI3B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAIzC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS;IAI9D,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAI/C,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAI3C,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS;IAI9D,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAIpD,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS;CAGrE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"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"}
@@ -130,7 +130,7 @@ class LightconePinocchioClient {
130
130
  const [orderbookPda] = pda.getOrderbookPda(mintA, mintB, this.programId);
131
131
  const accountInfo = await this.connection.getAccountInfo(orderbookPda);
132
132
  if (!accountInfo) {
133
- return null;
133
+ throw new Error(`Orderbook not found for ${mintA.toBase58()} / ${mintB.toBase58()}`);
134
134
  }
135
135
  return (0, accounts_1.deserializeOrderbook)(accountInfo.data);
136
136
  }
@@ -178,15 +178,14 @@ class LightconePinocchioClient {
178
178
  const ix = (0, instructions_1.buildCreateMarketIx)(params, marketId, this.programId);
179
179
  return this.createBuildResult(params.authority, { exchange, market }, ix);
180
180
  }
181
- async addDepositMint(params, numOutcomes) {
182
- const [market] = pda.getMarketPda(params.marketId, this.programId);
181
+ async addDepositMint(params, market, numOutcomes) {
183
182
  const [vault] = pda.getVaultPda(params.depositMint, market, this.programId);
184
183
  const [mintAuthority] = pda.getMintAuthorityPda(market, this.programId);
185
184
  const conditionalMints = pda
186
185
  .getAllConditionalMintPdas(market, params.depositMint, numOutcomes, this.programId)
187
186
  .map(([mint]) => mint);
188
187
  const ix = (0, instructions_1.buildAddDepositMintIx)(params, market, numOutcomes, this.programId);
189
- return this.createBuildResult(params.payer, { market, vault, mintAuthority, conditionalMints }, ix);
188
+ return this.createBuildResult(params.authority, { market, vault, mintAuthority, conditionalMints }, ix);
190
189
  }
191
190
  async mintCompleteSet(params, numOutcomes) {
192
191
  const [vault] = pda.getVaultPda(params.depositMint, params.market, this.programId);
@@ -275,7 +274,7 @@ class LightconePinocchioClient {
275
274
  async createOrderbook(params) {
276
275
  const [orderbook] = pda.getOrderbookPda(params.mintA, params.mintB, this.programId);
277
276
  const ix = (0, instructions_1.buildCreateOrderbookIx)(params, this.programId);
278
- return this.createBuildResult(params.payer, { orderbook }, ix);
277
+ return this.createBuildResult(params.authority, { orderbook }, ix);
279
278
  }
280
279
  async whitelistDepositToken(params) {
281
280
  const [globalDepositToken] = pda.getGlobalDepositTokenPda(params.mint, this.programId);
@@ -299,16 +298,16 @@ class LightconePinocchioClient {
299
298
  const ix = (0, instructions_1.buildInitPositionTokensIx)(params, numOutcomes, this.programId);
300
299
  return this.createBuildResult(params.payer, { position, lookupTable }, ix);
301
300
  }
302
- async depositAndSwap(params, numOutcomes) {
301
+ async extendPositionTokens(params, numOutcomes) {
302
+ const [position] = pda.getPositionPda(params.user, params.market, this.programId);
303
+ const ix = (0, instructions_1.buildExtendPositionTokensIx)(params, numOutcomes, this.programId);
304
+ return this.createBuildResult(params.payer, { position, lookupTable: params.lookupTable }, ix);
305
+ }
306
+ async depositAndSwap(params) {
303
307
  const [takerPosition] = pda.getPositionPda(params.takerOrder.maker, params.market, this.programId);
304
- const ix = (0, instructions_1.buildDepositAndSwapIx)(params, numOutcomes, this.programId);
308
+ const ix = (0, instructions_1.buildDepositAndSwapIx)(params, this.programId);
305
309
  return this.createBuildResult(params.operator, { takerPosition }, ix);
306
310
  }
307
- async extendPositionTokens(params, numOutcomes, lookupTable) {
308
- const [position] = pda.getPositionPda(params.user, params.market, this.programId);
309
- const ix = (0, instructions_1.buildExtendPositionTokensIx)(params, numOutcomes, lookupTable, this.programId);
310
- return this.createBuildResult(params.payer, { position }, ix);
311
- }
312
311
  // ============================================================================
313
312
  // ORDER HELPERS
314
313
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Connection,\n PublicKey,\n Transaction,\n Keypair,\n} from \"@solana/web3.js\";\nimport { PROGRAM_ID } from \"./constants\";\nimport {\n Exchange,\n Market,\n Position,\n OrderStatus,\n Orderbook,\n GlobalDepositToken,\n BuildResult,\n InitializeParams,\n CreateMarketParams,\n AddDepositMintParams,\n MintCompleteSetParams,\n MergeCompleteSetParams,\n SettleMarketParams,\n RedeemWinningsParams,\n WithdrawFromPositionParams,\n ActivateMarketParams,\n MatchOrdersMultiParams,\n SetAuthorityParams,\n CreateOrderbookParams,\n WhitelistDepositTokenParams,\n DepositToGlobalParams,\n GlobalToMarketDepositParams,\n InitPositionTokensParams,\n DepositAndSwapParams,\n ExtendPositionTokensParams,\n SignedOrder,\n BidOrderParams,\n AskOrderParams,\n InitializeAccounts,\n CreateMarketAccounts,\n AddDepositMintAccounts,\n MintCompleteSetAccounts,\n MergeCompleteSetAccounts,\n CancelOrderAccounts,\n IncrementNonceAccounts,\n SettleMarketAccounts,\n RedeemWinningsAccounts,\n ActivateMarketAccounts,\n MatchOrdersMultiAccounts,\n} from \"./types\";\nimport * as pda from \"./pda\";\nimport {\n deserializeExchange,\n deserializeGlobalDepositToken,\n deserializeMarket,\n deserializePosition,\n deserializeOrderStatus,\n deserializeUserNonce,\n deserializeOrderbook,\n} from \"./accounts\";\nimport {\n buildInitializeIx,\n buildCreateMarketIx,\n buildAddDepositMintIx,\n buildMintCompleteSetIx,\n buildMergeCompleteSetIx,\n buildCancelOrderIx,\n buildIncrementNonceIx,\n buildSettleMarketIx,\n buildRedeemWinningsIx,\n buildSetPausedIx,\n buildSetOperatorIx,\n buildWithdrawFromPositionIx,\n buildActivateMarketIx,\n buildMatchOrdersMultiIx,\n buildSetAuthorityIx,\n buildCreateOrderbookIx,\n buildWhitelistDepositTokenIx,\n buildDepositToGlobalIx,\n buildGlobalToMarketDepositIx,\n buildInitPositionTokensIx,\n buildDepositAndSwapIx,\n buildExtendPositionTokensIx,\n} from \"./instructions\";\nimport {\n hashOrder,\n signOrder,\n createBidOrder,\n createAskOrder,\n createSignedBidOrder,\n createSignedAskOrder,\n signOrderFull,\n} from \"./orders\";\nimport { deriveConditionId } from \"./utils\";\n\n/**\n * LightconePinocchioClient - SDK for interacting with the Lightcone Pinocchio program\n */\nexport class LightconePinocchioClient {\n readonly connection: Connection;\n readonly programId: PublicKey;\n readonly pda = pda;\n\n constructor(connection: Connection, programId: PublicKey = PROGRAM_ID) {\n this.connection = connection;\n this.programId = programId;\n }\n\n static new(rpcUrl: string): LightconePinocchioClient {\n return new LightconePinocchioClient(new Connection(rpcUrl), PROGRAM_ID);\n }\n\n static withProgramId(rpcUrl: string, programId: PublicKey): LightconePinocchioClient {\n return new LightconePinocchioClient(new Connection(rpcUrl), programId);\n }\n\n static fromConnection(connection: Connection): LightconePinocchioClient {\n return new LightconePinocchioClient(connection, PROGRAM_ID);\n }\n\n // ============================================================================\n // ACCOUNT FETCHERS\n // ============================================================================\n\n async getExchange(): Promise<Exchange> {\n const [exchangePda] = pda.getExchangePda(this.programId);\n const accountInfo = await this.connection.getAccountInfo(exchangePda);\n if (!accountInfo) {\n throw new Error(\"Exchange account not found. Protocol not initialized.\");\n }\n return deserializeExchange(accountInfo.data as Buffer);\n }\n\n async getMarket(marketId: bigint): Promise<Market> {\n const [marketPda] = pda.getMarketPda(marketId, this.programId);\n const accountInfo = await this.connection.getAccountInfo(marketPda);\n if (!accountInfo) {\n throw new Error(`Market ${marketId} not found`);\n }\n return deserializeMarket(accountInfo.data as Buffer);\n }\n\n async getMarketByPubkey(market: PublicKey): Promise<Market> {\n const accountInfo = await this.connection.getAccountInfo(market);\n if (!accountInfo) {\n throw new Error(`Market not found at ${market.toBase58()}`);\n }\n return deserializeMarket(accountInfo.data as Buffer);\n }\n\n async getPosition(\n owner: PublicKey,\n market: PublicKey\n ): Promise<Position | null> {\n const [positionPda] = pda.getPositionPda(owner, market, this.programId);\n const accountInfo = await this.connection.getAccountInfo(positionPda);\n if (!accountInfo) {\n return null;\n }\n return deserializePosition(accountInfo.data as Buffer);\n }\n\n async getOrderStatus(orderHash: Buffer): Promise<OrderStatus | null> {\n const [orderStatusPda] = pda.getOrderStatusPda(orderHash, this.programId);\n const accountInfo = await this.connection.getAccountInfo(orderStatusPda);\n if (!accountInfo) {\n return null;\n }\n return deserializeOrderStatus(accountInfo.data as Buffer);\n }\n\n async getUserNonce(user: PublicKey): Promise<bigint> {\n const [userNoncePda] = pda.getUserNoncePda(user, this.programId);\n const accountInfo = await this.connection.getAccountInfo(userNoncePda);\n if (!accountInfo) {\n return 0n;\n }\n const nonce = deserializeUserNonce(accountInfo.data as Buffer);\n return nonce.nonce;\n }\n\n async getCurrentNonce(user: PublicKey): Promise<number> {\n const nonce = await this.getUserNonce(user);\n if (nonce > 0xFFFFFFFFn) {\n throw new Error(`Nonce exceeds u32 range: ${nonce}`);\n }\n return Number(nonce);\n }\n\n async getNextNonce(user: PublicKey): Promise<number> {\n return this.getCurrentNonce(user);\n }\n\n async getNextMarketId(): Promise<bigint> {\n const exchange = await this.getExchange();\n return exchange.marketCount;\n }\n\n async getOrderbook(\n mintA: PublicKey,\n mintB: PublicKey\n ): Promise<Orderbook | null> {\n const [orderbookPda] = pda.getOrderbookPda(mintA, mintB, this.programId);\n const accountInfo = await this.connection.getAccountInfo(orderbookPda);\n if (!accountInfo) {\n return null;\n }\n return deserializeOrderbook(accountInfo.data as Buffer);\n }\n\n async getGlobalDepositToken(mint: PublicKey): Promise<GlobalDepositToken> {\n const [globalDepositTokenPda] = pda.getGlobalDepositTokenPda(mint, this.programId);\n const accountInfo = await this.connection.getAccountInfo(globalDepositTokenPda);\n if (!accountInfo) {\n throw new Error(`GlobalDepositToken not found for mint ${mint.toBase58()}`);\n }\n return deserializeGlobalDepositToken(accountInfo.data as Buffer);\n }\n\n async getLatestBlockhash() {\n return this.connection.getLatestBlockhash();\n }\n\n // ============================================================================\n // TRANSACTION BUILDERS\n // ============================================================================\n\n private async createBuildResult<T>(\n feePayer: PublicKey,\n accounts: T,\n ...instructions: Parameters<Transaction[\"add\"]>\n ): Promise<BuildResult<T>> {\n const { blockhash, lastValidBlockHeight } =\n await this.connection.getLatestBlockhash();\n\n const transaction = new Transaction({\n feePayer,\n blockhash,\n lastValidBlockHeight,\n });\n\n for (const ix of instructions) {\n transaction.add(ix);\n }\n\n return {\n transaction,\n accounts,\n serialize: () =>\n transaction\n .serialize({ requireAllSignatures: false, verifySignatures: false })\n .toString(\"base64\"),\n };\n }\n\n async initialize(\n params: InitializeParams\n ): Promise<BuildResult<InitializeAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildInitializeIx(params, this.programId);\n return this.createBuildResult(params.authority, { exchange }, ix);\n }\n\n async createMarket(\n params: CreateMarketParams\n ): Promise<BuildResult<CreateMarketAccounts>> {\n const marketId = await this.getNextMarketId();\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(marketId, this.programId);\n const ix = buildCreateMarketIx(params, marketId, this.programId);\n return this.createBuildResult(params.authority, { exchange, market }, ix);\n }\n\n async addDepositMint(\n params: AddDepositMintParams,\n numOutcomes: number\n ): Promise<BuildResult<AddDepositMintAccounts>> {\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const [vault] = pda.getVaultPda(params.depositMint, market, this.programId);\n const [mintAuthority] = pda.getMintAuthorityPda(market, this.programId);\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildAddDepositMintIx(params, market, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.payer,\n { market, vault, mintAuthority, conditionalMints },\n ix\n );\n }\n\n async mintCompleteSet(\n params: MintCompleteSetParams,\n numOutcomes: number\n ): Promise<BuildResult<MintCompleteSetAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildMintCompleteSetIx(params, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, conditionalMints },\n ix\n );\n }\n\n async mergeCompleteSet(\n params: MergeCompleteSetParams,\n numOutcomes: number\n ): Promise<BuildResult<MergeCompleteSetAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildMergeCompleteSetIx(params, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, conditionalMints },\n ix\n );\n }\n\n async cancelOrder(\n maker: PublicKey,\n order: SignedOrder\n ): Promise<BuildResult<CancelOrderAccounts>> {\n const orderHash = hashOrder(order);\n const [orderStatus] = pda.getOrderStatusPda(orderHash, this.programId);\n const ix = buildCancelOrderIx(maker, order, this.programId);\n return this.createBuildResult(maker, { orderStatus }, ix);\n }\n\n async incrementNonce(\n user: PublicKey\n ): Promise<BuildResult<IncrementNonceAccounts>> {\n const [userNonce] = pda.getUserNoncePda(user, this.programId);\n const ix = buildIncrementNonceIx(user, this.programId);\n return this.createBuildResult(user, { userNonce }, ix);\n }\n\n async settleMarket(\n params: SettleMarketParams\n ): Promise<BuildResult<SettleMarketAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const ix = buildSettleMarketIx(params, this.programId);\n return this.createBuildResult(params.oracle, { exchange, market }, ix);\n }\n\n async redeemWinnings(\n params: RedeemWinningsParams,\n winningOutcome: number\n ): Promise<BuildResult<RedeemWinningsAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const [winningMint] = pda.getConditionalMintPda(\n params.market,\n params.depositMint,\n winningOutcome,\n this.programId\n );\n\n const ix = buildRedeemWinningsIx(params, winningOutcome, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, winningMint },\n ix\n );\n }\n\n async setPaused(\n authority: PublicKey,\n paused: boolean\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetPausedIx(authority, paused, this.programId);\n return this.createBuildResult(authority, { exchange }, ix);\n }\n\n async setOperator(\n authority: PublicKey,\n newOperator: PublicKey\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetOperatorIx(authority, newOperator, this.programId);\n return this.createBuildResult(authority, { exchange }, ix);\n }\n\n async withdrawFromPosition(\n params: WithdrawFromPositionParams,\n isToken2022: boolean\n ): Promise<BuildResult<{ position: PublicKey }>> {\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const ix = buildWithdrawFromPositionIx(params, isToken2022, this.programId);\n return this.createBuildResult(params.user, { position }, ix);\n }\n\n async activateMarket(\n params: ActivateMarketParams\n ): Promise<BuildResult<ActivateMarketAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const ix = buildActivateMarketIx(params, this.programId);\n return this.createBuildResult(params.authority, { exchange, market }, ix);\n }\n\n async matchOrdersMulti(\n params: MatchOrdersMultiParams\n ): Promise<BuildResult<MatchOrdersMultiAccounts>> {\n const takerOrderHash = hashOrder(params.takerOrder);\n const [takerOrderStatus] = pda.getOrderStatusPda(\n takerOrderHash,\n this.programId\n );\n const [takerPosition] = pda.getPositionPda(\n params.takerOrder.maker,\n params.market,\n this.programId\n );\n\n const makerOrderStatuses: PublicKey[] = [];\n const makerPositions: PublicKey[] = [];\n for (const makerOrder of params.makerOrders) {\n const makerOrderHash = hashOrder(makerOrder);\n const [makerOrderStatus] = pda.getOrderStatusPda(\n makerOrderHash,\n this.programId\n );\n const [makerPosition] = pda.getPositionPda(\n makerOrder.maker,\n params.market,\n this.programId\n );\n makerOrderStatuses.push(makerOrderStatus);\n makerPositions.push(makerPosition);\n }\n\n const ix = buildMatchOrdersMultiIx(params, this.programId);\n\n return this.createBuildResult(\n params.operator,\n { takerOrderStatus, takerPosition, makerOrderStatuses, makerPositions },\n ix\n );\n }\n\n async setAuthority(\n params: SetAuthorityParams\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetAuthorityIx(params, this.programId);\n return this.createBuildResult(\n params.currentAuthority,\n { exchange },\n ix\n );\n }\n\n async createOrderbook(\n params: CreateOrderbookParams\n ): Promise<BuildResult<{ orderbook: PublicKey }>> {\n const [orderbook] = pda.getOrderbookPda(\n params.mintA,\n params.mintB,\n this.programId\n );\n const ix = buildCreateOrderbookIx(params, this.programId);\n return this.createBuildResult(params.payer, { orderbook }, ix);\n }\n\n async whitelistDepositToken(\n params: WhitelistDepositTokenParams\n ): Promise<BuildResult<{ globalDepositToken: PublicKey }>> {\n const [globalDepositToken] = pda.getGlobalDepositTokenPda(params.mint, this.programId);\n const ix = buildWhitelistDepositTokenIx(params, this.programId);\n return this.createBuildResult(params.authority, { globalDepositToken }, ix);\n }\n\n async depositToGlobal(\n params: DepositToGlobalParams\n ): Promise<BuildResult<{ userGlobalDeposit: PublicKey }>> {\n const [userGlobalDeposit] = pda.getUserGlobalDepositPda(params.user, params.mint, this.programId);\n const ix = buildDepositToGlobalIx(params, this.programId);\n return this.createBuildResult(params.user, { userGlobalDeposit }, ix);\n }\n\n async globalToMarketDeposit(\n params: GlobalToMarketDepositParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; userGlobalDeposit: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const [userGlobalDeposit] = pda.getUserGlobalDepositPda(\n params.user,\n params.depositMint,\n this.programId\n );\n const ix = buildGlobalToMarketDepositIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.user, { position, userGlobalDeposit }, ix);\n }\n\n async initPositionTokens(\n params: InitPositionTokensParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; lookupTable: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const [lookupTable] = pda.getPositionAltPda(position, params.recentSlot);\n const ix = buildInitPositionTokensIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.payer, { position, lookupTable }, ix);\n }\n\n async depositAndSwap(\n params: DepositAndSwapParams,\n numOutcomes: number\n ): Promise<BuildResult<{ takerPosition: PublicKey }>> {\n const [takerPosition] = pda.getPositionPda(\n params.takerOrder.maker,\n params.market,\n this.programId\n );\n const ix = buildDepositAndSwapIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.operator, { takerPosition }, ix);\n }\n\n async extendPositionTokens(\n params: ExtendPositionTokensParams,\n numOutcomes: number,\n lookupTable: PublicKey\n ): Promise<BuildResult<{ position: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const ix = buildExtendPositionTokensIx(params, numOutcomes, lookupTable, this.programId);\n return this.createBuildResult(params.payer, { position }, ix);\n }\n\n // ============================================================================\n // ORDER HELPERS\n // ============================================================================\n\n createBidOrder(params: BidOrderParams): Omit<SignedOrder, \"signature\"> {\n return createBidOrder(params);\n }\n\n createAskOrder(params: AskOrderParams): Omit<SignedOrder, \"signature\"> {\n return createAskOrder(params);\n }\n\n createSignedBidOrder(params: BidOrderParams, signer: Keypair): SignedOrder {\n return createSignedBidOrder(params, signer);\n }\n\n createSignedAskOrder(params: AskOrderParams, signer: Keypair): SignedOrder {\n return createSignedAskOrder(params, signer);\n }\n\n hashOrder(order: SignedOrder): Buffer {\n return hashOrder(order);\n }\n\n signOrder(order: SignedOrder, signer: Keypair): Buffer {\n return signOrder(order, signer);\n }\n\n signFullOrder(\n order: Omit<SignedOrder, \"signature\">,\n signer: Keypair\n ): SignedOrder {\n return signOrderFull(order, signer);\n }\n\n // ============================================================================\n // UTILITY METHODS\n // ============================================================================\n\n deriveConditionId(\n oracle: PublicKey,\n questionId: Buffer,\n numOutcomes: number\n ): Buffer {\n return deriveConditionId(oracle, questionId, numOutcomes);\n }\n\n getConditionalMints(\n market: PublicKey,\n depositMint: PublicKey,\n numOutcomes: number\n ): PublicKey[] {\n return pda\n .getAllConditionalMintPdas(\n market,\n depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n }\n\n getExchangePda(): PublicKey {\n return pda.getExchangePda(this.programId)[0];\n }\n\n getMarketPda(marketId: bigint): PublicKey {\n return pda.getMarketPda(marketId, this.programId)[0];\n }\n\n getPositionPda(owner: PublicKey, market: PublicKey): PublicKey {\n return pda.getPositionPda(owner, market, this.programId)[0];\n }\n\n getOrderStatusPda(orderHash: Buffer): PublicKey {\n return pda.getOrderStatusPda(orderHash, this.programId)[0];\n }\n\n getUserNoncePda(user: PublicKey): PublicKey {\n return pda.getUserNoncePda(user, this.programId)[0];\n }\n\n getOrderbookPda(mintA: PublicKey, mintB: PublicKey): PublicKey {\n return pda.getOrderbookPda(mintA, mintB, this.programId)[0];\n }\n\n getGlobalDepositTokenPda(mint: PublicKey): PublicKey {\n return pda.getGlobalDepositTokenPda(mint, this.programId)[0];\n }\n\n getUserGlobalDepositPda(user: PublicKey, mint: PublicKey): PublicKey {\n return pda.getUserGlobalDepositPda(user, mint, this.programId)[0];\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Connection,\n PublicKey,\n Transaction,\n Keypair,\n} from \"@solana/web3.js\";\nimport { PROGRAM_ID } from \"./constants\";\nimport {\n Exchange,\n Market,\n Position,\n OrderStatus,\n Orderbook,\n GlobalDepositToken,\n BuildResult,\n InitializeParams,\n CreateMarketParams,\n AddDepositMintParams,\n MintCompleteSetParams,\n MergeCompleteSetParams,\n SettleMarketParams,\n RedeemWinningsParams,\n WithdrawFromPositionParams,\n ActivateMarketParams,\n MatchOrdersMultiParams,\n SetAuthorityParams,\n CreateOrderbookParams,\n WhitelistDepositTokenParams,\n DepositToGlobalParams,\n GlobalToMarketDepositParams,\n InitPositionTokensParams,\n ExtendPositionTokensParams,\n DepositAndSwapParams,\n SignedOrder,\n BidOrderParams,\n AskOrderParams,\n InitializeAccounts,\n CreateMarketAccounts,\n AddDepositMintAccounts,\n MintCompleteSetAccounts,\n MergeCompleteSetAccounts,\n CancelOrderAccounts,\n IncrementNonceAccounts,\n SettleMarketAccounts,\n RedeemWinningsAccounts,\n ActivateMarketAccounts,\n MatchOrdersMultiAccounts,\n} from \"./types\";\nimport * as pda from \"./pda\";\nimport {\n deserializeExchange,\n deserializeGlobalDepositToken,\n deserializeMarket,\n deserializePosition,\n deserializeOrderStatus,\n deserializeUserNonce,\n deserializeOrderbook,\n} from \"./accounts\";\nimport {\n buildInitializeIx,\n buildCreateMarketIx,\n buildAddDepositMintIx,\n buildMintCompleteSetIx,\n buildMergeCompleteSetIx,\n buildCancelOrderIx,\n buildIncrementNonceIx,\n buildSettleMarketIx,\n buildRedeemWinningsIx,\n buildSetPausedIx,\n buildSetOperatorIx,\n buildWithdrawFromPositionIx,\n buildActivateMarketIx,\n buildMatchOrdersMultiIx,\n buildSetAuthorityIx,\n buildCreateOrderbookIx,\n buildWhitelistDepositTokenIx,\n buildDepositToGlobalIx,\n buildGlobalToMarketDepositIx,\n buildInitPositionTokensIx,\n buildExtendPositionTokensIx,\n buildDepositAndSwapIx,\n} from \"./instructions\";\nimport {\n hashOrder,\n signOrder,\n createBidOrder,\n createAskOrder,\n createSignedBidOrder,\n createSignedAskOrder,\n signOrderFull,\n} from \"./orders\";\nimport { deriveConditionId } from \"./utils\";\n\n/**\n * LightconePinocchioClient - SDK for interacting with the Lightcone Pinocchio program\n */\nexport class LightconePinocchioClient {\n readonly connection: Connection;\n readonly programId: PublicKey;\n readonly pda = pda;\n\n constructor(connection: Connection, programId: PublicKey = PROGRAM_ID) {\n this.connection = connection;\n this.programId = programId;\n }\n\n static new(rpcUrl: string): LightconePinocchioClient {\n return new LightconePinocchioClient(new Connection(rpcUrl), PROGRAM_ID);\n }\n\n static withProgramId(rpcUrl: string, programId: PublicKey): LightconePinocchioClient {\n return new LightconePinocchioClient(new Connection(rpcUrl), programId);\n }\n\n static fromConnection(connection: Connection): LightconePinocchioClient {\n return new LightconePinocchioClient(connection, PROGRAM_ID);\n }\n\n // ============================================================================\n // ACCOUNT FETCHERS\n // ============================================================================\n\n async getExchange(): Promise<Exchange> {\n const [exchangePda] = pda.getExchangePda(this.programId);\n const accountInfo = await this.connection.getAccountInfo(exchangePda);\n if (!accountInfo) {\n throw new Error(\"Exchange account not found. Protocol not initialized.\");\n }\n return deserializeExchange(accountInfo.data as Buffer);\n }\n\n async getMarket(marketId: bigint): Promise<Market> {\n const [marketPda] = pda.getMarketPda(marketId, this.programId);\n const accountInfo = await this.connection.getAccountInfo(marketPda);\n if (!accountInfo) {\n throw new Error(`Market ${marketId} not found`);\n }\n return deserializeMarket(accountInfo.data as Buffer);\n }\n\n async getMarketByPubkey(market: PublicKey): Promise<Market> {\n const accountInfo = await this.connection.getAccountInfo(market);\n if (!accountInfo) {\n throw new Error(`Market not found at ${market.toBase58()}`);\n }\n return deserializeMarket(accountInfo.data as Buffer);\n }\n\n async getPosition(\n owner: PublicKey,\n market: PublicKey\n ): Promise<Position | null> {\n const [positionPda] = pda.getPositionPda(owner, market, this.programId);\n const accountInfo = await this.connection.getAccountInfo(positionPda);\n if (!accountInfo) {\n return null;\n }\n return deserializePosition(accountInfo.data as Buffer);\n }\n\n async getOrderStatus(orderHash: Buffer): Promise<OrderStatus | null> {\n const [orderStatusPda] = pda.getOrderStatusPda(orderHash, this.programId);\n const accountInfo = await this.connection.getAccountInfo(orderStatusPda);\n if (!accountInfo) {\n return null;\n }\n return deserializeOrderStatus(accountInfo.data as Buffer);\n }\n\n async getUserNonce(user: PublicKey): Promise<bigint> {\n const [userNoncePda] = pda.getUserNoncePda(user, this.programId);\n const accountInfo = await this.connection.getAccountInfo(userNoncePda);\n if (!accountInfo) {\n return 0n;\n }\n const nonce = deserializeUserNonce(accountInfo.data as Buffer);\n return nonce.nonce;\n }\n\n async getCurrentNonce(user: PublicKey): Promise<number> {\n const nonce = await this.getUserNonce(user);\n if (nonce > 0xFFFFFFFFn) {\n throw new Error(`Nonce exceeds u32 range: ${nonce}`);\n }\n return Number(nonce);\n }\n\n async getNextNonce(user: PublicKey): Promise<number> {\n return this.getCurrentNonce(user);\n }\n\n async getNextMarketId(): Promise<bigint> {\n const exchange = await this.getExchange();\n return exchange.marketCount;\n }\n\n async getOrderbook(\n mintA: PublicKey,\n mintB: PublicKey\n ): Promise<Orderbook> {\n const [orderbookPda] = pda.getOrderbookPda(mintA, mintB, this.programId);\n const accountInfo = await this.connection.getAccountInfo(orderbookPda);\n if (!accountInfo) {\n throw new Error(\n `Orderbook not found for ${mintA.toBase58()} / ${mintB.toBase58()}`\n );\n }\n return deserializeOrderbook(accountInfo.data as Buffer);\n }\n\n async getGlobalDepositToken(mint: PublicKey): Promise<GlobalDepositToken> {\n const [globalDepositTokenPda] = pda.getGlobalDepositTokenPda(mint, this.programId);\n const accountInfo = await this.connection.getAccountInfo(globalDepositTokenPda);\n if (!accountInfo) {\n throw new Error(`GlobalDepositToken not found for mint ${mint.toBase58()}`);\n }\n return deserializeGlobalDepositToken(accountInfo.data as Buffer);\n }\n\n async getLatestBlockhash() {\n return this.connection.getLatestBlockhash();\n }\n\n // ============================================================================\n // TRANSACTION BUILDERS\n // ============================================================================\n\n private async createBuildResult<T>(\n feePayer: PublicKey,\n accounts: T,\n ...instructions: Parameters<Transaction[\"add\"]>\n ): Promise<BuildResult<T>> {\n const { blockhash, lastValidBlockHeight } =\n await this.connection.getLatestBlockhash();\n\n const transaction = new Transaction({\n feePayer,\n blockhash,\n lastValidBlockHeight,\n });\n\n for (const ix of instructions) {\n transaction.add(ix);\n }\n\n return {\n transaction,\n accounts,\n serialize: () =>\n transaction\n .serialize({ requireAllSignatures: false, verifySignatures: false })\n .toString(\"base64\"),\n };\n }\n\n async initialize(\n params: InitializeParams\n ): Promise<BuildResult<InitializeAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildInitializeIx(params, this.programId);\n return this.createBuildResult(params.authority, { exchange }, ix);\n }\n\n async createMarket(\n params: CreateMarketParams\n ): Promise<BuildResult<CreateMarketAccounts>> {\n const marketId = await this.getNextMarketId();\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(marketId, this.programId);\n const ix = buildCreateMarketIx(params, marketId, this.programId);\n return this.createBuildResult(params.authority, { exchange, market }, ix);\n }\n\n async addDepositMint(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number\n ): Promise<BuildResult<AddDepositMintAccounts>> {\n const [vault] = pda.getVaultPda(params.depositMint, market, this.programId);\n const [mintAuthority] = pda.getMintAuthorityPda(market, this.programId);\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildAddDepositMintIx(params, market, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.authority,\n { market, vault, mintAuthority, conditionalMints },\n ix\n );\n }\n\n async mintCompleteSet(\n params: MintCompleteSetParams,\n numOutcomes: number\n ): Promise<BuildResult<MintCompleteSetAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildMintCompleteSetIx(params, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, conditionalMints },\n ix\n );\n }\n\n async mergeCompleteSet(\n params: MergeCompleteSetParams,\n numOutcomes: number\n ): Promise<BuildResult<MergeCompleteSetAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildMergeCompleteSetIx(params, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, conditionalMints },\n ix\n );\n }\n\n async cancelOrder(\n maker: PublicKey,\n order: SignedOrder\n ): Promise<BuildResult<CancelOrderAccounts>> {\n const orderHash = hashOrder(order);\n const [orderStatus] = pda.getOrderStatusPda(orderHash, this.programId);\n const ix = buildCancelOrderIx(maker, order, this.programId);\n return this.createBuildResult(maker, { orderStatus }, ix);\n }\n\n async incrementNonce(\n user: PublicKey\n ): Promise<BuildResult<IncrementNonceAccounts>> {\n const [userNonce] = pda.getUserNoncePda(user, this.programId);\n const ix = buildIncrementNonceIx(user, this.programId);\n return this.createBuildResult(user, { userNonce }, ix);\n }\n\n async settleMarket(\n params: SettleMarketParams\n ): Promise<BuildResult<SettleMarketAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const ix = buildSettleMarketIx(params, this.programId);\n return this.createBuildResult(params.oracle, { exchange, market }, ix);\n }\n\n async redeemWinnings(\n params: RedeemWinningsParams,\n winningOutcome: number\n ): Promise<BuildResult<RedeemWinningsAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const [winningMint] = pda.getConditionalMintPda(\n params.market,\n params.depositMint,\n winningOutcome,\n this.programId\n );\n\n const ix = buildRedeemWinningsIx(params, winningOutcome, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, winningMint },\n ix\n );\n }\n\n async setPaused(\n authority: PublicKey,\n paused: boolean\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetPausedIx(authority, paused, this.programId);\n return this.createBuildResult(authority, { exchange }, ix);\n }\n\n async setOperator(\n authority: PublicKey,\n newOperator: PublicKey\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetOperatorIx(authority, newOperator, this.programId);\n return this.createBuildResult(authority, { exchange }, ix);\n }\n\n async withdrawFromPosition(\n params: WithdrawFromPositionParams,\n isToken2022: boolean\n ): Promise<BuildResult<{ position: PublicKey }>> {\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const ix = buildWithdrawFromPositionIx(params, isToken2022, this.programId);\n return this.createBuildResult(params.user, { position }, ix);\n }\n\n async activateMarket(\n params: ActivateMarketParams\n ): Promise<BuildResult<ActivateMarketAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const ix = buildActivateMarketIx(params, this.programId);\n return this.createBuildResult(params.authority, { exchange, market }, ix);\n }\n\n async matchOrdersMulti(\n params: MatchOrdersMultiParams\n ): Promise<BuildResult<MatchOrdersMultiAccounts>> {\n const takerOrderHash = hashOrder(params.takerOrder);\n const [takerOrderStatus] = pda.getOrderStatusPda(\n takerOrderHash,\n this.programId\n );\n const [takerPosition] = pda.getPositionPda(\n params.takerOrder.maker,\n params.market,\n this.programId\n );\n\n const makerOrderStatuses: PublicKey[] = [];\n const makerPositions: PublicKey[] = [];\n for (const makerOrder of params.makerOrders) {\n const makerOrderHash = hashOrder(makerOrder);\n const [makerOrderStatus] = pda.getOrderStatusPda(\n makerOrderHash,\n this.programId\n );\n const [makerPosition] = pda.getPositionPda(\n makerOrder.maker,\n params.market,\n this.programId\n );\n makerOrderStatuses.push(makerOrderStatus);\n makerPositions.push(makerPosition);\n }\n\n const ix = buildMatchOrdersMultiIx(params, this.programId);\n\n return this.createBuildResult(\n params.operator,\n { takerOrderStatus, takerPosition, makerOrderStatuses, makerPositions },\n ix\n );\n }\n\n async setAuthority(\n params: SetAuthorityParams\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetAuthorityIx(params, this.programId);\n return this.createBuildResult(\n params.currentAuthority,\n { exchange },\n ix\n );\n }\n\n async createOrderbook(\n params: CreateOrderbookParams\n ): Promise<BuildResult<{ orderbook: PublicKey }>> {\n const [orderbook] = pda.getOrderbookPda(\n params.mintA,\n params.mintB,\n this.programId\n );\n const ix = buildCreateOrderbookIx(params, this.programId);\n return this.createBuildResult(params.authority, { orderbook }, ix);\n }\n\n async whitelistDepositToken(\n params: WhitelistDepositTokenParams\n ): Promise<BuildResult<{ globalDepositToken: PublicKey }>> {\n const [globalDepositToken] = pda.getGlobalDepositTokenPda(params.mint, this.programId);\n const ix = buildWhitelistDepositTokenIx(params, this.programId);\n return this.createBuildResult(params.authority, { globalDepositToken }, ix);\n }\n\n async depositToGlobal(\n params: DepositToGlobalParams\n ): Promise<BuildResult<{ userGlobalDeposit: PublicKey }>> {\n const [userGlobalDeposit] = pda.getUserGlobalDepositPda(params.user, params.mint, this.programId);\n const ix = buildDepositToGlobalIx(params, this.programId);\n return this.createBuildResult(params.user, { userGlobalDeposit }, ix);\n }\n\n async globalToMarketDeposit(\n params: GlobalToMarketDepositParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; userGlobalDeposit: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const [userGlobalDeposit] = pda.getUserGlobalDepositPda(\n params.user,\n params.depositMint,\n this.programId\n );\n const ix = buildGlobalToMarketDepositIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.user, { position, userGlobalDeposit }, ix);\n }\n\n async initPositionTokens(\n params: InitPositionTokensParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; lookupTable: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const [lookupTable] = pda.getPositionAltPda(position, params.recentSlot);\n const ix = buildInitPositionTokensIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.payer, { position, lookupTable }, ix);\n }\n\n async extendPositionTokens(\n params: ExtendPositionTokensParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; lookupTable: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const ix = buildExtendPositionTokensIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.payer, { position, lookupTable: params.lookupTable }, ix);\n }\n\n async depositAndSwap(\n params: DepositAndSwapParams\n ): Promise<BuildResult<{ takerPosition: PublicKey }>> {\n const [takerPosition] = pda.getPositionPda(\n params.takerOrder.maker,\n params.market,\n this.programId\n );\n const ix = buildDepositAndSwapIx(params, this.programId);\n return this.createBuildResult(params.operator, { takerPosition }, ix);\n }\n\n // ============================================================================\n // ORDER HELPERS\n // ============================================================================\n\n createBidOrder(params: BidOrderParams): Omit<SignedOrder, \"signature\"> {\n return createBidOrder(params);\n }\n\n createAskOrder(params: AskOrderParams): Omit<SignedOrder, \"signature\"> {\n return createAskOrder(params);\n }\n\n createSignedBidOrder(params: BidOrderParams, signer: Keypair): SignedOrder {\n return createSignedBidOrder(params, signer);\n }\n\n createSignedAskOrder(params: AskOrderParams, signer: Keypair): SignedOrder {\n return createSignedAskOrder(params, signer);\n }\n\n hashOrder(order: SignedOrder): Buffer {\n return hashOrder(order);\n }\n\n signOrder(order: SignedOrder, signer: Keypair): Buffer {\n return signOrder(order, signer);\n }\n\n signFullOrder(\n order: Omit<SignedOrder, \"signature\">,\n signer: Keypair\n ): SignedOrder {\n return signOrderFull(order, signer);\n }\n\n // ============================================================================\n // UTILITY METHODS\n // ============================================================================\n\n deriveConditionId(\n oracle: PublicKey,\n questionId: Buffer,\n numOutcomes: number\n ): Buffer {\n return deriveConditionId(oracle, questionId, numOutcomes);\n }\n\n getConditionalMints(\n market: PublicKey,\n depositMint: PublicKey,\n numOutcomes: number\n ): PublicKey[] {\n return pda\n .getAllConditionalMintPdas(\n market,\n depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n }\n\n getExchangePda(): PublicKey {\n return pda.getExchangePda(this.programId)[0];\n }\n\n getMarketPda(marketId: bigint): PublicKey {\n return pda.getMarketPda(marketId, this.programId)[0];\n }\n\n getPositionPda(owner: PublicKey, market: PublicKey): PublicKey {\n return pda.getPositionPda(owner, market, this.programId)[0];\n }\n\n getOrderStatusPda(orderHash: Buffer): PublicKey {\n return pda.getOrderStatusPda(orderHash, this.programId)[0];\n }\n\n getUserNoncePda(user: PublicKey): PublicKey {\n return pda.getUserNoncePda(user, this.programId)[0];\n }\n\n getOrderbookPda(mintA: PublicKey, mintB: PublicKey): PublicKey {\n return pda.getOrderbookPda(mintA, mintB, this.programId)[0];\n }\n\n getGlobalDepositTokenPda(mint: PublicKey): PublicKey {\n return pda.getGlobalDepositTokenPda(mint, this.programId)[0];\n }\n\n getUserGlobalDepositPda(user: PublicKey, mint: PublicKey): PublicKey {\n return pda.getUserGlobalDepositPda(user, mint, this.programId)[0];\n }\n}\n"]}
@@ -6,7 +6,7 @@ const spl_token_1 = require("@solana/spl-token");
6
6
  /**
7
7
  * Lightcone Pinocchio Program ID
8
8
  */
9
- exports.PROGRAM_ID = new web3_js_1.PublicKey("rRZqv8ikYMb8y8qLeTLXKUbHtzsVNmYYtHpL73QeZ31");
9
+ exports.PROGRAM_ID = new web3_js_1.PublicKey("8nzsoyHZFYig3uN3M717Q47MtLqzx2V2UAKaPTqDy5rV");
10
10
  /**
11
11
  * Address Lookup Table Program ID
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PublicKey,\n SystemProgram,\n SYSVAR_RENT_PUBKEY,\n} from \"@solana/web3.js\";\nimport {\n TOKEN_PROGRAM_ID as SPL_TOKEN_PROGRAM_ID,\n TOKEN_2022_PROGRAM_ID as SPL_TOKEN_2022_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID as SPL_ASSOCIATED_TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\n\n/**\n * Lightcone Pinocchio Program ID\n */\nexport const PROGRAM_ID = new PublicKey(\n \"rRZqv8ikYMb8y8qLeTLXKUbHtzsVNmYYtHpL73QeZ31\"\n);\n\n/**\n * Address Lookup Table Program ID\n */\nexport const ALT_PROGRAM_ID = new PublicKey(\n \"AddressLookupTab1e1111111111111111111111111\"\n);\n\n/**\n * SPL Token Program ID\n */\nexport const TOKEN_PROGRAM_ID = SPL_TOKEN_PROGRAM_ID;\n\n/**\n * Token-2022 Program ID (for conditional tokens)\n */\nexport const TOKEN_2022_PROGRAM_ID = SPL_TOKEN_2022_PROGRAM_ID;\n\n/**\n * Associated Token Account Program ID\n */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID = SPL_ASSOCIATED_TOKEN_PROGRAM_ID;\n\n/**\n * System Program ID\n */\nexport const SYSTEM_PROGRAM_ID = SystemProgram.programId;\n\n/**\n * Rent Sysvar ID\n */\nexport const RENT_SYSVAR_ID = SYSVAR_RENT_PUBKEY;\n\n/**\n * Instruction discriminators (single byte indices)\n */\nexport const INSTRUCTION = {\n INITIALIZE: 0,\n CREATE_MARKET: 1,\n ADD_DEPOSIT_MINT: 2,\n MINT_COMPLETE_SET: 3,\n MERGE_COMPLETE_SET: 4,\n CANCEL_ORDER: 5,\n INCREMENT_NONCE: 6,\n SETTLE_MARKET: 7,\n REDEEM_WINNINGS: 8,\n SET_PAUSED: 9,\n SET_OPERATOR: 10,\n WITHDRAW_FROM_POSITION: 11,\n ACTIVATE_MARKET: 12,\n MATCH_ORDERS_MULTI: 13,\n SET_AUTHORITY: 14,\n CREATE_ORDERBOOK: 15,\n WHITELIST_DEPOSIT_TOKEN: 16,\n DEPOSIT_TO_GLOBAL: 17,\n GLOBAL_TO_MARKET_DEPOSIT: 18,\n INIT_POSITION_TOKENS: 19,\n DEPOSIT_AND_SWAP: 20,\n EXTEND_POSITION_TOKENS: 21,\n} as const;\n\n/**\n * Account discriminators (8 bytes each)\n * SHA-256 hash bytes matching the on-chain program\n */\nexport const DISCRIMINATOR = {\n EXCHANGE: Buffer.from([0x1e, 0xc8, 0xdc, 0x95, 0x03, 0x3d, 0x68, 0x32]),\n MARKET: Buffer.from([0xdb, 0xbe, 0xd5, 0x37, 0x00, 0xe3, 0xc6, 0x9a]),\n ORDER_STATUS: Buffer.from([0x2e, 0x5a, 0xf1, 0x49, 0xb2, 0x68, 0x41, 0x03]),\n USER_NONCE: Buffer.from([0xeb, 0x85, 0x01, 0xf3, 0x12, 0x87, 0x58, 0xe0]),\n POSITION: Buffer.from([0xaa, 0xbc, 0x8f, 0xe4, 0x7a, 0x40, 0xf7, 0xd0]),\n ORDERBOOK: Buffer.from([0x2b, 0x22, 0x19, 0x71, 0xc3, 0x45, 0x48, 0x07]),\n GLOBAL_DEPOSIT_TOKEN: Buffer.from([0x25, 0xbe, 0xa1, 0xe8, 0x7b, 0x92, 0x2a, 0x57]),\n} as const;\n\n/**\n * Account sizes in bytes\n */\nexport const ACCOUNT_SIZE = {\n EXCHANGE: 88,\n MARKET: 120,\n ORDER_STATUS: 24,\n USER_NONCE: 16,\n POSITION: 80,\n ORDERBOOK: 144,\n GLOBAL_DEPOSIT_TOKEN: 48,\n} as const;\n\n/**\n * Order sizes in bytes\n */\nexport const ORDER_SIZE = {\n SIGNED_ORDER: 225,\n ORDER: 29,\n SIGNATURE: 64,\n} as const;\n\n/**\n * Maximum number of outcomes per market (2-6)\n */\nexport const MAX_OUTCOMES = 6;\n\n/**\n * Minimum number of outcomes per market\n */\nexport const MIN_OUTCOMES = 2;\n\n/**\n * Maximum number of makers per match_orders_multi instruction\n */\nexport const MAX_MAKERS = 5;\n\n/**\n * PDA Seeds\n */\nexport const SEEDS = {\n CENTRAL_STATE: \"central_state\",\n MARKET: \"market\",\n MARKET_DEPOSIT_TOKEN_ACCOUNT: \"market_deposit_token_account\",\n MARKET_MINT_AUTHORITY: \"market_mint_authority\",\n CONDITIONAL_MINT: \"conditional_mint\",\n ORDER_STATUS: \"order_status\",\n USER_NONCE: \"user_nonce\",\n POSITION: \"position\",\n ORDERBOOK: \"orderbook\",\n GLOBAL_DEPOSIT: \"global_deposit\",\n} as const;\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PublicKey,\n SystemProgram,\n SYSVAR_RENT_PUBKEY,\n} from \"@solana/web3.js\";\nimport {\n TOKEN_PROGRAM_ID as SPL_TOKEN_PROGRAM_ID,\n TOKEN_2022_PROGRAM_ID as SPL_TOKEN_2022_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID as SPL_ASSOCIATED_TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\n\n/**\n * Lightcone Pinocchio Program ID\n */\nexport const PROGRAM_ID = new PublicKey(\n \"8nzsoyHZFYig3uN3M717Q47MtLqzx2V2UAKaPTqDy5rV\"\n);\n\n/**\n * Address Lookup Table Program ID\n */\nexport const ALT_PROGRAM_ID = new PublicKey(\n \"AddressLookupTab1e1111111111111111111111111\"\n);\n\n/**\n * SPL Token Program ID\n */\nexport const TOKEN_PROGRAM_ID = SPL_TOKEN_PROGRAM_ID;\n\n/**\n * Token-2022 Program ID (for conditional tokens)\n */\nexport const TOKEN_2022_PROGRAM_ID = SPL_TOKEN_2022_PROGRAM_ID;\n\n/**\n * Associated Token Account Program ID\n */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID = SPL_ASSOCIATED_TOKEN_PROGRAM_ID;\n\n/**\n * System Program ID\n */\nexport const SYSTEM_PROGRAM_ID = SystemProgram.programId;\n\n/**\n * Rent Sysvar ID\n */\nexport const RENT_SYSVAR_ID = SYSVAR_RENT_PUBKEY;\n\n/**\n * Instruction discriminators (single byte indices)\n */\nexport const INSTRUCTION = {\n INITIALIZE: 0,\n CREATE_MARKET: 1,\n ADD_DEPOSIT_MINT: 2,\n MINT_COMPLETE_SET: 3,\n MERGE_COMPLETE_SET: 4,\n CANCEL_ORDER: 5,\n INCREMENT_NONCE: 6,\n SETTLE_MARKET: 7,\n REDEEM_WINNINGS: 8,\n SET_PAUSED: 9,\n SET_OPERATOR: 10,\n WITHDRAW_FROM_POSITION: 11,\n ACTIVATE_MARKET: 12,\n MATCH_ORDERS_MULTI: 13,\n SET_AUTHORITY: 14,\n CREATE_ORDERBOOK: 15,\n WHITELIST_DEPOSIT_TOKEN: 16,\n DEPOSIT_TO_GLOBAL: 17,\n GLOBAL_TO_MARKET_DEPOSIT: 18,\n INIT_POSITION_TOKENS: 19,\n DEPOSIT_AND_SWAP: 20,\n EXTEND_POSITION_TOKENS: 21,\n} as const;\n\n/**\n * Account discriminators (8 bytes each)\n * SHA-256 hash bytes matching the on-chain program\n */\nexport const DISCRIMINATOR = {\n EXCHANGE: Buffer.from([0x1e, 0xc8, 0xdc, 0x95, 0x03, 0x3d, 0x68, 0x32]),\n MARKET: Buffer.from([0xdb, 0xbe, 0xd5, 0x37, 0x00, 0xe3, 0xc6, 0x9a]),\n ORDER_STATUS: Buffer.from([0x2e, 0x5a, 0xf1, 0x49, 0xb2, 0x68, 0x41, 0x03]),\n USER_NONCE: Buffer.from([0xeb, 0x85, 0x01, 0xf3, 0x12, 0x87, 0x58, 0xe0]),\n POSITION: Buffer.from([0xaa, 0xbc, 0x8f, 0xe4, 0x7a, 0x40, 0xf7, 0xd0]),\n ORDERBOOK: Buffer.from([0x2b, 0x22, 0x19, 0x71, 0xc3, 0x45, 0x48, 0x07]),\n GLOBAL_DEPOSIT_TOKEN: Buffer.from([0x25, 0xbe, 0xa1, 0xe8, 0x7b, 0x92, 0x2a, 0x57]),\n} as const;\n\n/**\n * Account sizes in bytes\n */\nexport const ACCOUNT_SIZE = {\n EXCHANGE: 88,\n MARKET: 120,\n ORDER_STATUS: 24,\n USER_NONCE: 16,\n POSITION: 80,\n ORDERBOOK: 144,\n GLOBAL_DEPOSIT_TOKEN: 48,\n} as const;\n\n/**\n * Order sizes in bytes\n */\nexport const ORDER_SIZE = {\n SIGNED_ORDER: 225,\n ORDER: 29,\n SIGNATURE: 64,\n} as const;\n\n/**\n * Maximum number of outcomes per market (2-6)\n */\nexport const MAX_OUTCOMES = 6;\n\n/**\n * Minimum number of outcomes per market\n */\nexport const MIN_OUTCOMES = 2;\n\n/**\n * Maximum number of makers per match_orders_multi instruction\n */\nexport const MAX_MAKERS = 5;\n\n/**\n * PDA Seeds\n */\nexport const SEEDS = {\n CENTRAL_STATE: \"central_state\",\n MARKET: \"market\",\n MARKET_DEPOSIT_TOKEN_ACCOUNT: \"market_deposit_token_account\",\n MARKET_MINT_AUTHORITY: \"market_mint_authority\",\n CONDITIONAL_MINT: \"conditional_mint\",\n ORDER_STATUS: \"order_status\",\n USER_NONCE: \"user_nonce\",\n POSITION: \"position\",\n ORDERBOOK: \"orderbook\",\n GLOBAL_DEPOSIT: \"global_deposit\",\n} as const;\n"]}
@@ -1,6 +1,7 @@
1
1
  import { Keypair, PublicKey } from "@solana/web3.js";
2
2
  import { type OrderbookDecimals } from "../shared/scaling";
3
- import type { SubmitOrderRequest, TimeInForce, TriggerType } from "../shared";
3
+ import type { DepositSource, SubmitOrderRequest, TimeInForce, TriggerType } from "../shared";
4
+ import { type SubmitRequestOptions } from "./orders";
4
5
  import { OrderSide, type SignedOrder } from "./types";
5
6
  interface OrderFields {
6
7
  nonce?: number;
@@ -14,6 +15,7 @@ interface OrderFields {
14
15
  expiration: bigint;
15
16
  priceRaw?: string;
16
17
  sizeRaw?: string;
18
+ depositSource?: DepositSource;
17
19
  }
18
20
  export interface OrderEnvelope {
19
21
  nonce(value: number): this;
@@ -29,6 +31,7 @@ export interface OrderEnvelope {
29
31
  expiration(value: bigint): this;
30
32
  price(value: string): this;
31
33
  size(value: string): this;
34
+ depositSource(value: DepositSource): this;
32
35
  applyScaling(decimals: OrderbookDecimals): this;
33
36
  payload(): Omit<SignedOrder, "signature">;
34
37
  sign(keypair: Keypair, orderbookId: string): SubmitOrderRequest;
@@ -50,6 +53,7 @@ declare class BaseEnvelope {
50
53
  expiration(value: bigint): this;
51
54
  price(value: string): this;
52
55
  size(value: string): this;
56
+ depositSource(value: DepositSource): this;
53
57
  applyScaling(decimals: OrderbookDecimals): this;
54
58
  payload(): Omit<SignedOrder, "signature">;
55
59
  fieldsNonce(): number | undefined;
@@ -61,7 +65,8 @@ declare class BaseEnvelope {
61
65
  fieldsAmountIn(): bigint | undefined;
62
66
  fieldsAmountOut(): bigint | undefined;
63
67
  fieldsExpiration(): bigint;
64
- protected finalizeWithHexSignature(signatureHex: string, orderbookId: string): SubmitOrderRequest;
68
+ fieldsDepositSource(): DepositSource | undefined;
69
+ protected finalizeWithHexSignature(signatureHex: string, orderbookId: string, options?: SubmitRequestOptions): SubmitOrderRequest;
65
70
  }
66
71
  export declare class LimitOrderEnvelope extends BaseEnvelope implements OrderEnvelope {
67
72
  static new(): LimitOrderEnvelope;
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,10 @@ class BaseEnvelope {
101
101
  this.fields.sizeRaw = value;
102
102
  return this;
103
103
  }
104
+ depositSource(value) {
105
+ this.fields.depositSource = value;
106
+ return this;
107
+ }
104
108
  applyScaling(decimals) {
105
109
  if (!this.fields.priceRaw)
106
110
  throw error_1.ProgramSdkError.missingField("price");
@@ -143,15 +147,18 @@ class BaseEnvelope {
143
147
  fieldsExpiration() {
144
148
  return this.fields.expiration;
145
149
  }
146
- finalizeWithHexSignature(signatureHex, orderbookId) {
150
+ fieldsDepositSource() {
151
+ return this.fields.depositSource;
152
+ }
153
+ finalizeWithHexSignature(signatureHex, orderbookId, options = {}) {
147
154
  const unsigned = toUnsignedOrder(this.fields);
148
- return {
149
- ...(0, orders_1.toSubmitRequest)({
150
- ...unsigned,
151
- signature: Buffer.from(signatureHex, "hex"),
152
- }, orderbookId),
153
- signature: signatureHex,
154
- };
155
+ return (0, orders_1.toSubmitRequest)({
156
+ ...unsigned,
157
+ signature: Buffer.from(signatureHex, "hex"),
158
+ }, orderbookId, {
159
+ ...options,
160
+ depositSource: this.fields.depositSource,
161
+ });
155
162
  }
156
163
  }
157
164
  class LimitOrderEnvelope extends BaseEnvelope {
@@ -160,7 +167,9 @@ class LimitOrderEnvelope extends BaseEnvelope {
160
167
  }
161
168
  sign(keypair, orderbookId) {
162
169
  const signed = (0, orders_1.signOrderFull)(this.payload(), keypair);
163
- return (0, orders_1.toSubmitRequest)(signed, orderbookId);
170
+ return (0, orders_1.toSubmitRequest)(signed, orderbookId, {
171
+ depositSource: this.fieldsDepositSource(),
172
+ });
164
173
  }
165
174
  finalize(signatureBase58, orderbookId) {
166
175
  const signatureHex = Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex");
@@ -225,22 +234,21 @@ class TriggerOrderEnvelope extends BaseEnvelope {
225
234
  sign(keypair, orderbookId) {
226
235
  this.requireTriggerFields();
227
236
  const signed = (0, orders_1.signOrderFull)(this.payload(), keypair);
228
- return {
229
- ...(0, orders_1.toSubmitRequest)(signed, orderbookId),
230
- tif: this.timeInForceValue,
231
- trigger_price: this.triggerPriceValue,
232
- trigger_type: this.triggerTypeValue,
233
- };
237
+ return (0, orders_1.toSubmitRequest)(signed, orderbookId, {
238
+ timeInForce: this.timeInForceValue,
239
+ triggerPrice: this.triggerPriceValue,
240
+ triggerType: this.triggerTypeValue,
241
+ depositSource: this.fieldsDepositSource(),
242
+ });
234
243
  }
235
244
  finalize(signatureBase58, orderbookId) {
236
245
  this.requireTriggerFields();
237
246
  const signatureHex = Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex");
238
- return {
239
- ...this.finalizeWithHexSignature(signatureHex, orderbookId),
240
- tif: this.timeInForceValue,
241
- trigger_price: this.triggerPriceValue,
242
- trigger_type: this.triggerTypeValue,
243
- };
247
+ return this.finalizeWithHexSignature(signatureHex, orderbookId, {
248
+ timeInForce: this.timeInForceValue,
249
+ triggerPrice: this.triggerPriceValue,
250
+ triggerType: this.triggerTypeValue,
251
+ });
244
252
  }
245
253
  requireTriggerFields() {
246
254
  if (this.triggerPriceValue === undefined) {