@lightconexyz/lightcone-sdk 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +263 -34
- package/dist/auth/client.js.map +1 -1
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -0
- package/dist/client.js.map +1 -1
- package/dist/domain/admin/client.d.ts +3 -1
- package/dist/domain/admin/client.d.ts.map +1 -1
- package/dist/domain/admin/client.js +8 -0
- package/dist/domain/admin/client.js.map +1 -1
- package/dist/domain/admin/wire.d.ts +53 -4
- package/dist/domain/admin/wire.d.ts.map +1 -1
- package/dist/domain/admin/wire.js.map +1 -1
- package/dist/domain/deposit_price/client.d.ts +13 -0
- package/dist/domain/deposit_price/client.d.ts.map +1 -0
- package/dist/domain/deposit_price/client.js +28 -0
- package/dist/domain/deposit_price/client.js.map +1 -0
- package/dist/domain/deposit_price/index.d.ts +9 -0
- package/dist/domain/deposit_price/index.d.ts.map +1 -0
- package/dist/domain/deposit_price/index.js +20 -0
- package/dist/domain/deposit_price/index.js.map +1 -0
- package/dist/domain/deposit_price/state.d.ts +17 -0
- package/dist/domain/deposit_price/state.d.ts.map +1 -0
- package/dist/domain/deposit_price/state.js +45 -0
- package/dist/domain/deposit_price/state.js.map +1 -0
- package/dist/domain/deposit_price/wire.d.ts +36 -0
- package/dist/domain/deposit_price/wire.d.ts.map +1 -0
- package/dist/domain/deposit_price/wire.js +3 -0
- package/dist/domain/deposit_price/wire.js.map +1 -0
- package/dist/domain/index.d.ts +2 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +3 -1
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/notification/client.d.ts +13 -0
- package/dist/domain/notification/client.d.ts.map +1 -0
- package/dist/domain/notification/client.js +21 -0
- package/dist/domain/notification/client.js.map +1 -0
- package/dist/domain/notification/index.d.ts +51 -0
- package/dist/domain/notification/index.d.ts.map +1 -0
- package/dist/domain/notification/index.js +29 -0
- package/dist/domain/notification/index.js.map +1 -0
- package/dist/domain/order/client.d.ts +2 -1
- package/dist/domain/order/client.d.ts.map +1 -1
- package/dist/domain/order/client.js +10 -2
- package/dist/domain/order/client.js.map +1 -1
- package/dist/domain/order/convert.js +3 -3
- package/dist/domain/order/convert.js.map +1 -1
- package/dist/domain/order/wire.d.ts +31 -25
- package/dist/domain/order/wire.d.ts.map +1 -1
- package/dist/domain/order/wire.js.map +1 -1
- package/dist/domain/orderbook/state.js +2 -2
- package/dist/domain/orderbook/state.js.map +1 -1
- package/dist/domain/orderbook/wire.d.ts +2 -0
- package/dist/domain/orderbook/wire.d.ts.map +1 -1
- package/dist/domain/orderbook/wire.js.map +1 -1
- package/dist/domain/position/wire.d.ts +7 -0
- package/dist/domain/position/wire.d.ts.map +1 -1
- package/dist/domain/position/wire.js.map +1 -1
- package/dist/domain/price_history/client.d.ts +2 -1
- package/dist/domain/price_history/client.d.ts.map +1 -1
- package/dist/domain/price_history/client.js +13 -2
- package/dist/domain/price_history/client.js.map +1 -1
- package/dist/domain/price_history/wire.d.ts +30 -7
- package/dist/domain/price_history/wire.d.ts.map +1 -1
- package/dist/domain/price_history/wire.js.map +1 -1
- package/dist/domain/trade/client.d.ts +1 -1
- package/dist/domain/trade/client.js +3 -3
- package/dist/domain/trade/client.js.map +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +3 -0
- package/dist/error.js.map +1 -1
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +5 -4
- package/dist/http/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/prelude.d.ts +12 -5
- package/dist/prelude.d.ts.map +1 -1
- package/dist/prelude.js +8 -1
- package/dist/prelude.js.map +1 -1
- package/dist/privy/client.d.ts +4 -5
- package/dist/privy/client.d.ts.map +1 -1
- package/dist/privy/client.js +2 -11
- package/dist/privy/client.js.map +1 -1
- package/dist/privy/index.d.ts +41 -1
- package/dist/privy/index.d.ts.map +1 -1
- package/dist/privy/index.js +2 -0
- package/dist/privy/index.js.map +1 -1
- package/dist/program/accounts.d.ts +2 -4
- package/dist/program/accounts.d.ts.map +1 -1
- package/dist/program/accounts.js +2 -5
- package/dist/program/accounts.js.map +1 -1
- package/dist/program/builder.d.ts +5 -13
- package/dist/program/builder.d.ts.map +1 -1
- package/dist/program/builder.js +9 -13
- package/dist/program/builder.js.map +1 -1
- package/dist/program/client.d.ts +8 -7
- package/dist/program/client.d.ts.map +1 -1
- package/dist/program/client.js +11 -12
- package/dist/program/client.js.map +1 -1
- package/dist/program/constants.js +1 -1
- package/dist/program/constants.js.map +1 -1
- package/dist/program/envelope.d.ts +7 -2
- package/dist/program/envelope.d.ts.map +1 -1
- package/dist/program/envelope.js +29 -21
- package/dist/program/envelope.js.map +1 -1
- package/dist/program/index.d.ts +3 -3
- package/dist/program/index.d.ts.map +1 -1
- package/dist/program/index.js +5 -3
- package/dist/program/index.js.map +1 -1
- package/dist/program/instructions.d.ts +31 -53
- package/dist/program/instructions.d.ts.map +1 -1
- package/dist/program/instructions.js +155 -216
- package/dist/program/instructions.js.map +1 -1
- package/dist/program/orders.d.ts +20 -19
- package/dist/program/orders.d.ts.map +1 -1
- package/dist/program/orders.js +34 -22
- package/dist/program/orders.js.map +1 -1
- package/dist/program/types.d.ts +23 -24
- package/dist/program/types.d.ts.map +1 -1
- package/dist/program/types.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +2 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/types.d.ts +10 -3
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +6 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/ws/client.browser.d.ts +46 -0
- package/dist/ws/client.browser.d.ts.map +1 -0
- package/dist/ws/client.browser.js +245 -0
- package/dist/ws/client.browser.js.map +1 -0
- package/dist/ws/{client.d.ts → client.node.d.ts} +3 -2
- package/dist/ws/client.node.d.ts.map +1 -0
- package/dist/ws/{client.js → client.node.js} +3 -3
- package/dist/ws/client.node.js.map +1 -0
- package/dist/ws/index.d.ts +10 -1
- package/dist/ws/index.d.ts.map +1 -1
- package/dist/ws/index.js +50 -2
- package/dist/ws/index.js.map +1 -1
- package/dist/ws/subscriptions.d.ts +8 -0
- package/dist/ws/subscriptions.d.ts.map +1 -1
- package/dist/ws/subscriptions.js +5 -0
- package/dist/ws/subscriptions.js.map +1 -1
- package/dist/ws/types.d.ts +23 -0
- package/dist/ws/types.d.ts.map +1 -0
- package/dist/ws/types.js +3 -0
- package/dist/ws/types.js.map +1 -0
- package/package.json +10 -4
- package/dist/ws/client.d.ts.map +0 -1
- package/dist/ws/client.js.map +0 -1
package/dist/program/builder.js
CHANGED
|
@@ -33,6 +33,7 @@ class OrderBuilder {
|
|
|
33
33
|
_amountIn = 0n;
|
|
34
34
|
_amountOut = 0n;
|
|
35
35
|
_expiration = 0n;
|
|
36
|
+
_depositSource;
|
|
36
37
|
/** Set the order nonce (u32) */
|
|
37
38
|
nonce(value) {
|
|
38
39
|
this._nonce = value;
|
|
@@ -96,6 +97,11 @@ class OrderBuilder {
|
|
|
96
97
|
this._expiration = value;
|
|
97
98
|
return this;
|
|
98
99
|
}
|
|
100
|
+
/** Set deposit source for order submission */
|
|
101
|
+
depositSource(value) {
|
|
102
|
+
this._depositSource = value;
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
99
105
|
/**
|
|
100
106
|
* Set price and size, auto-computing amountIn and amountOut using decimal scaling.
|
|
101
107
|
*
|
|
@@ -164,19 +170,9 @@ class OrderBuilder {
|
|
|
164
170
|
*/
|
|
165
171
|
toSubmitRequest(keypair, orderbookId) {
|
|
166
172
|
const signed = this.buildAndSign(keypair);
|
|
167
|
-
return {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
market_pubkey: signed.market.toBase58(),
|
|
171
|
-
base_token: signed.baseMint.toBase58(),
|
|
172
|
-
quote_token: signed.quoteMint.toBase58(),
|
|
173
|
-
side: signed.side,
|
|
174
|
-
amount_in: signed.amountIn.toString(),
|
|
175
|
-
amount_out: signed.amountOut.toString(),
|
|
176
|
-
expiration: Number(signed.expiration),
|
|
177
|
-
signature: (0, orders_1.signatureHex)(signed),
|
|
178
|
-
orderbook_id: orderbookId,
|
|
179
|
-
};
|
|
173
|
+
return (0, orders_1.toSubmitRequest)(signed, orderbookId, {
|
|
174
|
+
depositSource: this._depositSource,
|
|
175
|
+
});
|
|
180
176
|
}
|
|
181
177
|
}
|
|
182
178
|
exports.OrderBuilder = OrderBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/program/builder.ts"],"names":[],"mappings":";;;AACA,mCAAiD;AACjD,
|
|
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"]}
|
package/dist/program/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Connection, PublicKey, Keypair } from "@solana/web3.js";
|
|
2
|
-
import { Exchange, Market, Position, OrderStatus, Orderbook, GlobalDepositToken, BuildResult, InitializeParams, CreateMarketParams, AddDepositMintParams, MintCompleteSetParams, MergeCompleteSetParams, SettleMarketParams, RedeemWinningsParams, WithdrawFromPositionParams, ActivateMarketParams, MatchOrdersMultiParams, SetAuthorityParams, CreateOrderbookParams, WhitelistDepositTokenParams, DepositToGlobalParams, GlobalToMarketDepositParams, InitPositionTokensParams,
|
|
2
|
+
import { Exchange, Market, Position, OrderStatus, Orderbook, GlobalDepositToken, BuildResult, InitializeParams, CreateMarketParams, AddDepositMintParams, MintCompleteSetParams, MergeCompleteSetParams, SettleMarketParams, RedeemWinningsParams, WithdrawFromPositionParams, ActivateMarketParams, MatchOrdersMultiParams, SetAuthorityParams, CreateOrderbookParams, WhitelistDepositTokenParams, DepositToGlobalParams, GlobalToMarketDepositParams, InitPositionTokensParams, ExtendPositionTokensParams, DepositAndSwapParams, SignedOrder, BidOrderParams, AskOrderParams, InitializeAccounts, CreateMarketAccounts, AddDepositMintAccounts, MintCompleteSetAccounts, MergeCompleteSetAccounts, CancelOrderAccounts, IncrementNonceAccounts, SettleMarketAccounts, RedeemWinningsAccounts, ActivateMarketAccounts, MatchOrdersMultiAccounts } from "./types";
|
|
3
3
|
import * as pda from "./pda";
|
|
4
4
|
/**
|
|
5
5
|
* LightconePinocchioClient - SDK for interacting with the Lightcone Pinocchio program
|
|
@@ -21,7 +21,7 @@ export declare class LightconePinocchioClient {
|
|
|
21
21
|
getCurrentNonce(user: PublicKey): Promise<number>;
|
|
22
22
|
getNextNonce(user: PublicKey): Promise<number>;
|
|
23
23
|
getNextMarketId(): Promise<bigint>;
|
|
24
|
-
getOrderbook(mintA: PublicKey, mintB: PublicKey): Promise<Orderbook
|
|
24
|
+
getOrderbook(mintA: PublicKey, mintB: PublicKey): Promise<Orderbook>;
|
|
25
25
|
getGlobalDepositToken(mint: PublicKey): Promise<GlobalDepositToken>;
|
|
26
26
|
getLatestBlockhash(): Promise<Readonly<{
|
|
27
27
|
blockhash: import("@solana/web3.js").Blockhash;
|
|
@@ -30,7 +30,7 @@ export declare class LightconePinocchioClient {
|
|
|
30
30
|
private createBuildResult;
|
|
31
31
|
initialize(params: InitializeParams): Promise<BuildResult<InitializeAccounts>>;
|
|
32
32
|
createMarket(params: CreateMarketParams): Promise<BuildResult<CreateMarketAccounts>>;
|
|
33
|
-
addDepositMint(params: AddDepositMintParams, numOutcomes: number): Promise<BuildResult<AddDepositMintAccounts>>;
|
|
33
|
+
addDepositMint(params: AddDepositMintParams, market: PublicKey, numOutcomes: number): Promise<BuildResult<AddDepositMintAccounts>>;
|
|
34
34
|
mintCompleteSet(params: MintCompleteSetParams, numOutcomes: number): Promise<BuildResult<MintCompleteSetAccounts>>;
|
|
35
35
|
mergeCompleteSet(params: MergeCompleteSetParams, numOutcomes: number): Promise<BuildResult<MergeCompleteSetAccounts>>;
|
|
36
36
|
cancelOrder(maker: PublicKey, order: SignedOrder): Promise<BuildResult<CancelOrderAccounts>>;
|
|
@@ -68,11 +68,12 @@ export declare class LightconePinocchioClient {
|
|
|
68
68
|
position: PublicKey;
|
|
69
69
|
lookupTable: PublicKey;
|
|
70
70
|
}>>;
|
|
71
|
-
|
|
72
|
-
takerPosition: PublicKey;
|
|
73
|
-
}>>;
|
|
74
|
-
extendPositionTokens(params: ExtendPositionTokensParams, numOutcomes: number, lookupTable: PublicKey): Promise<BuildResult<{
|
|
71
|
+
extendPositionTokens(params: ExtendPositionTokensParams, numOutcomes: number): Promise<BuildResult<{
|
|
75
72
|
position: PublicKey;
|
|
73
|
+
lookupTable: PublicKey;
|
|
74
|
+
}>>;
|
|
75
|
+
depositAndSwap(params: DepositAndSwapParams): Promise<BuildResult<{
|
|
76
|
+
takerPosition: PublicKey;
|
|
76
77
|
}>>;
|
|
77
78
|
createBidOrder(params: BidOrderParams): Omit<SignedOrder, "signature">;
|
|
78
79
|
createAskOrder(params: AskOrderParams): Omit<SignedOrder, "signature">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAET,OAAO,EACR,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"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"}
|
package/dist/program/client.js
CHANGED
|
@@ -130,7 +130,7 @@ class LightconePinocchioClient {
|
|
|
130
130
|
const [orderbookPda] = pda.getOrderbookPda(mintA, mintB, this.programId);
|
|
131
131
|
const accountInfo = await this.connection.getAccountInfo(orderbookPda);
|
|
132
132
|
if (!accountInfo) {
|
|
133
|
-
|
|
133
|
+
throw new Error(`Orderbook not found for ${mintA.toBase58()} / ${mintB.toBase58()}`);
|
|
134
134
|
}
|
|
135
135
|
return (0, accounts_1.deserializeOrderbook)(accountInfo.data);
|
|
136
136
|
}
|
|
@@ -178,15 +178,14 @@ class LightconePinocchioClient {
|
|
|
178
178
|
const ix = (0, instructions_1.buildCreateMarketIx)(params, marketId, this.programId);
|
|
179
179
|
return this.createBuildResult(params.authority, { exchange, market }, ix);
|
|
180
180
|
}
|
|
181
|
-
async addDepositMint(params, numOutcomes) {
|
|
182
|
-
const [market] = pda.getMarketPda(params.marketId, this.programId);
|
|
181
|
+
async addDepositMint(params, market, numOutcomes) {
|
|
183
182
|
const [vault] = pda.getVaultPda(params.depositMint, market, this.programId);
|
|
184
183
|
const [mintAuthority] = pda.getMintAuthorityPda(market, this.programId);
|
|
185
184
|
const conditionalMints = pda
|
|
186
185
|
.getAllConditionalMintPdas(market, params.depositMint, numOutcomes, this.programId)
|
|
187
186
|
.map(([mint]) => mint);
|
|
188
187
|
const ix = (0, instructions_1.buildAddDepositMintIx)(params, market, numOutcomes, this.programId);
|
|
189
|
-
return this.createBuildResult(params.
|
|
188
|
+
return this.createBuildResult(params.authority, { market, vault, mintAuthority, conditionalMints }, ix);
|
|
190
189
|
}
|
|
191
190
|
async mintCompleteSet(params, numOutcomes) {
|
|
192
191
|
const [vault] = pda.getVaultPda(params.depositMint, params.market, this.programId);
|
|
@@ -275,7 +274,7 @@ class LightconePinocchioClient {
|
|
|
275
274
|
async createOrderbook(params) {
|
|
276
275
|
const [orderbook] = pda.getOrderbookPda(params.mintA, params.mintB, this.programId);
|
|
277
276
|
const ix = (0, instructions_1.buildCreateOrderbookIx)(params, this.programId);
|
|
278
|
-
return this.createBuildResult(params.
|
|
277
|
+
return this.createBuildResult(params.authority, { orderbook }, ix);
|
|
279
278
|
}
|
|
280
279
|
async whitelistDepositToken(params) {
|
|
281
280
|
const [globalDepositToken] = pda.getGlobalDepositTokenPda(params.mint, this.programId);
|
|
@@ -299,16 +298,16 @@ class LightconePinocchioClient {
|
|
|
299
298
|
const ix = (0, instructions_1.buildInitPositionTokensIx)(params, numOutcomes, this.programId);
|
|
300
299
|
return this.createBuildResult(params.payer, { position, lookupTable }, ix);
|
|
301
300
|
}
|
|
302
|
-
async
|
|
301
|
+
async extendPositionTokens(params, numOutcomes) {
|
|
302
|
+
const [position] = pda.getPositionPda(params.user, params.market, this.programId);
|
|
303
|
+
const ix = (0, instructions_1.buildExtendPositionTokensIx)(params, numOutcomes, this.programId);
|
|
304
|
+
return this.createBuildResult(params.payer, { position, lookupTable: params.lookupTable }, ix);
|
|
305
|
+
}
|
|
306
|
+
async depositAndSwap(params) {
|
|
303
307
|
const [takerPosition] = pda.getPositionPda(params.takerOrder.maker, params.market, this.programId);
|
|
304
|
-
const ix = (0, instructions_1.buildDepositAndSwapIx)(params,
|
|
308
|
+
const ix = (0, instructions_1.buildDepositAndSwapIx)(params, this.programId);
|
|
305
309
|
return this.createBuildResult(params.operator, { takerPosition }, ix);
|
|
306
310
|
}
|
|
307
|
-
async extendPositionTokens(params, numOutcomes, lookupTable) {
|
|
308
|
-
const [position] = pda.getPositionPda(params.user, params.market, this.programId);
|
|
309
|
-
const ix = (0, instructions_1.buildExtendPositionTokensIx)(params, numOutcomes, lookupTable, this.programId);
|
|
310
|
-
return this.createBuildResult(params.payer, { position }, ix);
|
|
311
|
-
}
|
|
312
311
|
// ============================================================================
|
|
313
312
|
// ORDER HELPERS
|
|
314
313
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Connection,\n PublicKey,\n Transaction,\n Keypair,\n} from \"@solana/web3.js\";\nimport { PROGRAM_ID } from \"./constants\";\nimport {\n Exchange,\n Market,\n Position,\n OrderStatus,\n Orderbook,\n GlobalDepositToken,\n BuildResult,\n InitializeParams,\n CreateMarketParams,\n AddDepositMintParams,\n MintCompleteSetParams,\n MergeCompleteSetParams,\n SettleMarketParams,\n RedeemWinningsParams,\n WithdrawFromPositionParams,\n ActivateMarketParams,\n MatchOrdersMultiParams,\n SetAuthorityParams,\n CreateOrderbookParams,\n WhitelistDepositTokenParams,\n DepositToGlobalParams,\n GlobalToMarketDepositParams,\n InitPositionTokensParams,\n DepositAndSwapParams,\n ExtendPositionTokensParams,\n SignedOrder,\n BidOrderParams,\n AskOrderParams,\n InitializeAccounts,\n CreateMarketAccounts,\n AddDepositMintAccounts,\n MintCompleteSetAccounts,\n MergeCompleteSetAccounts,\n CancelOrderAccounts,\n IncrementNonceAccounts,\n SettleMarketAccounts,\n RedeemWinningsAccounts,\n ActivateMarketAccounts,\n MatchOrdersMultiAccounts,\n} from \"./types\";\nimport * as pda from \"./pda\";\nimport {\n deserializeExchange,\n deserializeGlobalDepositToken,\n deserializeMarket,\n deserializePosition,\n deserializeOrderStatus,\n deserializeUserNonce,\n deserializeOrderbook,\n} from \"./accounts\";\nimport {\n buildInitializeIx,\n buildCreateMarketIx,\n buildAddDepositMintIx,\n buildMintCompleteSetIx,\n buildMergeCompleteSetIx,\n buildCancelOrderIx,\n buildIncrementNonceIx,\n buildSettleMarketIx,\n buildRedeemWinningsIx,\n buildSetPausedIx,\n buildSetOperatorIx,\n buildWithdrawFromPositionIx,\n buildActivateMarketIx,\n buildMatchOrdersMultiIx,\n buildSetAuthorityIx,\n buildCreateOrderbookIx,\n buildWhitelistDepositTokenIx,\n buildDepositToGlobalIx,\n buildGlobalToMarketDepositIx,\n buildInitPositionTokensIx,\n buildDepositAndSwapIx,\n buildExtendPositionTokensIx,\n} from \"./instructions\";\nimport {\n hashOrder,\n signOrder,\n createBidOrder,\n createAskOrder,\n createSignedBidOrder,\n createSignedAskOrder,\n signOrderFull,\n} from \"./orders\";\nimport { deriveConditionId } from \"./utils\";\n\n/**\n * LightconePinocchioClient - SDK for interacting with the Lightcone Pinocchio program\n */\nexport class LightconePinocchioClient {\n readonly connection: Connection;\n readonly programId: PublicKey;\n readonly pda = pda;\n\n constructor(connection: Connection, programId: PublicKey = PROGRAM_ID) {\n this.connection = connection;\n this.programId = programId;\n }\n\n static new(rpcUrl: string): LightconePinocchioClient {\n return new LightconePinocchioClient(new Connection(rpcUrl), PROGRAM_ID);\n }\n\n static withProgramId(rpcUrl: string, programId: PublicKey): LightconePinocchioClient {\n return new LightconePinocchioClient(new Connection(rpcUrl), programId);\n }\n\n static fromConnection(connection: Connection): LightconePinocchioClient {\n return new LightconePinocchioClient(connection, PROGRAM_ID);\n }\n\n // ============================================================================\n // ACCOUNT FETCHERS\n // ============================================================================\n\n async getExchange(): Promise<Exchange> {\n const [exchangePda] = pda.getExchangePda(this.programId);\n const accountInfo = await this.connection.getAccountInfo(exchangePda);\n if (!accountInfo) {\n throw new Error(\"Exchange account not found. Protocol not initialized.\");\n }\n return deserializeExchange(accountInfo.data as Buffer);\n }\n\n async getMarket(marketId: bigint): Promise<Market> {\n const [marketPda] = pda.getMarketPda(marketId, this.programId);\n const accountInfo = await this.connection.getAccountInfo(marketPda);\n if (!accountInfo) {\n throw new Error(`Market ${marketId} not found`);\n }\n return deserializeMarket(accountInfo.data as Buffer);\n }\n\n async getMarketByPubkey(market: PublicKey): Promise<Market> {\n const accountInfo = await this.connection.getAccountInfo(market);\n if (!accountInfo) {\n throw new Error(`Market not found at ${market.toBase58()}`);\n }\n return deserializeMarket(accountInfo.data as Buffer);\n }\n\n async getPosition(\n owner: PublicKey,\n market: PublicKey\n ): Promise<Position | null> {\n const [positionPda] = pda.getPositionPda(owner, market, this.programId);\n const accountInfo = await this.connection.getAccountInfo(positionPda);\n if (!accountInfo) {\n return null;\n }\n return deserializePosition(accountInfo.data as Buffer);\n }\n\n async getOrderStatus(orderHash: Buffer): Promise<OrderStatus | null> {\n const [orderStatusPda] = pda.getOrderStatusPda(orderHash, this.programId);\n const accountInfo = await this.connection.getAccountInfo(orderStatusPda);\n if (!accountInfo) {\n return null;\n }\n return deserializeOrderStatus(accountInfo.data as Buffer);\n }\n\n async getUserNonce(user: PublicKey): Promise<bigint> {\n const [userNoncePda] = pda.getUserNoncePda(user, this.programId);\n const accountInfo = await this.connection.getAccountInfo(userNoncePda);\n if (!accountInfo) {\n return 0n;\n }\n const nonce = deserializeUserNonce(accountInfo.data as Buffer);\n return nonce.nonce;\n }\n\n async getCurrentNonce(user: PublicKey): Promise<number> {\n const nonce = await this.getUserNonce(user);\n if (nonce > 0xFFFFFFFFn) {\n throw new Error(`Nonce exceeds u32 range: ${nonce}`);\n }\n return Number(nonce);\n }\n\n async getNextNonce(user: PublicKey): Promise<number> {\n return this.getCurrentNonce(user);\n }\n\n async getNextMarketId(): Promise<bigint> {\n const exchange = await this.getExchange();\n return exchange.marketCount;\n }\n\n async getOrderbook(\n mintA: PublicKey,\n mintB: PublicKey\n ): Promise<Orderbook | null> {\n const [orderbookPda] = pda.getOrderbookPda(mintA, mintB, this.programId);\n const accountInfo = await this.connection.getAccountInfo(orderbookPda);\n if (!accountInfo) {\n return null;\n }\n return deserializeOrderbook(accountInfo.data as Buffer);\n }\n\n async getGlobalDepositToken(mint: PublicKey): Promise<GlobalDepositToken> {\n const [globalDepositTokenPda] = pda.getGlobalDepositTokenPda(mint, this.programId);\n const accountInfo = await this.connection.getAccountInfo(globalDepositTokenPda);\n if (!accountInfo) {\n throw new Error(`GlobalDepositToken not found for mint ${mint.toBase58()}`);\n }\n return deserializeGlobalDepositToken(accountInfo.data as Buffer);\n }\n\n async getLatestBlockhash() {\n return this.connection.getLatestBlockhash();\n }\n\n // ============================================================================\n // TRANSACTION BUILDERS\n // ============================================================================\n\n private async createBuildResult<T>(\n feePayer: PublicKey,\n accounts: T,\n ...instructions: Parameters<Transaction[\"add\"]>\n ): Promise<BuildResult<T>> {\n const { blockhash, lastValidBlockHeight } =\n await this.connection.getLatestBlockhash();\n\n const transaction = new Transaction({\n feePayer,\n blockhash,\n lastValidBlockHeight,\n });\n\n for (const ix of instructions) {\n transaction.add(ix);\n }\n\n return {\n transaction,\n accounts,\n serialize: () =>\n transaction\n .serialize({ requireAllSignatures: false, verifySignatures: false })\n .toString(\"base64\"),\n };\n }\n\n async initialize(\n params: InitializeParams\n ): Promise<BuildResult<InitializeAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildInitializeIx(params, this.programId);\n return this.createBuildResult(params.authority, { exchange }, ix);\n }\n\n async createMarket(\n params: CreateMarketParams\n ): Promise<BuildResult<CreateMarketAccounts>> {\n const marketId = await this.getNextMarketId();\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(marketId, this.programId);\n const ix = buildCreateMarketIx(params, marketId, this.programId);\n return this.createBuildResult(params.authority, { exchange, market }, ix);\n }\n\n async addDepositMint(\n params: AddDepositMintParams,\n numOutcomes: number\n ): Promise<BuildResult<AddDepositMintAccounts>> {\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const [vault] = pda.getVaultPda(params.depositMint, market, this.programId);\n const [mintAuthority] = pda.getMintAuthorityPda(market, this.programId);\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildAddDepositMintIx(params, market, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.payer,\n { market, vault, mintAuthority, conditionalMints },\n ix\n );\n }\n\n async mintCompleteSet(\n params: MintCompleteSetParams,\n numOutcomes: number\n ): Promise<BuildResult<MintCompleteSetAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildMintCompleteSetIx(params, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, conditionalMints },\n ix\n );\n }\n\n async mergeCompleteSet(\n params: MergeCompleteSetParams,\n numOutcomes: number\n ): Promise<BuildResult<MergeCompleteSetAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildMergeCompleteSetIx(params, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, conditionalMints },\n ix\n );\n }\n\n async cancelOrder(\n maker: PublicKey,\n order: SignedOrder\n ): Promise<BuildResult<CancelOrderAccounts>> {\n const orderHash = hashOrder(order);\n const [orderStatus] = pda.getOrderStatusPda(orderHash, this.programId);\n const ix = buildCancelOrderIx(maker, order, this.programId);\n return this.createBuildResult(maker, { orderStatus }, ix);\n }\n\n async incrementNonce(\n user: PublicKey\n ): Promise<BuildResult<IncrementNonceAccounts>> {\n const [userNonce] = pda.getUserNoncePda(user, this.programId);\n const ix = buildIncrementNonceIx(user, this.programId);\n return this.createBuildResult(user, { userNonce }, ix);\n }\n\n async settleMarket(\n params: SettleMarketParams\n ): Promise<BuildResult<SettleMarketAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const ix = buildSettleMarketIx(params, this.programId);\n return this.createBuildResult(params.oracle, { exchange, market }, ix);\n }\n\n async redeemWinnings(\n params: RedeemWinningsParams,\n winningOutcome: number\n ): Promise<BuildResult<RedeemWinningsAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const [winningMint] = pda.getConditionalMintPda(\n params.market,\n params.depositMint,\n winningOutcome,\n this.programId\n );\n\n const ix = buildRedeemWinningsIx(params, winningOutcome, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, winningMint },\n ix\n );\n }\n\n async setPaused(\n authority: PublicKey,\n paused: boolean\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetPausedIx(authority, paused, this.programId);\n return this.createBuildResult(authority, { exchange }, ix);\n }\n\n async setOperator(\n authority: PublicKey,\n newOperator: PublicKey\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetOperatorIx(authority, newOperator, this.programId);\n return this.createBuildResult(authority, { exchange }, ix);\n }\n\n async withdrawFromPosition(\n params: WithdrawFromPositionParams,\n isToken2022: boolean\n ): Promise<BuildResult<{ position: PublicKey }>> {\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const ix = buildWithdrawFromPositionIx(params, isToken2022, this.programId);\n return this.createBuildResult(params.user, { position }, ix);\n }\n\n async activateMarket(\n params: ActivateMarketParams\n ): Promise<BuildResult<ActivateMarketAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const ix = buildActivateMarketIx(params, this.programId);\n return this.createBuildResult(params.authority, { exchange, market }, ix);\n }\n\n async matchOrdersMulti(\n params: MatchOrdersMultiParams\n ): Promise<BuildResult<MatchOrdersMultiAccounts>> {\n const takerOrderHash = hashOrder(params.takerOrder);\n const [takerOrderStatus] = pda.getOrderStatusPda(\n takerOrderHash,\n this.programId\n );\n const [takerPosition] = pda.getPositionPda(\n params.takerOrder.maker,\n params.market,\n this.programId\n );\n\n const makerOrderStatuses: PublicKey[] = [];\n const makerPositions: PublicKey[] = [];\n for (const makerOrder of params.makerOrders) {\n const makerOrderHash = hashOrder(makerOrder);\n const [makerOrderStatus] = pda.getOrderStatusPda(\n makerOrderHash,\n this.programId\n );\n const [makerPosition] = pda.getPositionPda(\n makerOrder.maker,\n params.market,\n this.programId\n );\n makerOrderStatuses.push(makerOrderStatus);\n makerPositions.push(makerPosition);\n }\n\n const ix = buildMatchOrdersMultiIx(params, this.programId);\n\n return this.createBuildResult(\n params.operator,\n { takerOrderStatus, takerPosition, makerOrderStatuses, makerPositions },\n ix\n );\n }\n\n async setAuthority(\n params: SetAuthorityParams\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetAuthorityIx(params, this.programId);\n return this.createBuildResult(\n params.currentAuthority,\n { exchange },\n ix\n );\n }\n\n async createOrderbook(\n params: CreateOrderbookParams\n ): Promise<BuildResult<{ orderbook: PublicKey }>> {\n const [orderbook] = pda.getOrderbookPda(\n params.mintA,\n params.mintB,\n this.programId\n );\n const ix = buildCreateOrderbookIx(params, this.programId);\n return this.createBuildResult(params.payer, { orderbook }, ix);\n }\n\n async whitelistDepositToken(\n params: WhitelistDepositTokenParams\n ): Promise<BuildResult<{ globalDepositToken: PublicKey }>> {\n const [globalDepositToken] = pda.getGlobalDepositTokenPda(params.mint, this.programId);\n const ix = buildWhitelistDepositTokenIx(params, this.programId);\n return this.createBuildResult(params.authority, { globalDepositToken }, ix);\n }\n\n async depositToGlobal(\n params: DepositToGlobalParams\n ): Promise<BuildResult<{ userGlobalDeposit: PublicKey }>> {\n const [userGlobalDeposit] = pda.getUserGlobalDepositPda(params.user, params.mint, this.programId);\n const ix = buildDepositToGlobalIx(params, this.programId);\n return this.createBuildResult(params.user, { userGlobalDeposit }, ix);\n }\n\n async globalToMarketDeposit(\n params: GlobalToMarketDepositParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; userGlobalDeposit: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const [userGlobalDeposit] = pda.getUserGlobalDepositPda(\n params.user,\n params.depositMint,\n this.programId\n );\n const ix = buildGlobalToMarketDepositIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.user, { position, userGlobalDeposit }, ix);\n }\n\n async initPositionTokens(\n params: InitPositionTokensParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; lookupTable: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const [lookupTable] = pda.getPositionAltPda(position, params.recentSlot);\n const ix = buildInitPositionTokensIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.payer, { position, lookupTable }, ix);\n }\n\n async depositAndSwap(\n params: DepositAndSwapParams,\n numOutcomes: number\n ): Promise<BuildResult<{ takerPosition: PublicKey }>> {\n const [takerPosition] = pda.getPositionPda(\n params.takerOrder.maker,\n params.market,\n this.programId\n );\n const ix = buildDepositAndSwapIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.operator, { takerPosition }, ix);\n }\n\n async extendPositionTokens(\n params: ExtendPositionTokensParams,\n numOutcomes: number,\n lookupTable: PublicKey\n ): Promise<BuildResult<{ position: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const ix = buildExtendPositionTokensIx(params, numOutcomes, lookupTable, this.programId);\n return this.createBuildResult(params.payer, { position }, ix);\n }\n\n // ============================================================================\n // ORDER HELPERS\n // ============================================================================\n\n createBidOrder(params: BidOrderParams): Omit<SignedOrder, \"signature\"> {\n return createBidOrder(params);\n }\n\n createAskOrder(params: AskOrderParams): Omit<SignedOrder, \"signature\"> {\n return createAskOrder(params);\n }\n\n createSignedBidOrder(params: BidOrderParams, signer: Keypair): SignedOrder {\n return createSignedBidOrder(params, signer);\n }\n\n createSignedAskOrder(params: AskOrderParams, signer: Keypair): SignedOrder {\n return createSignedAskOrder(params, signer);\n }\n\n hashOrder(order: SignedOrder): Buffer {\n return hashOrder(order);\n }\n\n signOrder(order: SignedOrder, signer: Keypair): Buffer {\n return signOrder(order, signer);\n }\n\n signFullOrder(\n order: Omit<SignedOrder, \"signature\">,\n signer: Keypair\n ): SignedOrder {\n return signOrderFull(order, signer);\n }\n\n // ============================================================================\n // UTILITY METHODS\n // ============================================================================\n\n deriveConditionId(\n oracle: PublicKey,\n questionId: Buffer,\n numOutcomes: number\n ): Buffer {\n return deriveConditionId(oracle, questionId, numOutcomes);\n }\n\n getConditionalMints(\n market: PublicKey,\n depositMint: PublicKey,\n numOutcomes: number\n ): PublicKey[] {\n return pda\n .getAllConditionalMintPdas(\n market,\n depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n }\n\n getExchangePda(): PublicKey {\n return pda.getExchangePda(this.programId)[0];\n }\n\n getMarketPda(marketId: bigint): PublicKey {\n return pda.getMarketPda(marketId, this.programId)[0];\n }\n\n getPositionPda(owner: PublicKey, market: PublicKey): PublicKey {\n return pda.getPositionPda(owner, market, this.programId)[0];\n }\n\n getOrderStatusPda(orderHash: Buffer): PublicKey {\n return pda.getOrderStatusPda(orderHash, this.programId)[0];\n }\n\n getUserNoncePda(user: PublicKey): PublicKey {\n return pda.getUserNoncePda(user, this.programId)[0];\n }\n\n getOrderbookPda(mintA: PublicKey, mintB: PublicKey): PublicKey {\n return pda.getOrderbookPda(mintA, mintB, this.programId)[0];\n }\n\n getGlobalDepositTokenPda(mint: PublicKey): PublicKey {\n return pda.getGlobalDepositTokenPda(mint, this.programId)[0];\n }\n\n getUserGlobalDepositPda(user: PublicKey, mint: PublicKey): PublicKey {\n return pda.getUserGlobalDepositPda(user, mint, this.programId)[0];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Connection,\n PublicKey,\n Transaction,\n Keypair,\n} from \"@solana/web3.js\";\nimport { PROGRAM_ID } from \"./constants\";\nimport {\n Exchange,\n Market,\n Position,\n OrderStatus,\n Orderbook,\n GlobalDepositToken,\n BuildResult,\n InitializeParams,\n CreateMarketParams,\n AddDepositMintParams,\n MintCompleteSetParams,\n MergeCompleteSetParams,\n SettleMarketParams,\n RedeemWinningsParams,\n WithdrawFromPositionParams,\n ActivateMarketParams,\n MatchOrdersMultiParams,\n SetAuthorityParams,\n CreateOrderbookParams,\n WhitelistDepositTokenParams,\n DepositToGlobalParams,\n GlobalToMarketDepositParams,\n InitPositionTokensParams,\n ExtendPositionTokensParams,\n DepositAndSwapParams,\n SignedOrder,\n BidOrderParams,\n AskOrderParams,\n InitializeAccounts,\n CreateMarketAccounts,\n AddDepositMintAccounts,\n MintCompleteSetAccounts,\n MergeCompleteSetAccounts,\n CancelOrderAccounts,\n IncrementNonceAccounts,\n SettleMarketAccounts,\n RedeemWinningsAccounts,\n ActivateMarketAccounts,\n MatchOrdersMultiAccounts,\n} from \"./types\";\nimport * as pda from \"./pda\";\nimport {\n deserializeExchange,\n deserializeGlobalDepositToken,\n deserializeMarket,\n deserializePosition,\n deserializeOrderStatus,\n deserializeUserNonce,\n deserializeOrderbook,\n} from \"./accounts\";\nimport {\n buildInitializeIx,\n buildCreateMarketIx,\n buildAddDepositMintIx,\n buildMintCompleteSetIx,\n buildMergeCompleteSetIx,\n buildCancelOrderIx,\n buildIncrementNonceIx,\n buildSettleMarketIx,\n buildRedeemWinningsIx,\n buildSetPausedIx,\n buildSetOperatorIx,\n buildWithdrawFromPositionIx,\n buildActivateMarketIx,\n buildMatchOrdersMultiIx,\n buildSetAuthorityIx,\n buildCreateOrderbookIx,\n buildWhitelistDepositTokenIx,\n buildDepositToGlobalIx,\n buildGlobalToMarketDepositIx,\n buildInitPositionTokensIx,\n buildExtendPositionTokensIx,\n buildDepositAndSwapIx,\n} from \"./instructions\";\nimport {\n hashOrder,\n signOrder,\n createBidOrder,\n createAskOrder,\n createSignedBidOrder,\n createSignedAskOrder,\n signOrderFull,\n} from \"./orders\";\nimport { deriveConditionId } from \"./utils\";\n\n/**\n * LightconePinocchioClient - SDK for interacting with the Lightcone Pinocchio program\n */\nexport class LightconePinocchioClient {\n readonly connection: Connection;\n readonly programId: PublicKey;\n readonly pda = pda;\n\n constructor(connection: Connection, programId: PublicKey = PROGRAM_ID) {\n this.connection = connection;\n this.programId = programId;\n }\n\n static new(rpcUrl: string): LightconePinocchioClient {\n return new LightconePinocchioClient(new Connection(rpcUrl), PROGRAM_ID);\n }\n\n static withProgramId(rpcUrl: string, programId: PublicKey): LightconePinocchioClient {\n return new LightconePinocchioClient(new Connection(rpcUrl), programId);\n }\n\n static fromConnection(connection: Connection): LightconePinocchioClient {\n return new LightconePinocchioClient(connection, PROGRAM_ID);\n }\n\n // ============================================================================\n // ACCOUNT FETCHERS\n // ============================================================================\n\n async getExchange(): Promise<Exchange> {\n const [exchangePda] = pda.getExchangePda(this.programId);\n const accountInfo = await this.connection.getAccountInfo(exchangePda);\n if (!accountInfo) {\n throw new Error(\"Exchange account not found. Protocol not initialized.\");\n }\n return deserializeExchange(accountInfo.data as Buffer);\n }\n\n async getMarket(marketId: bigint): Promise<Market> {\n const [marketPda] = pda.getMarketPda(marketId, this.programId);\n const accountInfo = await this.connection.getAccountInfo(marketPda);\n if (!accountInfo) {\n throw new Error(`Market ${marketId} not found`);\n }\n return deserializeMarket(accountInfo.data as Buffer);\n }\n\n async getMarketByPubkey(market: PublicKey): Promise<Market> {\n const accountInfo = await this.connection.getAccountInfo(market);\n if (!accountInfo) {\n throw new Error(`Market not found at ${market.toBase58()}`);\n }\n return deserializeMarket(accountInfo.data as Buffer);\n }\n\n async getPosition(\n owner: PublicKey,\n market: PublicKey\n ): Promise<Position | null> {\n const [positionPda] = pda.getPositionPda(owner, market, this.programId);\n const accountInfo = await this.connection.getAccountInfo(positionPda);\n if (!accountInfo) {\n return null;\n }\n return deserializePosition(accountInfo.data as Buffer);\n }\n\n async getOrderStatus(orderHash: Buffer): Promise<OrderStatus | null> {\n const [orderStatusPda] = pda.getOrderStatusPda(orderHash, this.programId);\n const accountInfo = await this.connection.getAccountInfo(orderStatusPda);\n if (!accountInfo) {\n return null;\n }\n return deserializeOrderStatus(accountInfo.data as Buffer);\n }\n\n async getUserNonce(user: PublicKey): Promise<bigint> {\n const [userNoncePda] = pda.getUserNoncePda(user, this.programId);\n const accountInfo = await this.connection.getAccountInfo(userNoncePda);\n if (!accountInfo) {\n return 0n;\n }\n const nonce = deserializeUserNonce(accountInfo.data as Buffer);\n return nonce.nonce;\n }\n\n async getCurrentNonce(user: PublicKey): Promise<number> {\n const nonce = await this.getUserNonce(user);\n if (nonce > 0xFFFFFFFFn) {\n throw new Error(`Nonce exceeds u32 range: ${nonce}`);\n }\n return Number(nonce);\n }\n\n async getNextNonce(user: PublicKey): Promise<number> {\n return this.getCurrentNonce(user);\n }\n\n async getNextMarketId(): Promise<bigint> {\n const exchange = await this.getExchange();\n return exchange.marketCount;\n }\n\n async getOrderbook(\n mintA: PublicKey,\n mintB: PublicKey\n ): Promise<Orderbook> {\n const [orderbookPda] = pda.getOrderbookPda(mintA, mintB, this.programId);\n const accountInfo = await this.connection.getAccountInfo(orderbookPda);\n if (!accountInfo) {\n throw new Error(\n `Orderbook not found for ${mintA.toBase58()} / ${mintB.toBase58()}`\n );\n }\n return deserializeOrderbook(accountInfo.data as Buffer);\n }\n\n async getGlobalDepositToken(mint: PublicKey): Promise<GlobalDepositToken> {\n const [globalDepositTokenPda] = pda.getGlobalDepositTokenPda(mint, this.programId);\n const accountInfo = await this.connection.getAccountInfo(globalDepositTokenPda);\n if (!accountInfo) {\n throw new Error(`GlobalDepositToken not found for mint ${mint.toBase58()}`);\n }\n return deserializeGlobalDepositToken(accountInfo.data as Buffer);\n }\n\n async getLatestBlockhash() {\n return this.connection.getLatestBlockhash();\n }\n\n // ============================================================================\n // TRANSACTION BUILDERS\n // ============================================================================\n\n private async createBuildResult<T>(\n feePayer: PublicKey,\n accounts: T,\n ...instructions: Parameters<Transaction[\"add\"]>\n ): Promise<BuildResult<T>> {\n const { blockhash, lastValidBlockHeight } =\n await this.connection.getLatestBlockhash();\n\n const transaction = new Transaction({\n feePayer,\n blockhash,\n lastValidBlockHeight,\n });\n\n for (const ix of instructions) {\n transaction.add(ix);\n }\n\n return {\n transaction,\n accounts,\n serialize: () =>\n transaction\n .serialize({ requireAllSignatures: false, verifySignatures: false })\n .toString(\"base64\"),\n };\n }\n\n async initialize(\n params: InitializeParams\n ): Promise<BuildResult<InitializeAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildInitializeIx(params, this.programId);\n return this.createBuildResult(params.authority, { exchange }, ix);\n }\n\n async createMarket(\n params: CreateMarketParams\n ): Promise<BuildResult<CreateMarketAccounts>> {\n const marketId = await this.getNextMarketId();\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(marketId, this.programId);\n const ix = buildCreateMarketIx(params, marketId, this.programId);\n return this.createBuildResult(params.authority, { exchange, market }, ix);\n }\n\n async addDepositMint(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number\n ): Promise<BuildResult<AddDepositMintAccounts>> {\n const [vault] = pda.getVaultPda(params.depositMint, market, this.programId);\n const [mintAuthority] = pda.getMintAuthorityPda(market, this.programId);\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildAddDepositMintIx(params, market, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.authority,\n { market, vault, mintAuthority, conditionalMints },\n ix\n );\n }\n\n async mintCompleteSet(\n params: MintCompleteSetParams,\n numOutcomes: number\n ): Promise<BuildResult<MintCompleteSetAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildMintCompleteSetIx(params, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, conditionalMints },\n ix\n );\n }\n\n async mergeCompleteSet(\n params: MergeCompleteSetParams,\n numOutcomes: number\n ): Promise<BuildResult<MergeCompleteSetAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const conditionalMints = pda\n .getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n\n const ix = buildMergeCompleteSetIx(params, numOutcomes, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, conditionalMints },\n ix\n );\n }\n\n async cancelOrder(\n maker: PublicKey,\n order: SignedOrder\n ): Promise<BuildResult<CancelOrderAccounts>> {\n const orderHash = hashOrder(order);\n const [orderStatus] = pda.getOrderStatusPda(orderHash, this.programId);\n const ix = buildCancelOrderIx(maker, order, this.programId);\n return this.createBuildResult(maker, { orderStatus }, ix);\n }\n\n async incrementNonce(\n user: PublicKey\n ): Promise<BuildResult<IncrementNonceAccounts>> {\n const [userNonce] = pda.getUserNoncePda(user, this.programId);\n const ix = buildIncrementNonceIx(user, this.programId);\n return this.createBuildResult(user, { userNonce }, ix);\n }\n\n async settleMarket(\n params: SettleMarketParams\n ): Promise<BuildResult<SettleMarketAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const ix = buildSettleMarketIx(params, this.programId);\n return this.createBuildResult(params.oracle, { exchange, market }, ix);\n }\n\n async redeemWinnings(\n params: RedeemWinningsParams,\n winningOutcome: number\n ): Promise<BuildResult<RedeemWinningsAccounts>> {\n const [vault] = pda.getVaultPda(\n params.depositMint,\n params.market,\n this.programId\n );\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const [winningMint] = pda.getConditionalMintPda(\n params.market,\n params.depositMint,\n winningOutcome,\n this.programId\n );\n\n const ix = buildRedeemWinningsIx(params, winningOutcome, this.programId);\n\n return this.createBuildResult(\n params.user,\n { position, vault, winningMint },\n ix\n );\n }\n\n async setPaused(\n authority: PublicKey,\n paused: boolean\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetPausedIx(authority, paused, this.programId);\n return this.createBuildResult(authority, { exchange }, ix);\n }\n\n async setOperator(\n authority: PublicKey,\n newOperator: PublicKey\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetOperatorIx(authority, newOperator, this.programId);\n return this.createBuildResult(authority, { exchange }, ix);\n }\n\n async withdrawFromPosition(\n params: WithdrawFromPositionParams,\n isToken2022: boolean\n ): Promise<BuildResult<{ position: PublicKey }>> {\n const [position] = pda.getPositionPda(\n params.user,\n params.market,\n this.programId\n );\n const ix = buildWithdrawFromPositionIx(params, isToken2022, this.programId);\n return this.createBuildResult(params.user, { position }, ix);\n }\n\n async activateMarket(\n params: ActivateMarketParams\n ): Promise<BuildResult<ActivateMarketAccounts>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const [market] = pda.getMarketPda(params.marketId, this.programId);\n const ix = buildActivateMarketIx(params, this.programId);\n return this.createBuildResult(params.authority, { exchange, market }, ix);\n }\n\n async matchOrdersMulti(\n params: MatchOrdersMultiParams\n ): Promise<BuildResult<MatchOrdersMultiAccounts>> {\n const takerOrderHash = hashOrder(params.takerOrder);\n const [takerOrderStatus] = pda.getOrderStatusPda(\n takerOrderHash,\n this.programId\n );\n const [takerPosition] = pda.getPositionPda(\n params.takerOrder.maker,\n params.market,\n this.programId\n );\n\n const makerOrderStatuses: PublicKey[] = [];\n const makerPositions: PublicKey[] = [];\n for (const makerOrder of params.makerOrders) {\n const makerOrderHash = hashOrder(makerOrder);\n const [makerOrderStatus] = pda.getOrderStatusPda(\n makerOrderHash,\n this.programId\n );\n const [makerPosition] = pda.getPositionPda(\n makerOrder.maker,\n params.market,\n this.programId\n );\n makerOrderStatuses.push(makerOrderStatus);\n makerPositions.push(makerPosition);\n }\n\n const ix = buildMatchOrdersMultiIx(params, this.programId);\n\n return this.createBuildResult(\n params.operator,\n { takerOrderStatus, takerPosition, makerOrderStatuses, makerPositions },\n ix\n );\n }\n\n async setAuthority(\n params: SetAuthorityParams\n ): Promise<BuildResult<{ exchange: PublicKey }>> {\n const [exchange] = pda.getExchangePda(this.programId);\n const ix = buildSetAuthorityIx(params, this.programId);\n return this.createBuildResult(\n params.currentAuthority,\n { exchange },\n ix\n );\n }\n\n async createOrderbook(\n params: CreateOrderbookParams\n ): Promise<BuildResult<{ orderbook: PublicKey }>> {\n const [orderbook] = pda.getOrderbookPda(\n params.mintA,\n params.mintB,\n this.programId\n );\n const ix = buildCreateOrderbookIx(params, this.programId);\n return this.createBuildResult(params.authority, { orderbook }, ix);\n }\n\n async whitelistDepositToken(\n params: WhitelistDepositTokenParams\n ): Promise<BuildResult<{ globalDepositToken: PublicKey }>> {\n const [globalDepositToken] = pda.getGlobalDepositTokenPda(params.mint, this.programId);\n const ix = buildWhitelistDepositTokenIx(params, this.programId);\n return this.createBuildResult(params.authority, { globalDepositToken }, ix);\n }\n\n async depositToGlobal(\n params: DepositToGlobalParams\n ): Promise<BuildResult<{ userGlobalDeposit: PublicKey }>> {\n const [userGlobalDeposit] = pda.getUserGlobalDepositPda(params.user, params.mint, this.programId);\n const ix = buildDepositToGlobalIx(params, this.programId);\n return this.createBuildResult(params.user, { userGlobalDeposit }, ix);\n }\n\n async globalToMarketDeposit(\n params: GlobalToMarketDepositParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; userGlobalDeposit: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const [userGlobalDeposit] = pda.getUserGlobalDepositPda(\n params.user,\n params.depositMint,\n this.programId\n );\n const ix = buildGlobalToMarketDepositIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.user, { position, userGlobalDeposit }, ix);\n }\n\n async initPositionTokens(\n params: InitPositionTokensParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; lookupTable: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const [lookupTable] = pda.getPositionAltPda(position, params.recentSlot);\n const ix = buildInitPositionTokensIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.payer, { position, lookupTable }, ix);\n }\n\n async extendPositionTokens(\n params: ExtendPositionTokensParams,\n numOutcomes: number\n ): Promise<BuildResult<{ position: PublicKey; lookupTable: PublicKey }>> {\n const [position] = pda.getPositionPda(params.user, params.market, this.programId);\n const ix = buildExtendPositionTokensIx(params, numOutcomes, this.programId);\n return this.createBuildResult(params.payer, { position, lookupTable: params.lookupTable }, ix);\n }\n\n async depositAndSwap(\n params: DepositAndSwapParams\n ): Promise<BuildResult<{ takerPosition: PublicKey }>> {\n const [takerPosition] = pda.getPositionPda(\n params.takerOrder.maker,\n params.market,\n this.programId\n );\n const ix = buildDepositAndSwapIx(params, this.programId);\n return this.createBuildResult(params.operator, { takerPosition }, ix);\n }\n\n // ============================================================================\n // ORDER HELPERS\n // ============================================================================\n\n createBidOrder(params: BidOrderParams): Omit<SignedOrder, \"signature\"> {\n return createBidOrder(params);\n }\n\n createAskOrder(params: AskOrderParams): Omit<SignedOrder, \"signature\"> {\n return createAskOrder(params);\n }\n\n createSignedBidOrder(params: BidOrderParams, signer: Keypair): SignedOrder {\n return createSignedBidOrder(params, signer);\n }\n\n createSignedAskOrder(params: AskOrderParams, signer: Keypair): SignedOrder {\n return createSignedAskOrder(params, signer);\n }\n\n hashOrder(order: SignedOrder): Buffer {\n return hashOrder(order);\n }\n\n signOrder(order: SignedOrder, signer: Keypair): Buffer {\n return signOrder(order, signer);\n }\n\n signFullOrder(\n order: Omit<SignedOrder, \"signature\">,\n signer: Keypair\n ): SignedOrder {\n return signOrderFull(order, signer);\n }\n\n // ============================================================================\n // UTILITY METHODS\n // ============================================================================\n\n deriveConditionId(\n oracle: PublicKey,\n questionId: Buffer,\n numOutcomes: number\n ): Buffer {\n return deriveConditionId(oracle, questionId, numOutcomes);\n }\n\n getConditionalMints(\n market: PublicKey,\n depositMint: PublicKey,\n numOutcomes: number\n ): PublicKey[] {\n return pda\n .getAllConditionalMintPdas(\n market,\n depositMint,\n numOutcomes,\n this.programId\n )\n .map(([mint]) => mint);\n }\n\n getExchangePda(): PublicKey {\n return pda.getExchangePda(this.programId)[0];\n }\n\n getMarketPda(marketId: bigint): PublicKey {\n return pda.getMarketPda(marketId, this.programId)[0];\n }\n\n getPositionPda(owner: PublicKey, market: PublicKey): PublicKey {\n return pda.getPositionPda(owner, market, this.programId)[0];\n }\n\n getOrderStatusPda(orderHash: Buffer): PublicKey {\n return pda.getOrderStatusPda(orderHash, this.programId)[0];\n }\n\n getUserNoncePda(user: PublicKey): PublicKey {\n return pda.getUserNoncePda(user, this.programId)[0];\n }\n\n getOrderbookPda(mintA: PublicKey, mintB: PublicKey): PublicKey {\n return pda.getOrderbookPda(mintA, mintB, this.programId)[0];\n }\n\n getGlobalDepositTokenPda(mint: PublicKey): PublicKey {\n return pda.getGlobalDepositTokenPda(mint, this.programId)[0];\n }\n\n getUserGlobalDepositPda(user: PublicKey, mint: PublicKey): PublicKey {\n return pda.getUserGlobalDepositPda(user, mint, this.programId)[0];\n }\n}\n"]}
|
|
@@ -6,7 +6,7 @@ const spl_token_1 = require("@solana/spl-token");
|
|
|
6
6
|
/**
|
|
7
7
|
* Lightcone Pinocchio Program ID
|
|
8
8
|
*/
|
|
9
|
-
exports.PROGRAM_ID = new web3_js_1.PublicKey("
|
|
9
|
+
exports.PROGRAM_ID = new web3_js_1.PublicKey("8nzsoyHZFYig3uN3M717Q47MtLqzx2V2UAKaPTqDy5rV");
|
|
10
10
|
/**
|
|
11
11
|
* Address Lookup Table Program ID
|
|
12
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":";;;AAAA,6CAIyB;AACzB,iDAI2B;AAE3B;;GAEG;AACU,QAAA,UAAU,GAAG,IAAI,mBAAS,CACrC,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":";;;AAAA,6CAIyB;AACzB,iDAI2B;AAE3B;;GAEG;AACU,QAAA,UAAU,GAAG,IAAI,mBAAS,CACrC,8CAA8C,CAC/C,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,6CAA6C,CAC9C,CAAC;AAEF;;GAEG;AACU,QAAA,gBAAgB,GAAG,4BAAoB,CAAC;AAErD;;GAEG;AACU,QAAA,qBAAqB,GAAG,iCAAyB,CAAC;AAE/D;;GAEG;AACU,QAAA,2BAA2B,GAAG,uCAA+B,CAAC;AAE3E;;GAEG;AACU,QAAA,iBAAiB,GAAG,uBAAa,CAAC,SAAS,CAAC;AAEzD;;GAEG;AACU,QAAA,cAAc,GAAG,4BAAkB,CAAC;AAEjD;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,CAAC;IACnB,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC;IAChB,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,EAAE;IAChB,sBAAsB,EAAE,EAAE;IAC1B,eAAe,EAAE,EAAE;IACnB,kBAAkB,EAAE,EAAE;IACtB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,EAAE;IACpB,uBAAuB,EAAE,EAAE;IAC3B,iBAAiB,EAAE,EAAE;IACrB,wBAAwB,EAAE,EAAE;IAC5B,oBAAoB,EAAE,EAAE;IACxB,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,EAAE;CAClB,CAAC;AAEX;;;GAGG;AACU,QAAA,aAAa,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3E,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxE,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CAC3E,CAAC;AAEX;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,GAAG;IACX,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,GAAG;IACd,oBAAoB,EAAE,EAAE;CAChB,CAAC;AAEX;;GAEG;AACU,QAAA,UAAU,GAAG;IACxB,YAAY,EAAE,GAAG;IACjB,KAAK,EAAE,EAAE;IACT,SAAS,EAAE,EAAE;CACL,CAAC;AAEX;;GAEG;AACU,QAAA,YAAY,GAAG,CAAC,CAAC;AAE9B;;GAEG;AACU,QAAA,YAAY,GAAG,CAAC,CAAC;AAE9B;;GAEG;AACU,QAAA,UAAU,GAAG,CAAC,CAAC;AAE5B;;GAEG;AACU,QAAA,KAAK,GAAG;IACnB,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,QAAQ;IAChB,4BAA4B,EAAE,8BAA8B;IAC5D,qBAAqB,EAAE,uBAAuB;IAC9C,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,gBAAgB;CACxB,CAAC","sourcesContent":["import {\n PublicKey,\n SystemProgram,\n SYSVAR_RENT_PUBKEY,\n} from \"@solana/web3.js\";\nimport {\n TOKEN_PROGRAM_ID as SPL_TOKEN_PROGRAM_ID,\n TOKEN_2022_PROGRAM_ID as SPL_TOKEN_2022_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID as SPL_ASSOCIATED_TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\n\n/**\n * Lightcone Pinocchio Program ID\n */\nexport const PROGRAM_ID = new PublicKey(\n \"8nzsoyHZFYig3uN3M717Q47MtLqzx2V2UAKaPTqDy5rV\"\n);\n\n/**\n * Address Lookup Table Program ID\n */\nexport const ALT_PROGRAM_ID = new PublicKey(\n \"AddressLookupTab1e1111111111111111111111111\"\n);\n\n/**\n * SPL Token Program ID\n */\nexport const TOKEN_PROGRAM_ID = SPL_TOKEN_PROGRAM_ID;\n\n/**\n * Token-2022 Program ID (for conditional tokens)\n */\nexport const TOKEN_2022_PROGRAM_ID = SPL_TOKEN_2022_PROGRAM_ID;\n\n/**\n * Associated Token Account Program ID\n */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID = SPL_ASSOCIATED_TOKEN_PROGRAM_ID;\n\n/**\n * System Program ID\n */\nexport const SYSTEM_PROGRAM_ID = SystemProgram.programId;\n\n/**\n * Rent Sysvar ID\n */\nexport const RENT_SYSVAR_ID = SYSVAR_RENT_PUBKEY;\n\n/**\n * Instruction discriminators (single byte indices)\n */\nexport const INSTRUCTION = {\n INITIALIZE: 0,\n CREATE_MARKET: 1,\n ADD_DEPOSIT_MINT: 2,\n MINT_COMPLETE_SET: 3,\n MERGE_COMPLETE_SET: 4,\n CANCEL_ORDER: 5,\n INCREMENT_NONCE: 6,\n SETTLE_MARKET: 7,\n REDEEM_WINNINGS: 8,\n SET_PAUSED: 9,\n SET_OPERATOR: 10,\n WITHDRAW_FROM_POSITION: 11,\n ACTIVATE_MARKET: 12,\n MATCH_ORDERS_MULTI: 13,\n SET_AUTHORITY: 14,\n CREATE_ORDERBOOK: 15,\n WHITELIST_DEPOSIT_TOKEN: 16,\n DEPOSIT_TO_GLOBAL: 17,\n GLOBAL_TO_MARKET_DEPOSIT: 18,\n INIT_POSITION_TOKENS: 19,\n DEPOSIT_AND_SWAP: 20,\n EXTEND_POSITION_TOKENS: 21,\n} as const;\n\n/**\n * Account discriminators (8 bytes each)\n * SHA-256 hash bytes matching the on-chain program\n */\nexport const DISCRIMINATOR = {\n EXCHANGE: Buffer.from([0x1e, 0xc8, 0xdc, 0x95, 0x03, 0x3d, 0x68, 0x32]),\n MARKET: Buffer.from([0xdb, 0xbe, 0xd5, 0x37, 0x00, 0xe3, 0xc6, 0x9a]),\n ORDER_STATUS: Buffer.from([0x2e, 0x5a, 0xf1, 0x49, 0xb2, 0x68, 0x41, 0x03]),\n USER_NONCE: Buffer.from([0xeb, 0x85, 0x01, 0xf3, 0x12, 0x87, 0x58, 0xe0]),\n POSITION: Buffer.from([0xaa, 0xbc, 0x8f, 0xe4, 0x7a, 0x40, 0xf7, 0xd0]),\n ORDERBOOK: Buffer.from([0x2b, 0x22, 0x19, 0x71, 0xc3, 0x45, 0x48, 0x07]),\n GLOBAL_DEPOSIT_TOKEN: Buffer.from([0x25, 0xbe, 0xa1, 0xe8, 0x7b, 0x92, 0x2a, 0x57]),\n} as const;\n\n/**\n * Account sizes in bytes\n */\nexport const ACCOUNT_SIZE = {\n EXCHANGE: 88,\n MARKET: 120,\n ORDER_STATUS: 24,\n USER_NONCE: 16,\n POSITION: 80,\n ORDERBOOK: 144,\n GLOBAL_DEPOSIT_TOKEN: 48,\n} as const;\n\n/**\n * Order sizes in bytes\n */\nexport const ORDER_SIZE = {\n SIGNED_ORDER: 225,\n ORDER: 29,\n SIGNATURE: 64,\n} as const;\n\n/**\n * Maximum number of outcomes per market (2-6)\n */\nexport const MAX_OUTCOMES = 6;\n\n/**\n * Minimum number of outcomes per market\n */\nexport const MIN_OUTCOMES = 2;\n\n/**\n * Maximum number of makers per match_orders_multi instruction\n */\nexport const MAX_MAKERS = 5;\n\n/**\n * PDA Seeds\n */\nexport const SEEDS = {\n CENTRAL_STATE: \"central_state\",\n MARKET: \"market\",\n MARKET_DEPOSIT_TOKEN_ACCOUNT: \"market_deposit_token_account\",\n MARKET_MINT_AUTHORITY: \"market_mint_authority\",\n CONDITIONAL_MINT: \"conditional_mint\",\n ORDER_STATUS: \"order_status\",\n USER_NONCE: \"user_nonce\",\n POSITION: \"position\",\n ORDERBOOK: \"orderbook\",\n GLOBAL_DEPOSIT: \"global_deposit\",\n} as const;\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Keypair, PublicKey } from "@solana/web3.js";
|
|
2
2
|
import { type OrderbookDecimals } from "../shared/scaling";
|
|
3
|
-
import type { SubmitOrderRequest, TimeInForce, TriggerType } from "../shared";
|
|
3
|
+
import type { DepositSource, SubmitOrderRequest, TimeInForce, TriggerType } from "../shared";
|
|
4
|
+
import { type SubmitRequestOptions } from "./orders";
|
|
4
5
|
import { OrderSide, type SignedOrder } from "./types";
|
|
5
6
|
interface OrderFields {
|
|
6
7
|
nonce?: number;
|
|
@@ -14,6 +15,7 @@ interface OrderFields {
|
|
|
14
15
|
expiration: bigint;
|
|
15
16
|
priceRaw?: string;
|
|
16
17
|
sizeRaw?: string;
|
|
18
|
+
depositSource?: DepositSource;
|
|
17
19
|
}
|
|
18
20
|
export interface OrderEnvelope {
|
|
19
21
|
nonce(value: number): this;
|
|
@@ -29,6 +31,7 @@ export interface OrderEnvelope {
|
|
|
29
31
|
expiration(value: bigint): this;
|
|
30
32
|
price(value: string): this;
|
|
31
33
|
size(value: string): this;
|
|
34
|
+
depositSource(value: DepositSource): this;
|
|
32
35
|
applyScaling(decimals: OrderbookDecimals): this;
|
|
33
36
|
payload(): Omit<SignedOrder, "signature">;
|
|
34
37
|
sign(keypair: Keypair, orderbookId: string): SubmitOrderRequest;
|
|
@@ -50,6 +53,7 @@ declare class BaseEnvelope {
|
|
|
50
53
|
expiration(value: bigint): this;
|
|
51
54
|
price(value: string): this;
|
|
52
55
|
size(value: string): this;
|
|
56
|
+
depositSource(value: DepositSource): this;
|
|
53
57
|
applyScaling(decimals: OrderbookDecimals): this;
|
|
54
58
|
payload(): Omit<SignedOrder, "signature">;
|
|
55
59
|
fieldsNonce(): number | undefined;
|
|
@@ -61,7 +65,8 @@ declare class BaseEnvelope {
|
|
|
61
65
|
fieldsAmountIn(): bigint | undefined;
|
|
62
66
|
fieldsAmountOut(): bigint | undefined;
|
|
63
67
|
fieldsExpiration(): bigint;
|
|
64
|
-
|
|
68
|
+
fieldsDepositSource(): DepositSource | undefined;
|
|
69
|
+
protected finalizeWithHexSignature(signatureHex: string, orderbookId: string, options?: SubmitRequestOptions): SubmitOrderRequest;
|
|
65
70
|
}
|
|
66
71
|
export declare class LimitOrderEnvelope extends BaseEnvelope implements OrderEnvelope {
|
|
67
72
|
static new(): LimitOrderEnvelope;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/program/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,
|
|
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
|
@@ -101,6 +101,10 @@ class BaseEnvelope {
|
|
|
101
101
|
this.fields.sizeRaw = value;
|
|
102
102
|
return this;
|
|
103
103
|
}
|
|
104
|
+
depositSource(value) {
|
|
105
|
+
this.fields.depositSource = value;
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
104
108
|
applyScaling(decimals) {
|
|
105
109
|
if (!this.fields.priceRaw)
|
|
106
110
|
throw error_1.ProgramSdkError.missingField("price");
|
|
@@ -143,15 +147,18 @@ class BaseEnvelope {
|
|
|
143
147
|
fieldsExpiration() {
|
|
144
148
|
return this.fields.expiration;
|
|
145
149
|
}
|
|
146
|
-
|
|
150
|
+
fieldsDepositSource() {
|
|
151
|
+
return this.fields.depositSource;
|
|
152
|
+
}
|
|
153
|
+
finalizeWithHexSignature(signatureHex, orderbookId, options = {}) {
|
|
147
154
|
const unsigned = toUnsignedOrder(this.fields);
|
|
148
|
-
return {
|
|
149
|
-
...
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
};
|
|
155
|
+
return (0, orders_1.toSubmitRequest)({
|
|
156
|
+
...unsigned,
|
|
157
|
+
signature: Buffer.from(signatureHex, "hex"),
|
|
158
|
+
}, orderbookId, {
|
|
159
|
+
...options,
|
|
160
|
+
depositSource: this.fields.depositSource,
|
|
161
|
+
});
|
|
155
162
|
}
|
|
156
163
|
}
|
|
157
164
|
class LimitOrderEnvelope extends BaseEnvelope {
|
|
@@ -160,7 +167,9 @@ class LimitOrderEnvelope extends BaseEnvelope {
|
|
|
160
167
|
}
|
|
161
168
|
sign(keypair, orderbookId) {
|
|
162
169
|
const signed = (0, orders_1.signOrderFull)(this.payload(), keypair);
|
|
163
|
-
return (0, orders_1.toSubmitRequest)(signed, orderbookId
|
|
170
|
+
return (0, orders_1.toSubmitRequest)(signed, orderbookId, {
|
|
171
|
+
depositSource: this.fieldsDepositSource(),
|
|
172
|
+
});
|
|
164
173
|
}
|
|
165
174
|
finalize(signatureBase58, orderbookId) {
|
|
166
175
|
const signatureHex = Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex");
|
|
@@ -225,22 +234,21 @@ class TriggerOrderEnvelope extends BaseEnvelope {
|
|
|
225
234
|
sign(keypair, orderbookId) {
|
|
226
235
|
this.requireTriggerFields();
|
|
227
236
|
const signed = (0, orders_1.signOrderFull)(this.payload(), keypair);
|
|
228
|
-
return {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
};
|
|
237
|
+
return (0, orders_1.toSubmitRequest)(signed, orderbookId, {
|
|
238
|
+
timeInForce: this.timeInForceValue,
|
|
239
|
+
triggerPrice: this.triggerPriceValue,
|
|
240
|
+
triggerType: this.triggerTypeValue,
|
|
241
|
+
depositSource: this.fieldsDepositSource(),
|
|
242
|
+
});
|
|
234
243
|
}
|
|
235
244
|
finalize(signatureBase58, orderbookId) {
|
|
236
245
|
this.requireTriggerFields();
|
|
237
246
|
const signatureHex = Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex");
|
|
238
|
-
return {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
};
|
|
247
|
+
return this.finalizeWithHexSignature(signatureHex, orderbookId, {
|
|
248
|
+
timeInForce: this.timeInForceValue,
|
|
249
|
+
triggerPrice: this.triggerPriceValue,
|
|
250
|
+
triggerType: this.triggerTypeValue,
|
|
251
|
+
});
|
|
244
252
|
}
|
|
245
253
|
requireTriggerFields() {
|
|
246
254
|
if (this.triggerPriceValue === undefined) {
|