@lightconexyz/lightcone-sdk 0.5.2 → 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 (228) hide show
  1. package/README.md +39 -5
  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 +43 -4
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +70 -9
  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 +21 -2
  18. package/dist/domain/admin/client.d.ts.map +1 -1
  19. package/dist/domain/admin/client.js +90 -4
  20. package/dist/domain/admin/client.js.map +1 -1
  21. package/dist/domain/admin/wire.d.ts +292 -7
  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/faucet.d.ts +25 -0
  25. package/dist/domain/faucet.d.ts.map +1 -0
  26. package/dist/domain/faucet.js +3 -0
  27. package/dist/domain/faucet.js.map +1 -0
  28. package/dist/domain/index.d.ts +2 -0
  29. package/dist/domain/index.d.ts.map +1 -1
  30. package/dist/domain/index.js +3 -1
  31. package/dist/domain/index.js.map +1 -1
  32. package/dist/domain/market/client.d.ts +23 -2
  33. package/dist/domain/market/client.d.ts.map +1 -1
  34. package/dist/domain/market/client.js +31 -1
  35. package/dist/domain/market/client.js.map +1 -1
  36. package/dist/domain/market/convert.d.ts +10 -0
  37. package/dist/domain/market/convert.d.ts.map +1 -1
  38. package/dist/domain/market/convert.js +44 -5
  39. package/dist/domain/market/convert.js.map +1 -1
  40. package/dist/domain/market/icon.d.ts +17 -0
  41. package/dist/domain/market/icon.d.ts.map +1 -0
  42. package/dist/domain/market/icon.js +25 -0
  43. package/dist/domain/market/icon.js.map +1 -0
  44. package/dist/domain/market/index.d.ts +21 -5
  45. package/dist/domain/market/index.d.ts.map +1 -1
  46. package/dist/domain/market/index.js +15 -1
  47. package/dist/domain/market/index.js.map +1 -1
  48. package/dist/domain/market/outcome.d.ts +4 -1
  49. package/dist/domain/market/outcome.d.ts.map +1 -1
  50. package/dist/domain/market/outcome.js +8 -7
  51. package/dist/domain/market/outcome.js.map +1 -1
  52. package/dist/domain/market/tokens.d.ts +55 -3
  53. package/dist/domain/market/tokens.d.ts.map +1 -1
  54. package/dist/domain/market/tokens.js +105 -9
  55. package/dist/domain/market/tokens.js.map +1 -1
  56. package/dist/domain/market/wire.d.ts +69 -10
  57. package/dist/domain/market/wire.d.ts.map +1 -1
  58. package/dist/domain/market/wire.js +5 -0
  59. package/dist/domain/market/wire.js.map +1 -1
  60. package/dist/domain/metrics/client.d.ts +66 -0
  61. package/dist/domain/metrics/client.d.ts.map +1 -0
  62. package/dist/domain/metrics/client.js +124 -0
  63. package/dist/domain/metrics/client.js.map +1 -0
  64. package/dist/domain/metrics/index.d.ts +3 -0
  65. package/dist/domain/metrics/index.d.ts.map +1 -0
  66. package/dist/domain/metrics/index.js +19 -0
  67. package/dist/domain/metrics/index.js.map +1 -0
  68. package/dist/domain/metrics/wire.d.ts +346 -0
  69. package/dist/domain/metrics/wire.d.ts.map +1 -0
  70. package/dist/domain/metrics/wire.js +3 -0
  71. package/dist/domain/metrics/wire.js.map +1 -0
  72. package/dist/domain/notification/client.d.ts +6 -0
  73. package/dist/domain/notification/client.d.ts.map +1 -1
  74. package/dist/domain/notification/client.js +10 -0
  75. package/dist/domain/notification/client.js.map +1 -1
  76. package/dist/domain/notification/index.d.ts +6 -2
  77. package/dist/domain/notification/index.d.ts.map +1 -1
  78. package/dist/domain/notification/index.js.map +1 -1
  79. package/dist/domain/order/client.d.ts +34 -6
  80. package/dist/domain/order/client.d.ts.map +1 -1
  81. package/dist/domain/order/client.js +88 -21
  82. package/dist/domain/order/client.js.map +1 -1
  83. package/dist/domain/order/convert.d.ts +5 -5
  84. package/dist/domain/order/convert.d.ts.map +1 -1
  85. package/dist/domain/order/convert.js +3 -3
  86. package/dist/domain/order/convert.js.map +1 -1
  87. package/dist/domain/order/index.d.ts +3 -2
  88. package/dist/domain/order/index.d.ts.map +1 -1
  89. package/dist/domain/order/index.js +11 -3
  90. package/dist/domain/order/index.js.map +1 -1
  91. package/dist/domain/order/state.d.ts +9 -7
  92. package/dist/domain/order/state.d.ts.map +1 -1
  93. package/dist/domain/order/state.js +81 -28
  94. package/dist/domain/order/state.js.map +1 -1
  95. package/dist/domain/orderbook/client.d.ts +6 -2
  96. package/dist/domain/orderbook/client.d.ts.map +1 -1
  97. package/dist/domain/orderbook/client.js +17 -0
  98. package/dist/domain/orderbook/client.js.map +1 -1
  99. package/dist/domain/orderbook/index.d.ts +1 -1
  100. package/dist/domain/orderbook/index.d.ts.map +1 -1
  101. package/dist/domain/orderbook/index.js +3 -8
  102. package/dist/domain/orderbook/index.js.map +1 -1
  103. package/dist/domain/orderbook/state.d.ts +30 -7
  104. package/dist/domain/orderbook/state.d.ts.map +1 -1
  105. package/dist/domain/orderbook/state.js +41 -12
  106. package/dist/domain/orderbook/state.js.map +1 -1
  107. package/dist/domain/position/builders.d.ts +11 -8
  108. package/dist/domain/position/builders.d.ts.map +1 -1
  109. package/dist/domain/position/builders.js +31 -25
  110. package/dist/domain/position/builders.js.map +1 -1
  111. package/dist/domain/position/client.d.ts +66 -5
  112. package/dist/domain/position/client.d.ts.map +1 -1
  113. package/dist/domain/position/client.js +101 -9
  114. package/dist/domain/position/client.js.map +1 -1
  115. package/dist/domain/position/index.d.ts +3 -2
  116. package/dist/domain/position/index.d.ts.map +1 -1
  117. package/dist/domain/position/index.js.map +1 -1
  118. package/dist/domain/price_history/client.d.ts +12 -1
  119. package/dist/domain/price_history/client.d.ts.map +1 -1
  120. package/dist/domain/price_history/client.js +14 -0
  121. package/dist/domain/price_history/client.js.map +1 -1
  122. package/dist/domain/price_history/wire.d.ts +27 -0
  123. package/dist/domain/price_history/wire.d.ts.map +1 -1
  124. package/dist/domain/price_history/wire.js.map +1 -1
  125. package/dist/domain/referral/client.d.ts +6 -0
  126. package/dist/domain/referral/client.d.ts.map +1 -1
  127. package/dist/domain/referral/client.js +22 -9
  128. package/dist/domain/referral/client.js.map +1 -1
  129. package/dist/domain/trade/client.d.ts +1 -0
  130. package/dist/domain/trade/client.d.ts.map +1 -1
  131. package/dist/domain/trade/client.js +14 -0
  132. package/dist/domain/trade/client.js.map +1 -1
  133. package/dist/domain/trade/wire.d.ts +6 -0
  134. package/dist/domain/trade/wire.d.ts.map +1 -1
  135. package/dist/domain/trade/wire.js.map +1 -1
  136. package/dist/env.d.ts +6 -1
  137. package/dist/env.d.ts.map +1 -1
  138. package/dist/env.js +19 -9
  139. package/dist/env.js.map +1 -1
  140. package/dist/http/client.d.ts +9 -0
  141. package/dist/http/client.d.ts.map +1 -1
  142. package/dist/http/client.js +29 -11
  143. package/dist/http/client.js.map +1 -1
  144. package/dist/index.d.ts +2 -2
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js.map +1 -1
  147. package/dist/prelude.d.ts +16 -7
  148. package/dist/prelude.d.ts.map +1 -1
  149. package/dist/prelude.js +10 -7
  150. package/dist/prelude.js.map +1 -1
  151. package/dist/privy/index.d.ts +1 -1
  152. package/dist/privy/index.js.map +1 -1
  153. package/dist/program/accounts.d.ts +12 -7
  154. package/dist/program/accounts.d.ts.map +1 -1
  155. package/dist/program/accounts.js +38 -16
  156. package/dist/program/accounts.js.map +1 -1
  157. package/dist/program/builder.d.ts +0 -4
  158. package/dist/program/builder.d.ts.map +1 -1
  159. package/dist/program/builder.js +0 -8
  160. package/dist/program/builder.js.map +1 -1
  161. package/dist/program/constants.d.ts +20 -7
  162. package/dist/program/constants.d.ts.map +1 -1
  163. package/dist/program/constants.js +21 -8
  164. package/dist/program/constants.js.map +1 -1
  165. package/dist/program/error.d.ts +25 -1
  166. package/dist/program/error.d.ts.map +1 -1
  167. package/dist/program/error.js +72 -0
  168. package/dist/program/error.js.map +1 -1
  169. package/dist/program/index.d.ts +7 -7
  170. package/dist/program/index.d.ts.map +1 -1
  171. package/dist/program/index.js +36 -9
  172. package/dist/program/index.js.map +1 -1
  173. package/dist/program/instructions.d.ts +184 -71
  174. package/dist/program/instructions.d.ts.map +1 -1
  175. package/dist/program/instructions.js +573 -140
  176. package/dist/program/instructions.js.map +1 -1
  177. package/dist/program/orders.js +2 -2
  178. package/dist/program/orders.js.map +1 -1
  179. package/dist/program/pda.d.ts +21 -3
  180. package/dist/program/pda.d.ts.map +1 -1
  181. package/dist/program/pda.js +43 -6
  182. package/dist/program/pda.js.map +1 -1
  183. package/dist/program/types.d.ts +139 -21
  184. package/dist/program/types.d.ts.map +1 -1
  185. package/dist/program/types.js.map +1 -1
  186. package/dist/program/utils.d.ts +31 -2
  187. package/dist/program/utils.d.ts.map +1 -1
  188. package/dist/program/utils.js +132 -5
  189. package/dist/program/utils.js.map +1 -1
  190. package/dist/rpc.d.ts +6 -1
  191. package/dist/rpc.d.ts.map +1 -1
  192. package/dist/rpc.js +9 -7
  193. package/dist/rpc.js.map +1 -1
  194. package/dist/rpcFailover.d.ts +22 -0
  195. package/dist/rpcFailover.d.ts.map +1 -0
  196. package/dist/rpcFailover.js +71 -0
  197. package/dist/rpcFailover.js.map +1 -0
  198. package/dist/shared/fmt/constants.d.ts +5 -0
  199. package/dist/shared/fmt/constants.d.ts.map +1 -0
  200. package/dist/shared/fmt/constants.js +25 -0
  201. package/dist/shared/fmt/constants.js.map +1 -0
  202. package/dist/shared/fmt/decimal.d.ts +7 -0
  203. package/dist/shared/fmt/decimal.d.ts.map +1 -1
  204. package/dist/shared/fmt/decimal.js +32 -24
  205. package/dist/shared/fmt/decimal.js.map +1 -1
  206. package/dist/shared/fmt/num.d.ts +7 -0
  207. package/dist/shared/fmt/num.d.ts.map +1 -1
  208. package/dist/shared/fmt/num.js +27 -15
  209. package/dist/shared/fmt/num.js.map +1 -1
  210. package/dist/shared/index.d.ts +1 -1
  211. package/dist/shared/index.d.ts.map +1 -1
  212. package/dist/shared/index.js +2 -1
  213. package/dist/shared/index.js.map +1 -1
  214. package/dist/shared/types.d.ts +1 -0
  215. package/dist/shared/types.d.ts.map +1 -1
  216. package/dist/shared/types.js +19 -0
  217. package/dist/shared/types.js.map +1 -1
  218. package/dist/ws/client.node.js +1 -1
  219. package/dist/ws/client.node.js.map +1 -1
  220. package/dist/ws/index.d.ts +12 -1
  221. package/dist/ws/index.d.ts.map +1 -1
  222. package/dist/ws/index.js +20 -0
  223. package/dist/ws/index.js.map +1 -1
  224. package/dist/ws/subscriptions.d.ts +6 -0
  225. package/dist/ws/subscriptions.d.ts.map +1 -1
  226. package/dist/ws/subscriptions.js +4 -0
  227. package/dist/ws/subscriptions.js.map +1 -1
  228. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":"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","sourcesContent":["export * from \"./client\";\nimport { SdkError } from \"../error\";\nimport type { LimitOrderEnvelope, TriggerOrderEnvelope } from \"../program/envelope\";\n\nexport interface SignAndSendTxRequest {\n wallet_id: string;\n base64_tx: string;\n}\n\nexport interface SignAndSendTxResponse {\n hash: string;\n}\n\nexport interface PrivyOrderEnvelope {\n maker: string;\n nonce: number;\n salt: number;\n market_pubkey: string;\n base_token: string;\n quote_token: string;\n side: number;\n amount_in: number;\n amount_out: number;\n expiration?: number;\n orderbook_id: string;\n tif?: import(\"../shared\").TimeInForce;\n trigger_price?: number;\n trigger_type?: import(\"../shared\").TriggerType;\n deposit_source?: import(\"../shared\").DepositSource;\n}\n\nexport interface SignAndSendOrderRequest {\n wallet_id: string;\n order: PrivyOrderEnvelope;\n}\n\nexport type CancelTarget =\n | { cancel_type: \"limit\"; order_hash: string }\n | { cancel_type: \"trigger\"; trigger_order_id: string };\n\nexport type SignAndCancelOrderRequest = {\n wallet_id: string;\n maker: string;\n} & CancelTarget;\n\nexport interface SignAndCancelAllRequest {\n wallet_id: string;\n user_pubkey: string;\n orderbook_id: string;\n timestamp: number;\n salt: string;\n}\n\nexport interface ExportWalletRequest {\n wallet_id: string;\n decode_pubkey_base64: string;\n}\n\nexport interface ExportWalletResponse {\n encryption_type: string;\n ciphertext: string;\n encapsulated_key: string;\n}\n\nexport interface OrderFill {\n counterparty: string;\n counterparty_order_hash: string;\n fill_amount: string;\n price: string;\n is_maker: boolean;\n}\n\nexport interface LimitOrderResponse {\n order_hash: string;\n remaining: string;\n filled: string;\n fills: OrderFill[];\n}\n\nexport interface TriggerOrderResponse {\n trigger_order_id: string;\n order_hash: string;\n}\n\nexport type SignAndSendOrderResponse = LimitOrderResponse | TriggerOrderResponse;\n\nexport interface LimitCancelResponse {\n order_hash: string;\n remaining: number;\n}\n\nexport interface TriggerCancelResponse {\n trigger_order_id: string;\n}\n\nexport type SignAndCancelOrderResponse = LimitCancelResponse | TriggerCancelResponse;\n\nexport interface SignAndCancelAllResponse {\n user_pubkey: string;\n orderbook_id: string;\n cancelled_order_hashes: string[];\n count: number;\n message: string;\n}\n\nfunction requireDefined<T>(\n value: T | undefined,\n field: string\n): T {\n if (value === undefined) {\n throw SdkError.validation(`Missing required field: ${field}`);\n }\n return value;\n}\n\nfunction bigintToSafeNumber(value: bigint, field: string): number {\n const max = BigInt(Number.MAX_SAFE_INTEGER);\n if (value > max || value < -max) {\n throw SdkError.validation(`${field} exceeds Number.MAX_SAFE_INTEGER`);\n }\n return Number(value);\n}\n\nexport function privyOrderFromLimitEnvelope(\n envelope: LimitOrderEnvelope,\n orderbookId: string\n): PrivyOrderEnvelope {\n const maker = requireDefined(envelope.getMaker(), \"maker\");\n const nonce = requireDefined(envelope.getNonce(), \"nonce\");\n const salt = requireDefined(envelope.getSalt(), \"salt\");\n const market = requireDefined(envelope.getMarket(), \"market\");\n const baseMint = requireDefined(envelope.getBaseMint(), \"base_mint\");\n const quoteMint = requireDefined(envelope.getQuoteMint(), \"quote_mint\");\n const side = requireDefined(envelope.getSide(), \"side\");\n const amountIn = requireDefined(envelope.getAmountIn(), \"amount_in\");\n const amountOut = requireDefined(envelope.getAmountOut(), \"amount_out\");\n\n return {\n maker: maker.toBase58(),\n nonce,\n salt: bigintToSafeNumber(salt, \"salt\"),\n market_pubkey: market.toBase58(),\n base_token: baseMint.toBase58(),\n quote_token: quoteMint.toBase58(),\n side,\n amount_in: bigintToSafeNumber(amountIn, \"amount_in\"),\n amount_out: bigintToSafeNumber(amountOut, \"amount_out\"),\n expiration: bigintToSafeNumber(envelope.getExpiration(), \"expiration\"),\n orderbook_id: orderbookId,\n deposit_source: envelope.getDepositSource(),\n };\n}\n\nexport function privyOrderFromTriggerEnvelope(\n envelope: TriggerOrderEnvelope,\n orderbookId: string\n): PrivyOrderEnvelope {\n const maker = requireDefined(envelope.getMaker(), \"maker\");\n const nonce = requireDefined(envelope.getNonce(), \"nonce\");\n const salt = requireDefined(envelope.getSalt(), \"salt\");\n const market = requireDefined(envelope.getMarket(), \"market\");\n const baseMint = requireDefined(envelope.getBaseMint(), \"base_mint\");\n const quoteMint = requireDefined(envelope.getQuoteMint(), \"quote_mint\");\n const side = requireDefined(envelope.getSide(), \"side\");\n const amountIn = requireDefined(envelope.getAmountIn(), \"amount_in\");\n const amountOut = requireDefined(envelope.getAmountOut(), \"amount_out\");\n\n return {\n maker: maker.toBase58(),\n nonce,\n salt: bigintToSafeNumber(salt, \"salt\"),\n market_pubkey: market.toBase58(),\n base_token: baseMint.toBase58(),\n quote_token: quoteMint.toBase58(),\n side,\n amount_in: bigintToSafeNumber(amountIn, \"amount_in\"),\n amount_out: bigintToSafeNumber(amountOut, \"amount_out\"),\n expiration: bigintToSafeNumber(envelope.getExpiration(), \"expiration\"),\n orderbook_id: orderbookId,\n tif: envelope.getTimeInForce(),\n trigger_price: envelope.getTriggerPrice(),\n trigger_type: envelope.getTriggerType(),\n deposit_source: envelope.getDepositSource(),\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":"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","sourcesContent":["export * from \"./client\";\nimport { SdkError } from \"../error\";\nimport type { LimitOrderEnvelope, TriggerOrderEnvelope } from \"../program/envelope\";\n\nexport interface SignAndSendTxRequest {\n wallet_id: string;\n base64_tx: string;\n}\n\nexport interface SignAndSendTxResponse {\n hash: string;\n}\n\nexport interface PrivyOrderEnvelope {\n maker: string;\n nonce: number;\n salt: number;\n market_pubkey: string;\n base_token: string;\n quote_token: string;\n side: number;\n amount_in: number;\n amount_out: number;\n expiration?: number;\n orderbook_id: string;\n tif?: import(\"../shared\").TimeInForce;\n trigger_price?: number;\n trigger_type?: import(\"../shared\").TriggerType;\n deposit_source?: import(\"../shared\").DepositSource;\n}\n\nexport interface SignAndSendOrderRequest {\n wallet_id: string;\n order: PrivyOrderEnvelope;\n}\n\nexport type CancelTarget =\n | { cancel_type: \"limit\"; order_hash: string }\n | { cancel_type: \"trigger\"; trigger_order_id: string };\n\nexport type SignAndCancelOrderRequest = {\n wallet_id: string;\n maker: string;\n} & CancelTarget;\n\nexport interface SignAndCancelAllRequest {\n wallet_id: string;\n user_pubkey: string;\n orderbook_id: string;\n timestamp: number;\n salt: string;\n}\n\nexport interface ExportWalletRequest {\n wallet_id: string;\n decode_pubkey_base64: string;\n}\n\nexport interface ExportWalletResponse {\n encryption_type: string;\n ciphertext: string;\n encapsulated_key: string;\n}\n\nexport interface OrderFill {\n counterparty: string;\n counterparty_order_hash: string;\n fill_amount: string;\n price: string;\n is_maker: boolean;\n}\n\nexport interface LimitOrderResponse {\n order_hash: string;\n remaining: string;\n filled: string;\n fills: OrderFill[];\n}\n\nexport interface TriggerOrderResponse {\n trigger_order_id: string;\n order_hash: string;\n}\n\nexport type SignAndSendOrderResponse = LimitOrderResponse | TriggerOrderResponse;\n\nexport interface LimitCancelResponse {\n order_hash: string;\n remaining: string;\n}\n\nexport interface TriggerCancelResponse {\n trigger_order_id: string;\n}\n\nexport type SignAndCancelOrderResponse = LimitCancelResponse | TriggerCancelResponse;\n\nexport interface SignAndCancelAllResponse {\n user_pubkey: string;\n orderbook_id: string;\n cancelled_order_hashes: string[];\n count: number;\n message: string;\n}\n\nfunction requireDefined<T>(\n value: T | undefined,\n field: string\n): T {\n if (value === undefined) {\n throw SdkError.validation(`Missing required field: ${field}`);\n }\n return value;\n}\n\nfunction bigintToSafeNumber(value: bigint, field: string): number {\n const max = BigInt(Number.MAX_SAFE_INTEGER);\n if (value > max || value < -max) {\n throw SdkError.validation(`${field} exceeds Number.MAX_SAFE_INTEGER`);\n }\n return Number(value);\n}\n\nexport function privyOrderFromLimitEnvelope(\n envelope: LimitOrderEnvelope,\n orderbookId: string\n): PrivyOrderEnvelope {\n const maker = requireDefined(envelope.getMaker(), \"maker\");\n const nonce = requireDefined(envelope.getNonce(), \"nonce\");\n const salt = requireDefined(envelope.getSalt(), \"salt\");\n const market = requireDefined(envelope.getMarket(), \"market\");\n const baseMint = requireDefined(envelope.getBaseMint(), \"base_mint\");\n const quoteMint = requireDefined(envelope.getQuoteMint(), \"quote_mint\");\n const side = requireDefined(envelope.getSide(), \"side\");\n const amountIn = requireDefined(envelope.getAmountIn(), \"amount_in\");\n const amountOut = requireDefined(envelope.getAmountOut(), \"amount_out\");\n\n return {\n maker: maker.toBase58(),\n nonce,\n salt: bigintToSafeNumber(salt, \"salt\"),\n market_pubkey: market.toBase58(),\n base_token: baseMint.toBase58(),\n quote_token: quoteMint.toBase58(),\n side,\n amount_in: bigintToSafeNumber(amountIn, \"amount_in\"),\n amount_out: bigintToSafeNumber(amountOut, \"amount_out\"),\n expiration: bigintToSafeNumber(envelope.getExpiration(), \"expiration\"),\n orderbook_id: orderbookId,\n deposit_source: envelope.getDepositSource(),\n };\n}\n\nexport function privyOrderFromTriggerEnvelope(\n envelope: TriggerOrderEnvelope,\n orderbookId: string\n): PrivyOrderEnvelope {\n const maker = requireDefined(envelope.getMaker(), \"maker\");\n const nonce = requireDefined(envelope.getNonce(), \"nonce\");\n const salt = requireDefined(envelope.getSalt(), \"salt\");\n const market = requireDefined(envelope.getMarket(), \"market\");\n const baseMint = requireDefined(envelope.getBaseMint(), \"base_mint\");\n const quoteMint = requireDefined(envelope.getQuoteMint(), \"quote_mint\");\n const side = requireDefined(envelope.getSide(), \"side\");\n const amountIn = requireDefined(envelope.getAmountIn(), \"amount_in\");\n const amountOut = requireDefined(envelope.getAmountOut(), \"amount_out\");\n\n return {\n maker: maker.toBase58(),\n nonce,\n salt: bigintToSafeNumber(salt, \"salt\"),\n market_pubkey: market.toBase58(),\n base_token: baseMint.toBase58(),\n quote_token: quoteMint.toBase58(),\n side,\n amount_in: bigintToSafeNumber(amountIn, \"amount_in\"),\n amount_out: bigintToSafeNumber(amountOut, \"amount_out\"),\n expiration: bigintToSafeNumber(envelope.getExpiration(), \"expiration\"),\n orderbook_id: orderbookId,\n tif: envelope.getTimeInForce(),\n trigger_price: envelope.getTriggerPrice(),\n trigger_type: envelope.getTriggerType(),\n deposit_source: envelope.getDepositSource(),\n };\n}\n"]}
@@ -30,40 +30,45 @@ export declare function isGlobalDepositTokenAccount(data: Buffer): boolean;
30
30
  /**
31
31
  * Deserialize Exchange account data
32
32
  *
33
- * Layout (88 bytes):
33
+ * Layout (212 bytes):
34
34
  * - discriminator: [u8; 8]
35
35
  * - authority: Pubkey (32 bytes)
36
36
  * - operator: Pubkey (32 bytes)
37
+ * - manager: Pubkey (32 bytes)
37
38
  * - market_count: u64 (8 bytes)
38
39
  * - paused: u8 (1 byte)
39
40
  * - bump: u8 (1 byte)
40
41
  * - deposit_token_count: u16 (2 bytes)
41
- * - _padding: [u8; 4]
42
+ * - fee_receiver: Pubkey (32 bytes)
43
+ * - _reserved: [u8; 64]
42
44
  */
43
45
  export declare function deserializeExchange(data: Buffer): Exchange;
44
46
  /**
45
47
  * Deserialize Market account data
46
48
  *
47
- * Layout (120 bytes):
49
+ * Layout (212 bytes):
48
50
  * - discriminator: [u8; 8]
49
51
  * - market_id: u64 (8 bytes)
50
52
  * - num_outcomes: u8 (1 byte)
51
53
  * - status: u8 (1 byte)
52
- * - winning_outcome: u8 (1 byte)
53
- * - has_winning_outcome: u8 (1 byte)
54
54
  * - bump: u8 (1 byte)
55
- * - _padding: [u8; 3]
55
+ * - _padding: [u8; 1]
56
+ * - maker_fee_bps: i16
57
+ * - taker_fee_bps: i16
56
58
  * - oracle: Pubkey (32 bytes)
57
59
  * - question_id: [u8; 32]
58
60
  * - condition_id: [u8; 32]
61
+ * - payout_numerators: [u32; 6]
62
+ * - payout_denominator: u32
59
63
  */
60
64
  export declare function deserializeMarket(data: Buffer): Market;
61
65
  /**
62
66
  * Deserialize OrderStatus account data
63
67
  *
64
- * Layout (24 bytes):
68
+ * Layout (32 bytes):
65
69
  * - discriminator: [u8; 8]
66
70
  * - remaining: u64 (8 bytes)
71
+ * - base_remaining: u64 (8 bytes)
67
72
  * - is_cancelled: u8 (1 byte)
68
73
  * - _padding: [u8; 7]
69
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,MAAM,EAEN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACV,MAAM,SAAS,CAAC;AAyBjB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjE;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAyC1D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyEtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAyBhE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAmB5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CA6B1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAyC5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA8B9E"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,MAAM,EAEN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACV,MAAM,SAAS,CAAC;AAyBjB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjE;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CA+C1D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoFtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CA6BhE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAmB5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CA6B1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAyC5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA8B9E"}
@@ -93,15 +93,17 @@ function isGlobalDepositTokenAccount(data) {
93
93
  /**
94
94
  * Deserialize Exchange account data
95
95
  *
96
- * Layout (88 bytes):
96
+ * Layout (212 bytes):
97
97
  * - discriminator: [u8; 8]
98
98
  * - authority: Pubkey (32 bytes)
99
99
  * - operator: Pubkey (32 bytes)
100
+ * - manager: Pubkey (32 bytes)
100
101
  * - market_count: u64 (8 bytes)
101
102
  * - paused: u8 (1 byte)
102
103
  * - bump: u8 (1 byte)
103
104
  * - deposit_token_count: u16 (2 bytes)
104
- * - _padding: [u8; 4]
105
+ * - fee_receiver: Pubkey (32 bytes)
106
+ * - _reserved: [u8; 64]
105
107
  */
106
108
  function deserializeExchange(data) {
107
109
  if (data.length < constants_1.ACCOUNT_SIZE.EXCHANGE) {
@@ -115,6 +117,8 @@ function deserializeExchange(data) {
115
117
  offset += 32;
116
118
  const operator = new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
117
119
  offset += 32;
120
+ const manager = new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
121
+ offset += 32;
118
122
  const marketCount = (0, utils_1.fromLeBytes)(data.subarray(offset, offset + 8));
119
123
  offset += 8;
120
124
  const paused = data[offset] !== 0;
@@ -123,32 +127,37 @@ function deserializeExchange(data) {
123
127
  offset += 1;
124
128
  const depositTokenCount = data.readUInt16LE(offset);
125
129
  offset += 2;
126
- // Skip padding: 4 bytes
130
+ const feeReceiver = new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
131
+ offset += 32;
127
132
  return {
128
133
  discriminator,
129
134
  authority,
130
135
  operator,
136
+ manager,
131
137
  marketCount,
132
138
  paused,
133
139
  bump,
134
140
  depositTokenCount,
141
+ feeReceiver,
135
142
  };
136
143
  }
137
144
  /**
138
145
  * Deserialize Market account data
139
146
  *
140
- * Layout (120 bytes):
147
+ * Layout (212 bytes):
141
148
  * - discriminator: [u8; 8]
142
149
  * - market_id: u64 (8 bytes)
143
150
  * - num_outcomes: u8 (1 byte)
144
151
  * - status: u8 (1 byte)
145
- * - winning_outcome: u8 (1 byte)
146
- * - has_winning_outcome: u8 (1 byte)
147
152
  * - bump: u8 (1 byte)
148
- * - _padding: [u8; 3]
153
+ * - _padding: [u8; 1]
154
+ * - maker_fee_bps: i16
155
+ * - taker_fee_bps: i16
149
156
  * - oracle: Pubkey (32 bytes)
150
157
  * - question_id: [u8; 32]
151
158
  * - condition_id: [u8; 32]
159
+ * - payout_numerators: [u32; 6]
160
+ * - payout_denominator: u32
152
161
  */
153
162
  function deserializeMarket(data) {
154
163
  if (data.length < constants_1.ACCOUNT_SIZE.MARKET) {
@@ -164,20 +173,27 @@ function deserializeMarket(data) {
164
173
  offset += 1;
165
174
  const statusByte = data[offset];
166
175
  offset += 1;
167
- const winningOutcome = data[offset];
168
- offset += 1;
169
- const hasWinningOutcome = data[offset] !== 0;
170
- offset += 1;
171
176
  const bump = data[offset];
172
177
  offset += 1;
173
- // Skip padding: 3 bytes
174
- offset += 3;
178
+ // Skip padding: 1 byte
179
+ offset += 1;
180
+ const makerFeeBps = data.readInt16LE(offset);
181
+ offset += 2;
182
+ const takerFeeBps = data.readInt16LE(offset);
183
+ offset += 2;
175
184
  const oracle = new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
176
185
  offset += 32;
177
186
  const questionId = Buffer.from(data.subarray(offset, offset + 32));
178
187
  offset += 32;
179
188
  const conditionId = Buffer.from(data.subarray(offset, offset + 32));
180
189
  offset += 32;
190
+ const payoutNumerators = [0, 0, 0, 0, 0, 0];
191
+ for (let i = 0; i < payoutNumerators.length; i++) {
192
+ payoutNumerators[i] = data.readUInt32LE(offset);
193
+ offset += 4;
194
+ }
195
+ const payoutDenominator = data.readUInt32LE(offset);
196
+ offset += 4;
181
197
  // Map status byte to enum
182
198
  let status;
183
199
  switch (statusByte) {
@@ -201,20 +217,23 @@ function deserializeMarket(data) {
201
217
  marketId,
202
218
  numOutcomes,
203
219
  status,
204
- winningOutcome,
205
- hasWinningOutcome,
206
220
  bump,
221
+ makerFeeBps,
222
+ takerFeeBps,
207
223
  oracle,
208
224
  questionId,
209
225
  conditionId,
226
+ payoutNumerators,
227
+ payoutDenominator,
210
228
  };
211
229
  }
212
230
  /**
213
231
  * Deserialize OrderStatus account data
214
232
  *
215
- * Layout (24 bytes):
233
+ * Layout (32 bytes):
216
234
  * - discriminator: [u8; 8]
217
235
  * - remaining: u64 (8 bytes)
236
+ * - base_remaining: u64 (8 bytes)
218
237
  * - is_cancelled: u8 (1 byte)
219
238
  * - _padding: [u8; 7]
220
239
  */
@@ -228,12 +247,15 @@ function deserializeOrderStatus(data) {
228
247
  offset += 8;
229
248
  const remaining = (0, utils_1.fromLeBytes)(data.subarray(offset, offset + 8));
230
249
  offset += 8;
250
+ const baseRemaining = (0, utils_1.fromLeBytes)(data.subarray(offset, offset + 8));
251
+ offset += 8;
231
252
  const isCancelled = data[offset] !== 0;
232
253
  offset += 1;
233
254
  // Skip padding: 7 bytes
234
255
  return {
235
256
  discriminator,
236
257
  remaining,
258
+ baseRemaining,
237
259
  isCancelled,
238
260
  };
239
261
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\nimport { DISCRIMINATOR, ACCOUNT_SIZE } from \"./constants\";\nimport { ProgramSdkError } from \"./error\";\nimport {\n Exchange,\n GlobalDepositToken,\n Market,\n MarketStatus,\n OrderStatus,\n UserNonce,\n Position,\n Orderbook,\n} from \"./types\";\nimport { fromLeBytes } from \"./utils\";\n\n// ============================================================================\n// DISCRIMINATOR VALIDATION\n// ============================================================================\n\n/**\n * Validate that a buffer starts with the expected discriminator\n */\nfunction validateDiscriminator(\n data: Buffer,\n expected: Buffer,\n accountType: string\n): void {\n const actual = data.subarray(0, 8);\n if (!actual.equals(expected)) {\n throw ProgramSdkError.invalidDiscriminator(\n accountType,\n expected.toString(\"hex\"),\n actual.toString(\"hex\"),\n );\n }\n}\n\n/**\n * Check if a buffer has a valid Exchange discriminator\n */\nexport function isExchangeAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.EXCHANGE);\n}\n\n/**\n * Check if a buffer has a valid Market discriminator\n */\nexport function isMarketAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.MARKET);\n}\n\n/**\n * Check if a buffer has a valid OrderStatus discriminator\n */\nexport function isOrderStatusAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.ORDER_STATUS);\n}\n\n/**\n * Check if a buffer has a valid UserNonce discriminator\n */\nexport function isUserNonceAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.USER_NONCE);\n}\n\n/**\n * Check if a buffer has a valid Position discriminator\n */\nexport function isPositionAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.POSITION);\n}\n\n/**\n * Check if a buffer has a valid Orderbook discriminator\n */\nexport function isOrderbookAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.ORDERBOOK);\n}\n\n/**\n * Check if a buffer has a valid GlobalDepositToken discriminator\n */\nexport function isGlobalDepositTokenAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN);\n}\n\n// ============================================================================\n// ACCOUNT DESERIALIZATION\n// ============================================================================\n\n/**\n * Deserialize Exchange account data\n *\n * Layout (88 bytes):\n * - discriminator: [u8; 8]\n * - authority: Pubkey (32 bytes)\n * - operator: Pubkey (32 bytes)\n * - market_count: u64 (8 bytes)\n * - paused: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - deposit_token_count: u16 (2 bytes)\n * - _padding: [u8; 4]\n */\nexport function deserializeExchange(data: Buffer): Exchange {\n if (data.length < ACCOUNT_SIZE.EXCHANGE) {\n throw ProgramSdkError.invalidDataLength(\"Exchange\", ACCOUNT_SIZE.EXCHANGE, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.EXCHANGE, \"Exchange\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const authority = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const operator = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const marketCount = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const paused = data[offset] !== 0;\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n const depositTokenCount = data.readUInt16LE(offset);\n offset += 2;\n\n // Skip padding: 4 bytes\n\n return {\n discriminator,\n authority,\n operator,\n marketCount,\n paused,\n bump,\n depositTokenCount,\n };\n}\n\n/**\n * Deserialize Market account data\n *\n * Layout (120 bytes):\n * - discriminator: [u8; 8]\n * - market_id: u64 (8 bytes)\n * - num_outcomes: u8 (1 byte)\n * - status: u8 (1 byte)\n * - winning_outcome: u8 (1 byte)\n * - has_winning_outcome: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 3]\n * - oracle: Pubkey (32 bytes)\n * - question_id: [u8; 32]\n * - condition_id: [u8; 32]\n */\nexport function deserializeMarket(data: Buffer): Market {\n if (data.length < ACCOUNT_SIZE.MARKET) {\n throw ProgramSdkError.invalidDataLength(\"Market\", ACCOUNT_SIZE.MARKET, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.MARKET, \"Market\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const marketId = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const numOutcomes = data[offset];\n offset += 1;\n\n const statusByte = data[offset];\n offset += 1;\n\n const winningOutcome = data[offset];\n offset += 1;\n\n const hasWinningOutcome = data[offset] !== 0;\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 3 bytes\n offset += 3;\n\n const oracle = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const questionId = Buffer.from(data.subarray(offset, offset + 32));\n offset += 32;\n\n const conditionId = Buffer.from(data.subarray(offset, offset + 32));\n offset += 32;\n\n // Map status byte to enum\n let status: MarketStatus;\n switch (statusByte) {\n case 0:\n status = MarketStatus.Pending;\n break;\n case 1:\n status = MarketStatus.Active;\n break;\n case 2:\n status = MarketStatus.Resolved;\n break;\n case 3:\n status = MarketStatus.Cancelled;\n break;\n default:\n throw ProgramSdkError.invalidMarketStatus(statusByte);\n }\n\n return {\n discriminator,\n marketId,\n numOutcomes,\n status,\n winningOutcome,\n hasWinningOutcome,\n bump,\n oracle,\n questionId,\n conditionId,\n };\n}\n\n/**\n * Deserialize OrderStatus account data\n *\n * Layout (24 bytes):\n * - discriminator: [u8; 8]\n * - remaining: u64 (8 bytes)\n * - is_cancelled: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializeOrderStatus(data: Buffer): OrderStatus {\n if (data.length < ACCOUNT_SIZE.ORDER_STATUS) {\n throw ProgramSdkError.invalidDataLength(\"OrderStatus\", ACCOUNT_SIZE.ORDER_STATUS, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.ORDER_STATUS, \"OrderStatus\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const remaining = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const isCancelled = data[offset] !== 0;\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n remaining,\n isCancelled,\n };\n}\n\n/**\n * Deserialize UserNonce account data\n *\n * Layout (16 bytes):\n * - discriminator: [u8; 8]\n * - nonce: u64 (8 bytes)\n */\nexport function deserializeUserNonce(data: Buffer): UserNonce {\n if (data.length < ACCOUNT_SIZE.USER_NONCE) {\n throw ProgramSdkError.invalidDataLength(\"UserNonce\", ACCOUNT_SIZE.USER_NONCE, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.USER_NONCE, \"UserNonce\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const nonce = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n return {\n discriminator,\n nonce,\n };\n}\n\n/**\n * Deserialize Position account data\n *\n * Layout (80 bytes):\n * - discriminator: [u8; 8]\n * - owner: Pubkey (32 bytes)\n * - market: Pubkey (32 bytes)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializePosition(data: Buffer): Position {\n if (data.length < ACCOUNT_SIZE.POSITION) {\n throw ProgramSdkError.invalidDataLength(\"Position\", ACCOUNT_SIZE.POSITION, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.POSITION, \"Position\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const owner = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const market = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n owner,\n market,\n bump,\n };\n}\n\n/**\n * Deserialize Orderbook account data\n *\n * Layout (144 bytes):\n * - discriminator: [u8; 8]\n * - market: Pubkey (32 bytes)\n * - mint_a: Pubkey (32 bytes)\n * - mint_b: Pubkey (32 bytes)\n * - lookup_table: Pubkey (32 bytes)\n * - base_index: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 6]\n */\nexport function deserializeOrderbook(data: Buffer): Orderbook {\n if (data.length < ACCOUNT_SIZE.ORDERBOOK) {\n throw ProgramSdkError.invalidDataLength(\"Orderbook\", ACCOUNT_SIZE.ORDERBOOK, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.ORDERBOOK, \"Orderbook\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const market = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const mintA = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const mintB = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const lookupTable = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const baseIndex = data[offset];\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 6 bytes\n\n return {\n discriminator,\n market,\n mintA,\n mintB,\n lookupTable,\n baseIndex,\n bump,\n };\n}\n\n/**\n * Deserialize GlobalDepositToken account data\n *\n * Layout (48 bytes):\n * - discriminator: [u8; 8]\n * - mint: Pubkey (32 bytes)\n * - active: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 6]\n */\nexport function deserializeGlobalDepositToken(data: Buffer): GlobalDepositToken {\n if (data.length < ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN) {\n throw ProgramSdkError.invalidDataLength(\"GlobalDepositToken\", ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN, \"GlobalDepositToken\");\n\n let offset = 0;\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const mint = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const active = data[offset] !== 0;\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n const index = data.readUInt16LE(offset);\n offset += 2;\n\n return {\n discriminator,\n mint,\n active,\n bump,\n index,\n };\n}\n"]}
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\nimport { DISCRIMINATOR, ACCOUNT_SIZE } from \"./constants\";\nimport { ProgramSdkError } from \"./error\";\nimport {\n Exchange,\n GlobalDepositToken,\n Market,\n MarketStatus,\n OrderStatus,\n UserNonce,\n Position,\n Orderbook,\n} from \"./types\";\nimport { fromLeBytes } from \"./utils\";\n\n// ============================================================================\n// DISCRIMINATOR VALIDATION\n// ============================================================================\n\n/**\n * Validate that a buffer starts with the expected discriminator\n */\nfunction validateDiscriminator(\n data: Buffer,\n expected: Buffer,\n accountType: string\n): void {\n const actual = data.subarray(0, 8);\n if (!actual.equals(expected)) {\n throw ProgramSdkError.invalidDiscriminator(\n accountType,\n expected.toString(\"hex\"),\n actual.toString(\"hex\"),\n );\n }\n}\n\n/**\n * Check if a buffer has a valid Exchange discriminator\n */\nexport function isExchangeAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.EXCHANGE);\n}\n\n/**\n * Check if a buffer has a valid Market discriminator\n */\nexport function isMarketAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.MARKET);\n}\n\n/**\n * Check if a buffer has a valid OrderStatus discriminator\n */\nexport function isOrderStatusAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.ORDER_STATUS);\n}\n\n/**\n * Check if a buffer has a valid UserNonce discriminator\n */\nexport function isUserNonceAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.USER_NONCE);\n}\n\n/**\n * Check if a buffer has a valid Position discriminator\n */\nexport function isPositionAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.POSITION);\n}\n\n/**\n * Check if a buffer has a valid Orderbook discriminator\n */\nexport function isOrderbookAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.ORDERBOOK);\n}\n\n/**\n * Check if a buffer has a valid GlobalDepositToken discriminator\n */\nexport function isGlobalDepositTokenAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN);\n}\n\n// ============================================================================\n// ACCOUNT DESERIALIZATION\n// ============================================================================\n\n/**\n * Deserialize Exchange account data\n *\n * Layout (212 bytes):\n * - discriminator: [u8; 8]\n * - authority: Pubkey (32 bytes)\n * - operator: Pubkey (32 bytes)\n * - manager: Pubkey (32 bytes)\n * - market_count: u64 (8 bytes)\n * - paused: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - deposit_token_count: u16 (2 bytes)\n * - fee_receiver: Pubkey (32 bytes)\n * - _reserved: [u8; 64]\n */\nexport function deserializeExchange(data: Buffer): Exchange {\n if (data.length < ACCOUNT_SIZE.EXCHANGE) {\n throw ProgramSdkError.invalidDataLength(\"Exchange\", ACCOUNT_SIZE.EXCHANGE, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.EXCHANGE, \"Exchange\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const authority = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const operator = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const manager = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const marketCount = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const paused = data[offset] !== 0;\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n const depositTokenCount = data.readUInt16LE(offset);\n offset += 2;\n\n const feeReceiver = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n return {\n discriminator,\n authority,\n operator,\n manager,\n marketCount,\n paused,\n bump,\n depositTokenCount,\n feeReceiver,\n };\n}\n\n/**\n * Deserialize Market account data\n *\n * Layout (212 bytes):\n * - discriminator: [u8; 8]\n * - market_id: u64 (8 bytes)\n * - num_outcomes: u8 (1 byte)\n * - status: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 1]\n * - maker_fee_bps: i16\n * - taker_fee_bps: i16\n * - oracle: Pubkey (32 bytes)\n * - question_id: [u8; 32]\n * - condition_id: [u8; 32]\n * - payout_numerators: [u32; 6]\n * - payout_denominator: u32\n */\nexport function deserializeMarket(data: Buffer): Market {\n if (data.length < ACCOUNT_SIZE.MARKET) {\n throw ProgramSdkError.invalidDataLength(\"Market\", ACCOUNT_SIZE.MARKET, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.MARKET, \"Market\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const marketId = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const numOutcomes = data[offset];\n offset += 1;\n\n const statusByte = data[offset];\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 1 byte\n offset += 1;\n\n const makerFeeBps = data.readInt16LE(offset);\n offset += 2;\n\n const takerFeeBps = data.readInt16LE(offset);\n offset += 2;\n\n const oracle = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const questionId = Buffer.from(data.subarray(offset, offset + 32));\n offset += 32;\n\n const conditionId = Buffer.from(data.subarray(offset, offset + 32));\n offset += 32;\n\n const payoutNumerators: Market[\"payoutNumerators\"] = [0, 0, 0, 0, 0, 0];\n for (let i = 0; i < payoutNumerators.length; i++) {\n payoutNumerators[i] = data.readUInt32LE(offset);\n offset += 4;\n }\n\n const payoutDenominator = data.readUInt32LE(offset);\n offset += 4;\n\n // Map status byte to enum\n let status: MarketStatus;\n switch (statusByte) {\n case 0:\n status = MarketStatus.Pending;\n break;\n case 1:\n status = MarketStatus.Active;\n break;\n case 2:\n status = MarketStatus.Resolved;\n break;\n case 3:\n status = MarketStatus.Cancelled;\n break;\n default:\n throw ProgramSdkError.invalidMarketStatus(statusByte);\n }\n\n return {\n discriminator,\n marketId,\n numOutcomes,\n status,\n bump,\n makerFeeBps,\n takerFeeBps,\n oracle,\n questionId,\n conditionId,\n payoutNumerators,\n payoutDenominator,\n };\n}\n\n/**\n * Deserialize OrderStatus account data\n *\n * Layout (32 bytes):\n * - discriminator: [u8; 8]\n * - remaining: u64 (8 bytes)\n * - base_remaining: u64 (8 bytes)\n * - is_cancelled: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializeOrderStatus(data: Buffer): OrderStatus {\n if (data.length < ACCOUNT_SIZE.ORDER_STATUS) {\n throw ProgramSdkError.invalidDataLength(\"OrderStatus\", ACCOUNT_SIZE.ORDER_STATUS, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.ORDER_STATUS, \"OrderStatus\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const remaining = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const baseRemaining = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const isCancelled = data[offset] !== 0;\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n remaining,\n baseRemaining,\n isCancelled,\n };\n}\n\n/**\n * Deserialize UserNonce account data\n *\n * Layout (16 bytes):\n * - discriminator: [u8; 8]\n * - nonce: u64 (8 bytes)\n */\nexport function deserializeUserNonce(data: Buffer): UserNonce {\n if (data.length < ACCOUNT_SIZE.USER_NONCE) {\n throw ProgramSdkError.invalidDataLength(\"UserNonce\", ACCOUNT_SIZE.USER_NONCE, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.USER_NONCE, \"UserNonce\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const nonce = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n return {\n discriminator,\n nonce,\n };\n}\n\n/**\n * Deserialize Position account data\n *\n * Layout (80 bytes):\n * - discriminator: [u8; 8]\n * - owner: Pubkey (32 bytes)\n * - market: Pubkey (32 bytes)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializePosition(data: Buffer): Position {\n if (data.length < ACCOUNT_SIZE.POSITION) {\n throw ProgramSdkError.invalidDataLength(\"Position\", ACCOUNT_SIZE.POSITION, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.POSITION, \"Position\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const owner = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const market = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n owner,\n market,\n bump,\n };\n}\n\n/**\n * Deserialize Orderbook account data\n *\n * Layout (144 bytes):\n * - discriminator: [u8; 8]\n * - market: Pubkey (32 bytes)\n * - mint_a: Pubkey (32 bytes)\n * - mint_b: Pubkey (32 bytes)\n * - lookup_table: Pubkey (32 bytes)\n * - base_index: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 6]\n */\nexport function deserializeOrderbook(data: Buffer): Orderbook {\n if (data.length < ACCOUNT_SIZE.ORDERBOOK) {\n throw ProgramSdkError.invalidDataLength(\"Orderbook\", ACCOUNT_SIZE.ORDERBOOK, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.ORDERBOOK, \"Orderbook\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const market = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const mintA = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const mintB = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const lookupTable = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const baseIndex = data[offset];\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 6 bytes\n\n return {\n discriminator,\n market,\n mintA,\n mintB,\n lookupTable,\n baseIndex,\n bump,\n };\n}\n\n/**\n * Deserialize GlobalDepositToken account data\n *\n * Layout (48 bytes):\n * - discriminator: [u8; 8]\n * - mint: Pubkey (32 bytes)\n * - active: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 6]\n */\nexport function deserializeGlobalDepositToken(data: Buffer): GlobalDepositToken {\n if (data.length < ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN) {\n throw ProgramSdkError.invalidDataLength(\"GlobalDepositToken\", ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN, \"GlobalDepositToken\");\n\n let offset = 0;\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const mint = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const active = data[offset] !== 0;\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n const index = data.readUInt16LE(offset);\n offset += 2;\n\n return {\n discriminator,\n mint,\n active,\n bump,\n index,\n };\n}\n"]}
@@ -55,10 +55,6 @@ export declare class OrderBuilder {
55
55
  amountIn(value: bigint): this;
56
56
  /** Set amount out (what maker receives) */
57
57
  amountOut(value: bigint): this;
58
- /** @deprecated Use amountIn() */
59
- makerAmount(value: bigint): this;
60
- /** @deprecated Use amountOut() */
61
- takerAmount(value: bigint): this;
62
58
  /** Set expiration timestamp (0 = no expiration) */
63
59
  expiration(value: bigint): this;
64
60
  /** Set deposit source for order submission */
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/program/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAkB,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAC,CAAgB;IAEvC,gCAAgC;IAChC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,0EAA0E;IAC1E,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,6BAA6B;IAC7B,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK7B,qBAAqB;IACrB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK9B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKhC,yCAAyC;IACzC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKjC,sBAAsB;IACtB,GAAG,IAAI,IAAI;IAKX,sBAAsB;IACtB,GAAG,IAAI,IAAI;IAKX,yBAAyB;IACzB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK5B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,2CAA2C;IAC3C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B,iCAAiC;IACjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,kCAAkC;IAClC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,mDAAmD;IACnD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,8CAA8C;IAC9C,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKzC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAY3E;;;OAGG;IACH,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAIP;;;OAGG;IACH,KAAK,IAAI,WAAW;IAqBpB;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW;IAmB3C;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAClB,kBAAkB;CAMtB"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/program/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAkB,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAC,CAAgB;IAEvC,gCAAgC;IAChC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,0EAA0E;IAC1E,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,6BAA6B;IAC7B,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK7B,qBAAqB;IACrB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK9B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKhC,yCAAyC;IACzC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKjC,sBAAsB;IACtB,GAAG,IAAI,IAAI;IAKX,sBAAsB;IACtB,GAAG,IAAI,IAAI;IAKX,yBAAyB;IACzB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK5B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,2CAA2C;IAC3C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B,mDAAmD;IACnD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,8CAA8C;IAC9C,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKzC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAY3E;;;OAGG;IACH,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAIP;;;OAGG;IACH,KAAK,IAAI,WAAW;IAqBpB;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW;IAmB3C;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAClB,kBAAkB;CAMtB"}
@@ -91,14 +91,6 @@ class OrderBuilder {
91
91
  this._amountOut = value;
92
92
  return this;
93
93
  }
94
- /** @deprecated Use amountIn() */
95
- makerAmount(value) {
96
- return this.amountIn(value);
97
- }
98
- /** @deprecated Use amountOut() */
99
- takerAmount(value) {
100
- return this.amountOut(value);
101
- }
102
94
  /** Set expiration timestamp (0 = no expiration) */
103
95
  expiration(value) {
104
96
  this._expiration = value;
@@ -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 { ProgramSdkError } from \"./error\";\nimport { SignedOrder, OrderSide } from \"./types\";\nimport { generateSalt, 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 _salt: bigint | null = null;\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 order salt (u64) for uniqueness. Auto-generated if not set. */\n salt(value: bigint): this {\n this._salt = 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 ProgramSdkError.missingField(\"maker\");\n if (!this._market) throw ProgramSdkError.missingField(\"market\");\n if (!this._baseMint) throw ProgramSdkError.missingField(\"baseMint\");\n if (!this._quoteMint) throw ProgramSdkError.missingField(\"quoteMint\");\n\n return {\n nonce: this._nonce,\n salt: this._salt ?? generateSalt(),\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 salt: unsigned.salt,\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
+ {"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 { ProgramSdkError } from \"./error\";\nimport { SignedOrder, OrderSide } from \"./types\";\nimport { generateSalt, 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 _salt: bigint | null = null;\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 order salt (u64) for uniqueness. Auto-generated if not set. */\n salt(value: bigint): this {\n this._salt = 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 /** 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 ProgramSdkError.missingField(\"maker\");\n if (!this._market) throw ProgramSdkError.missingField(\"market\");\n if (!this._baseMint) throw ProgramSdkError.missingField(\"baseMint\");\n if (!this._quoteMint) throw ProgramSdkError.missingField(\"quoteMint\");\n\n return {\n nonce: this._nonce,\n salt: this._salt ?? generateSalt(),\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 salt: unsigned.salt,\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"]}
@@ -7,14 +7,14 @@ export declare const ALT_PROGRAM_ID: PublicKey;
7
7
  * SPL Token Program ID
8
8
  */
9
9
  export declare const TOKEN_PROGRAM_ID: PublicKey;
10
- /**
11
- * Token-2022 Program ID (for conditional tokens)
12
- */
13
- export declare const TOKEN_2022_PROGRAM_ID: PublicKey;
14
10
  /**
15
11
  * Associated Token Account Program ID
16
12
  */
17
13
  export declare const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey;
14
+ /**
15
+ * Metaplex Token Metadata Program ID
16
+ */
17
+ export declare const MPL_TOKEN_METADATA_PROGRAM_ID: PublicKey;
18
18
  /**
19
19
  * System Program ID
20
20
  */
@@ -50,6 +50,16 @@ export declare const INSTRUCTION: {
50
50
  readonly DEPOSIT_AND_SWAP: 20;
51
51
  readonly EXTEND_POSITION_TOKENS: 21;
52
52
  readonly WITHDRAW_FROM_GLOBAL: 22;
53
+ readonly CLOSE_POSITION_ALT: 23;
54
+ readonly CLOSE_ORDER_STATUS: 24;
55
+ readonly CLOSE_POSITION_TOKEN_ACCOUNTS: 25;
56
+ readonly CLOSE_ORDERBOOK_ALT: 26;
57
+ readonly CLOSE_ORDERBOOK: 27;
58
+ readonly SET_MANAGER: 28;
59
+ readonly SET_MARKET_FEES: 29;
60
+ readonly SET_FEE_RECEIVER: 30;
61
+ readonly CREATE_CONDITIONAL_METADATA: 31;
62
+ readonly UPDATE_CONDITIONAL_METADATA: 32;
53
63
  };
54
64
  /**
55
65
  * Account discriminators (8 bytes each)
@@ -68,9 +78,9 @@ export declare const DISCRIMINATOR: {
68
78
  * Account sizes in bytes
69
79
  */
70
80
  export declare const ACCOUNT_SIZE: {
71
- readonly EXCHANGE: 88;
72
- readonly MARKET: 120;
73
- readonly ORDER_STATUS: 24;
81
+ readonly EXCHANGE: 212;
82
+ readonly MARKET: 212;
83
+ readonly ORDER_STATUS: 32;
74
84
  readonly USER_NONCE: 16;
75
85
  readonly POSITION: 80;
76
86
  readonly ORDERBOOK: 144;
@@ -105,10 +115,13 @@ export declare const SEEDS: {
105
115
  readonly MARKET_DEPOSIT_TOKEN_ACCOUNT: "market_deposit_token_account";
106
116
  readonly MARKET_MINT_AUTHORITY: "market_mint_authority";
107
117
  readonly CONDITIONAL_MINT: "conditional_mint";
118
+ readonly CONDITION: "condition";
108
119
  readonly ORDER_STATUS: "order_status";
109
120
  readonly USER_NONCE: "user_nonce";
110
121
  readonly POSITION: "position";
111
122
  readonly ORDERBOOK: "orderbook";
112
123
  readonly GLOBAL_DEPOSIT: "global_deposit";
124
+ readonly FEE_RECEIVER: "fee_receiver";
125
+ readonly MPL_METADATA: "metadata";
113
126
  };
114
127
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAOzB;;GAEG;AACH,eAAO,MAAM,cAAc,WAE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAuB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,qBAAqB,WAA4B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,2BAA2B,WAAkC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,iBAAiB,WAA0B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,cAAc,WAAqB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;CAwBd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;CAWR,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAMzB;;GAEG;AACH,eAAO,MAAM,cAAc,WAE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAuB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,2BAA2B,WAAkC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,6BAA6B,WAEzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,WAA0B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,cAAc,WAAqB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;CAcR,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SEEDS = exports.MAX_MAKERS = exports.MIN_OUTCOMES = exports.MAX_OUTCOMES = exports.ORDER_SIZE = exports.ACCOUNT_SIZE = exports.DISCRIMINATOR = exports.INSTRUCTION = exports.RENT_SYSVAR_ID = exports.SYSTEM_PROGRAM_ID = exports.ASSOCIATED_TOKEN_PROGRAM_ID = exports.TOKEN_2022_PROGRAM_ID = exports.TOKEN_PROGRAM_ID = exports.ALT_PROGRAM_ID = void 0;
3
+ exports.SEEDS = exports.MAX_MAKERS = exports.MIN_OUTCOMES = exports.MAX_OUTCOMES = exports.ORDER_SIZE = exports.ACCOUNT_SIZE = exports.DISCRIMINATOR = exports.INSTRUCTION = exports.RENT_SYSVAR_ID = exports.SYSTEM_PROGRAM_ID = exports.MPL_TOKEN_METADATA_PROGRAM_ID = exports.ASSOCIATED_TOKEN_PROGRAM_ID = exports.TOKEN_PROGRAM_ID = exports.ALT_PROGRAM_ID = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
5
  const spl_token_1 = require("@solana/spl-token");
6
6
  /**
@@ -11,14 +11,14 @@ exports.ALT_PROGRAM_ID = new web3_js_1.PublicKey("AddressLookupTab1e111111111111
11
11
  * SPL Token Program ID
12
12
  */
13
13
  exports.TOKEN_PROGRAM_ID = spl_token_1.TOKEN_PROGRAM_ID;
14
- /**
15
- * Token-2022 Program ID (for conditional tokens)
16
- */
17
- exports.TOKEN_2022_PROGRAM_ID = spl_token_1.TOKEN_2022_PROGRAM_ID;
18
14
  /**
19
15
  * Associated Token Account Program ID
20
16
  */
21
17
  exports.ASSOCIATED_TOKEN_PROGRAM_ID = spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID;
18
+ /**
19
+ * Metaplex Token Metadata Program ID
20
+ */
21
+ exports.MPL_TOKEN_METADATA_PROGRAM_ID = new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
22
22
  /**
23
23
  * System Program ID
24
24
  */
@@ -54,6 +54,16 @@ exports.INSTRUCTION = {
54
54
  DEPOSIT_AND_SWAP: 20,
55
55
  EXTEND_POSITION_TOKENS: 21,
56
56
  WITHDRAW_FROM_GLOBAL: 22,
57
+ CLOSE_POSITION_ALT: 23,
58
+ CLOSE_ORDER_STATUS: 24,
59
+ CLOSE_POSITION_TOKEN_ACCOUNTS: 25,
60
+ CLOSE_ORDERBOOK_ALT: 26,
61
+ CLOSE_ORDERBOOK: 27,
62
+ SET_MANAGER: 28,
63
+ SET_MARKET_FEES: 29,
64
+ SET_FEE_RECEIVER: 30,
65
+ CREATE_CONDITIONAL_METADATA: 31,
66
+ UPDATE_CONDITIONAL_METADATA: 32,
57
67
  };
58
68
  /**
59
69
  * Account discriminators (8 bytes each)
@@ -72,9 +82,9 @@ exports.DISCRIMINATOR = {
72
82
  * Account sizes in bytes
73
83
  */
74
84
  exports.ACCOUNT_SIZE = {
75
- EXCHANGE: 88,
76
- MARKET: 120,
77
- ORDER_STATUS: 24,
85
+ EXCHANGE: 212,
86
+ MARKET: 212,
87
+ ORDER_STATUS: 32,
78
88
  USER_NONCE: 16,
79
89
  POSITION: 80,
80
90
  ORDERBOOK: 144,
@@ -109,10 +119,13 @@ exports.SEEDS = {
109
119
  MARKET_DEPOSIT_TOKEN_ACCOUNT: "market_deposit_token_account",
110
120
  MARKET_MINT_AUTHORITY: "market_mint_authority",
111
121
  CONDITIONAL_MINT: "conditional_mint",
122
+ CONDITION: "condition",
112
123
  ORDER_STATUS: "order_status",
113
124
  USER_NONCE: "user_nonce",
114
125
  POSITION: "position",
115
126
  ORDERBOOK: "orderbook",
116
127
  GLOBAL_DEPOSIT: "global_deposit",
128
+ FEE_RECEIVER: "fee_receiver",
129
+ MPL_METADATA: "metadata",
117
130
  };
118
131
  //# sourceMappingURL=constants.js.map
@@ -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 * 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 WITHDRAW_FROM_GLOBAL: 22,\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: 233,\n ORDER: 37,\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 ASSOCIATED_TOKEN_PROGRAM_ID as SPL_ASSOCIATED_TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\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 * Associated Token Account Program ID\n */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID = SPL_ASSOCIATED_TOKEN_PROGRAM_ID;\n\n/**\n * Metaplex Token Metadata Program ID\n */\nexport const MPL_TOKEN_METADATA_PROGRAM_ID = new PublicKey(\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n);\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 WITHDRAW_FROM_GLOBAL: 22,\n CLOSE_POSITION_ALT: 23,\n CLOSE_ORDER_STATUS: 24,\n CLOSE_POSITION_TOKEN_ACCOUNTS: 25,\n CLOSE_ORDERBOOK_ALT: 26,\n CLOSE_ORDERBOOK: 27,\n SET_MANAGER: 28,\n SET_MARKET_FEES: 29,\n SET_FEE_RECEIVER: 30,\n CREATE_CONDITIONAL_METADATA: 31,\n UPDATE_CONDITIONAL_METADATA: 32,\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: 212,\n MARKET: 212,\n ORDER_STATUS: 32,\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: 233,\n ORDER: 37,\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 CONDITION: \"condition\",\n ORDER_STATUS: \"order_status\",\n USER_NONCE: \"user_nonce\",\n POSITION: \"position\",\n ORDERBOOK: \"orderbook\",\n GLOBAL_DEPOSIT: \"global_deposit\",\n FEE_RECEIVER: \"fee_receiver\",\n MPL_METADATA: \"metadata\",\n} as const;\n"]}