@lightconexyz/lightcone-sdk 0.8.1-rc.6 → 0.8.1-rc.8
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/dist/domain/market/tokens.d.ts +1 -0
- package/dist/domain/market/tokens.d.ts.map +1 -1
- package/dist/domain/market/tokens.js +3 -2
- package/dist/domain/market/tokens.js.map +1 -1
- package/dist/program/accounts.d.ts +10 -6
- package/dist/program/accounts.d.ts.map +1 -1
- package/dist/program/accounts.js +33 -9
- package/dist/program/accounts.js.map +1 -1
- package/dist/program/constants.d.ts +13 -3
- package/dist/program/constants.d.ts.map +1 -1
- package/dist/program/constants.js +14 -4
- package/dist/program/constants.js.map +1 -1
- package/dist/program/error.d.ts +7 -2
- package/dist/program/error.d.ts.map +1 -1
- package/dist/program/error.js +17 -2
- package/dist/program/error.js.map +1 -1
- package/dist/program/index.d.ts +4 -4
- package/dist/program/index.d.ts.map +1 -1
- package/dist/program/index.js +21 -4
- package/dist/program/index.js.map +1 -1
- package/dist/program/instructions.d.ts +61 -1
- package/dist/program/instructions.d.ts.map +1 -1
- package/dist/program/instructions.js +201 -0
- package/dist/program/instructions.js.map +1 -1
- package/dist/program/types.d.ts +65 -4
- package/dist/program/types.d.ts.map +1 -1
- package/dist/program/types.js +11 -1
- package/dist/program/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/domain/market/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAEV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,QAAQ,CAAC;AAEhB,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,CAazE;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;CAAE,CAAC;AAM7C;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAYzF;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,SAAS,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/domain/market/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,7 +105,7 @@ function validatedTokensFromWire(source) {
|
|
|
105
105
|
iconUrlHigh: iconUrls?.high ?? "",
|
|
106
106
|
name: name ?? "",
|
|
107
107
|
};
|
|
108
|
-
const conditionals = source.conditional_mints.map((conditional) => conditionalFromWire(conditional, source.deposit_asset, symbol ?? "", iconUrls?.low ?? "", iconUrls?.medium ?? "", iconUrls?.high ?? ""));
|
|
108
|
+
const conditionals = source.conditional_mints.map((conditional) => conditionalFromWire(conditional, source.deposit_asset, symbol ?? "", name ?? "", iconUrls?.low ?? "", iconUrls?.medium ?? "", iconUrls?.high ?? ""));
|
|
109
109
|
for (const conditional of conditionals) {
|
|
110
110
|
metadata[conditional.pubkey] = {
|
|
111
111
|
pubkey: conditional.pubkey,
|
|
@@ -173,7 +173,7 @@ function globalDepositAssetFromWire(source) {
|
|
|
173
173
|
active: source.active,
|
|
174
174
|
};
|
|
175
175
|
}
|
|
176
|
-
function conditionalFromWire(source, depositAsset, depositSymbol, parentIconUrlLow, parentIconUrlMedium, parentIconUrlHigh) {
|
|
176
|
+
function conditionalFromWire(source, depositAsset, depositSymbol, depositShortSymbol, parentIconUrlLow, parentIconUrlMedium, parentIconUrlHigh) {
|
|
177
177
|
const errors = [];
|
|
178
178
|
if (source.decimals === undefined)
|
|
179
179
|
errors.push("Missing decimals");
|
|
@@ -194,6 +194,7 @@ function conditionalFromWire(source, depositAsset, depositSymbol, parentIconUrlL
|
|
|
194
194
|
outcome: source.outcome ?? "",
|
|
195
195
|
depositAsset: (0, shared_1.asPubkeyStr)(depositAsset),
|
|
196
196
|
depositSymbol,
|
|
197
|
+
depositShortSymbol,
|
|
197
198
|
pubkey: (0, shared_1.asPubkeyStr)(source.token_address),
|
|
198
199
|
name: source.outcome ?? "",
|
|
199
200
|
symbol: source.symbol ?? source.short_symbol ?? "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/domain/market/tokens.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from \"decimal.js\";\nimport type { PubkeyStr } from \"../../shared\";\nimport { asPubkeyStr } from \"../../shared\";\nimport { resolveIconUrls } from \"./icon\";\nimport type {\n ConditionalTokenResponse,\n DepositAssetResponse,\n GlobalDepositAssetResponse,\n} from \"./wire\";\n\nexport interface Token {\n id: number;\n pubkey: PubkeyStr;\n name: string;\n symbol: string;\n shortSymbol: string;\n description?: string;\n decimals: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n}\n\n/**\n * Display priority for sorting: lower values come first. BTC/WBTC tie at 0,\n * ETH/WETH tie at 1, SOL at 2; everything else falls to the alphabetical tail.\n */\nexport function tokenDisplayPriority(token: Pick<Token, \"symbol\">): number {\n switch (token.symbol) {\n case \"BTC\":\n case \"WBTC\":\n return 0;\n case \"ETH\":\n case \"WETH\":\n return 1;\n case \"SOL\":\n return 2;\n default:\n return 255;\n }\n}\n\n/**\n * Shape accepted by {@link sortByDisplayPriority}. Either a token with a\n * top-level `symbol`, or a composite (e.g. `DepositAssetPair`, `OrderBookPair`)\n * that carries its display token on `base`.\n */\nexport type DisplaySortable =\n | Pick<Token, \"symbol\">\n | { readonly base: Pick<Token, \"symbol\"> };\n\nfunction displaySymbol(item: DisplaySortable): string {\n return \"symbol\" in item ? item.symbol : item.base.symbol;\n}\n\n/**\n * Returns a new array ordered for display: priority groups first\n * (BTC/WBTC → ETH/WETH → SOL), then all remaining items alphabetically by the\n * display token's symbol.\n *\n * Accepts both pure tokens and composite types whose display token lives on\n * `base` (e.g. `DepositAssetPair`, `OrderBookPair`).\n */\nexport function sortByDisplayPriority<T extends DisplaySortable>(items: readonly T[]): T[] {\n const copy = [...items];\n copy.sort((left, right) => {\n const leftSymbol = displaySymbol(left);\n const rightSymbol = displaySymbol(right);\n const priorityDelta =\n tokenDisplayPriority({ symbol: leftSymbol }) -\n tokenDisplayPriority({ symbol: rightSymbol });\n if (priorityDelta !== 0) return priorityDelta;\n return leftSymbol.localeCompare(rightSymbol);\n });\n return copy;\n}\n\nexport interface ConditionalToken extends Token {\n outcomeIndex: number;\n outcome: string;\n depositAsset: PubkeyStr;\n depositSymbol: string;\n}\n\nexport interface DepositAsset extends Token {\n marketPda: PubkeyStr;\n depositAsset: PubkeyStr;\n numOutcomes: number;\n minOrderSize?: Decimal;\n}\n\n/**\n * A base/quote pairing of two `DepositAsset`s.\n *\n * Populated on `Market.depositAssetPairs` during wire→domain conversion —\n * one entry per unique base/quote combination across the market's orderbook\n * pairs.\n */\nexport interface DepositAssetPair {\n /** Stable identifier of the form `\"{basePubkey}-{quotePubkey}\"`. */\n id: string;\n base: DepositAsset;\n quote: DepositAsset;\n}\n\n/**\n * A globally whitelisted deposit asset (platform-scoped, not market-bound).\n *\n * Distinct from `DepositAsset`, which is bound to a specific market.\n */\nexport interface GlobalDepositAsset extends Token {\n depositAsset: PubkeyStr;\n whitelistIndex: number;\n active: boolean;\n}\n\nexport interface TokenMetadata {\n pubkey: PubkeyStr;\n symbol: string;\n shortSymbol: string;\n decimals: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n name: string;\n}\n\nexport interface ValidatedTokens {\n token: DepositAsset;\n conditionals: ConditionalToken[];\n metadata: Record<string, TokenMetadata>;\n}\n\nexport class TokenValidationError extends Error {\n readonly details: string[];\n\n constructor(mint: string, details: string[]) {\n super(`Token validation errors (${mint}): ${details.join(\"; \")}`);\n this.name = \"TokenValidationError\";\n this.details = details;\n }\n}\n\nconst USDC_MAINNET = \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\";\nconst USDT_MAINNET = \"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\";\nconst USDC_DEVNET_LC = \"7SrxsoXjNR7Y8T3koJCt1yV4FrNUumoAUrJExDt6tQez\";\n\nexport function isUsdStablecoin(pubkey: string): boolean {\n return pubkey === USDC_MAINNET || pubkey === USDT_MAINNET || pubkey === USDC_DEVNET_LC;\n}\n\nexport function currencySymbol(pubkey: string): \"\" | \"$\" {\n return isUsdStablecoin(pubkey) ? \"$\" : \"\";\n}\n\nexport function validatedTokensFromWire(source: DepositAssetResponse): ValidatedTokens {\n const errors: string[] = [];\n const metadata: Record<string, TokenMetadata> = {};\n\n const depositPubkey = asPubkeyStr(source.deposit_asset);\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const name = source.display_name;\n const symbol = source.symbol;\n const decimals = source.decimals;\n const minOrderSize =\n source.min_order_size === undefined || source.min_order_size === null\n ? undefined\n : new Decimal(source.min_order_size);\n\n if (!iconUrls) errors.push(\"Missing icon URL\");\n if (!name) errors.push(\"Missing display name\");\n if (!symbol) errors.push(\"Missing symbol\");\n if (decimals === undefined) errors.push(\"Missing decimals\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.deposit_asset, errors);\n }\n\n metadata[source.deposit_asset] = {\n pubkey: depositPubkey,\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n name: name ?? \"\",\n };\n\n const conditionals = source.conditional_mints.map((conditional) =>\n conditionalFromWire(conditional, source.deposit_asset, symbol ?? \"\", iconUrls?.low ?? \"\", iconUrls?.medium ?? \"\", iconUrls?.high ?? \"\")\n );\n\n for (const conditional of conditionals) {\n metadata[conditional.pubkey] = {\n pubkey: conditional.pubkey,\n symbol: conditional.symbol,\n shortSymbol: conditional.shortSymbol,\n decimals: conditional.decimals,\n iconUrlLow: conditional.iconUrlLow,\n iconUrlMedium: conditional.iconUrlMedium,\n iconUrlHigh: conditional.iconUrlHigh,\n name: conditional.name,\n };\n }\n\n return {\n token: {\n id: source.id,\n marketPda: asPubkeyStr(source.market_pubkey),\n depositAsset: depositPubkey,\n numOutcomes: source.num_outcomes,\n pubkey: depositPubkey,\n name: name ?? \"\",\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n description: source.description,\n decimals: decimals ?? 0,\n minOrderSize,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n },\n conditionals,\n metadata,\n };\n}\n\nexport function globalDepositAssetFromWire(\n source: GlobalDepositAssetResponse\n): GlobalDepositAsset {\n const errors: string[] = [];\n\n const name = source.display_name;\n const symbol = source.symbol;\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const decimals = source.decimals;\n\n if (!name) errors.push(\"Missing display name\");\n if (!symbol) errors.push(\"Missing symbol\");\n if (!iconUrls) errors.push(\"Missing icon URL\");\n if (decimals === undefined || decimals === null) errors.push(\"Missing decimals\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.mint, errors);\n }\n\n const depositAsset = asPubkeyStr(source.mint);\n return {\n id: source.id,\n pubkey: depositAsset,\n depositAsset,\n name: name ?? \"\",\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n description: source.description,\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n whitelistIndex: source.whitelist_index,\n active: source.active,\n };\n}\n\nfunction conditionalFromWire(\n source: ConditionalTokenResponse,\n depositAsset: string,\n depositSymbol: string,\n parentIconUrlLow: string,\n parentIconUrlMedium: string,\n parentIconUrlHigh: string\n): ConditionalToken {\n const errors: string[] = [];\n if (source.decimals === undefined) errors.push(\"Missing decimals\");\n if (!source.short_symbol) errors.push(\"Missing short_symbol\");\n if (!source.outcome) errors.push(\"Missing outcome\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.token_address, errors);\n }\n\n const ownIconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const resolvedIconUrlLow = ownIconUrls?.low ?? parentIconUrlLow;\n const resolvedIconUrlMedium = ownIconUrls?.medium ?? parentIconUrlMedium;\n const resolvedIconUrlHigh = ownIconUrls?.high ?? parentIconUrlHigh;\n\n return {\n id: source.id,\n outcomeIndex: source.outcome_index,\n outcome: source.outcome ?? \"\",\n depositAsset: asPubkeyStr(depositAsset),\n depositSymbol,\n pubkey: asPubkeyStr(source.token_address),\n name: source.outcome ?? \"\",\n symbol: source.symbol ?? source.short_symbol ?? \"\",\n shortSymbol: source.short_symbol ?? source.symbol ?? \"\",\n description: source.description,\n decimals: source.decimals ?? 0,\n iconUrlLow: resolvedIconUrlLow,\n iconUrlMedium: resolvedIconUrlMedium,\n iconUrlHigh: resolvedIconUrlHigh,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/domain/market/tokens.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from \"decimal.js\";\nimport type { PubkeyStr } from \"../../shared\";\nimport { asPubkeyStr } from \"../../shared\";\nimport { resolveIconUrls } from \"./icon\";\nimport type {\n ConditionalTokenResponse,\n DepositAssetResponse,\n GlobalDepositAssetResponse,\n} from \"./wire\";\n\nexport interface Token {\n id: number;\n pubkey: PubkeyStr;\n name: string;\n symbol: string;\n shortSymbol: string;\n description?: string;\n decimals: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n}\n\n/**\n * Display priority for sorting: lower values come first. BTC/WBTC tie at 0,\n * ETH/WETH tie at 1, SOL at 2; everything else falls to the alphabetical tail.\n */\nexport function tokenDisplayPriority(token: Pick<Token, \"symbol\">): number {\n switch (token.symbol) {\n case \"BTC\":\n case \"WBTC\":\n return 0;\n case \"ETH\":\n case \"WETH\":\n return 1;\n case \"SOL\":\n return 2;\n default:\n return 255;\n }\n}\n\n/**\n * Shape accepted by {@link sortByDisplayPriority}. Either a token with a\n * top-level `symbol`, or a composite (e.g. `DepositAssetPair`, `OrderBookPair`)\n * that carries its display token on `base`.\n */\nexport type DisplaySortable =\n | Pick<Token, \"symbol\">\n | { readonly base: Pick<Token, \"symbol\"> };\n\nfunction displaySymbol(item: DisplaySortable): string {\n return \"symbol\" in item ? item.symbol : item.base.symbol;\n}\n\n/**\n * Returns a new array ordered for display: priority groups first\n * (BTC/WBTC → ETH/WETH → SOL), then all remaining items alphabetically by the\n * display token's symbol.\n *\n * Accepts both pure tokens and composite types whose display token lives on\n * `base` (e.g. `DepositAssetPair`, `OrderBookPair`).\n */\nexport function sortByDisplayPriority<T extends DisplaySortable>(items: readonly T[]): T[] {\n const copy = [...items];\n copy.sort((left, right) => {\n const leftSymbol = displaySymbol(left);\n const rightSymbol = displaySymbol(right);\n const priorityDelta =\n tokenDisplayPriority({ symbol: leftSymbol }) -\n tokenDisplayPriority({ symbol: rightSymbol });\n if (priorityDelta !== 0) return priorityDelta;\n return leftSymbol.localeCompare(rightSymbol);\n });\n return copy;\n}\n\nexport interface ConditionalToken extends Token {\n outcomeIndex: number;\n outcome: string;\n depositAsset: PubkeyStr;\n depositSymbol: string;\n depositShortSymbol: string;\n}\n\nexport interface DepositAsset extends Token {\n marketPda: PubkeyStr;\n depositAsset: PubkeyStr;\n numOutcomes: number;\n minOrderSize?: Decimal;\n}\n\n/**\n * A base/quote pairing of two `DepositAsset`s.\n *\n * Populated on `Market.depositAssetPairs` during wire→domain conversion —\n * one entry per unique base/quote combination across the market's orderbook\n * pairs.\n */\nexport interface DepositAssetPair {\n /** Stable identifier of the form `\"{basePubkey}-{quotePubkey}\"`. */\n id: string;\n base: DepositAsset;\n quote: DepositAsset;\n}\n\n/**\n * A globally whitelisted deposit asset (platform-scoped, not market-bound).\n *\n * Distinct from `DepositAsset`, which is bound to a specific market.\n */\nexport interface GlobalDepositAsset extends Token {\n depositAsset: PubkeyStr;\n whitelistIndex: number;\n active: boolean;\n}\n\nexport interface TokenMetadata {\n pubkey: PubkeyStr;\n symbol: string;\n shortSymbol: string;\n decimals: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n name: string;\n}\n\nexport interface ValidatedTokens {\n token: DepositAsset;\n conditionals: ConditionalToken[];\n metadata: Record<string, TokenMetadata>;\n}\n\nexport class TokenValidationError extends Error {\n readonly details: string[];\n\n constructor(mint: string, details: string[]) {\n super(`Token validation errors (${mint}): ${details.join(\"; \")}`);\n this.name = \"TokenValidationError\";\n this.details = details;\n }\n}\n\nconst USDC_MAINNET = \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\";\nconst USDT_MAINNET = \"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\";\nconst USDC_DEVNET_LC = \"7SrxsoXjNR7Y8T3koJCt1yV4FrNUumoAUrJExDt6tQez\";\n\nexport function isUsdStablecoin(pubkey: string): boolean {\n return pubkey === USDC_MAINNET || pubkey === USDT_MAINNET || pubkey === USDC_DEVNET_LC;\n}\n\nexport function currencySymbol(pubkey: string): \"\" | \"$\" {\n return isUsdStablecoin(pubkey) ? \"$\" : \"\";\n}\n\nexport function validatedTokensFromWire(source: DepositAssetResponse): ValidatedTokens {\n const errors: string[] = [];\n const metadata: Record<string, TokenMetadata> = {};\n\n const depositPubkey = asPubkeyStr(source.deposit_asset);\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const name = source.display_name;\n const symbol = source.symbol;\n const decimals = source.decimals;\n const minOrderSize =\n source.min_order_size === undefined || source.min_order_size === null\n ? undefined\n : new Decimal(source.min_order_size);\n\n if (!iconUrls) errors.push(\"Missing icon URL\");\n if (!name) errors.push(\"Missing display name\");\n if (!symbol) errors.push(\"Missing symbol\");\n if (decimals === undefined) errors.push(\"Missing decimals\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.deposit_asset, errors);\n }\n\n metadata[source.deposit_asset] = {\n pubkey: depositPubkey,\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n name: name ?? \"\",\n };\n\n const conditionals = source.conditional_mints.map((conditional) =>\n conditionalFromWire(conditional, source.deposit_asset, symbol ?? \"\", name ?? \"\", iconUrls?.low ?? \"\", iconUrls?.medium ?? \"\", iconUrls?.high ?? \"\")\n );\n\n for (const conditional of conditionals) {\n metadata[conditional.pubkey] = {\n pubkey: conditional.pubkey,\n symbol: conditional.symbol,\n shortSymbol: conditional.shortSymbol,\n decimals: conditional.decimals,\n iconUrlLow: conditional.iconUrlLow,\n iconUrlMedium: conditional.iconUrlMedium,\n iconUrlHigh: conditional.iconUrlHigh,\n name: conditional.name,\n };\n }\n\n return {\n token: {\n id: source.id,\n marketPda: asPubkeyStr(source.market_pubkey),\n depositAsset: depositPubkey,\n numOutcomes: source.num_outcomes,\n pubkey: depositPubkey,\n name: name ?? \"\",\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n description: source.description,\n decimals: decimals ?? 0,\n minOrderSize,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n },\n conditionals,\n metadata,\n };\n}\n\nexport function globalDepositAssetFromWire(\n source: GlobalDepositAssetResponse\n): GlobalDepositAsset {\n const errors: string[] = [];\n\n const name = source.display_name;\n const symbol = source.symbol;\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const decimals = source.decimals;\n\n if (!name) errors.push(\"Missing display name\");\n if (!symbol) errors.push(\"Missing symbol\");\n if (!iconUrls) errors.push(\"Missing icon URL\");\n if (decimals === undefined || decimals === null) errors.push(\"Missing decimals\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.mint, errors);\n }\n\n const depositAsset = asPubkeyStr(source.mint);\n return {\n id: source.id,\n pubkey: depositAsset,\n depositAsset,\n name: name ?? \"\",\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n description: source.description,\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n whitelistIndex: source.whitelist_index,\n active: source.active,\n };\n}\n\nfunction conditionalFromWire(\n source: ConditionalTokenResponse,\n depositAsset: string,\n depositSymbol: string,\n depositShortSymbol: string,\n parentIconUrlLow: string,\n parentIconUrlMedium: string,\n parentIconUrlHigh: string\n): ConditionalToken {\n const errors: string[] = [];\n if (source.decimals === undefined) errors.push(\"Missing decimals\");\n if (!source.short_symbol) errors.push(\"Missing short_symbol\");\n if (!source.outcome) errors.push(\"Missing outcome\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.token_address, errors);\n }\n\n const ownIconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const resolvedIconUrlLow = ownIconUrls?.low ?? parentIconUrlLow;\n const resolvedIconUrlMedium = ownIconUrls?.medium ?? parentIconUrlMedium;\n const resolvedIconUrlHigh = ownIconUrls?.high ?? parentIconUrlHigh;\n\n return {\n id: source.id,\n outcomeIndex: source.outcome_index,\n outcome: source.outcome ?? \"\",\n depositAsset: asPubkeyStr(depositAsset),\n depositSymbol,\n depositShortSymbol,\n pubkey: asPubkeyStr(source.token_address),\n name: source.outcome ?? \"\",\n symbol: source.symbol ?? source.short_symbol ?? \"\",\n shortSymbol: source.short_symbol ?? source.symbol ?? \"\",\n description: source.description,\n decimals: source.decimals ?? 0,\n iconUrlLow: resolvedIconUrlLow,\n iconUrlMedium: resolvedIconUrlMedium,\n iconUrlHigh: resolvedIconUrlHigh,\n };\n}\n"]}
|
|
@@ -30,7 +30,7 @@ export declare function isGlobalDepositTokenAccount(data: Buffer): boolean;
|
|
|
30
30
|
/**
|
|
31
31
|
* Deserialize Exchange account data
|
|
32
32
|
*
|
|
33
|
-
* Layout (
|
|
33
|
+
* Layout (216 bytes):
|
|
34
34
|
* - discriminator: [u8; 8]
|
|
35
35
|
* - authority: Pubkey (32 bytes)
|
|
36
36
|
* - operator: Pubkey (32 bytes)
|
|
@@ -40,13 +40,15 @@ export declare function isGlobalDepositTokenAccount(data: Buffer): boolean;
|
|
|
40
40
|
* - bump: u8 (1 byte)
|
|
41
41
|
* - deposit_token_count: u16 (2 bytes)
|
|
42
42
|
* - fee_receiver: Pubkey (32 bytes)
|
|
43
|
-
* -
|
|
43
|
+
* - pending_role: Pubkey (32 bytes)
|
|
44
|
+
* - pending_role_kind: u8 (1 byte)
|
|
45
|
+
* - _reserved: [u8; 35]
|
|
44
46
|
*/
|
|
45
47
|
export declare function deserializeExchange(data: Buffer): Exchange;
|
|
46
48
|
/**
|
|
47
49
|
* Deserialize Market account data
|
|
48
50
|
*
|
|
49
|
-
* Layout (
|
|
51
|
+
* Layout (216 bytes):
|
|
50
52
|
* - discriminator: [u8; 8]
|
|
51
53
|
* - market_id: u64 (8 bytes)
|
|
52
54
|
* - num_outcomes: u8 (1 byte)
|
|
@@ -60,6 +62,7 @@ export declare function deserializeExchange(data: Buffer): Exchange;
|
|
|
60
62
|
* - condition_id: [u8; 32]
|
|
61
63
|
* - payout_numerators: [u32; 6]
|
|
62
64
|
* - payout_denominator: u32
|
|
65
|
+
* - _reserved: [u8; 68]
|
|
63
66
|
*/
|
|
64
67
|
export declare function deserializeMarket(data: Buffer): Market;
|
|
65
68
|
/**
|
|
@@ -109,12 +112,13 @@ export declare function deserializeOrderbook(data: Buffer): Orderbook;
|
|
|
109
112
|
/**
|
|
110
113
|
* Deserialize GlobalDepositToken account data
|
|
111
114
|
*
|
|
112
|
-
* Layout (
|
|
115
|
+
* Layout (47 bytes):
|
|
113
116
|
* - discriminator: [u8; 8]
|
|
114
117
|
* - mint: Pubkey (32 bytes)
|
|
115
|
-
* - active: u8 (1 byte)
|
|
116
118
|
* - bump: u8 (1 byte)
|
|
117
|
-
* -
|
|
119
|
+
* - index: u16 (2 bytes)
|
|
120
|
+
* - active: u8 (1 byte)
|
|
121
|
+
* - _padding: [u8; 3]
|
|
118
122
|
*/
|
|
119
123
|
export declare function deserializeGlobalDepositToken(data: Buffer): GlobalDepositToken;
|
|
120
124
|
//# sourceMappingURL=accounts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,MAAM,
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,MAAM,EAGN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACV,MAAM,SAAS,CAAC;AAwCjB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjE;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAuD1D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoFtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CA6BhE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAmB5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CA6B1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAyC5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA8B9E"}
|
package/dist/program/accounts.js
CHANGED
|
@@ -31,6 +31,20 @@ function validateDiscriminator(data, expected, accountType) {
|
|
|
31
31
|
throw error_1.ProgramSdkError.invalidDiscriminator(accountType, expected.toString("hex"), actual.toString("hex"));
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
function parsePendingRoleKind(value) {
|
|
35
|
+
switch (value) {
|
|
36
|
+
case types_1.PendingRoleKind.None:
|
|
37
|
+
return types_1.PendingRoleKind.None;
|
|
38
|
+
case types_1.PendingRoleKind.Authority:
|
|
39
|
+
return types_1.PendingRoleKind.Authority;
|
|
40
|
+
case types_1.PendingRoleKind.Manager:
|
|
41
|
+
return types_1.PendingRoleKind.Manager;
|
|
42
|
+
case types_1.PendingRoleKind.Operator:
|
|
43
|
+
return types_1.PendingRoleKind.Operator;
|
|
44
|
+
default:
|
|
45
|
+
throw error_1.ProgramSdkError.invalidPendingRoleKind(value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
34
48
|
/**
|
|
35
49
|
* Check if a buffer has a valid Exchange discriminator
|
|
36
50
|
*/
|
|
@@ -93,7 +107,7 @@ function isGlobalDepositTokenAccount(data) {
|
|
|
93
107
|
/**
|
|
94
108
|
* Deserialize Exchange account data
|
|
95
109
|
*
|
|
96
|
-
* Layout (
|
|
110
|
+
* Layout (216 bytes):
|
|
97
111
|
* - discriminator: [u8; 8]
|
|
98
112
|
* - authority: Pubkey (32 bytes)
|
|
99
113
|
* - operator: Pubkey (32 bytes)
|
|
@@ -103,7 +117,9 @@ function isGlobalDepositTokenAccount(data) {
|
|
|
103
117
|
* - bump: u8 (1 byte)
|
|
104
118
|
* - deposit_token_count: u16 (2 bytes)
|
|
105
119
|
* - fee_receiver: Pubkey (32 bytes)
|
|
106
|
-
* -
|
|
120
|
+
* - pending_role: Pubkey (32 bytes)
|
|
121
|
+
* - pending_role_kind: u8 (1 byte)
|
|
122
|
+
* - _reserved: [u8; 35]
|
|
107
123
|
*/
|
|
108
124
|
function deserializeExchange(data) {
|
|
109
125
|
if (data.length < constants_1.ACCOUNT_SIZE.EXCHANGE) {
|
|
@@ -129,6 +145,10 @@ function deserializeExchange(data) {
|
|
|
129
145
|
offset += 2;
|
|
130
146
|
const feeReceiver = new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
|
|
131
147
|
offset += 32;
|
|
148
|
+
const pendingRole = new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
|
|
149
|
+
offset += 32;
|
|
150
|
+
const pendingRoleKind = parsePendingRoleKind(data[offset]);
|
|
151
|
+
offset += 1;
|
|
132
152
|
return {
|
|
133
153
|
discriminator,
|
|
134
154
|
authority,
|
|
@@ -139,12 +159,14 @@ function deserializeExchange(data) {
|
|
|
139
159
|
bump,
|
|
140
160
|
depositTokenCount,
|
|
141
161
|
feeReceiver,
|
|
162
|
+
pendingRole,
|
|
163
|
+
pendingRoleKind,
|
|
142
164
|
};
|
|
143
165
|
}
|
|
144
166
|
/**
|
|
145
167
|
* Deserialize Market account data
|
|
146
168
|
*
|
|
147
|
-
* Layout (
|
|
169
|
+
* Layout (216 bytes):
|
|
148
170
|
* - discriminator: [u8; 8]
|
|
149
171
|
* - market_id: u64 (8 bytes)
|
|
150
172
|
* - num_outcomes: u8 (1 byte)
|
|
@@ -158,6 +180,7 @@ function deserializeExchange(data) {
|
|
|
158
180
|
* - condition_id: [u8; 32]
|
|
159
181
|
* - payout_numerators: [u32; 6]
|
|
160
182
|
* - payout_denominator: u32
|
|
183
|
+
* - _reserved: [u8; 68]
|
|
161
184
|
*/
|
|
162
185
|
function deserializeMarket(data) {
|
|
163
186
|
if (data.length < constants_1.ACCOUNT_SIZE.MARKET) {
|
|
@@ -360,12 +383,13 @@ function deserializeOrderbook(data) {
|
|
|
360
383
|
/**
|
|
361
384
|
* Deserialize GlobalDepositToken account data
|
|
362
385
|
*
|
|
363
|
-
* Layout (
|
|
386
|
+
* Layout (47 bytes):
|
|
364
387
|
* - discriminator: [u8; 8]
|
|
365
388
|
* - mint: Pubkey (32 bytes)
|
|
366
|
-
* - active: u8 (1 byte)
|
|
367
389
|
* - bump: u8 (1 byte)
|
|
368
|
-
* -
|
|
390
|
+
* - index: u16 (2 bytes)
|
|
391
|
+
* - active: u8 (1 byte)
|
|
392
|
+
* - _padding: [u8; 3]
|
|
369
393
|
*/
|
|
370
394
|
function deserializeGlobalDepositToken(data) {
|
|
371
395
|
if (data.length < constants_1.ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN) {
|
|
@@ -377,18 +401,18 @@ function deserializeGlobalDepositToken(data) {
|
|
|
377
401
|
offset += 8;
|
|
378
402
|
const mint = new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
|
|
379
403
|
offset += 32;
|
|
380
|
-
const active = data[offset] !== 0;
|
|
381
|
-
offset += 1;
|
|
382
404
|
const bump = data[offset];
|
|
383
405
|
offset += 1;
|
|
384
406
|
const index = data.readUInt16LE(offset);
|
|
385
407
|
offset += 2;
|
|
408
|
+
const active = data[offset] !== 0;
|
|
409
|
+
offset += 1;
|
|
386
410
|
return {
|
|
387
411
|
discriminator,
|
|
388
412
|
mint,
|
|
389
|
-
active,
|
|
390
413
|
bump,
|
|
391
414
|
index,
|
|
415
|
+
active,
|
|
392
416
|
};
|
|
393
417
|
}
|
|
394
418
|
//# sourceMappingURL=accounts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\nimport { DISCRIMINATOR, ACCOUNT_SIZE } from \"./constants\";\nimport { ProgramSdkError } from \"./error\";\nimport {\n Exchange,\n GlobalDepositToken,\n Market,\n MarketStatus,\n OrderStatus,\n UserNonce,\n Position,\n Orderbook,\n} from \"./types\";\nimport { fromLeBytes } from \"./utils\";\n\n// ============================================================================\n// DISCRIMINATOR VALIDATION\n// ============================================================================\n\n/**\n * Validate that a buffer starts with the expected discriminator\n */\nfunction validateDiscriminator(\n data: Buffer,\n expected: Buffer,\n accountType: string\n): void {\n const actual = data.subarray(0, 8);\n if (!actual.equals(expected)) {\n throw ProgramSdkError.invalidDiscriminator(\n accountType,\n expected.toString(\"hex\"),\n actual.toString(\"hex\"),\n );\n }\n}\n\n/**\n * Check if a buffer has a valid Exchange discriminator\n */\nexport function isExchangeAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.EXCHANGE);\n}\n\n/**\n * Check if a buffer has a valid Market discriminator\n */\nexport function isMarketAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.MARKET);\n}\n\n/**\n * Check if a buffer has a valid OrderStatus discriminator\n */\nexport function isOrderStatusAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.ORDER_STATUS);\n}\n\n/**\n * Check if a buffer has a valid UserNonce discriminator\n */\nexport function isUserNonceAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.USER_NONCE);\n}\n\n/**\n * Check if a buffer has a valid Position discriminator\n */\nexport function isPositionAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.POSITION);\n}\n\n/**\n * Check if a buffer has a valid Orderbook discriminator\n */\nexport function isOrderbookAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.ORDERBOOK);\n}\n\n/**\n * Check if a buffer has a valid GlobalDepositToken discriminator\n */\nexport function isGlobalDepositTokenAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN);\n}\n\n// ============================================================================\n// ACCOUNT DESERIALIZATION\n// ============================================================================\n\n/**\n * Deserialize Exchange account data\n *\n * Layout (212 bytes):\n * - discriminator: [u8; 8]\n * - authority: Pubkey (32 bytes)\n * - operator: Pubkey (32 bytes)\n * - manager: Pubkey (32 bytes)\n * - market_count: u64 (8 bytes)\n * - paused: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - deposit_token_count: u16 (2 bytes)\n * - fee_receiver: Pubkey (32 bytes)\n * - _reserved: [u8; 64]\n */\nexport function deserializeExchange(data: Buffer): Exchange {\n if (data.length < ACCOUNT_SIZE.EXCHANGE) {\n throw ProgramSdkError.invalidDataLength(\"Exchange\", ACCOUNT_SIZE.EXCHANGE, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.EXCHANGE, \"Exchange\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const authority = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const operator = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const manager = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const marketCount = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const paused = data[offset] !== 0;\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n const depositTokenCount = data.readUInt16LE(offset);\n offset += 2;\n\n const feeReceiver = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n return {\n discriminator,\n authority,\n operator,\n manager,\n marketCount,\n paused,\n bump,\n depositTokenCount,\n feeReceiver,\n };\n}\n\n/**\n * Deserialize Market account data\n *\n * Layout (212 bytes):\n * - discriminator: [u8; 8]\n * - market_id: u64 (8 bytes)\n * - num_outcomes: u8 (1 byte)\n * - status: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 1]\n * - maker_fee_bps: i16\n * - taker_fee_bps: i16\n * - oracle: Pubkey (32 bytes)\n * - question_id: [u8; 32]\n * - condition_id: [u8; 32]\n * - payout_numerators: [u32; 6]\n * - payout_denominator: u32\n */\nexport function deserializeMarket(data: Buffer): Market {\n if (data.length < ACCOUNT_SIZE.MARKET) {\n throw ProgramSdkError.invalidDataLength(\"Market\", ACCOUNT_SIZE.MARKET, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.MARKET, \"Market\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const marketId = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const numOutcomes = data[offset];\n offset += 1;\n\n const statusByte = data[offset];\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 1 byte\n offset += 1;\n\n const makerFeeBps = data.readInt16LE(offset);\n offset += 2;\n\n const takerFeeBps = data.readInt16LE(offset);\n offset += 2;\n\n const oracle = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const questionId = Buffer.from(data.subarray(offset, offset + 32));\n offset += 32;\n\n const conditionId = Buffer.from(data.subarray(offset, offset + 32));\n offset += 32;\n\n const payoutNumerators: Market[\"payoutNumerators\"] = [0, 0, 0, 0, 0, 0];\n for (let i = 0; i < payoutNumerators.length; i++) {\n payoutNumerators[i] = data.readUInt32LE(offset);\n offset += 4;\n }\n\n const payoutDenominator = data.readUInt32LE(offset);\n offset += 4;\n\n // Map status byte to enum\n let status: MarketStatus;\n switch (statusByte) {\n case 0:\n status = MarketStatus.Pending;\n break;\n case 1:\n status = MarketStatus.Active;\n break;\n case 2:\n status = MarketStatus.Resolved;\n break;\n case 3:\n status = MarketStatus.Cancelled;\n break;\n default:\n throw ProgramSdkError.invalidMarketStatus(statusByte);\n }\n\n return {\n discriminator,\n marketId,\n numOutcomes,\n status,\n bump,\n makerFeeBps,\n takerFeeBps,\n oracle,\n questionId,\n conditionId,\n payoutNumerators,\n payoutDenominator,\n };\n}\n\n/**\n * Deserialize OrderStatus account data\n *\n * Layout (32 bytes):\n * - discriminator: [u8; 8]\n * - remaining: u64 (8 bytes)\n * - base_remaining: u64 (8 bytes)\n * - is_cancelled: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializeOrderStatus(data: Buffer): OrderStatus {\n if (data.length < ACCOUNT_SIZE.ORDER_STATUS) {\n throw ProgramSdkError.invalidDataLength(\"OrderStatus\", ACCOUNT_SIZE.ORDER_STATUS, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.ORDER_STATUS, \"OrderStatus\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const remaining = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const baseRemaining = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const isCancelled = data[offset] !== 0;\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n remaining,\n baseRemaining,\n isCancelled,\n };\n}\n\n/**\n * Deserialize UserNonce account data\n *\n * Layout (16 bytes):\n * - discriminator: [u8; 8]\n * - nonce: u64 (8 bytes)\n */\nexport function deserializeUserNonce(data: Buffer): UserNonce {\n if (data.length < ACCOUNT_SIZE.USER_NONCE) {\n throw ProgramSdkError.invalidDataLength(\"UserNonce\", ACCOUNT_SIZE.USER_NONCE, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.USER_NONCE, \"UserNonce\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const nonce = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n return {\n discriminator,\n nonce,\n };\n}\n\n/**\n * Deserialize Position account data\n *\n * Layout (80 bytes):\n * - discriminator: [u8; 8]\n * - owner: Pubkey (32 bytes)\n * - market: Pubkey (32 bytes)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializePosition(data: Buffer): Position {\n if (data.length < ACCOUNT_SIZE.POSITION) {\n throw ProgramSdkError.invalidDataLength(\"Position\", ACCOUNT_SIZE.POSITION, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.POSITION, \"Position\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const owner = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const market = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n owner,\n market,\n bump,\n };\n}\n\n/**\n * Deserialize Orderbook account data\n *\n * Layout (144 bytes):\n * - discriminator: [u8; 8]\n * - market: Pubkey (32 bytes)\n * - mint_a: Pubkey (32 bytes)\n * - mint_b: Pubkey (32 bytes)\n * - lookup_table: Pubkey (32 bytes)\n * - base_index: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 6]\n */\nexport function deserializeOrderbook(data: Buffer): Orderbook {\n if (data.length < ACCOUNT_SIZE.ORDERBOOK) {\n throw ProgramSdkError.invalidDataLength(\"Orderbook\", ACCOUNT_SIZE.ORDERBOOK, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.ORDERBOOK, \"Orderbook\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const market = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const mintA = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const mintB = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const lookupTable = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const baseIndex = data[offset];\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 6 bytes\n\n return {\n discriminator,\n market,\n mintA,\n mintB,\n lookupTable,\n baseIndex,\n bump,\n };\n}\n\n/**\n * Deserialize GlobalDepositToken account data\n *\n * Layout (48 bytes):\n * - discriminator: [u8; 8]\n * - mint: Pubkey (32 bytes)\n * - active: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 6]\n */\nexport function deserializeGlobalDepositToken(data: Buffer): GlobalDepositToken {\n if (data.length < ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN) {\n throw ProgramSdkError.invalidDataLength(\"GlobalDepositToken\", ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN, \"GlobalDepositToken\");\n\n let offset = 0;\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const mint = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const active = data[offset] !== 0;\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n const index = data.readUInt16LE(offset);\n offset += 2;\n\n return {\n discriminator,\n mint,\n active,\n bump,\n index,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/program/accounts.ts"],"names":[],"mappings":";;AAwDA,8CAGC;AAKD,0CAGC;AAKD,oDAGC;AAKD,gDAGC;AAKD,8CAGC;AAKD,gDAGC;AAKD,kEAGC;AAuBD,kDAuDC;AAqBD,8CAoFC;AAYD,wDA6BC;AASD,oDAmBC;AAYD,kDA6BC;AAeD,oDAyCC;AAaD,sEA8BC;AAnfD,6CAA4C;AAC5C,2CAA0D;AAC1D,mCAA0C;AAC1C,mCAUiB;AACjB,mCAAsC;AAEtC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,SAAS,qBAAqB,CAC5B,IAAY,EACZ,QAAgB,EAChB,WAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,uBAAe,CAAC,oBAAoB,CACxC,WAAW,EACX,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EACxB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CACvB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,uBAAe,CAAC,IAAI;YACvB,OAAO,uBAAe,CAAC,IAAI,CAAC;QAC9B,KAAK,uBAAe,CAAC,SAAS;YAC5B,OAAO,uBAAe,CAAC,SAAS,CAAC;QACnC,KAAK,uBAAe,CAAC,OAAO;YAC1B,OAAO,uBAAe,CAAC,OAAO,CAAC;QACjC,KAAK,uBAAe,CAAC,QAAQ;YAC3B,OAAO,uBAAe,CAAC,QAAQ,CAAC;QAClC;YACE,MAAM,uBAAe,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAa,CAAC,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAa,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAa,CAAC,YAAY,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAa,CAAC,UAAU,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAa,CAAC,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAa,CAAC,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAgB,2BAA2B,CAAC,IAAY;IACtD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAa,CAAC,oBAAoB,CAAC,CAAC;AACxE,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAY,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,uBAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,wBAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,yBAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEhE,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,SAAS,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,OAAO,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,WAAW,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,CAAC;IAEZ,OAAO;QACL,aAAa;QACb,SAAS;QACT,QAAQ;QACR,OAAO;QACP,WAAW;QACX,MAAM;QACN,IAAI;QACJ,iBAAiB;QACjB,WAAW;QACX,WAAW;QACX,eAAe;KAChB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAY,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,uBAAe,CAAC,iBAAiB,CAAC,QAAQ,EAAE,wBAAY,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,yBAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE5D,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,CAAC,CAAC;IAEZ,uBAAuB;IACvB,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,MAAM,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,gBAAgB,GAA+B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,IAAI,CAAC,CAAC;IAEZ,0BAA0B;IAC1B,IAAI,MAAoB,CAAC;IACzB,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,CAAC;YACJ,MAAM,GAAG,oBAAY,CAAC,OAAO,CAAC;YAC9B,MAAM;QACR,KAAK,CAAC;YACJ,MAAM,GAAG,oBAAY,CAAC,MAAM,CAAC;YAC7B,MAAM;QACR,KAAK,CAAC;YACJ,MAAM,GAAG,oBAAY,CAAC,QAAQ,CAAC;YAC/B,MAAM;QACR,KAAK,CAAC;YACJ,MAAM,GAAG,oBAAY,CAAC,SAAS,CAAC;YAChC,MAAM;QACR;YACE,MAAM,uBAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,aAAa;QACb,QAAQ;QACR,WAAW;QACX,MAAM;QACN,IAAI;QACJ,WAAW;QACX,WAAW;QACX,MAAM;QACN,UAAU;QACV,WAAW;QACX,gBAAgB;QAChB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAY,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,uBAAe,CAAC,iBAAiB,CAAC,aAAa,EAAE,wBAAY,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjG,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,yBAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAEvE,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,SAAS,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,CAAC;IAEZ,wBAAwB;IAExB,OAAO;QACL,aAAa;QACb,SAAS;QACT,aAAa;QACb,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAY,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,uBAAe,CAAC,iBAAiB,CAAC,WAAW,EAAE,wBAAY,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7F,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,yBAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnE,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,CAAC;IAEZ,OAAO;QACL,aAAa;QACb,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAY,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,uBAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,wBAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,yBAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEhE,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,KAAK,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,MAAM,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,CAAC,CAAC;IAEZ,wBAAwB;IAExB,OAAO;QACL,aAAa;QACb,KAAK;QACL,MAAM;QACN,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAY,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,uBAAe,CAAC,iBAAiB,CAAC,WAAW,EAAE,wBAAY,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5F,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,yBAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAElE,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,MAAM,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,KAAK,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,KAAK,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,WAAW,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,CAAC,CAAC;IAEZ,wBAAwB;IAExB,OAAO;QACL,aAAa;QACb,MAAM;QACN,KAAK;QACL,KAAK;QACL,WAAW;QACX,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,6BAA6B,CAAC,IAAY;IACxD,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAY,CAAC,oBAAoB,EAAE,CAAC;QACpD,MAAM,uBAAe,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,wBAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChH,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,yBAAa,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IAEtF,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,IAAI,CAAC,CAAC;IAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,CAAC;IAEZ,OAAO;QACL,aAAa;QACb,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC","sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\nimport { DISCRIMINATOR, ACCOUNT_SIZE } from \"./constants\";\nimport { ProgramSdkError } from \"./error\";\nimport {\n Exchange,\n GlobalDepositToken,\n Market,\n MarketStatus,\n PendingRoleKind,\n OrderStatus,\n UserNonce,\n Position,\n Orderbook,\n} from \"./types\";\nimport { fromLeBytes } from \"./utils\";\n\n// ============================================================================\n// DISCRIMINATOR VALIDATION\n// ============================================================================\n\n/**\n * Validate that a buffer starts with the expected discriminator\n */\nfunction validateDiscriminator(\n data: Buffer,\n expected: Buffer,\n accountType: string\n): void {\n const actual = data.subarray(0, 8);\n if (!actual.equals(expected)) {\n throw ProgramSdkError.invalidDiscriminator(\n accountType,\n expected.toString(\"hex\"),\n actual.toString(\"hex\"),\n );\n }\n}\n\nfunction parsePendingRoleKind(value: number): PendingRoleKind {\n switch (value) {\n case PendingRoleKind.None:\n return PendingRoleKind.None;\n case PendingRoleKind.Authority:\n return PendingRoleKind.Authority;\n case PendingRoleKind.Manager:\n return PendingRoleKind.Manager;\n case PendingRoleKind.Operator:\n return PendingRoleKind.Operator;\n default:\n throw ProgramSdkError.invalidPendingRoleKind(value);\n }\n}\n\n/**\n * Check if a buffer has a valid Exchange discriminator\n */\nexport function isExchangeAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.EXCHANGE);\n}\n\n/**\n * Check if a buffer has a valid Market discriminator\n */\nexport function isMarketAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.MARKET);\n}\n\n/**\n * Check if a buffer has a valid OrderStatus discriminator\n */\nexport function isOrderStatusAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.ORDER_STATUS);\n}\n\n/**\n * Check if a buffer has a valid UserNonce discriminator\n */\nexport function isUserNonceAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.USER_NONCE);\n}\n\n/**\n * Check if a buffer has a valid Position discriminator\n */\nexport function isPositionAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.POSITION);\n}\n\n/**\n * Check if a buffer has a valid Orderbook discriminator\n */\nexport function isOrderbookAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.ORDERBOOK);\n}\n\n/**\n * Check if a buffer has a valid GlobalDepositToken discriminator\n */\nexport function isGlobalDepositTokenAccount(data: Buffer): boolean {\n if (data.length < 8) return false;\n return data.subarray(0, 8).equals(DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN);\n}\n\n// ============================================================================\n// ACCOUNT DESERIALIZATION\n// ============================================================================\n\n/**\n * Deserialize Exchange account data\n *\n * Layout (216 bytes):\n * - discriminator: [u8; 8]\n * - authority: Pubkey (32 bytes)\n * - operator: Pubkey (32 bytes)\n * - manager: Pubkey (32 bytes)\n * - market_count: u64 (8 bytes)\n * - paused: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - deposit_token_count: u16 (2 bytes)\n * - fee_receiver: Pubkey (32 bytes)\n * - pending_role: Pubkey (32 bytes)\n * - pending_role_kind: u8 (1 byte)\n * - _reserved: [u8; 35]\n */\nexport function deserializeExchange(data: Buffer): Exchange {\n if (data.length < ACCOUNT_SIZE.EXCHANGE) {\n throw ProgramSdkError.invalidDataLength(\"Exchange\", ACCOUNT_SIZE.EXCHANGE, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.EXCHANGE, \"Exchange\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const authority = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const operator = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const manager = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const marketCount = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const paused = data[offset] !== 0;\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n const depositTokenCount = data.readUInt16LE(offset);\n offset += 2;\n\n const feeReceiver = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const pendingRole = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const pendingRoleKind = parsePendingRoleKind(data[offset]);\n offset += 1;\n\n return {\n discriminator,\n authority,\n operator,\n manager,\n marketCount,\n paused,\n bump,\n depositTokenCount,\n feeReceiver,\n pendingRole,\n pendingRoleKind,\n };\n}\n\n/**\n * Deserialize Market account data\n *\n * Layout (216 bytes):\n * - discriminator: [u8; 8]\n * - market_id: u64 (8 bytes)\n * - num_outcomes: u8 (1 byte)\n * - status: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 1]\n * - maker_fee_bps: i16\n * - taker_fee_bps: i16\n * - oracle: Pubkey (32 bytes)\n * - question_id: [u8; 32]\n * - condition_id: [u8; 32]\n * - payout_numerators: [u32; 6]\n * - payout_denominator: u32\n * - _reserved: [u8; 68]\n */\nexport function deserializeMarket(data: Buffer): Market {\n if (data.length < ACCOUNT_SIZE.MARKET) {\n throw ProgramSdkError.invalidDataLength(\"Market\", ACCOUNT_SIZE.MARKET, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.MARKET, \"Market\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const marketId = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const numOutcomes = data[offset];\n offset += 1;\n\n const statusByte = data[offset];\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 1 byte\n offset += 1;\n\n const makerFeeBps = data.readInt16LE(offset);\n offset += 2;\n\n const takerFeeBps = data.readInt16LE(offset);\n offset += 2;\n\n const oracle = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const questionId = Buffer.from(data.subarray(offset, offset + 32));\n offset += 32;\n\n const conditionId = Buffer.from(data.subarray(offset, offset + 32));\n offset += 32;\n\n const payoutNumerators: Market[\"payoutNumerators\"] = [0, 0, 0, 0, 0, 0];\n for (let i = 0; i < payoutNumerators.length; i++) {\n payoutNumerators[i] = data.readUInt32LE(offset);\n offset += 4;\n }\n\n const payoutDenominator = data.readUInt32LE(offset);\n offset += 4;\n\n // Map status byte to enum\n let status: MarketStatus;\n switch (statusByte) {\n case 0:\n status = MarketStatus.Pending;\n break;\n case 1:\n status = MarketStatus.Active;\n break;\n case 2:\n status = MarketStatus.Resolved;\n break;\n case 3:\n status = MarketStatus.Cancelled;\n break;\n default:\n throw ProgramSdkError.invalidMarketStatus(statusByte);\n }\n\n return {\n discriminator,\n marketId,\n numOutcomes,\n status,\n bump,\n makerFeeBps,\n takerFeeBps,\n oracle,\n questionId,\n conditionId,\n payoutNumerators,\n payoutDenominator,\n };\n}\n\n/**\n * Deserialize OrderStatus account data\n *\n * Layout (32 bytes):\n * - discriminator: [u8; 8]\n * - remaining: u64 (8 bytes)\n * - base_remaining: u64 (8 bytes)\n * - is_cancelled: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializeOrderStatus(data: Buffer): OrderStatus {\n if (data.length < ACCOUNT_SIZE.ORDER_STATUS) {\n throw ProgramSdkError.invalidDataLength(\"OrderStatus\", ACCOUNT_SIZE.ORDER_STATUS, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.ORDER_STATUS, \"OrderStatus\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const remaining = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const baseRemaining = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n const isCancelled = data[offset] !== 0;\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n remaining,\n baseRemaining,\n isCancelled,\n };\n}\n\n/**\n * Deserialize UserNonce account data\n *\n * Layout (16 bytes):\n * - discriminator: [u8; 8]\n * - nonce: u64 (8 bytes)\n */\nexport function deserializeUserNonce(data: Buffer): UserNonce {\n if (data.length < ACCOUNT_SIZE.USER_NONCE) {\n throw ProgramSdkError.invalidDataLength(\"UserNonce\", ACCOUNT_SIZE.USER_NONCE, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.USER_NONCE, \"UserNonce\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const nonce = fromLeBytes(data.subarray(offset, offset + 8));\n offset += 8;\n\n return {\n discriminator,\n nonce,\n };\n}\n\n/**\n * Deserialize Position account data\n *\n * Layout (80 bytes):\n * - discriminator: [u8; 8]\n * - owner: Pubkey (32 bytes)\n * - market: Pubkey (32 bytes)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 7]\n */\nexport function deserializePosition(data: Buffer): Position {\n if (data.length < ACCOUNT_SIZE.POSITION) {\n throw ProgramSdkError.invalidDataLength(\"Position\", ACCOUNT_SIZE.POSITION, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.POSITION, \"Position\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const owner = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const market = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 7 bytes\n\n return {\n discriminator,\n owner,\n market,\n bump,\n };\n}\n\n/**\n * Deserialize Orderbook account data\n *\n * Layout (144 bytes):\n * - discriminator: [u8; 8]\n * - market: Pubkey (32 bytes)\n * - mint_a: Pubkey (32 bytes)\n * - mint_b: Pubkey (32 bytes)\n * - lookup_table: Pubkey (32 bytes)\n * - base_index: u8 (1 byte)\n * - bump: u8 (1 byte)\n * - _padding: [u8; 6]\n */\nexport function deserializeOrderbook(data: Buffer): Orderbook {\n if (data.length < ACCOUNT_SIZE.ORDERBOOK) {\n throw ProgramSdkError.invalidDataLength(\"Orderbook\", ACCOUNT_SIZE.ORDERBOOK, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.ORDERBOOK, \"Orderbook\");\n\n let offset = 0;\n\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const market = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const mintA = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const mintB = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const lookupTable = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const baseIndex = data[offset];\n offset += 1;\n\n const bump = data[offset];\n offset += 1;\n\n // Skip padding: 6 bytes\n\n return {\n discriminator,\n market,\n mintA,\n mintB,\n lookupTable,\n baseIndex,\n bump,\n };\n}\n\n/**\n * Deserialize GlobalDepositToken account data\n *\n * Layout (47 bytes):\n * - discriminator: [u8; 8]\n * - mint: Pubkey (32 bytes)\n * - bump: u8 (1 byte)\n * - index: u16 (2 bytes)\n * - active: u8 (1 byte)\n * - _padding: [u8; 3]\n */\nexport function deserializeGlobalDepositToken(data: Buffer): GlobalDepositToken {\n if (data.length < ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN) {\n throw ProgramSdkError.invalidDataLength(\"GlobalDepositToken\", ACCOUNT_SIZE.GLOBAL_DEPOSIT_TOKEN, data.length);\n }\n\n validateDiscriminator(data, DISCRIMINATOR.GLOBAL_DEPOSIT_TOKEN, \"GlobalDepositToken\");\n\n let offset = 0;\n const discriminator = data.subarray(offset, offset + 8);\n offset += 8;\n\n const mint = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n const bump = data[offset];\n offset += 1;\n\n const index = data.readUInt16LE(offset);\n offset += 2;\n\n const active = data[offset] !== 0;\n offset += 1;\n\n return {\n discriminator,\n mint,\n bump,\n index,\n active,\n };\n}\n"]}
|
|
@@ -15,6 +15,10 @@ export declare const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey;
|
|
|
15
15
|
* Metaplex Token Metadata Program ID
|
|
16
16
|
*/
|
|
17
17
|
export declare const MPL_TOKEN_METADATA_PROGRAM_ID: PublicKey;
|
|
18
|
+
/**
|
|
19
|
+
* Pubkey allowed by the on-chain program to initialize the exchange.
|
|
20
|
+
*/
|
|
21
|
+
export declare const INITIALIZE_AUTHORITY: PublicKey;
|
|
18
22
|
/**
|
|
19
23
|
* System Program ID
|
|
20
24
|
*/
|
|
@@ -60,6 +64,12 @@ export declare const INSTRUCTION: {
|
|
|
60
64
|
readonly SET_FEE_RECEIVER: 30;
|
|
61
65
|
readonly CREATE_CONDITIONAL_METADATA: 31;
|
|
62
66
|
readonly UPDATE_CONDITIONAL_METADATA: 32;
|
|
67
|
+
readonly SET_ORACLE: 33;
|
|
68
|
+
readonly REFRESH_ORDERBOOK_ALT: 34;
|
|
69
|
+
readonly ACCEPT_AUTHORITY: 35;
|
|
70
|
+
readonly ACCEPT_MANAGER: 36;
|
|
71
|
+
readonly ACCEPT_OPERATOR: 37;
|
|
72
|
+
readonly SET_DEPOSIT_TOKEN_STATUS: 38;
|
|
63
73
|
};
|
|
64
74
|
/**
|
|
65
75
|
* Account discriminators (8 bytes each)
|
|
@@ -78,13 +88,13 @@ export declare const DISCRIMINATOR: {
|
|
|
78
88
|
* Account sizes in bytes
|
|
79
89
|
*/
|
|
80
90
|
export declare const ACCOUNT_SIZE: {
|
|
81
|
-
readonly EXCHANGE:
|
|
82
|
-
readonly MARKET:
|
|
91
|
+
readonly EXCHANGE: 216;
|
|
92
|
+
readonly MARKET: 216;
|
|
83
93
|
readonly ORDER_STATUS: 32;
|
|
84
94
|
readonly USER_NONCE: 16;
|
|
85
95
|
readonly POSITION: 80;
|
|
86
96
|
readonly ORDERBOOK: 144;
|
|
87
|
-
readonly GLOBAL_DEPOSIT_TOKEN:
|
|
97
|
+
readonly GLOBAL_DEPOSIT_TOKEN: 47;
|
|
88
98
|
};
|
|
89
99
|
/**
|
|
90
100
|
* Order sizes in bytes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAMzB;;GAEG;AACH,eAAO,MAAM,cAAc,WAE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAuB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,2BAA2B,WAAkC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,6BAA6B,WAEzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,WAA0B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,cAAc,WAAqB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAMzB;;GAEG;AACH,eAAO,MAAM,cAAc,WAE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAuB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,2BAA2B,WAAkC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,6BAA6B,WAEzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,WAA0B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,cAAc,WAAqB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;CAcR,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
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.MPL_TOKEN_METADATA_PROGRAM_ID = exports.ASSOCIATED_TOKEN_PROGRAM_ID = exports.TOKEN_PROGRAM_ID = exports.ALT_PROGRAM_ID = void 0;
|
|
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.INITIALIZE_AUTHORITY = exports.MPL_TOKEN_METADATA_PROGRAM_ID = exports.ASSOCIATED_TOKEN_PROGRAM_ID = exports.TOKEN_PROGRAM_ID = exports.ALT_PROGRAM_ID = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
const spl_token_1 = require("@solana/spl-token");
|
|
6
6
|
/**
|
|
@@ -19,6 +19,10 @@ exports.ASSOCIATED_TOKEN_PROGRAM_ID = spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID;
|
|
|
19
19
|
* Metaplex Token Metadata Program ID
|
|
20
20
|
*/
|
|
21
21
|
exports.MPL_TOKEN_METADATA_PROGRAM_ID = new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
|
|
22
|
+
/**
|
|
23
|
+
* Pubkey allowed by the on-chain program to initialize the exchange.
|
|
24
|
+
*/
|
|
25
|
+
exports.INITIALIZE_AUTHORITY = new web3_js_1.PublicKey("2m6iAtMVmd3jE2BpNxoa9E79Kj7NeE6UxBFNyCBp6QEb");
|
|
22
26
|
/**
|
|
23
27
|
* System Program ID
|
|
24
28
|
*/
|
|
@@ -64,6 +68,12 @@ exports.INSTRUCTION = {
|
|
|
64
68
|
SET_FEE_RECEIVER: 30,
|
|
65
69
|
CREATE_CONDITIONAL_METADATA: 31,
|
|
66
70
|
UPDATE_CONDITIONAL_METADATA: 32,
|
|
71
|
+
SET_ORACLE: 33,
|
|
72
|
+
REFRESH_ORDERBOOK_ALT: 34,
|
|
73
|
+
ACCEPT_AUTHORITY: 35,
|
|
74
|
+
ACCEPT_MANAGER: 36,
|
|
75
|
+
ACCEPT_OPERATOR: 37,
|
|
76
|
+
SET_DEPOSIT_TOKEN_STATUS: 38,
|
|
67
77
|
};
|
|
68
78
|
/**
|
|
69
79
|
* Account discriminators (8 bytes each)
|
|
@@ -82,13 +92,13 @@ exports.DISCRIMINATOR = {
|
|
|
82
92
|
* Account sizes in bytes
|
|
83
93
|
*/
|
|
84
94
|
exports.ACCOUNT_SIZE = {
|
|
85
|
-
EXCHANGE:
|
|
86
|
-
MARKET:
|
|
95
|
+
EXCHANGE: 216,
|
|
96
|
+
MARKET: 216,
|
|
87
97
|
ORDER_STATUS: 32,
|
|
88
98
|
USER_NONCE: 16,
|
|
89
99
|
POSITION: 80,
|
|
90
100
|
ORDERBOOK: 144,
|
|
91
|
-
GLOBAL_DEPOSIT_TOKEN:
|
|
101
|
+
GLOBAL_DEPOSIT_TOKEN: 47,
|
|
92
102
|
};
|
|
93
103
|
/**
|
|
94
104
|
* Order sizes in bytes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/program/constants.ts"],"names":[],"mappings":";;;AAAA,6CAIyB;AACzB,iDAG2B;AAE3B;;GAEG;AACU,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,6CAA6C,CAC9C,CAAC;AAEF;;GAEG;AACU,QAAA,gBAAgB,GAAG,4BAAoB,CAAC;AAErD;;GAEG;AACU,QAAA,2BAA2B,GAAG,uCAA+B,CAAC;AAE3E;;GAEG;AACU,QAAA,6BAA6B,GAAG,IAAI,mBAAS,CACxD,6CAA6C,CAC9C,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAG,uBAAa,CAAC,SAAS,CAAC;AAEzD;;GAEG;AACU,QAAA,cAAc,GAAG,4BAAkB,CAAC;AAEjD;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,CAAC;IACnB,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC;IAChB,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,EAAE;IAChB,sBAAsB,EAAE,EAAE;IAC1B,eAAe,EAAE,EAAE;IACnB,kBAAkB,EAAE,EAAE;IACtB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,EAAE;IACpB,uBAAuB,EAAE,EAAE;IAC3B,iBAAiB,EAAE,EAAE;IACrB,wBAAwB,EAAE,EAAE;IAC5B,oBAAoB,EAAE,EAAE;IACxB,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,EAAE;IAC1B,oBAAoB,EAAE,EAAE;IACxB,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,EAAE;IACtB,6BAA6B,EAAE,EAAE;IACjC,mBAAmB,EAAE,EAAE;IACvB,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,EAAE;IACpB,2BAA2B,EAAE,EAAE;IAC/B,2BAA2B,EAAE,EAAE;
|
|
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 ASSOCIATED_TOKEN_PROGRAM_ID as SPL_ASSOCIATED_TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\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 * Associated Token Account Program ID\n */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID = SPL_ASSOCIATED_TOKEN_PROGRAM_ID;\n\n/**\n * Metaplex Token Metadata Program ID\n */\nexport const MPL_TOKEN_METADATA_PROGRAM_ID = new PublicKey(\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n);\n\n/**\n * Pubkey allowed by the on-chain program to initialize the exchange.\n */\nexport const INITIALIZE_AUTHORITY = new PublicKey(\n \"2m6iAtMVmd3jE2BpNxoa9E79Kj7NeE6UxBFNyCBp6QEb\"\n);\n\n/**\n * System Program ID\n */\nexport const SYSTEM_PROGRAM_ID = SystemProgram.programId;\n\n/**\n * Rent Sysvar ID\n */\nexport const RENT_SYSVAR_ID = SYSVAR_RENT_PUBKEY;\n\n/**\n * Instruction discriminators (single byte indices)\n */\nexport const INSTRUCTION = {\n INITIALIZE: 0,\n CREATE_MARKET: 1,\n ADD_DEPOSIT_MINT: 2,\n MINT_COMPLETE_SET: 3,\n MERGE_COMPLETE_SET: 4,\n CANCEL_ORDER: 5,\n INCREMENT_NONCE: 6,\n SETTLE_MARKET: 7,\n REDEEM_WINNINGS: 8,\n SET_PAUSED: 9,\n SET_OPERATOR: 10,\n WITHDRAW_FROM_POSITION: 11,\n ACTIVATE_MARKET: 12,\n MATCH_ORDERS_MULTI: 13,\n SET_AUTHORITY: 14,\n CREATE_ORDERBOOK: 15,\n WHITELIST_DEPOSIT_TOKEN: 16,\n DEPOSIT_TO_GLOBAL: 17,\n GLOBAL_TO_MARKET_DEPOSIT: 18,\n INIT_POSITION_TOKENS: 19,\n DEPOSIT_AND_SWAP: 20,\n EXTEND_POSITION_TOKENS: 21,\n WITHDRAW_FROM_GLOBAL: 22,\n CLOSE_POSITION_ALT: 23,\n CLOSE_ORDER_STATUS: 24,\n CLOSE_POSITION_TOKEN_ACCOUNTS: 25,\n CLOSE_ORDERBOOK_ALT: 26,\n CLOSE_ORDERBOOK: 27,\n SET_MANAGER: 28,\n SET_MARKET_FEES: 29,\n SET_FEE_RECEIVER: 30,\n CREATE_CONDITIONAL_METADATA: 31,\n UPDATE_CONDITIONAL_METADATA: 32,\n SET_ORACLE: 33,\n REFRESH_ORDERBOOK_ALT: 34,\n ACCEPT_AUTHORITY: 35,\n ACCEPT_MANAGER: 36,\n ACCEPT_OPERATOR: 37,\n SET_DEPOSIT_TOKEN_STATUS: 38,\n} as const;\n\n/**\n * Account discriminators (8 bytes each)\n * SHA-256 hash bytes matching the on-chain program\n */\nexport const DISCRIMINATOR = {\n EXCHANGE: Buffer.from([0x1e, 0xc8, 0xdc, 0x95, 0x03, 0x3d, 0x68, 0x32]),\n MARKET: Buffer.from([0xdb, 0xbe, 0xd5, 0x37, 0x00, 0xe3, 0xc6, 0x9a]),\n ORDER_STATUS: Buffer.from([0x2e, 0x5a, 0xf1, 0x49, 0xb2, 0x68, 0x41, 0x03]),\n USER_NONCE: Buffer.from([0xeb, 0x85, 0x01, 0xf3, 0x12, 0x87, 0x58, 0xe0]),\n POSITION: Buffer.from([0xaa, 0xbc, 0x8f, 0xe4, 0x7a, 0x40, 0xf7, 0xd0]),\n ORDERBOOK: Buffer.from([0x2b, 0x22, 0x19, 0x71, 0xc3, 0x45, 0x48, 0x07]),\n GLOBAL_DEPOSIT_TOKEN: Buffer.from([0x25, 0xbe, 0xa1, 0xe8, 0x7b, 0x92, 0x2a, 0x57]),\n} as const;\n\n/**\n * Account sizes in bytes\n */\nexport const ACCOUNT_SIZE = {\n EXCHANGE: 216,\n MARKET: 216,\n ORDER_STATUS: 32,\n USER_NONCE: 16,\n POSITION: 80,\n ORDERBOOK: 144,\n GLOBAL_DEPOSIT_TOKEN: 47,\n} as const;\n\n/**\n * Order sizes in bytes\n */\nexport const ORDER_SIZE = {\n SIGNED_ORDER: 233,\n ORDER: 37,\n SIGNATURE: 64,\n} as const;\n\n/**\n * Maximum number of outcomes per market (2-6)\n */\nexport const MAX_OUTCOMES = 6;\n\n/**\n * Minimum number of outcomes per market\n */\nexport const MIN_OUTCOMES = 2;\n\n/**\n * Maximum number of makers per match_orders_multi instruction\n */\nexport const MAX_MAKERS = 5;\n\n/**\n * PDA Seeds\n */\nexport const SEEDS = {\n CENTRAL_STATE: \"central_state\",\n MARKET: \"market\",\n MARKET_DEPOSIT_TOKEN_ACCOUNT: \"market_deposit_token_account\",\n MARKET_MINT_AUTHORITY: \"market_mint_authority\",\n CONDITIONAL_MINT: \"conditional_mint\",\n CONDITION: \"condition\",\n ORDER_STATUS: \"order_status\",\n USER_NONCE: \"user_nonce\",\n POSITION: \"position\",\n ORDERBOOK: \"orderbook\",\n GLOBAL_DEPOSIT: \"global_deposit\",\n FEE_RECEIVER: \"fee_receiver\",\n MPL_METADATA: \"metadata\",\n} as const;\n"]}
|
package/dist/program/error.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type ProgramErrorVariant = "InvalidDiscriminator" | "AccountNotFound" | "InvalidDataLength" | "InvalidOutcomeCount" | "InvalidOutcomeIndex" | "TooManyMakers" | "SignatureVerificationFailed" | "InvalidSignature" | "Serialization" | "InvalidSide" | "InvalidMintOrder" | "InvalidMarketStatus" | "MissingField" | "Overflow" | "OrderbookExists" | "InvalidMarket" | "MarketSettled" | "InvalidProgramId" | "InvalidOrderbook" | "FullFillRequired" | "DivisionByZero" | "
|
|
1
|
+
export type ProgramErrorVariant = "InvalidDiscriminator" | "AccountNotFound" | "InvalidDataLength" | "InvalidOutcomeCount" | "InvalidOutcomeIndex" | "TooManyMakers" | "SignatureVerificationFailed" | "InvalidSignature" | "Serialization" | "InvalidSide" | "InvalidMintOrder" | "InvalidMarketStatus" | "InvalidPendingRoleKind" | "MissingField" | "Overflow" | "OrderbookExists" | "InvalidMarket" | "MarketSettled" | "InvalidProgramId" | "InvalidOrderbook" | "FullFillRequired" | "DivisionByZero" | "Reserved50" | "InsufficientGlobalDeposit" | "InvalidDepositMintOrder" | "ZeroAmount" | "InvalidAta" | "OrderNotFullyFilled" | "InvalidPayoutNumerators" | "PayoutVectorExceedsU32" | "PayoutTooSmall" | "TokenAccountNotEmpty" | "LookupTableNotClosed" | "InvalidManager" | "InvalidFeeRange" | "InvalidFeeSum" | "InvalidFeeReceiver" | "InvalidOracle" | "LookupTableDeactivated" | "NoPendingRoleTransfer" | "PendingRoleMismatch" | "InvalidScalarRange" | "DuplicateScalarOutcomes" | "InvalidPubkey" | "UnsignedOrder";
|
|
2
2
|
export declare class ProgramSdkError extends Error {
|
|
3
3
|
readonly variant: ProgramErrorVariant;
|
|
4
4
|
constructor(variant: ProgramErrorVariant, message: string);
|
|
@@ -14,6 +14,7 @@ export declare class ProgramSdkError extends Error {
|
|
|
14
14
|
static invalidSide(value: number): ProgramSdkError;
|
|
15
15
|
static invalidMintOrder(): ProgramSdkError;
|
|
16
16
|
static invalidMarketStatus(value: number): ProgramSdkError;
|
|
17
|
+
static invalidPendingRoleKind(value: number): ProgramSdkError;
|
|
17
18
|
static missingField(field: string): ProgramSdkError;
|
|
18
19
|
static overflow(message: string): ProgramSdkError;
|
|
19
20
|
static orderbookExists(): ProgramSdkError;
|
|
@@ -23,7 +24,7 @@ export declare class ProgramSdkError extends Error {
|
|
|
23
24
|
static invalidOrderbook(): ProgramSdkError;
|
|
24
25
|
static fullFillRequired(): ProgramSdkError;
|
|
25
26
|
static divisionByZero(): ProgramSdkError;
|
|
26
|
-
static
|
|
27
|
+
static reserved50(): ProgramSdkError;
|
|
27
28
|
static insufficientGlobalDeposit(): ProgramSdkError;
|
|
28
29
|
static invalidDepositMintOrder(): ProgramSdkError;
|
|
29
30
|
static zeroAmount(): ProgramSdkError;
|
|
@@ -38,6 +39,10 @@ export declare class ProgramSdkError extends Error {
|
|
|
38
39
|
static invalidFeeRange(): ProgramSdkError;
|
|
39
40
|
static invalidFeeSum(): ProgramSdkError;
|
|
40
41
|
static invalidFeeReceiver(): ProgramSdkError;
|
|
42
|
+
static invalidOracle(): ProgramSdkError;
|
|
43
|
+
static lookupTableDeactivated(): ProgramSdkError;
|
|
44
|
+
static noPendingRoleTransfer(): ProgramSdkError;
|
|
45
|
+
static pendingRoleMismatch(): ProgramSdkError;
|
|
41
46
|
static invalidScalarRange(): ProgramSdkError;
|
|
42
47
|
static duplicateScalarOutcomes(): ProgramSdkError;
|
|
43
48
|
static invalidPubkey(message: string): ProgramSdkError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/program/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,sBAAsB,GACtB,iBAAiB,GACjB,mBAAmB,GACnB,qBAAqB,GACrB,qBAAqB,GACrB,eAAe,GACf,6BAA6B,GAC7B,kBAAkB,GAClB,eAAe,GACf,aAAa,GACb,kBAAkB,GAClB,qBAAqB,GACrB,cAAc,GACd,UAAU,GACV,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/program/error.ts"],"names":[],"mappings":"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"}
|