@lightconexyz/lightcone-sdk 0.2.4 → 0.2.42

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 (91) hide show
  1. package/README.md +5 -23
  2. package/dist/auth/client.d.ts.map +1 -1
  3. package/dist/auth/client.js +0 -3
  4. package/dist/auth/client.js.map +1 -1
  5. package/dist/auth/index.d.ts +0 -1
  6. package/dist/auth/index.d.ts.map +1 -1
  7. package/dist/auth/index.js.map +1 -1
  8. package/dist/client.d.ts +2 -15
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +4 -28
  11. package/dist/client.js.map +1 -1
  12. package/dist/context.d.ts +0 -5
  13. package/dist/context.d.ts.map +1 -1
  14. package/dist/context.js.map +1 -1
  15. package/dist/domain/admin/client.d.ts +13 -1
  16. package/dist/domain/admin/client.d.ts.map +1 -1
  17. package/dist/domain/admin/client.js +50 -0
  18. package/dist/domain/admin/client.js.map +1 -1
  19. package/dist/domain/market/client.d.ts +3 -1
  20. package/dist/domain/market/client.d.ts.map +1 -1
  21. package/dist/domain/market/client.js +10 -0
  22. package/dist/domain/market/client.js.map +1 -1
  23. package/dist/domain/order/client.d.ts +3 -1
  24. package/dist/domain/order/client.d.ts.map +1 -1
  25. package/dist/domain/order/client.js +10 -0
  26. package/dist/domain/order/client.js.map +1 -1
  27. package/dist/domain/orderbook/client.d.ts +3 -6
  28. package/dist/domain/orderbook/client.d.ts.map +1 -1
  29. package/dist/domain/orderbook/client.js +1 -16
  30. package/dist/domain/orderbook/client.js.map +1 -1
  31. package/dist/domain/orderbook/index.d.ts +7 -0
  32. package/dist/domain/orderbook/index.d.ts.map +1 -1
  33. package/dist/domain/orderbook/index.js +17 -0
  34. package/dist/domain/orderbook/index.js.map +1 -1
  35. package/dist/domain/orderbook/state.d.ts +14 -4
  36. package/dist/domain/orderbook/state.d.ts.map +1 -1
  37. package/dist/domain/orderbook/state.js +66 -26
  38. package/dist/domain/orderbook/state.js.map +1 -1
  39. package/dist/domain/position/client.d.ts +10 -2
  40. package/dist/domain/position/client.d.ts.map +1 -1
  41. package/dist/domain/position/client.js +33 -0
  42. package/dist/domain/position/client.js.map +1 -1
  43. package/dist/domain/trade/state.d.ts +3 -1
  44. package/dist/domain/trade/state.d.ts.map +1 -1
  45. package/dist/domain/trade/state.js +33 -12
  46. package/dist/domain/trade/state.js.map +1 -1
  47. package/dist/http/client.d.ts +0 -1
  48. package/dist/http/client.d.ts.map +1 -1
  49. package/dist/http/client.js +12 -3
  50. package/dist/http/client.js.map +1 -1
  51. package/dist/index.d.ts +1 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/prelude.d.ts +2 -2
  55. package/dist/prelude.d.ts.map +1 -1
  56. package/dist/prelude.js.map +1 -1
  57. package/dist/privy/index.d.ts +1 -0
  58. package/dist/privy/index.d.ts.map +1 -1
  59. package/dist/privy/index.js +4 -0
  60. package/dist/privy/index.js.map +1 -1
  61. package/dist/program/builder.d.ts +3 -0
  62. package/dist/program/builder.d.ts.map +1 -1
  63. package/dist/program/builder.js +8 -0
  64. package/dist/program/builder.js.map +1 -1
  65. package/dist/program/constants.d.ts +3 -2
  66. package/dist/program/constants.d.ts.map +1 -1
  67. package/dist/program/constants.js +3 -2
  68. package/dist/program/constants.js.map +1 -1
  69. package/dist/program/envelope.d.ts +19 -9
  70. package/dist/program/envelope.d.ts.map +1 -1
  71. package/dist/program/envelope.js +54 -20
  72. package/dist/program/envelope.js.map +1 -1
  73. package/dist/program/index.d.ts +3 -3
  74. package/dist/program/index.d.ts.map +1 -1
  75. package/dist/program/index.js +28 -2
  76. package/dist/program/index.js.map +1 -1
  77. package/dist/program/instructions.d.ts +39 -2
  78. package/dist/program/instructions.d.ts.map +1 -1
  79. package/dist/program/instructions.js +155 -0
  80. package/dist/program/instructions.js.map +1 -1
  81. package/dist/program/orders.d.ts +23 -17
  82. package/dist/program/orders.d.ts.map +1 -1
  83. package/dist/program/orders.js +44 -17
  84. package/dist/program/orders.js.map +1 -1
  85. package/dist/program/types.d.ts +14 -2
  86. package/dist/program/types.d.ts.map +1 -1
  87. package/dist/program/types.js.map +1 -1
  88. package/dist/shared/types.d.ts +1 -0
  89. package/dist/shared/types.d.ts.map +1 -1
  90. package/dist/shared/types.js.map +1 -1
  91. package/package.json +1 -1
@@ -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;AACrD,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,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,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;IAoBpB;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW;IAkB3C;;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;AACrD,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"}
@@ -25,6 +25,7 @@ const scaling_1 = require("../shared/scaling");
25
25
  */
26
26
  class OrderBuilder {
27
27
  _nonce = 0;
28
+ _salt = null;
28
29
  _maker = null;
29
30
  _market = null;
30
31
  _baseMint = null;
@@ -39,6 +40,11 @@ class OrderBuilder {
39
40
  this._nonce = value;
40
41
  return this;
41
42
  }
43
+ /** Set the order salt (u64) for uniqueness. Auto-generated if not set. */
44
+ salt(value) {
45
+ this._salt = value;
46
+ return this;
47
+ }
42
48
  /** Set the maker (signer) */
43
49
  maker(value) {
44
50
  this._maker = value;
@@ -137,6 +143,7 @@ class OrderBuilder {
137
143
  throw new Error("OrderBuilder: quoteMint is required");
138
144
  return {
139
145
  nonce: this._nonce,
146
+ salt: this._salt ?? (0, orders_1.generateSalt)(),
140
147
  maker: this._maker,
141
148
  market: this._market,
142
149
  baseMint: this._baseMint,
@@ -155,6 +162,7 @@ class OrderBuilder {
155
162
  const unsigned = this.build();
156
163
  return (0, orders_1.signOrderFull)({
157
164
  nonce: unsigned.nonce,
165
+ salt: unsigned.salt,
158
166
  maker: unsigned.maker,
159
167
  market: unsigned.market,
160
168
  baseMint: unsigned.baseMint,
@@ -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, 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
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/program/builder.ts"],"names":[],"mappings":";;;AACA,mCAAiD;AACjD,qCAAgG;AAChG,+CAAsE;AAGtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,YAAY;IACf,MAAM,GAAW,CAAC,CAAC;IACnB,KAAK,GAAkB,IAAI,CAAC;IAC5B,MAAM,GAAqB,IAAI,CAAC;IAChC,OAAO,GAAqB,IAAI,CAAC;IACjC,SAAS,GAAqB,IAAI,CAAC;IACnC,UAAU,GAAqB,IAAI,CAAC;IACpC,KAAK,GAAc,iBAAS,CAAC,GAAG,CAAC;IACjC,SAAS,GAAW,EAAE,CAAC;IACvB,UAAU,GAAW,EAAE,CAAC;IACxB,WAAW,GAAW,EAAE,CAAC;IACzB,cAAc,CAAiB;IAEvC,gCAAgC;IAChC,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,KAAgB;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;IACrB,MAAM,CAAC,KAAgB;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,QAAQ,CAAC,KAAgB;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,SAAS,CAAC,KAAgB;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,GAAG;QACD,IAAI,CAAC,KAAK,GAAG,iBAAS,CAAC,GAAG,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,GAAG;QACD,IAAI,CAAC,KAAK,GAAG,iBAAS,CAAC,GAAG,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,KAAgB;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,SAAS,CAAC,KAAa;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iCAAiC;IACjC,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,kCAAkC;IAClC,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,mDAAmD;IACnD,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8CAA8C;IAC9C,aAAa,CAAC,KAAoB;QAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAgB,EAAE,OAAe,EAAE,QAA2B;QAClE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAA,wBAAc,EAC5C,QAAQ,EACR,OAAO,EACP,IAAI,CAAC,KAAK,EACV,QAAQ,CACT,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,YAAY,CACV,QAAgB,EAChB,OAAe,EACf,QAA2B;QAE3B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAE7E,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAA,qBAAY,GAAE;YAClC,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAgB;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,IAAA,sBAAa,EAClB;YACE,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CACb,OAAgB,EAChB,WAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAA,wBAAoB,EAAC,MAAM,EAAE,WAAW,EAAE;YAC/C,aAAa,EAAE,IAAI,CAAC,cAAc;SACnC,CAAC,CAAC;IACL,CAAC;CACF;AA/LD,oCA+LC","sourcesContent":["import { PublicKey, Keypair } from \"@solana/web3.js\";\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 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 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"]}
@@ -53,6 +53,7 @@ export declare const INSTRUCTION: {
53
53
  readonly INIT_POSITION_TOKENS: 19;
54
54
  readonly DEPOSIT_AND_SWAP: 20;
55
55
  readonly EXTEND_POSITION_TOKENS: 21;
56
+ readonly WITHDRAW_FROM_GLOBAL: 22;
56
57
  };
57
58
  /**
58
59
  * Account discriminators (8 bytes each)
@@ -83,8 +84,8 @@ export declare const ACCOUNT_SIZE: {
83
84
  * Order sizes in bytes
84
85
  */
85
86
  export declare const ORDER_SIZE: {
86
- readonly SIGNED_ORDER: 225;
87
- readonly ORDER: 29;
87
+ readonly SIGNED_ORDER: 233;
88
+ readonly ORDER: 37;
88
89
  readonly SIGNATURE: 64;
89
90
  };
90
91
  /**
@@ -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,UAAU,WAEtB,CAAC;AAEF;;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;;;;;;;;;;;;;;;;;;;;;;;CAuBd,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;AAOzB;;GAEG;AACH,eAAO,MAAM,UAAU,WAEtB,CAAC;AAEF;;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"}
@@ -57,6 +57,7 @@ exports.INSTRUCTION = {
57
57
  INIT_POSITION_TOKENS: 19,
58
58
  DEPOSIT_AND_SWAP: 20,
59
59
  EXTEND_POSITION_TOKENS: 21,
60
+ WITHDRAW_FROM_GLOBAL: 22,
60
61
  };
61
62
  /**
62
63
  * Account discriminators (8 bytes each)
@@ -87,8 +88,8 @@ exports.ACCOUNT_SIZE = {
87
88
  * Order sizes in bytes
88
89
  */
89
90
  exports.ORDER_SIZE = {
90
- SIGNED_ORDER: 225,
91
- ORDER: 29,
91
+ SIGNED_ORDER: 233,
92
+ ORDER: 37,
92
93
  SIGNATURE: 64,
93
94
  };
94
95
  /**
@@ -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 \"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
+ {"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 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,10 +1,11 @@
1
1
  import { Keypair, PublicKey } from "@solana/web3.js";
2
- import { type OrderbookDecimals } from "../shared/scaling";
2
+ import { type OrderBookPair } from "../domain/orderbook";
3
3
  import type { DepositSource, SubmitOrderRequest, TimeInForce, TriggerType } from "../shared";
4
4
  import { type SubmitRequestOptions } from "./orders";
5
5
  import { OrderSide, type SignedOrder } from "./types";
6
6
  interface OrderFields {
7
7
  nonce?: number;
8
+ salt?: bigint;
8
9
  maker?: PublicKey;
9
10
  market?: PublicKey;
10
11
  baseMint?: PublicKey;
@@ -19,6 +20,7 @@ interface OrderFields {
19
20
  }
20
21
  export interface OrderEnvelope {
21
22
  nonce(value: number): this;
23
+ salt(value: bigint): this;
22
24
  maker(value: PublicKey): this;
23
25
  market(value: PublicKey): this;
24
26
  baseMint(value: PublicKey): this;
@@ -32,15 +34,15 @@ export interface OrderEnvelope {
32
34
  price(value: string): this;
33
35
  size(value: string): this;
34
36
  depositSource(value: DepositSource): this;
35
- applyScaling(decimals: OrderbookDecimals): this;
36
37
  payload(): Omit<SignedOrder, "signature">;
37
- sign(keypair: Keypair, orderbookId: string): SubmitOrderRequest;
38
- finalize(signatureBase58: string, orderbookId: string): SubmitOrderRequest;
38
+ sign(keypair: Keypair, orderbook: OrderBookPair): SubmitOrderRequest;
39
+ finalize(signatureBase58: string, orderbook: OrderBookPair): SubmitOrderRequest;
39
40
  }
40
41
  declare class BaseEnvelope {
41
42
  protected readonly fields: OrderFields;
42
43
  constructor(fields?: OrderFields);
43
44
  nonce(value: number): this;
45
+ salt(value: bigint): this;
44
46
  maker(value: PublicKey): this;
45
47
  market(value: PublicKey): this;
46
48
  baseMint(value: PublicKey): this;
@@ -54,9 +56,9 @@ declare class BaseEnvelope {
54
56
  price(value: string): this;
55
57
  size(value: string): this;
56
58
  depositSource(value: DepositSource): this;
57
- applyScaling(decimals: OrderbookDecimals): this;
58
59
  payload(): Omit<SignedOrder, "signature">;
59
60
  fieldsNonce(): number | undefined;
61
+ fieldsSalt(): bigint | undefined;
60
62
  fieldsMaker(): PublicKey | undefined;
61
63
  fieldsMarket(): PublicKey | undefined;
62
64
  fieldsBaseMint(): PublicKey | undefined;
@@ -66,12 +68,20 @@ declare class BaseEnvelope {
66
68
  fieldsAmountOut(): bigint | undefined;
67
69
  fieldsExpiration(): bigint;
68
70
  fieldsDepositSource(): DepositSource | undefined;
71
+ /**
72
+ * Auto-scale price/size to raw amounts if the user provided human-readable
73
+ * strings but not pre-computed amounts. Skips if amounts are already set.
74
+ */
75
+ protected autoScale(orderbook: OrderBookPair): void;
69
76
  protected finalizeWithHexSignature(signatureHex: string, orderbookId: string, options?: SubmitRequestOptions): SubmitOrderRequest;
70
77
  }
71
78
  export declare class LimitOrderEnvelope extends BaseEnvelope implements OrderEnvelope {
79
+ private timeInForceValue?;
72
80
  static new(): LimitOrderEnvelope;
73
- sign(keypair: Keypair, orderbookId: string): SubmitOrderRequest;
74
- finalize(signatureBase58: string, orderbookId: string): SubmitOrderRequest;
81
+ timeInForce(value: TimeInForce): this;
82
+ fieldsTimeInForce(): TimeInForce | undefined;
83
+ sign(keypair: Keypair, orderbook: OrderBookPair): SubmitOrderRequest;
84
+ finalize(signatureBase58: string, orderbook: OrderBookPair): SubmitOrderRequest;
75
85
  }
76
86
  export declare class TriggerOrderEnvelope extends BaseEnvelope implements OrderEnvelope {
77
87
  private timeInForceValue?;
@@ -90,8 +100,8 @@ export declare class TriggerOrderEnvelope extends BaseEnvelope implements OrderE
90
100
  fieldsTimeInForce(): TimeInForce | undefined;
91
101
  fieldsTriggerPrice(): number | undefined;
92
102
  fieldsTriggerType(): TriggerType | undefined;
93
- sign(keypair: Keypair, orderbookId: string): SubmitOrderRequest;
94
- finalize(signatureBase58: string, orderbookId: string): SubmitOrderRequest;
103
+ sign(keypair: Keypair, orderbook: OrderBookPair): SubmitOrderRequest;
104
+ finalize(signatureBase58: string, orderbook: OrderBookPair): SubmitOrderRequest;
95
105
  private requireTriggerFields;
96
106
  }
97
107
  export declare function signPayload(payload: Omit<SignedOrder, "signature">, keypair: Keypair): string;
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,WAAW,EACZ,MAAM,WAAW,CAAC;AAEnB,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AA+BD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,GAAG,IAAI,IAAI,CAAC;IACZ,GAAG,IAAI,IAAI,CAAC;IACZ,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChD,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAChE,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAAC;CAC5E;AAED,cAAM,YAAY;IAChB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAE3B,MAAM,CAAC,EAAE,WAAW;IAIhC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK7B,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK9B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKhC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKjC,GAAG,IAAI,IAAI;IAKX,GAAG,IAAI,IAAI;IAKX,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKzC,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAW/C,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;IAIzC,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,IAAI,SAAS,GAAG,SAAS;IAIpC,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC,cAAc,IAAI,SAAS,GAAG,SAAS;IAIvC,eAAe,IAAI,SAAS,GAAG,SAAS;IAIxC,UAAU,IAAI,SAAS,GAAG,SAAS;IAInC,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,gBAAgB,IAAI,MAAM;IAI1B,mBAAmB,IAAI,aAAa,GAAG,SAAS;IAIhD,SAAS,CAAC,wBAAwB,CAChC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GACjC,kBAAkB;CActB;AAED,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,aAAa;IAC3E,MAAM,CAAC,GAAG,IAAI,kBAAkB;IAIhC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB;IAO/D,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB;CAI3E;AAED,qBAAa,oBAAqB,SAAQ,YAAa,YAAW,aAAa;IAC7E,OAAO,CAAC,gBAAgB,CAAC,CAAc;IACvC,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAC,CAAc;IAEvC,MAAM,CAAC,GAAG,IAAI,oBAAoB;IAIlC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAKrC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKjC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAKrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,GAAG,IAAI,IAAI;IAKX,GAAG,IAAI,IAAI;IAKX,GAAG,IAAI,IAAI;IAKX,GAAG,IAAI,IAAI;IAKX,iBAAiB,IAAI,WAAW,GAAG,SAAS;IAI5C,kBAAkB,IAAI,MAAM,GAAG,SAAS;IAIxC,iBAAiB,IAAI,WAAW,GAAG,SAAS;IAI5C,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB;IAW/D,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB;IAU1E,OAAO,CAAC,oBAAoB;CAQ7B;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EACvC,OAAO,EAAE,OAAO,GACf,MAAM,CAER"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TriggerOrderEnvelope = exports.LimitOrderEnvelope = void 0;
7
7
  exports.signPayload = signPayload;
8
+ const decimal_js_1 = __importDefault(require("decimal.js"));
8
9
  const bs58_1 = __importDefault(require("bs58"));
9
10
  const scaling_1 = require("../shared/scaling");
11
+ const orderbook_1 = require("../domain/orderbook");
10
12
  const error_1 = require("./error");
11
13
  const orders_1 = require("./orders");
12
14
  const types_1 = require("./types");
@@ -34,6 +36,7 @@ function toUnsignedOrder(fields) {
34
36
  throw error_1.ProgramSdkError.missingField("amount_out");
35
37
  return {
36
38
  nonce: fields.nonce,
39
+ salt: fields.salt ?? (0, orders_1.generateSalt)(),
37
40
  maker: fields.maker,
38
41
  market: fields.market,
39
42
  baseMint: fields.baseMint,
@@ -53,6 +56,10 @@ class BaseEnvelope {
53
56
  this.fields.nonce = value;
54
57
  return this;
55
58
  }
59
+ salt(value) {
60
+ this.fields.salt = value;
61
+ return this;
62
+ }
56
63
  maker(value) {
57
64
  this.fields.maker = value;
58
65
  return this;
@@ -105,24 +112,15 @@ class BaseEnvelope {
105
112
  this.fields.depositSource = value;
106
113
  return this;
107
114
  }
108
- applyScaling(decimals) {
109
- if (!this.fields.priceRaw)
110
- throw error_1.ProgramSdkError.missingField("price");
111
- if (!this.fields.sizeRaw)
112
- throw error_1.ProgramSdkError.missingField("size");
113
- if (this.fields.side === undefined)
114
- throw error_1.ProgramSdkError.missingField("side");
115
- const scaled = (0, scaling_1.scalePriceSize)(this.fields.priceRaw, this.fields.sizeRaw, this.fields.side, decimals);
116
- this.fields.amountIn = scaled.amountIn;
117
- this.fields.amountOut = scaled.amountOut;
118
- return this;
119
- }
120
115
  payload() {
121
116
  return toUnsignedOrder(this.fields);
122
117
  }
123
118
  fieldsNonce() {
124
119
  return this.fields.nonce;
125
120
  }
121
+ fieldsSalt() {
122
+ return this.fields.salt;
123
+ }
126
124
  fieldsMaker() {
127
125
  return this.fields.maker;
128
126
  }
@@ -150,6 +148,27 @@ class BaseEnvelope {
150
148
  fieldsDepositSource() {
151
149
  return this.fields.depositSource;
152
150
  }
151
+ /**
152
+ * Auto-scale price/size to raw amounts if the user provided human-readable
153
+ * strings but not pre-computed amounts. Skips if amounts are already set.
154
+ */
155
+ autoScale(orderbook) {
156
+ if (this.fields.amountIn !== undefined || this.fields.amountOut !== undefined) {
157
+ return;
158
+ }
159
+ if (!this.fields.priceRaw)
160
+ throw error_1.ProgramSdkError.missingField("price");
161
+ if (!this.fields.sizeRaw)
162
+ throw error_1.ProgramSdkError.missingField("size");
163
+ if (this.fields.side === undefined)
164
+ throw error_1.ProgramSdkError.missingField("side");
165
+ const decimals = (0, orderbook_1.orderbookDecimals)(orderbook);
166
+ const price = new decimal_js_1.default(this.fields.priceRaw);
167
+ const alignedPrice = (0, scaling_1.alignPriceToTick)(price, decimals);
168
+ const scaled = (0, scaling_1.scalePriceSize)(alignedPrice, this.fields.sizeRaw, this.fields.side, decimals);
169
+ this.fields.amountIn = scaled.amountIn;
170
+ this.fields.amountOut = scaled.amountOut;
171
+ }
153
172
  finalizeWithHexSignature(signatureHex, orderbookId, options = {}) {
154
173
  const unsigned = toUnsignedOrder(this.fields);
155
174
  return (0, orders_1.toSubmitRequest)({
@@ -162,18 +181,31 @@ class BaseEnvelope {
162
181
  }
163
182
  }
164
183
  class LimitOrderEnvelope extends BaseEnvelope {
184
+ timeInForceValue;
165
185
  static new() {
166
186
  return new LimitOrderEnvelope();
167
187
  }
168
- sign(keypair, orderbookId) {
188
+ timeInForce(value) {
189
+ this.timeInForceValue = value;
190
+ return this;
191
+ }
192
+ fieldsTimeInForce() {
193
+ return this.timeInForceValue;
194
+ }
195
+ sign(keypair, orderbook) {
196
+ this.autoScale(orderbook);
169
197
  const signed = (0, orders_1.signOrderFull)(this.payload(), keypair);
170
- return (0, orders_1.toSubmitRequest)(signed, orderbookId, {
198
+ return (0, orders_1.toSubmitRequest)(signed, orderbook.orderbookId, {
199
+ timeInForce: this.timeInForceValue,
171
200
  depositSource: this.fieldsDepositSource(),
172
201
  });
173
202
  }
174
- finalize(signatureBase58, orderbookId) {
203
+ finalize(signatureBase58, orderbook) {
204
+ this.autoScale(orderbook);
175
205
  const signatureHex = Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex");
176
- return this.finalizeWithHexSignature(signatureHex, orderbookId);
206
+ return this.finalizeWithHexSignature(signatureHex, orderbook.orderbookId, {
207
+ timeInForce: this.timeInForceValue,
208
+ });
177
209
  }
178
210
  }
179
211
  exports.LimitOrderEnvelope = LimitOrderEnvelope;
@@ -231,20 +263,22 @@ class TriggerOrderEnvelope extends BaseEnvelope {
231
263
  fieldsTriggerType() {
232
264
  return this.triggerTypeValue;
233
265
  }
234
- sign(keypair, orderbookId) {
266
+ sign(keypair, orderbook) {
235
267
  this.requireTriggerFields();
268
+ this.autoScale(orderbook);
236
269
  const signed = (0, orders_1.signOrderFull)(this.payload(), keypair);
237
- return (0, orders_1.toSubmitRequest)(signed, orderbookId, {
270
+ return (0, orders_1.toSubmitRequest)(signed, orderbook.orderbookId, {
238
271
  timeInForce: this.timeInForceValue,
239
272
  triggerPrice: this.triggerPriceValue,
240
273
  triggerType: this.triggerTypeValue,
241
274
  depositSource: this.fieldsDepositSource(),
242
275
  });
243
276
  }
244
- finalize(signatureBase58, orderbookId) {
277
+ finalize(signatureBase58, orderbook) {
245
278
  this.requireTriggerFields();
279
+ this.autoScale(orderbook);
246
280
  const signatureHex = Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex");
247
- return this.finalizeWithHexSignature(signatureHex, orderbookId, {
281
+ return this.finalizeWithHexSignature(signatureHex, orderbook.orderbookId, {
248
282
  timeInForce: this.timeInForceValue,
249
283
  triggerPrice: this.triggerPriceValue,
250
284
  triggerType: this.triggerTypeValue,
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"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","sourcesContent":["import { Keypair, PublicKey } from \"@solana/web3.js\";\nimport bs58 from \"bs58\";\nimport { scalePriceSize, type OrderbookDecimals } from \"../shared/scaling\";\nimport type {\n DepositSource,\n SubmitOrderRequest,\n TimeInForce,\n TriggerType,\n} from \"../shared\";\nimport { ProgramSdkError } from \"./error\";\nimport {\n signOrder,\n signOrderFull,\n toSubmitRequest,\n type SubmitRequestOptions,\n} from \"./orders\";\nimport { OrderSide, type SignedOrder } from \"./types\";\n\ninterface OrderFields {\n nonce?: number;\n maker?: PublicKey;\n market?: PublicKey;\n baseMint?: PublicKey;\n quoteMint?: PublicKey;\n side?: OrderSide;\n amountIn?: bigint;\n amountOut?: bigint;\n expiration: bigint;\n priceRaw?: string;\n sizeRaw?: string;\n depositSource?: DepositSource;\n}\n\nfunction defaultFields(): OrderFields {\n return {\n expiration: 0n,\n };\n}\n\nfunction toUnsignedOrder(fields: OrderFields): Omit<SignedOrder, \"signature\"> {\n if (fields.nonce === undefined) throw ProgramSdkError.missingField(\"nonce\");\n if (!fields.maker) throw ProgramSdkError.missingField(\"maker\");\n if (!fields.market) throw ProgramSdkError.missingField(\"market\");\n if (!fields.baseMint) throw ProgramSdkError.missingField(\"base_mint\");\n if (!fields.quoteMint) throw ProgramSdkError.missingField(\"quote_mint\");\n if (fields.side === undefined) throw ProgramSdkError.missingField(\"side\");\n if (fields.amountIn === undefined) throw ProgramSdkError.missingField(\"amount_in\");\n if (fields.amountOut === undefined) throw ProgramSdkError.missingField(\"amount_out\");\n\n return {\n nonce: fields.nonce,\n maker: fields.maker,\n market: fields.market,\n baseMint: fields.baseMint,\n quoteMint: fields.quoteMint,\n side: fields.side,\n amountIn: fields.amountIn,\n amountOut: fields.amountOut,\n expiration: fields.expiration,\n };\n}\n\nexport interface OrderEnvelope {\n nonce(value: number): this;\n maker(value: PublicKey): this;\n market(value: PublicKey): this;\n baseMint(value: PublicKey): this;\n quoteMint(value: PublicKey): this;\n bid(): this;\n ask(): this;\n side(value: OrderSide): this;\n amountIn(value: bigint): this;\n amountOut(value: bigint): this;\n expiration(value: bigint): this;\n price(value: string): this;\n size(value: string): this;\n depositSource(value: DepositSource): this;\n applyScaling(decimals: OrderbookDecimals): this;\n payload(): Omit<SignedOrder, \"signature\">;\n sign(keypair: Keypair, orderbookId: string): SubmitOrderRequest;\n finalize(signatureBase58: string, orderbookId: string): SubmitOrderRequest;\n}\n\nclass BaseEnvelope {\n protected readonly fields: OrderFields;\n\n constructor(fields?: OrderFields) {\n this.fields = fields ? { ...fields } : defaultFields();\n }\n\n nonce(value: number): this {\n this.fields.nonce = value;\n return this;\n }\n\n maker(value: PublicKey): this {\n this.fields.maker = value;\n return this;\n }\n\n market(value: PublicKey): this {\n this.fields.market = value;\n return this;\n }\n\n baseMint(value: PublicKey): this {\n this.fields.baseMint = value;\n return this;\n }\n\n quoteMint(value: PublicKey): this {\n this.fields.quoteMint = value;\n return this;\n }\n\n bid(): this {\n this.fields.side = OrderSide.BID;\n return this;\n }\n\n ask(): this {\n this.fields.side = OrderSide.ASK;\n return this;\n }\n\n side(value: OrderSide): this {\n this.fields.side = value;\n return this;\n }\n\n amountIn(value: bigint): this {\n this.fields.amountIn = value;\n return this;\n }\n\n amountOut(value: bigint): this {\n this.fields.amountOut = value;\n return this;\n }\n\n expiration(value: bigint): this {\n this.fields.expiration = value;\n return this;\n }\n\n price(value: string): this {\n this.fields.priceRaw = value;\n return this;\n }\n\n size(value: string): this {\n this.fields.sizeRaw = value;\n return this;\n }\n\n depositSource(value: DepositSource): this {\n this.fields.depositSource = value;\n return this;\n }\n\n applyScaling(decimals: OrderbookDecimals): this {\n if (!this.fields.priceRaw) throw ProgramSdkError.missingField(\"price\");\n if (!this.fields.sizeRaw) throw ProgramSdkError.missingField(\"size\");\n if (this.fields.side === undefined) throw ProgramSdkError.missingField(\"side\");\n\n const scaled = scalePriceSize(this.fields.priceRaw, this.fields.sizeRaw, this.fields.side, decimals);\n this.fields.amountIn = scaled.amountIn;\n this.fields.amountOut = scaled.amountOut;\n return this;\n }\n\n payload(): Omit<SignedOrder, \"signature\"> {\n return toUnsignedOrder(this.fields);\n }\n\n fieldsNonce(): number | undefined {\n return this.fields.nonce;\n }\n\n fieldsMaker(): PublicKey | undefined {\n return this.fields.maker;\n }\n\n fieldsMarket(): PublicKey | undefined {\n return this.fields.market;\n }\n\n fieldsBaseMint(): PublicKey | undefined {\n return this.fields.baseMint;\n }\n\n fieldsQuoteMint(): PublicKey | undefined {\n return this.fields.quoteMint;\n }\n\n fieldsSide(): OrderSide | undefined {\n return this.fields.side;\n }\n\n fieldsAmountIn(): bigint | undefined {\n return this.fields.amountIn;\n }\n\n fieldsAmountOut(): bigint | undefined {\n return this.fields.amountOut;\n }\n\n fieldsExpiration(): bigint {\n return this.fields.expiration;\n }\n\n fieldsDepositSource(): DepositSource | undefined {\n return this.fields.depositSource;\n }\n\n protected finalizeWithHexSignature(\n signatureHex: string,\n orderbookId: string,\n options: SubmitRequestOptions = {}\n ): SubmitOrderRequest {\n const unsigned = toUnsignedOrder(this.fields);\n return toSubmitRequest(\n {\n ...unsigned,\n signature: Buffer.from(signatureHex, \"hex\"),\n },\n orderbookId,\n {\n ...options,\n depositSource: this.fields.depositSource,\n }\n );\n }\n}\n\nexport class LimitOrderEnvelope extends BaseEnvelope implements OrderEnvelope {\n static new(): LimitOrderEnvelope {\n return new LimitOrderEnvelope();\n }\n\n sign(keypair: Keypair, orderbookId: string): SubmitOrderRequest {\n const signed = signOrderFull(this.payload(), keypair);\n return toSubmitRequest(signed, orderbookId, {\n depositSource: this.fieldsDepositSource(),\n });\n }\n\n finalize(signatureBase58: string, orderbookId: string): SubmitOrderRequest {\n const signatureHex = Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\");\n return this.finalizeWithHexSignature(signatureHex, orderbookId);\n }\n}\n\nexport class TriggerOrderEnvelope extends BaseEnvelope implements OrderEnvelope {\n private timeInForceValue?: TimeInForce;\n private triggerPriceValue?: number;\n private triggerTypeValue?: TriggerType;\n\n static new(): TriggerOrderEnvelope {\n return new TriggerOrderEnvelope();\n }\n\n timeInForce(value: TimeInForce): this {\n this.timeInForceValue = value;\n return this;\n }\n\n triggerPrice(value: number): this {\n this.triggerPriceValue = value;\n return this;\n }\n\n triggerType(value: TriggerType): this {\n this.triggerTypeValue = value;\n return this;\n }\n\n takeProfit(price: number): this {\n this.triggerPriceValue = price;\n this.triggerTypeValue = \"TP\" as TriggerType;\n return this;\n }\n\n stopLoss(price: number): this {\n this.triggerPriceValue = price;\n this.triggerTypeValue = \"SL\" as TriggerType;\n return this;\n }\n\n gtc(): this {\n this.timeInForceValue = \"GTC\" as TimeInForce;\n return this;\n }\n\n ioc(): this {\n this.timeInForceValue = \"IOC\" as TimeInForce;\n return this;\n }\n\n fok(): this {\n this.timeInForceValue = \"FOK\" as TimeInForce;\n return this;\n }\n\n alo(): this {\n this.timeInForceValue = \"ALO\" as TimeInForce;\n return this;\n }\n\n fieldsTimeInForce(): TimeInForce | undefined {\n return this.timeInForceValue;\n }\n\n fieldsTriggerPrice(): number | undefined {\n return this.triggerPriceValue;\n }\n\n fieldsTriggerType(): TriggerType | undefined {\n return this.triggerTypeValue;\n }\n\n sign(keypair: Keypair, orderbookId: string): SubmitOrderRequest {\n this.requireTriggerFields();\n const signed = signOrderFull(this.payload(), keypair);\n return toSubmitRequest(signed, orderbookId, {\n timeInForce: this.timeInForceValue,\n triggerPrice: this.triggerPriceValue,\n triggerType: this.triggerTypeValue,\n depositSource: this.fieldsDepositSource(),\n });\n }\n\n finalize(signatureBase58: string, orderbookId: string): SubmitOrderRequest {\n this.requireTriggerFields();\n const signatureHex = Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\");\n return this.finalizeWithHexSignature(signatureHex, orderbookId, {\n timeInForce: this.timeInForceValue,\n triggerPrice: this.triggerPriceValue,\n triggerType: this.triggerTypeValue,\n });\n }\n\n private requireTriggerFields(): void {\n if (this.triggerPriceValue === undefined) {\n throw ProgramSdkError.missingField(\"trigger_price\");\n }\n if (!this.triggerTypeValue) {\n throw ProgramSdkError.missingField(\"trigger_type\");\n }\n }\n}\n\nexport function signPayload(\n payload: Omit<SignedOrder, \"signature\">,\n keypair: Keypair\n): string {\n return signOrder({ ...payload, signature: Buffer.alloc(64) }, keypair).toString(\"hex\");\n}\n"]}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from \"decimal.js\";\nimport { Keypair, PublicKey } from \"@solana/web3.js\";\nimport bs58 from \"bs58\";\nimport { alignPriceToTick, scalePriceSize } from \"../shared/scaling\";\nimport { orderbookDecimals, type OrderBookPair } from \"../domain/orderbook\";\nimport type {\n DepositSource,\n SubmitOrderRequest,\n TimeInForce,\n TriggerType,\n} from \"../shared\";\nimport { ProgramSdkError } from \"./error\";\nimport {\n generateSalt,\n signOrder,\n signOrderFull,\n toSubmitRequest,\n type SubmitRequestOptions,\n} from \"./orders\";\nimport { OrderSide, type SignedOrder } from \"./types\";\n\ninterface OrderFields {\n nonce?: number;\n salt?: bigint;\n maker?: PublicKey;\n market?: PublicKey;\n baseMint?: PublicKey;\n quoteMint?: PublicKey;\n side?: OrderSide;\n amountIn?: bigint;\n amountOut?: bigint;\n expiration: bigint;\n priceRaw?: string;\n sizeRaw?: string;\n depositSource?: DepositSource;\n}\n\nfunction defaultFields(): OrderFields {\n return {\n expiration: 0n,\n };\n}\n\nfunction toUnsignedOrder(fields: OrderFields): Omit<SignedOrder, \"signature\"> {\n if (fields.nonce === undefined) throw ProgramSdkError.missingField(\"nonce\");\n if (!fields.maker) throw ProgramSdkError.missingField(\"maker\");\n if (!fields.market) throw ProgramSdkError.missingField(\"market\");\n if (!fields.baseMint) throw ProgramSdkError.missingField(\"base_mint\");\n if (!fields.quoteMint) throw ProgramSdkError.missingField(\"quote_mint\");\n if (fields.side === undefined) throw ProgramSdkError.missingField(\"side\");\n if (fields.amountIn === undefined) throw ProgramSdkError.missingField(\"amount_in\");\n if (fields.amountOut === undefined) throw ProgramSdkError.missingField(\"amount_out\");\n\n return {\n nonce: fields.nonce,\n salt: fields.salt ?? generateSalt(),\n maker: fields.maker,\n market: fields.market,\n baseMint: fields.baseMint,\n quoteMint: fields.quoteMint,\n side: fields.side,\n amountIn: fields.amountIn,\n amountOut: fields.amountOut,\n expiration: fields.expiration,\n };\n}\n\nexport interface OrderEnvelope {\n nonce(value: number): this;\n salt(value: bigint): this;\n maker(value: PublicKey): this;\n market(value: PublicKey): this;\n baseMint(value: PublicKey): this;\n quoteMint(value: PublicKey): this;\n bid(): this;\n ask(): this;\n side(value: OrderSide): this;\n amountIn(value: bigint): this;\n amountOut(value: bigint): this;\n expiration(value: bigint): this;\n price(value: string): this;\n size(value: string): this;\n depositSource(value: DepositSource): this;\n payload(): Omit<SignedOrder, \"signature\">;\n sign(keypair: Keypair, orderbook: OrderBookPair): SubmitOrderRequest;\n finalize(signatureBase58: string, orderbook: OrderBookPair): SubmitOrderRequest;\n}\n\nclass BaseEnvelope {\n protected readonly fields: OrderFields;\n\n constructor(fields?: OrderFields) {\n this.fields = fields ? { ...fields } : defaultFields();\n }\n\n nonce(value: number): this {\n this.fields.nonce = value;\n return this;\n }\n\n salt(value: bigint): this {\n this.fields.salt = value;\n return this;\n }\n\n maker(value: PublicKey): this {\n this.fields.maker = value;\n return this;\n }\n\n market(value: PublicKey): this {\n this.fields.market = value;\n return this;\n }\n\n baseMint(value: PublicKey): this {\n this.fields.baseMint = value;\n return this;\n }\n\n quoteMint(value: PublicKey): this {\n this.fields.quoteMint = value;\n return this;\n }\n\n bid(): this {\n this.fields.side = OrderSide.BID;\n return this;\n }\n\n ask(): this {\n this.fields.side = OrderSide.ASK;\n return this;\n }\n\n side(value: OrderSide): this {\n this.fields.side = value;\n return this;\n }\n\n amountIn(value: bigint): this {\n this.fields.amountIn = value;\n return this;\n }\n\n amountOut(value: bigint): this {\n this.fields.amountOut = value;\n return this;\n }\n\n expiration(value: bigint): this {\n this.fields.expiration = value;\n return this;\n }\n\n price(value: string): this {\n this.fields.priceRaw = value;\n return this;\n }\n\n size(value: string): this {\n this.fields.sizeRaw = value;\n return this;\n }\n\n depositSource(value: DepositSource): this {\n this.fields.depositSource = value;\n return this;\n }\n\n payload(): Omit<SignedOrder, \"signature\"> {\n return toUnsignedOrder(this.fields);\n }\n\n fieldsNonce(): number | undefined {\n return this.fields.nonce;\n }\n\n fieldsSalt(): bigint | undefined {\n return this.fields.salt;\n }\n\n fieldsMaker(): PublicKey | undefined {\n return this.fields.maker;\n }\n\n fieldsMarket(): PublicKey | undefined {\n return this.fields.market;\n }\n\n fieldsBaseMint(): PublicKey | undefined {\n return this.fields.baseMint;\n }\n\n fieldsQuoteMint(): PublicKey | undefined {\n return this.fields.quoteMint;\n }\n\n fieldsSide(): OrderSide | undefined {\n return this.fields.side;\n }\n\n fieldsAmountIn(): bigint | undefined {\n return this.fields.amountIn;\n }\n\n fieldsAmountOut(): bigint | undefined {\n return this.fields.amountOut;\n }\n\n fieldsExpiration(): bigint {\n return this.fields.expiration;\n }\n\n fieldsDepositSource(): DepositSource | undefined {\n return this.fields.depositSource;\n }\n\n /**\n * Auto-scale price/size to raw amounts if the user provided human-readable\n * strings but not pre-computed amounts. Skips if amounts are already set.\n */\n protected autoScale(orderbook: OrderBookPair): void {\n if (this.fields.amountIn !== undefined || this.fields.amountOut !== undefined) {\n return;\n }\n\n if (!this.fields.priceRaw) throw ProgramSdkError.missingField(\"price\");\n if (!this.fields.sizeRaw) throw ProgramSdkError.missingField(\"size\");\n if (this.fields.side === undefined) throw ProgramSdkError.missingField(\"side\");\n\n const decimals = orderbookDecimals(orderbook);\n const price = new Decimal(this.fields.priceRaw);\n const alignedPrice = alignPriceToTick(price, decimals);\n const scaled = scalePriceSize(alignedPrice, this.fields.sizeRaw, this.fields.side, decimals);\n this.fields.amountIn = scaled.amountIn;\n this.fields.amountOut = scaled.amountOut;\n }\n\n protected finalizeWithHexSignature(\n signatureHex: string,\n orderbookId: string,\n options: SubmitRequestOptions = {}\n ): SubmitOrderRequest {\n const unsigned = toUnsignedOrder(this.fields);\n return toSubmitRequest(\n {\n ...unsigned,\n signature: Buffer.from(signatureHex, \"hex\"),\n },\n orderbookId,\n {\n ...options,\n depositSource: this.fields.depositSource,\n }\n );\n }\n}\n\nexport class LimitOrderEnvelope extends BaseEnvelope implements OrderEnvelope {\n private timeInForceValue?: TimeInForce;\n\n static new(): LimitOrderEnvelope {\n return new LimitOrderEnvelope();\n }\n\n timeInForce(value: TimeInForce): this {\n this.timeInForceValue = value;\n return this;\n }\n\n fieldsTimeInForce(): TimeInForce | undefined {\n return this.timeInForceValue;\n }\n\n sign(keypair: Keypair, orderbook: OrderBookPair): SubmitOrderRequest {\n this.autoScale(orderbook);\n const signed = signOrderFull(this.payload(), keypair);\n return toSubmitRequest(signed, orderbook.orderbookId, {\n timeInForce: this.timeInForceValue,\n depositSource: this.fieldsDepositSource(),\n });\n }\n\n finalize(signatureBase58: string, orderbook: OrderBookPair): SubmitOrderRequest {\n this.autoScale(orderbook);\n const signatureHex = Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\");\n return this.finalizeWithHexSignature(signatureHex, orderbook.orderbookId, {\n timeInForce: this.timeInForceValue,\n });\n }\n}\n\nexport class TriggerOrderEnvelope extends BaseEnvelope implements OrderEnvelope {\n private timeInForceValue?: TimeInForce;\n private triggerPriceValue?: number;\n private triggerTypeValue?: TriggerType;\n\n static new(): TriggerOrderEnvelope {\n return new TriggerOrderEnvelope();\n }\n\n timeInForce(value: TimeInForce): this {\n this.timeInForceValue = value;\n return this;\n }\n\n triggerPrice(value: number): this {\n this.triggerPriceValue = value;\n return this;\n }\n\n triggerType(value: TriggerType): this {\n this.triggerTypeValue = value;\n return this;\n }\n\n takeProfit(price: number): this {\n this.triggerPriceValue = price;\n this.triggerTypeValue = \"TP\" as TriggerType;\n return this;\n }\n\n stopLoss(price: number): this {\n this.triggerPriceValue = price;\n this.triggerTypeValue = \"SL\" as TriggerType;\n return this;\n }\n\n gtc(): this {\n this.timeInForceValue = \"GTC\" as TimeInForce;\n return this;\n }\n\n ioc(): this {\n this.timeInForceValue = \"IOC\" as TimeInForce;\n return this;\n }\n\n fok(): this {\n this.timeInForceValue = \"FOK\" as TimeInForce;\n return this;\n }\n\n alo(): this {\n this.timeInForceValue = \"ALO\" as TimeInForce;\n return this;\n }\n\n fieldsTimeInForce(): TimeInForce | undefined {\n return this.timeInForceValue;\n }\n\n fieldsTriggerPrice(): number | undefined {\n return this.triggerPriceValue;\n }\n\n fieldsTriggerType(): TriggerType | undefined {\n return this.triggerTypeValue;\n }\n\n sign(keypair: Keypair, orderbook: OrderBookPair): SubmitOrderRequest {\n this.requireTriggerFields();\n this.autoScale(orderbook);\n const signed = signOrderFull(this.payload(), keypair);\n return toSubmitRequest(signed, orderbook.orderbookId, {\n timeInForce: this.timeInForceValue,\n triggerPrice: this.triggerPriceValue,\n triggerType: this.triggerTypeValue,\n depositSource: this.fieldsDepositSource(),\n });\n }\n\n finalize(signatureBase58: string, orderbook: OrderBookPair): SubmitOrderRequest {\n this.requireTriggerFields();\n this.autoScale(orderbook);\n const signatureHex = Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\");\n return this.finalizeWithHexSignature(signatureHex, orderbook.orderbookId, {\n timeInForce: this.timeInForceValue,\n triggerPrice: this.triggerPriceValue,\n triggerType: this.triggerTypeValue,\n });\n }\n\n private requireTriggerFields(): void {\n if (this.triggerPriceValue === undefined) {\n throw ProgramSdkError.missingField(\"trigger_price\");\n }\n if (!this.triggerTypeValue) {\n throw ProgramSdkError.missingField(\"trigger_type\");\n }\n }\n}\n\nexport function signPayload(\n payload: Omit<SignedOrder, \"signature\">,\n keypair: Keypair\n): string {\n return signOrder({ ...payload, signature: Buffer.alloc(64) }, keypair).toString(\"hex\");\n}\n"]}
@@ -5,12 +5,12 @@ export { LimitOrderEnvelope, TriggerOrderEnvelope, type OrderEnvelope } from "./
5
5
  export { ProgramSdkError, ProgramSdkError as SdkError } from "./error";
6
6
  export type { ProgramResult, ProgramResult as SdkResult } from "./error";
7
7
  export { MarketStatus, OrderSide, } from "./types";
8
- export type { Exchange, GlobalDepositToken, Market, Position, OrderStatus, UserNonce, Orderbook, SignedOrder, OrderPayload, Order, InitializeParams, CreateMarketParams, OutcomeMetadata, AddDepositMintParams, MintCompleteSetParams, MergeCompleteSetParams, CancelOrderParams, IncrementNonceParams, SettleMarketParams, RedeemWinningsParams, SetPausedParams, SetOperatorParams, WithdrawFromPositionParams, ActivateMarketParams, MatchOrdersMultiParams, SetAuthorityParams, CreateOrderbookParams, WhitelistDepositTokenParams, DepositToGlobalParams, GlobalToMarketDepositParams, InitPositionTokensParams, ExtendPositionTokensParams, MakerFill, DepositAndSwapParams, BuildResult, InitializeAccounts, CreateMarketAccounts, AddDepositMintAccounts, MintCompleteSetAccounts, MergeCompleteSetAccounts, CancelOrderAccounts, IncrementNonceAccounts, SettleMarketAccounts, RedeemWinningsAccounts, ActivateMarketAccounts, MatchOrdersMultiAccounts, BidOrderParams, AskOrderParams, } from "./types";
8
+ export type { Exchange, GlobalDepositToken, Market, Position, OrderStatus, UserNonce, Orderbook, SignedOrder, OrderPayload, Order, InitializeParams, CreateMarketParams, OutcomeMetadata, AddDepositMintParams, MintCompleteSetParams, MergeCompleteSetParams, CancelOrderParams, IncrementNonceParams, SettleMarketParams, RedeemWinningsParams, SetPausedParams, SetOperatorParams, WithdrawFromPositionParams, ActivateMarketParams, MatchOrdersMultiParams, SetAuthorityParams, CreateOrderbookParams, WhitelistDepositTokenParams, DepositToGlobalParams, GlobalToMarketDepositParams, InitPositionTokensParams, ExtendPositionTokensParams, MakerFill, DepositAndSwapParams, WithdrawFromGlobalParams, BuildResult, InitializeAccounts, CreateMarketAccounts, AddDepositMintAccounts, MintCompleteSetAccounts, MergeCompleteSetAccounts, CancelOrderAccounts, IncrementNonceAccounts, SettleMarketAccounts, RedeemWinningsAccounts, ActivateMarketAccounts, MatchOrdersMultiAccounts, BidOrderParams, AskOrderParams, } from "./types";
9
9
  export { PROGRAM_ID, ALT_PROGRAM_ID, TOKEN_PROGRAM_ID, TOKEN_2022_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID, SYSTEM_PROGRAM_ID, RENT_SYSVAR_ID, INSTRUCTION, DISCRIMINATOR, ACCOUNT_SIZE, ORDER_SIZE, MAX_OUTCOMES, MIN_OUTCOMES, MAX_MAKERS, SEEDS, } from "./constants";
10
10
  export { toLeBytes, fromLeBytes, toBeBytes, fromBeBytes, toU8, toU32Le, toU64Le, toI64Le, fromI64Le, keccak256, deriveConditionId, getAssociatedTokenAddress, getConditionalTokenAta, getDepositTokenAta, serializeString, deserializeString, validateOutcomes, validateOutcomeIndex, validate32Bytes, } from "./utils";
11
11
  export { getExchangePda, getMarketPda, getVaultPda, getMintAuthorityPda, getConditionalMintPda, getAllConditionalMintPdas, getOrderStatusPda, getUserNoncePda, getPositionPda, getOrderbookPda, getAltPda, getGlobalDepositTokenPda, getUserGlobalDepositPda, getPositionAltPda, pda, } from "./pda";
12
12
  export { deserializeExchange, deserializeMarket, deserializePosition, deserializeOrderStatus, deserializeUserNonce, deserializeOrderbook, deserializeGlobalDepositToken, isExchangeAccount, isMarketAccount, isPositionAccount, isOrderStatusAccount, isUserNonceAccount, isOrderbookAccount, isGlobalDepositTokenAccount, } from "./accounts";
13
- export { buildInitializeIx, buildCreateMarketIx, buildAddDepositMintIx, buildMintCompleteSetIx, buildMergeCompleteSetIx, buildCancelOrderIx, buildIncrementNonceIx, buildSettleMarketIx, buildRedeemWinningsIx, buildSetPausedIx, buildSetOperatorIx, buildWithdrawFromPositionIx, buildActivateMarketIx, buildMatchOrdersMultiIx, buildSetAuthorityIx, buildCreateOrderbookIx, buildWhitelistDepositTokenIx, buildDepositToGlobalIx, buildGlobalToMarketDepositIx, buildInitPositionTokensIx, buildExtendPositionTokensIx, buildDepositAndSwapIx, } from "./instructions";
14
- export { hashOrder, hashOrderHex, getOrderMessage, signOrder, signOrderFull, verifyOrderSignature, serializeSignedOrder, deserializeSignedOrder, serializeOrder, deserializeOrder, signedOrderToOrder, createBidOrder, createAskOrder, createSignedBidOrder, createSignedAskOrder, isOrderExpired, ordersCanCross, calculateTakerFill, signatureHex, isSigned, applySignature, orderToSigned, deriveOrderbookId, toSubmitRequest, cancelOrderMessage, signCancelOrder, cancelTriggerOrderMessage, signCancelTriggerOrder, cancelAllMessage, generateCancelAllSalt, signCancelAll, is_order_expired, orders_can_cross, calculate_taker_fill, cancel_order_message, cancel_trigger_order_message, cancel_all_message, generate_cancel_all_salt, derive_condition_id, apply_signature, order_to_signed, } from "./orders";
13
+ export { buildInitializeIx, buildCreateMarketIx, buildAddDepositMintIx, buildMintCompleteSetIx, buildMergeCompleteSetIx, buildCancelOrderIx, buildIncrementNonceIx, buildSettleMarketIx, buildRedeemWinningsIx, buildSetPausedIx, buildSetOperatorIx, buildWithdrawFromPositionIx, buildActivateMarketIx, buildMatchOrdersMultiIx, buildSetAuthorityIx, buildCreateOrderbookIx, buildWhitelistDepositTokenIx, buildDepositToGlobalIx, buildGlobalToMarketDepositIx, buildInitPositionTokensIx, buildExtendPositionTokensIx, buildDepositAndSwapIx, buildWithdrawFromGlobalIx, buildInitializeTx, buildCreateMarketTx, buildAddDepositMintTx, buildMintCompleteSetTx, buildMergeCompleteSetTx, buildCancelOrderTx, buildIncrementNonceTx, buildSettleMarketTx, buildRedeemWinningsTx, buildSetPausedTx, buildSetOperatorTx, buildWithdrawFromPositionTx, buildActivateMarketTx, buildMatchOrdersMultiTx, buildSetAuthorityTx, buildCreateOrderbookTx, buildWhitelistDepositTokenTx, buildDepositToGlobalTx, buildGlobalToMarketDepositTx, buildInitPositionTokensTx, buildExtendPositionTokensTx, buildDepositAndSwapTx, buildWithdrawFromGlobalTx, } from "./instructions";
14
+ export { generateSalt, hashOrder, hashOrderHex, getOrderMessage, signOrder, signOrderFull, verifyOrderSignature, serializeSignedOrder, deserializeSignedOrder, serializeOrder, deserializeOrder, signedOrderToOrder, createBidOrder, createAskOrder, createSignedBidOrder, createSignedAskOrder, isOrderExpired, ordersCanCross, calculateTakerFill, signatureHex, isSigned, applySignature, orderToSigned, deriveOrderbookId, toSubmitRequest, cancelOrderMessage, signCancelOrder, cancelTriggerOrderMessage, signCancelTriggerOrder, cancelAllMessage, generateCancelAllSalt, signCancelAll, is_order_expired, orders_can_cross, calculate_taker_fill, cancel_order_message, cancel_trigger_order_message, cancel_all_message, generate_cancel_all_salt, derive_condition_id, apply_signature, order_to_signed, } from "./orders";
15
15
  export { OrderBuilder } from "./builder";
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/program/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/program/index.ts"],"names":[],"mappings":"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"}