@lightconexyz/lightcone-sdk 0.4.1 → 0.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/dist/client.d.ts +5 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +14 -1
- package/dist/client.js.map +1 -1
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -2
- package/dist/context.js.map +1 -1
- package/dist/domain/market/client.d.ts +2 -9
- package/dist/domain/market/client.d.ts.map +1 -1
- package/dist/domain/market/client.js +2 -27
- package/dist/domain/market/client.js.map +1 -1
- package/dist/domain/market/index.d.ts +0 -1
- package/dist/domain/market/index.d.ts.map +1 -1
- package/dist/domain/market/index.js +0 -1
- package/dist/domain/market/index.js.map +1 -1
- package/dist/domain/order/client.d.ts.map +1 -1
- package/dist/domain/order/client.js +2 -1
- package/dist/domain/order/client.js.map +1 -1
- package/dist/domain/order/index.d.ts +12 -1
- package/dist/domain/order/index.d.ts.map +1 -1
- package/dist/domain/order/index.js +14 -5
- package/dist/domain/order/index.js.map +1 -1
- package/dist/domain/order/wire.d.ts +7 -2
- package/dist/domain/order/wire.d.ts.map +1 -1
- package/dist/domain/order/wire.js +18 -0
- package/dist/domain/order/wire.js.map +1 -1
- package/dist/domain/orderbook/client.d.ts.map +1 -1
- package/dist/domain/orderbook/client.js +2 -1
- package/dist/domain/orderbook/client.js.map +1 -1
- package/dist/domain/position/builders.d.ts +19 -19
- package/dist/domain/position/builders.d.ts.map +1 -1
- package/dist/domain/position/builders.js +63 -4
- package/dist/domain/position/builders.js.map +1 -1
- package/dist/domain/position/client.d.ts +2 -5
- package/dist/domain/position/client.d.ts.map +1 -1
- package/dist/domain/position/client.js +3 -61
- package/dist/domain/position/client.js.map +1 -1
- package/dist/error.d.ts +2 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +8 -0
- package/dist/error.js.map +1 -1
- package/dist/prelude.d.ts +2 -2
- package/dist/prelude.d.ts.map +1 -1
- package/dist/prelude.js +3 -4
- package/dist/prelude.js.map +1 -1
- package/dist/privy/index.d.ts.map +1 -1
- package/dist/privy/index.js +3 -2
- package/dist/privy/index.js.map +1 -1
- package/dist/program/accounts.d.ts.map +1 -1
- package/dist/program/accounts.js +10 -9
- package/dist/program/accounts.js.map +1 -1
- package/dist/program/builder.d.ts.map +1 -1
- package/dist/program/builder.js +5 -4
- package/dist/program/builder.js.map +1 -1
- package/dist/program/envelope.d.ts +5 -0
- package/dist/program/envelope.d.ts.map +1 -1
- package/dist/program/envelope.js +39 -0
- package/dist/program/envelope.js.map +1 -1
- package/dist/program/error.d.ts +17 -2
- package/dist/program/error.d.ts.map +1 -1
- package/dist/program/error.js +46 -5
- package/dist/program/error.js.map +1 -1
- package/dist/program/index.d.ts +2 -2
- package/dist/program/index.d.ts.map +1 -1
- package/dist/program/index.js +5 -5
- package/dist/program/index.js.map +1 -1
- package/dist/program/instructions.d.ts +5 -5
- package/dist/program/instructions.d.ts.map +1 -1
- package/dist/program/instructions.js +19 -18
- package/dist/program/instructions.js.map +1 -1
- package/dist/program/orders.d.ts.map +1 -1
- package/dist/program/orders.js +8 -7
- package/dist/program/orders.js.map +1 -1
- package/dist/program/pda.d.ts.map +1 -1
- package/dist/program/pda.js +2 -1
- package/dist/program/pda.js.map +1 -1
- package/dist/program/types.d.ts +4 -4
- package/dist/program/types.d.ts.map +1 -1
- package/dist/program/types.js.map +1 -1
- package/dist/program/utils.d.ts.map +1 -1
- package/dist/program/utils.js +4 -3
- package/dist/program/utils.js.map +1 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +3 -2
- package/dist/rpc.js.map +1 -1
- package/dist/shared/price.d.ts.map +1 -1
- package/dist/shared/price.js +2 -1
- package/dist/shared/price.js.map +1 -1
- package/dist/shared/types.d.ts +2 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +4 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/ws/index.d.ts.map +1 -1
- package/dist/ws/index.js +6 -5
- package/dist/ws/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/domain/market/builders.d.ts +0 -37
- package/dist/domain/market/builders.d.ts.map +0 -1
- package/dist/domain/market/builders.js +0 -114
- package/dist/domain/market/builders.js.map +0 -1
package/dist/privy/index.js
CHANGED
|
@@ -17,16 +17,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.privyOrderFromLimitEnvelope = privyOrderFromLimitEnvelope;
|
|
18
18
|
exports.privyOrderFromTriggerEnvelope = privyOrderFromTriggerEnvelope;
|
|
19
19
|
__exportStar(require("./client"), exports);
|
|
20
|
+
const error_1 = require("../error");
|
|
20
21
|
function requireDefined(value, field) {
|
|
21
22
|
if (value === undefined) {
|
|
22
|
-
throw
|
|
23
|
+
throw error_1.SdkError.validation(`Missing required field: ${field}`);
|
|
23
24
|
}
|
|
24
25
|
return value;
|
|
25
26
|
}
|
|
26
27
|
function bigintToSafeNumber(value, field) {
|
|
27
28
|
const max = BigInt(Number.MAX_SAFE_INTEGER);
|
|
28
29
|
if (value > max || value < -max) {
|
|
29
|
-
throw
|
|
30
|
+
throw error_1.SdkError.validation(`${field} exceeds Number.MAX_SAFE_INTEGER`);
|
|
30
31
|
}
|
|
31
32
|
return Number(value);
|
|
32
33
|
}
|
package/dist/privy/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
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 status: 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 status: string;\n}\n\nexport type SignAndSendOrderResponse = LimitOrderResponse | TriggerOrderResponse;\n\nexport interface LimitCancelResponse {\n status: string;\n order_hash: string;\n remaining: string;\n}\n\nexport interface TriggerCancelResponse {\n status: string;\n trigger_order_id: string;\n}\n\nexport type SignAndCancelOrderResponse = LimitCancelResponse | TriggerCancelResponse;\n\nexport interface SignAndCancelAllResponse {\n status: string;\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"
|
|
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;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAqC5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA8B9E"}
|
package/dist/program/accounts.js
CHANGED
|
@@ -16,6 +16,7 @@ exports.deserializeOrderbook = deserializeOrderbook;
|
|
|
16
16
|
exports.deserializeGlobalDepositToken = deserializeGlobalDepositToken;
|
|
17
17
|
const web3_js_1 = require("@solana/web3.js");
|
|
18
18
|
const constants_1 = require("./constants");
|
|
19
|
+
const error_1 = require("./error");
|
|
19
20
|
const types_1 = require("./types");
|
|
20
21
|
const utils_1 = require("./utils");
|
|
21
22
|
// ============================================================================
|
|
@@ -27,7 +28,7 @@ const utils_1 = require("./utils");
|
|
|
27
28
|
function validateDiscriminator(data, expected, accountType) {
|
|
28
29
|
const actual = data.subarray(0, 8);
|
|
29
30
|
if (!actual.equals(expected)) {
|
|
30
|
-
throw
|
|
31
|
+
throw error_1.ProgramSdkError.invalidDiscriminator(accountType, expected.toString("hex"), actual.toString("hex"));
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
@@ -104,7 +105,7 @@ function isGlobalDepositTokenAccount(data) {
|
|
|
104
105
|
*/
|
|
105
106
|
function deserializeExchange(data) {
|
|
106
107
|
if (data.length < constants_1.ACCOUNT_SIZE.EXCHANGE) {
|
|
107
|
-
throw
|
|
108
|
+
throw error_1.ProgramSdkError.invalidDataLength("Exchange", constants_1.ACCOUNT_SIZE.EXCHANGE, data.length);
|
|
108
109
|
}
|
|
109
110
|
validateDiscriminator(data, constants_1.DISCRIMINATOR.EXCHANGE, "Exchange");
|
|
110
111
|
let offset = 0;
|
|
@@ -151,7 +152,7 @@ function deserializeExchange(data) {
|
|
|
151
152
|
*/
|
|
152
153
|
function deserializeMarket(data) {
|
|
153
154
|
if (data.length < constants_1.ACCOUNT_SIZE.MARKET) {
|
|
154
|
-
throw
|
|
155
|
+
throw error_1.ProgramSdkError.invalidDataLength("Market", constants_1.ACCOUNT_SIZE.MARKET, data.length);
|
|
155
156
|
}
|
|
156
157
|
validateDiscriminator(data, constants_1.DISCRIMINATOR.MARKET, "Market");
|
|
157
158
|
let offset = 0;
|
|
@@ -193,7 +194,7 @@ function deserializeMarket(data) {
|
|
|
193
194
|
status = types_1.MarketStatus.Cancelled;
|
|
194
195
|
break;
|
|
195
196
|
default:
|
|
196
|
-
throw
|
|
197
|
+
throw error_1.ProgramSdkError.invalidMarketStatus(statusByte);
|
|
197
198
|
}
|
|
198
199
|
return {
|
|
199
200
|
discriminator,
|
|
@@ -219,7 +220,7 @@ function deserializeMarket(data) {
|
|
|
219
220
|
*/
|
|
220
221
|
function deserializeOrderStatus(data) {
|
|
221
222
|
if (data.length < constants_1.ACCOUNT_SIZE.ORDER_STATUS) {
|
|
222
|
-
throw
|
|
223
|
+
throw error_1.ProgramSdkError.invalidDataLength("OrderStatus", constants_1.ACCOUNT_SIZE.ORDER_STATUS, data.length);
|
|
223
224
|
}
|
|
224
225
|
validateDiscriminator(data, constants_1.DISCRIMINATOR.ORDER_STATUS, "OrderStatus");
|
|
225
226
|
let offset = 0;
|
|
@@ -245,7 +246,7 @@ function deserializeOrderStatus(data) {
|
|
|
245
246
|
*/
|
|
246
247
|
function deserializeUserNonce(data) {
|
|
247
248
|
if (data.length < constants_1.ACCOUNT_SIZE.USER_NONCE) {
|
|
248
|
-
throw
|
|
249
|
+
throw error_1.ProgramSdkError.invalidDataLength("UserNonce", constants_1.ACCOUNT_SIZE.USER_NONCE, data.length);
|
|
249
250
|
}
|
|
250
251
|
validateDiscriminator(data, constants_1.DISCRIMINATOR.USER_NONCE, "UserNonce");
|
|
251
252
|
let offset = 0;
|
|
@@ -270,7 +271,7 @@ function deserializeUserNonce(data) {
|
|
|
270
271
|
*/
|
|
271
272
|
function deserializePosition(data) {
|
|
272
273
|
if (data.length < constants_1.ACCOUNT_SIZE.POSITION) {
|
|
273
|
-
throw
|
|
274
|
+
throw error_1.ProgramSdkError.invalidDataLength("Position", constants_1.ACCOUNT_SIZE.POSITION, data.length);
|
|
274
275
|
}
|
|
275
276
|
validateDiscriminator(data, constants_1.DISCRIMINATOR.POSITION, "Position");
|
|
276
277
|
let offset = 0;
|
|
@@ -304,7 +305,7 @@ function deserializePosition(data) {
|
|
|
304
305
|
*/
|
|
305
306
|
function deserializeOrderbook(data) {
|
|
306
307
|
if (data.length < constants_1.ACCOUNT_SIZE.ORDERBOOK) {
|
|
307
|
-
throw
|
|
308
|
+
throw error_1.ProgramSdkError.invalidDataLength("Orderbook", constants_1.ACCOUNT_SIZE.ORDERBOOK, data.length);
|
|
308
309
|
}
|
|
309
310
|
validateDiscriminator(data, constants_1.DISCRIMINATOR.ORDERBOOK, "Orderbook");
|
|
310
311
|
let offset = 0;
|
|
@@ -342,7 +343,7 @@ function deserializeOrderbook(data) {
|
|
|
342
343
|
*/
|
|
343
344
|
function deserializeGlobalDepositToken(data) {
|
|
344
345
|
if (data.length < constants_1.ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN) {
|
|
345
|
-
throw
|
|
346
|
+
throw error_1.ProgramSdkError.invalidDataLength("GlobalDepositToken", constants_1.ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN, data.length);
|
|
346
347
|
}
|
|
347
348
|
validateDiscriminator(data, constants_1.DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN, "GlobalDepositToken");
|
|
348
349
|
let offset = 0;
|
|
@@ -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 {\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 new Error(\n `Invalid ${accountType} discriminator. Expected ${expected.toString(\"hex\")}, got ${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 new Error(\n `Invalid Exchange data length: ${data.length}, expected ${ACCOUNT_SIZE.EXCHANGE}`\n );\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 new Error(\n `Invalid Market data length: ${data.length}, expected ${ACCOUNT_SIZE.MARKET}`\n );\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 new Error(`Unknown market status: ${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 new Error(\n `Invalid OrderStatus data length: ${data.length}, expected ${ACCOUNT_SIZE.ORDER_STATUS}`\n );\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 new Error(\n `Invalid UserNonce data length: ${data.length}, expected ${ACCOUNT_SIZE.USER_NONCE}`\n );\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 new Error(\n `Invalid Position data length: ${data.length}, expected ${ACCOUNT_SIZE.POSITION}`\n );\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 * - bump: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializeOrderbook(data: Buffer): Orderbook {\n if (data.length < ACCOUNT_SIZE.ORDERBOOK) {\n throw new Error(\n `Invalid Orderbook data length: ${data.length}, expected ${ACCOUNT_SIZE.ORDERBOOK}`\n );\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 bump = data[offset];\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n market,\n mintA,\n mintB,\n lookupTable,\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 new Error(\n `Invalid GlobalDepositToken data length: ${data.length}, expected ${ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN}`\n );\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 (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 * - bump: u8 (1 byte)\n * - _padding: [u8; 7]\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 bump = data[offset];\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n market,\n mintA,\n mintB,\n lookupTable,\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 +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;
|
|
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"}
|
package/dist/program/builder.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OrderBuilder = void 0;
|
|
4
|
+
const error_1 = require("./error");
|
|
4
5
|
const types_1 = require("./types");
|
|
5
6
|
const orders_1 = require("./orders");
|
|
6
7
|
const scaling_1 = require("../shared/scaling");
|
|
@@ -134,13 +135,13 @@ class OrderBuilder {
|
|
|
134
135
|
*/
|
|
135
136
|
build() {
|
|
136
137
|
if (!this._maker)
|
|
137
|
-
throw
|
|
138
|
+
throw error_1.ProgramSdkError.missingField("maker");
|
|
138
139
|
if (!this._market)
|
|
139
|
-
throw
|
|
140
|
+
throw error_1.ProgramSdkError.missingField("market");
|
|
140
141
|
if (!this._baseMint)
|
|
141
|
-
throw
|
|
142
|
+
throw error_1.ProgramSdkError.missingField("baseMint");
|
|
142
143
|
if (!this._quoteMint)
|
|
143
|
-
throw
|
|
144
|
+
throw error_1.ProgramSdkError.missingField("quoteMint");
|
|
144
145
|
return {
|
|
145
146
|
nonce: this._nonce,
|
|
146
147
|
salt: this._salt ?? (0, orders_1.generateSalt)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/program/builder.ts"],"names":[],"mappings":"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
|
|
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"]}
|
|
@@ -71,6 +71,11 @@ declare class BaseEnvelope {
|
|
|
71
71
|
getAmountOut(): bigint | undefined;
|
|
72
72
|
getExpiration(): bigint;
|
|
73
73
|
getDepositSource(): DepositSource | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Auto-fill market, base_mint, quote_mint, and salt from the orderbook
|
|
76
|
+
* if not explicitly set by the caller.
|
|
77
|
+
*/
|
|
78
|
+
protected autoFillFromOrderbook(orderbook: OrderBookPair): void;
|
|
74
79
|
/**
|
|
75
80
|
* Auto-scale price/size to raw amounts if the user provided human-readable
|
|
76
81
|
* strings but not pre-computed amounts. Skips if amounts are already set.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/program/envelope.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.TriggerOrderEnvelope = exports.LimitOrderEnvelope = void 0;
|
|
7
7
|
exports.signPayload = signPayload;
|
|
8
8
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
9
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
9
10
|
const bs58_1 = __importDefault(require("bs58"));
|
|
10
11
|
const context_1 = require("../context");
|
|
11
12
|
const error_1 = require("../error");
|
|
@@ -153,6 +154,24 @@ class BaseEnvelope {
|
|
|
153
154
|
getDepositSource() {
|
|
154
155
|
return this.fields.depositSource;
|
|
155
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Auto-fill market, base_mint, quote_mint, and salt from the orderbook
|
|
159
|
+
* if not explicitly set by the caller.
|
|
160
|
+
*/
|
|
161
|
+
autoFillFromOrderbook(orderbook) {
|
|
162
|
+
if (!this.fields.market) {
|
|
163
|
+
this.fields.market = new web3_js_1.PublicKey(orderbook.marketPubkey);
|
|
164
|
+
}
|
|
165
|
+
if (this.fields.salt === undefined) {
|
|
166
|
+
this.fields.salt = (0, orders_1.generateSalt)();
|
|
167
|
+
}
|
|
168
|
+
if (!this.fields.baseMint) {
|
|
169
|
+
this.fields.baseMint = new web3_js_1.PublicKey(orderbook.base.pubkey);
|
|
170
|
+
}
|
|
171
|
+
if (!this.fields.quoteMint) {
|
|
172
|
+
this.fields.quoteMint = new web3_js_1.PublicKey(orderbook.quote.pubkey);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
156
175
|
/**
|
|
157
176
|
* Auto-scale price/size to raw amounts if the user provided human-readable
|
|
158
177
|
* strings but not pre-computed amounts. Skips if amounts are already set.
|
|
@@ -198,6 +217,7 @@ class LimitOrderEnvelope extends BaseEnvelope {
|
|
|
198
217
|
return this.timeInForceValue;
|
|
199
218
|
}
|
|
200
219
|
sign(keypair, orderbook) {
|
|
220
|
+
this.autoFillFromOrderbook(orderbook);
|
|
201
221
|
this.autoScale(orderbook);
|
|
202
222
|
const signed = (0, orders_1.signOrderFull)(this.payload(), keypair);
|
|
203
223
|
return (0, orders_1.toSubmitRequest)(signed, orderbook.orderbookId, {
|
|
@@ -206,6 +226,7 @@ class LimitOrderEnvelope extends BaseEnvelope {
|
|
|
206
226
|
});
|
|
207
227
|
}
|
|
208
228
|
finalize(signatureBase58, orderbook) {
|
|
229
|
+
this.autoFillFromOrderbook(orderbook);
|
|
209
230
|
this.autoScale(orderbook);
|
|
210
231
|
const signatureHex = Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex");
|
|
211
232
|
return this.finalizeWithHexSignature(signatureHex, orderbook.orderbookId, {
|
|
@@ -214,7 +235,15 @@ class LimitOrderEnvelope extends BaseEnvelope {
|
|
|
214
235
|
}
|
|
215
236
|
async submit(client, orderbook) {
|
|
216
237
|
const strategy = (0, context_1.requireSigningStrategy)(client);
|
|
238
|
+
this.autoFillFromOrderbook(orderbook);
|
|
217
239
|
this.autoScale(orderbook);
|
|
240
|
+
// Nonce cache: cache if explicitly set, auto-populate from cache if not
|
|
241
|
+
if (this.fields.nonce !== undefined) {
|
|
242
|
+
client.setOrderNonce?.(this.fields.nonce);
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
this.fields.nonce = client.orderNonce?.() ?? 0;
|
|
246
|
+
}
|
|
218
247
|
switch (strategy.type) {
|
|
219
248
|
case "native": {
|
|
220
249
|
const request = this.sign(strategy.keypair, orderbook);
|
|
@@ -301,6 +330,7 @@ class TriggerOrderEnvelope extends BaseEnvelope {
|
|
|
301
330
|
}
|
|
302
331
|
sign(keypair, orderbook) {
|
|
303
332
|
this.requireTriggerFields();
|
|
333
|
+
this.autoFillFromOrderbook(orderbook);
|
|
304
334
|
this.autoScale(orderbook);
|
|
305
335
|
const signed = (0, orders_1.signOrderFull)(this.payload(), keypair);
|
|
306
336
|
return (0, orders_1.toSubmitRequest)(signed, orderbook.orderbookId, {
|
|
@@ -312,6 +342,7 @@ class TriggerOrderEnvelope extends BaseEnvelope {
|
|
|
312
342
|
}
|
|
313
343
|
finalize(signatureBase58, orderbook) {
|
|
314
344
|
this.requireTriggerFields();
|
|
345
|
+
this.autoFillFromOrderbook(orderbook);
|
|
315
346
|
this.autoScale(orderbook);
|
|
316
347
|
const signatureHex = Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex");
|
|
317
348
|
return this.finalizeWithHexSignature(signatureHex, orderbook.orderbookId, {
|
|
@@ -323,7 +354,15 @@ class TriggerOrderEnvelope extends BaseEnvelope {
|
|
|
323
354
|
async submit(client, orderbook) {
|
|
324
355
|
const strategy = (0, context_1.requireSigningStrategy)(client);
|
|
325
356
|
this.requireTriggerFields();
|
|
357
|
+
this.autoFillFromOrderbook(orderbook);
|
|
326
358
|
this.autoScale(orderbook);
|
|
359
|
+
// Nonce cache: cache if explicitly set, auto-populate from cache if not
|
|
360
|
+
if (this.fields.nonce !== undefined) {
|
|
361
|
+
client.setOrderNonce?.(this.fields.nonce);
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
this.fields.nonce = client.orderNonce?.() ?? 0;
|
|
365
|
+
}
|
|
327
366
|
switch (strategy.type) {
|
|
328
367
|
case "native": {
|
|
329
368
|
const request = this.sign(strategy.keypair, orderbook);
|