@lightconexyz/lightcone-sdk 0.8.2 → 0.8.3-rc.44
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 +10 -7
- package/dist/domain/position/client.d.ts +9 -9
- package/dist/domain/position/client.d.ts.map +1 -1
- package/dist/domain/position/client.js +40 -40
- package/dist/domain/position/client.js.map +1 -1
- package/dist/domain/position/index.d.ts +4 -4
- package/dist/domain/position/index.d.ts.map +1 -1
- package/dist/domain/position/index.js.map +1 -1
- package/dist/domain/position/state.d.ts +20 -17
- package/dist/domain/position/state.d.ts.map +1 -1
- package/dist/domain/position/state.js +39 -28
- package/dist/domain/position/state.js.map +1 -1
- package/dist/prelude.d.ts +1 -1
- package/dist/prelude.d.ts.map +1 -1
- package/dist/prelude.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,10 +22,10 @@ exports.SOL_RESERVE_WITH_EXISTING_ACCOUNT_LAMPORTS = 1000000n;
|
|
|
22
22
|
/** Maximum exact non-negative lamport value representable by Solana's u64 fields. */
|
|
23
23
|
const MAX_SOLANA_LAMPORTS = 0xffffffffffffffffn;
|
|
24
24
|
/** Derive fail-closed availability and type an insufficient native reserve as fee funding. */
|
|
25
|
-
function solBalanceAvailability(
|
|
25
|
+
function solBalanceAvailability(breakdown, costs) {
|
|
26
26
|
for (const [label, value] of [
|
|
27
|
-
["native SOL",
|
|
28
|
-
["canonical WSOL",
|
|
27
|
+
["native SOL", breakdown.nativeLamports],
|
|
28
|
+
["canonical WSOL", breakdown.canonicalWsolLamports],
|
|
29
29
|
]) {
|
|
30
30
|
if (typeof value !== "bigint" || value < 0n || value > MAX_SOLANA_LAMPORTS) {
|
|
31
31
|
throw error_1.SdkError.validation(`${label} must fit the non-negative u64 lamport range`);
|
|
@@ -39,7 +39,7 @@ function solBalanceAvailability(components, costs) {
|
|
|
39
39
|
throw error_1.SdkError.validation(`${label} must fit the non-negative u64 lamport range`);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
const displayedLamports =
|
|
42
|
+
const displayedLamports = breakdown.nativeLamports + breakdown.canonicalWsolLamports;
|
|
43
43
|
if (displayedLamports > MAX_SOLANA_LAMPORTS) {
|
|
44
44
|
throw error_1.SdkError.validation("displayed SOL exceeds the transaction u64 range");
|
|
45
45
|
}
|
|
@@ -55,11 +55,11 @@ function solBalanceAvailability(components, costs) {
|
|
|
55
55
|
: liveCosts > floor
|
|
56
56
|
? liveCosts
|
|
57
57
|
: floor;
|
|
58
|
-
if (
|
|
59
|
-
throw error_1.SdkError.insufficientSolForTransactionFees(
|
|
58
|
+
if (breakdown.nativeLamports < reserveLamports) {
|
|
59
|
+
throw error_1.SdkError.insufficientSolForTransactionFees(breakdown.nativeLamports, reserveLamports);
|
|
60
60
|
}
|
|
61
61
|
return {
|
|
62
|
-
|
|
62
|
+
breakdown,
|
|
63
63
|
displayedLamports,
|
|
64
64
|
reserveLamports,
|
|
65
65
|
spendableLamports: displayedLamports - reserveLamports,
|
|
@@ -69,17 +69,17 @@ function solBalanceAvailability(components, costs) {
|
|
|
69
69
|
* Return unwrap-all availability with the live fee as its entire reserve.
|
|
70
70
|
*
|
|
71
71
|
* This function rejects costs that include sponsorship, account creation, or
|
|
72
|
-
* upfront rent. It rejects malformed or out-of-range
|
|
72
|
+
* upfront rent. It rejects malformed or out-of-range balances and costs. It
|
|
73
73
|
* rejects a displayed-balance sum outside Solana's unsigned 64-bit range. Native
|
|
74
74
|
* SOL must fund the fee without relying on lamports that a later `CloseAccount`
|
|
75
75
|
* instruction may transfer. The ordinary persistent-account floor does not apply
|
|
76
76
|
* because unwrap-all removes that account. An insufficient native fee balance
|
|
77
77
|
* returns the typed transaction-fee error.
|
|
78
78
|
*/
|
|
79
|
-
function unwrapAllSolBalanceAvailability(
|
|
79
|
+
function unwrapAllSolBalanceAvailability(breakdown, costs) {
|
|
80
80
|
for (const [label, value] of [
|
|
81
|
-
["native SOL",
|
|
82
|
-
["canonical WSOL",
|
|
81
|
+
["native SOL", breakdown.nativeLamports],
|
|
82
|
+
["canonical WSOL", breakdown.canonicalWsolLamports],
|
|
83
83
|
]) {
|
|
84
84
|
if (typeof value !== "bigint" || value < 0n || value > MAX_SOLANA_LAMPORTS) {
|
|
85
85
|
throw error_1.SdkError.validation(`${label} must fit the non-negative u64 lamport range`);
|
|
@@ -98,15 +98,15 @@ function unwrapAllSolBalanceAvailability(components, costs) {
|
|
|
98
98
|
costs.sponsored) {
|
|
99
99
|
throw error_1.SdkError.validation("unwrap-all costs must be unsponsored with no upfront rent or account creation");
|
|
100
100
|
}
|
|
101
|
-
const displayedLamports =
|
|
101
|
+
const displayedLamports = breakdown.nativeLamports + breakdown.canonicalWsolLamports;
|
|
102
102
|
if (displayedLamports > MAX_SOLANA_LAMPORTS) {
|
|
103
103
|
throw error_1.SdkError.validation("displayed SOL exceeds the transaction u64 range");
|
|
104
104
|
}
|
|
105
|
-
if (
|
|
106
|
-
throw error_1.SdkError.insufficientSolForTransactionFees(
|
|
105
|
+
if (breakdown.nativeLamports < costs.feeLamports) {
|
|
106
|
+
throw error_1.SdkError.insufficientSolForTransactionFees(breakdown.nativeLamports, costs.feeLamports);
|
|
107
107
|
}
|
|
108
108
|
return {
|
|
109
|
-
|
|
109
|
+
breakdown,
|
|
110
110
|
displayedLamports,
|
|
111
111
|
reserveLamports: costs.feeLamports,
|
|
112
112
|
spendableLamports: displayedLamports - costs.feeLamports,
|
|
@@ -116,9 +116,9 @@ function unwrapAllSolBalanceAvailability(components, costs) {
|
|
|
116
116
|
* Mutable application-owned wallet balance state.
|
|
117
117
|
*
|
|
118
118
|
* The default instance is uninitialized. A complete REST or WebSocket snapshot
|
|
119
|
-
* establishes its wallet baseline; later
|
|
119
|
+
* establishes its wallet baseline; later balance events must match that wallet
|
|
120
120
|
* and carry absolute values. Native SOL never enters the sparse SPL mint map, and
|
|
121
|
-
* complete
|
|
121
|
+
* complete snapshots may replace `contextSlot` with a lower slot.
|
|
122
122
|
* Map containers are copied, but mutable balance objects are retained by reference;
|
|
123
123
|
* treat payload entries as immutable after applying them.
|
|
124
124
|
*/
|
|
@@ -133,26 +133,37 @@ class WalletDepositBalancesState {
|
|
|
133
133
|
nativeSolBalance;
|
|
134
134
|
/**
|
|
135
135
|
* Initialize or wholesale-replace state from a complete REST snapshot.
|
|
136
|
-
* The caller supplies the wallet omitted by REST
|
|
136
|
+
* The caller supplies the wallet omitted by REST. When `minimumSnapshotSlot`
|
|
137
|
+
* is present, a lower complete snapshot is ignored without mutation; otherwise
|
|
138
|
+
* prior slots are not compared.
|
|
137
139
|
* Unlike WebSocket parsing, this TypeScript REST boundary performs no runtime
|
|
138
140
|
* shape validation. Malformed exact values fail when a derived method scales them.
|
|
139
141
|
*/
|
|
140
|
-
applyRestSnapshot(walletAddress, snapshot) {
|
|
142
|
+
applyRestSnapshot(walletAddress, snapshot, minimumSnapshotSlot) {
|
|
143
|
+
if (minimumSnapshotSlot !== undefined &&
|
|
144
|
+
snapshot.context_slot < minimumSnapshotSlot) {
|
|
145
|
+
return { kind: "ignored" };
|
|
146
|
+
}
|
|
141
147
|
this.replace(walletAddress, snapshot.context_slot, snapshot.balances, snapshot.native_sol_balance);
|
|
142
148
|
return { kind: "applied" };
|
|
143
149
|
}
|
|
144
150
|
/**
|
|
145
151
|
* Apply the wallet event state machine.
|
|
146
152
|
*
|
|
147
|
-
* Complete snapshots
|
|
148
|
-
*
|
|
149
|
-
*
|
|
153
|
+
* Complete snapshots replace state unless they are below an optional minimum
|
|
154
|
+
* snapshot slot. The floor never applies to incremental balance or status events.
|
|
155
|
+
* Matching balance events replace one absolute value, zero SPL removes its
|
|
156
|
+
* mint, and status, pre-initialization, or wrong-wallet events return `ignored`.
|
|
150
157
|
*/
|
|
151
|
-
applyEvent(event) {
|
|
158
|
+
applyEvent(event, minimumSnapshotSlot) {
|
|
152
159
|
switch (event.event_type) {
|
|
153
160
|
case "wallet_deposit_balance_snapshot":
|
|
161
|
+
if (minimumSnapshotSlot !== undefined &&
|
|
162
|
+
event.context_slot < minimumSnapshotSlot) {
|
|
163
|
+
return { kind: "ignored" };
|
|
164
|
+
}
|
|
154
165
|
// Complete snapshots are authoritative even when their lower
|
|
155
|
-
//
|
|
166
|
+
// snapshot slot trails a previously observed update.
|
|
156
167
|
this.replace(event.wallet_address, event.context_slot, event.balances, event.native_sol_balance);
|
|
157
168
|
return { kind: "applied" };
|
|
158
169
|
case "wallet_deposit_balance_update":
|
|
@@ -197,8 +208,8 @@ class WalletDepositBalancesState {
|
|
|
197
208
|
: 0n;
|
|
198
209
|
return formatLamports(native + wrappedLamports);
|
|
199
210
|
}
|
|
200
|
-
/** Return exact native and canonical WSOL
|
|
201
|
-
|
|
211
|
+
/** Return the exact native and canonical WSOL breakdown for transaction planning. */
|
|
212
|
+
solBalanceBreakdown() {
|
|
202
213
|
let nativeLamports;
|
|
203
214
|
let canonicalWsolLamports;
|
|
204
215
|
try {
|
|
@@ -206,11 +217,11 @@ class WalletDepositBalancesState {
|
|
|
206
217
|
canonicalWsolLamports = this.canonicalWsolLamports();
|
|
207
218
|
}
|
|
208
219
|
catch (error) {
|
|
209
|
-
throw error_1.SdkError.validation(`invalid SOL balance
|
|
220
|
+
throw error_1.SdkError.validation(`invalid SOL balance: ${error instanceof Error ? error.message : String(error)}`);
|
|
210
221
|
}
|
|
211
222
|
if (nativeLamports > MAX_SOLANA_LAMPORTS ||
|
|
212
223
|
canonicalWsolLamports > MAX_SOLANA_LAMPORTS) {
|
|
213
|
-
throw error_1.SdkError.validation("SOL
|
|
224
|
+
throw error_1.SdkError.validation("SOL balance exceeds the transaction u64 range");
|
|
214
225
|
}
|
|
215
226
|
return { nativeLamports, canonicalWsolLamports };
|
|
216
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domain/position/state.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from \"decimal.js\";\nimport { SdkError } from \"../../error\";\nimport { exactScaledInteger } from \"../../shared\";\nimport type { PubkeyStr } from \"../../shared\";\nimport type {\n DepositTokenBalance,\n DepositTokenBalancesSnapshot,\n WalletDepositBalancesEvent,\n} from \"./index\";\n\n/**\n * Canonical WSOL mint under Solana's legacy SPL Token Program (“Tokenkeg”).\n * ATA derivation stays pinned to Tokenkeg rather than Token-2022 so state and\n * transaction planning address the protocol's one canonical account.\n */\nexport const WRAPPED_SOL_MINT =\n \"So11111111111111111111111111111111111111112\" as PubkeyStr;\n\n/** Unsponsored native reserve floor, in lamports, when canonical ATA creation is required. */\nexport const SOL_RESERVE_WITH_ACCOUNT_CREATION_LAMPORTS = 3_500_000n;\n/** Unsponsored native reserve floor, in lamports, when canonical WSOL already exists. */\nexport const SOL_RESERVE_WITH_EXISTING_ACCOUNT_LAMPORTS = 1_000_000n;\n/** Maximum exact non-negative lamport value representable by Solana's u64 fields. */\nconst MAX_SOLANA_LAMPORTS = 0xffff_ffff_ffff_ffffn;\n\n/** Exact components behind the single displayed SOL asset. */\nexport interface SolBalanceComponents {\n /** Lamports held by the Trading Wallet system account. */\n nativeLamports: bigint;\n /** Token amount in the Trading Wallet's persistent canonical WSOL ATA. */\n canonicalWsolLamports: bigint;\n}\n\n/**\n * Stores live chain costs used to derive transaction funding requirements.\n *\n * {@link solBalanceAvailability} applies ordinary safety floors.\n * {@link unwrapAllSolBalanceAvailability} rejects account creation, upfront rent,\n * and sponsorship, then uses only `feeLamports` as the unwrap-all reserve.\n */\nexport interface SolActionCosts {\n /** Live `getFeeForMessage` result, in lamports. */\n feeLamports: bigint;\n /** Rent funded up front, even when a temporary account refunds it later. */\n upfrontRentLamports: bigint;\n /** Whether this transaction must create the persistent canonical WSOL ATA. */\n createsCanonicalWsolAccount: boolean;\n /** Exact public sponsorship capability supplied by the caller. */\n sponsored: boolean;\n}\n\n/** Action-specific displayed, reserved, and spendable SOL values. */\nexport interface SolBalanceAvailability {\n /** Separately authoritative native and canonical WSOL balances. */\n components: SolBalanceComponents;\n /** Sum of both components in lamports, before reserve. */\n displayedLamports: bigint;\n /** Native lamports withheld for live costs and any action-specific safety floor. */\n reserveLamports: bigint;\n /** Displayed lamports available to this action after reserve. */\n spendableLamports: bigint;\n}\n\n/** Derive fail-closed availability and type an insufficient native reserve as fee funding. */\nexport function solBalanceAvailability(\n components: SolBalanceComponents,\n costs: SolActionCosts\n): SolBalanceAvailability {\n for (const [label, value] of [\n [\"native SOL\", components.nativeLamports],\n [\"canonical WSOL\", components.canonicalWsolLamports],\n ] as const) {\n if (typeof value !== \"bigint\" || value < 0n || value > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(`${label} must fit the non-negative u64 lamport range`);\n }\n }\n for (const [label, value] of [\n [\"transaction fee\", costs.feeLamports],\n [\"upfront rent\", costs.upfrontRentLamports],\n ] as const) {\n if (typeof value !== \"bigint\" || value < 0n || value > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(`${label} must fit the non-negative u64 lamport range`);\n }\n }\n const displayedLamports =\n components.nativeLamports + components.canonicalWsolLamports;\n if (displayedLamports > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(\"displayed SOL exceeds the transaction u64 range\");\n }\n const liveCosts = costs.feeLamports + costs.upfrontRentLamports;\n if (liveCosts > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(\"combined transaction costs must fit u64 lamports\");\n }\n const floor = costs.createsCanonicalWsolAccount\n ? SOL_RESERVE_WITH_ACCOUNT_CREATION_LAMPORTS\n : SOL_RESERVE_WITH_EXISTING_ACCOUNT_LAMPORTS;\n const reserveLamports = costs.sponsored\n ? 0n\n : liveCosts > floor\n ? liveCosts\n : floor;\n if (components.nativeLamports < reserveLamports) {\n throw SdkError.insufficientSolForTransactionFees(\n components.nativeLamports,\n reserveLamports\n );\n }\n return {\n components,\n displayedLamports,\n reserveLamports,\n spendableLamports: displayedLamports - reserveLamports,\n };\n}\n\n/**\n * Return unwrap-all availability with the live fee as its entire reserve.\n *\n * This function rejects costs that include sponsorship, account creation, or\n * upfront rent. It rejects malformed or out-of-range components and costs. It\n * rejects a displayed-balance sum outside Solana's unsigned 64-bit range. Native\n * SOL must fund the fee without relying on lamports that a later `CloseAccount`\n * instruction may transfer. The ordinary persistent-account floor does not apply\n * because unwrap-all removes that account. An insufficient native fee balance\n * returns the typed transaction-fee error.\n */\nexport function unwrapAllSolBalanceAvailability(\n components: SolBalanceComponents,\n costs: SolActionCosts\n): SolBalanceAvailability {\n for (const [label, value] of [\n [\"native SOL\", components.nativeLamports],\n [\"canonical WSOL\", components.canonicalWsolLamports],\n ] as const) {\n if (typeof value !== \"bigint\" || value < 0n || value > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(`${label} must fit the non-negative u64 lamport range`);\n }\n }\n for (const [label, value] of [\n [\"transaction fee\", costs.feeLamports],\n [\"upfront rent\", costs.upfrontRentLamports],\n ] as const) {\n if (typeof value !== \"bigint\" || value < 0n || value > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(`${label} must fit the non-negative u64 lamport range`);\n }\n }\n if (\n costs.upfrontRentLamports !== 0n ||\n costs.createsCanonicalWsolAccount ||\n costs.sponsored\n ) {\n throw SdkError.validation(\n \"unwrap-all costs must be unsponsored with no upfront rent or account creation\"\n );\n }\n const displayedLamports =\n components.nativeLamports + components.canonicalWsolLamports;\n if (displayedLamports > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(\"displayed SOL exceeds the transaction u64 range\");\n }\n if (components.nativeLamports < costs.feeLamports) {\n throw SdkError.insufficientSolForTransactionFees(\n components.nativeLamports,\n costs.feeLamports\n );\n }\n return {\n components,\n displayedLamports,\n reserveLamports: costs.feeLamports,\n spendableLamports: displayedLamports - costs.feeLamports,\n };\n}\n\n/** Whether an event was accepted by, or rejected by, its lifecycle guard. */\nexport type WalletDepositBalancesApplyResult =\n | { kind: \"applied\" }\n | { kind: \"ignored\" }\n | { kind: \"rejected\" };\n\n/**\n * Mutable application-owned wallet balance state.\n *\n * The default instance is uninitialized. A complete REST or WebSocket snapshot\n * establishes its wallet baseline; later component events must match that wallet\n * and carry absolute values. Native SOL never enters the sparse SPL mint map, and\n * complete cross-component snapshots may replace `contextSlot` with a lower slot.\n * Map containers are copied, but mutable balance objects are retained by reference;\n * treat payload entries as immutable after applying them.\n */\nexport class WalletDepositBalancesState {\n /** Wallet owning the current baseline, or `undefined` before initialization. */\n walletAddress: PubkeyStr | undefined;\n /** Slot of the last accepted event, not a globally monotonic stream version. */\n contextSlot: number | undefined;\n /** Sparse mint-keyed SPL balances; explicit zero updates remove their mint. */\n readonly balances = new Map<PubkeyStr, DepositTokenBalance>();\n /** Exact nine-decimal native SOL, separate from `balances`. */\n nativeSolBalance: string | undefined;\n\n /**\n * Initialize or wholesale-replace state from a complete REST snapshot.\n * The caller supplies the wallet omitted by REST; prior slots are not compared.\n * Unlike WebSocket parsing, this TypeScript REST boundary performs no runtime\n * shape validation. Malformed exact values fail when a derived method scales them.\n */\n applyRestSnapshot(\n walletAddress: PubkeyStr,\n snapshot: DepositTokenBalancesSnapshot\n ): WalletDepositBalancesApplyResult {\n this.replace(\n walletAddress,\n snapshot.context_slot,\n snapshot.balances,\n snapshot.native_sol_balance\n );\n return { kind: \"applied\" };\n }\n\n /**\n * Apply the wallet event state machine.\n *\n * Complete snapshots always replace state. Matching component events replace\n * one absolute value, zero SPL removes its mint, and status, pre-initialization,\n * or wrong-wallet events return `ignored` without mutation.\n */\n applyEvent(event: WalletDepositBalancesEvent): WalletDepositBalancesApplyResult {\n switch (event.event_type) {\n case \"wallet_deposit_balance_snapshot\":\n // Complete snapshots are authoritative even when their lower\n // cross-component slot trails a previously observed update.\n this.replace(\n event.wallet_address,\n event.context_slot,\n event.balances,\n event.native_sol_balance\n );\n return { kind: \"applied\" };\n case \"wallet_deposit_balance_update\":\n if (!this.matchesInitializedWallet(event.wallet_address)) {\n return { kind: \"ignored\" };\n }\n let isZero: boolean;\n try {\n isZero = isZeroTokenAmount(event.balance.idle);\n } catch {\n return { kind: \"rejected\" };\n }\n if (isZero) {\n this.balances.delete(event.balance.mint);\n } else {\n this.balances.set(event.balance.mint, event.balance);\n }\n this.contextSlot = event.context_slot;\n return { kind: \"applied\" };\n case \"wallet_native_sol_balance_update\":\n if (!this.matchesInitializedWallet(event.wallet_address)) {\n return { kind: \"ignored\" };\n }\n this.nativeSolBalance = event.native_sol_balance;\n this.contextSlot = event.context_slot;\n return { kind: \"applied\" };\n case \"wallet_deposit_balance_status\":\n return { kind: \"ignored\" };\n }\n }\n\n /**\n * Return exact native SOL plus canonical WSOL with nine fractional digits.\n * Uses arbitrary-width integer arithmetic and never merges the stored assets.\n */\n combinedSolBalance(): string {\n const native = this.nativeSolLamports();\n const wrapped = this.balances.get(WRAPPED_SOL_MINT);\n const wrappedLamports = wrapped\n ? exactScaledInteger(wrapped.idle, 9)\n : 0n;\n return formatLamports(native + wrappedLamports);\n }\n\n /** Return exact native and canonical WSOL components for transaction planning. */\n solComponents(): SolBalanceComponents {\n let nativeLamports: bigint;\n let canonicalWsolLamports: bigint;\n try {\n nativeLamports = this.nativeSolLamports();\n canonicalWsolLamports = this.canonicalWsolLamports();\n } catch (error) {\n throw SdkError.validation(\n `invalid SOL balance component: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n if (\n nativeLamports > MAX_SOLANA_LAMPORTS ||\n canonicalWsolLamports > MAX_SOLANA_LAMPORTS\n ) {\n throw SdkError.validation(\"SOL component exceeds the transaction u64 range\");\n }\n return { nativeLamports, canonicalWsolLamports };\n }\n\n /** Scale cached native SOL exactly to lamports; requires initialized state. */\n nativeSolLamports(): bigint {\n if (this.nativeSolBalance === undefined) {\n throw new Error(\"wallet balance state is not initialized\");\n }\n return exactScaledInteger(this.nativeSolBalance, 9);\n }\n\n /** Scale the canonical WSOL idle balance exactly to lamports. */\n canonicalWsolLamports(): bigint {\n const wrapped = this.balances.get(WRAPPED_SOL_MINT);\n return wrapped ? exactScaledInteger(wrapped.idle, 9) : 0n;\n }\n\n private matchesInitializedWallet(walletAddress: PubkeyStr): boolean {\n return (\n this.walletAddress === walletAddress &&\n this.contextSlot !== undefined &&\n this.nativeSolBalance !== undefined\n );\n }\n\n private replace(\n walletAddress: PubkeyStr,\n contextSlot: number,\n balances: Record<PubkeyStr, DepositTokenBalance>,\n nativeSolBalance: string\n ): void {\n // Own the map lifecycle while retaining payload objects by reference. Callers\n // must treat balance records as immutable after handing them to state.\n this.walletAddress = walletAddress;\n this.contextSlot = contextSlot;\n this.balances.clear();\n for (const balance of Object.values(balances)) {\n this.balances.set(balance.mint, balance);\n }\n this.nativeSolBalance = nativeSolBalance;\n }\n}\n\nfunction formatLamports(value: bigint): string {\n // Integer division restores fixed-scale SOL text without floating-point loss.\n const scale = 1_000_000_000n;\n const whole = value / scale;\n const fraction = (value % scale).toString().padStart(9, \"0\");\n return `${whole}.${fraction}`;\n}\n\n/** Detect explicit zero without imposing SOL's nine-decimal scale on SPL tokens. */\nfunction isZeroTokenAmount(value: string): boolean {\n const amount = new Decimal(value);\n if (!amount.isFinite() || amount.isNegative()) {\n throw new Error(`invalid deposit-token balance: ${value}`);\n }\n return amount.isZero();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domain/position/state.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from \"decimal.js\";\nimport { SdkError } from \"../../error\";\nimport { exactScaledInteger } from \"../../shared\";\nimport type { PubkeyStr } from \"../../shared\";\nimport type {\n DepositTokenBalance,\n DepositTokenBalancesSnapshot,\n WalletDepositBalancesEvent,\n} from \"./index\";\n\n/**\n * Canonical WSOL mint under Solana's legacy SPL Token Program (“Tokenkeg”).\n * ATA derivation stays pinned to Tokenkeg rather than Token-2022 so state and\n * transaction planning address the protocol's one canonical account.\n */\nexport const WRAPPED_SOL_MINT =\n \"So11111111111111111111111111111111111111112\" as PubkeyStr;\n\n/** Unsponsored native reserve floor, in lamports, when canonical ATA creation is required. */\nexport const SOL_RESERVE_WITH_ACCOUNT_CREATION_LAMPORTS = 3_500_000n;\n/** Unsponsored native reserve floor, in lamports, when canonical WSOL already exists. */\nexport const SOL_RESERVE_WITH_EXISTING_ACCOUNT_LAMPORTS = 1_000_000n;\n/** Maximum exact non-negative lamport value representable by Solana's u64 fields. */\nconst MAX_SOLANA_LAMPORTS = 0xffff_ffff_ffff_ffffn;\n\n/** Exact native and canonical WSOL breakdown behind the displayed SOL asset. */\nexport interface SolBalanceBreakdown {\n /** Lamports held by the Trading Wallet system account. */\n nativeLamports: bigint;\n /** Token amount in the Trading Wallet's persistent canonical WSOL ATA. */\n canonicalWsolLamports: bigint;\n}\n\n/**\n * Stores live chain costs used to derive transaction funding requirements.\n *\n * {@link solBalanceAvailability} applies ordinary safety floors.\n * {@link unwrapAllSolBalanceAvailability} rejects account creation, upfront rent,\n * and sponsorship, then uses only `feeLamports` as the unwrap-all reserve.\n */\nexport interface SolActionCosts {\n /** Live `getFeeForMessage` result, in lamports. */\n feeLamports: bigint;\n /** Rent funded up front, even when a temporary account refunds it later. */\n upfrontRentLamports: bigint;\n /** Whether this transaction must create the persistent canonical WSOL ATA. */\n createsCanonicalWsolAccount: boolean;\n /** Exact public sponsorship capability supplied by the caller. */\n sponsored: boolean;\n}\n\n/** Action-specific displayed, reserved, and spendable SOL values. */\nexport interface SolBalanceAvailability {\n /** Separately authoritative native and canonical WSOL balances. */\n breakdown: SolBalanceBreakdown;\n /** Sum of both balances in lamports, before reserve. */\n displayedLamports: bigint;\n /** Native lamports withheld for live costs and any action-specific safety floor. */\n reserveLamports: bigint;\n /** Displayed lamports available to this action after reserve. */\n spendableLamports: bigint;\n}\n\n/** Derive fail-closed availability and type an insufficient native reserve as fee funding. */\nexport function solBalanceAvailability(\n breakdown: SolBalanceBreakdown,\n costs: SolActionCosts\n): SolBalanceAvailability {\n for (const [label, value] of [\n [\"native SOL\", breakdown.nativeLamports],\n [\"canonical WSOL\", breakdown.canonicalWsolLamports],\n ] as const) {\n if (typeof value !== \"bigint\" || value < 0n || value > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(`${label} must fit the non-negative u64 lamport range`);\n }\n }\n for (const [label, value] of [\n [\"transaction fee\", costs.feeLamports],\n [\"upfront rent\", costs.upfrontRentLamports],\n ] as const) {\n if (typeof value !== \"bigint\" || value < 0n || value > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(`${label} must fit the non-negative u64 lamport range`);\n }\n }\n const displayedLamports =\n breakdown.nativeLamports + breakdown.canonicalWsolLamports;\n if (displayedLamports > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(\"displayed SOL exceeds the transaction u64 range\");\n }\n const liveCosts = costs.feeLamports + costs.upfrontRentLamports;\n if (liveCosts > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(\"combined transaction costs must fit u64 lamports\");\n }\n const floor = costs.createsCanonicalWsolAccount\n ? SOL_RESERVE_WITH_ACCOUNT_CREATION_LAMPORTS\n : SOL_RESERVE_WITH_EXISTING_ACCOUNT_LAMPORTS;\n const reserveLamports = costs.sponsored\n ? 0n\n : liveCosts > floor\n ? liveCosts\n : floor;\n if (breakdown.nativeLamports < reserveLamports) {\n throw SdkError.insufficientSolForTransactionFees(\n breakdown.nativeLamports,\n reserveLamports\n );\n }\n return {\n breakdown,\n displayedLamports,\n reserveLamports,\n spendableLamports: displayedLamports - reserveLamports,\n };\n}\n\n/**\n * Return unwrap-all availability with the live fee as its entire reserve.\n *\n * This function rejects costs that include sponsorship, account creation, or\n * upfront rent. It rejects malformed or out-of-range balances and costs. It\n * rejects a displayed-balance sum outside Solana's unsigned 64-bit range. Native\n * SOL must fund the fee without relying on lamports that a later `CloseAccount`\n * instruction may transfer. The ordinary persistent-account floor does not apply\n * because unwrap-all removes that account. An insufficient native fee balance\n * returns the typed transaction-fee error.\n */\nexport function unwrapAllSolBalanceAvailability(\n breakdown: SolBalanceBreakdown,\n costs: SolActionCosts\n): SolBalanceAvailability {\n for (const [label, value] of [\n [\"native SOL\", breakdown.nativeLamports],\n [\"canonical WSOL\", breakdown.canonicalWsolLamports],\n ] as const) {\n if (typeof value !== \"bigint\" || value < 0n || value > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(`${label} must fit the non-negative u64 lamport range`);\n }\n }\n for (const [label, value] of [\n [\"transaction fee\", costs.feeLamports],\n [\"upfront rent\", costs.upfrontRentLamports],\n ] as const) {\n if (typeof value !== \"bigint\" || value < 0n || value > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(`${label} must fit the non-negative u64 lamport range`);\n }\n }\n if (\n costs.upfrontRentLamports !== 0n ||\n costs.createsCanonicalWsolAccount ||\n costs.sponsored\n ) {\n throw SdkError.validation(\n \"unwrap-all costs must be unsponsored with no upfront rent or account creation\"\n );\n }\n const displayedLamports =\n breakdown.nativeLamports + breakdown.canonicalWsolLamports;\n if (displayedLamports > MAX_SOLANA_LAMPORTS) {\n throw SdkError.validation(\"displayed SOL exceeds the transaction u64 range\");\n }\n if (breakdown.nativeLamports < costs.feeLamports) {\n throw SdkError.insufficientSolForTransactionFees(\n breakdown.nativeLamports,\n costs.feeLamports\n );\n }\n return {\n breakdown,\n displayedLamports,\n reserveLamports: costs.feeLamports,\n spendableLamports: displayedLamports - costs.feeLamports,\n };\n}\n\n/** Whether an event was accepted by, or rejected by, its lifecycle guard. */\nexport type WalletDepositBalancesApplyResult =\n | { kind: \"applied\" }\n | { kind: \"ignored\" }\n | { kind: \"rejected\" };\n\n/**\n * Mutable application-owned wallet balance state.\n *\n * The default instance is uninitialized. A complete REST or WebSocket snapshot\n * establishes its wallet baseline; later balance events must match that wallet\n * and carry absolute values. Native SOL never enters the sparse SPL mint map, and\n * complete snapshots may replace `contextSlot` with a lower slot.\n * Map containers are copied, but mutable balance objects are retained by reference;\n * treat payload entries as immutable after applying them.\n */\nexport class WalletDepositBalancesState {\n /** Wallet owning the current baseline, or `undefined` before initialization. */\n walletAddress: PubkeyStr | undefined;\n /** Slot of the last accepted event, not a globally monotonic stream version. */\n contextSlot: number | undefined;\n /** Sparse mint-keyed SPL balances; explicit zero updates remove their mint. */\n readonly balances = new Map<PubkeyStr, DepositTokenBalance>();\n /** Exact nine-decimal native SOL, separate from `balances`. */\n nativeSolBalance: string | undefined;\n\n /**\n * Initialize or wholesale-replace state from a complete REST snapshot.\n * The caller supplies the wallet omitted by REST. When `minimumSnapshotSlot`\n * is present, a lower complete snapshot is ignored without mutation; otherwise\n * prior slots are not compared.\n * Unlike WebSocket parsing, this TypeScript REST boundary performs no runtime\n * shape validation. Malformed exact values fail when a derived method scales them.\n */\n applyRestSnapshot(\n walletAddress: PubkeyStr,\n snapshot: DepositTokenBalancesSnapshot,\n minimumSnapshotSlot?: number\n ): WalletDepositBalancesApplyResult {\n if (\n minimumSnapshotSlot !== undefined &&\n snapshot.context_slot < minimumSnapshotSlot\n ) {\n return { kind: \"ignored\" };\n }\n this.replace(\n walletAddress,\n snapshot.context_slot,\n snapshot.balances,\n snapshot.native_sol_balance\n );\n return { kind: \"applied\" };\n }\n\n /**\n * Apply the wallet event state machine.\n *\n * Complete snapshots replace state unless they are below an optional minimum\n * snapshot slot. The floor never applies to incremental balance or status events.\n * Matching balance events replace one absolute value, zero SPL removes its\n * mint, and status, pre-initialization, or wrong-wallet events return `ignored`.\n */\n applyEvent(\n event: WalletDepositBalancesEvent,\n minimumSnapshotSlot?: number\n ): WalletDepositBalancesApplyResult {\n switch (event.event_type) {\n case \"wallet_deposit_balance_snapshot\":\n if (\n minimumSnapshotSlot !== undefined &&\n event.context_slot < minimumSnapshotSlot\n ) {\n return { kind: \"ignored\" };\n }\n // Complete snapshots are authoritative even when their lower\n // snapshot slot trails a previously observed update.\n this.replace(\n event.wallet_address,\n event.context_slot,\n event.balances,\n event.native_sol_balance\n );\n return { kind: \"applied\" };\n case \"wallet_deposit_balance_update\":\n if (!this.matchesInitializedWallet(event.wallet_address)) {\n return { kind: \"ignored\" };\n }\n let isZero: boolean;\n try {\n isZero = isZeroTokenAmount(event.balance.idle);\n } catch {\n return { kind: \"rejected\" };\n }\n if (isZero) {\n this.balances.delete(event.balance.mint);\n } else {\n this.balances.set(event.balance.mint, event.balance);\n }\n this.contextSlot = event.context_slot;\n return { kind: \"applied\" };\n case \"wallet_native_sol_balance_update\":\n if (!this.matchesInitializedWallet(event.wallet_address)) {\n return { kind: \"ignored\" };\n }\n this.nativeSolBalance = event.native_sol_balance;\n this.contextSlot = event.context_slot;\n return { kind: \"applied\" };\n case \"wallet_deposit_balance_status\":\n return { kind: \"ignored\" };\n }\n }\n\n /**\n * Return exact native SOL plus canonical WSOL with nine fractional digits.\n * Uses arbitrary-width integer arithmetic and never merges the stored assets.\n */\n combinedSolBalance(): string {\n const native = this.nativeSolLamports();\n const wrapped = this.balances.get(WRAPPED_SOL_MINT);\n const wrappedLamports = wrapped\n ? exactScaledInteger(wrapped.idle, 9)\n : 0n;\n return formatLamports(native + wrappedLamports);\n }\n\n /** Return the exact native and canonical WSOL breakdown for transaction planning. */\n solBalanceBreakdown(): SolBalanceBreakdown {\n let nativeLamports: bigint;\n let canonicalWsolLamports: bigint;\n try {\n nativeLamports = this.nativeSolLamports();\n canonicalWsolLamports = this.canonicalWsolLamports();\n } catch (error) {\n throw SdkError.validation(\n `invalid SOL balance: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n if (\n nativeLamports > MAX_SOLANA_LAMPORTS ||\n canonicalWsolLamports > MAX_SOLANA_LAMPORTS\n ) {\n throw SdkError.validation(\"SOL balance exceeds the transaction u64 range\");\n }\n return { nativeLamports, canonicalWsolLamports };\n }\n\n /** Scale cached native SOL exactly to lamports; requires initialized state. */\n nativeSolLamports(): bigint {\n if (this.nativeSolBalance === undefined) {\n throw new Error(\"wallet balance state is not initialized\");\n }\n return exactScaledInteger(this.nativeSolBalance, 9);\n }\n\n /** Scale the canonical WSOL idle balance exactly to lamports. */\n canonicalWsolLamports(): bigint {\n const wrapped = this.balances.get(WRAPPED_SOL_MINT);\n return wrapped ? exactScaledInteger(wrapped.idle, 9) : 0n;\n }\n\n private matchesInitializedWallet(walletAddress: PubkeyStr): boolean {\n return (\n this.walletAddress === walletAddress &&\n this.contextSlot !== undefined &&\n this.nativeSolBalance !== undefined\n );\n }\n\n private replace(\n walletAddress: PubkeyStr,\n contextSlot: number,\n balances: Record<PubkeyStr, DepositTokenBalance>,\n nativeSolBalance: string\n ): void {\n // Own the map lifecycle while retaining payload objects by reference. Callers\n // must treat balance records as immutable after handing them to state.\n this.walletAddress = walletAddress;\n this.contextSlot = contextSlot;\n this.balances.clear();\n for (const balance of Object.values(balances)) {\n this.balances.set(balance.mint, balance);\n }\n this.nativeSolBalance = nativeSolBalance;\n }\n}\n\nfunction formatLamports(value: bigint): string {\n // Integer division restores fixed-scale SOL text without floating-point loss.\n const scale = 1_000_000_000n;\n const whole = value / scale;\n const fraction = (value % scale).toString().padStart(9, \"0\");\n return `${whole}.${fraction}`;\n}\n\n/** Detect explicit zero without imposing SOL's nine-decimal scale on SPL tokens. */\nfunction isZeroTokenAmount(value: string): boolean {\n const amount = new Decimal(value);\n if (!amount.isFinite() || amount.isNegative()) {\n throw new Error(`invalid deposit-token balance: ${value}`);\n }\n return amount.isZero();\n}\n"]}
|
package/dist/prelude.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export { OrderbookState } from "./domain/orderbook/state";
|
|
|
28
28
|
export type { OrderbookApplyResult, OrderbookRefreshReason, } from "./domain/orderbook/state";
|
|
29
29
|
export type { CancelAllBody, CancelAllSuccess, CancelBody, CancelSuccess, ConditionalBalance, FillInfo, GlobalDepositUpdate, NonceUpdate, LimitOrder, OrderEvent, OrderStatus, OrderType, SubmitOrderResponse, SubmitOrderStatus, UserBalanceUpdate, UserDepositAssetBalance, UserMarketBalance, UserOutcomeBalance, UserSnapshotOrder, UserOrdersResponse, UserUpdate, } from "./domain/order";
|
|
30
30
|
export type { UserOpenLimitOrders } from "./domain/order/state";
|
|
31
|
-
export type { Portfolio, Position, PositionOutcome, WalletHolding, TokenBalance, TokenBalanceComputedBase, TokenBalanceTokenType, DepositAssetMetadata, DepositTokenBalance, DepositTokenBalancesSnapshot, WalletDepositBalanceSnapshot, WalletDepositBalanceStatus, WalletDepositBalanceStatusEvent, WalletDepositBalancesApplyResult, WalletDepositBalancesEvent, WalletDepositBalanceUpdate, WalletNativeSolBalanceUpdate, SolActionCosts, SolActionKind, SolActionPlan, SolBalanceAvailability,
|
|
31
|
+
export type { Portfolio, Position, PositionOutcome, WalletHolding, TokenBalance, TokenBalanceComputedBase, TokenBalanceTokenType, DepositAssetMetadata, DepositTokenBalance, DepositTokenBalancesSnapshot, WalletDepositBalanceSnapshot, WalletDepositBalanceStatus, WalletDepositBalanceStatusEvent, WalletDepositBalancesApplyResult, WalletDepositBalancesEvent, WalletDepositBalanceUpdate, WalletNativeSolBalanceUpdate, SolActionCosts, SolActionKind, SolActionPlan, SolBalanceAvailability, SolBalanceBreakdown, SolBalanceDelta, } from "./domain/position";
|
|
32
32
|
export { DepositBuilder, WithdrawBuilder, RedeemWinningsBuilder, WithdrawFromPositionBuilder, InitPositionTokensBuilder, ExtendPositionTokensBuilder, DepositToGlobalBuilder, WithdrawFromGlobalBuilder, GlobalToMarketDepositBuilder, WalletDepositBalancesState, WRAPPED_SOL_MINT, nativeWithdrawSeed, solBalanceAvailability, unwrapAllSolBalanceAvailability, SOL_RESERVE_WITH_ACCOUNT_CREATION_LAMPORTS, SOL_RESERVE_WITH_EXISTING_ACCOUNT_LAMPORTS, } from "./domain/position";
|
|
33
33
|
export type { Trade, WsTrade } from "./domain/trade";
|
|
34
34
|
export { TradeHistory } from "./domain/trade/state";
|
package/dist/prelude.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.d.ts","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,IAAI,EACJ,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,EAC9B,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,yBAAyB,EACzB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,+BAA+B,EAC/B,wBAAwB,EACxB,oCAAoC,EACpC,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,MAAM,EACN,yBAAyB,EACzB,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,KAAK,EACL,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,YAAY,EACV,SAAS,EACT,QAAQ,EACR,eAAe,EACf,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,+BAA+B,EAC/B,gCAAgC,EAChC,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"prelude.d.ts","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":"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"}
|
package/dist/prelude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":"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","sourcesContent":["export {\n ApiRejectedDetails,\n RejectionCode,\n asOrderBookId,\n asPubkeyStr,\n DepositSource,\n deriveOrderbookId,\n OrderUpdateType,\n Resolution,\n Side,\n TimeInForce,\n type ApiResponse,\n type OrderBookId,\n type PubkeyStr,\n type SubmitOrderRequest,\n} from \"./shared\";\n\nexport { SdkError } from \"./error\";\nexport { LightconeEnv, apiUrl, wsUrl, rpcUrl, programId } from \"./env\";\n\nexport {\n LightconeClient,\n LightconeClientBuilder,\n} from \"./client\";\n\nexport { Rpc } from \"./rpc\";\nexport type { CanonicalWsolAccountInfo } from \"./rpc\";\nexport type { ClientContext } from \"./context\";\n\nexport { Auth } from \"./auth\";\nexport { Markets } from \"./domain/market\";\nexport { Metrics } from \"./domain/metrics\";\nexport { Orderbooks } from \"./domain/orderbook\";\nexport { Orders } from \"./domain/order\";\nexport { Positions } from \"./domain/position\";\nexport { Trades } from \"./domain/trade\";\nexport { PriceHistoryClient } from \"./domain/price_history\";\nexport { Notifications } from \"./domain/notification\";\nexport { Referrals } from \"./domain/referral\";\n\nexport type {\n CategoriesMetrics,\n CategoryVolumeMetrics,\n DepositTokenVolumeHistory,\n DepositTokenVolumeHistoryPoint,\n DepositTokenVolumeHistoryPointToken,\n DepositTokenVolumeHistoryQuery,\n DepositTokenVolumeHistoryToken,\n DepositTokenVolumeMetrics,\n DepositTokensMetrics,\n HistoryPoint,\n Leaderboard,\n LeaderboardEntry,\n MarketDetailMetrics,\n MarketOrderbookVolumeMetrics,\n MarketVolumeMetrics,\n MarketsMetrics,\n MetricsHistory,\n MetricsHistoryQuery,\n OpenInterestHistory,\n OpenInterestHistoryDepositAsset,\n OpenInterestHistoryPoint,\n OpenInterestHistoryPointDepositAsset,\n OpenInterestHistoryQuery,\n OrderbookTickerEntry,\n OrderbookTickersResponse,\n OrderbookVolumeMetrics,\n OutcomeVolumeMetrics,\n PlatformMetrics,\n UniqueTradersHistory,\n UniqueTradersHistoryPoint,\n UniqueTradersHistoryQuery,\n UniqueTradersHistoryScope,\n} from \"./domain/metrics\";\n\nexport type {\n FaucetRequest,\n FaucetResponse,\n FaucetToken,\n} from \"./domain/faucet\";\n\nexport type {\n ConditionalTokenResponse,\n DepositAssetResponse,\n DepositMintsResponse,\n MarketResolutionPayout,\n MarketResolutionResponse,\n} from \"./domain/market/wire\";\n\nexport {\n Status,\n MarketResolutionKind,\n hasSingleWinningOutcome,\n isMarketResolved,\n singleWinningOutcome,\n} from \"./domain/market\";\n\nexport type {\n Market,\n MarketResolutionContainer,\n Outcome,\n ConditionalToken,\n DepositAsset,\n GlobalDepositAsset,\n Token,\n TokenMetadata,\n ValidatedTokens,\n} from \"./domain/market\";\n\nexport type {\n OrderBook,\n OrderBookPair,\n OrderbookDepthDecimals,\n OutcomeImpact,\n TickerData,\n WsBookLevel,\n} from \"./domain/orderbook\";\nexport { ImpactDirection, OrderBookValidationError } from \"./domain/orderbook\";\nexport type { BookAggregation } from \"./domain/orderbook/aggregation\";\nexport {\n aggregationFromFrame,\n aggregationKeySuffix,\n aggregationsEqual,\n FULL_PRECISION,\n isFullPrecision,\n normalizeAggregation,\n validateAggregation,\n} from \"./domain/orderbook/aggregation\";\nexport { OrderbookState } from \"./domain/orderbook/state\";\nexport type {\n OrderbookApplyResult,\n OrderbookRefreshReason,\n} from \"./domain/orderbook/state\";\n\nexport type {\n CancelAllBody,\n CancelAllSuccess,\n CancelBody,\n CancelSuccess,\n ConditionalBalance,\n FillInfo,\n GlobalDepositUpdate,\n NonceUpdate,\n LimitOrder,\n OrderEvent,\n OrderStatus,\n OrderType,\n SubmitOrderResponse,\n SubmitOrderStatus,\n UserBalanceUpdate,\n UserDepositAssetBalance,\n UserMarketBalance,\n UserOutcomeBalance,\n UserSnapshotOrder,\n UserOrdersResponse,\n UserUpdate,\n} from \"./domain/order\";\nexport type { UserOpenLimitOrders } from \"./domain/order/state\";\n\nexport type {\n Portfolio,\n Position,\n PositionOutcome,\n WalletHolding,\n TokenBalance,\n TokenBalanceComputedBase,\n TokenBalanceTokenType,\n DepositAssetMetadata,\n DepositTokenBalance,\n DepositTokenBalancesSnapshot,\n WalletDepositBalanceSnapshot,\n WalletDepositBalanceStatus,\n WalletDepositBalanceStatusEvent,\n WalletDepositBalancesApplyResult,\n WalletDepositBalancesEvent,\n WalletDepositBalanceUpdate,\n WalletNativeSolBalanceUpdate,\n SolActionCosts,\n SolActionKind,\n SolActionPlan,\n SolBalanceAvailability,\n SolBalanceComponents,\n SolComponentDelta,\n} from \"./domain/position\";\n\nexport {\n DepositBuilder,\n WithdrawBuilder,\n RedeemWinningsBuilder,\n WithdrawFromPositionBuilder,\n InitPositionTokensBuilder,\n ExtendPositionTokensBuilder,\n DepositToGlobalBuilder,\n WithdrawFromGlobalBuilder,\n GlobalToMarketDepositBuilder,\n WalletDepositBalancesState,\n WRAPPED_SOL_MINT,\n nativeWithdrawSeed,\n solBalanceAvailability,\n unwrapAllSolBalanceAvailability,\n SOL_RESERVE_WITH_ACCOUNT_CREATION_LAMPORTS,\n SOL_RESERVE_WITH_EXISTING_ACCOUNT_LAMPORTS,\n} from \"./domain/position\";\n\nexport type { Trade, WsTrade } from \"./domain/trade\";\nexport { TradeHistory } from \"./domain/trade/state\";\nexport type {\n DepositPrice,\n DepositPriceCandleUpdate,\n DepositPriceHistoryQuery,\n DepositPriceKey,\n DepositPriceSnapshot,\n DepositPriceTick,\n DepositTokenCandle,\n DepositTokenPriceHistoryResponse,\n DepositAssetPriceEvent,\n DepositAssetPriceSnapshot,\n DepositAssetPriceTick,\n DepositAssetPricesSnapshotResponse,\n LineData,\n MidpointPriceCandle,\n OhlcvPriceCandle,\n OrderbookPriceHistoryQuery,\n OrderbookPriceHistoryResponse,\n PriceCandle,\n PriceHistory,\n PriceHistoryRestResponse,\n PriceHistorySnapshot,\n PriceHistoryUpdate,\n} from \"./domain/price_history\";\nexport { DepositPriceState, PriceHistoryState } from \"./domain/price_history\";\n\nexport type {\n AuthCredentials,\n AuthMethod,\n ChainType,\n EmailAccountData,\n GoogleAccountData,\n LinkedIdentity,\n LinkedIdentitySelector,\n LinkedIdentityType,\n MaxSlippagePreferenceBody,\n PrivyEmbeddedWallet,\n RegisterPrivyConflict,\n RegisterPrivyRequest,\n SessionResponse,\n User,\n UserIdentity,\n UserPrivyData,\n XAccountData,\n} from \"./auth\";\nexport {\n avatarUrl,\n classifyRegisterPrivyConflict,\n displayName,\n identityText,\n tradingWallet,\n userPrivy,\n userXAccount,\n} from \"./auth\";\n\nexport {\n LimitOrderEnvelope,\n type OrderEnvelope,\n type OrderPayload,\n} from \"./program\";\n\nexport type {\n ExportWalletRequest,\n ExportWalletResponse,\n PrivyOrderEnvelope,\n SignAndSendOrderRequest,\n SignAndSendTxRequest,\n SignAndSendTxResponse,\n} from \"./privy\";\n\nexport {\n isUserCancellation,\n requireNativeSigningStrategy,\n type ExternalSigner,\n type NativeSigningStrategy,\n type SigningStrategy,\n} from \"./shared/signing\";\n\nexport {\n MergeBuilder,\n} from \"./domain/position\";\n\nexport type {\n Notification,\n NotificationKind,\n MarketResolvedData,\n OrderFilledData,\n MarketData,\n} from \"./domain/notification\";\n\nexport type {\n RedeemResult,\n ReferralCodeInfo,\n ReferralStatus,\n} from \"./domain/referral\";\n\nexport {\n RetryPolicy,\n type CredentialRestorer,\n type RetryConfig,\n} from \"./http\";\n\nexport type {\n IWsClient,\n Kind,\n MessageIn,\n MessageOut,\n SubscribeParams,\n UnsubscribeParams,\n WsConfig,\n WsEvent,\n} from \"./ws\";\nexport { subscribeBooks, unsubscribeBooks } from \"./ws\";\n\nexport type AuthClient = import(\"./auth\").Auth;\nexport type MarketsClient = import(\"./domain/market\").Markets;\nexport type MarketsResult = import(\"./domain/market\").MarketsResult;\nexport type GlobalDepositAssetsResult = import(\"./domain/market\").GlobalDepositAssetsResult;\nexport type FavoriteMarkets = import(\"./domain/market\").FavoriteMarkets;\nexport type FavoriteMarketUpdate = import(\"./domain/market\").FavoriteMarketUpdate;\nexport type MetricsClient = import(\"./domain/metrics\").Metrics;\nexport type OrderbooksClient = import(\"./domain/orderbook\").Orderbooks;\nexport type OrdersClient = import(\"./domain/order\").Orders;\nexport type PositionsClient = import(\"./domain/position\").Positions;\nexport type TradesClient = import(\"./domain/trade\").Trades;\nexport type PriceHistorySubClient = import(\"./domain/price_history\").PriceHistoryClient;\nexport type NotificationsClient = import(\"./domain/notification\").Notifications;\nexport type ReferralsClient = import(\"./domain/referral\").Referrals;\nexport type RpcClient = import(\"./rpc\").Rpc;\n"]}
|
|
1
|
+
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":"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","sourcesContent":["export {\n ApiRejectedDetails,\n RejectionCode,\n asOrderBookId,\n asPubkeyStr,\n DepositSource,\n deriveOrderbookId,\n OrderUpdateType,\n Resolution,\n Side,\n TimeInForce,\n type ApiResponse,\n type OrderBookId,\n type PubkeyStr,\n type SubmitOrderRequest,\n} from \"./shared\";\n\nexport { SdkError } from \"./error\";\nexport { LightconeEnv, apiUrl, wsUrl, rpcUrl, programId } from \"./env\";\n\nexport {\n LightconeClient,\n LightconeClientBuilder,\n} from \"./client\";\n\nexport { Rpc } from \"./rpc\";\nexport type { CanonicalWsolAccountInfo } from \"./rpc\";\nexport type { ClientContext } from \"./context\";\n\nexport { Auth } from \"./auth\";\nexport { Markets } from \"./domain/market\";\nexport { Metrics } from \"./domain/metrics\";\nexport { Orderbooks } from \"./domain/orderbook\";\nexport { Orders } from \"./domain/order\";\nexport { Positions } from \"./domain/position\";\nexport { Trades } from \"./domain/trade\";\nexport { PriceHistoryClient } from \"./domain/price_history\";\nexport { Notifications } from \"./domain/notification\";\nexport { Referrals } from \"./domain/referral\";\n\nexport type {\n CategoriesMetrics,\n CategoryVolumeMetrics,\n DepositTokenVolumeHistory,\n DepositTokenVolumeHistoryPoint,\n DepositTokenVolumeHistoryPointToken,\n DepositTokenVolumeHistoryQuery,\n DepositTokenVolumeHistoryToken,\n DepositTokenVolumeMetrics,\n DepositTokensMetrics,\n HistoryPoint,\n Leaderboard,\n LeaderboardEntry,\n MarketDetailMetrics,\n MarketOrderbookVolumeMetrics,\n MarketVolumeMetrics,\n MarketsMetrics,\n MetricsHistory,\n MetricsHistoryQuery,\n OpenInterestHistory,\n OpenInterestHistoryDepositAsset,\n OpenInterestHistoryPoint,\n OpenInterestHistoryPointDepositAsset,\n OpenInterestHistoryQuery,\n OrderbookTickerEntry,\n OrderbookTickersResponse,\n OrderbookVolumeMetrics,\n OutcomeVolumeMetrics,\n PlatformMetrics,\n UniqueTradersHistory,\n UniqueTradersHistoryPoint,\n UniqueTradersHistoryQuery,\n UniqueTradersHistoryScope,\n} from \"./domain/metrics\";\n\nexport type {\n FaucetRequest,\n FaucetResponse,\n FaucetToken,\n} from \"./domain/faucet\";\n\nexport type {\n ConditionalTokenResponse,\n DepositAssetResponse,\n DepositMintsResponse,\n MarketResolutionPayout,\n MarketResolutionResponse,\n} from \"./domain/market/wire\";\n\nexport {\n Status,\n MarketResolutionKind,\n hasSingleWinningOutcome,\n isMarketResolved,\n singleWinningOutcome,\n} from \"./domain/market\";\n\nexport type {\n Market,\n MarketResolutionContainer,\n Outcome,\n ConditionalToken,\n DepositAsset,\n GlobalDepositAsset,\n Token,\n TokenMetadata,\n ValidatedTokens,\n} from \"./domain/market\";\n\nexport type {\n OrderBook,\n OrderBookPair,\n OrderbookDepthDecimals,\n OutcomeImpact,\n TickerData,\n WsBookLevel,\n} from \"./domain/orderbook\";\nexport { ImpactDirection, OrderBookValidationError } from \"./domain/orderbook\";\nexport type { BookAggregation } from \"./domain/orderbook/aggregation\";\nexport {\n aggregationFromFrame,\n aggregationKeySuffix,\n aggregationsEqual,\n FULL_PRECISION,\n isFullPrecision,\n normalizeAggregation,\n validateAggregation,\n} from \"./domain/orderbook/aggregation\";\nexport { OrderbookState } from \"./domain/orderbook/state\";\nexport type {\n OrderbookApplyResult,\n OrderbookRefreshReason,\n} from \"./domain/orderbook/state\";\n\nexport type {\n CancelAllBody,\n CancelAllSuccess,\n CancelBody,\n CancelSuccess,\n ConditionalBalance,\n FillInfo,\n GlobalDepositUpdate,\n NonceUpdate,\n LimitOrder,\n OrderEvent,\n OrderStatus,\n OrderType,\n SubmitOrderResponse,\n SubmitOrderStatus,\n UserBalanceUpdate,\n UserDepositAssetBalance,\n UserMarketBalance,\n UserOutcomeBalance,\n UserSnapshotOrder,\n UserOrdersResponse,\n UserUpdate,\n} from \"./domain/order\";\nexport type { UserOpenLimitOrders } from \"./domain/order/state\";\n\nexport type {\n Portfolio,\n Position,\n PositionOutcome,\n WalletHolding,\n TokenBalance,\n TokenBalanceComputedBase,\n TokenBalanceTokenType,\n DepositAssetMetadata,\n DepositTokenBalance,\n DepositTokenBalancesSnapshot,\n WalletDepositBalanceSnapshot,\n WalletDepositBalanceStatus,\n WalletDepositBalanceStatusEvent,\n WalletDepositBalancesApplyResult,\n WalletDepositBalancesEvent,\n WalletDepositBalanceUpdate,\n WalletNativeSolBalanceUpdate,\n SolActionCosts,\n SolActionKind,\n SolActionPlan,\n SolBalanceAvailability,\n SolBalanceBreakdown,\n SolBalanceDelta,\n} from \"./domain/position\";\n\nexport {\n DepositBuilder,\n WithdrawBuilder,\n RedeemWinningsBuilder,\n WithdrawFromPositionBuilder,\n InitPositionTokensBuilder,\n ExtendPositionTokensBuilder,\n DepositToGlobalBuilder,\n WithdrawFromGlobalBuilder,\n GlobalToMarketDepositBuilder,\n WalletDepositBalancesState,\n WRAPPED_SOL_MINT,\n nativeWithdrawSeed,\n solBalanceAvailability,\n unwrapAllSolBalanceAvailability,\n SOL_RESERVE_WITH_ACCOUNT_CREATION_LAMPORTS,\n SOL_RESERVE_WITH_EXISTING_ACCOUNT_LAMPORTS,\n} from \"./domain/position\";\n\nexport type { Trade, WsTrade } from \"./domain/trade\";\nexport { TradeHistory } from \"./domain/trade/state\";\nexport type {\n DepositPrice,\n DepositPriceCandleUpdate,\n DepositPriceHistoryQuery,\n DepositPriceKey,\n DepositPriceSnapshot,\n DepositPriceTick,\n DepositTokenCandle,\n DepositTokenPriceHistoryResponse,\n DepositAssetPriceEvent,\n DepositAssetPriceSnapshot,\n DepositAssetPriceTick,\n DepositAssetPricesSnapshotResponse,\n LineData,\n MidpointPriceCandle,\n OhlcvPriceCandle,\n OrderbookPriceHistoryQuery,\n OrderbookPriceHistoryResponse,\n PriceCandle,\n PriceHistory,\n PriceHistoryRestResponse,\n PriceHistorySnapshot,\n PriceHistoryUpdate,\n} from \"./domain/price_history\";\nexport { DepositPriceState, PriceHistoryState } from \"./domain/price_history\";\n\nexport type {\n AuthCredentials,\n AuthMethod,\n ChainType,\n EmailAccountData,\n GoogleAccountData,\n LinkedIdentity,\n LinkedIdentitySelector,\n LinkedIdentityType,\n MaxSlippagePreferenceBody,\n PrivyEmbeddedWallet,\n RegisterPrivyConflict,\n RegisterPrivyRequest,\n SessionResponse,\n User,\n UserIdentity,\n UserPrivyData,\n XAccountData,\n} from \"./auth\";\nexport {\n avatarUrl,\n classifyRegisterPrivyConflict,\n displayName,\n identityText,\n tradingWallet,\n userPrivy,\n userXAccount,\n} from \"./auth\";\n\nexport {\n LimitOrderEnvelope,\n type OrderEnvelope,\n type OrderPayload,\n} from \"./program\";\n\nexport type {\n ExportWalletRequest,\n ExportWalletResponse,\n PrivyOrderEnvelope,\n SignAndSendOrderRequest,\n SignAndSendTxRequest,\n SignAndSendTxResponse,\n} from \"./privy\";\n\nexport {\n isUserCancellation,\n requireNativeSigningStrategy,\n type ExternalSigner,\n type NativeSigningStrategy,\n type SigningStrategy,\n} from \"./shared/signing\";\n\nexport {\n MergeBuilder,\n} from \"./domain/position\";\n\nexport type {\n Notification,\n NotificationKind,\n MarketResolvedData,\n OrderFilledData,\n MarketData,\n} from \"./domain/notification\";\n\nexport type {\n RedeemResult,\n ReferralCodeInfo,\n ReferralStatus,\n} from \"./domain/referral\";\n\nexport {\n RetryPolicy,\n type CredentialRestorer,\n type RetryConfig,\n} from \"./http\";\n\nexport type {\n IWsClient,\n Kind,\n MessageIn,\n MessageOut,\n SubscribeParams,\n UnsubscribeParams,\n WsConfig,\n WsEvent,\n} from \"./ws\";\nexport { subscribeBooks, unsubscribeBooks } from \"./ws\";\n\nexport type AuthClient = import(\"./auth\").Auth;\nexport type MarketsClient = import(\"./domain/market\").Markets;\nexport type MarketsResult = import(\"./domain/market\").MarketsResult;\nexport type GlobalDepositAssetsResult = import(\"./domain/market\").GlobalDepositAssetsResult;\nexport type FavoriteMarkets = import(\"./domain/market\").FavoriteMarkets;\nexport type FavoriteMarketUpdate = import(\"./domain/market\").FavoriteMarketUpdate;\nexport type MetricsClient = import(\"./domain/metrics\").Metrics;\nexport type OrderbooksClient = import(\"./domain/orderbook\").Orderbooks;\nexport type OrdersClient = import(\"./domain/order\").Orders;\nexport type PositionsClient = import(\"./domain/position\").Positions;\nexport type TradesClient = import(\"./domain/trade\").Trades;\nexport type PriceHistorySubClient = import(\"./domain/price_history\").PriceHistoryClient;\nexport type NotificationsClient = import(\"./domain/notification\").Notifications;\nexport type ReferralsClient = import(\"./domain/referral\").Referrals;\nexport type RpcClient = import(\"./rpc\").Rpc;\n"]}
|