@lightconexyz/lightcone-sdk 0.1.0
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 +232 -0
- package/dist/api/client.d.ts +225 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +452 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/error.d.ts +58 -0
- package/dist/api/error.d.ts.map +1 -0
- package/dist/api/error.js +98 -0
- package/dist/api/error.js.map +1 -0
- package/dist/api/index.d.ts +23 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +51 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/types/admin.d.ts +49 -0
- package/dist/api/types/admin.d.ts.map +1 -0
- package/dist/api/types/admin.js +13 -0
- package/dist/api/types/admin.js.map +1 -0
- package/dist/api/types/index.d.ts +14 -0
- package/dist/api/types/index.d.ts.map +1 -0
- package/dist/api/types/index.js +13 -0
- package/dist/api/types/index.js.map +1 -0
- package/dist/api/types/market.d.ts +186 -0
- package/dist/api/types/market.d.ts.map +1 -0
- package/dist/api/types/market.js +6 -0
- package/dist/api/types/market.js.map +1 -0
- package/dist/api/types/order.d.ts +190 -0
- package/dist/api/types/order.d.ts.map +1 -0
- package/dist/api/types/order.js +6 -0
- package/dist/api/types/order.js.map +1 -0
- package/dist/api/types/orderbook.d.ts +36 -0
- package/dist/api/types/orderbook.d.ts.map +1 -0
- package/dist/api/types/orderbook.js +6 -0
- package/dist/api/types/orderbook.js.map +1 -0
- package/dist/api/types/position.d.ts +60 -0
- package/dist/api/types/position.d.ts.map +1 -0
- package/dist/api/types/position.js +6 -0
- package/dist/api/types/position.js.map +1 -0
- package/dist/api/types/price_history.d.ts +68 -0
- package/dist/api/types/price_history.d.ts.map +1 -0
- package/dist/api/types/price_history.js +13 -0
- package/dist/api/types/price_history.js.map +1 -0
- package/dist/api/types/trade.d.ts +67 -0
- package/dist/api/types/trade.d.ts.map +1 -0
- package/dist/api/types/trade.js +13 -0
- package/dist/api/types/trade.js.map +1 -0
- package/dist/api/validation.d.ts +24 -0
- package/dist/api/validation.d.ts.map +1 -0
- package/dist/api/validation.js +53 -0
- package/dist/api/validation.js.map +1 -0
- package/dist/auth.d.ts +80 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +149 -0
- package/dist/auth.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -0
- package/dist/index.js.map +1 -0
- package/dist/network.d.ts +5 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +8 -0
- package/dist/network.js.map +1 -0
- package/dist/program/accounts.d.ts +98 -0
- package/dist/program/accounts.d.ts.map +1 -0
- package/dist/program/accounts.js +319 -0
- package/dist/program/accounts.js.map +1 -0
- package/dist/program/builder.d.ts +94 -0
- package/dist/program/builder.d.ts.map +1 -0
- package/dist/program/builder.js +175 -0
- package/dist/program/builder.js.map +1 -0
- package/dist/program/client.d.ts +56 -0
- package/dist/program/client.d.ts.map +1 -0
- package/dist/program/client.js +288 -0
- package/dist/program/client.js.map +1 -0
- package/dist/program/constants.d.ts +108 -0
- package/dist/program/constants.d.ts.map +1 -0
- package/dist/program/constants.js +112 -0
- package/dist/program/constants.js.map +1 -0
- package/dist/program/index.d.ts +14 -0
- package/dist/program/index.d.ts.map +1 -0
- package/dist/program/index.js +149 -0
- package/dist/program/index.js.map +1 -0
- package/dist/program/instructions.d.ts +248 -0
- package/dist/program/instructions.d.ts.map +1 -0
- package/dist/program/instructions.js +692 -0
- package/dist/program/instructions.js.map +1 -0
- package/dist/program/orders.d.ts +151 -0
- package/dist/program/orders.d.ts.map +1 -0
- package/dist/program/orders.js +417 -0
- package/dist/program/orders.js.map +1 -0
- package/dist/program/pda.d.ts +73 -0
- package/dist/program/pda.d.ts.map +1 -0
- package/dist/program/pda.js +131 -0
- package/dist/program/pda.js.map +1 -0
- package/dist/program/types.d.ts +380 -0
- package/dist/program/types.d.ts.map +1 -0
- package/dist/program/types.js +27 -0
- package/dist/program/types.js.map +1 -0
- package/dist/program/utils.d.ts +91 -0
- package/dist/program/utils.d.ts.map +1 -0
- package/dist/program/utils.js +219 -0
- package/dist/program/utils.js.map +1 -0
- package/dist/shared/index.d.ts +8 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +18 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/price.d.ts +41 -0
- package/dist/shared/price.d.ts.map +1 -0
- package/dist/shared/price.js +57 -0
- package/dist/shared/price.js.map +1 -0
- package/dist/shared/scaling.d.ts +45 -0
- package/dist/shared/scaling.d.ts.map +1 -0
- package/dist/shared/scaling.js +84 -0
- package/dist/shared/scaling.js.map +1 -0
- package/dist/shared/types.d.ts +19 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +23 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/websocket/client.d.ts +238 -0
- package/dist/websocket/client.d.ts.map +1 -0
- package/dist/websocket/client.js +580 -0
- package/dist/websocket/client.js.map +1 -0
- package/dist/websocket/error.d.ts +47 -0
- package/dist/websocket/error.d.ts.map +1 -0
- package/dist/websocket/error.js +83 -0
- package/dist/websocket/error.js.map +1 -0
- package/dist/websocket/handlers.d.ts +97 -0
- package/dist/websocket/handlers.d.ts.map +1 -0
- package/dist/websocket/handlers.js +277 -0
- package/dist/websocket/handlers.js.map +1 -0
- package/dist/websocket/index.d.ts +38 -0
- package/dist/websocket/index.d.ts.map +1 -0
- package/dist/websocket/index.js +75 -0
- package/dist/websocket/index.js.map +1 -0
- package/dist/websocket/state/index.d.ts +7 -0
- package/dist/websocket/state/index.d.ts.map +1 -0
- package/dist/websocket/state/index.js +14 -0
- package/dist/websocket/state/index.js.map +1 -0
- package/dist/websocket/state/orderbook.d.ts +107 -0
- package/dist/websocket/state/orderbook.d.ts.map +1 -0
- package/dist/websocket/state/orderbook.js +293 -0
- package/dist/websocket/state/orderbook.js.map +1 -0
- package/dist/websocket/state/price.d.ts +108 -0
- package/dist/websocket/state/price.d.ts.map +1 -0
- package/dist/websocket/state/price.js +243 -0
- package/dist/websocket/state/price.js.map +1 -0
- package/dist/websocket/state/user.d.ts +83 -0
- package/dist/websocket/state/user.d.ts.map +1 -0
- package/dist/websocket/state/user.js +228 -0
- package/dist/websocket/state/user.js.map +1 -0
- package/dist/websocket/subscriptions.d.ts +143 -0
- package/dist/websocket/subscriptions.d.ts.map +1 -0
- package/dist/websocket/subscriptions.js +244 -0
- package/dist/websocket/subscriptions.js.map +1 -0
- package/dist/websocket/types.d.ts +417 -0
- package/dist/websocket/types.d.ts.map +1 -0
- package/dist/websocket/types.js +195 -0
- package/dist/websocket/types.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Connection, PublicKey, Keypair } from "@solana/web3.js";
|
|
2
|
+
import { Exchange, Market, Position, OrderStatus, Orderbook, BuildResult, InitializeParams, CreateMarketParams, AddDepositMintParams, MintCompleteSetParams, MergeCompleteSetParams, SettleMarketParams, RedeemWinningsParams, WithdrawFromPositionParams, ActivateMarketParams, MatchOrdersMultiParams, SetAuthorityParams, CreateOrderbookParams, SignedOrder, BidOrderParams, AskOrderParams, InitializeAccounts, CreateMarketAccounts, AddDepositMintAccounts, MintCompleteSetAccounts, MergeCompleteSetAccounts, CancelOrderAccounts, IncrementNonceAccounts, SettleMarketAccounts, RedeemWinningsAccounts, ActivateMarketAccounts, MatchOrdersMultiAccounts } from "./types";
|
|
3
|
+
import * as pda from "./pda";
|
|
4
|
+
/**
|
|
5
|
+
* LightconePinocchioClient - SDK for interacting with the Lightcone Pinocchio program
|
|
6
|
+
*/
|
|
7
|
+
export declare class LightconePinocchioClient {
|
|
8
|
+
readonly connection: Connection;
|
|
9
|
+
readonly programId: PublicKey;
|
|
10
|
+
readonly pda: typeof pda;
|
|
11
|
+
constructor(connection: Connection, programId?: PublicKey);
|
|
12
|
+
getExchange(): Promise<Exchange>;
|
|
13
|
+
getMarket(marketId: bigint): Promise<Market>;
|
|
14
|
+
getMarketByPubkey(market: PublicKey): Promise<Market>;
|
|
15
|
+
getPosition(owner: PublicKey, market: PublicKey): Promise<Position | null>;
|
|
16
|
+
getOrderStatus(orderHash: Buffer): Promise<OrderStatus | null>;
|
|
17
|
+
getUserNonce(user: PublicKey): Promise<bigint>;
|
|
18
|
+
getNextNonce(user: PublicKey): Promise<number>;
|
|
19
|
+
getNextMarketId(): Promise<bigint>;
|
|
20
|
+
getOrderbook(mintA: PublicKey, mintB: PublicKey): Promise<Orderbook | null>;
|
|
21
|
+
private createBuildResult;
|
|
22
|
+
initialize(params: InitializeParams): Promise<BuildResult<InitializeAccounts>>;
|
|
23
|
+
createMarket(params: CreateMarketParams): Promise<BuildResult<CreateMarketAccounts>>;
|
|
24
|
+
addDepositMint(params: AddDepositMintParams, numOutcomes: number): Promise<BuildResult<AddDepositMintAccounts>>;
|
|
25
|
+
mintCompleteSet(params: MintCompleteSetParams, numOutcomes: number): Promise<BuildResult<MintCompleteSetAccounts>>;
|
|
26
|
+
mergeCompleteSet(params: MergeCompleteSetParams, numOutcomes: number): Promise<BuildResult<MergeCompleteSetAccounts>>;
|
|
27
|
+
cancelOrder(maker: PublicKey, order: SignedOrder): Promise<BuildResult<CancelOrderAccounts>>;
|
|
28
|
+
incrementNonce(user: PublicKey): Promise<BuildResult<IncrementNonceAccounts>>;
|
|
29
|
+
settleMarket(params: SettleMarketParams): Promise<BuildResult<SettleMarketAccounts>>;
|
|
30
|
+
redeemWinnings(params: RedeemWinningsParams, winningOutcome: number): Promise<BuildResult<RedeemWinningsAccounts>>;
|
|
31
|
+
setPaused(authority: PublicKey, paused: boolean): Promise<BuildResult<{
|
|
32
|
+
exchange: PublicKey;
|
|
33
|
+
}>>;
|
|
34
|
+
setOperator(authority: PublicKey, newOperator: PublicKey): Promise<BuildResult<{
|
|
35
|
+
exchange: PublicKey;
|
|
36
|
+
}>>;
|
|
37
|
+
withdrawFromPosition(params: WithdrawFromPositionParams, isToken2022: boolean): Promise<BuildResult<{
|
|
38
|
+
position: PublicKey;
|
|
39
|
+
}>>;
|
|
40
|
+
activateMarket(params: ActivateMarketParams): Promise<BuildResult<ActivateMarketAccounts>>;
|
|
41
|
+
matchOrdersMulti(params: MatchOrdersMultiParams): Promise<BuildResult<MatchOrdersMultiAccounts>>;
|
|
42
|
+
setAuthority(params: SetAuthorityParams): Promise<BuildResult<{
|
|
43
|
+
exchange: PublicKey;
|
|
44
|
+
}>>;
|
|
45
|
+
createOrderbook(params: CreateOrderbookParams): Promise<BuildResult<{
|
|
46
|
+
orderbook: PublicKey;
|
|
47
|
+
}>>;
|
|
48
|
+
createBidOrder(params: BidOrderParams): Omit<SignedOrder, "signature">;
|
|
49
|
+
createAskOrder(params: AskOrderParams): Omit<SignedOrder, "signature">;
|
|
50
|
+
hashOrder(order: SignedOrder): Buffer;
|
|
51
|
+
signOrder(order: SignedOrder, signer: Keypair): Buffer;
|
|
52
|
+
signFullOrder(order: Omit<SignedOrder, "signature">, signer: Keypair): SignedOrder;
|
|
53
|
+
deriveConditionId(oracle: PublicKey, questionId: Buffer, numOutcomes: number): Buffer;
|
|
54
|
+
getConditionalMints(market: PublicKey, depositMint: PublicKey, numOutcomes: number): PublicKey[];
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/program/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.LightconePinocchioClient = void 0;
|
|
37
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
38
|
+
const constants_1 = require("./constants");
|
|
39
|
+
const pda = __importStar(require("./pda"));
|
|
40
|
+
const accounts_1 = require("./accounts");
|
|
41
|
+
const instructions_1 = require("./instructions");
|
|
42
|
+
const orders_1 = require("./orders");
|
|
43
|
+
const utils_1 = require("./utils");
|
|
44
|
+
/**
|
|
45
|
+
* LightconePinocchioClient - SDK for interacting with the Lightcone Pinocchio program
|
|
46
|
+
*/
|
|
47
|
+
class LightconePinocchioClient {
|
|
48
|
+
connection;
|
|
49
|
+
programId;
|
|
50
|
+
pda = pda;
|
|
51
|
+
constructor(connection, programId = constants_1.PROGRAM_ID) {
|
|
52
|
+
this.connection = connection;
|
|
53
|
+
this.programId = programId;
|
|
54
|
+
}
|
|
55
|
+
// ============================================================================
|
|
56
|
+
// ACCOUNT FETCHERS
|
|
57
|
+
// ============================================================================
|
|
58
|
+
async getExchange() {
|
|
59
|
+
const [exchangePda] = pda.getExchangePda(this.programId);
|
|
60
|
+
const accountInfo = await this.connection.getAccountInfo(exchangePda);
|
|
61
|
+
if (!accountInfo) {
|
|
62
|
+
throw new Error("Exchange account not found. Protocol not initialized.");
|
|
63
|
+
}
|
|
64
|
+
return (0, accounts_1.deserializeExchange)(accountInfo.data);
|
|
65
|
+
}
|
|
66
|
+
async getMarket(marketId) {
|
|
67
|
+
const [marketPda] = pda.getMarketPda(marketId, this.programId);
|
|
68
|
+
const accountInfo = await this.connection.getAccountInfo(marketPda);
|
|
69
|
+
if (!accountInfo) {
|
|
70
|
+
throw new Error(`Market ${marketId} not found`);
|
|
71
|
+
}
|
|
72
|
+
return (0, accounts_1.deserializeMarket)(accountInfo.data);
|
|
73
|
+
}
|
|
74
|
+
async getMarketByPubkey(market) {
|
|
75
|
+
const accountInfo = await this.connection.getAccountInfo(market);
|
|
76
|
+
if (!accountInfo) {
|
|
77
|
+
throw new Error(`Market not found at ${market.toBase58()}`);
|
|
78
|
+
}
|
|
79
|
+
return (0, accounts_1.deserializeMarket)(accountInfo.data);
|
|
80
|
+
}
|
|
81
|
+
async getPosition(owner, market) {
|
|
82
|
+
const [positionPda] = pda.getPositionPda(owner, market, this.programId);
|
|
83
|
+
const accountInfo = await this.connection.getAccountInfo(positionPda);
|
|
84
|
+
if (!accountInfo) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return (0, accounts_1.deserializePosition)(accountInfo.data);
|
|
88
|
+
}
|
|
89
|
+
async getOrderStatus(orderHash) {
|
|
90
|
+
const [orderStatusPda] = pda.getOrderStatusPda(orderHash, this.programId);
|
|
91
|
+
const accountInfo = await this.connection.getAccountInfo(orderStatusPda);
|
|
92
|
+
if (!accountInfo) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return (0, accounts_1.deserializeOrderStatus)(accountInfo.data);
|
|
96
|
+
}
|
|
97
|
+
async getUserNonce(user) {
|
|
98
|
+
const [userNoncePda] = pda.getUserNoncePda(user, this.programId);
|
|
99
|
+
const accountInfo = await this.connection.getAccountInfo(userNoncePda);
|
|
100
|
+
if (!accountInfo) {
|
|
101
|
+
return 0n;
|
|
102
|
+
}
|
|
103
|
+
const nonce = (0, accounts_1.deserializeUserNonce)(accountInfo.data);
|
|
104
|
+
return nonce.nonce;
|
|
105
|
+
}
|
|
106
|
+
async getNextNonce(user) {
|
|
107
|
+
const nonce = await this.getUserNonce(user);
|
|
108
|
+
if (nonce > 0xffffffffn) {
|
|
109
|
+
throw new Error(`Nonce exceeds u32 range: ${nonce}`);
|
|
110
|
+
}
|
|
111
|
+
return Number(nonce);
|
|
112
|
+
}
|
|
113
|
+
async getNextMarketId() {
|
|
114
|
+
const exchange = await this.getExchange();
|
|
115
|
+
return exchange.marketCount;
|
|
116
|
+
}
|
|
117
|
+
async getOrderbook(mintA, mintB) {
|
|
118
|
+
const [orderbookPda] = pda.getOrderbookPda(mintA, mintB, this.programId);
|
|
119
|
+
const accountInfo = await this.connection.getAccountInfo(orderbookPda);
|
|
120
|
+
if (!accountInfo) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
return (0, accounts_1.deserializeOrderbook)(accountInfo.data);
|
|
124
|
+
}
|
|
125
|
+
// ============================================================================
|
|
126
|
+
// TRANSACTION BUILDERS
|
|
127
|
+
// ============================================================================
|
|
128
|
+
async createBuildResult(feePayer, accounts, ...instructions) {
|
|
129
|
+
const { blockhash, lastValidBlockHeight } = await this.connection.getLatestBlockhash();
|
|
130
|
+
const transaction = new web3_js_1.Transaction({
|
|
131
|
+
feePayer,
|
|
132
|
+
blockhash,
|
|
133
|
+
lastValidBlockHeight,
|
|
134
|
+
});
|
|
135
|
+
for (const ix of instructions) {
|
|
136
|
+
transaction.add(ix);
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
transaction,
|
|
140
|
+
accounts,
|
|
141
|
+
serialize: () => transaction
|
|
142
|
+
.serialize({ requireAllSignatures: false, verifySignatures: false })
|
|
143
|
+
.toString("base64"),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
async initialize(params) {
|
|
147
|
+
const [exchange] = pda.getExchangePda(this.programId);
|
|
148
|
+
const ix = (0, instructions_1.buildInitializeIx)(params, this.programId);
|
|
149
|
+
return this.createBuildResult(params.authority, { exchange }, ix);
|
|
150
|
+
}
|
|
151
|
+
async createMarket(params) {
|
|
152
|
+
const marketId = await this.getNextMarketId();
|
|
153
|
+
const [exchange] = pda.getExchangePda(this.programId);
|
|
154
|
+
const [market] = pda.getMarketPda(marketId, this.programId);
|
|
155
|
+
const ix = (0, instructions_1.buildCreateMarketIx)(params, marketId, this.programId);
|
|
156
|
+
return this.createBuildResult(params.authority, { exchange, market }, ix);
|
|
157
|
+
}
|
|
158
|
+
async addDepositMint(params, numOutcomes) {
|
|
159
|
+
const [market] = pda.getMarketPda(params.marketId, this.programId);
|
|
160
|
+
const [vault] = pda.getVaultPda(params.depositMint, market, this.programId);
|
|
161
|
+
const [mintAuthority] = pda.getMintAuthorityPda(market, this.programId);
|
|
162
|
+
const conditionalMints = pda
|
|
163
|
+
.getAllConditionalMintPdas(market, params.depositMint, numOutcomes, this.programId)
|
|
164
|
+
.map(([mint]) => mint);
|
|
165
|
+
const ix = (0, instructions_1.buildAddDepositMintIx)(params, market, numOutcomes, this.programId);
|
|
166
|
+
return this.createBuildResult(params.authority, { market, vault, mintAuthority, conditionalMints }, ix);
|
|
167
|
+
}
|
|
168
|
+
async mintCompleteSet(params, numOutcomes) {
|
|
169
|
+
const [vault] = pda.getVaultPda(params.depositMint, params.market, this.programId);
|
|
170
|
+
const [position] = pda.getPositionPda(params.user, params.market, this.programId);
|
|
171
|
+
const conditionalMints = pda
|
|
172
|
+
.getAllConditionalMintPdas(params.market, params.depositMint, numOutcomes, this.programId)
|
|
173
|
+
.map(([mint]) => mint);
|
|
174
|
+
const ix = (0, instructions_1.buildMintCompleteSetIx)(params, numOutcomes, this.programId);
|
|
175
|
+
return this.createBuildResult(params.user, { position, vault, conditionalMints }, ix);
|
|
176
|
+
}
|
|
177
|
+
async mergeCompleteSet(params, numOutcomes) {
|
|
178
|
+
const [vault] = pda.getVaultPda(params.depositMint, params.market, this.programId);
|
|
179
|
+
const [position] = pda.getPositionPda(params.user, params.market, this.programId);
|
|
180
|
+
const conditionalMints = pda
|
|
181
|
+
.getAllConditionalMintPdas(params.market, params.depositMint, numOutcomes, this.programId)
|
|
182
|
+
.map(([mint]) => mint);
|
|
183
|
+
const ix = (0, instructions_1.buildMergeCompleteSetIx)(params, numOutcomes, this.programId);
|
|
184
|
+
return this.createBuildResult(params.user, { position, vault, conditionalMints }, ix);
|
|
185
|
+
}
|
|
186
|
+
async cancelOrder(maker, order) {
|
|
187
|
+
const orderHash = (0, orders_1.hashOrder)(order);
|
|
188
|
+
const [orderStatus] = pda.getOrderStatusPda(orderHash, this.programId);
|
|
189
|
+
const ix = (0, instructions_1.buildCancelOrderIx)(maker, order, this.programId);
|
|
190
|
+
return this.createBuildResult(maker, { orderStatus }, ix);
|
|
191
|
+
}
|
|
192
|
+
async incrementNonce(user) {
|
|
193
|
+
const [userNonce] = pda.getUserNoncePda(user, this.programId);
|
|
194
|
+
const ix = (0, instructions_1.buildIncrementNonceIx)(user, this.programId);
|
|
195
|
+
return this.createBuildResult(user, { userNonce }, ix);
|
|
196
|
+
}
|
|
197
|
+
async settleMarket(params) {
|
|
198
|
+
const [exchange] = pda.getExchangePda(this.programId);
|
|
199
|
+
const [market] = pda.getMarketPda(params.marketId, this.programId);
|
|
200
|
+
const ix = (0, instructions_1.buildSettleMarketIx)(params, this.programId);
|
|
201
|
+
return this.createBuildResult(params.oracle, { exchange, market }, ix);
|
|
202
|
+
}
|
|
203
|
+
async redeemWinnings(params, winningOutcome) {
|
|
204
|
+
const [vault] = pda.getVaultPda(params.depositMint, params.market, this.programId);
|
|
205
|
+
const [position] = pda.getPositionPda(params.user, params.market, this.programId);
|
|
206
|
+
const [winningMint] = pda.getConditionalMintPda(params.market, params.depositMint, winningOutcome, this.programId);
|
|
207
|
+
const ix = (0, instructions_1.buildRedeemWinningsIx)(params, winningOutcome, this.programId);
|
|
208
|
+
return this.createBuildResult(params.user, { position, vault, winningMint }, ix);
|
|
209
|
+
}
|
|
210
|
+
async setPaused(authority, paused) {
|
|
211
|
+
const [exchange] = pda.getExchangePda(this.programId);
|
|
212
|
+
const ix = (0, instructions_1.buildSetPausedIx)(authority, paused, this.programId);
|
|
213
|
+
return this.createBuildResult(authority, { exchange }, ix);
|
|
214
|
+
}
|
|
215
|
+
async setOperator(authority, newOperator) {
|
|
216
|
+
const [exchange] = pda.getExchangePda(this.programId);
|
|
217
|
+
const ix = (0, instructions_1.buildSetOperatorIx)(authority, newOperator, this.programId);
|
|
218
|
+
return this.createBuildResult(authority, { exchange }, ix);
|
|
219
|
+
}
|
|
220
|
+
async withdrawFromPosition(params, isToken2022) {
|
|
221
|
+
const [position] = pda.getPositionPda(params.user, params.market, this.programId);
|
|
222
|
+
const ix = (0, instructions_1.buildWithdrawFromPositionIx)(params, isToken2022, this.programId);
|
|
223
|
+
return this.createBuildResult(params.user, { position }, ix);
|
|
224
|
+
}
|
|
225
|
+
async activateMarket(params) {
|
|
226
|
+
const [exchange] = pda.getExchangePda(this.programId);
|
|
227
|
+
const [market] = pda.getMarketPda(params.marketId, this.programId);
|
|
228
|
+
const ix = (0, instructions_1.buildActivateMarketIx)(params, this.programId);
|
|
229
|
+
return this.createBuildResult(params.authority, { exchange, market }, ix);
|
|
230
|
+
}
|
|
231
|
+
async matchOrdersMulti(params) {
|
|
232
|
+
const takerOrderHash = (0, orders_1.hashOrder)(params.takerOrder);
|
|
233
|
+
const [takerOrderStatus] = pda.getOrderStatusPda(takerOrderHash, this.programId);
|
|
234
|
+
const [takerPosition] = pda.getPositionPda(params.takerOrder.maker, params.market, this.programId);
|
|
235
|
+
const makerOrderStatuses = [];
|
|
236
|
+
const makerPositions = [];
|
|
237
|
+
for (const makerOrder of params.makerOrders) {
|
|
238
|
+
const makerOrderHash = (0, orders_1.hashOrder)(makerOrder);
|
|
239
|
+
const [makerOrderStatus] = pda.getOrderStatusPda(makerOrderHash, this.programId);
|
|
240
|
+
const [makerPosition] = pda.getPositionPda(makerOrder.maker, params.market, this.programId);
|
|
241
|
+
makerOrderStatuses.push(makerOrderStatus);
|
|
242
|
+
makerPositions.push(makerPosition);
|
|
243
|
+
}
|
|
244
|
+
const ix = (0, instructions_1.buildMatchOrdersMultiIx)(params, this.programId);
|
|
245
|
+
return this.createBuildResult(params.operator, { takerOrderStatus, takerPosition, makerOrderStatuses, makerPositions }, ix);
|
|
246
|
+
}
|
|
247
|
+
async setAuthority(params) {
|
|
248
|
+
const [exchange] = pda.getExchangePda(this.programId);
|
|
249
|
+
const ix = (0, instructions_1.buildSetAuthorityIx)(params, this.programId);
|
|
250
|
+
return this.createBuildResult(params.currentAuthority, { exchange }, ix);
|
|
251
|
+
}
|
|
252
|
+
async createOrderbook(params) {
|
|
253
|
+
const [orderbook] = pda.getOrderbookPda(params.mintA, params.mintB, this.programId);
|
|
254
|
+
const ix = (0, instructions_1.buildCreateOrderbookIx)(params, this.programId);
|
|
255
|
+
return this.createBuildResult(params.payer, { orderbook }, ix);
|
|
256
|
+
}
|
|
257
|
+
// ============================================================================
|
|
258
|
+
// ORDER HELPERS
|
|
259
|
+
// ============================================================================
|
|
260
|
+
createBidOrder(params) {
|
|
261
|
+
return (0, orders_1.createBidOrder)(params);
|
|
262
|
+
}
|
|
263
|
+
createAskOrder(params) {
|
|
264
|
+
return (0, orders_1.createAskOrder)(params);
|
|
265
|
+
}
|
|
266
|
+
hashOrder(order) {
|
|
267
|
+
return (0, orders_1.hashOrder)(order);
|
|
268
|
+
}
|
|
269
|
+
signOrder(order, signer) {
|
|
270
|
+
return (0, orders_1.signOrder)(order, signer);
|
|
271
|
+
}
|
|
272
|
+
signFullOrder(order, signer) {
|
|
273
|
+
return (0, orders_1.signOrderFull)(order, signer);
|
|
274
|
+
}
|
|
275
|
+
// ============================================================================
|
|
276
|
+
// UTILITY METHODS
|
|
277
|
+
// ============================================================================
|
|
278
|
+
deriveConditionId(oracle, questionId, numOutcomes) {
|
|
279
|
+
return (0, utils_1.deriveConditionId)(oracle, questionId, numOutcomes);
|
|
280
|
+
}
|
|
281
|
+
getConditionalMints(market, depositMint, numOutcomes) {
|
|
282
|
+
return pda
|
|
283
|
+
.getAllConditionalMintPdas(market, depositMint, numOutcomes, this.programId)
|
|
284
|
+
.map(([mint]) => mint);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
exports.LightconePinocchioClient = LightconePinocchioClient;
|
|
288
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +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 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 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 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} from \"./instructions\";\nimport {\n hashOrder,\n signOrder,\n createBidOrder,\n createAskOrder,\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 // ============================================================================\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 getNextNonce(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 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 // ============================================================================\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.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.payer, { orderbook }, 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 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"]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
/**
|
|
3
|
+
* Lightcone Pinocchio Program ID
|
|
4
|
+
*/
|
|
5
|
+
export declare const PROGRAM_ID: PublicKey;
|
|
6
|
+
/**
|
|
7
|
+
* Address Lookup Table Program ID
|
|
8
|
+
*/
|
|
9
|
+
export declare const ALT_PROGRAM_ID: PublicKey;
|
|
10
|
+
/**
|
|
11
|
+
* SPL Token Program ID
|
|
12
|
+
*/
|
|
13
|
+
export declare const TOKEN_PROGRAM_ID: PublicKey;
|
|
14
|
+
/**
|
|
15
|
+
* Token-2022 Program ID (for conditional tokens)
|
|
16
|
+
*/
|
|
17
|
+
export declare const TOKEN_2022_PROGRAM_ID: PublicKey;
|
|
18
|
+
/**
|
|
19
|
+
* Associated Token Account Program ID
|
|
20
|
+
*/
|
|
21
|
+
export declare const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey;
|
|
22
|
+
/**
|
|
23
|
+
* System Program ID
|
|
24
|
+
*/
|
|
25
|
+
export declare const SYSTEM_PROGRAM_ID: PublicKey;
|
|
26
|
+
/**
|
|
27
|
+
* Rent Sysvar ID
|
|
28
|
+
*/
|
|
29
|
+
export declare const RENT_SYSVAR_ID: PublicKey;
|
|
30
|
+
/**
|
|
31
|
+
* Instruction discriminators (single byte indices)
|
|
32
|
+
*/
|
|
33
|
+
export declare const INSTRUCTION: {
|
|
34
|
+
readonly INITIALIZE: 0;
|
|
35
|
+
readonly CREATE_MARKET: 1;
|
|
36
|
+
readonly ADD_DEPOSIT_MINT: 2;
|
|
37
|
+
readonly MINT_COMPLETE_SET: 3;
|
|
38
|
+
readonly MERGE_COMPLETE_SET: 4;
|
|
39
|
+
readonly CANCEL_ORDER: 5;
|
|
40
|
+
readonly INCREMENT_NONCE: 6;
|
|
41
|
+
readonly SETTLE_MARKET: 7;
|
|
42
|
+
readonly REDEEM_WINNINGS: 8;
|
|
43
|
+
readonly SET_PAUSED: 9;
|
|
44
|
+
readonly SET_OPERATOR: 10;
|
|
45
|
+
readonly WITHDRAW_FROM_POSITION: 11;
|
|
46
|
+
readonly ACTIVATE_MARKET: 12;
|
|
47
|
+
readonly MATCH_ORDERS_MULTI: 13;
|
|
48
|
+
readonly SET_AUTHORITY: 14;
|
|
49
|
+
readonly CREATE_ORDERBOOK: 15;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Account discriminators (8 bytes each)
|
|
53
|
+
* SHA-256 hash bytes matching the on-chain program
|
|
54
|
+
*/
|
|
55
|
+
export declare const DISCRIMINATOR: {
|
|
56
|
+
readonly EXCHANGE: Buffer<ArrayBuffer>;
|
|
57
|
+
readonly MARKET: Buffer<ArrayBuffer>;
|
|
58
|
+
readonly ORDER_STATUS: Buffer<ArrayBuffer>;
|
|
59
|
+
readonly USER_NONCE: Buffer<ArrayBuffer>;
|
|
60
|
+
readonly POSITION: Buffer<ArrayBuffer>;
|
|
61
|
+
readonly ORDERBOOK: Buffer<ArrayBuffer>;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Account sizes in bytes
|
|
65
|
+
*/
|
|
66
|
+
export declare const ACCOUNT_SIZE: {
|
|
67
|
+
readonly EXCHANGE: 88;
|
|
68
|
+
readonly MARKET: 120;
|
|
69
|
+
readonly ORDER_STATUS: 24;
|
|
70
|
+
readonly USER_NONCE: 16;
|
|
71
|
+
readonly POSITION: 80;
|
|
72
|
+
readonly ORDERBOOK: 144;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Order sizes in bytes
|
|
76
|
+
*/
|
|
77
|
+
export declare const ORDER_SIZE: {
|
|
78
|
+
readonly SIGNED_ORDER: 225;
|
|
79
|
+
readonly ORDER: 29;
|
|
80
|
+
readonly SIGNATURE: 64;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Maximum number of outcomes per market (2-6)
|
|
84
|
+
*/
|
|
85
|
+
export declare const MAX_OUTCOMES = 6;
|
|
86
|
+
/**
|
|
87
|
+
* Minimum number of outcomes per market
|
|
88
|
+
*/
|
|
89
|
+
export declare const MIN_OUTCOMES = 2;
|
|
90
|
+
/**
|
|
91
|
+
* Maximum number of makers per match_orders_multi instruction
|
|
92
|
+
*/
|
|
93
|
+
export declare const MAX_MAKERS = 3;
|
|
94
|
+
/**
|
|
95
|
+
* PDA Seeds
|
|
96
|
+
*/
|
|
97
|
+
export declare const SEEDS: {
|
|
98
|
+
readonly CENTRAL_STATE: "central_state";
|
|
99
|
+
readonly MARKET: "market";
|
|
100
|
+
readonly MARKET_DEPOSIT_TOKEN_ACCOUNT: "market_deposit_token_account";
|
|
101
|
+
readonly MARKET_MINT_AUTHORITY: "market_mint_authority";
|
|
102
|
+
readonly CONDITIONAL_MINT: "conditional_mint";
|
|
103
|
+
readonly ORDER_STATUS: "order_status";
|
|
104
|
+
readonly USER_NONCE: "user_nonce";
|
|
105
|
+
readonly POSITION: "position";
|
|
106
|
+
readonly ORDERBOOK: "orderbook";
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAOzB;;GAEG;AACH,eAAO,MAAM,UAAU,WAEtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,WAE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAuB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,qBAAqB,WAA4B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,2BAA2B,WAAkC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,iBAAiB,WAA0B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,cAAc,WAAqB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAiBd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;CAUR,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SEEDS = exports.MAX_MAKERS = exports.MIN_OUTCOMES = exports.MAX_OUTCOMES = exports.ORDER_SIZE = exports.ACCOUNT_SIZE = exports.DISCRIMINATOR = exports.INSTRUCTION = exports.RENT_SYSVAR_ID = exports.SYSTEM_PROGRAM_ID = exports.ASSOCIATED_TOKEN_PROGRAM_ID = exports.TOKEN_2022_PROGRAM_ID = exports.TOKEN_PROGRAM_ID = exports.ALT_PROGRAM_ID = exports.PROGRAM_ID = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
6
|
+
/**
|
|
7
|
+
* Lightcone Pinocchio Program ID
|
|
8
|
+
*/
|
|
9
|
+
exports.PROGRAM_ID = new web3_js_1.PublicKey("9cCFQnmWqWmZF3LNdAVWTh7ECGJK4tCVPtgPMcYum81A");
|
|
10
|
+
/**
|
|
11
|
+
* Address Lookup Table Program ID
|
|
12
|
+
*/
|
|
13
|
+
exports.ALT_PROGRAM_ID = new web3_js_1.PublicKey("AddressLookupTab1e1111111111111111111111111");
|
|
14
|
+
/**
|
|
15
|
+
* SPL Token Program ID
|
|
16
|
+
*/
|
|
17
|
+
exports.TOKEN_PROGRAM_ID = spl_token_1.TOKEN_PROGRAM_ID;
|
|
18
|
+
/**
|
|
19
|
+
* Token-2022 Program ID (for conditional tokens)
|
|
20
|
+
*/
|
|
21
|
+
exports.TOKEN_2022_PROGRAM_ID = spl_token_1.TOKEN_2022_PROGRAM_ID;
|
|
22
|
+
/**
|
|
23
|
+
* Associated Token Account Program ID
|
|
24
|
+
*/
|
|
25
|
+
exports.ASSOCIATED_TOKEN_PROGRAM_ID = spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID;
|
|
26
|
+
/**
|
|
27
|
+
* System Program ID
|
|
28
|
+
*/
|
|
29
|
+
exports.SYSTEM_PROGRAM_ID = web3_js_1.SystemProgram.programId;
|
|
30
|
+
/**
|
|
31
|
+
* Rent Sysvar ID
|
|
32
|
+
*/
|
|
33
|
+
exports.RENT_SYSVAR_ID = web3_js_1.SYSVAR_RENT_PUBKEY;
|
|
34
|
+
/**
|
|
35
|
+
* Instruction discriminators (single byte indices)
|
|
36
|
+
*/
|
|
37
|
+
exports.INSTRUCTION = {
|
|
38
|
+
INITIALIZE: 0,
|
|
39
|
+
CREATE_MARKET: 1,
|
|
40
|
+
ADD_DEPOSIT_MINT: 2,
|
|
41
|
+
MINT_COMPLETE_SET: 3,
|
|
42
|
+
MERGE_COMPLETE_SET: 4,
|
|
43
|
+
CANCEL_ORDER: 5,
|
|
44
|
+
INCREMENT_NONCE: 6,
|
|
45
|
+
SETTLE_MARKET: 7,
|
|
46
|
+
REDEEM_WINNINGS: 8,
|
|
47
|
+
SET_PAUSED: 9,
|
|
48
|
+
SET_OPERATOR: 10,
|
|
49
|
+
WITHDRAW_FROM_POSITION: 11,
|
|
50
|
+
ACTIVATE_MARKET: 12,
|
|
51
|
+
MATCH_ORDERS_MULTI: 13,
|
|
52
|
+
SET_AUTHORITY: 14,
|
|
53
|
+
CREATE_ORDERBOOK: 15,
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Account discriminators (8 bytes each)
|
|
57
|
+
* SHA-256 hash bytes matching the on-chain program
|
|
58
|
+
*/
|
|
59
|
+
exports.DISCRIMINATOR = {
|
|
60
|
+
EXCHANGE: Buffer.from([0x1e, 0xc8, 0xdc, 0x95, 0x03, 0x3d, 0x68, 0x32]),
|
|
61
|
+
MARKET: Buffer.from([0xdb, 0xbe, 0xd5, 0x37, 0x00, 0xe3, 0xc6, 0x9a]),
|
|
62
|
+
ORDER_STATUS: Buffer.from([0x2e, 0x5a, 0xf1, 0x49, 0xb2, 0x68, 0x41, 0x03]),
|
|
63
|
+
USER_NONCE: Buffer.from([0xeb, 0x85, 0x01, 0xf3, 0x12, 0x87, 0x58, 0xe0]),
|
|
64
|
+
POSITION: Buffer.from([0xaa, 0xbc, 0x8f, 0xe4, 0x7a, 0x40, 0xf7, 0xd0]),
|
|
65
|
+
ORDERBOOK: Buffer.from([0x2b, 0x22, 0x19, 0x71, 0xc3, 0x45, 0x48, 0x07]),
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Account sizes in bytes
|
|
69
|
+
*/
|
|
70
|
+
exports.ACCOUNT_SIZE = {
|
|
71
|
+
EXCHANGE: 88,
|
|
72
|
+
MARKET: 120,
|
|
73
|
+
ORDER_STATUS: 24,
|
|
74
|
+
USER_NONCE: 16,
|
|
75
|
+
POSITION: 80,
|
|
76
|
+
ORDERBOOK: 144,
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Order sizes in bytes
|
|
80
|
+
*/
|
|
81
|
+
exports.ORDER_SIZE = {
|
|
82
|
+
SIGNED_ORDER: 225,
|
|
83
|
+
ORDER: 29,
|
|
84
|
+
SIGNATURE: 64,
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Maximum number of outcomes per market (2-6)
|
|
88
|
+
*/
|
|
89
|
+
exports.MAX_OUTCOMES = 6;
|
|
90
|
+
/**
|
|
91
|
+
* Minimum number of outcomes per market
|
|
92
|
+
*/
|
|
93
|
+
exports.MIN_OUTCOMES = 2;
|
|
94
|
+
/**
|
|
95
|
+
* Maximum number of makers per match_orders_multi instruction
|
|
96
|
+
*/
|
|
97
|
+
exports.MAX_MAKERS = 3;
|
|
98
|
+
/**
|
|
99
|
+
* PDA Seeds
|
|
100
|
+
*/
|
|
101
|
+
exports.SEEDS = {
|
|
102
|
+
CENTRAL_STATE: "central_state",
|
|
103
|
+
MARKET: "market",
|
|
104
|
+
MARKET_DEPOSIT_TOKEN_ACCOUNT: "market_deposit_token_account",
|
|
105
|
+
MARKET_MINT_AUTHORITY: "market_mint_authority",
|
|
106
|
+
CONDITIONAL_MINT: "conditional_mint",
|
|
107
|
+
ORDER_STATUS: "order_status",
|
|
108
|
+
USER_NONCE: "user_nonce",
|
|
109
|
+
POSITION: "position",
|
|
110
|
+
ORDERBOOK: "orderbook",
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PublicKey,\n SystemProgram,\n SYSVAR_RENT_PUBKEY,\n} from \"@solana/web3.js\";\nimport {\n TOKEN_PROGRAM_ID as SPL_TOKEN_PROGRAM_ID,\n TOKEN_2022_PROGRAM_ID as SPL_TOKEN_2022_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID as SPL_ASSOCIATED_TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\n\n/**\n * Lightcone Pinocchio Program ID\n */\nexport const PROGRAM_ID = new PublicKey(\n \"9cCFQnmWqWmZF3LNdAVWTh7ECGJK4tCVPtgPMcYum81A\"\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} 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} 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} 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 = 3;\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} as const;\n"]}
|